Pages

Friday, February 17, 2012

IPv6-only LAN with dual-stack OpenWRT router

I've managed to set up IPv6-only LAN behind a dual-stack OpenWRT router (not a Rocket Science, set up radvd on a router and don't configure IPv4 on LAN hosts). But I want to access IPv4-only hosts from this network and maybe provide services for these IPv4-only hosts.

Monday, May 23, 2011

bugzilla.altlinux.org - зачем?

Озадачился тут проблемой - как отключить энергосбережение у ноутбучного харда, чтобы эта сука не парковалась каждые 15 секунд.  Можно конечно и в rc.local запихать вызов hdparm с опцией -B255 но это же не наш метод. Был такой скрипт - idetune, который по заданному конфижыку запускал hdparm на все-все-все IDE устройства. Но есть одна маленькая проблемка - IDE диски во первых встречаются всё реже и реже, а во вторых даже они последние года три (если не больше) видны как SCSI. hdparm прекрасно реботает со SCSI устройствами, а альтлинупсовый idetune - нет. Бага висит уже два года.

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

Зачем же тогда нужна альтлинупсовая багзилла? Хорошо, конечно, что там "за исправление багов не вымогают денег, в отличие от RHEL6, где не исправляют даже давно исправленные баги, пока за них не заплатят", но если баги всё равно не исправляют, какая пользователю разница, вымогают за это деньги (мотивируя это какой-то "поддержкой коммерческого продукта") или нет? Чем чуть более чем полностью нерабочее решение лучше неправославного, но работающего? Ответ простой - проблемы ниггеров пользователей ни разу не сношают волнуют белого шерифа разработчиков и багзилла всего лишь их личная записная книжка. Очень забавно на этом фоне выглядят многочисленные призывы "занесите в Bugzilla" перед каждым отбранчёвыванием, поскольку мы помним, чем всё заканчивается.

Надо всё-таки сказать, что так поступают не все мантейнеры, а только те, которые "ошибочно полагают, что записи в ACL дают им право собственности на пакеты". Пичялька в том, что эти "ошибочно полагающие" мантейнеры контролируют и Административный Ресурс, забыв о том, что "with great power comes great responsibility"...

P.S. Свою проблему я решил просто - минут за сорок переписал скрипт как это нужно мне и собрал пакет. Реализация, конечно, не такая православная, но зато она теперь работает.

Saturday, April 23, 2011

Ruby в ALT Linux больше нет...

Очень интересно наблюдать, что происходит с ruby и rails в этом вашем Сизифе. Почему-то последний ruby ВДРУГ срочно понадобился ООО, да ещё так, чтобы в нём работал redmine. Традиционно на эту работу припахали наименее разбирающихся в вопросе сотрудников, которые тем не менее взялись за дело с большим энтузиазмом. В результате чего ruby в ALT Linux пошёл по пизде, простите мой клатчский.

Сначала эти люди пытались откатить ruby с версии 1.9.2 на 1.8.7, но видимо убоялись анметов. Тогда был реализован хитрый план и появился пакет ruby1.8, который первое время мог устанавливаться рядом с ruby, но потом это безобразие было в корне пресечено заботливо расставленными конфликтами (чем это чревато я неоднократно рассказывал много лет назад, но как известно всем похуй). Обе версии скорее всего оказались нерабочими чуть менее чем полностью, ведь мы помним, что новые мантейнеры ruby языка не знают и фейлящиеся тесты "чинятся" удалением этого теста. Сейчас в Сизиф собирается такой же rails...

К чему я это всё? Не знаю. Получается, что всё что Кирилл и я делали на протяжении последних нескольких лет оказалось никому нахер не нужно. В пересборке 75-и пакетов под 1.9.2 со своими пакетами поучаствовали только greycat@ и zerg@. Зато каждый знает как надо собирать ruby в репозитарий. И какой версии.

А трушные рубероиды как ставили rvm, так и продолжают это делать.

Monday, December 6, 2010

Ruby vs. Python

Once upon a time, there lived a girl named Red Ruby Hood with Hash h={:foo => "foo_val", :bar => "bar_val"}. Her mother gave her "quux" variable with value "quux_val" and told to print all this shit to he gand-grandmother, who lived far beyond the forest. Long story short, girl uses String.%:

$ irb
irb(main):001:0> h={:foo => "foo_val", :bar => "bar_val"}
=> {:foo=>"foo_val", :bar=>"bar_val"}
irb(main):002:0> puts "Teh %{foo}, teh %{bar} and teh %{quux}" % h.merge({:quux => "quux_val"})
Teh foo_val, teh bar_val and teh quux_val
=> nil
irb(main):003:0> h
=> {:foo=>"foo_val", :bar=>"bar_val"}
irb(main):004:0>


But in the forest girl met Evil Gray Python...

$ python
Python 2.6.6 (r266:84292, Oct  1 2010, 13:15:00)
[GCC 4.4.4 20100726 (ALT Linux 4.4.4-alt3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> h={"foo": "foo_val", "bar": "bar_val"}
>>> print "Teh %(foo)s, teh %(bar)s and teh %(quux)s" % h.update({"quux": "quux_val"})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: format requires a mapping


Hate!..

>>> tmp = h.copy().update({"quux": "quux_val"})
>>> tmp


Hate!!

>>> tmp = h.copy()
>>> tmp.update({"quux": "quux_val"})
>>> tmp
{'quux': 'quux_val', 'foo': 'foo_val', 'bar': 'bar_val'}
>>> print "Teh %(foo)s, teh %(bar)s and teh %(quux)s" % h
Teh foo_val, teh bar_val and teh quux_val


Hate!!!

So, the Python ate girl, her mother, her grand-grandmother and all lumbermen...

Wednesday, March 31, 2010

facepalm.jpg

While browsing dockapps.org site I've found interesting applet. It is very similar to my WMVolMan, but have more functionality, like customizable commands and LUKS partition mounting. And it uses modern UDisks instead of obsolete HAL. Since I was planning to migrate to UDisks, I took a closer look at this applet...

First look at configure.ac scared the shit out of me me:

PKG_CHECK_MODULES(dbus,dbus-glib-1)
PKG_CHECK_MODULES(libnotify,libnotify)
PKG_CHECK_MODULES(gnome_keyring,gnome-keyring-1)
...
AM_PATH_GTK_2_0(2.18.0,,[AC_MSG_ERROR(cannot find libgtk)])


I know, dbus-glib is necessary to access UDIsks service via DBus and easily integrates into glib mainloop, but for fuck's sake, tell me what the hell GTK+2 is doing here? I don't even asking about libnotify (which depends on org.freedesktop.Notifications DBus service, which in turn provided by GNOME Notification Deamon) and GNOME Keyring library (which depends on daemon of the same name).

Next, I looked into dockapp window code. I shouldn't have done it, really. The whole dockapp code was written using ONLY GDK and GTK. With signals, callbacks, widgets, blackjack and hookers.

And finally, take a look at this:

$ ls -logh wmudmount 
-rwxr-xr-x 1 267K Mar 30 23:06 wmudmount
$ ls -logh wmudmount
-rwxr-xr-x 1 102K Mar 30 23:06 wmudmount
$ ldd wmudmount | wc -l
47


I know that ldd shows both, direct and indirect dependencies, but that's the point. And I was using -Wl,--as-needed.

Comparing to my wmwolman:<

$ ls -logh =wmvolman   
-rwxr-xr-x 1 32K Jan 4 2008 /usr/bin/wmvolman
$ ldd =wmvolman | wc -l
19


One may say that WMVolMan have tree times less functionality, but hey! Why would someone use WindowMaker inside GNOME (and it WILL be "inside GNOME" just after libnotify and libgnome-keyring starts all GNOME services like gconf and gvfs) with dockapps enabled? Just stay with gvfs and Nautilus.

• . . . . . .. . . . . . . . . . . ,.-‘”. . . . . . . . . .“~., 
. . . . . . . .. . . . . .,.-”. . . . . . . . . . . . . . . . . .“-.,
. . . . .. . . . . . ..,/. . . . . . . . . . . . . . . . . . . . . . . ”:,
. . . . . . . .. .,?. . . . . . . . . . . . . . . . . . . . . . . . . . .\,
. . . . . . . . . /. . . . . . . . . . . . . . . . . . . . . . . . . . . . ,}
. . . . . . . . ./. . . . . . . . . . . . . . . . . . . . . . . . . . ,:`^`.}
. . . . . . . ./. . . . . . . . . . . . . . . . . . . . . . . . . ,:”. . . ./
. . . . . . .?. . . __. . . . . . . . . . . . . . . . . . . . :`. . . ./
. . . . . . . /__.(. . .“~-,_. . . . . . . . . . . . . . ,:`. . . .. ./
. . . . . . /(_. . ”~,_. . . ..“~,_. . . . . . . . . .,:`. . . . _/
. . . .. .{.._$;_. . .”=,_. . . .“-,_. . . ,.-~-,}, .~”; /. .. .}
. . .. . .((. . .*~_. . . .”=-._. . .“;,,./`. . /” . . . ./. .. ../
. . . .. . .\`~,. . ..“~.,. . . . . . . . . ..`. . .}. . . . . . ../
. . . . . .(. ..`=-,,. . . .`. . . . . . . . . . . ..(. . . ;_,,-”
. . . . . ../.`~,. . ..`-.. . . . . . . . . . . . . . ..\. . /\
. . . . . . \`~.*-,. . . . . . . . . . . . . . . . . ..|,./…..\,__
,,_. . . . . }.>-._\. . . . . . . . . . . . . . . . . .|. . . . . . ..`=~-,
. .. `=~-,_\_. . . `\,. . . . . . . . . . . . . . . . .\
. . . . . . . . . .`=~-,,.\,. . . . . . . . . . . . . . . .\
. . . . . . . . . . . . . . . . `:,, . . . . . . . . . . . . . `\. . . . . . ..__
. . . . . . . . . . . . . . . . . . .`=-,. . . . . . . . . .,%`>–

Sunday, March 14, 2010

GNU is Not Usable

If you want to make something completely unusable - give it to GNU crowd. These guys seem to have ability to turn anything they touch into shiny and whistling piece of bad-smelling shit. No need to go far - take a look at GNU info. And the progress never stops, every new release of their info browser is getting worse and worse, they are making impossible things possible.

Recently I was playing with WindowMaker project, trying to clean it's autocrapped buildsystem. Inside WindowMaker there are WINGs library and WPrefs application that both contains gettext-driven translations, having three textdomains in total.

Here comes the question for one million points: how all these textdomains can be handled with one configure script? And by "handled" I mean "single autoreconf invocation should update Makefile.in.in and shit for all po subdirs". Answer is: you can't, shut up and suffer.

GNU is so GNU...