EncFS GUI

EncFS — криптографическая файловая система, прозрачно шифрующая файлы, используя произвольный каталог в качестве места для хранения зашифрованных файлов.

Википедия

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

Читать далее EncFS GUI

Пропитон

Есть несколько вещей, о которых авторы учебных пособий почти не говорят. Они как миссионеры, вопрос «зачем?» для них сродни посягательству на догмат веры. Но ведь это… нечестно, да? О проблемах лучше говорить «на берегу».

Читать далее Пропитон

Бейсик XXI века

Да, это Python. Подобно тому, как пост-бейсиковая эпоха оставила после себя «проклятие GOTO» и «макаронное программирование», пост-пайтоновые времена обещают нам кризис посерьезней.

Будет аллергия на «сахар», будет конфликт «концептуалистов» с «практиками», будет массовая миграция на пост-пайтоновские языки и другие беды, доселе неведомые.

И его начнут стыдиться и избегать, точно так же, как сейчас стыдятся и избегают BASIC и PHP. Но это будет потом. Подождем…

Cosmic Fail

Space Engine позиционируется как симулятор Вселенной максимальной реалистичности. Известные объекты описаны реальными данными, неизвестные смоделированы. Можно «слетать» к Сатурну и посмотреть на влияние кольца на цвет поверхности, вернуться на Землю и увидеть северное сияние, пролететь сквозь туманность и посетить соседние галактики. Все очень красиво и плавно работает на не самых мощных компьютерах. Но успех ли это?

Проект начался в 2005 году. Пятнадцать лет — это долгострой уровня третьего Half-Life и Duke Nukem Forever. Причины — отказ от привлечения инвестиций, закрытые исходные коды и авторитарность единственного разработчика. Автор, студент-астроном, просто «пилит» в свое удовольствие хобби-проект, который со временем стал работой за счет пожертвований игроков, мечтающих о «настоящем космосе».

За это время проект стал позиционироваться как «планетарий». Теперь это не какая-то игрушка, а «серьезный инструмент для изучения астрономии». Но увы — на фоне современных звездных каталогов проекта Gaia данные проекта Hipparcos 30-летней давности малочисленны и недостоверны. Большая часть виртуальной Вселенной синтезирована или воспроизведена по изображениям, тоже не всегда достоверным. Небесная механика для такого амбициозного проекта тоже недостоверна и при воспроизведении известных, наблюдаемых событий небесные тела банально «промахиваются». Для игры это проблемой не является, а вот для планетария явно недопустимо.

Автор предлагает свой «движок» для интеграции в сторонние проекты, но за прошедшие 15 лет проект остается «черным ящиком», позволяющим видеть красивые картинки на тему космоса.

Автор ищет тех, кто присоединится к проекту. Но не найдет — авторитарность и необходимость работать на общественных началах делает этот поиск безнадежным. Используемые технологии (С++ и GLSL) пока еще уместны и применимы, но (что особенно касается видеокарт) не вечны и шансы прийти к планируемому релизу на устаревших технологиях (данные, напомню, уже устарели) растут изо дня в день.

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

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

Это ли не fail?

Про SQL

В запросах полям можно назначать синонимы. Но по ним нельзя сортировать.

select name as username from users order by username

Стандарт говорит нам «используйте реальные имена полей, потому что на момент сортировки синонимы еще не определены».

Ладно, пример не показателен. Но если одна и та же таблица используется несколько раз, то использование реальных имен вызывает путаницу — из какой именно части запроса это поле?

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

Lua

Католицизм — это круто

Кевин Смит, «Догма».

Lua — это язык программирования, написанный подразделением технологий компьютерной графики Папского Католического университета Рио-Де-Жанейро. Все-таки католики знают толк в миссионерстве — о языке Lua нет даже нейтральных отзывов, только восторженные. И восторг этот, как оказалось, вполне оправдан.

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

И он быстр — об этом говорит успешное применение в графике вообще и в видеоиграх в частности. В простеньком Angry Birds и в «навороченном» World of Warcraft, во вполне коммерческом Adobe Lightroom и в полностью свободном GIMP, в системном OpenWRT и прикладном SciTe — то есть везде, где быстрая низкоуровневая платформа нуждается в удобной и гибкой логической надстройке.

Lua работает везде. От мобильных устройств на Android, iOS и Symbian (и даже проще — игрушечных роботов Lego Mindstorm тоже можно программировать на Lua) до мейнфреймов. Впрочем, на мейнфрейме можно запустить все, что угодно, это не особенно интересно. Зато интересна поддержка всех разновидностей Windows, Linux и UNIX. Да, и MacOS с WindowsPhone тоже.

Определенно, Бог создал мир за шесть дней потому, что написал его на Lua.

Perl

perl -wle '(1 x $_) !~ /^(11+)\1+$/ && print while ++ $_'

Программа для вывода простых чисел. Вот это я понимаю, «магия слова».

XP

Экстремальное программирование («Extreme Programming») это дисциплина разработки программного обеспечения и ведения бизнеса в этой области, которая фокусирует усилия обеих сторон (программистов и бизнесменов) на общих целях. Команды, использующие ХР, производят качественное программное обеспечение с весьма большой скоростью.

Не в этом ли причина всеобщей болезни сорванных сроков — Doom 3, Half-Life 2, Need4Speed Carbon? Не могло это быть простым совпадением, что-то одновременно повлияло на монстров игрового рынка. Теперь понятно — «модная болезнь» ударила по связке «цена-время-качество», закона сохранения энергии ведь никто не отменял.

Причем на Западе это фактор «время», а у нас «качество» — Lada Racing Club, вышедший примерно в то же время, доводился до ума уже после выхода в продажу. Болезнь одна, только симптомы разные.

Кенгуру со стингером

Дмитрий Турецкий, dmitri@listsoft.com

Повторное использование объектно-ориентированного кода (в программах) вызвало головную боль у Австралийских Вооруженных Сил. Так как симуляторы все активнее используются для тренировок боевых действий вертолетов, от программистов требуется постоянное повышение реализма используемых сценариев, включая детальные ландшафты местности и — в случае операции Феникс — стад кенгуру (так как испуганные животные могут легко выдать расположение воинских частей). Начальник отдела симуляций наземных операций Defense Science and Technology Organization приказал разработчикам смоделировать перемещения кенгуру и их реакцию на вертолеты. Будучи грамотными программистами, те использовали готовые программные объекты, описывающие поведение пехоты в аналогичной ситуации, заменив изображения солдат на изображения животных и увеличив их скорость. Желая продемонстрировать свое мастерство перед посетителями — американскими пилотами — горячие австралийские парни «разбудили» кенгуру, пройдя над ними на малой высоте во время симуляции. Кенгуру разбежались, как и предполагалось, и американцы понимающе кивнули… А затем сильно удивились, так как кенгуру, перегруппировавшись, появились из-за холма и выпустили тучу стингеров по злополучным вертолетам (программисты забыли удалить соответствующий кусок кода из «пехотных» объектов).

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

Начальник симулятора отметил, что пилоты с этих пор боятся кенгуру как огня, для чего, собственно, и нужен был этот кусок кода в симуляторе…