Просмотров: 11435

NewsPack# 12: самые интересные ИТ-ссылки за прошлые недели


В течение трех недель нагруженные (по самое не балуй) роботы в чине «парсера» круглосуточно трудились «на моем подвале», чтобы отобрать для вас в плотном информационном потоке 40 (сорок) самых важных и прикольных ссылок/новостей из мира ИТ за последний месяц. Кто пропустил мои прошлые ссылочные шоу — вот их последний и предпоследний выпуски.

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

Хаджиме!

NewsPack# 12: самые интересные ИТ-ссылки за прошлые недели ссылки обзоры Ит айтишники приколы

1. Семь важных интернет-трендов от Мэри Микер

Это свежий helicopter view легендарного аналитика и предсказателя:

Русскоязычный читатель знает Микер по истории с Юрием Мильнером, который в 1999 году наткнулся на её доклад о развитии сети и принял судьбоносное (для себя) решение инвестировать в интернет, который впоследствии принёс ему миллиарды долларов. Вчера Микер выступила с очередным докладом.

В нагрузочку свежая презентация по этой же теме от другого чувака-прогнозиста:

2. Самомотивация к работе

Продолжая тему будущной ненужности менеджеров, на первый план выходит тема самомотивации, которая особенно остро стоит в ИТ, где многие и так уже пресыщены зарплатами и огромными бонусами. Далее цитата отсюда:

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

Прежде чем думать, как делать, стоит ответить на вопрос что делать и подумать, не заменяем ли мы одно другим. Вот тут-то и возникает вопрос «Что делать?», чтобы не требовался надсмотрщик, концептуально ответ на него простой — заниматься тем, что ты считаешь важным и интересным.

Тему эффективного самоуправления дополняет статья Как начать действовать: новое исследование механики прокрастинации:

Учёные Льюис и Ойзерман провели исследование, открыв новый способ борьбы с прокрастинацией. Подобных способов уже десятки, однако результаты исследования дают новую информацию о проблеме лени и желания откладывать всё на потом.

3. Big Macs vs. The Naked Chef — Joel on Software

Очередной провокационный текст от Джоела.

В своей новой статье он сравнивает потоковое производство «Биг-Маков» в Макдоналдсе с рестораном высокой кухни, где все чинно, полезно для желудка и даже очень эстетично. Джоел указывает на отвратительную масштабируемость хороших ресторанов и делает неожиданный вывод — бойтесь универсальных инструкций и методик, разработанных ИT-консультантами, возможно, сами вы ими (в своих личных целях) никогда бы не пользовались.

4. К чёрту талант?

Вводная цитата отсюда:

Учиться кодить очень трудно. Функции, проценты. Отступы и поля. Охватить нужно очень много, и еще больше, чтобы понять, как это писать. Я работаю в этой сфере уже 10 лет, и только сейчас я почувствовал себя чем-то вроде «эксперта» в том, чему я учу людей.

Поэтому послушайте, что я понял. На данный момент я научил программировать более 300 людей. Я знаю, что это трудная дорога с препятствиями. Но знаете, что ещё трудно? Ходить.

Вы не рождены с умением ходить, вам пришлось учиться и практиковаться. Тогда почему вы считаете, что можете стать мастером в кодировании в один момент? Почему вы уверены, что никогда не будете так же хороши, как «эксперты» в этой области? Вы считаете, им не пришлось практиковаться, и это все чистый талант? Знаете, они тоже когда-то были никчемными кодерами.

Ответный жесткий комментарий:

Рискну не согласиться с автором. Увлечённость — это очень важно, но и такое явление как «талант» тоже определённо существует. Он существует и в музыке (цитата из Википедии: «Этот вид слуха является врождённым и, согласно научным данным, не может быть приобретён с помощью каких-либо специальных упражнений, хотя исследования в этом направлении продолжаются»), и в спорте (скажите 80-килограммовому малышу-коротышу, что его не берут в секцию балета потому, что он «недостаточно увлечён»), и в программировании в том числе.

Почему-то одним людям, при прочих равных условиях, проще понять рекурсию или сортировку пузырьком, а другим надо посидеть с бумажкой и подумать. Одни люди могут держать в оперативной памяти 5 сущностей, а другие 7. У одних любимым предметом в школе была математика, у других литература. И так далее. Несомненно, стать программистом можно, имя лишь увлечение, и, не имея таланта, но можно ли стать программистом-рок-звездой, большой вопрос.

5. Самые крутые ИT-музеи мира

Сначала ссылки: часть 1, часть 2:

Катаясь по миру во время отпуска, айтишник всегда найдёт, чем заняться, когда ему надоест валяться на пляже или осматривать местные достопримечательности. В конце концов, есть клубы и бары...
Но сердцу-то хочется особых радостей, а мозгу — своих, тёплых ламповых впечатлений. Окей гугл, освободим вас от утомительного сёрфинга по интернету в поисках увлекательных ИT-экспозиций, которые приведут вас в восторг и, скорее всего, наполнят новыми знаниями. Поехали.

NewsPack# 12: самые интересные ИТ-ссылки за прошлые недели ссылки обзоры Ит айтишники приколы

6. Эпоха jQuery уходит

Серия свежих материалов, чаще всего с наездом, про jQuery:

7. Ржавая очевидность

Меня уже несколько притомил поток материалов про новомодный Rust, вот ещё одна попытка его адепта объяснить, что же там такого особого сокрыто:

Каждый ищет в языках программирования что-то своё: кому-то важна функциональная сторона, кому-то богатство библиотек, а другой сразу обратит внимание на длину ключевых слов. В данной статье я хотел бы рассказать, что особенно важно для меня в Rust — его очевидность. Не в том, что его легко изучить с нуля, а в том, как легко исследовать поведение кода, глядя на его фрагменты. Я перечислю особенности языка, позволяющие точно определить, что делает та или иная функция, вырванная из контекста.

8. Почему так мало committers в крупные OpenSource-проекты

Статья здесь, а вот комментарий к ней:

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

Что же касается opensource — да, именно так. Добавим ещё то, что айтишников в России не так уж и много (в абсолютных числах). Математика простая: 300кк население США, 700кк — население Европы. В РФ — всего 130кк. Очевидно, что при одинаковой концентрации айтишников, на 10 европейских будет приходиться один русский. При этом концентрация сильно разбавляется синдромом «всё или ничего» (то есть большая компания или фрилансеры), т.к. в РФ очень мало средних успешных контор.
А на одних мажорах много опенсорса не вытянешь — самих мажоров по пальцам пересчитать.

9. Эпоха переосмысления

Времена меняются, и многие вещи радикально изменяются. То, что было best practice для программирования HTTP, становится недостатком в HTTP/2 — отличная презентация от Google.

10. Советы айтишникам, изучающим английский

Сама статья выложена здесь:

27 лет назад автор данной статьи поменял класс в школе с франкоязычного на англоязычный. Два летних месяца мне пришлось заниматься с опытным преподавателем, но зато осенью я был на голову лучше своих новых однокласников, которые уже «какбэ» 3 года зубрили эти диковинные заморские слова. С тех пор я успел и поучиться в Киевском Лингвистическом Университете, и соприкоснуться с мудростью одного из величайших лингвистов Констатина Тищенко (дай ему Бог долгих лет), говорившего на 90 языках, а также получить магистра по English Studies из немецкого университета, ну, и поработать с английским в ИТ на протяжении последних 10 лет.

С тех пор, учитывая, что я занимался не только английским, но и десятком других языков, включая латинский, санскрит и японский, в моей голове четко выкристаллизовалось ОНО, что я тут и представлю в виде расширеных советов.

11. Чёрный, как уголь, ИТ

Зарисовка из жизни современной Украины:

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

История про то, как киевлянин создал сайт с рекламой проституток и заработал $2 млн за два года.

Здесь было всё «по честному», но бывает наоборот:

Или:

Горячая тема для стартапов любого рода.

12. Неделя NGINX

На прошлой неделе была опубликована целая серия статей об отечественном веб-сервере NGinx:

NewsPack# 12: самые интересные ИТ-ссылки за прошлые недели ссылки обзоры Ит айтишники приколы

13. Web-безопасность

Такая же пачка свежих статей по веб-безопасности:

14. Про дивный чудный мир PHP

Подборка двух свежих статей по специфике PHP — это не очередное унижение языка, а скорее просто более пристальное изучение его багофич.

Из последнего вытащил такой прикольный код — много думал:

$ php -r 'var_dump([] < new stdclass); var_dump([] > INF);'
bool(true) // пустой массив меньше пустого класса
bool(true) // пустой массив больше бесконечности

15. Размышлизмы о багах

Цитирую далее материал При достаточном количестве денег все ошибки выплывают на поверхность:

Утверждение 1:

Эрик Рэймонд (Eric Raymond) в своем эссе «Собор и базар» сказал знаменитую фразу:

«При достаточном количестве глаз все ошибки выплывают на поверхность».

Имеется в виду, что программное обеспечение с открытым исходным кодом по определению содержит меньше ошибок, чем ПО с закрытым исходным кодом, потому что код доступен для изучения всем и каждому. Рэймонд назвал это наблюдение «законом Линуса».

Утверждение 2:

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

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

И в самом деле, какие? Ответ вот здесь.

В догонку: Почему людям не нужна корректность и на 100% рабочих программ, похоже, вообще не бывает.

16. О среде обитания программера и его верных помощниках

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

Сегодня статьи о двух подобных сопряженных ролях.

Бизнес-аналитики в Agile — зачем, почему, как:

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

Поскольку и программисты, и заказчики — люди занятые, выяснение деталей проходит в форме раундов «вопрос — ответ», при этом нигде не фиксируется, когда и почему было принято такое решение или как оно изменялось со временем. Но главный минус такой коммуникации — разработчик спрашивает «как?», а заказчик может ответить только на «зачем?», а остальное его уже мало интересует. Более того, обычно, отвечая на «как?», заказчик заводит себя в тупик, потому что не может и не обязан знать, сколько вариантов существует для выполнения его потребности и какой оптимален. Программист же всего лишь делает, что ему сказали. В итоге складывается ситуация, когда недоуменный клиент спрашивает, почему приложение не вписывается в его картину мира, а недоуменный программист отвечает, что так и просили сделать.

«Крутелочка к пимпочке»: как снизить количество невалидных багов вдвое, и почему техподдержка — друг разработчика:

С каким бы приложением ни была связана ваша работа и в каком бы качестве вы ни присутствовали в процессе, рано или поздно наступит тот момент, когда к вам впервые явится пользователь и, доверчиво моргая, спросит: а почему у меня пимпочка не пимпает? Чтобы пимпочка пимпала, — скажете вы, погибая от умиления (поставил! пользуется!), — нужно сперва покрутить крутёлочку.

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

17. Программисты и депрессия

Взято отсюда:

Это перевод (причем достаточно вольный) выступления 2013 года программиста на Ruby по имени Greg Bauges, посвященного депрессии и психическим расстройствам в среде программистов. Выступление старое, но проблема вечная.

Сначала вот само оригинальное видео этого выступления с конференции:

А вот и его русский перевод в виде текста:

Вы возможно слышали про биполярное расстройство первого типа (БАР1), которое характеризуется цикличной сменой маниакальных и депрессивных состояний. Это означает что, вы курсируете между маниакальной стадией на подъеме и депрессивной стадией на спаде. Маниакальная стадия может сопровождаться эйфорией, но в то же время она невероятно деструктивна — потому что характеризуется огромной импульсивностью, и в такой период люди часто принимают необдуманные решения. При БАР1 это еще и постоянные метания между этими двумя состояниями — эйфория сменяется упадком очень часто. Мой же БАР2 характеризуется более длительными циклами смены состояний.

Для меня это обычно выглядит как медленное сползание вниз на протяжении 4-12 недель. По ощущениям это напоминает попытки въехать на крутой склон, покрытый гравием — не важно как сильно ты крутишь педали, ты все равно скатываешься вниз.

NewsPack# 12: самые интересные ИТ-ссылки за прошлые недели ссылки обзоры Ит айтишники приколы

Довесок: Почему программировать так тяжело?

18. Чудак, который делал всё не так

Почему я не преподаю SOLID и «принцип устранения зависимостей».

Из комментариев сразу рычат:

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

Всё полезно в меру и зависит от проекта, это касается всех паттернов GOF, SOLID и т.п. Но это не значит, что это плохо и давайте нигде их не использовать. Просто надо уметь это дело «готовить».

На примере некоего малоизвестного решения показан очень нестандартный подход: Как мы сделали из JSON язык программирования:

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

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

Скептики язвят в комментах:

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

Я специально сейчас пробежался в гугле — такое ощущение, что интернет вообще не знает про это приложение. При этом, автор, судя по всему, надеется привлечь к созданию карточек других людей. Это — правильно. А вот ставить задачу перед ними учить такую вот ужасть — совсем неправильно.

Бесполезные присоски на нашей шее — Обратная сторона методологий и «лучших практик» разработки:

С появлением множества технологий и фреймворков, которые упрощают разработчику жизнь, может сложиться впечатление, что сегодня писать программы стало проще, чем вчера. В самом деле, зачем каждый раз использовать велосипед? Используй готовые библиотеки, живи — не тужи. Но радость была бы неполной, если бы вместе с технологиями для упрощения жизни разработчика не появились и новые методологии разработки ПО. Но стало ли легче?

Пропаганда методологий разработки сработала настолько удачно, что зараженные вирусом программисты сами же стали разносить эту заразу по всему миру. Новые проекты все как один начинались на Agile; в резюме стали появляться гордые строчки с упоминанием Scrum, RUP и XP, а на просьбу рассказать о своём предыдущем проекте одурманенный разработчик с гордостью рассказывал про опыт работы с Agile или Kanban, как будто это имеет какое-либо отношение к написанию кода.

NewsPack# 12: самые интересные ИТ-ссылки за прошлые недели ссылки обзоры Ит айтишники приколы

19. Не рефакторингом единым

Непрерывный рефакторинг и проблема совместимости:

Я помню на первой своей работе мы всячески выгрызали рефакторинг. У нас был специально обученный менеджер, который по нашим стонам понимал как важен рефакторинг. Поэтому он планировал все так, чтобы у нас был ещё один месяц на рефакторинг до сдачи проекта. Текст, как всегда, сумбурный, провокационный, с ошибками и прочей х***ей, отнеситесь, пожалуйста, к этому снисходительно.

Программеры исповедуются прямо в комментариях к этому посту:

Основная причина рефакторинга, на практике, это все-таки меняющиеся требования. Типа бизнес прибегает и говорит, что теперь будет торговать не только машинами, но и управлять сервисом, а CRM продажи на автосервис не очень рассчитана (пример утрированный). А чисто «технический долг» — мне кажется что беспорядка, которого вносят разработчики, обычно сравнительно мало по сравнению с изменениями в бизнес-стратегии, особенно если у продукт-менеджера горизонт планирования скрумовские 2 недели ;)

NewsPack# 12: самые интересные ИТ-ссылки за прошлые недели ссылки обзоры Ит айтишники приколы

20. Наше киношное хобби

Совсем немного об отдыхе вне работы. А именно свежее интервью про популярный сериал «Кремниевая долина» и неудачниках в ИT-индустрии:

Майк Джадж, создатель популярного ситкома «Кремниевая долина», в интервью The Hollywood Reporter рассказал о будущем сериала, роли Марка Цукерберга и нелегкой судьбе IT-стартапов из Долины. Мы публикуем адаптированный перевод интервью.

21. Уголок юного джаваскриптера

Worker-ы и shared worker-ы:

Во всех популярных языках есть потоки (threads). В браузерном javascript для параллельной обработки используются worker-ы. Под катом рассказ о том, как ими пользоваться, какие ограничения есть в воркерах и об особенностях взаимодействия с ними в разных браузерах.

Семь удивительных «возможностей» Javascript:

За последние несколько месяцев я сделал несколько доработок для JSHint, в основном с целью изучить ES6 (я особенно горжусь тем, как переделано обнаружение областей видимости для переменных). Во время этого процесса я наткнулся на несколько вещей, которые меня удивили — в основном, в ES6, однако есть и кое-что про ES3, что я до этого никогда не использовал.

Критичный комментарий автору статьи:

Ммм... Я так понимаю, стрелять в ногу в одиночестве Вам надоело, и Вы решили набрать народ в клуб, заодно научив их отстреливать себе руки. Поддерживаю, зачотно!

22. Альтернатива callback-ам

Цитирую свежачок отсюда:

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

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

Абсолютное большинство программистов начнет делать такое приложение на колбэках или тригерах. Создан новый ордер — ставим ему состояние new — и вешаем колбэк который начинает создавать сервисы и т.д.
Далее я постараюсь объяснить, почему это абсолютное зло.

Из комментов парируют:

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

Это объясняет миграцию разработчиков с Rails на Erlang, Clojure, Scala и так далее. Однако сами по себе языки не панацея, интересна сама модель акторов, на которой построен принцип работы Erlang-приложений и фреймворк Akka.

Вам совершенно верно упомянули Роба Мартина и паттерны. DHH, к сожалению, все это отмел как «устаревшее» и в результате разработчики плачут кровавыми слезами, однако, щедро оплачиваемыми. Но эта лафа скоро может закончиться, потому что модель акторов сейчас становится модной, а это значит, что рельсы могут сдать свои позиции.

23. Typing — сервис для тренировки написания кода

Typing — это веб-сервис, с помощью которого можно тренироваться в скорости написания своего кода на 16 языках программирования.

Сервис работает по принципу старых утилит вроде «Стамины». Вам даётся определённый кусок кода, и вы должны воспроизвести его, печатая на клавиатуре. Если символ введён неверно, нужно вернуться обратно бекспейсом и написать его правильно.

У Typing есть как платная, так и бесплатная версия. В бесплатной — ограничения количества языков и отсутствие статистики. В платной их нет, и она раздаётся по модели подписки за 9,99 доллара в месяц. Заплатив за использование сервиса, вы также сможете загружать в него свой код.

24. Разница между разработчиком и программистом

Разбираемся в нюансах старой как мир дискуссии «Ты ж программист»:

У профессий программиста и разработчика много общего, да и в быту эти слова часто используют как синонимы, но разница, хоть и не всегда заметная, есть. Иначе почему вообще появились такие понятия как software developer, computer scientist и programmer?

В комментариях пытаются обобщить так:

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

Программист, разработчик, кодер, формошлёп — каждый понимает под этим что-то свое. На мой взгляд, все гораздо проще.
  • Есть одна профессия — Software Engineer. А вот квалификация у этих Software Engineer разная.
  • Есть junior’ы, которых частенько назвывают формошлёпами и говнокодерами. Которые просто еще не умеют писать нормальный код.
  • Есть middle’ы, которых зовут программистами, кодерами, да и разработчиками тоже. Они уже умеют писать код, поэтому часть времени они думают «какой же код все-таки писать».
  • Есть senior’ы, которые 80% времени думают, какой код писать и 20% времени его пишут. Вот они и занимаются проектированием по большей части.
  • В крупных конторах есть еще и TechLead и Software Architect, которые только проектированием и заняты.

Это все одна профессия — Software Engineer, просто чем опытнее «инженер», тем большое он похож на инженера-проектировщика или инженера-конструктора.

Весь этот спектр компетенций в пределе сводится к двум противоположным полюсам:

  • Есть люди-флагманы профессии. Они создают новые языки программирования, новые фреймворки, которые принимает на вооружение весь мир, новые коды и программы, которые потом используются действительно на благо общества. Это элита.
  • А есть те, кто это использует на благо себе для зарабатывания на этом денег. Те кто «лобает» код и косит бабло. Но при этом последние причисляют себя к первым (элите), хотя на самом деле являются ремесленниками. Да, ремесленником тоже быть не просто и надо много учить и знать и делать. Но сути это не меняет. Это всё равно умелый ремесленник (Senior).

Сразу вспомнилась старая статья на эту же тему: «Программист» — это сверхобобщение:

Термин «программист» покрывает колоссальный спектр способностей и умений. По вертикальной оси, программист может едва уметь писать на vbscript — или разрабатывать компиляторы для Intel или научный софт для авиакомпаний.

По горизонтальной оси, он может быть экспертом в базах данных, улучшать производительность GPU, писать библиотеки параллельных вычислений, физические движки или драйвера для принтеров, заниматься обработкой изображений, генерацией 3D моделей или исследованиями в области искусственного интеллекта, использовать coffeescript, HTML5 и AJAX для разработки веб-приложений или nginx и PHP для разработки LAMP-стека, на котором веб-приложения работают... И это все — программисты.

Это безумие!

25. К работодателю через черный ход

Мелкие лайфхаки для всех, кто ищет себе хорошую работу в США в следующем видео:

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

26. Использование Lisp в продакшене

Сама стать вот здесь:

Вопреки распространенному мнению, Lisp это невероятно практичный язык для создания продакшн-систем. Вообще говоря, вокруг нас много Lisp-систем: когда вы ищите авиабилет на Hipmunk или едете в метро в Лондоне, используются Lisp-программы.

Наши Lisp-сервисы концептуально представляют собой классическое ИИ-приложение, которое функционирует на огромной куче знаний, созданных лингвистами и исследователями. Его главный используемый ресурс это ЦПУ, и это один из крупнейших потребителей вычислительных ресурсов в нашей сети.

27. Искусство командной строки

Большая и солидная статья о святой мощи «чорного» экрана. Вместо традиционных цитат, выхвачу первый же комментарий к этому материалу:

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

28. Слово на букву «М»

Монады уже здесь:

Про монаду ходит множество мемов и легенд. Говорят, что каждый уважающий себя программист в ходе своего функционального возмужания должен написать хотя бы один туториал про монаду — недаром на сайте языка Haskell даже ведётся специальный таймлайн для всех отважных попыток приручить этого таинственного зверя. Бывалые разработчики поговаривают также и о проклятии монад — мол, каждый, кто постигнет суть этого чудовища, начисто теряет способность кому-либо увиденное объяснить. Одни для этого вооружаются теорией категорий, другие надевают космические костюмы, но, видимо, единого способа подобраться к монадам не существует, иначе каждый программист не выдумывал бы свой собственный.

Действительно, сама концепция монады неинтуитивна, ведь лежит она на таких уровнях абстракции, до которых интуиция просто не достаёт без должной тренировки и теоретической подготовки. Но так ли это важно, и нет ли другого пути? Тем более, что эти таинственные монады уже окружают многих ничего не подозревающих программистов, даже тех, кто пишет на языках, никогда не считавшихся «функциональными». Действительно, если приглядеться, то можно обнаружить, что они уже здесь, в языке Java, под самым нашим носом, хотя в документации по стандартной библиотеке слово «монада» мы едва ли найдём.

Именно поэтому важно если не постичь глубинную суть этого паттерна, то хотя бы научиться распознавать примеры использования монады в уже существующих, окружающих нас API. Конкретный пример всегда даёт больше, чем тысяча абстракций или сравнений. Именно такому подходу и посвящена эта статья. В ней не будет теории категорий, да и вообще какой-либо теории. Не будет оторванных от кода сравнений с объектами реального мира. Я просто приведу несколько примеров того, как монады уже используются в знакомом нам API, и постараюсь дать читателям возможность уловить основные признаки этого паттерна. В основном в статье пойдёт речь о Java, и ближе к концу, чтобы вырваться из мира legacy-ограничений, мы немного коснёмся Scala.

NewsPack# 12: самые интересные ИТ-ссылки за прошлые недели ссылки обзоры Ит айтишники приколы

Дополнительно — Потоковая обработка данных при помощи Akka:

Все привыкли ассоциировать обработку больших данных с Hadoop (или Spark), которые реализуют парадигму MapReduce (или его расширения). В этой статье я расскажу о недостатках MapReduce, о том, почему мы приняли решение отказываться от MapReduce, и как мы приспособили Akka + Akka Cluster на замену MapReduce.

В качестве догрузки:

29. Уголок юного жабаскриптера 2

30. Исповедь покаявшегося сеошника

19 мая 2015 года на Inbound.org — крупном зарубежном сообществе маркетологов — вышла статья Confessions of a Google Spammer. Статья буквально взорвала аудиторию и быстро разошлась по всему интернету. Это настоящая исповедь бывшего сторонника черного SEO — неприкрытая история беспринципного интернет-бизнесмена, который находил и долгое время успешно эксплуатировал «дыры» в поисковых алгоритмах.

Автор статьи — Джефф Дейч. Джефф — глава отдела маркетинга в Ptengine. По его собственным словам, он написал эту статью по двум причинам:

  1. Чтобы предупредить обо всех опасностях черного SEO.
  2. Чтобы объяснить, почему же он сдался, и почему так важно заниматься входящим маркетингом.

Это перевод его популярной статьи-исповеди, которая начинается так:

Перед тем, как заняться входящим маркетингом, я, бывало, зарабатывал по $50 000/месяц, используя методики поискового спама. Моя рабочая неделя составляла максимум 10 часов. Говорю вам от чистого сердца: никогда и ни за что не следуйте по моему пути.

И сейчас я расскажу почему...

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

31. Полиморфные связи для самых маленьких

Сабж расположен вот здесь:

Недавно, делая очередной функционал на одном из проектов, я столкнулся с немного необычными связями в реляционных СУБД, у которых, как оказалась позже, есть замысловатое название — Полиморфные связи. Что это такое, как и где их применять, я попытаюсь объяснить в данной статье.

В комментариях дополняют:

Тогда уж к ряду следовало бы упомянуть про «SQL Antipatterns: Avoiding the Pitfalls of Database Programming» от Bill Karwin.Там есть раздел, посвященный полиморфным ассоциациям.

Кстати, на stackoverflow он часто отвечал на вопросы по этому поводу, разбирая всё на примерах. Вот даже презентация есть.

Самый главный минус полиморфных связей, как уже сказали — отсутствие контроля целостности данных. Его придется реализовывать программно. Всё-таки этот тип связей не совсем вписывается в концепцию реляционных баз данных. Ну и когда будете проектировать БД, нужно будет подумать над тем, захотите ли Вы в дальнейшем делать общую выборку по таблице с полиморфными связями.

И если вдруг захотите, а связанных таблиц у Вас будет больше, например, 5-ти, подумайте, как будет выглядеть сам запрос и сколько JOIN’ов нужно будет сделать, а самое главное — как это скажется на производительности.

32. Не возжелай узнать зарплату ближнего своего

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

Отсюда суровая корпоративная мораль: получай свои грязные деньги и заткни свои представления о справедливости в свою отсиженную за компьютером ж0пу.

Сюда бы я также подшил свою старую как ассемблер телегу: Почему эти люди уходят из Google?

33. Read-only Internet

О векторе развития интернета, который всё больше из равносторонней интерактивной среды превращается в стандартную для офлайна однонаправленную потребительскую среду (тренд анти-Web2.0): пост заставляющий задуматься:

В 1995 году Интернет был у избранных. В основном — на работе.
В 2005 году Интернет был почти у всех дома.
В 2015 году Интернет есть вообще у всех и везде: в кафе, в поезде, в самолёте, в метро. И теперь стало заметно, что между 2005 и 2015 годами что-то где-то пошло не так.

34. Куда и почему уходят из программирования

Все ли дороги ведут в ИТ?

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

Далее — истории пяти людей, которые оставили работу в крутых компаниях Кремниевой долины, чтобы стать курьерами, фокусниками, блоггерами, дизайнерами и фотографами (короче, трутнями и тунеядцами).

35. Два самых модных языка этого лета

Холивар между ними начался с двух постов на Хабре:

Я привожу свежую попытку свести их противостояние на нет в новом посте: Почему Go и Rust не враги, а друзья.

36. Palantir, спецслужбы, мировое правительство

Подзаголовок статьи: «Лучший способ избавиться от дракона — это иметь своего собственного».

Цитата из начала текста:

На Хабре нет ни одного упоминания о Palantir`е, в русской Википедии об этом проекте нет статьи — что-то идет не так. Или так.

А между тем Palantir стала второй крупнейшей частной компанией Кремниевой долины с оценкой в 20 000 000 000$ (уступив Uber). Среди прочих заслуг Palantir`а — раскрытие крупных китайских разведывательных операций Ghostnet и Shadow Network.

Palantir — очень известный проект, здесь новость скорее в том, что он вырос до величины второго по размеру в Кремневой долине. Palantir — отличный пример того, что получается, если плохие парни применяют ИТ не во благо общества, а во зло. И тогда BigData начинает работать во имя спецслужб и тотального контроля.

Приведённая свежая статья с Хабра мне показалась сложночитаемой, поэтому дополнительно привожу краткое введение + более обстоятельный рассказ о Palantir Technologies (вариант 1, вариант 2, вариант 3).

В заключение пункта хочу дать свою короткую ремарку ко всему написанному. Обычно с Palantir возникают ассоциации типа ФБР, ЦРУ, АНБ и т.п. Это верно и неверно одновременно.

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

37. «Мои друзья продали мне домен Mail.ru за 500 долларов»

Мне понравилось эта интервью-история появления на свет компаний DataArt и Mail.ru.

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

38. Новая Visual Studio 2015 грядет

Совсем скоро мир увидит новую версию Visual Studio 2015, это заметное событие в жизни большинства Windows-программистов. И многие из них хотели бы узнать, как обстоят дела с поддержкой стандартов C++ в новом компиляторе Microsoft.

Кроме того, мелкомягкие сделали большую подборку статей по этой же теме: Самые интересные материалы о новой Visual Studio 2015.

В качестве годной тематической добавки — свежее видео-выступление Дмитрия Андреева: Самое главное о новинках инструментов разработки Microsoft:

39. Российские конференции для программистов в этом году

Лето — время отдыха и приятных путешествий. В дополнение белорусскому обзору событий, всем жаждущих знаний + движухи также можно указать страницу всех российских конференций для программистов во второй половине 2015 года.

40. Обзор положения дел фронтенд-программиста

Мне очень понравилась серия постов от блогера gaperton, который регулярно выкладывает свои заметки по html/JS-фреймворкам (на данный момент доступно 5 частей):

Bonus: мелочевка

Всё мелкие технические ссылки прошлых недель, заинтересовавшие меня лично, выкатываю одной транзакцией:


Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , , , , ,
Эта запись опубликована: Понедельник, 20 июля 2015 в рубрике ОбзорыНовости.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз