16 марта 2012 г.

Кое-что про Wi-Fi, мифических 300Мб и телевизорах

Случайно наткнулся на утилитку для диагностики Wi-Fi сетей (есть версия и для Mac'a).
Не знаю, что она делает, но графики строит красивые. Утверрждается, что с ее помощью можно удостовериться, что вы не пересекаетесь с другими сетями по каналам (радио частотам).
Как я понимаю, Wi-Fi технология работает в основном на следующих частотах 2,4 ГГц (802.11 b/g/n) или 5ГГц (802.11n). Т.е. у большинства из нас, скорее всего, работа идет на частоте 2,4 ГГц. При этом роутер работает на одном из радиоканалов, который более точно задает частоту передачи данных.
Если верить Википеди, то частоты каналов следующие

802.11b/g/n

Канал[прим 1]Центральная частота[прим 2] (ГГц)
12,412
22,417
32,422
42,427
52,432
62,437
72,442
82,447
92,452
102,457
112,462
122,467
132,472
142,484
  1.  5 МГц между центральными частотами соседних каналов, исключая 14-й.
  2.  Каждый канал занимает полосу частот 20 МГц, поэтому в этом диапазоне невозможна одновременная работа более чем 3-х каналов без взаимного перекрытия

Т.е. 
непересекающихся каналов у нас только 3 (три!). При этом, канал, который вы указываете в настройках роутера - это середина реки: захватываются еще и по паре соседних каналов (см. картинку, где я с соседями пересекаюсь на 2 и 3 каналах).
Какой из этого вывод? Выбирайте для своего роутера канал либо непересекающий с прочими Wi-Fi сетями, либо пересекающийся, но при условии, что уровень сигнала точек доступа с которыми происходит перекрытие по частотам будет минимален.
А теперь поговорим про 300Мб по Wi-Fi в городской квартире. Как Вы знаете, технология 802.11n позволяет теоретически достигать пропускной способности 300Мб. Зачем это нужно, ну например, чтобы "стримать" фильм на телевизор по Wi-Fi или даже использовать телек в качестве второго монитора и там ребенку мультики запускать. Была бы возможность - как ее применить мы уже найдем.
Но чем больше я читаю про все эти MIMO и прочие штуки, тем больше мне кажется, что 300Мб в городской квартире это сферический конь в вакууме и проще будет поставить рядом с телеком "коробочку" типа Попкорна и смотреть видео через нее.
Например, этот самый inSSIDer показывает, что вокруг меня в данный момент "бегают" 57 (пятьдесят семь) Wi-Fi сетей. Много, я сам немного в шоке от их числа. Из них мои всего две. Остальные провайдеры и соседи. Для сравнения в офисе сетей "всего лишь" 30 (может стоит переселиться в офис? Подумаю на досуге).
У кого есть опыт подключения TV по Wi-Fi 802.11n - поделитесь. Оно того стоит? Для тех кто не в курсе, 802.11g (т.е. теориетических 54Мб для нормальной работы видео попросту не хватает). Для тех кто уже купил Samsung и не знает как его подключить, вот ветка форума на 50 страниц как это сделать быстро (:

15 марта 2012 г.

Халиф на час или startup на десять лет?

 Good software, like wine, takes time.
Joel Sposky

Как сделать настоящий английский газон? 
Очень просто. Надо посадить траву и в течение 200 лет аккуратно подстригать ее.
Бородатый анекдот времен СССР

На днях перечитывал всякое разное про ИТ и наткнулся на статью Joel Sposlky (ссылка на оригинал так как перевода не нашел) про то, что "настоящему" большому софту нужно не менее 10  лет (да, именно так, десяти!) для того чтобы "дозреть" до промышленного состояния.

Статья, прямо про наш проект Loan Workbench (нам уже 5, нет 6 или 7, но еще не 10 лет :).
В любом случае, готов подписаться почти под каждым словом автора.

13 марта 2012 г.

Confirmation of Registration или как китайцы "кидают" на продаже доменов

На днях получил письмо от китайской компании следующего достаточно угрожающего содержания. Мол к нам поступил запрос от ЧП Вася Пупкин "Acada Int'l Co., Ltd" на регистрацию softgenic в качестве сетевого бренда (Net Brand) и о покупке доменов в разных азиатских зонах и список из штук 20 доменов 2-3 уровня. Мы, посмотрели, что домен softgenic.com зарегистрирован на вас у вашей компании название похоже и решили получить у вас подтверждение. Если вы не против этой сделки - отпишитесь нам. Если мы не получаем от вас ответ в 7 дневный срок - мы завершим данную сделку.
If you are not in charge of this please transfer this email to your President or appropriate person, thanks.  
Dear President, We are the department of Asian Domain Registration Service in china. I have something to confirm with you. We formally received an application on March 8, 2012 that a company which self-styled "Acada Int'l Co., Ltd" were applying to register "softgenic" as their Net Brand and following domain names:
Afterour initial checking, we have found the name were similar to your company's, so we need to check with you whether your company has authorized that company to register these names. If you have authorized this, we will finish the registration at once. If you have not, please let us know within 7 workdays, so that we will handle this issue better. Out of the time limit we will unconditionally finish the registration for "Acada Int'l Co., Ltd".  
Best Regards,
Tim Hong
Registration Dept.Tel:+86-5515223114 || Fax:+86-5515223113Address:No.1688 Taihu Road,Baohe District,Hefei,Anhui,China 

Сперва я "напрягся", но после непродолжительного поиска понял, что это такой навязчивый  китайский сервис по продаже доменов. Никто наши домены ни в какой зоне не покупал и, скорее всего, не запрашивал (да и кому они, положа руку на сердце, нужны?).

А вот получив такое вот письмо сразу возникают мысли, а не прикупить ли парочку, пока еще не поздно... Тем более ссылки под рукой (т.е. прямо в письме).

Вот, кстати, подтверждение, что такое письмо "счастья" пришло не одному мне.

P.S. "Порадовали" цены на домены в Тайване (зона tw) - от 200 евро в год (хорошо живут тайваньские товарищи!).

26 февраля 2012 г.

Windows 8: ARM архитектура == смерть .Net и Silverlight?

Но рок-н-ролл мертв, а я-а-а-а ... еще нет...
Б.Г. (который не Билл Гейтс, а Борис Гребенщиков)

Мыслей много, с чего бы начать ...
Начну, пожалуй, так - 8 лет назад (в далеком 2004 году) Joel Spolsky написал замечательную статью - Как Microsoft проиграла битву за API (оригинал статьи - How Microsoft Lost the API War). Правильных мыслей в статье много и она остается актуальной и по сей день. В общем и целом статья сводится к одному предложению: Microsoft утратила религию обратной совместимости (eng. "Microsoft Lost the Backwards Compatibility Religion"). На тот момент речь шла о том, что утеряна обратная совместимость между новой платформой .Net и старыми языками (Visual Basic и Microsoft C++) - т.е. если Вы писали на чем-то "старом", то вам нужно все учить заново и практически с нуля.
Для молодого поколения, напомню, что платформа .Net появилась в 2002 году и примерно в 2003-2004 годах состоялся достаточно большой отток разработчиков Microsoft на другие средства (в том числе и прямого конкурента .Net - Java). Объясняется это просто - зачем инвестировать (в том числе время) во что-то новое с еще сомнительным будущем, если есть более "вкусные" для изучения языки/платформы? Тем более, что формально заявленные средства конвертации старого кода в новый попросту не работали. Например, мне не удалось за 2 недели портироать проект VB6 в 40тыс.строк кода на .Net. Проще было написать этот же код на .Net заново.

Итак, прошло 10 лет, Microsoft всех кто остался (и появился новый) приучила к платформе .Net, которая должна работать на всех современных версиях Windows и даже на мобильных устройствах (я про Windows Phone 7).

И вот новая версия Windows 8 уже не за горами. А в ней много всего "вкусного" и в том числе работа не только на Intel архитектуре, но и на ARM. И что мы видим - судя по всему .Net на ARM не будет (по крайней мере в обозримом будущем)! Мало того, бинарно приложения для ARM и Intel совместимы не будут (хотя это как раз более-менее прогнозируемый момент).
But at least with Windows 8 on PCs running Intel and AMD architectures (x86/x64), most Windows apps since version 3.0 will run on the Desktop. This will not be the case on Windows for ARM for an obvious and unavoidable reason: Applications compiled to run on these processors are not code-compatible with ARM-based platforms. And managed apps made for the .NET Framework - which as late as Spring 2011 was still being touted as the platform of Windows' future - will not run on WOA because the .NET Framework is not code-compatible with ARM, at least not at this time.
Как следствие - разработка для Windows 8 под ARM архитектуру будет "сбоку" от основной разработки и совсем уже не на .Net (а на чем? C++? In one sense then, the fears of .NET developers were justified and COM has its revenge). Эта сиутация ничего Вам не напоминает? Мне - 2002 год и переход с C++/VB6 на .Net.

Т.е. если бы я был разработчиком .Net и захотел "для" себя по программировать под мобильные платформы (tablets, smart-phones и т.д.), то скорее всего выбрал бы не С++ (или что там будет для ARM?) от Microsoft, а Objective C для Apple (рынок больше, стоиомсть разрабочика дороже) ну или Java для Android (тоже неплохо и не нужно "возиться" с очисткой памяти).

Теперь поговорим о том почему скорее мертв .Net, а не Windows на ARM платформе.

1. Если верить одному из со-ведущих постоянных гостей шоу Радио-Т Петру Диденко, Microsoft в данный отрезок времени руководят продавцы. 2011 год был для Microsoft супер успешным с одной стороны (полученная прибыль превысила прогнозную), и в то же время их давние "партнеры" IBM и Apple "обошли" их по уровню капитализации, чего не было с давних 80-90 годов прошлого века. Иными словами, одна из главных задач Стива Балмера и Ко на 2012-2013 года это сохранение и увеличение прибыльности, увеличение капитализации компании одновременно с позитивным PR'ом Microsoft повсюду (а то для многих она по прежнему остается империей зла).

2. Для тех кто не заметил, мы с Вами живем уже в post-PC эру - т.е. время, когда компьютеры у нас дома повсюду: в телефоне, часах и автомобиле. К чему привело такое смещение акцентов? К уменьшению продаж компьютеров для домашних пользователей (я про desktop'ы и notebook'и/laptop'ы) и ... уменьшению доходов с этого сегмента, которые достаются Microsoft. Я знаю уже определенное количество людей, которые заменили старый домашний компьютер на планшет и вполне комфортно себя чувствуют. Т.е., с точки зрения Microsoft, домашним пользователям будет все сложнее продавать лицензии Windows и Microsoft Office. Значит нужно сделать так, что Windows и Microsoft Office появились и на других устройствах...

3. Мобильные устройства на Intel архитектуре не получаются :( Т.е. получаются, вот только автономность, уровень шума/температура оставляют желать лучшего (те кто смотрел "ужастики" на Intel планшете, когда в самый ответственный момент включается вентилятор меня поймут ;).

Если я прав по пунктам 1.-3., и Microsoft не захочет терять рынок домашних пользователей (это противорчит пункту 1., играм с Nokia и было бы попросту глупо) и сосредотачивать только на корпоративном сегменте, то компании необходимо как можно скорее переключаться с Intel архитектуры на ARM, брэндировать новый продукт как ОС Windows 8/Microsoft Office 15 (что-то мне не верится, что с точки зрения исходного кода это будет один и тот же продукт для разных платформ), привлекать разработчиков и выпускать дешевые (бесплатные?) средства разработки для ARM.

Итого получаем по .Net
1. Переход с тезиса .Net - наше все для Windows (и не только - я про Mono), на .Net - наше все для Intel.
2. Если б я был султан разработчиком Microsoft (не являюсь таковым с 2005 года) и мне нужно было начинать новый "большой" проект, я бы много раз подумал начинать ли его на .Net или попробовать что-то новое.
3. Кажется, что усилия по развитию .Net пойдут на убыль: нужно поддерживать две ветви средств разработки (а то и три?): платформа  .Net,  средства для разработки не .Net приложений для Intel архитектуры, средства для разработки под ARM.

Про Silverlight
С ним ситуация совсем очевидна - он мертв Microsoft сместила интерес в сторону HTML5. Вопрос с ним такой же как и с Flash'ем от Adobe - как долго будут поддерживать и когда закроют (те, кто пропустил Flash для мобильных устройств уже прекратил свое существование).
Для меня в этой "кагорте" языков(или платформ? как их правильно называть?) остается только один открытый вопрос - JavaFX. Но здесь все в руках Oracle. Подождем ...

Заключение
Жаль, что в лагере Редмонда "рулят" продавцы. Очередной "прыжок" в сторону нового и поворот "не лицом" к старым апологетам Microsoft. Хотя ... может все мы ошибаемся и Microsoft еще всем нам покажет ...

25 февраля 2012 г.

"Лечим" D-Link DIR-685 от зависания и рестарта

Неделю назад написал статью о том как настроил в офисе роутер D-Link DSR-1000N для работы с двумя интернет провайдерами. Статья вызвала интерес (реально много заходов по ней) и я решил немного продолжить тему роутеров.

Стоит у меня дома уже пару лет вот такой вот "зверь" - D-Link DIR-685 (Hardware Version : A1 Firmware Version : 2.00NA). И все бы с ним было более-менее, если бы он периодически не перезапускался. "Вылечил" я эту болезнь абсолютно случайно - обратил внимание, что меня постоянно сканят и flood'ят какие-то нехорошие люди (смотреть статистику в разделе Status, Log):
Feb 25 06:29:32ATTACK Detected: 002[PING-FLOODING] attack from WAN (ip:96.242.232.31) detected. Packet dropped.
Feb 25 06:24:57ATTACK Detected: 002[PING-FLOODING] attack from WAN (ip:77.109.0.58) detected. Packet dropped.
Feb 25 06:24:54ATTACK Detected: 002[PING-FLOODING] attack from WAN (ip:94.154.212.241) detected. Packet dropped.
Feb 25 06:24:53ATTACK Detected: 002[PING-FLOODING] attack from WAN (ip:77.109.0.58) detected. Packet dropped.
Feb 25 06:24:51ATTACK Detected: 002[PING-FLOODING] attack from WAN (ip:83.228.10.61) detected. Packet dropped.


И закралась у меня мысль, что в этой "железке" (а точнее в ее софте), что-то не так  с буфером входящих пакетов (т.е. он, конечно, пишет, что пакеты dropped, но скорее всего все таки происходит переполнение буфера и, как следствие, зависание и reboot роутера).

Собрался я уже firmware перепрошивать на какой-то очень custom'ный (например, с ftp.dlink.ru), но как-то было боязно, так как аппарат приехал ко мне из USA. Вдруг у него там внутренность другая, с нашими прошивками не особо совместимая.

В общем, обновлять firmware я не решился и на всякий случай отключил ответы на ping'и по WAN порту: Advanced, Advanced Network 
Enable WAN Ping Response :   
и сазу аппарату моему полегчало.

Полет уже более 5 дней и проблема зависаний и reboot'ов, надеюсь, решена :)
Connection Type : Static IP
Cable Status : 100 Full
Network Status : Connected
Connection Up Time : 5 Days, 18:04:14


Так что статистику у меня по D-Link'у стала еще лучше стала. Из 5 "коробочек", которые держал в руках 4 "пахали" и одна сгорела ;(

11 февраля 2012 г.

Интернет!? Дайте два... или два канала интернет в офисе на D-Link DSR-1000N (за 300$)

Для многих интернет давно стал не роскошью, а средством. Средством коммуникации, поиска информации, развлечения и общения. Сложно сформулировать, чем для современного человека является интернет. Он ... как электричество, воздух или лифт - когда интернет есть, ты его не замечаешь, а когда его нет - становится достаточно сложно.
Иными словами многим хочется иметь надежный канал выхода в интернет за разумные деньги. Как показывает практика, у любого, даже самого надежнего интернет провайдера случаются аварии и два канала доступа в интернет становятся обязательными для очень многих (быстрый - основной и подешевле - резервный). 
Для локальных (домашних) целей обеспечить резервный канал элементарно - мобильный интернет через телефон или любое другое GPRS устройство.
Другое дело когда у вас компьютеров несколько (скажем, небольшой офис на 5-10 рабочих станций плюс пара серверов): иметь на каждого потребителя резервный мобильный канал дорого и не эффективно (переключение каналов будет, скорее всего, происходить вручную, что не добавляет здоровья ни сотрудникам, ни системным администраторам).
Конечно, можно подкючить мобильный интернет на маршрутизатор (если он это позволяет) и автоматически или полуручным способом их переключать. Но для меня это не альтернатива по многим причинам: 
  1. ширины (т.е. пропускной способности) канала мобильного интернета на всех не хватает,
  2. маршрутизатор зачастую стоит в зонах с плохим покрытием мобильных операторов (например, те же серверные :)
  3. требуется ручное переключение доступа, что также не всегда возможно.
Итак, решено - берем два интернет канала, роутрет с двумя WAN портами и двух независимых интернет провайдров.
В качестве роутера я себе выбрал D-Link DSR-1000N (есть еще его "младший брат" D-Link DSR-500N - такой же, но на 50$ дешевле и без чего-то там неважного :). Для тех, кто "в танке" - N означает Wi-Fi 802.11N. Если Wi-Fi не нужен - есть модельки подешевле и без N.
Верить ли в D-Link или нет - каждый решает сам. Я с ними "живу" уже около 10 лет. Было 5 "коробочек": 3 удачные, 2 нет (одна сгорела, одна "глючит" и не перепрошивается). Был опыт с Linksys'ом с еще худшей статистикой: 2 "коробочки" и обе неудачно глючные.
Конечно, если Ваш бюджет позволяет выбрать решение от "дорогих производителей" (т.е. CISCO), то брать китайско-российские поделки сысла нет, но на мой бюджет D-Link - это самое то.
Как его правильно "готовить" - опять же вопрос вкуса. Я сделал в офисе следующее:

I. Создал резервный вариант маршрутизатора:
  1. Мой "быстрый" провайдер прописывает у себя mac адреса полключаемых к нему устройств. По-этому прописал в один из WAN портов  DSR-1000N  mac адрес WAN порта старого маршрутизатора и задал соответствующие настройки.
  2. Проинструктировал пользователей, что если новый маршрутизатор выйдет из строя, то достать из стола старый, включить в розетку и подключить два кабеля: WAN и дальше на LAN и сделать вид, что так и было :).
II. Подключил два WAN порта:
  1. Ethernet в первый от провайдера (как было описано в I.)
  2. Ethernet через DSL во второй (здесь пришлось немного "повозиться" PPPoE, DSL роутер в режим "маршрутизатора").
III. Убедился, что оба WAN'а "подняты" и настроил балансировку нагрузки:
  1. Состояние обоих WAN'ов видно в web консоле на закладке Status.
  2. Балансировка позволяла делать разное, но для меня наиболее удачным стал вариант Round-robin - выбор наиболее быстрого канала.
  3. В качестве критерия выбора - время ping'а DNS сервера провайдера. Здесь есть маленькая тонкость: у моего основного провайдера очень эээ .... плохой DNS сервер (даже когда канал есть, DNS сервер периодически недоступен). По-этому я прописал в качестве основного DNS сервера основного провайдера 8.8.8.8 (бесплатный DNS от Google).
IV. Тесты:
  1. Тестировал я через  http://www.speedtest.net Так как "ширина" каналов разная - сразу видно на каком из WAN каналов идет работа.
  2. Выдернул кабель из WAN1 - убедился, что работа не прервалась и что тест (и trace :) показал работу на DSL канале.
  3. Подключил WAN1 и убедился, что все восстановилось "само" :)
V. На практике:
  1. Схема пока живет "аж" второй день. Но вчера уже все было ОК - когда основной провайдер в пятницу вечером начал "лагать" (т.е. ping 8.8.8.8 ухудшился) - роутер перешел на второй канал, а спустя минут 40 вернул все "как было".
  2. Опрос работающих пользователей никаких нареканий не вызвал :)
  3. Реально D-Link DSR-1000N мы используем уже четвертый месяц. Нарекания на него есть и об этом ниже.
VI. Нарекания на D-Link DSR-1000N:
  1. Долго включается. Раза в 2-3 медленнее любого остального обордудования того же класса с котороым я имел дело. Иногда, уже начинаешь нервничать, что "все пропало" (например, после перепрошивки), а это он еще "не поднялся".
  2. Прошивка, которая из коробки, она слегка "глючная" в web интерфейсе (не открываются некоторые страницы - например, dashboard).
  3. Прошивка, которая из коробоки, как-то странно себя ведет с шифрованием Wi-Fi. По сути есть только WEP (WPA 2 - почему-то нет). Есть новые прошивки на сайте, но об этом ниже.
  4. Web интерфейс заставил зарегистрироваться иначе не хотел "сам" проверять прошивку. Первый раз у меня такие сюрпризы с маршрутизиторами. Чай не iPhone, чтоб активироваться ;). После регистрации ничего не нашел, хотя на ftp.dlink.ru новые стабильные прошивки были ;(
  5. Не опознал мой USB CDMA модем (может и не должен). Вообще, тема, что к нему что-то еще третье можно воткнуть через USB как-то странно раскрыта в документации (или это я такой тупой :). Как я понял, нужно определиться - или WAN 2, или USB модем. Перечня совместимых модемов я не нашел. В общем, если кто-то из Украины заведет его с МТС модемом и поделится инфой как его "правильно готовить" - с меня пиво.
  6. Есть новые прошивки на ftp.dink.ru. Они даже ставятся. И, о чудо! С них даже можно откатиться!!! В них даже решены проблемы из пунктов 2., 3 и частично 5. (вроде бы разделили WAN 2 и USB модем можно на WAN 3 "повесить"). Вот только одна проблема - не работает Wi-Fi. Причем именно не работает :) Проверяли в офисе на 3 ноутах разных производителей - эффект такой: коннект с Wi-Fi есть и не пропадает, а вот соединения по tcp/ip (или ниже) рвутся. Что видят пользователи: постоянно переноннективающийся skype, при попытке открыть часть страниц - не открываются, но помогает refresh, попытка скачать файл - пытка, присоединить документы в gmail не получилось ни у кого.  Экспериментировал с разным шифрованием трафика Wi-Fi (и даже без шифрования) - проблема остается при любом из вариантов. В общем если кто-то еще отважится на экперимент по обновлению прошивки и у него останутся работать основные функции и "вылечатся" часть из описанных мной багов - дайте знать. 
Итог
На рынке появился класс недорогих маршрутизаторов с двумя WAN портами и поддержкой Wi-Fi. При бюджете в 300$ на них можно перейти и решить вопрос с недоступностью интернета, при этом обеспечив как резервирование канала связи, так и резервирование самого маршрутизатора.

Update от 16.03.12
Мне тут написали, что уже вышла де новая прошвка 1.04B58_RU и что в ней решены все описанные мной проблемы. Враки! Все кроме одной - по прежнему не работает skype  (чудом в него два раза входил, но это было ненадолго и не считается :). Документы как-то в gmail'e upload'ятся, но я бы сказал, что медленнее чем на текущей прошивке  1.03B43_RU. Что-то существенное докрутили в поддержке PPPoE, работе с несколькими WAN'ами (определение "упавшего" и "подняти" нужного) ну и WAN3 (только для моделей DSR-*N) с WPA2 (всего исправлено 59 bug'ов и добавлено 11 новых features - прямой линк на changelog).

2 ноября 2011 г.

Фраза дня :)


Да, для кого-то самовосстанавлияющиеся системы - это мечта, у нас это давно случайная реальность :)

Из рабочих обсуждений