четверг, 25 февраля 2010 г.

Фишинг: кто круче

По ICQ мне регулярно ломятся боты со ссылкой на фишинговые сайты в user details.

например, такие http--vkonatknte.ru-login.php?u=1&to=id14051778 (специально покалечил ссылку, чтобы никто не открывал)

Что интересно

  • Chrome знает что сайт - фишинговый
  • Mozilla - знает
  • IE8 - не знает

Вот так вот.

суббота, 20 февраля 2010 г.

25 самых страшных программистских ошибок

http://cwe.mitre.org/top25/

вариант CWE

вторник, 29 декабря 2009 г.

Use Case Diagrams

Интересно, это только я думаю, что Use Case Diagram в UML - вещь не только бессмысленная, но и вредная?

Что перечень сценариев и вовлеченных ролей проще и понятнее описывать в виде таблицы?

Что UCD без детального описания сценариев не имеет смысла, а с описанием - избыточна?

Что с заказчиком диаграммы Use Case непосогласовываешь?

Что отношения сценариев использования на обзорной таблице абсолютно бессмысленны и дезориентируют, что их лучше описывать непосредственно в описании сценария?

среда, 23 декабря 2009 г.

Обновление HTC Hero

Ну вот что, ЧТО заставляет людей писать вот такие описания в апдейте своего ROM

"As always, HTC is committed to providing customers with the best possible mobile experience. "

http://www.htc.com/uk/SupportViewNews.aspx?dl_id=671&news_id=254
это весь ихний дескрипшн. Что я из него должен понять?

понедельник, 14 декабря 2009 г.

UI: дружественная отработка неправильной раскладки клавиатуры

Чего хотелось бы от UI будущего – чтобы ситуация “пользователь забыл переключить раскладку” отрабатывалась бы как-нибудь дружественно.

То есть если у пользователя установлены английская и русская раскладки, и пользователь в поле поиска набрал “gbdj”, то система искала бы и “gbdj”, и “пиво”. В идеале, конечно, хотелось бы отработки и ошибок скорописи – перепутанных бкув, опеяаток, связанных с близкорасположенными клавишами и другого. Но хотя бы – отработка ситуации неверной раскладки.

Где нужно поддерживать:

* Всевозможные формы поиска
* Горячие клавиши, shortcut-ы
* Auto complete списки

суббота, 21 ноября 2009 г.

Про дизайн команды SQL WHERE

Встретил на bash-е:
“DileSoft: У команды UPDATE есть одна серьезная дизайнерская ошибка. Если скомандовать UPDATE table SET field=value, изменятся все строки в таблице table. Чтобы изменились не все, следует добавить WHERE. Это провоцирует серьезные проблемы, когда, забыв о WHERE, можно порушить огромное количество данных.

urandom: У дверей есть серьезная дизайнерская ошибка. Если прищемить яйца дверью, то яйца отвалятся.”
Мне очевидно, что комада WHERE спроектирована плохо, потому что синтаксис команды не защищает пользователя от ошибки (дает zero fool proof). Понятно, что “исторически сложилось”, “уже не поменять” и т.п. Я сейчас о другом.

Представьте, что было бы, если бы в интернет магазине вы забыли бы положить товар к корзину и оформили бы заказ, а вам в результате прислали бы все товары из магазина (и соответствующий счет).

С одной стороны, мы можем написать в help-е сайта, о том, что отсутствие товаров в корзине подразумевает выбор всех товаров, но с точки зрения нормального человека это нонсенс. И сколько было человеко-часов потрачено на исправления ошибок с пустым where – могу себе представить.

Думаю, что гораздо разумнее было бы задизайнить WHERE clause следующим образом:

1) Пустое WHERE возвращает пустор набор элементов;
2) WHERE с фильром ограничивает возвращаемые данные этим фильтром;
3) Специальное сочетание “WHERE ALL” возвращает весь набор элементов без фильтра.

В этом случае семантика клаузы WHERE была бы максимально приближена к естесственным языкам (что кстати и было одной из целей дизайнеров SQL).

А теперь про “яйца отвалятся”

Оппонент DileSoft-а показывает нам пример обычного, обывательского подхода: “Некто говорит нам что вещь, привычная и принятая в нашем обществе – неправильна –> Стебать этого самого некто”. Классическая травля несогласных в мини-масштабе.

Налицо позиция “то, что принято, оптимум есть”. А это ведь не так (почти всегда). И изменяют мир к лучшему как раз такие, как DileSoft, которые способны заметить и понять, что это не так.

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

В результате, из-за редкой ошибки в коде формирования фильтра (закончилось место на диске) он не был сформирован и вся наша команда получила незабываемые выходные, проведенные под знаком “руками все исправить быстро срочно”.

А вы говорите, WHERE…

понедельник, 16 ноября 2009 г.

Обзор: Телефон HTC Hero с интерфейсом Touch Sense или "Android, превед!"



Как некоторые уже знают, я после того как потерял свой iPhone на склонах Чегета, где-то с год не мог выбрать себе нового телефона, в результате чего пользовался Старой Нокией (tm), совершенно неубиваемой и удобной.

После iPhone ты уже не можешь купить обычный телефон – ту же нокию или sony ericsson – берешь телефонку в руки, крутишь, вертишь, нажимаешь какие-то кнопки, а потом плюешь и уходишь из магазина – ну нафиг такое счастье. Все как-то не так.