raven

Про рекламу

Нет ничего глупее контекстной рекламы.
Она показывает товары которые я уже купил и услуги которые мне уже не нужны.

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

Машины и мораль

Поскольку сейчас вовсю разрабатывают автопилотируемые машины, то активно обсасывается популярная тема насчет машин и морали. Дескать вот, роботы начнут принимать решения о человеческих жизнях, как же так? Мол как это всё непросто!

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

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

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

Самый распространенный пример: едем разрешенные 60, из-за припаркованной машины неожиданно под колеса выскакивает ребенок. А рядом по тротуару идет бабушка. Затормозить не успеваем, но можно свернуть на тротуар и сбить бабушку. Так кого же сбиваем? Ах, какая сложная моральная дилемма!

На самом деле все очень просто: тапок в пол и вызываем ребенку скорую. Потому что в подобных ситуациях отрицательная обратная связь должна прилетать именно нарушителям ПДД.
raven

forEachField

В последнее время выдалось много всякого метапрограммирования.
Клепаю сериализаторы, загрузчики, репликацию и даже маленькую, но гордую самодельную ORM.

Инструменты стандартные: reflection, шаблонная магия, кодогенерация...

И вот подумалось: ну почему в мейнстримовых языках нет простой, но полезной конструкции forEachField?

Чтобы можно было скормить ей лямбду, и она на этапе компиляции развернулась в перебор по полям. Как бы все упростилось! Все эти сериализаторы и прочее, которые сейчас приходится изготавливать с помощью всяких хитрых тяжеловесных извращений, можно было бы делать как два пальца...
raven

Житейское дело

Постирал билет на метро в кармане куртки. Билет превратился в мокрую бумажную кашу. А в нем еще 30 поездок было: абыдна.

Из каши извлек пленку с наклеенной разводкой контуров. Подумал: должна же работать, ей то что будет?

И действительно, работает :)
raven

Швейцарский референдум

Вокруг все обсуждают референдум в Швейцарии, где собираются выплачивать по 2 500 франков просто так.
Апологеты идеи считают, что дескать, это пойдет на пользу. Мол люди все равно будут работать, но зато смогут сосредоточиться на правильных и нужных вещах.

Однако если посмотреть кто выдвигает эту инициативу, то становится смешно: писатели, художники и прочая интеллигенция. Ну то есть понятно: они хотят творить, а чтобы их за это кто-то кормил и одевал.

Вот только не будет это работать.
Допустим сидит художник, рисует картины, ему платят пособие. Вроде все хорошо: человек работает. Вот только как решить, нужны ли его картины хоть кому-нибудь, или это просто мазня, которой место на помойке? Конечно, деньги не самый лучший критерий, но другого то нет. Покупают твои картины - молодец, твори дальше. Не нужны: извини парень, но кормить даром тебя никто не собирается, иди в посудомойки.

Если платить деньги просто так, то проблема будет не только в куче бездельников, которые сидят у государства на шее. А таких тоже будет немало.

Проблема еще в том, что все тут же, разумеется, захотят заниматься "интересной и творческой" работой. Зачем мести улицы или укладывать шпалы, если можно жить на пособия и пытаться реализовать себя? Дураков нет. Все начнут писать бездарные картины или никчемные стихи, конструировать неработающих, но гигантских человекоподобных роботов, изобретать вечные двигатели и т.д. и т.п.

Оплата - это обратная связь на востребованность результатов труда. Не идеальная, но без неё просто работать не будет.
raven

Про первичность данных

Представьте себе, что вам нужно что-то запрограммировать. Какой-то продукт или фичу. С чего же начать?

Ну понятно, что сначала надо вытрясти все требования, продумать user stories. Этап конечно важный, но в данном случае речь не об этом, пропустим. Будем считать, что первые требования уже собраны и надо браться за непосредственно разработку. Итак, что теперь?

Обычно в таких случаях говорят: ну надо сделать архитектуру. Без архитектуры никуда. Но что именно под этим подразумевается? И обычно дальше под этим подразумевают что-то типа: надо разбить программу на модули. Надо продумать иерархию классов. А какие будут сервисы. А какие интерфейсы. А давайте применим вот этот паттерн. Наверное, с этого и надо начинать?

Collapse )
raven

Эффект Стрейзанд

До недавного времени я не только не знал что такое Чарас, но даже и слова то такого ни разу не слышал.
А тут раз уж такой кипиш, невольно стало интересно.

Так вот, оказывается, чарас - этоCollapse )
raven

Пост ненависти

Посылаю лучи поноса тем, кто изготавливает автоматически закрывающиеся замки.
Устройства, которые способны создать кучу геморроя на ровном месте.
raven

Getting Things Done

Хотя книга очень известная и вышла довольно давно, попалась мне только сейчас. Очень жаль, что не раньше. Лучшее, что читал по этой теме.

Центральные идеи книги:

  • Для продуктивной деятельности и душевного спокойствия голова должна быть чистой и не беспокоиться о куче предстоящих дел.

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

Прочие запомнившиеся ценные идеи:

  • Для каждой задачи нужно выписать хотя бы первый конкретный шаг. Это позволит сдвинуть её с мертвой точки. Либо даст ощущение контроля: я знаю что надо делать, но пока время для этого не наступило. Я так решил.

  • Задачи следует группировать по месту выполнения. Например: дела которые я могу сделать дома, которые могу сделать на работе, в магазине, в метро и так далее. Это позволит не ковыряться на работе в ненужном сейчас списке домашних дел. А в магазине вспомнить что заодно надо купить еще это, это и то.

  • Нужно постоянно задавать себе вопрос "зачем я это делаю? Ибо люди действительно часто занимаются всякой фигней вместо того, чтобы получать то, что они хотят.

В общем, если вы испытываете беспокойство по поводу бардака в ваших делах (личных или рабочих, неважно) и хотели бы привести их в порядок - весьма рекомендую.
raven

Нужна идея для pet project

В последнее время что-то захотелось склепать что-нибудь в свободное время. Небольшое, чтобы по силам одному человеку по вечерам. Сайтик какой-нибудь или программулину для телефона. Но в тоже время не "hello world", а что-то реально полезное, и чего еще нет. Но вот что именно, что-то никак не могу придумать.

А вдруг у кого-то есть идея и ему её не жалко подкинуть? Типа вот было бы клево, если бы была такая программулина/сайтик...