Клиент Twitter, написанный на Ruby и Gtk

Ноябрь 15, 2009 expl0rer 4 comments

twiВ рамках изучения Ruby написал небольшой twitter клиент с использованием библиотеки GTK.

Возможности пока минимальные:

  • просмотр ленты сообщений друзей
  • просмотр прямых сообщений
  • публикация своих записей

В дальнейшем скорее всего будет дорабатываться.

Рубрики:Linux, Ruby Метки: ,

Поиск по AxForum с помощью Google Chrome

В связи с появлением вменяемых сборок chrome под linux не удержался и изменил своему любимому firefox.

Как известно, одной из killer feature chrome является omnibox, позволяющей из адресной строки браузера выполнять множество действий. Для того, чтобы добавить возможность поиска по форуму надо:

  • Click правой клавишей мыши по адресной строке -> Edit search engines…
  • Add
  • Имя = axforum
  • Keyword = ax
  • Url = http://axforum.info/forums/search.php?do=process&showposts=0&quicksearch=1&s=&query=%s

После этого в адресной строке можно написать ax и перечень слов, по которым осуществляется поиск.

Рубрики:Axapta Метки:

[Axapta] Перемещение Excel листов

Метод в ComExcelDocument_Ru, позволяющий перемещать листы Excel-документа:

void moveSheet(int      _copyFromSheet,
               int      _num,
               boolean  _before = false)
{
    COM         comWorkSheetAfter, comWorkSheetCopy, comWorkSheets;
    COMVariant  dummy = new COMVariant();

    if (! comDocument)
        throw error("Excel не инициализирован");

    dummy.noValue();

    comWorkSheets     = comDocument.workSheets();
    comWorkSheetAfter = comWorkSheets.item(_num);

    if (_copyFromSheet)
    {
        comWorkSheetCopy = comWorkSheets.item(_copyFromSheet);
        if(_before)
            comWorkSheetCopy.move(comWorkSheetAfter, dummy);
        else
            comWorkSheetCopy.move(dummy, comWorkSheetAfter);
    }
    else
    {
        if(_before)
            comWorkSheets.add(comWorkSheetAfter, dummy);
        else
            comWorkSheets.add(dummy, comWorkSheetAfter);
    }
}

В общем то, ничего сложного. Единственное, на что стоит обратить внимание – параметр _before и переменная dummy.

Рубрики:Axapta Метки:

Хеллсинг – борьба с нечистью

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

Нас привлекает все, связанное с потусторонним миром. Кого-то как второй шанс, кого-то как награда; для одних – это сказка, для других – кошмар, а для аниматоров из Японии тема вампиров и борьбы с ними (и между ними) стала темой для динамичного аниме-сериала, созданного Ясунори Урата по мотивам одноименной манга.

Отказавшись от нравоучений и размыв понятия добра и зла создатели рассказывают нам о противоборстве трех организаций: Хелсинг, 13-го отдела Ватикана и «Последнего батальона» Миллениума. Забудьте про борьбу плохих и хороших парней, сейчас нам покажут битву Зла со Злом, а значит, можно отбросить мораль и выбрать лагерь, за которую мы будем болеть, основывая целиком на личном обоянии героев.

Здесь нет главного персонажа и каждый может выбрать себе кумира по душе. Это может быть ироничный Алукард или бескомпромисный Александр Андерсон, наивная Серас Виктория или железная леди Интегра. Также будет много оружия, трансформаций, музыки и драйва, приправленного кровью и смерью.

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

Кстати, никто не знает, как можно записаться добровольцем в Хельсинг ?

Рубрики:Films Метки:

Американский психопат

Октябрь 9, 2009 expl0rer 1 комментарий

Я хожу в местную качалку, которая расположена в подвале дома напротив. Называется Xclusive. Он находится в двух кварталах от метро Солнцево. Я хожу сюда уже восемь лет и за все это время хозяин даже не сменил обшивку на скамейках. Здесь нет тренажеров, а по стенам разбегается плотная паутина трещин.

На мне – подштаники спортивные утепленные Addiddas и китайская безрукавка, купленная за 50 рублей на ближайшем развале. На ногах кеды. Простые советские кеды.

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

Дуня (бесполое существо, которое кажется меня ненавидит) сидит в своей будке, собирая деньги с посетителей и попутно читая криминальную колонку в Спид-Инфо. Когда она видит меня, ее лицо омрачается скукой и равнодушием.

Welcome to the Real World, Брет Истон Эллис.

Пустота. Книга не потревожила ни одного моего чувства. Ни эмоций, ни выводов, ни воспоминаний. Нет цитат, которые я привык отмечать по ходу чтения. Книга прошла сквозь меня как нейтрино сквозь толщу нашей планеты, не потревожив не единой моей клеточки. Я даже ее не заметил. Только пустота вокруг.

Может это связано с тем, что все происходящее в книге воспринимается мною как что-то невероятное, далекое, чего никак не может быть. Как один из миров фэнтези, к которому я, кстати, тоже равнодушен. А может дело в обыденности всего происходящего, к чему мы все привыкли и перестали замечать. А скорее и в том и другом, как бы это не противоречило друг другу.

Рубрики:Books Метки:

Поддержка буквы «ё» в русском словаре aspell

Октябрь 9, 2009 expl0rer 5 comments

В трекере ArchLinux появился соответствующий запрос.  Будем следить за развитием событий :)

Рубрики:Linux Метки: ,

Исправление ошибок, вызванных обрывом соединения при обновлении

Октябрь 6, 2009 expl0rer 1 комментарий

Вчера у меня случилась беда – пропал интернет.  Да, впервые за год;  да, всего на пять минут.  Но, все равно,  вспомнил, как еще пару лет назад, в отсутствии нормальных средств связи носил все необходимое на флешке и холодок пробежал по спине.

Но пост не об этом. А о том, что в момент разрыва соединения я как раз обновлял систему (Arch Linux), а после восстановления связи с внешним миром я получил кучу сообщений об ошибках при попытки повторно запустить pacman:

...Requested Range not Satisfiable

Для решения данной проблемы из папки /var/cache/pacman/pkg необходимо вычистить все файлы, оканчивающиеся на .part. Это те самые недокачанные пакеты, которые остались в результате обрыва связи.

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

Рубрики:Linux Метки: ,

Небольшое дополнение по настройке локального nntp-сервера

Небольшое дополнение к описанию по установке локального nntp-сервера.

  • Если в конфигурационном файле /etc/leafnode/config задать переменную hostname
hostname = myhost.example.com

то можно не указывать полное доменное имя в /etc/rc.conf (/etc/hosts).

  • Для каждой группы новостей можно указать свое время хранения сообщений:
expire = 10
groupexpire gmane.comp.python.general = 7
groupexpire rsdn.flame.comp = 5
groupexpire sqlru.microsoft-sql-server = 20
  • Непосредственно удаление устаревших новостей осуществляется утилитой texpire:
/usr/sbin/texpire
Рубрики:Linux Метки: ,

Статическая vs динамическая типизация

Собственно здесь нет ничего сложного: при статической типизации (static binding) (ее еще называют ранним связыванием – early binding) все типы известны на момент объявления переменной и в дальнейшем не могут изменяться. При динамической типизации (dynamic binding) (оно же позднее связывание – late binding) тип переменной определяется в момент ее инициализации.

А вот на что стоит обратить внимание при обсуждении системы типов языков программирования, так это на то, что разделение на строгую(strongly typing) и слабую(weakly typing) типизацию, в общем то, ортогонально делению на статическую/динамическую типизацию.

Так языки со слабой типизацией позволяют нам вытворять вот такие вещи:

a  = 9
b = "9"
c = concatenate(a, b)  // produces "99"
d = add(a, b)          // produces 18 

В то время как языки со строгой типизацией требуют явного приведения типов:

a  = 9
b = "9"
c = concatenate(  str(a),  b)
d = add(a,  int(b)  )

То есть, когда мы говорим про строгую/слабую типизацию мы обсуждаем «насколько компилятор напрягается, чтобы определить какие именно здесь типы». А когда говорим про динамическую/статическую типизацию – когда именно он это делает. При этом, в общем то, возможны какие угодно комбинации этих параметров.

Рубрики:Python, Ruby Метки: ,

Собиратели

«Вещи, которыми ты владеешь, в конце концов начинают владеть тобой.»

Тайлер Дерден (Бойцовский клуб)

«…коллекционеры – самые отвратительные из всех живущих на земле скотов.»

Коллекционер

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

«Самудая — Истина о происхождении и причинах страдания. Причина страдания состоит в жажде (танха). Источник страдания — привязанность»

Вторая Благородная Истина

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

«Перестань контролировать всё на свете. Просто отпусти. Отпусти.»

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

Книга о том, как страсть обладать убивает в нас все живое.

Рубрики:Books Метки: