Хабрахабр:
Привет хабр, вот тебе пост на первый день весны. Стремительно приближается красный день календаря8 марта, им его и посвятим. Купил я жене новый ноутбук, а в старом жила у неё программа для учёта месячных. ?Очень нужная штука? ? сказала мне жена, ? ?не хочу с ней расставаться?. Нормальный мужик возьми бы, да и поставь её на новый компьютер и забудь, но это не про меня. Решил я разобраться, до чего дошёл прогресс в этой области программирования, и выбрать самое лучшее. Оказалось, что пригодных русскоязычных программ не так уж и много, а точнее, всего 5. Вот и расскажу о них по порядку, авось кому пригодится такой обзор. Очень надеюсь, что столь интимная тема здесь никого не смутит. Такова уж физиология Homo Sapiens. Итак, список претендентов на поселение в новом супружеском ноуте выглядел так: · 4WomenOnly (Версия 7) · Женский Календарь © FeminaSoft (Версия 2.7/3.0) ?Total Ovulation Control? · Овуляшки (Версия 1.6.5) ? в девичестве Woman calendar © Слесарева Э.В. (Версия 1.1b) · WoCa (Женский календарь) © Alyamkin Ilya (Версия 1.3.2) · BlooDays (Версии 3.01 или 3.2.1 ? разницы, как оказалось, никакой) Я сразу расположил их по степени навороченности и в этом же порядке опишу основные фишки. Читать дальше →
Итак, что же это значит, когда кто-либо говорит, что foo выглядит как pythonic? Что значит, когда кто-либо смотрит в наш код и говорит, что он unpythonic? Давайте попробуем разобраться. В Python-сообществе существует неологизм pythonic, который можно трактовать по разному, но в общем случае он характеризует стиль кода. Поэтому утверждение, что какой-либо код является pythonic, равносильно утверждению, что он написан в соответствии с идиома Python?a. Аналогично, такое утверждение в отношении интерфейса, или какой-либо функциональности, означает, что он (она) согласуется с идиомами Python?a и хорошо вписывается в экосистему. Напротив, метка unpythonic означает, что код представляет собой грубую попытку записать код какого-либо другого языка программирования в синтаксисе Python, а не идиоматическую трансформацию. Понятие Pythonicity плотно связано с минималистической концепцией Python?a и уходом от принципа ?существует много способов сделать это?. Нечитабельный код, или непонятные идиомы ? все это unpythonic. При переходе от одного языка к другому, некоторые вещи должны быть ?разучены?. Что мы знаем из других языков программирования, что не будет к месту в Python?e? Читать дальше →
Написал Стивен Тови в 2:29 утра по программированию (шутка юмора Google Translate) Вступление от себя: эта заметка, прорекламированная Алёной C++, предназначена в основном разработчикам игр для консолей, но будет, наверное, полезна и всем, кому приходится сталкиваться с экстремальным аллоцированием динамической памяти. Возможно, любители посравнивать управление памятью в C++ и Java тоже найдут над чем задуматься. Оригинал с небезынтересной дискуссией в комментариях: altdevblogaday.org/2011/02/12/alternatives-to-malloc-and-new/ Обязательная вступительная басня Мне очень нравятся суши. Это вкусно и удобно. Мне нравится, что можно с бухты-барахты, не тратя целый обеденный час, зайти в суши-ресторан с конвейером, занять место и взять что-то свежее и вкусное с ленты. Но при всём при этом, чего мне реально не хотелось бы, так это быть официантом в суши-ресторане, особенно если бы моей обязанностью было бы рассаживать посетителей по местам. Сейчас объясню, почему...
Программист зверь ленивый, поэтому всё, что будет делаться больше одного раза надо непременно заскриптовать. Я уже некоторое время ковыряю TDD и задача постоянного контроля качества для меня становится всё актуальней. Особенно при пополнении команды новыми разработчиками. Сначала я запускал тесты руками: save, switch, $ nosetests. Потом к тестам добавились проверялки качества кода и пришлось всё засунуть в скрипт: pyflakes *.py pep8 *.py pylint *.py nosetests Скрипт запускать каждый раз ужасно лениво, поэтому небольшая оболочка на inotifywait стала запускать тесты и проверки после каждого сохранения: while true; do inotifywait -e modify project/*.py -qq; clear ./do_tests done Тут я стал более-менее доволен происходящим и даже на некоторое время расслабился. Но ведь программист кроме того, что ленив ещё и горд, поэтому результаты хочется кому-нибудь показать. Чтобы вести историю происходящего (которая очень помогает когда заходит начальник начальника и спрашивает: ?ну-с, чем вы занимались последний месяц??) уже есть система контроля версий. Но она показывает только, что сделано и не даёт обзора успешности каждой ревизии. Получается что код лежит, но непонятно в каком он состоянии и что где ещё надо сделать. Кроме того довольно тяжело следить за коллегами, которые тоже могут что-то сделать и забыть прогнать тесты, в результате в репозитории лежит битый код, не прошедший code review и при очередном pull может внезапно начаться clusterfuck. И тут очень вовремя kmmbvnr@lj выпустил скринкаст, в котором он демонстрировал интеграцию тестирования для django-проектов с сабжем Jenkins (бывш. Hudson). Посмотрел я на все эти красоты, графики и отчёты и тоже захотел чтобы всё само пело и играло. Но у него django-jenkins, как и следует из названия, встраивается в джангу и генерит отчёты используя хитрую систему. Мой проект до джанги не дорос и скорее всего не дорастёт ? это достаточно тривиальное WSGI-приложение, которое правда стремительно разрастается. Пришлось поднимать всё с нуля. Воскресенье я на это убил, но в целом всё довольно прямолинейно и теперь у меня есть симпатичные отчёты: Что внутри? Читать дальше →
Просматривая очередную серию мультов Фримена заметил мелькание чего-то похожего на QR код, заинтересовался, нашел этот кадр: Оказалось действительно код. Нашел онлайн декодер от гугла, который и помог восстаонвить исходное сообщение: Сакральный смысл парадокса с котом Шредингера состоит в обратном. Обычно речь идет о том, что в отсутствие наблюдателя кот находится в суперпозиции, в которой он одновременно наполовину жив, а наполовину мертв. Такая вот вирусная реклама для it'шников. Кому интересно можете найти сами, на видео, отмотав к 01:59. P.S. Это статья не про Фримена и поиск смысла в его мультиках. А просто про интересный ход, про скрытие информации в видеопотоке, что используется почти в каждой его серии.
Многие наверняка сталкивались с тем, что любимый браузер не умеет делать что-то очень простое, но насущно необходимое. Я хочу рассказать, как на коленке за час можно обучить FF4 хорошему. Написание расширений ? процесс очень простой и даже временами приятный, но, к сожалению, документация не всегда легко находится, how-to разбросаны по разным углам сайта MDN, внятных рекомендаций мне найти тоже не удалось? Все это порождает (по крайней мере, в моей голове ? породило) миф о том, что это трудоемкий процесс, доступный только гуру. Вот этот миф и призвана развеять данная статья. Мы напишем расширение, которое будет править типографику в полях ввода, обращаясь за помощью к сервису ?Типограф?. Поехали!

Отписаться от этой рассылки