FreeCommander 2008

FreeCommander 2008

Я давно уже отказался от платного Total Commander’а в пользу бесплатного FreeСommander‘а. Приятно, что он идет не по пути подражения Total’у, в отличие от Unreal Commander‘а, а  делает многие вещи по-своему, но в то же время удачные моменты берет из других файловых менеджеров.

Например, мне в нем нравится переименование по клавише F2 (аналог Shift+F6 в тотале) или копирование по F5 без диалога подтверждения, файл молча копируется и все. На работе приходится пользоваться Total’ом и иногда уже торможу, пытаясь понять, что он от меня еще хочет, если я ему уже сказал «Копировать» с помощью F5.

Но были две вещи, которых мне не хватало во FreeCommander’е — это встроенный клиент FTP и  групповое переименование файлов. Для этих целей приходилось использовать сторонние проги (FileZilla и Rename Master соответственно).

И вот буквально три дня назад вышла новая версия FreecCommander’а — 2008.06 , в которой автор реализовал именно эти столь недостающий возможности.

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

К сожалению, FTP-клиент не поддерживает соединение через SSH FTP (SFTP), поэтому для работы с сервером sourceforge.net придется использовать все ту же FileZill’у или веб-интерфейс. Есть еще некоторые нарекания к интерфейсу настроек FTP-клиента, но это мелочь, все-таки настраивается это обычно один раз.

В части группового переименования FreeCommander тоже приятно удивил. Кроме стандартных операций поиска и замены в имени файлов, изменения имени и расширения, поддержки счетчика и еще кучи мелочей вроде перевода имени в нижний и верхний регистры, FreeCommander умеет читать информацию из MP3-тегов и EXIF-информацию из картинок.

На скриншоте можете увидеть окно с настройками переименования файлов с музыкой, чтобы они соответствовали формату «Номер трека — Артист — Название трека»

В новой версии есть еще некоторые изменения в интерфейсе, но они меркнут по сравнению с этими двумя нововведениями. Теперь если автор сделает поддержку SFTP, то я даже не знаю чего еще можно будет желать. Короче, автору респект и уважуха 🙂

TeXGui 1.0

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

Итак, программа TeXGui предназначена для удобного создания формул в формате TeX. Во время набора вы сразу видите результат. Программа является оболочкой над консольной программой mimeTeX.

Особенности программы

  • Предпросмотр во время набора формул
  • Подсветка парных скобок
  • Автоматическое закрытие скобок (в том числе с учетом команд \left* / \right*)
  • Сохранение полученных формул в форматах GIF, PNG, BMP, JPEG, TIFF
  • Возможность добавлять на панель инструментов собственные страницы с инструментами и кнопки с командами TeX.

Скачать программу и ее исходники можно с этой страницы. Программа написана на языке Python (подойдут версии 2.4 и 2.5) с использованием библиотеки wxPython 2.8.7.1. Там же вы найдете более подробное описание со скриншотами.

Скриншоты

Читать далее…

Дэвид Дубиле. Подводный мир

Сегодня случайно забрел на Чистые Пруды и увидел, что как раз сегодня там открывается фотовыставка «Подводный мир» фотографа Дэвида Дубиле.

Уже третий год подряд в этом месте на уличных щитах вывешивают фотографии природы. В позапрошлом году там были фотографии сделанные с помощью аэрофотосъемки Яном Атрюс-Бертраном, в прошлом — фотографии животных Стива Блума, а в этом выставляют подводные фотографии Дэвида Дубиле.

Читать далее…

Гран-при Монако

Даа, давно что-то не было интересных гонок Формулы-1 в Монако. Я уже был готов проспать половину гонки под мерное жужжание моторов, но оказалось что в воскресенье во время гонки синоптики с вероятностью 55% обещают дождь. Прогноз оправдался — перед гонкой дождь пошел, а после первых кругов еще и усилился. Поэтому первая половина гонки и была особенно интересной, но запала хватило до конца.
Читать далее…

Инквизиция

В честь Дня радио и Дня победы у нас в институте весь первый этаж обклеили плакатами. Все бы ничего, но один плакат просто не мог не сфотографировать.

Читать далее…

Баг или очередной развод?

Началось все примерно месяц назад, когда мой папа через автомат решил положить деньги на два билайновких телефона. На первый номер деньги поступили практически сразу, а на второй все не приходили и не приходили. Чек он сохранил, номер телефона на нем был написан правильный. Тогда он позвонил в службу поддержки, телефон которой написан на чеке, и там ему сказали, что оказывается он деньги положил не на Билайн, а на Корбину (есть такой провайдер в Москве). В техподдержке сказали, что они могут перевести эти деньги на Билайн, что они и сделали, после чего деньги пришли по назначению. Папа, конечно, удивился, как можно было перепутать кнопки, особенно если они находятся в разных разделах, и забыл об этом.

И вот вчера он решил тоже положить деньги на телефон. Я был с ним, поэтому через плечо смотрю, что он набирает, и набирал он все правильно. И вдруг на экране, на котором надо подтвердить, что номер набран правильно, рядом с номером телефона красуется надпись: «Corbina». Я показываю на эту надпись папе, он удивляется и решает повторить попытку, вдруг действительно что-то напутал.

Повторяет все действия уже более аккуратно, дело доходит до ввода номера телефона, я обращаю внимание на то, что над нарисованной цифровой клавиатурой, с помощью которой надо набирать номер, висит логотип Билайна. Но как только папа ввел последнюю цифру номера, этот логотип меняется на логотип Корбины.

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

Да, чуть не забыл, автоматы в обоих случаях располагались в разных местах. В первый раз дело происходило в Подмосковье, а второй — в Москве.

Детективы

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

Старые советские
Однажды ночью с особой циничностью ограблен центральный магазин мягких игрушек имени Владимира Ильича. Украдена огромная сумма в 26 рублей и 84 копейки (сколько украдено всегда известно с точностью до копейки). Главный герой, милиционер в третьем поколении, начинает искать грабителей, чтобы спасти украденое и тем самым предотвратить в стране экономический кризис. По ходу фильма он узнает, что главный злодей кроме всего прочего оказывается еще японским шпионом и спекулянтом. В конце фильма злодей во всем сознается, выдает остальных 20 участников банды, и $100, которые он спрятал под плинтусом. Доллары главный злодей увидел впервые после того, как их нарисовал, поэтому его еще стали судить за хранение валюты и одновременно за фальшивомонетничество. Оставшихся членов банды главный герой арестовывает в одиночку без единого выстрела. Соучастники настолько добропорядочны, то на волшебную фразу «руки вверх, вы арестованы» мгновенно бросают оружие. Посленяя сцена в суде, где главный злоей во всем сознается, но в фильме не показывают какой приговор выносит судья.

Читать далее…

WordPress 2.5.1

Обновил движок блога WordPress до версии 2.5.1. До сих пор была установлена версия 2.3.3, поэтому версию 2.5.0 я пропустил. Не сказал бы, что мне так уж нужна была новая версия, тем более в старой все работало нормально, но когда увидел, сколько за последнее время обновилось плагинов, решил сделать глобальный апгрейд.

Читать далее…

Опять СУП поменял код страниц ЖЖ. Опять не работает LJWatcher и разворачивалка веток из мозиловского расширения Livejournal addons. На этот раз, правда, все обошлось малой кровью. А точнее адрес однопиксельной картинки, благодаря которой получаются отступы комментариев от левого края в зависимости от уровня вложенности, изменился с http://stat.livejournal.com/img/dot.gif на http://p-stat.livejournal.com/img/dot.gif. LJWatcher я отремонтировал и выложу его чуть-чуть попозже.

PS. А что касается предыдущего поста, удалось довольно красиво получать и удаленные комментарии и теперь всерьез задумываюсь переписать LJWatcher на Питоне.

Комментарии в жж и грабли

Узнал недавно, что оказывается сервер ЖЖ позволяет отображать комментарии не только в «деревянном» виде, т.е. в виде дерева, но еще и в плоском, когда комментарии располагаются в виде списка один за другим. Причем располагаются они в порядке добавления. Для этого надо передать методом GET параметр view со значением flat. Или, говоря для не программистов, достаточно в адрес добавить ?view=flat (или &view=flat, если какие-то параметры до этого уже были). Мне показалось, что вместе с параметром format=light, который позволяет отображать страницы в стиле Lynx независимо от настроек журнала, параметр view=flat мог бы помочь улучшить движок LJWatcher’а. Тем более, что из плоского вида для каждого комментария можно вытащить идентификатор его родителя, после чего восстановить дерево было бы делом 10-15 строк.

Обрадовавшись, решил попробовать эту идею на Питоне. Заодно выковыривать всю нужную информацию из страницы стал с помощью регулярных выражений, в то время как в LJWatcher’е я сначала преобразовывал HTML в XHTML, а потом получал нужные элементы через XPath. Поэтому иногда были ошибки, если в посте или в комментариях был неправильный HTML.

Результат получился впечатляющим. Посты с большим количеством комментариев стали загружаться в несколько раз быстрее. Что, в общем-то, не удивительно. В LJWatcher’е, чтобы развернуть комментарии, приходилось рекурсивно загружать каждую ветку, а с параметром view=flat такой проблемы нет в принципе.

Уже начал подумывать о том, чтобы или в LJWatcher’е переделать движок таким образом, или довести скрипт на Питоне до ума и сделать следующую версию проги на нем, заодно сделать ее кроссплатформенной. Окзалось, что радовался я рано. Осталась одна малюююсенькая проблема, которая и в LJWatcher’е попортила не мало крови, но там ее удалось все-таки обойти. Эта проблема — удаленные комментарии, на которые кто-то ответил. При использовании параметра view=flat удаленные комментарии не отображаются, что в общем-то логично с точки зрения пользователя. И, таким образом, при использовании этого параметра нельзя получить их идентификаторы (и, что самое обидное, идентификаторы их родителей). Поэтому, если есть несколько удаленных комментариев, идущих в качестве ответа друг на друга, а затем за последним удаленным комментарием идет комментарий полноценный, то при построении дерева из комментариев, полученных в плоском виде, теряется вложенность.

Есть мысля дополнительно загружать обычный вид (разумеется, с параметром format=light) только для того, чтобы получить идентификаторы удаленных комментариев и их родителей, но боюсь, что тогда опять пойдут пляски с бубном, которые были в LJWatcher’е (особено, чтобы получить идентификаторы родителей, потому что повыколупливать идентификаторы самих удаленных комментариев — не проблема).

Надо будет еще поковыряться, может что и получится интересного. Но все-таки жалко, что в справке к серверу ЖЖ нет функций для получения комментариев без разбора HTML’а.

PS: Пока рылся в гугле узнал про еще один параметр fallback=s2, чтобы отображать страницу в стиле s2 тоже независимо от настроек журнала. Не знаю кому это может понадобиться, имхо, format=light парсить легче. Ну это так, к сведению, может кому-нибудь и пригодится.