Python

Это невозможно понять, это надо запомнить

Из анекдота

Какое же дерьмо разочарование этот ваш Python. Отступы для организации вложенности блоков, двоеточия после конструкций условий, циклов, объявления функций. Обязательный пробел после двоеточия при объявлении элементов ассоциативных списков и (обязательное же!) его отсутствие перед. Почему вокруг знака равенства при присваивании должны быть пробелы, а при передаче именованных переменных — нет? Зачем две пустые строки до и после функции? Какой-то пробельный фетишизм, право же. PEP8? «Читай PEP 8 — пиши код как ван Россум»? Вы еще и идолопоклонники?

Объявление функции с переменным количеством аргуметов в стиле (*args) и функций с именованными переменными в стиле (**args). Встроенные в язык манипуляции множествами и отдельная внешняя библиотека для разряженных массивов.

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

Аргументы в функцию передаются по ссылке или по значению? Ах, зависит от типа? В языке с динамической типизацией, ага…

Философия Python начинается с фразы «Красивое лучше, чем уродливое». Ну вот — где здесь красота? Видимо, она выше моего эстетического понимания. Сильно выше.

И это третий по популярности язык программирования? Первые два не берем — Java традиционный язык «кровавого энтерпрайза», так сложилось, а C — опора всея Linux. Но Python? Почему? Как?!…

Чего-то в этом мире я крупно не понимаю.

Про Lua

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

Профессор Роберту Иерусалемски написал инструмент для внутренних проектов лаборатории компьютерной графики. Он не против его использования всеми, занимается его популяризацией — пишет книги, участвует в конференциях, взаимодействует с сообществом — но не желает выпускать его из рук. В результате у нас есть справочник по языку, который может быть переведен совершенно свободно, и есть книга, защищенная авторскими правами и не может из-за этого быть переведена силами сообщества. На русский язык существует лишь один перевод 3-го издания и никаких надежд на переводы следующих. Локальные сообщества стихийно вспыхивают и гаснут, ну или превращаются в сообщества более специализированных продуктов на основе Lua. Проекты создаются, поддерживаются энтузиастами и тоже гибнут вдали от «центра». Неудивительно, что сейчас разработка на этом языке подобна «бойцовскому клубу», первое правило которого «никому не говори о бойцовском клубе». Есть масса людей, занимающихся этим языком, масса продуктов — от роутеров Mikrotik до Adobe Lightroom и игр WoW и Angry Birds — где они внедрены в качестве внутреннего языка программирования, но нет ни единого сообщества, ни даже ресурсов, объединяющих всю эту разношерстную аудиторию.

Разработчики Python этой ошибки избежали. Сообщество огромно, как и наработанная им кодовая база. Жаль, что профессору до этого как не было никакого дела, так и нет.

Ubuntu Phone

Пользуясь тем, что один из двух официально поддерживаемых Canonical телефонов — мой Nexus 4, установил Ubuntu на телефон. Первое впечатление — кто сказал, что это стабильная версия? Дело даже не в том, что он не запоминает пароли WiFi, не синхронизирует контакты с подключенной учетной записи Google и что на нем только английская раскладка в клавиатуре. Это все решалось бы при наличии возможности устанавливать программное обеспечение из менеджера пакетов. Так ведь даже его нет. То есть какая-то странно работающая оболочка и все. ВСЁ!

Снес к чертовой матери. С большим сожалением, да — но снес. Рано еще задумываться об ubuntu-фоне. Его на сегодняшний день просто нет.

Opera всё

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

В феврале было объявлено, что движок Presto больше не будет развиваться, и следующая версия браузера будет базироваться на WebKit. Многих это обрадовало, потому что решало главную проблему — проблему совместимости. При том, что все хорошее останется, а плохое уйдет… в общем, настроение было самым бравурным.

Однако как-то незаметно формулировка «перейдем на WebKit» превратилась в «перейдем на Chromium». А это уже не только движок, но и интерфейс. Сообщество насторожилось — если Opera превратится в один из «хромированных клонов», то это будут ее похороны.

Подтверждая сентенцию о том, что пессимиста невозможно огорчить, Opera оправдала самые худшие опасения. Новая версия Opera уже даже не Chromium. Пропало все, вплоть до закладок — вместо них «улучшили» экспресс-панель, добавили невнятную копилку и возможность группировки картинок сайтов по папкам. Зато сохранили жесты мышью, Opera Link и режим сжатия трафика. В целом, конечно, утешение слабое. Opera таки пополнила ряды «хромированных клонов» — Яндекс.Браузер, Интернет@mail.ru, Рабмлер Нихром, QIP Surf и прочих Flock-ов. И это действительно похороны — той Оперы, которую так любили поклонники и так уважали противники. Светлая ей память…

qBitTorrent

BitTorrent (англ. «Поток битов«) — протокол распределенного обмена файлами через интернет, при котором пользователи получают фрагменты друг у друга, снижая нагрузку и зависимость от источника.

Всем был хорош uTorrent, «(очень) маленький клиент BitTorrent», быстрый, удобный, понятный. Пока его не купили люди из BitTorrent Inc., которые сделали его официальным torrent-клиентом…

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

qBitTorrent

qBitTorrent сделан как OpenSource-альтернатива uTorrent. С интерфейсом и возможностями, как у uTorrent-а. И еще — кроссплатформенный. Кроме Windows поддерживается еще Linux (пакеты для уймы дистрибутивов или сборка из исходников), MacOS, FreeBSD и даже OS/2.

Windows Vista

Ну вот и вышла «новейшая и сама ожидаемая операционная система Microsoft, которая приходит на смену Windows XP». Как обычно, рекламный бред о том, что система в очередной раз стала «еще лучше», ничего конкретного нам не сказал. Пришлось установить и посмотреть…

Первая весточка оказалась самая радостная. Установка Висты предлагает пользователю выбор между 32-битной и 64-битной версией. То есть спешно менять компьютеры нам не придется. 64-битная платформа подождет планового апгрейда наших 32-битных Атлонов, Селеронов и Пентиумов-4. Уже хорошо…

Интерфейс AeroGlass. Очень красиво, понравилось. В Майкрософт вообще к разработке интерфейса относятся очень серьезно (быть может, потому что кроме интерфейса там ничего нет?) и теперь у разработчиков программного обеспечения есть новый образец для подражания. Уже появились «скины» для WinAmp, Maxthon, FireFox, Miranda… Есть только один вопрос — неужели ради этой красоты с прозрачностью и «стеклянных» границ окон необходимо минимум 128 мегабайт видеопамяти и 1 гигибайт оперативки?

С совместимостью намного хуже. В своей время переход с 2K на XP был совершенно безболезненным. Установив же Висту, я получил «просто систему». Из программного обеспечения работоспособным осталался только «интерфейсный» софт — то есть то, что никоим образом не касается системы. Я не смог поставить ни Norton AntiVirus, ни одну из програм Acronis. По сути, только офис, даже PuntaSwitcher отказался работать из-за того, что управление клавиатурой Виста перехватывает намного раньше. Я уже боюсь предполагать, что будет с играми. Так что переходить на Висту еще очень рано. Ждем, пока разработчики наших любимых программ выпустят новые версии под новую систему и обновляемся. Не самый радостный вывод для тех, кто пользуется легальными путями получения программного обеспечения.

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

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

Продолжает Билл Гейтс бороться и с пиратами. Чтобы установить MSIE7 и WMP11 — в Висте они уже есть, но можно установить их и в XP — необходимо пройти «подтверждение подлинности программного обеспечения». Но еще легендарный Левша сказал «что один человек сделал, другой завсегда поломать смогет». И поломали. Windows XP уже узнается веб-узлом обновления Майкрософт как подлинная, как и Виста, инструкция по взлому которой уже можно найти на обложке пиратского DVD. Так что очередной раунд «Билл Гейтс против пиратов» снова оказался вничью.

Резюмируя, скажем, что Билл снова сделал то, что с блеском делал всегда — продал новую «обложку» под видом революционного технологического «прорыва в будущее». Сказать, что я удивлен, значит сказать неправду. Есть в этом мире вещи, которые не меняются.

А по поводу «обложки» разговор предстоит отдельный…

Apollo

http://koti.welho.com/hylinen/apollo/

Декодер MP3, используемый в этом программе, околомузыкальная аудитория на многочисленных форумах называет самым лучшим. Наверное, это так и есть, спорить не буду. А вот то, что программа при этом небольшая, быстрая и стабильная — факт несомненный. Интерфейс довольно своеобразен, но привыкнуть к нему можно довольно быстро. Привыкнуть и оценить — есть в нем свои плюсы. Список поддерживаемых форматов невелик, но расширяем за счет подключаемых модулей с родного сайта и всего многообразия модулей для Winamp в режиме совместимости. Ничего революционного, конечно…

Самое же любопытное — это лицензия распространения. Вы можете использовать программу свободно, если соглашаетесь с декрарируемыми автором мыслями. В случае Apollo — это те самые «права человека» о равенстве перед законом независимо от расы, пола, вероисповедания и прочая, и прочая и прочая… лицензия называется «dareware» от английского «dare» — «осмеливаться», «бросать вызов». Весьма любопытный способ находить единомышленников :)

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

PSPad

www.pspad.com/ru/

Текстовый редактор для программистов (предположительно «Programmer’s Source Notepad»), который за один час заставил меня пересмотреть свои взгляды на Multi-Edit — а им я пользуюсь уже лет 15.

Поддержка множества языков программирования, подсветка синтаксиса, полуавтоматический ввод стандартных конструкций, возможность вызывать компиляторы и корректно обрабатывать возвращаемый ими результат — это не уникально, это есть и в Multi-Edite и еще в десятке других продуктов. Форматирование исходного текста (HTML и программного кода) для улучшения восприятия и/или оптимизации размера — тоже вещь достаточно распространенная. В качестве продвинутого средств форматирования в состав пакета включена бесплатная программа TiDy. И много-много еще таких мелочей, которые делают инструмент «продолжением руки», к которым я привых за эти годы и не хотел бы отказываться — все они нашлись в новом продукте. Больше всего порадовала настройка всего, что угодно (шаблонов, семантической подсветки кода, всех без исключения горячих клавиш). Multi-Edit уже давно перестал быть типовым продуктов — за все время его использования я сделал из него свою собственную среду разработки. То же самое мне за час-другой удалось «построить» из PSPad. И сейчас, всего лишь на следующий день я работаю, не испытывая ни малейших неудобств и наслаждаюсь появившимися новыми возможностями, из которых самое используемое — просмотр PHP-скриптов, пропущенных через Apache без переключения в окно браузера. То есть прямо внутри среды. Разработчику теперь вполне можно не вылезать из нее на протяжении всего цикла разработки.

И вся эта радость — бесплатная и имеет перевод на русский. Перевод, правда, местами кривоватый (я вернул интерфейс к первоначальному английскому), но в общем понятный.

Словом — огромное спасибо автору. Порадовал неимоверно.

Multi-Edit

Впервые о нем я услышал еще в до-«оконные» времена. Был такой редактор «Фотон», на деле оказавшийся пиратской локализацией ME4. Очень кривой, к тому же. Так что на самом деле знакомство с этим продуктом началось с пятой версии…

Заявленный как редактор для программистов, ME был первым текстовым редактором, который умел подсвечивать синтаксис, проверять четность скобок и строить стандартные конструкции языков программирования. Кроме того, он уже тогда умел вызывать командной строкой транслятор этого языка, и, анализируя ответ, показывать сообщение об ошибке и место, где оно произошло. Сейчас этим мало кого удивишь, но в те времена это была единственный продукт, позволяющий создать интегрированную среду разработки, скажем, на ассемблере, и неплохо конкурирующий в плане удобства с уже существующими IDE («Integrated Developer’s Environment» — «Интегральная среда разработчика») Borland’a за счет гибкости подстройки под пользователя и программистские инструменты.

Время шло, подразделение «American Cybernetics» стало автономной «Multi-Edit Software», многие радкторы научились подсвечивать синтаксис и обрабатывать сообщения об ошибках, но Multi-Edit продолжает удерживать свои позиции среди тех, кто пользовался им еще тогда, в темные времена ДОСа. Во многом благодаря тому, как он устроен «изнутри».

А изнутри он устроен очень изящно. Это просто среда, в которой исполняются программы на внутреннем языке программирования. Платформа, ориентированная на обработку теста. А вся его функциональность — просто набор скриптов (или «макросов» — от «MACro-Script») на этом языке. Следуя основным программистским тенденциям первый вариант внутреннего языка (MEMAC — «MultiEdit MACro-language») был подобен Паскалю, второй — С (CMAC — «C-like MACro-language»). Исходные коды всегда поставлялись в комплекте с очередной версией языка и те пользователи, которым не хватало функциональности, легко дописывали недостаюбщее сами. Были даже сообщества, занимающиеся написанием и поддержкой собственных «улучшений и дополнений», некоторые их них даже связывались со штаб-квартирой и добивались внесения их дополнений в дистрибутив следующей версии. В качестве самого яркого примера назовем локализацию — адаптацию системы для корректной работы (поиска, сортировки и проч.) с кириллицей. Хотя, справедливости ради следует заметить, что проблема с малой буквой «я» в конце строки у них осталась до сих пор — видимо, завязана на особенностях реализации самой платформы.

Сейчас этот редактор существует в версии 9, начиная с восьмой версии он — полноценный продукт под Windows. Поддерживается куча языков программирования и совместимость с распростаненными средами от MS, Borland, Watcom и Macromedia. Цветовая схема и раскладка клавиш у меня собственные и не менялись с пятой версии. Используется для SQL и HTML-кодинга, разработке на С++, PHP, и вообще в качестве блокнота для любых текстовых файлов. Мой любимый инструмент «для всего»…