• ООнанизм

    Познакомьтесь с объектно-ориентированным онанизмом:

    chai.should();
    
    foo.should.be.a('string');
    foo.should.equal('bar');
    foo.should.have.lengthOf(3);
    tea.should.have.property('flavors').with.lengthOf(3);
    

    Круто же? Просто.пишешь.слова.через.точку.и.все.понятно(). Недолго новый язык придумать:

    Пусть.Сумма.Равно.Единичка().Прибавить.Двойка();
    Сохранить.В.Базу.Пользователь().Созданный.Из.JSON.Строки.Введенной.Из.Консоли().
    

    Обычного ассерта недостаточно. В библиотеке есть Should, Expect и Assert. Почему нет Мамой.Клянусь, Бля.Буду или Стопудов? Чтобы уж точно быть уверенным, что тест работает.

    Конечно, этот бред зародился Джаваскрипте. Где же еще до такого додумаются? Но заразу начинают тащить в Руби и Питон. Языки группы риска.

    Что возвращает метод should? А что be, a? А если напишу .be.be.be.a.a.a("wtf")?

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

    У нас в проекте на Кложе 80 тестов и 800 ассертов, все работают на одном макросе is. А этим долбоебам нужен квази-язык чтобы.писать.в.объектном.стиле.потому.что.круто().

    Шизофрения, как и было сказано.

  • What to read #18

    Nice links to read:

  • The Wall (Music From The Film)

    What a rare album I’ve found! It’s the legendary “The Wall”, but captured directly from the movie with all the noises, phrases and ambients. Most of the songs are played within a symphony orchestra. There are also two tracks appeared only in the movie: “When The Tigers Broke Free” and “Empty Spaces”.

    Listen also to “Mother”, “The Trial” and “Comfortably Numb”. They sound quite different to the studio records.

    Oh god, that album made my week, not a day.

  • Будущее

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

    Вот Илья Бирман в заметке от 2014 года пишет, что в будущем не будет приватности. Совсем. И что сопротивляться этому глупо.

    Я эту заметку прочитал, и у меня один вопрос: где доказательства? Где ссылки, тренды, графики, суммарная стистика за последние 20 лет? В заметке всего лишь частное мнение, не подтвержденное ни чем. Просто Илье показалось, что прайваси не будет, а если ты думаешь иначе, то ты stupid.

    Не поленитесь, пройдитесь по каждому абзацу. Нет. Ни одного. Доказательства.

    Может, Илья пересмотрел на ночь Матрицу или произошел описанный им же случай – что-то брил в душе, а друг снял видео и выложил в интернет?

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

    Особо доставил пример с Google Glass. Прошло 3 года, очки не взлетели. Я помню, как в те дни выли журналисты, что каждый будет ходить в туалет с очками, снимать и выкладывать с сеть.

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

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

    По работе я пользусь непопулярными среди программистов технологиями: Емакс, Кложа, Лисп. Вы бы знали, сколько я слышал об их скорой смерти. Если б за каждый раз капало на счет 5 рублей, был бы уже олигархом. Но все никак не помрут, а сумма в инвойсах растет, да что ты будешь делать.

    Коллега недавно убеждал, что в будущем люди станут святыми. Следите за нитью: насытившись потреблением, человек потеряет нравственный ориентир, а потому отринет материальные ценности и примет бога. Оставим логику за кадром. Интересно другое: мысль была высказана так же безапелляционно и бездоказательно, как пишет Илья.

    А у меня теория о порабощении нас рептилоидами. В чем разница между идеей Бирмана и моей? Да ни в чем. Достаточно веры в свою правоту.

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

    Илья и другие: то, чем вы занимаетесь, называется экстраполяция. Продолжение кривой по видимому участку. Вы увидели какой-то тренд и спешите составить по нему прогноз. Очень опрометчиво. Специально для вас нарисовали картинку:

    xkcd

    Если сегодня у подруги 0 мужей, а завтра 1, то через месяц будет 30. Логично.

    Вы, Илья, кажется, знакомы с математикой. Не знаю, проходили ли вы полиномы Лагранжа. Это такие кривые, которые строят по опорным точкам. С ними забавная вещь – они ОЧЕНЬ плохо экстраполируются. График стреляет в потолок уже при приращении на единицу. То, что вам кажется прямой, может быть дугой полинома.

    История учит, что большинство процессов имеют скорее волнообразную форму, а события носят характер маятника.

    После Первой и Второй Мировых Войн нас убеждали, что люди уже не будут воевать. Воевали, и не раз.

    Коммунисты обещали светлое будущее. Убили массу людей и угробили страну.

    Недавно мне попалось видео пятилетней давности, где Владимир Соловьев сказал, что вооруженный конфликт России и Украины – это немыслимо и в принципе невозможно.

    Верующие две тысячи лет рассказывают, что завтра Иисус всех спасет.

    Популизм политиков даже не стоит приводить в пример. Политика и лживые прогнозы идут рука об руку.

    Меня бесит эта ложь. Теперь по поводу вашей заметки.

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

    Приватность – это не только про голые фото и секс. В сети навалом любительского секса. К приватности относится, например, проблемы со здоровьем, неудачные отношения, любовная переписка, исследования, подпольные проекты.

    Поисковик Duck Duck Go обрабатывает 20 млн запросов в день просто потому, что предлагает пользователям анонимность. Понимаете, человеку неудобно, когда он гуглил “простатит”, а завтра на любимимом сайте видит рекламу “проблемы с потенцией”. Особенно, когда коллеги смотрят в монитор и все понимают.

    Мое приложение Queryfeed, которое я написал в шутку, держит 6 млн запросов в день. Оно тащит данные из Твиттера, клиенты анонимны.

    Появился Биткоин – огромная распределенная система, где каждый плательщик и продавец могут оставаться анонимными при полной прозрачности сделки. Валюта биткоина за несколько лет взлетела до 1000 долларов. Откуда такой интерес? Анонимность.

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

    Представьте, если гинеколог выложит на Ютуб видео с пациенткой. Письмо любимой девушке опубликуют на пятничном ресурсе. Исходный код любой программы моментально утекает Гуглу и ФСБ. Заказчик читает вашу переписку с конкурентом.

    Если загуглите по словам “bullying suicide”, то откроется печальная статистика. Среди жертв травли полно тех, кого довели до самоубийства через интернет. К сожалению, им не сказали, что будущее еще не наступило и не стоит выкладывать сомнительные тексты и фото.

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

    Это происходит уже сейчас. В моем браузере 2 расширения для блокировки рекламы и виджетов. Все больше открытого ПО. Разработка Тора и криптовалют идет по всем фронтам. Торренты давили-давили, а они все живут.

    В каждом значимом храме РПЦ ставит глушилку телефонов. Зашел в храм – не можешь звонить. Уже сегодня в частном порядке можно купить глушилку Вай-фай или GPS-сигнала. Ими пользуются угоньщики автомобилей. Это значит, что если от слежки станет не скрыться, изобретут устройство для противодействия этому, которое каждый будет носить с собой как сотовый телефон.

    И последнее. Есть умный мужик Алан Кей, создатель парадигмы ООП (объектно-ориентированное программирование). Сегодня нет промышленного языка, который бы не поддерживал эту парадигму. Этому же человеку принадлежат слова:

    Лучший способ предсказать будущее – изобрести его.

    Приступив к работе над теорией ООП, Алан не стал заявлять на весь мир, что скоро изменит будущее. А ведь именно это он и сделал: вся ИТ-индустрия сегодня работает на его трудах. Он лишь сказал, что нелохо бы представить программу как набор объектов-клеток, которые шлют друг другу сообщения (Алан биолог по образованию), а потом долго работал. Но не писал в блоге, что ООП изменит мир. Почитайте его труды: в силу авторитета Алан может позволить себе самые дерзские прогнозы, но делает лишь предположения.

    Забавно, да? Человек, который уже изменил мир, не делал предсказаний. Тот, кто не изменил, делает. Это называется Эффект Даннинга — Крюгера.

    Короче, я за то, чтобы горе-предсказатели несли ответственность за свои слова. Особенно, если сильны в чем-то, например, дизайне, и поэтому пользуются популяростью в интернете.

    Читателю советую иметь больше критицизма, требовать факты и не верить случайным мнениям.

  • What to read #17

    I’ve got very interesting links today (most of them relate to Clojure and FP):

    • Fourteen Months with Clojure

      Building a server application with Clojure is a better experience than with many compiled languages, because as with any Lisp, you can just hotpatch everything in the REPL as you build it.

    • Changes I would make to Go

      In its current form, I prefer not to use Go. It is not that Go is bad - it is just that there are lots of languages available that I find more enjoyable. When I work with Go I cannot help thinking about how I could be doing things differently in another language.

    • Comparing Reagent To React.Js And Vue.Js For Dynamic Tabular Data

      ClojureScript version has a lot less syntactic noise, and I find this has direct impact on my ability to reason about the code. The more quirks there are, the more likely I am to misread the intent.

    • Why Functional Programming Matters

      23-pages academical paper that I’m going to read someday.

  • Шестнадцатая встреча

    Провел очередную встречу:

    • Kubernetes: деплой по-царски. Роман Гребенников

      Слайды

    • Основы машинного обучения. Дмитрий Соболев

      Слайды

    Следующая встреча в конце апреля. Хотите выступить – пишите в личку, чат Телеграма или создайте ишью в нашем Гитхабе.

  • Благотворительность

    Тема урока – благотворительность. Из разговора Мэтью, учителем английского:

    – М: Предположим, ты перевел Википедии 10 долларов. На что потратят эти деньги?

    – Я: Ну, хостинг, разработка движка, то, се…

    – М: Вовсе нет. Википедия не заинтересована в твоей десятке. Для них это ничто, пыль. Разговоры в духе “если бы каждый дал по доллару” – популизм.

    – Я: И на что же тогда?

    – М: Их заплатят оператору, чтобы он написал еще 20 писем и сделал 20 звонков. Понимаешь, им нужны только крупные суммы. Они получают их от богачей и меценатов, но до них сложно достучаться.

    – Я: Как это?

    – М: Есть люди, которые… ну, немного социопаты, но при этом очень богаты. Сотрудники Википедии пытаются донести до них мысль, что пожертвование возвысит их в глазах общества, сделает чище и добрее, даст смысл жизни и все такое. Даже отпустит грехи, как бы дико не звучало. На это уходит масса сил: нужно изучить психологический портрет богача, правильно составить текст, нажать на больные точки… И это работает. На раскрутку может понадобиться год, но бабла придет до отвала. А весь этот год нужно платить оператору, чтобы он не ушел. Так что твои 5, 10 или даже 100 долларов спустят на почтовые рассылки и телефонные звонки. И так везде, не только в Википедии.


    Учитывая, что Мэтт занимался благотворительностью со студенческих лет, ни минуты не сомневаюсь в его правоте. А уж как меня задрали спамом сотрудники Википедии после того, как я перевел им 100 рублей!

    Благотворительность – такой же бизнес, только немного с другим подходом.

  • Пятнадцатая встреча

    Забыл своевременно выложить видосы с прошедшей встречи. Александр, один из докладчиков, просил пока не публиковать его выступление. Так что на этот раз видео одно, зато какое!

    Евгений Рыжков отвечает на самые разные вопросы. Без слайдов, все внимание на аудиторию. Как всегда, с юмором, тонко и интересно.

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

  • Что почитать №16

    Думали, что я забыл?

  • Кавычки

    Некоторые языки программирования допускают два вида кавычек для оформления строк: одинарные и двойные. Это особенно удобно, когда в строке уже содержатся кавычки. Чтобы избежать экранирования обратным слешем, достаточно инвертировать крайние кавычки.

    Например:

    message1 = "Object 'foo' does not exist."
    message2 = 'Object "foo" does not exist.'
    

    гораздо удобней, чем

    message3 = "Object \"foo\" does not exist."
    

    Возникает холивар, какие кавычки использовать по умолчанию?

    Правильный ответ – двойные.

    Объяснение этому простое: если двойные кавычки работают почти во всех языках, то одинарные – только в некоторых. Согласно Сишному синтаксису, одинарными кавычками обозначается символ (Char), а не строка. Навскидку назову Си, Плюсы, Джаву, Кложу.

    Это не такие заурядные языки, чтобы их игнорировать. При копировании строк, например, XPath- или CSS-селекторов, начинается ад с исправлением кавычек. Выражение

    './/div[@id="foo"]'
    

    без проблем сработает в Джаваскрипте и Питоне, но не в Джаве или Кложе. Поэтому правильней записать его так:

    ".//div[@id='foo']"
    

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

    Запомните – двойные.

Страница 46 из 75