4 февраля 2012, 22:42
Тележки в супермаркетах
Тележки в супермаркетах — очень классное изобретение.
В них помещается много товаров, и они занимают мало места, когда правильно составлены.
А паркуются они так:

одна тележка вставляется в другую, и задняя решётка поднимается — отличное решение.
Вы заходите в магазин, выкатываете тележку с парковки, и... задняя решётка с грохотом падает. Из-за этой особенности в час пик на входе стоит грохот.
Чтобы не приходилось зажимать уши и зажмуриваться, можно установить небольшие резиновые отбойники, например, тут:

В них помещается много товаров, и они занимают мало места, когда правильно составлены.
А паркуются они так:

одна тележка вставляется в другую, и задняя решётка поднимается — отличное решение.
Вы заходите в магазин, выкатываете тележку с парковки, и... задняя решётка с грохотом падает. Из-за этой особенности в час пик на входе стоит грохот.
Чтобы не приходилось зажимать уши и зажмуриваться, можно установить небольшие резиновые отбойники, например, тут:

нет комментариев
9 января 2012, 22:04
Профессионалу работы на час
Кто ни разу не слышал этой фразы — «Почему так дорого? Почему так долго? Там профессионалу работы на час!» — можете дальше не читать.
Вообще так говорить нельзя.
Во-первых, это неприлично: говоря эту фразу, вы намекаете, что перед вами не профессионал, даже если сами уверены в обратном.
Во-вторых, это неправда. Сравним автолюбителей и водителей-профессионалов: от Челябинска до Москвы примерно 1800 километров, это около полутора суток на машине или на поезде. «Профессионал» проедет это расстояние на пару часов быстрее, «любитель» чуть дольше. Но любому водителю придется преодолеть 1800 километров на автомобиле, и на это нужно значительное количество времени, вне зависимости от компетенций человека у руля.
Поэтому «Там профессионалу работы на час» — не аргумент в конструктивном диалоге профессионалов.
Цените время исполнителя так же, как свои деньги, и будет вам счастье.
Вообще так говорить нельзя.
Во-первых, это неприлично: говоря эту фразу, вы намекаете, что перед вами не профессионал, даже если сами уверены в обратном.
Во-вторых, это неправда. Сравним автолюбителей и водителей-профессионалов: от Челябинска до Москвы примерно 1800 километров, это около полутора суток на машине или на поезде. «Профессионал» проедет это расстояние на пару часов быстрее, «любитель» чуть дольше. Но любому водителю придется преодолеть 1800 километров на автомобиле, и на это нужно значительное количество времени, вне зависимости от компетенций человека у руля.
Поэтому «Там профессионалу работы на час» — не аргумент в конструктивном диалоге профессионалов.
Цените время исполнителя так же, как свои деньги, и будет вам счастье.
3 декабря 2011, 18:26
Bitrix: отладочные сообщения
Как узнать, что вернула функция, что в массиве, что угодно? Нужны отладочные сообщения.
Многие выводят служебную инфу прямо на пользовательских страницах рабочего сайта, «по-быстрому», «посмотрю и уберу», «никто не заметит».
Это самое плохое, что можно сделать. Так делать нельзя. Запрещено. Ни в коем случае.
Как правильно показывать отладочные сообщения? Вариантов много.
JavaScript
Плохо: alert("cookies отключены").

Хорошо: console.log(document.location).

Результат работы console.log() в Google Chrome можно посмотреть в Developer Tools → Console, в других умных браузерах тоже есть инспекторы объектов с консолью.
Лучше использовать console.log(), потому что:
— можно скидывать в лог целые объекты;
— если вы забудете убрать запись логов из кода, пользователь этого не заметит.
PHP
Долгое время я использовал самописные функции для вывода логов на «чистом» PHP.
Вообще способ достаточно удобный и работает, естесственно, не только на битриксе.
Но в Битриксе есть встроенная функция для записи логов, и она мне нравятся больше.
Bitrix API
Функция AddMessage2Log() вообще-то крутая, и вот почему:
— записывает в лог сообщение с датой и временем;
— указывает, в каком методе была вызвана эта функция;
— можно указать, к какому модулю относится сообщение.
Например, если сделать так:
AddMessage2Log("получаем список инфоблоков", "iblock");
получим такое сообщение в логе:
2011-12-03 15:57:49 - iblock - получаем список инфоблоков
include < CBitrixComponent::__IncludeComponent < CBitrixComponent::IncludeComponent
Перед вызовом функции нужно сделать дефайн константы LOG_FILENAME с абсолютным путем к лог-файлу. Например, так:
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
Лучше это сделать один раз в /bitrix/php_interface/<ID сайта>/init.php и больше не менять.
Подробнее в документации.
Многие выводят служебную инфу прямо на пользовательских страницах рабочего сайта, «по-быстрому», «посмотрю и уберу», «никто не заметит».
Это самое плохое, что можно сделать. Так делать нельзя. Запрещено. Ни в коем случае.
Как правильно показывать отладочные сообщения? Вариантов много.
JavaScript
Плохо: alert("cookies отключены").

Хорошо: console.log(document.location).

Результат работы console.log() в Google Chrome можно посмотреть в Developer Tools → Console, в других умных браузерах тоже есть инспекторы объектов с консолью.
Лучше использовать console.log(), потому что:
— можно скидывать в лог целые объекты;
— если вы забудете убрать запись логов из кода, пользователь этого не заметит.
PHP
Долгое время я использовал самописные функции для вывода логов на «чистом» PHP.
Вообще способ достаточно удобный и работает, естесственно, не только на битриксе.
Но в Битриксе есть встроенная функция для записи логов, и она мне нравятся больше.
Bitrix API
Функция AddMessage2Log() вообще-то крутая, и вот почему:
— записывает в лог сообщение с датой и временем;
— указывает, в каком методе была вызвана эта функция;
— можно указать, к какому модулю относится сообщение.
Например, если сделать так:
AddMessage2Log("получаем список инфоблоков", "iblock");
получим такое сообщение в логе:
2011-12-03 15:57:49 - iblock - получаем список инфоблоков
include < CBitrixComponent::__IncludeComponent < CBitrixComponent::IncludeComponent
Перед вызовом функции нужно сделать дефайн константы LOG_FILENAME с абсолютным путем к лог-файлу. Например, так:
define("LOG_FILENAME", $_SERVER["DOCUMENT_ROOT"]."/log.txt");
Лучше это сделать один раз в /bitrix/php_interface/<ID сайта>/init.php и больше не менять.
Подробнее в документации.
3 декабря 2011, 16:43
Программист и дизайн
Программист, в особенности веб-разработчик, должен быть чуть-чуть дизайнером.
Не обязательно в графике, хотя бы в текстах: время работы правильно написать, знаки препинания расставить — дизайн же.
Максим Ильяхов говорит, что дизайнер должен уметь писать текст, потому что текст — инструмент дизайна, как графика, фото или анимация.
Программист постоянно использует этот инструмент, например, когда пишет документацию, инструкции для пользователей, кейсы по проектам. Значит, программист должен уметь писать тексты и, как следствие, грамотно говорить на родном языке.
Не обязательно в графике, хотя бы в текстах: время работы правильно написать, знаки препинания расставить — дизайн же.
Максим Ильяхов говорит, что дизайнер должен уметь писать текст, потому что текст — инструмент дизайна, как графика, фото или анимация.
Программист постоянно использует этот инструмент, например, когда пишет документацию, инструкции для пользователей, кейсы по проектам. Значит, программист должен уметь писать тексты и, как следствие, грамотно говорить на родном языке.
11 октября 2011, 23:29
Две кнопки в банкомате
Я стараюсь всегда расплачиваться картой — нет мелочи в карманах, кошелёк не забит бумагой, и нужная сумма всегда с собой. Но иногда нужна наличка, например, в такси или в небольшом магазинчике.
Недавно я торопился на один концерт, вызвал такси и пошёл в банкомат за «настоящими» деньгами, благо он находится недалеко от дома. «Сниму пару тысяч», — подумал я и уже потянулся к кнопке «Выдать 2000». «А что, если у таксиста не будет сдачи?». Я два раза снял по 900 рублей, и банкомат любезно выдал мне две купюры по 500 и восемь по 100. На всё ушло целых 5 минут, так как банкомат «выплёвывает» карту вместе с банкнотами, и её приходится вставлять снова.
Серьёзно, так происходит каждый раз, когда мне нужны наличные: банкомат не может просто выдать нужную сумму в удобном для меня виде.
В банкомате мне не хватает всего двух кнопок:

Недавно я торопился на один концерт, вызвал такси и пошёл в банкомат за «настоящими» деньгами, благо он находится недалеко от дома. «Сниму пару тысяч», — подумал я и уже потянулся к кнопке «Выдать 2000». «А что, если у таксиста не будет сдачи?». Я два раза снял по 900 рублей, и банкомат любезно выдал мне две купюры по 500 и восемь по 100. На всё ушло целых 5 минут, так как банкомат «выплёвывает» карту вместе с банкнотами, и её приходится вставлять снова.
Серьёзно, так происходит каждый раз, когда мне нужны наличные: банкомат не может просто выдать нужную сумму в удобном для меня виде.
В банкомате мне не хватает всего двух кнопок:

