kernel panic in userspace

my own self destruction
  • Blog
  • about
  • articles
    • Virtualbox bridge
    • linux blogging
    • Gentoo on Acer Extensa 5630Z
  • code
    • @unfollowr
    • WordPress
      • WordPress-bbPress syncronization
      • IE Warning
      • PostAds
    • Callisto overlay
    • @listwatcher
  • CV
  • belarusian
  • russian
  • english

antialiased fonts in netbeans (java apps in common)

Jun 27 2010
Lunascape – Chemical Lingo
  • belarusian
  • russian

Не знаю, как вам, а мне вот в блокноте неудобно огромные проекты фигачить, да так, чтобы ещё и в subversion коммитить, и diff просматривать, и справку и все прочие плюшки, посему приходится пользоваться такими благами цивилизации, как IDE. До недавнего времени пользовался Eclipse, но его тормоза и странные баги меня окончательно доконали и я перешёл на NetBeans. Только вот не радовала меня следующая ситуация со шрифтами:

netbeans not antialiased fonts

Ещё хотелось, чтобы выглядело всё как-то более-менее однородно с остальной системой и использовало установленную тему GTK+.

Read the rest of this entry »

  • belarusian
  • russian

Ня ведаю, як вам, але мне вось ужо ў блакноце нязручна вялікія праекты фігачыць, ды так, каб яшчэ і ў subversion каміціць, і diff праглядаць, і дапамогу і ўсё іншыя плюшкі, таму прыходзіцца карыстацца такімі дасягненьнямі цывілізацыі, як IDE. Да нядаўняга часу я карыстаўся Eclipse, але ягоныя тармазы і дзіўныя багі мяне канчаткова заманалі і я перайшоў на NetBeans. Толькі вось не ўзрадвае мяне наступная сітуацыя са шрыфтамі:

netbeans not antialiased fonts

Яшчэ хацелася б, каб усё выглядала больш-менш аднародна зь сістэмай і выкарыстоўвала ўсталяваную тэму GTK+.

Read the rest of this entry »

{ Comments : 3 Comments » }
{ Tags: antialiasing, awt, eclipse, gentoo, gtk, IDE, java, netbeans, qtcurve, screenshots, subversion }

Gentoo Xorg-1.8 synaptics touchpad

Apr 06 2010
Mujuice – Silver Highways
  • belarusian
  • russian

Всё течёт, всё меняется. Теперь файлы надо держать в /etc/X11/xorg.conf.d. Там же есть пример, просто надо поменять драйвер с evdev на synaptics

Я знаю, вы все классные ребята и глаза у вас человеческого цвета. Я тоже, у меня голубые, к слову, а не красные. Только вот всё равно у меня почему-то подключен в Gentoo оверлей x11. Не знаю. Наверное это с бурной юности осталось.

По сей причине у меня с недавних пор, а именно со времён обновления до x11-base/xorg-server-1.8.0 тачпад стал себя вести просто отвратительно. Носился как угорелый, на tap события не реагировал, я уже молчу про отвалившийся скролл. Всё дело в udev, на который разработчики xorg решили свалить с hal. Нас никто не предупредил, потому мы будем сами выкручиваться. Простая пересборка драйвера synaptics никаких вменяемых результатов не даст, так что стоит поступить вот как:

Созадём в директории /etc/xorg.conf.d (да-да, неужели?) два файлика с примерно следующим содержимым:

/etc/xorg.conf.d/10-synaptics.conf

Section "InputDevice"
   Identifier "touchpad"
   Driver "synaptics"
   Option "AutoServerLayout" "on"
EndSection

/etc/xorg.conf.d/99-evdev.conf

Section "InputClass"
        Identifier "evdev-catchall"
        Driver "evdev"
EndSection

После чего, разумеется, перезапустим иксы. Вуаля! :) Теперь сначала synaptics захватит наш тачпад, а уж потом всем остальным займётся evdev. Дальше сами разберётесь.

Привет

  • belarusian
  • russian

Час бяжыць, усё зьмяняецца. Цяпер файлы трэба трымаць у /etc/X11/xorg.conf.d. Там жа ёсьць прыклад, проста трэба зьмяніць драйвер з evdev на synaptics

Я ведаю, вы ўсё клёвыя чувакі і вочы ў вас чалавечага колеру. Я таксама, у меня блакітныя, дарэчы, а не чырвоныя. Толькі вось усё роўна ў мяне чамусьці падключаны ў Gentoo овэрлэй x11. Ня ведаю. Напэўна, гэта за часоў бурнага юнацтва засталося.

З такой нагоды ў мяне з нядаўніх часоў, а менавіта з часу аднаўленьня да x11-base/xorg-server-1.8.0 тачпад стаў сябе весьці проста неверагодна фігова. Насіўся як апалены, на tap эвэнты не рэагаваў, я ўжо маўчу пра адваліўшыся скрол. Уся справа ва udev, на які распрацоўшчыкі xorg вырашылі зваліць з hal. Нас ніхто не папярэджваў, таму мы будзем самі выкручвацца. Простая перасборка драйверу synaptics ніякіх вынікаў не дасі, таму варта паступіць наступным чынам:

Ствараем у тэчцы /etc/xorg.conf.d (так-так, ахвігець?) два файлікі з прыкладна наступным зьмесьцівам:

/etc/xorg.conf.d/10-synaptics.conf

Section "InputDevice"
   Identifier "touchpad"
   Driver "synaptics"
   Option "AutoServerLayout" "on"
EndSection

/etc/xorg.conf.d/99-evdev.conf

Section "InputClass"
        Identifier "evdev-catchall"
        Driver "evdev"
EndSection

Пасьля чаго, зразумела, перазапускаем іксы. Вуаля! :) Цяпер спачатку synaptics захопіць ваш тачпад, а ўжо потым астатнім займецца evdev. Далей самі разруліце.

Прывіт

{ Comments : No Comments » }
{ Tags: evdev, gentoo, hal, overlay, synaptics, touchpad, udev, x11, xorf, xorg, xorg.conf.d }

hide mentions update

Apr 04 2010
  • belarusian
  • english
  • russian

Со времён написания прошлого поста в Twitter несколько поменялась структура таймлайна и скрипт перестал работать. Если быть точным, то теперь у сообщений появился новый уровень вложенности. Не беда, всё поправили.

Устанавливается всё просто:

  • Идём на вот эту страничку
  • Копируем всё, что на ней есть и добавляем новую закладку, где вместо ссылки будет то, что мы только что скопировали
  • Выбираем имя по вкусу и добавляем на видное место
  • Усё :)

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

Если интересен сам код — смотрим здесь.

p.s.: за наводку спасибо @mon_lolka

  • belarusian
  • english
  • russian

З часу напісаньня мінулага паста ў Twitter трошкі зьмянілася структура таймлайна і скрыпт перастаў працаваць. Калі быць дакладным, дык цяпер у паведамленьняў зьявіўся новы ўзровень укладзенасьці. Ня страша, я ўсё паправіў.

Усталёўваецца ўсё проста:

  • Ідзем на вось гэтую старонку
  • Капіюем ўсё, што на ёй ёсьць і дадаем новую закладку, дзе замест спасылкі будзе тое, што мы толькі што скапіявалі
  • Выбіраем імя на свой густ і дадаем закладку на бачнае месца
  • Усё :)

Цяпер на любой (ну, амаль любой) старонцы твітэра можно будзе схаваць узгадваньні іншых карыстачоў простым націсканьнем на нашу закладку.

Калі цікавіць код — глядзім тут.

p.s.: за наводку дзякуй @mon_lolka

  • belarusian
  • english
  • russian

Since the time of writing last post Twitter changed the structure of timeline and script stopped working. To be exact, now posts a new level of nesting. Do not worry, all corrected.

Installation is simple:

  • Go to that page
  • Copy everything on it is and add a new bookmark, where instead of url use that you just copied
  • Choose a name for taste and add in a prominent place
  • That’s it :)

Now for any (well, almost any) page on Twitter you can hide mentions of other users by simply clicking on new bookmark.

If interested in the code itself — look here.

p.s.: thanks for the tip-off to @mon_lolka

{ Comments : 3 Comments » }
{ Tags: javascript, mentions, projects, twitter, updates }

Hide Mentions in Twitter Web Interface

Jan 24 2010
Deftones – Deathblow
  • belarusian
  • russian

Во время сессии вечно хочется сделать что-нибудь эдакое совсем бесполезное, лишь бы только не готовиться к экзаменам. Внезапно последний экзамен получился автоматом (был целиком на одной лекции), так что я решил попрактиковаться в JavaScript, вместо того, чтобы заниматься полезными делами.

Некоторые тви-фашисты (вроде меня) не слишком любят читать реплаи чужим людям. Порой хочется открыть веб-интерфейс, открыть чью-нибудь ленту и просто почитать. Благо, букв немного. А там закрадутся 100500 реплаев, которые вообще ну никак в картину мира не вписываются. Так вот, давно хотелось их выпилить. Сначала я хотел сделать расширение для Chromium, но не вышло потом подумалось, что недурно было бы сделать что-нибудь более универсальное, например закладку. Пользователь на неё клац — и реплаи исчезли/появились. Ну не чудесно ли? :)

Скрипт несколько обновился. Смотрите всё здесь

Этот большой и сташный кусок непостигшие дао могут пропустить, листайте ниже. Написался следующий скрипт (лицензирую под GPL v3, к слову):

if (typeof toggleTwitterUserMentions == "undefined")
{
  toggleTwitterUserMentions = function()
  {
    self = this;
    if (self.knowSettings == undefined)
    {
      self.knowSettings = true;
      self.hideMentions = true;
      self.getTweetsWithMentions = function()
      {
        return $('#timeline>li.status>span.status-body>span.entry-content>a.username').parent().parent().parent();
      }
      self.toggle = function()
      {
        if (self.hideMentions)
        {
          self.getTweetsWithMentions().slideUp();
        } else
        {
          self.getTweetsWithMentions().slideDown();
        }
        self.hideMentions = !self.hideMentions;
      }
      self.onPageChange = onPageChange;
      self.calledInternalOnPageChange = false;
      onPageChange = function()
      {
        if (!self.calledInternalOnPageChange)
        {
          self.calledInternalOnPageChange = true;
          self.onPageChange();
        } else
        {
          self.hideMentions = !self.hideMentions;
          self.toggle();
        }
      }
    }
    this.toggle();
  }
}
toggleTwitterUserMentions();

После долгих и мучительных попыток его минимизировать и при этом оставить в рабочем состоянии осталось только первое требование. Видимо, я слишком хитро написал, чтобы обфускатор правильно всё разбрал и потом собрал обратно. Ну и ладно. Тем не менее, всё, что нужно для использования — добавить на панель следующую ссылку:

javascript:if(typeof toggleTwitterUserMentions=="undefined"){toggleTwitterUserMentions=function(){self=this;if(self.knowSettings==undefined){self.knowSettings=true;self.hideMentions=true;self.getTweetsWithMentions=function(){return $("#timeline>li.status>span.status-body>span.entry-content>a.username").parent().parent().parent()};self.toggle=function(){if(self.hideMentions){self.getTweetsWithMentions().slideUp()}else{self.getTweetsWithMentions().slideDown()}self.hideMentions=!self.hideMentions};self.onPageChange=onPageChange;self.calledInternalOnPageChange=false;onPageChange=function(){if(!self.calledInternalOnPageChange){self.calledInternalOnPageChange=true;self.onPageChange()}else{self.hideMentions=!self.hideMentions;self.toggle()}}}this.toggle()}}toggleTwitterUserMentions();

Потом можно в веб-интерфейсе твиттере этой кнопочкой пользоваться. Что стоит учесть:

  • Повторное нажатие вернёт все реплаи
  • При использовании кнопки «more» настройка сохраняется и реплаи прячутся
  • При переходе в DM, replies или другие меню реплаи тоже прячутся
  • При появлении новых твиттов вверху страницы реплаи не прячутся, что логично (?)

Enjoy, как говорится. Распространение в твиттере приветствуется %)

Парфюмерия для вас и ваших любимых

Услуги colocation для тех, кто хочет иметь полный контроль за сервером за умеренные деньги

Бесплатные курсы Linux — красные глаза, бессонные ночи :)

  • belarusian
  • russian

Падчас сэсіі пастаянна хочацца зрабіць што-небудзь гэтакае зусім бессэнсоўнае, толькі б не рыхтавацца да іспытаў. Нечакана апошні экзамен атрымаўся аўтаматам (быў на адной лекцыі цалкам), так што я вырашыў папрактыкавацца ў JavaScript, замест таго, каб займацца патрэбнымі справамі.

Некаторыя тві-фашысты (кшталту мяне) ня дужа любяць чытаць рэплаі іншым людзям. Час ад часу хочацца адкрць вэб-інтэрфейс, адкрыць чыю-небудзь ленту і проста пачытаць. Добра, што літар няшмат. А там закрадуцца 100500 рэплаяў, якія ну ніяк не ўпісваюцца ў сьветаўленьне. Спачатку я хацеў напісаць пашырэньне для Chromium, але ня выйшла потым падумалася, што няблага было б і што-небудзь больш універсальнае зрабіць, напрыклад закладку. Карыстач на яе клац — і рэплаі зьніклі/зьявіліся. Ну не цуд, га? :)

Скрыпт некалькі аднавіўся. Глядзіце ўсё тут

Гэты вялікі і страшэнны кусок можна прапусьціць, калі вы дао не спасьціглі яшчэ. Напісаўся наступны скрыпт (ліцэнзірую пад GPL v3, дарэчы):

if (typeof toggleTwitterUserMentions == "undefined")
{
  toggleTwitterUserMentions = function()
  {
    self = this;
    if (self.knowSettings == undefined)
    {
      self.knowSettings = true;
      self.hideMentions = true;
      self.getTweetsWithMentions = function()
      {
        return $('#timeline>li.status>span.status-body>span.entry-content>a.username').parent().parent().parent();
      }
      self.toggle = function()
      {
        if (self.hideMentions)
        {
          self.getTweetsWithMentions().slideUp();
        } else
        {
          self.getTweetsWithMentions().slideDown();
        }
        self.hideMentions = !self.hideMentions;
      }
      self.onPageChange = onPageChange;
      self.calledInternalOnPageChange = false;
      onPageChange = function()
      {
        if (!self.calledInternalOnPageChange)
        {
          self.calledInternalOnPageChange = true;
          self.onPageChange();
        } else
        {
          self.hideMentions = !self.hideMentions;
          self.toggle();
        }
      }
    }
    this.toggle();
  }
}
toggleTwitterUserMentions();

Пасьля доўгіх і беспасьпяховых спроб яго мінімізаваць і пры гэтым заставіць у працоўным стане засталося толькі першае патрабаваньне. Напэўна, я дужа хітра напісаў, каб абфускатар правільна ўсё разабраў і потым сабраў зноў. Ну і ладна. Тым не менш, усё, ўто трэба для карыстаньня — дадаць на панэльку наступную спасылку:

javascript:if(typeof toggleTwitterUserMentions=="undefined"){toggleTwitterUserMentions=function(){self=this;if(self.knowSettings==undefined){self.knowSettings=true;self.hideMentions=true;self.getTweetsWithMentions=function(){return $("#timeline>li.status>span.status-body>span.entry-content>a.username").parent().parent().parent()};self.toggle=function(){if(self.hideMentions){self.getTweetsWithMentions().slideUp()}else{self.getTweetsWithMentions().slideDown()}self.hideMentions=!self.hideMentions};self.onPageChange=onPageChange;self.calledInternalOnPageChange=false;onPageChange=function(){if(!self.calledInternalOnPageChange){self.calledInternalOnPageChange=true;self.onPageChange()}else{self.hideMentions=!self.hideMentions;self.toggle()}}}this.toggle()}}toggleTwitterUserMentions();

Потым можна будзе ў уэб-інтэрфейсе твітэра гэтай кнопкай карыстацца. Але варта ўлічваць:

  • Паўторнае націсканьне верне ўсе рэплаі
  • Пры выкарыстаньні кнопкі «more» наладка захоўваецца і рэплаі хаваюцца
  • Пры пераходзе ў DM, replies ці іншыя меню рэплаі таксама хаваюцца
  • Пры зьяўленьні новых твітаў уверсе старонкі рэплаі не хаваюцца, што лягічна (?)

Enjoy, як кажуць. Распаўсюд у твітэры вітаецца %)

Парфюмерия для вас и ваших любимых

Услуги colocation для тех, кто хочет иметь полный контроль за сервером за умеренные деньги

Бесплатные курсы Linux — красные глаза, бессонные ночи :)

{ Comments : 3 Comments » }
{ Tags: chromium, javascript, jquery, twitter }

new project: @listwatcher

Nov 20 2009
  • belarusian
  • english
  • russian

Снова мне что-то не сидится на месте, тянет что-нибудь сделать в меру бесполезное, что сам бы мог использовать неделю, а потом забыть. На сей раз захотелось поделиться с общественностью твиттера. Новый проект @listwatcher — бот, следящий за списками, в которых вы состоите, и сообщающий, если вдруг видны какие изменения на фронтах.

Чем-то он похож на мой другой проект для твиттера, а именно @unfollowr. Тот пишет личное сообщение, если вас кто-то перестал читать (а теперь пишет ещё и про количество спамеров, которые так поступили). Только вот в отличие от @unfollowr, @listwatcher пишет не только о

  • списках, в которых вы состояли и из которых вас удалили

но и о

  • списках, в которые вас добавили (twitter не пишет сам)
  • списках, которые удалали или сделали приватными, в которые вы входили
  • списках, в которых вы состояли и которые переименовали

Таким образом, можно будет всегда узнать, что некто подло вас перенёс из списка “boyz” в список “bastards” или удалил из списка “favs”. Впрочем, может вы того и заслуживаете. Меня не волнуют ваши проблемы подобного рода :)

В будущем планирую дописать на Django web-интерфейс с авторизацией по OAuth для настройки этого безобразия, чтобы можно было, допустим, изменить формат присылаемых сообщений, ограничить их по типу или использовать локализованные сообщения. Неплохо было бы что-нибудь ещё такое написать к @unfollowr, чтобы с графиками и прочим клёвым стаффом. Ждите и подписывайтесь :)

Что действительно стоило бы сделать, так это дизайн какой-нибудь приемлемый и описание как в твиттере, так и на страничке в блоге, чтобы можно было показывать людям. Если у кого есть идеи/желание — высказывайтесь я буду только рад.

p.s.: ещё было бы круто, если кто-нибудь помог бы мне перевести описание на английский (или какой-нибудь ещё вдобавок, если хотите)

Colocation и аренда серверов для больших проектов

  • belarusian
  • english
  • russian

Зноў мне нешта ня седзецца на месцы, тягне што-небудзь зрабіць у меру бессэнсоўнае, каб сам мог пакарыстацца тыдзень, а потым забыць. На гэты раз захацелася падзяліцца з грамадскасьцю твітэра. Новы праект @listwatcher — бот, які глядзіць за сьпісамі, у якіх вы знаходзіцеся, і піша, калі бачны нейкія зьмены на франтах.

Чымсьці ён падобны на мой іншы праект для твітэра, а менавіта @unfollowr. Той піша асабістае паведамленьне, калі вас нехта перастаў чытаць (а цяпер яшчэ піша і пра колькасьць спамераў, якія так зрабілі). Толькі вось у адрозненні ад @unfollowr, @listwatcher піша ня толькі пра

  • сьпісы, у якіх вы былі і зь якіх вас выдалілі

але і пра

  • сьпісы, у якія вас дадалі (twitter ня піша сам)
  • сьпісы, у якія вы ўваходзілі, але якія выдалілі ці зрабілі прыватнымі
  • сьпісы, у якія вы ўваходзілі, але якія перайменавалі

Такім чынам, можна будзе заўсёды даведацца, што нехта вас перанёс са сьпісу “boyz” у сьпіс “bastards” ці выдаліў са сьпісу “favs”. Але ж, можа вы таго вартыя. Мяне не турбуюць вашыя праблемы такога кшталту :)

У будучым пляную даписаць на Django web-інтэрфейс з аўтарызацыяй па OAuth для наладкі ўсяго гэтага, каб магчыма было, дапусьцім, зьмяніць фармат дасылаемых паведамленьняў, абмежаваць іх па тыпу ці выкарыстоўваць лакалізаваныя паведамленьні. Няблага было б яшчэ что-небудь напісаць для @unfollowr, каб глядзець статыстыку з графікамі і іншымі клёвымі штукамі. Чакайце і падпісвайцеся :)

Што насамрэч варта было б зрабіць, дык гэта дызайн які-небудзь прыгожы і апісаньне як ў твітэры, так і на старонцы ў блоге, каб можна было паказваць людзям. Калі ў каго якія ідэі/пажаданьні — выказвайцеся, я буду толькі рады.

p.s.: яшчэ было б крута, калі хто-небудзь дапамог бы мне перакласьці апісаньне на ангельскую (ці якую яшчэ ў дадатак, калі пажадаеце)

Colocation и аренда серверов для больших проектов

  • belarusian
  • english
  • russian

We’re waiting for help in translation. You may use Google Translate now. Sorry :)

Colocation и аренда серверов для больших проектов

{ Comments : 1 Comment » }
{ Tags: bots, django, listwatcher, oauth, twitter, unfollowr }

« Previous Entries

RSS antisocial feeling

  • i am freaking bicycle
  • с третьей минуты мне очень. детство
  • не спрашивайте
  • banksystreetart: Banksy / Simon Munnery fuck yeah shit
  • это вам не по полу валяться в истерике

Tags

bash belarus blog blogs bugs coding concerts download friends fun gentoo google images internet javascript kde language life links linux livejournal me money music overlays perl photos php plugins portage projects rss school shell social social networks ssh studying tests twitter ubuntu univer vkontakte wifi wordpress

links

  • asocial feeling
  • Callisto overlay
  • daThumbs
  • last.fm
  • twitter
  • Vkontakte
  • ~idioteque

Recent Comments

  • saper on antialiased fonts in netbeans (java apps in common)
  • edward on IE Warning
  • Vigoran on WordPress-bbPress syncronization
  • Nikos on WordPress-bbPress syncronization
  • Maxno on free licenses
  • achmad on IE Warning
  • bobrik on bbPress terms filtering & hacks
  • Сергей М. on bbPress terms filtering & hacks
  • Samad Khan on WordPress-bbPress syncronization
  • bobrik on WordPress-bbPress syncronization

Archives

  • July 2010 (1)
  • June 2010 (1)
  • April 2010 (2)
  • January 2010 (1)
  • November 2009 (2)
  • October 2009 (5)
  • September 2009 (2)
  • August 2009 (2)
  • July 2009 (3)
  • June 2009 (1)
  • April 2009 (2)
  • March 2009 (1)
  • February 2009 (1)
  • January 2009 (2)
  • December 2008 (12)
  • November 2008 (17)
  • October 2008 (20)
  • September 2008 (13)
  • August 2008 (25)
  • July 2008 (18)
  • June 2008 (15)
  • May 2008 (7)
  • March 2008 (1)
  • February 2008 (9)
  • January 2008 (11)
  • December 2007 (24)
  • November 2007 (27)
  • October 2007 (21)

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org

Creative Commons License rss comments rss valid xhtml