Линкопост номер 10 (июль-август)
В Питер пришла сначала осень, а теперь уже и почти зима, проект года на работе вышел в нервную и полную граблей фазу релиза, и у меня закончились все силы, требуемые для нормальной гиковской активности, читай: писать в бложек, вести сайд-проекты, организовывать эвенты, выступать на эвентах, да даже просто ездить на них. Так, к моему великому сожалению, я не поехал в этом году на YAC, который, по всем отзывам, получился просто отличным.
Впрочем, привычка отправлять в фейворитс интересные ссылки никуда не делась, так что материал для поста как обычно есть. Более того, ссылок накопилось очень много, так что в этом посте пока только то, что попало мне в тви за лето (конец июля-август). Ссылки не самой первой, естественно, свежести, но, надеюсь, каждый найдёт для себя что-то интересное.
Очередная подборка всяких штук, которые можно делать в Sublime Text 2. Правда, если вы, так же как и я, привязаны к дурацкой монструозной IDE, а ST используете максимум в качестве вспомогательного “блокнота”, запомнить и довести до автоматизма все эти вещи будет не очень просто (и не очень нужно).
Аналогичная подборка для WebKit inspector. А по ссылке в начале статьи — более подробное руководство по оному.
Если вдруг кто-то интересуется альтернативными раскладками клавиатуры, то вот вам анализатор текста на предмет того, какую раскладку для его набора лучше использовать. Множество цифр, графиков и хитмэпов прилагается.
Хорошая статья (внезапно, по-русски и не на хабре) про найм программистов: “Найм программистов: вы всё делаете не так.”
Donkey Kong and Me — интересно о работе в геймдеве (конкретнее, в Atari) в ранние 80-е.
Ещё из ретро-геймдева: увлекательнейшее чтиво про историю создания Warcraft из первых рук. Часть 1, часть 2.
Большое сравнение того, как элементы синтаксиса выглядят в разных языках. По утверждению автора, может пригодиться как создателям новых языков, так и просто обычным разработчикам.
Немного о тюнинге TCP и параметре NODELAY.
Интересная статистика по геймерским машинам от Steam: они, как ни странно, в среднем становятся менее мощными.
Edda: тул для визуализации схемы серверов MongoDB из логов. Результат выглядит довольно симпатично.
Большая база данных по CPU от Стэнфорда.
Генератор случайных лиц на JavaScript (face-detection + генетические алгоритмы). Занятно, но результат выглядит довольно странно.
Яндекс наконец-то (ещё в конце июля, вот что значит долго в блог не писать) выкатил в опецсорц свой Танк, многократно рекламировавшийся на конференциях инструмент для нагрузочного тестирования. Если кто-то пробовал, то интересно услышать отзыв.
Как мы сделали Github Быстрым: заметка в блоге Гитхаба о том, какие технологии и архитектурные решания были выбраны при строительстве оного, и почему.
Сервис, выдающий целые числа ручной работы и высшей пробы. Есть API, усё как надо.
gridster.js - библиотека для создания сеток из блоков с поддержкой драг-н-дропа. По-русски формулируется довольно запутанно, но по демо на главной странице всё должно стать ясно. Может пригодиться при создании настраиваемых пользователем интерфейсов.
Netflix открывает код Chaos Monkey (точнее, целой армии “обезьян” ) — набора инструментов для внесения рандомных неполадок в работающие сервисы с целью непрерывно тестировать их устойчивость к отказам. Вообще, очень крутая идея, правда.
pathod — демон для тестирования и всяческих издевательств над HTTP-клиентами. Может выдавать разные ответы, имитируя разное некорректное поведение сервера типа внезапного дисконнекта или подвисания.
Подборка антипаттернов в области безопасности в вебе.
Статья про программный подбор сочетаний цветов. Даны теоретические основы и несколько алгоритмов на разные случаи жизни.
Edge Prediction in a Social Graph — подробное (с графами, картинками и кодом на scala) описание link prediction алгоритма (то что в соцсеточках называется “Who to follow” и “Similar to”). Интересно также взглянуть на приведённый в конце инструментарий: Scala, Python, Ruby, R, CoffeeScript+d3 — хороший аргумент в пользу polyglot programming. Прочитав статью, решил как следует углубиться в анализ данных (уже начал) и macine learning (только планирую).
Holmes: просто валидатор HTML. Интересен тем, что реализован в виде обычного CSS-файла, который при подключении подсвечивает ошибки HTML-разметки (недостающие атрибуты, etc).
No Excuse List: просто подборка самых популярных ресурсов для самообучения самым разным вещам. Назван так понятно почему. Когда я такое вижу, мне начинает хотеться, чтобы в сутках было 48 часов (ну или хотя бы можно было обходиться без сна).
Маленькая полуюмористическая подборка фейлов при разработке военного ПО. На anekdot.ru, да.
Руководство по управлению электронной почтой для ленивых и не склонных к GTD-сектантству людей. Впрочем, даже это для меня слишком сложно :(
Попытка кратко описать и классифицировать TOS (условия использования) популярных сервисов. Помогает понять, что и как сервис может делать с вашими данными, не читая -дцать страниц текста.
Большая даже не статья, а почти книжка о коренных различиях Linux и BSD. Несмотря на то, что написано активным пользователем последней, сделано это взвешенно, глубоко, и читается с большим удовольствием.
5-минутный (на самом деле, больше) гайд по сишным поинтерам. Может пригодиться некоторым Obj-C программистам, не учившим C.
Pure Java реализация библиотеки ØMQ. Некоторые наверняка будут плеваться, но джавистам, которым приходится использовать враппер вокруг нативной либы (о боже, они нужны разные для разных платформ) должно понравиться.
Монады в картинках, ну то есть совсем-совсем на пальцах, даже я понял.
20 противоречивых мнений о программировании. По сути, набор выводов, к которым легко приходит почти любой разработчик после 5-10 лет разработки реальных продуктов с ограниченным бюджетом и сроками.
ReactiveMongo — то, чего очень хотелось года два назад, когда мы писали Goozy: неблокирующая scala-библиотека для работы с монгой.
iOS
Tranquil очередной странный язык поверх LLVM и ObjC Runtime.
AFIncrementalStore — вроде бы как замена RestKit и инструмент для привязки доменных моделей к REST (и не очень) -сервисам поверх AFNetworking и CoreData. Надо будет попробовать. OSX 10.6+, iOS 5.0+
Комплементарное дополнение для сервер-сайда: Rack::CoreData для герерации REST API из моделей Core Data. С архитектурной точки зрения, клиент в виде белого ящика и вообще, разработка API исходя из клиентской модели данных — это явный такой антипаттерн, но очень интересно всё-таки узнать, насколько оно применимо в реальности.
Очередной туториал по игровому движку Cocos2D (на самом деле, ещё и по физическому Box2D), на примере игры типа Cut the Rope.
Просто большая (примерно 700 шт) библиотека Cocoa- и CocoaTouch-контролов.
FRD3DBarChart — iOS-библиотека для построения красивых трёхмерных OpenGL-чартов. В блоге автора - документация, демо и больше примеров.
LibComponentLogging — попытка унифицировать зоопарк логгинг-фреймворков в Cocoa. Судя по всему, собирается стать местным аналогом log4j.
Это пока, наверное, всё. Если останутся силы, в ближайшее время попробую выкатить пост (или посты) с осенними ссылками. До встречи.