All streams
Search
Write a publication
Pull to refresh
346
Коробов Михаил @kmikeread⁠-⁠only

Пользователь

Send message
На хабре недавно статья была про бизнес-логику, там отлично была аргументирована позиция «в БД храним данные, а не логику». Причем даже безотносительно всех тех проблем, что написал MgDuke.
С сайта:

О моей работе
У меня свой центр. Личностного и духовного развития. Я организовываю семинары и тренинги. Иногда сам веду.
Многие люди думают, что тренинги – это секта. Когда я это вижу или слышу, мне смешно. Иногда грустно. Невежество пока еще рулит.
Иногда мне хочется пошутить над ними. И я начинаю говорить, что я действительно страшный сектант. Тот, который хочет промыть всем мозги. А вообще я люблю взрывать мозг. В смысле – рушить шаблоны и стереотипы людей.
Если ты, кто читает эти строки, думаешь, что я опасен, беги! А то я не дай бог и тебя зомбирую. Это может быть опасно меня читать! Правда! Закрывай страничку! Прямо сейчас!

брр, от меня — неполиткоррекстный тухлый помидор) Угу, готов к ответным.

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

Думаю, кстати, Вы часто встречаетесь с мнениями, похожими на мое, и были готовы к появлению их тут, так что ведусь на вашу задумку и пишу все это. А то как-то недостаточно тухлыми помидорами кидаются тут пока)
url namespaces — как я понял, побочный эффект рефакторинга админки. Крутая штука, позволяет иметь несколько инсталляций одного и того же приложения по разным адресам. Только в документации по этой штуке пока черт ногу сломит)
ничего серьезного, предоставили интерфейс для атомарного инкремента и декремента значений в memcached (и других)
JS может легко поломаться в середине своего выполнения, когда сообщение уже не покажешь.

Хм, а по моим данным Ваша оценка количества пользователей, у которых что-то не сработало (сотые доли процента) отличается от реальной в сотни раз. И оценка трудозатрат (в 2 раза больше работы на тестирование) тоже излишне завышена.

Да нет ничего сложного нет в том, чтоб сначала сделать вариант без js, а потом сверху «навесить» что нужно. Это миф какой-то про дублирование функционала. К контроллеру приходит запрос, если он аяксовый — отдается json с данными, если нет — рендерится шаблон. Дублирование функционала — это скорее проблема организации разработки, а не graceful degradation.

Если есть какой-то сложный интерактивный элемент на js — не нужно его полностью реализовывать в варианте без js, такой фанатизм — зло, конечно. Задача — чтобы сайтом пользоваться можно было нормально, не больше. Разумный компромисс найти всегда можно, и никакого увеличения бюджета это не несет.
А как неправильное кеширование зависти от Вашего документ.гет_эдемент_бай_ид?
Кеширование — это в настройках сервера. Например, отдастся клиенту старая версия странички вдруг. Из-за излишне агрессивно настроенного reverse proxy. Бывает такое на shared-хостингах. Или с http-хидерами перемудрит кто-нибудь. И скрипт какой-нибудь (не обязательно обработчик онСабмит, а что-нибудь еще) завершится с ошибкой из-за несовпадения его ожиданий по части html кода с тем, что есть.

Он может завершиться с ошибкой и из-за какого-нибудь кривого браузера. Или просто потому, что код кривой и где-то не работает, так тоже бывает, живем мы не в идеальном мире. Выберет, например, getElementById что-нибудь с name=myform вместо id=myform в IE. И у этой фигни с name=myform не будет метода submit(), и все упадет. Гипотетически такая возможность есть даже в этом элементарном примере. Причин ошибок в js может быть куча, от кривых рук разработчика до баннерорезалок, фаерволов и проксей на публичных точках wi-fi. При этом выполнение js на странице остановится. Причем часто не только того скрипта, где ошибка, а вообще всего js.

Особенность клиентской части в том, что ее ведь не проконтролируешь, и там много всякой дикости случается. Такие ситуации в прошлое вовсе не уходят. Быть может, даже наоборот — чем больше js на странице, тем более вероятно, что где-то в нем ошибка.
Нестандартное наименование системной папки может быть неплохим элементом защиты сайта. В таком случае в robots.txt его указывать — ошибка. В других случаях — без разницы, по большому счету. Но я б не сказал, что это хороший тон.
Почему-то в таких случаях всегда говорят про людей, которые отключают у себя js. И про мобильные клиенты еще. А ведь js может по каким-то причинам просто не загрузиться.

Медленный/нестабильный канал, ошибка в скриптах, неправильное кеширование, кривой прокси-сервер в корпоративной сети и тд. Вот для таких случаев тоже оч полезно иметь сайт, который будет продолжать работать без js.

Дело в том, что в случаях «отключил js» и «вышел в нет с мобильника» люди делают это осознанно, и как-бы сами виноваты. Поэтому как-бы можно сайт для них не вытачивать, сами разберутся. А вот в случае «js не догрузился» пользователи обычно уже ни в чем не виноваты и поделать ничего не могут, выручить может только предусмотрительный разработчик на белом коне с graceful degradation.

Поэтому я за то, чтобы не забивать на поддержку людей без js.

Книжка и вправду отличная.
Кстати, сам термин «data mining» в ней не помню чтоб даже упоминался) Алгоритмы-алгоритмы (местами сложные), понятным и интересным языком.
Кстати, я серьезно.
сейчас ничего не понимающие юзеры массово осваивают markdown! т.к. на «вконтакте» с помощью чего-то типа markdown разметка делается! так что можно ориентироваться на markdown! только называть его не markdown, а «как вконтакте»!!!
ab вроде бы просто тупой бенчмарк — натравили его куда-нибудь, и он запрашивает страницу с макс. возможной частотой. Поправьте, если нет, могу тут ошибаться, конечно, но на превый взгляд — так.

А siege умеет имитировать (в какой-то мере) действия пользователей. Например, N пользователей делают запросы (как GET, так и POST) к разным страницам, причем каждый пользователь — через случайный интервал времени (например, от 1 до 10с).
Ну siege — тоже «уже существующий инструмент», и совсем даже не новый) Как мне показалось — эдакая замена для ab, только понавороченней.
на главной странице сайта в первом абзаце:
Siege supports basic authentication, cookies, HTTP and HTTPS protocols.
:)
как раз пару недель назад прикрутил эту штуку к сайту pip.ec, можно там глянуть в действии (наводите мышкой на «поделиться», жмете «скопировать в аську»)
«Objective-C отстает от полностю компилированного кода на C++, но обходит Python (в лице Django) и PHP. Вот в этом старом тесте работа FOW (на базе ObjC) и Django сравнивалась на двух рядом стоящих серверах.»

В «этом старом тесте» по ссылке django работает в 2+ раза быстрее, чем fow, нелогично вышло немного)
Сейчас покритикую)

Выбор из списка (поле «статус») на первом ролике очень неудобен, т.к. при выборе не видно всех вариантов.

По сути, кстати, в разных ОС это ведь реализовано — смена вариантов в select'ах (combobox'ax) с помощью колеса мыши. Окажется фокус в комбобоксе, не заметишь, крутанешь мышкой — вместо прокрутки окна приходится заново выбирать пункт)

Сравните, чем это отличается от обычного выбора в выпадающем списке.

У вас:
тыкаем пальцем на поле, не отпускаем, ведем вниз, потом ведем вправо до тех пор, пока не попадем в нужный пункт (причем сами пункты при этом не видим!), отпускаем.

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

Особенность вашего варианта — то, что палец опускается на экран 1 раз. Система «нажал-повел пальцем-отпустил».

Минусы — смена направления движения пальца (вниз-вправо), палец нужно вести по экрану (если случайно оторвал — начинай сначала), ну и главное, конечно — какая-то игра на внимательность: двигаем палец, сосредоточенно всматриваемся в текст и пытаемся поймать момент, когда появится нужный. С точки зрения пользовательского интерфейса это просто ужасно, уж извините) На замену обычного «тык-тык и готово» ну никак не тянет, скорее какое-то издевательство.

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

В остальном тоже показалось, что когда вы делали все эти штуки интерфейсные, не сильно думали зачем и почему. Может проведете ревизию? Видно, что вы сделать технически можете все, но, как мне кажется, пока что-то не то делаете.
Опишу свои ощущения от макбуковского тачпада с мультитачем.
Изменение размера 2мя пальцами — как раз-таки не очень удобная и малоиспользуемая штука.
А вот прокрутка 2мя пальцами вверх-вниз — оч. удобно. Переход в браузере вперед-назад по взмаху 3мя пальцами вправо-влево — тоже очень удобно. Вызов expose по взмаху 4 пальцами вниз и последующий переход на нужное окно по обратному взмаху вверх — тоже очень удобно. Не представляю уже, как на ноутбуке с маленьким экраном без всего этого работать.
Попробуйте все ж, раз уж интерфейсами занимаетесь, строить интерфейсы на догадках — не очень хорошая идея. Движения по силам ничуть не затратны, т.к. двигаются-то ведь обычно не не пальцы, а кисть, и разница в жестах из 1 пальца и 3х пальцев — только сколько пальцев опустить на тачпад, это минимальные усилия. А вот в жесте 2мя пальцами для изменения размера приходится шевелить именно пальцами, и это действительно труднее.
И что? В любом случае, независимо от того, используется ли GIMP, Photoshop, MS Paint или любой другой редактор, нет смысла располагать картинки горизонтально, если потом жать все с помощью OptiPNG.

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Works in
Date of birth
Registered
Activity