25 августа 2012 г.

Asus G55VW - производительность с нечеловеческим лицом

О срочном переходе на ноутбук Asus G55VW я упоминал в предыдущем посте.

С момента его экстренной покупки прошел почти месяц и я решил поделиться впечатлением о сем тайваньском чуде техники. Скажу сразу впечатления пока противоречивые, но об этом ниже. Лучше всего Asus G55VW характеризует текст из инсталляции Bluetooth драйвера - "Настройка быть официально вводить в должность кучер, нравиться ...". Asus он такой Asus ...

Сижу себе в офисе, работаю, никого не трогаю, считаю дни до отпуска и вдруг замечаю, что при коммите файлов в нашу систему контроля ревизий, что содержимое некоторых файлов было изменено (и не мной!) - произвольно добавлены некоторые символы по всему тексту. У нас такая напасть уже была как-то на сервере, когда операция копирования приводила к изменению содержимого файлов, так что я сразу начал готовиться к худшему и как оказалось не зря (о серверной истории - тогда вышел из строя контроллер жестких дисков, а наш хостинг отказался это чинить, что заставило заменить некоторые серверы на SAAS и переехать "в облака" :). Что произошло на моем старом добром HP 8530w пока не известно (не до него было), но подозреваю, что нечто подобное. Могу сказать, что пока я грешил на вирусы  и пытался переставить Windows, сделав предварительно бэкап данных с диска, ситуация ухудшилась (кто не знает как "по-быстрому" протестировать железо - поставьте на него базу данных потяжелее: лучше Oracle, но у меня даже Microsoft SQL Server не установился).

24 августа 2012 г.

Этот загадочный skype или кошачьи страдания на 80 порту

Прошла пора летних отпусков и время возвращаться к блогу.
Перед отпуском меня старый компьютер порадовал "вылетевшим" диском/контроллером и пришлось срочно переходить на новый (Asus он такой Asus, но об этом напишу как-то в другой раз).

Обновил все, что нужно, устанавливаю Java, Apache Tomcat (наше ПО Loan Workbench это т.н. трехзвенка, где на серверной стороне Servlet Container, а клиента мы "разворачиваем" через Java Web Start).

В общем, все как обычно запускаю и ... зависаю. Файл lw.jnlp скачивается (это descriptor Java Web Start - что запускать, зависимости и т.д.), а далее мне Java пишет, что этого файла на сервере нет. Других ошибок ни на сервере, ни на клиенте (даже в Java Console заглянул) - нет. Ну, думаю, глючная Java 7, ставлю Java 6 и ... то же самое.


9 апреля 2012 г.

"Лечим" skype на D-Link DSR-1000N


Не так давно писал о проблемах прошивки 1.04 на D-Link DSR-1000N/DSR-1000/DSR-500N/DSR-500. Проблема банальная, но для многих (и для меня в том числе) смертельная - по Wi-Fi не работает skype (а также, например, upload документов в gmail'e). 

После выхода прошивки 1.6 - проверил на ней. Проблема со skype осталась, но как оказалось уже есть workaround, для ее решения. Нужно в разделе Advanced, Website Filter включить "галочку" Enable Content Filtering (более ничего в этом разделе делать не нужно):

Content Filtering Configuration
Enable Content Filtering:
Web Components
Proxy:
Java:
ActiveX:
Cookies:


Работаем на прошивке 1.06B11_RU уже несколько недель - полет нормальный.

P.S. Выношу от лица клиентов D-Link персональную благодарность Юлии Самойленко из D-Link Украина за данный workaround. Будем ждать новых менее "глючных" прошивок от D-Link (:

Update 19.09.12
"Родное" решение данной проблемы от DLink.

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.

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 "пахали" и одна сгорела ;(

UPDATE: Превращаем D-Link DIR-685 в почти NAS сервер.

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).

Update от 09.04.12
Существует простой workaround, решающий проблему неработоспособности skype по Wi-Fi для прошивок версии 1.04 и 1.06. Подробности в отдельном посте. "Родное" решение от DLink.

Update от 29.08.12
Ссылка на австрийский pdf файл (на Английском) как "завести эту балалайку" на 300Мб. У меня он взлетал до 156, а потом падал до 56 снова. Вкратце: Channel spacing = 20/40 Mhz, Security  = WPA+WPA2, Encryption = TKIP+CCMP и Authentication = PSK.

Update 19.09.12
Часть ответов на вопросы по совместимости 3G модемов и родном решении по skype дана в отдельном посте.

2 ноября 2011 г.

Фраза дня :)


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

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

1 ноября 2011 г.

中國 или новые приключения Java в Китае


“Never tire to study and to teach others.” —Confucius

Неожиданно появилась третья (и что-то мне кажется, что не последняя) часть саги о путешествии Java по разным странам мира. Ранее были Украина и Азербайджан. Теперь речь пойдет о Китае (насколько я понял, данная проблема касается всех иероглифных языков: китайского, японского и корейского).

Слоган компании Sun Microsystems Oracle по поводу Java все мы хорошо помним "Write once, run anywhere". Действительно, так и происходит: пишешь один раз и с JVM от того же поставщика все работает как и ожидалось на разных ОС. В частности, наши продукты активно используются под Windows и Linux в разных странах.

И вот пригласили нас на китайский рынок. Тема интересная и большая: локализация ПО, подготовка документации и т.д.

Переводчики закончили с текстами, добавили их в ПО, запускаем и видим квадратики вместо иероглифов. После поисков виноватых и наказаний непричастных выяснили, что дело в Look&Feel, который мы использовали. Он де совместим с иероглифами только традиционного китайского и только под Linux. Ладно, Бог с ним. Перешли на другой L&F и все как будто бы наладилось. Квадратиков стало поменьше, но они по прежнему остались! Эмпирическим путем установили, что квадратики появляются только под Windows и только в момент когда идет изменение шрифта (стиль или размер).

В общем, не буду тянуть - Windows L&F очень (очень-очень-очень-очень) странно себя ведет с иероглифами:
  1. После его установки (иногда?) системный шрифт меняется на Tahoma, а иногда остается Dialog.
  2. Если шрифт остается Dialog, то иероглифы отображаются, но, в общем и целом, интерфейс начинает выглядеть "по уродски" (технический термин).
  3. Если шрифт становится Tahoma, то он может даже покажет Вам иероглифы, но вот малейшие с ним манипуляции приводят к квадратам (так и хочется не к месту вспомнить Малевича).
    В нашем случае вот такой вот код безбожно "квадратит": label.setFont(label.getFont().deriveFont(Font.BOLD));
И на сладкое, как это "лечится":
  1. Заменой L&F'a на какой-то иероглифо совместимый аналог. Важно его проверить под всеми ОС с которыми Вы планируете использовать свой продукт, а то могут быть "сюрпризы".
  2. Если это в силу каких-то причин сделать не возможно и нужно "жить" с "родным" Windows L&F, есть секретный слабо документированный параметр (точнее переменная окружения) swing.useSystemFontSettings. Нашел на сайте IBM JDK упоминание, что этот параметр по-умолчанию включен и он влияет на использование системных шрифтов для Windows L&F вместо "родных" шрифтов Java ("From v1.4.1 onwards, by default Swing programs running with the Windows® Look and Feel render with the system font set by the user instead of a Java-defined font. As a result, fonts for v1.4.1 differ from those in prior releases. This option addresses compatibility problems like these for programs that depend on the old behavior. By setting this option, v1.4.1 fonts and those of prior releases will be same for Swing programs running with the Windows Look and Feel."). На сайте Sun Oracle о нем как бы тоже говорят, но больше в контексте, что он существует, чем в контексте, а что он собственно делает.
Итак, для того чтобы в Windows L&F включить "совместимость" с иероглифами достаточно:
  1. Задать переменную окружения ОС (sic!) swing.useSystemFontSettings и поставить ей значение false (правда неожиданно :)?
  2. Или задать ее значение программно:
    System.setProperty("swing.useSystemFontSettings", Boolean.toString(false));
  3. Или любыми другими способами передать значение этой переменной в JRE. Например, в качестве параметра запуска -Dswing.useSystemFontSettings=false
К сожалению, после всех этих манипуляций Ваш продукт будет выглядеть не столь красиво :(.

P.S. Для полноты картины все же поясню, что "корень зла"  - это шрифт Tahoma, который не полностью совместим с иероглифами. Т.е. есть еще один вариант решения данного вопроса: глобальная замена шрифта Tahoma на более приемлемый.

15 октября 2011 г.

Полезные документы: проведение тендера и ИТ стратегия

Давным давно (в далеком 2007), кратко описал наш алгоритм выбора одной большой финансовой системы для десятка стран в Евразии.

Сегодня написал статью (точнее сделал cross-post цитат из статьи Борис Шлаина) о бизнес-аналитиках.

Автор статьи меня заинтересовал и пока смотрел, что "вкусного" есть на его сайте наткнулся на золото в области тендера и выбора решений:
  1. Разработка IT-стратегии
  2. Проведение тендера по выбору IT-решения

Обе ссылки на оригинальные pdf документы. Если они перестанут работать, всех направляю на сайт компании в раздел библиотека.

Кто такие бизнес-аналитики?

Давно хотел отметить труд "бессмертных" людей любого серьезного ИТ проекта - бизнес-аналитиков. Но, как часто бывает в Интернете, все уже "украдено написано до нас".

Так что привожу выдержки и ссылки на оригинальную статью Борис Шлаина "Бизнес-аналитик - свой человек за линией фронта".


Бизнес-аналитик – это, с точки зрения клиента, еще или уже не программист. Это человек, которому можно рассказать о бизнесе примерно так же, как пожаловаться своему врачу – и он должен где-то посоветовать лекарство, а где-то просто успокоить словом. А для руководителя группы разработки и архитектора бизнес-аналитик – это такой агент, шпион, которого можно «забросить за линию фронта» в компанию-клиента, чтобы он добыл ценные сведения о пожеланиях клиента и его стратегии развития своего бизнеса.
Сегодня под словом «бизнес-аналитик» скрывается две разные профессии:
  • Бизнес-аналитик в информационных технологиях – это человек, выступающий в роли интерфейса между ИТ и бизнесом, который может говорить на одном языке с представителями обеих областей и может организовать совместную работу над предметной областью. Его главная задача – сделать так, чтобы информационная система отвечала потребностям бизнеса. Бизнес-аналитик может быть связан с каким-либо определенным продуктом (консультанты по SAP), с узкой специализацией (розничные продажи и логистика скоропортящихся продуктов) или с конкретным предприятием (бизнес-технологи, работающие в ИТ-отделах крупных компаний).
  • Бизнес-аналитик в бизнесе – это человек, который умеет анализировать определенный вид бизнеса или процесса (непрерывное производство, розничный бизнес, управление проектами и т.п.) или круг задач в бизнесе (маркетинг, управление запасами, бюджетирование и т.д.). Его арсенал – это совокупность методик, а средства автоматизации являются при этом вспомогательными.

Бизнес-аналитик может представлять в проекте ИТ-компанию, компанию-клиента или быть независимым консультантом, приглашенным на проект. При этом функциональная роль бизнес-аналитика – интерфейс между бизнесом и ИТ – остается практически постоянной, вне зависимости от «юрисдикции».

Основная роль бизнес-аналитика – это разработка непротиворечивой и достаточно полной модели требований реального бизнеса. Это задача не столько описательная и созерцательная («просто напишите, как у нас все происходит и автоматизируйте»), а творческая. Уже расхожим стало выражение об «автоматизации беспорядка», которая только ухудшает общую ситуацию. Но и «прямолинейная автоматизация» очень часто исключает из процесса те самые «отдушины» и «обходные пути», которые и обеспечивают известную российскую «нестрогость законов» и позволяют бизнес-системе в целом работать.

Но достаточно часто бизнес-аналитик приступает к работе еще на этапе переговоров. В этом случае его задача – понять, насколько решение соответствует потребностям клиента, оценить «масштабы бедствия» и определить возможный объем доработок.

Особая роль принадлежит бизнес-аналитику на этапе внедрения. Его задача – «вписать» средства автоматизации в реальный бизнес-процесс. Бизнес-аналитик не обязательно разрабатывает документацию сам и тем более не обязательно непосредственно руководит внедрением – он формулирует требования, каркас документации и совместно с менеджером внедрения разрабатывает модель эксплуатации системы, решая задачи соответствия организационных и технических решений.

Работа в проекте – основная форма деятельности бизнес-аналитиков. Любой участник проекта должен понимать, что такое проект, как он управляется, из каких этапов он состоит и кто в нем участвует. В проекте бизнес-аналитик отвечает за управление информацией о предметной области: он может не только разрабатывать соответствующие документы, но и технологию, обучать и контролировать других членов проектной команды. Многие риски проекта связаны с ключевыми требованиями клиента, возможностью и полнотой их удовлетворения. Из всех дисциплин управления проектами – управление контрактами, управление ресурсами, управление персоналом и т.п. – управление рисками и управление информацией о предметной области являются для бизнес-аналитка приоритетными.

Бизнес-аналитик – существо общественное
Навыки коммуникации – «работы с людьми» – заслуживают отдельного внимания. При всем многообразии учебных курсов и литературы, большинство этих «источников квалификации» уделяют основное внимание методологии, правильному использованию нотаций и программных средств. Между тем не менее 35% времени бизнес-аналитика занято общением с коллегами и клиентами, и на практике основным способом научиться этому остается личный опыт.

Так или иначе, большинство российских компаний решают для себя эти задачи. И бывшие еще недавно «белыми воронами» люди с профессией бизнес-аналитика все чаще и – я надеюсь – все успешнее играют роль между бизнесом с его растущими требованиями и сферой информационных технологий с ее ограниченными возможностями.

2 июня 2011 г.

Операция Ы (I) или приключения Java в Азербайджане

Не так давно я писал о приключении Украинской гривны в Java. И вот - вторая серия: приключения азербайджанской буквы ı (I) (произносится примерно как ы). Ни в коем случае ее не стоит путать с аналогичной буквой из Английского языка i (I) - у них разные коды и ... ну просто это разные символы. И вот что странно, с Украинской буквой і (І) никто английскую не путает, а с Азербайджанской - увы ;(

Какие сюрпризы это готовит Java разработчикам - например, если в операционной системе установлены региональные настройки Азербайджанские, то вот такой вот код:
System.out.println("decimal".toUpperCase());
Вернет
DECİMAL
Да-да это азербайджанская İ, а в оригинале была английская i. Кто и для кого подготовил эту пакость неизвестно, но эффект от нее может быть неожиданным. Будем надеяться, что это bug, not a feature.

Как это все решается:
System.out.println("decimal".toUpperCase(Locale.US));

Или более глобально в начале программы в коде явно задайте default Locale, если это приемлемо.

15 мая 2011 г.

Фраза дня :)

Иногда в автоматизированных системах бизнес-логика реализуется так, что обвинять после этого женщин в бессвязности и непоследовательности - преступление

5 мая 2011 г.

Приключения украинской гривны в Java (Oracle)

Как оказалось, долгие годы в Java (Oracle) в определенных случаях неправильно отображался код украинской валюты Гривны для региональных настроек (Locale) Украина (uk_UA).
До версии jdk1.6.0_21 включительно код был грв.
В версиях jdk1.6.0_23 и jdk1.6.0_24 он уже стал грл. (судя по всему кто-то "промахнулся" с последней буквой "л" - "н", "Да какая разница ..." (С) Брат 2).
И вот только в jdk1.6.0_25 все встало на свои места Гривна стала грн.


Java код, который проверяет данный bug:
System.out.println(Currency.getInstance("UAH").getSymbol(new Locale("uk", "UA")));

2 июля 2010 г.

Skype: земной шар становится меньше :-(

Сегодня понял, что такое "земной шар становится меньше". Это когда коллега из Азербайджана просит пообщаться с каким-то незнакомым сербом, который в данный момент находится в Кении и который в свою очередь передает мне привет от россиянки сидящей с ним за соседним столом, с которой мы работали когда-то в Армении :). 

Всех нас объединил skype (:

3 мая 2010 г.

Кибер войны China vs Google (USA). Счет 3:2 ?

"Проморгал" интересную тему. C пол-года назад т.н. "китайские хакеры" что-то страшное хотели сделать с Google, но у них "ничего не получилось". По-крайней мере так это событие подавалось на большинстве новостийных сайтов.

Если кто-то как и я был "не в теме", рекомендую посмотреть ролик на CNET news или прочесть статью на www.theregister.co.uk. Вкратце речь идет о том, что группа неизвестных злоумышленников атаковала Google для получения доступа к каким-то исходным кодам, а походу попытались получить доступ к GMail ящикам пары диссидентов, но у них ничего не вышло, хоть в корпоративную сеть Google они и "вломились". Сервера, с которых шла атака, были в Тайване и еще в паре американских штатов. 

Само по себе событие достаточно обыденное. Интересно другое: в ходе этого же взлома упоминается еще 33-34 американские компании, среди которых Adobe, Yahoo и другие, большинство из которых факт атаки или не признали, или отказались отвечать на подобного рода вопросы. Крайне интересно освещение этой атаки в новостях BBC, где говорится только об атаке на почтовые ящики диссидентов (т.е. остальное был просто "отвлекающий маневр?").

Еще интереснее ответ Google представителям Китая (да-да не хакерам, о них вообще никто не вспоминает) - отмена цензуры на китайской версии своего сайта (официальный анонс в блоге Google). Давайте подумаем, какой резон коммерческой компании явным образом провоцировать конфликт с одной из своих крупнейших целевых аудиторий? Ответ мне кажется, очевидным - заказ. Чей заказ, я тоже думаю достаточно ясно - правительства США.

Теперь почему счет 3:2 (по крайней мере, в этом туре их противостояния)?
  1. 15-25.12.09 China vs Google (USA) 1:0
    Атака на американские ресурсы. Получение доступа к требуемой информации (судя по некоторым новостям, атака была успешной)
  2. 12.01.10 China vs Google (USA) 1:0
    Анонс Google об отмене цензуры на своем поисковике http://www.google.cn/
  3. 22.03.10 China vs Google (USA) 1:1
    Отмена Google цензуры на поисковике http://www.google.cn/
  4. 30.03.10  China vs Google (USA) 2:1
    Блокирование властями Китая ресурса http://www.google.cn/
  5. Начало апреля 2010 China vs Google (USA) 2:2
    Анонс Google об уходе с китайского рынка. Перенаправление всех посетителей на Гонконгский ресурс http://www.google.com.hk/
  6. 19.04.10 China vs Google (USA) 3:2
    Анонс о краже в ходе атаке парольного механизма Gaia (Single Sign-On) , который используется Google для доступа к большинству ресурсов (GMail, Picasa, Adwords, Adsense и т.д.)
Почему виноваты китайцы?
Мне точно не известно. Наверное, потому, что один из серверов с которого была атака расположен в Тайване и потому, что "почерк атак совпадает с подобными атаками китайских хакеров" (мой вольный пересказ текста из ролика CNews). Вам это ничего не напоминает :)? Например, Ирак или Югославию?

Вместо заключения
История взаимоотношений Пекина и Вашингтона стара и запутана (да-да не Google'а, а именно Вашингтона, так как какой резон транснациональной корпорации портить себе отношения с руководителями одного из самых лакомых рынков на планете мне не ясно). Например, если историки не врут, один из первых кораблей после объявления независимости будущих Соединенных Штатов Америки, отправился именно в Китай. Теперь по-теме: мы видим попытки одной из стран (США) несколько ослабить позицию другой (Китая). А в политике, как нам известно, все средства хороши.

Поговорим немного еще об одной избитой теме - независимости Google от правительства США. До определенного предела такая независимость, скорее всего, присутствует, но в крупных и международных делах такие транснациональные корпорации как Google будут действовать заодно с правительствами своей страны (не чувствуете иронию в "транснациональных" и "своей страны" :).

Фантастика
Странно, но в таких новостях мне все больше прослеживается аналогии и с киберпанком и со взглядом некоторых писателей-фантастов на постиндустриальное общество в котором мы с вами живем (например, цикл В.Панова "Анклавы": это мир "эпохи цифры" в котором есть и транснациональные "независимые" корпорации, "поднебесники", взломы и кибер-атаки).

Ссылки по теме: 

1 мая 2010 г.

Отзыв о работе книжного интернет магазина kniga.biz.ua

Магазин интересный: низкие цены, быстрая доставка, а теперь о плохом.

Сделал в этом интернет магазине заказ почти на 400 грн. (около 50$).  Быстро привезли и все было бы ничего, если бы черт меня не дернул задать им вопрос по-телефону. 

До того как купить книги "в бумаге" я прослушал одну аудиокнигу и в ней постоянно упоминались материалы на прилагаемом CD-диске. Купил у этих горе-продавцов эту же книгу и диска не нашел (скорее всего он прилагался только к аудиокниге). Сразу я этого не сообразил, и на свою беду "имел наглость" позвонить им в субботу в 11 утра и получил по 1-ое число "Какие диски !!??? Что Вы звоните с утра !!!" . 

Вот так хамство одного сотрудника перечеркивает весь наработанный положительный имидж компании: не хотите отвечать на вопросы клиентов - не оставляйте повсюду номера телефонов, не хотите отвечать на звонки утром - не снимайте трубку. А уж если вы оставляете свой номер телефона даже в книгах (они ставят штампы с информациоей о продавце на разворотах), и потом хамите своим же клиентам, то это называется одним словом - непрофессионализм.

В общем, если вам нужно недорого купить книгу - это хороший вариант, но не вздумайте обращаться с вопросами в эту компанию. Вам как и мне в лучшем случае нахамят, а то и чего похуже. Так что удачных покупок, а я в этот горе-магазин более ни ногой, ни мышкой. Как по мне, так лучше уж переплаить 10-20 грн.(2-3$) за книгу и сделать заказ в другом магазине, чем выслушивать о себе от ТАКИХ продавцов.

И подумайте еще об одном. Если после предоплаты Ваш заказ не будет доставлен, не поступят ли с Вами также как и со мной и не услышите ли Вы по телефону "Какой заказ !!!!???? Какие деньги !!!???"

31 января 2010 г.

Giveaway: 20 Google Wave invitations и 2 бесплатных купона по 300 грн. в Google Adwords

Есть 20 приглашений в Google Wave и 2 купона по 300 грн. (действительны до 31.03.10) для открытия account'a в Google Adwords. Отдам и то и дргое первым обратившимся.

UPDATE: Купоны у меня закончились, но случайно попал на сайт Приват-Банка, который судя по всем раздает те же самые купоны в неограниченном количестве до 1 августа. Спешите ...