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

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


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

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

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

1. Почему программисты снова становятся инженерами

Хороший материал от Look At Me: Вице-президент Parallels рассуждает об окончании «эры айтишников»:

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

И ещё одна цитата про «страшные вещи»:

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

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

2. Рынок разработки сайтов «умирает»

Злободневная статья о падающем рынке веб-разработки:

Как и многие интернетчики, свои первые деньги я заработал на разработке сайтов. Я и продолжаю этим заниматься, являясь совладельцем компании AIC-Qsoft, которая, по последним рейтингам, входит в пятёрку ведущих веб-студий России.
Будучи заодно ещё и одним из учредителей Ассоциации Интерактивных Агентств (АИА), я более или менее представляю себе, как обстоят дела во всех основных конторах по веб-разработке в стране. Проще говоря, я в теме. И вот, что я хочу вам сказать. Похоже, бизнес веб-разработки, веб-студий или «диджитал-агентств» умирает.
Начну издалека. В 2002 году мой близкий друг обеспокоился тем, что выручка принадлежащей ему сети видеопрокатов не растёт, а даже немного снижается уже много месяцев подряд. Он склонялся к версии, что виноват был слабый руководитель, поэтому решил уволить генерального директора, а на его место поставить молодого и амбициозного парня — то есть, меня. Так я возглавил сеть из 11 видеопрокатов в разных районах Москвы и получил свой самый ценный опыт — опыт работы на падающем рынке.

А вот и ответка прилетела:

3. Вирус внутри «Касперского»

История неудавшегося «переворота» внутри Kaspersky Lab — кому лень читать, суть в том, что корпоративный «майдан» таки не прошёл.

Эта движуха живо напомнила мне другую относительно недавнюю историю в изложении Максима Спиридонова из «Нетология-групп» — это триллер для любого владельца стартап-бизнеса (доп. ссылка 1, ссылка 2).

4. Рефакторинг — громадьё ссылок

Свежая серия материалов «Киски: Рефакторинг»: часть 1, часть 2. Часть 3.

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

В дополнение:

5. Про модель, логику, ООП, разработку и остальное

Часто ли вы задумываетесь — почему что-то сделано так или иначе? Почему у вас микросервисы или монолит, двухзвенка или трехзвенка? Зачем вам многослойная архитектура и сколько у вас вообще слоев? Что такое бизнес-логика, логика приложения, презентационная логика и почему все так разделено? Посмотрите на свое приложение — как оно вообще спроектировано? Что в нем и где находится, почему это сделано именно так? Потому что так написано в книжках или так говорят авторитетные личности? Какие ВАШИ проблемы решает тот или иной подход/паттерн?
Даже то, что на первый взгляд кажется очевидным, порой бывает очень сложно объяснить. А иногда, в попытке объяснения, приходит понимание того, что очевидные мысли были и вовсе ошибочны.
Давайте попробуем взять какой-нибудь пример и изучить на нем эти вопросы со всех сторон.

Рассмотрено несколько практических случаев, но эта большая статья выходит за рамки только лишь одной ООП или SOLID.

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

В нагрузку выдаю бережно завернутую в https ссылку на другой свежачок: Принцип разделения ответственности и ORM. Там Мицголь в комментариях оппонирует к сказанному в статье:

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

А сможет ли ORM, вообще ничего не зная о той логике, которой подчинён поиск по базе, создать именно те индексы, которые ускорят такой поиск (и одновременно не насоздавать лишних индексов, которые не принесут пользы, а только замедлят пополнение и обновление базы)? Никоим образом не сможет. Это самообман.

... А с Мицголем лучше не спорить.

6. ФП в вебе

Буквально недавно (в прошлом выпуске) ссылался на использование Lisp в продакшене и разработку web-приложений на языке Common Lisp (часть 1, часть 2, часть 3), тогда как вдогонку вышел свежий материал на аналогичную тему: Веб-приложения на Clojure — часть 1, часть 2.

7. Тунеядцы на стуле или герои-стахановцы?

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

Наконец-то кто-то понял всю суть работы программиста и объяснил её сложность понятным языком!
И лишь одной малюсенькой детали в этой статье не хватало. Правды.

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

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

Программяку на гиляку? Комментарии оттуда в качестве спичек для распалки хвороста холивара:

Программировать легко и весело пока твоя задача не выходит на коммерческий уровень. А ещё легче жить, если ты никогда не увидишь (не будешь отвечать на вопросы) пользователей своей же системы. Типа программируешь — и всё отлично!

Наделал ошибок, программа неудобна — ну и ладно, заказчик же платит. Это удобная практика для «заокеанских заказов», где часто есть свой отдел саппорта, а также армия тестировщиков. Но возьмите вариант — «сам себе бизнесмен программист» — и вам придется и ТЗ составить, и общаться, и в ситуации «всё пропало, помогите!» спасать клиента. Так что не все так весело.

Закончить ему хочу жизненной цитатой с «Баша»:

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

8. Такой страшный AngularJs

Свежий материал Ускоряем angular.js или как не выстрелить себе в ногу дополняем Почему вам НЕ стоит использовать AngularJs.

В комментариях к обоим топикам страшный флейм — много защитников и противников AngularJs на земле русской. Я бы выбрал такой вот резюмирующий комментарий из всего многообразия:

После знакомства с Ангуляром мне в голову пришла следующая метафора.
Предположим, у нас есть некоторое приложение. Мы, как архитектор этого приложения, знаем как в нём организованы потоки данных. В приложении мы задекларировали эти потоки данных и то как их следует обрабатывать в виде некоторого кода. То есть у нас описаны некоторые конкретные блоки, которые связаны конкретными линиями-направлениями данных.
В противовес этому, Ангуляр представляет собой что-то вроде «множества универсум», где всё связано со всем. В первый момент это вызывает wow-эффект. В самом деле, путём нескольких деклараций и пары строк кода мы организовали полноценный ввод пользователя, обработку и автоматическое обновление представления (!). Но в дальнейшем становится ясно, что такая полносвязная схема имеет свои побочные негативные эффекты: низкая производительность и сложность восприятия.
Я был очень рад услышать, что идёт разработка Angular 2, который (как и обязано мажорному релизу) будет обладать существенными изменениями, и в частности упрощениями, выпиливанием целой кипы фич. Также, существует разработка angular-light, которая ознаменована той же цели: упростить и оздоровить Ангуляр.
После использования Ангуляра я пришёл к выводу, что лучше строить приложение, основываясь на явных потоках данных. Для этого лучше всего подходит идея FRP. Что замечательно, FRP прекрасно компонуется с существующими библиотеками (я считаю, компонуемость — это очень хороший признак действительно здоровой концепции), например, можно использовать jQuery для получения источников данных (пользовательские события, которые инициируют flow/поток), так и для отображения ($.text, $.html в конце цепочек), также FRP прекрасно дружит со всеми существующими шаблонизаторами. В общем, явное лучше неявного, FRP и компонуемость это будущее.

Также прикладываю новый перевод: Создание красивых диаграмм с помощью Chart.js

9. Для .NET-валильщиков

Навыки .NET-разработчика России и США, в чём разница? (+ дополнение):

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

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

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

10. Структуры данных. Неформальный гайд

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

Из комментариев к статье выцепил такое полезное пояснение понятий «куча» и «хеш-таблица»:

Куча — достаточно специфическая структура данных: у неё теоретически весьма неплохая сложность, но обращение к памяти весьма нерегулярное и потому она эффективна только на небольших размерах (когда она влазит в L1 кеш).
Самое распространённое применение кучи: priority queue. Когда вам нужно выбрать N самых больших (или самых маленьких) элементов из множества, то куча — это самая подходящая структура. Обыно нужное N невелико, так что главный бич кучи (нелокальные обращения к памяти) не успевает проявиться, а зато тот факт, что не нужна дополнительная память (и, главное, что не нужно эту дополнительную память выделать и освобождать) оказывается весьма полезным.

А насчёт «имеющих ограниченное применение» хеш-таблиц... вы это всерьёз или просто издеваетесь? В современном мире стоить только попытаться плюнуть — попадёшь в хеш-таблицу. Ещё до того, как плюнешь.

Когда вы пишите, скажем,

var a = 1;

то куда, собственно, попадает a? Ответ: в хеш-таблицу соответствующей JavaScript-функции. А когда вы пишите

a.x = b.x;

то вы оперируете, скорее всего, уже с тремя хеш-таблицами (одна — в которой хранится a и b, ещё два — живут внутри объектов a и b). То же самое — в большинстве других сколько-нибудь распространённых скриптовых языках (неважно: это python, ruby или какой-нибудь lisp). Даже такие языки как C++ и Java, в некотором смысле подвержены этой участи: у них тоже для каждой функции есть хеш-таблица с переменными... в компиляторе. Когда всё «замораживается» и получается скомпилированный код эти хеш-таблицы исчезают, но если вы используете какой-нибудь guice, то часть таблиц этого рода остаются и в рантайме.

С хеш-таблицами есть другая беда: если использовать некриптостойкий хеш, то можно на коллизии нарваться, а считать криптостойкие хеши долго. Слава богу тут нам пришёл на помощь Intel: на процессорах с поддержкой AESможно посчитать aeshash за то же время, что и какой-нибудь менее «замороченный» хеш, а DoS-атаку уже не провести.

Так что с хеш-таблицами всё хорошо: с вероятностью 99% вы их используете по 100 раз на дню, только не знаете об этом.

11. Как правильно использовать исключения

Главный текст хостится на острие этой ссылки:

Использование исключений для контроля хода выполнения программы (flow control) — давняя тема. Я хотел бы суммировать этот топик и привести примеры правильного и неправильного использования исключений.

В комментариях вылез Валерий Леонтьев из Минска (не певец), который решил поделиться своим житейским опытом:

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

Продолжая тему, мои радары засекли другую новую и тематическую ссылку: Правильное использование Exception’ов в PHP:

Я рад бы написать, что «эта статья предназначена для новичков», но это не так. Большинство php-разработчиков, имея опыт 3, 5 и даже 7 лет, абсолютно не понимают, как правильно использовать эксепшены. Нет, они прекрасно знают об их существовании, о том что их можно создавать, обрабатывать, и т.п., но они не осознают их удобность, логичность и не воспринимают их как абсолютно нормальный элемент разработки.

В этой статье не будет мануала по эксепшенам — это все отлично описано в документации php. Здесь я расскажу о преимуществах использования эксепшенов, и о том, где их, собственно говоря, надо использовать. Все примеры будут для Yii, но это не особо важно.

Добавим сюда же интимных сисадминских подробностей: Ускорение и оптимизация PHP-сайта. Какие технологии стоит выбирать при настройке сервера под PHP.

12. Интервью с создателем Evernote

Первые прототипы Evernote появились в 2001 году, а полноценная версия — в 2004. За 11 лет своего существования программа стала неотъемлемой частью жизни практически каждого человека, активно работающего в интернете. Интернет-издание «МакРадар» опубликовало интервью с основателем Evernote Степаном Пачиковым, который рассказал о создании программы, а также о своём участии в разработке Apple Newton.

Каким вы видите будущее Evernote?
Я сторонник Курцвейла. Его книга The Singularity Is Near о человеко-машинной цивилизации произвела на меня сильное впечатление. Я считаю, что вы, я и, может быть, наши дети — это последнее поколение смертных людей. Следующее поколение людей будет уже бессмертным и будет существовать в форме, которую сейчас трудно предсказать, но это будет гибрид биотехнологий и кибернетики.
Меня беспокоит, что в этом будущем конгломерате, между людьми, которыми мы являемся, и теми существами, которыми мы станем через 4-5 поколений, будет мала человеческая доля. Поэтому единственный для нас способ — это не остановить прогресс, а возглавить его. Для меня будущее Evernote — это в каком-то смысле попытка обеспечить передовые позиции человеческому разуму в борьбе между наступающим компьютерным интеллектом и биологическим интеллектом. Вы, наверное, знаете о предупреждении Стивена Хокинга о том, что люди недооценивают опасность компьютерного интеллекта.
Надо работать над своим телом, своим мозгом, совершенствоваться с огромной скоростью, с такой, чтобы мы в этом будущем симбиозе заняли достойное место и чтобы наша культура, история тоже туда влилась. Вот именно в ускоренном развитии человеческого тела и мозга я вижу развитие Evernote и компьютерных технологий.

13. Интернет уже не тот

Впечатления отсидевшего в тюрьме срок за «неправильные смыслы» иранского блогера о современном интернете — что изменилось всего за пару лет?

Статья называется так: Богатый, разнообразный, свободный веб, который я так любил, за годы, проведенные мной в Иранской тюрьме просто умер. Почему никто не остановит это?

Это был первый вечер, когда я вышел из тех дверей, как свободный человек. Для меня все было впервые: холодок от осеннего ветерка, шум от соседнего моста, запах, разноцветный город, в которым я жил большую часть своей жизни — все ново.
Как я заметил, привычный мне Тегеран очень изменился. Наплыв новых бессовестно роскошных особняков заменил очаровательные домишки, так знакомые мне. Новые дороги, скоростные магистрали, кучи внедорожников. Огромные рекламные щиты, со швейцарскими часами и корейскими телевизорами, с плоским экраном. Женщины с разноцветными шарфами и одеяниями, мужчины с крашенными волосами и бородами, и сотни очаровательных кафе с западной музыкой и женским персоналом. Перемены затронули и людей; изменения, замечая которые, рушатся все представления о нормальной жизни.
Две недели спустя, я снова начал писать. Некоторые друзья согласились предоставить мне блог, как часть их журнала. Я назвал это Ketabkhan — что в переводе с персидского «читалка». Шесть лет — это большой тюремный срок, но это целая эпоха в мире веб. Публикация в сети сама по себе не изменилась, но чтение, точнее, формат представление публикации — кардинально поменялся.

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

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

Если вам интересны подобные философско-трендовые темы, вот дополнительный свежий топик: Интернет как новое огораживание.

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

14. Интервью с Дмитрием Жемеровым из JetBrains

О чём базар:

  • Как развивается IDEA, куда она движется.
  • В чем разница между IntelliJ и JetBrains.
  • Зачем в компании два CEO.
  • Что происходит в Kotlin’e.
  • С какими трудностями столкнулась команда Kotlin в процессе разработке языка.
  • Что такое Language Design Review.
  • Что представляет собой современный Google.
  • Почему закрылся Google Code.
  • Почему Хабр важен для разработчиков IDE.

Это видео:

А это текстовая транскрипция большого интервью.

15. Смертельная петля аутсорсинга

Продолжая тему EPAM, который всеми силами уходит от достаточно нестабильной аутсорсинговой модели к тому, что они называют PDS 2.0, хочется дать свежую ссылку на крик души одного украинского программиста: Смертельная петля аутсорсинга.

Выцепил оттуда реплику из комментариев:

Именно поэтому мне и кажется, что смертельная петля всё больше сжимается вокруг такого аутсорсинга и заказчики уходят в другие более дешёвые локации, ищут другие варианты сотрудничества, отдают лишь проекты со средним и низким приоритетом (либо вообще полную чушь). Будущее за «заказной разработкой 2.0» и гибким аутстафом (как например, работает Ciklum).

16. Про собеседования

Читать этот топик нужно в таком порядке. Сначала материал Я смотрел лаже в лицо и не боюсь называть её по имени:

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

После снятия с ручника трогается и врезается в дерево уже бампером. Задний ход, машина съезжает с поребрика на дорогу и каким-то чудом становится по направлению движения. Газу! Заветный знак «P» маячит вдалеке, как мираж, не становясь ближе, — но это потому, что кандидат газует на нейтрали. Новая попытка, и машина с визгом трогается с места, поднимая асфальто-резиновую пыль. Чуть было не пролетев мимо нужного поворота, машина в последний момент останавливается со скрипом тормозов. Не вписываясь в поворот, она ещё раз проезжает по поребрику и останавливается на противоположной от знака «P» стороне дороги.
Кандидат выходит из машины и объясняет свою езду так: «Вы знаете, я вообще-то готовился к собеседованию. Мне не сказали, что будет практический тест».
На самом деле, конечно, всё было не так. Собеседование было на должность не водителя, а программиста, в резюме пять лет одного языка программирования и восемь — другого, а задание... я не буду его здесь публиковать, но, в общем, если вы умеете программировать, оно будет для вас почти оскорбительно простым.

Балансируем интересы сторон другим текстом: Whiteboard/Coding interview:

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

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

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

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

А иногда интервьюеры вообще не в курсе, под какие задачи ищется человек. Их выдергивают из работы со словами «вот тут надо поговорить», не всегда даже резюме в руки дают. У нас так один фронтенд пошел собеседовать кандидата, выходит, говорит: «Ну, джаваскрипт он знает фигово», — а кандидат на позицию проджект-менеджера шёл и уже лет восемь как сам ничего не кодил :)

16. Почему среди программистов так мало женщин?

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

И рассуждают вслух, например, вот здесь:

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

Или отсюда:

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

18. Майдан «джаваскриптеров»

Я понимаю так: классическая модель, реализуемая в виртуальных машинах (JavaScript, Java), состоит (состояла?) в том, что есть интерпретатор байт-кода, который позволяет быстро запустить исполнение. А далее «горячие» фрагменты кода уже компилируются по ходу (Just In Time compiler — JIT). А вот согласно этому новому проекту Ignition, Google в своем V8 хочет отказаться от JIT и использовать оптимизированный интерпретатор. Исходная идея для столь радикального поворота дел состоит в том, что большая часть JavaScript кода до «горячего состояния» никогда и не доходит.

Пока ещё не понял, это зрада или перамога.

Вот еще интересная дискуссия по этому поводу на YC.

19. Зачем Google сменила имя?

Рассуждения по теме отсюда:

Должен признаться, в последние дни я потешаюсь над друзьями и знакомыми: сообщаю им, что Google сменила имя — и наблюдаю одну и ту же реакцию в виде лезущих на лоб глаз. Оно понятно: средь сонма интернет-компаний, которые когда-либо появлялись на свет, «Гугл» бесспорно самая знаменитая, если не самая успешная. Её популярность, её признание так велики, что даже имя стало нарицательным, вошло в повседневный лексикон. И вот теперь переписать его на слепое Alphabet? Они там рехнулись что ли?!

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

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

20. Windows 10 — самое главное в одном месте

Microsoft начала бесплатно раздавать обновление до Windows 10. На первый взгляд, всё очевидно, но есть несколько подводных камней, о которых нужно знать. Я тут собрал самые важные вопросы о переходе на Windows 10 с предыдущей версии.

21. Как живёт Microsoft

Давайте лучше посмотрим, как люди в MS прекрасно и гармонично живут — свежий большой фоторепортаж: Штаб Microsoft в Редмонде.

Цитата оттуда:

Учитывая имидж Microsoft и её продуктов в последние годы, Редмонд кажется местом из параллельной реальности. Здесь на каждом углу люди с Windows Phone и планшетами Surface. Причём не только сотрудники, но и простые граждане: должно быть, у них таким образом работает патриотизм.
Каких-либо внутренних проблем в Редмонде не чувствуются. В кампусе Microsoft верят в Xbox One и шепчутся о каких-то больших планах на контроллер Kinect и шлем HoloLens. Запуск Windows 10 здесь праздник общегородского масштаба, а Сатья Наделла — близкий по духу к разработчикам лидер, которого давно ждали.

В дополнение о самом интимном месте в MS: «Гараж» Microsoft — место, где сотрудники воплощают небольшие идеи.

22. Столетие багов Микрософта

Поскольку выпуск отчасти посвящен MS, я решил дать две замечательные и свежие истории про два давних и в высшей мере загадочных бага от Windows: Мистика буквы Жэ, а также Многострадальный notepad: ошибка, которую не исправляют уже 13 лет. Конечно, мир держится на таких рядовых и неравнодушных программистах-системщиках, который берут в руки свой добрый верный отладчик и оправляются в дебри кода MS Office, чтобы самостоятельно разузнать, что же там так глючит.

А вот в сообществе MySQL у некоторых седых багов даже их дни рождения празднуют, вот это как примерно выглядит со стороны: MySQL Bug #20786:

23. Общий взгляд на подсистему памяти Linux

Очень читабельный и понятный обзор сложных вещей:

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

24. Понятная лекция для новичков ФП

[ИТ-лекторий]: Введение в язык программирования Scala. Докладчик: Александр Подхалюзин (JetBrains).

Свежая ссылка в дополнение: Очисти код свободными монадами.

25. Печальные будни провинциальных эникейщиков

«Сделай всё красиво»: что можно узнать за первый месяц работы настройщиком компьютеров + Опыт работы эникейщиком/системным администратором в бюджетной организации (ещё более негативный аспект такой работы).

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

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

«Быстро обучаюсь» или «Active (fast) learner» — пишут некоторые программисты в своих резюме. Сложно представить себе такую строчку у врача или юриста. Нет, им, конечно, тоже приходится регулярно учить что-то новое, но этот процесс носит иной характер и регулярность, чем у разработчиков, которым приходится учиться едва ли не ежедневно. Слишком уж скоротечна сфера IT — даже чтобы просто оставаться на месте, приходится ежедневно грести в хорошем темпе. Почему это происходит?

26. Эникей-миллионер

Продолжая тему таинственной айтишной расы «эникейщиков», внесём крупицу надежды:

Артур Кузяков разработал DriverPack Solution, чтобы ускорить работу сотрудников собственного сервисного центра по ремонту компьютеров. Сейчас она приносит ему около $1 млн чистой прибыли в год
Сейчас DPS — это 10 Гб тщательно отобранных и протестированных командой Кузякова драйверов для Windows. Утилита анализирует компьютер пользователя и устанавливает на компьютер необходимые драйвера. По словам Кузякова, DPS позволяют решить две проблемы: во-первых, ускорить процесс настройки компьютера (что особенно важно, если компьютеров в системе несколько десятков), во-вторых, улучшить качество его работы. Программа полностью бесплатна и выложена онлайн с открытым исходным кодом. При этом она достаточно проста, чтобы ей могли пользоваться не только профессионалы, но и обычные пользователи. «Мы смогли сделать программу настолько простой, что не только системный администратор, но даже простой пользователь может нажать одну кнопку, и программа сама проведет мониторинг, анализ системы и сама установит все, что необходимо», — говорит пресс-секретарь DPS Александр Бликштейн.

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

Для баланса взгляд с другой стороны успеха. Нотч переживает тяжёлые времена:

«Проблема в том, что когда получаешь всё, то пропадает стимул пытаться что-то делать, а отношения с людьми становятся невозможными из-за дисбаланса».

27. Глобальные вещи

Миксую в одном пункте глобальные вещи: Что такое Мастер-Данные и зачем они нужны. Следом идет очень полемичная статья: RPC, Messaging, REST: Терминология, первый же комментарий к которой:

REST != CRUD. CRUD — это только паттерн управления ресурсами, а REST — это очень широкий архитектурный подход к проектированию API, который позволяет целиком перенести состояние системы в запрос.

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

Вероятностное программирование (Probabilistic programming) — что это и для чего оно нужно?

А вот и видео-версия этой лекции от Бориса Янгеля (Microsoft Research Cambridge, Яндекс) которая недавно была прочитана на факультете компьютерных наук при поддержке Яндекса:

28. Слушать мою команду

«Жаль, что в Беларуси нет крепостного права для айтишников»:

В IT надо ввести правила, как в футбольных клубах: если инвестировал знания в сотрудника, то и компания, куда он переходит, компенсирует определенные затраты.

29. Нерезиновая кластерообразующая отрасль

Ужас-то какой, люди бегут и бегут, и все в ИТ:

Эдуард Трошин — журналист из Беларуси, который сбежал в IT прямо через окно офиса государственной газеты в Минске. В свои 45 лет он, несмотря на нелюбовь к математике и «гуманитарный» склад ума, не только занимается IT-журналистикой, но и осваивает сложные языки программирования.

От себя добавлю, что Эдуард — постоянный и старый автор газеты «Компьютерные вести». Статьи о самообучении программированию можно почитать в его серии «Стать программистом после сорока».

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

30. Айтишник, береги свои гляделки смолоду

Безопасный монитор: миф или реальность?

Я выдернул оттуда такой комментарий:

Не вижу особых различий в отражённом и излучённом свете. И тот, и другой окрашиваюся за счёт поглощения. Например, зелёные листья поглощают красный и синий, то же делают и зелёные пиксели. Автор не знает, КАК работает ЖК-монитор?
Глаза устают от повышенной аккомодации и напряжения мышц сведения глаз. Поэтому, чтобы снизить вред, даже если зрение нормальное, а моник 23’’ и меньше — работайте в очках с некоторым плюсом по отношению к повседневному взору.
Что до сведения глаз, то покупайте большой монь и отодвигайте его на пару-тройку метров от себя.

31. Про OCL

Объектный язык ограничений (и немного про метамодели):

На наш взгляд, объектный язык ограничений (Object Constraint Language, OCL) должен знать каждый, кто занимается моделированием или кому интересна модельно-ориентированная разработка. Однако, он незаслуженно обделён вниманием в сети вообще, а, уж, в русскоязычном сегменте информации просто мизер. Что это за язык и зачем он нужен, описано в этой статье.

Статья не претендует на фундаментальность, полноту охвата, точность определений и т.п. Её задача: 1) на простых примерах познакомить с OCL тех, кто никогда не слышал об этом языке; 2) а для тех, кто о нём слышал, возможно, открыть новые способы его применения.

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

32. Зачистка проекта

33. Aspiration Driven Development и Selenium

Алексей Баранцев рассказывает про пока необычную модель разработки «Aspiration Driven Development»:

Многим знаком инструмент Selenium. Это стандарт de facto (а вскоре и de juro) в области автоматизации веб-приложений и мобильных приложений. Невероятно популярный инструмент. Но удивительно то, что Selenium развивается без чёткого плана. С одной стороны, это вполне объяснимо — команда разработки представляет собой группу энтузиастов, работающих над проектом в свободное время. С другой стороны, непонятно, почему коммерческие вендоры не могут повторить этот успех. Вот вы верите в то, что такое возможно?

34. Велофрендли

За что белорусские ИT-компании любят велосипедистов (на примере ScienceSoft).

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

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

Похоже, инженер и автор блога «Smarter Every Day» Дестин Сэндлин знает ответ:

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

Но что если перенастроить велосипед таким образом, что снаружи едва ли заметишь разницу, но на самом деле она такова, что вынуждает мозг переосмыслить не только езду на велосипеде, но и сами её принципы?

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

35. С Днём рождения, Linux: история одного техносоциального эксперимента

В дополнение к недавней новости о двойном юбилее (Win95 и Linux): Три байта лет — разве это не юбилей?

Интересный рассказ про то, как всё начиналось у Linux.

36. Большая ложь RESTful APIs

Очень-очень злой материал про REST. У меня для вас есть дельный коммент с Хабра к этому материалу:

Поздравляю автора — он изобрёл SOAP, только на основе JSON, а не XML. Всё то же самое — отвязка от транспортного протокола и перенос всей логики в сам протокол.
На самом деле все эти ужасы преувеличены. Браузеры спокойно поддерживают метод DELETE (мы из приложения на Angular.js спокойно шлём запросы DELETE и PATCH пачками) и не очень стандартные коды ответов (мы так же широко используем 422 Unprocessable Entity, чтобы показать, что запрос был семантически некорректным и транзакция произведена не была и надо смотреть в тело ответа — там будут сообщения об ошибках).

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

Созвучная по теме, не менее злая статья: Хватит толкать веб вперёд:

Честное предупреждение. Вам это очень не понравится. Я хочу временно прекратить толкать веб вперёд. Я хочу моратория на новые браузерные штучки на год или около того.
С недавних пор я в глубоких сомнениях по поводу всего этого подталкивания веба вперёд. Зачем толкать его вперед? И вперёд к чему именно? Нужен ли нам такой веб, к чему мы его толкаем? Вам не доводилось слышать эти вопросы.
«Толкать веб вперёд» сейчас означает набивать его всё новыми копиями нативной функциональности с головокружительной скоростью — интересными штуками, возразите вы, но их просто слишком много.

Взгляд с другой стороны Вселенной: Если мы остановимся, мы двинемся вспять:

Веб богат фичами, и это замечательно. Медиазапросы, тач-события, флексбоксы, Service Worker, push-нотификации, веб-аудио, canvas... Всё это возможности, с помощью которых вы можете улучшить пользовательский опыт. Я не уверен, попадают ли они в заданные PPK рамки «вот досюда, не дальше», но вас ничто и не обязывает использовать хоть одну из них. Вы можете смело подвести черту и отказаться впредь изучать новые веб-возможности. Но если ваш конкурент воспользуется ими, и создаст благодаря им лучший пользовательский опыт, чем тот, что вы можете предложить, вы проиграете. А пользователи выиграют.

37. Как стать отличным front-end-разработчиком

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

Оглядываясь назад и вспоминая те интервью, я поражаюсь, как много значения я придавал знаниям — несмотря на то, что поначалу мне самому их не хватало. Нынешний я, вероятно, не нанял бы прошлого себя, хотя теперь я знаю, что, теоретически, успех возможен.
Чем дольше я работаю в web-сфере, тем больше понимаю, что основное отличие хороших и очень хороших специалистов заключается не в объёме их знаний, а в том, как они мыслят. Разумеется, знания важны, иногда даже очень, но в среде, которая меняется настолько быстро, способность получать новые знания всегда перевешивает (по крайней мере, в долгосрочной перспективе) те знания, которыми вы уже обладаете. Но важнее всего то, как вы используете эти знания для решения каждодневных задач.
Существует множество статей, в которых рассказывается про языки, фреймворки и инструменты, необходимые для получения работы. Я хотел применить другой подход. В этой статье я собираюсь рассказать о складе ума front-end-разработчика и надеюсь, что смогу дать наиболее полный и развернутый ответ на вопрос: «Как стать отличным разработчиком?»

Статья настолько популярна, что я нарыл альтернативный русский перевод.

38. Кто здесь самый крутой?

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

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

39. Уголок седых сишников

Как хорошо видно, лидерами являются различные семейства си-подобных языков. Вот свежие материалы по их теме.

Миром движет язык С:

Недавно мы опубликовали перевод статьи, в которой приводились аргументы в пользу изучения языков семейства С. Этот пост вызвал немало споров, в том числе была высказана точка зрения, что языки семейства С сходят со сцены; их востребованность хоть и велика, но снижается. Возможно, это и так. Но всё же язык С по-прежнему остаётся одним из наиболее распространённых.

Эрик Ниблер — известный эксперт по C++, один из важных контрибьюторов Boost, человек, который добавил в стандарт библиотеку Ranges. Вот свежее интервью с ним: Настоящее и будущее C++. Интервью с Эриком Ниблером:

Я не буду спорить, что в C++ есть свои уродства. Конечно, есть. Некоторые — наследство от C, вроде синтаксиса деклараций. Некоторые от добавления в стандарт фич, в работе с которыми у нас ещё не было достаточного опыта (аллокаторы), и некоторые просто были плохо спроектированы и раздуты (iostreams, locales, string). Я ни разу не видел ситуацию, где было бы оправданно использование виртуального наследования (ОК, я сам его использовал, чтобы эмулировать Concepts, но надеюсь, что в будущем этого будет не нужно).

Я думаю, наследование используют слишком часто. Я бы убрал с него акцент и предоставил простой и понятный путь для динамического полимарфизма с value semantics (читайте «Наследование — базовый класс всех зол» Шона Парента).
Я рад был бы застать момент, когда препроцессор уйдёт в прошлое. У других языков есть очень крутые инструменты, которые невозможно реализовать в C++ из-за существования препроцессора. Я бы предпочёл на его месте основанный на AST чистый макропроцессор. Позвольте мне управлять AST моей программы во время компиляции. И мне никогда больше не понадобится вставлять или заменять что-либо.

40. Для ушастых валильщиков

Желающим слушать и ищущим куда свалить, свежий подкаст: CTOcast с Владимиром Горшуновым (Amazon): «Нашим ребятам не хватает умения продавать себя».

О чём говорили в подкасте:

  • Как попасть на работу в Amazon.
  • Процессы разработки в Amazon.
  • «Наши» менеджеры: плюсы, минусы и подводные камни.
  • Сообщество и хакатоны в Amazon.
  • Зачем менеджерам нужны сертификаты.

Скачать подкаст в MP3.

41. Ссылки мелкой россыпью

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

~

Запрещенные ретро-блоки новостей из-за пределов горизонта поисковой видимости — предыдущие обзор ссылок #12 и обзор ссылок #11.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

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

3 комментария

Следите за комментариями по RSS
  1. спасибо

  2. Спасибо, громадное количество информации.

  3. ФП в вебе, веб-приложения на Clojure - две ссылки одинаковые.

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

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

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

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

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

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


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