Archive for August, 2004

2004-08-05 00:19

Thursday, August 5th, 2004

Да блогна, и да свърша още малко работа…

Днес станах по никое време, и отидох да довърша няколко неща по сървърите. Червото още не се е прибрал от Ямбол, така че gateway ще имаме по-късно …

Имаше странен проблем, ADSL бриджа поемаше всичко, което беше за нашето IP за порт 80 – това му беше командния интерфейс (това предишния (който беше на UBS) не го правеше). Говорих си с хората от БТК-НЕТ, и един от support-а им ми обясни ситуацията (и ме отказа от идеята някога да конфигурирам такова устройство (за което те така или иначе не ни дават user и парола :) ), терминологията е невероятно идиотска). В крайна сметка ми flash-наха нов firmware, и цялата работа заработи съвсем нормално (т.е. почна да се държи като съвсем истински bridge/router). Браво на support-а на БТК-НЕТ, решиха проблема много чисто и бързо :)

Мрежовата топология започва да става все по-голяма, с 5-6 vlan-а (и 5 сървъра, единия от които не е инсталиран още :) ). Повечето неща са изчистени, остава да се оправи контролната машина (да се настрои syslog-ng и още няколко благини), и да видим кога ще се носи големия софтуер (който най-вероятно ще докара нови проблеми :) ).

След това отидох на ИББ, където не се задържах много – закапа (както се оказа – за кратко), и аз реших да се прибирам, като по пътя мина през площада пред Народния театър, където прожектират конценти на Хърбърт(?) фон Караян. Успях да замъкна натам Ylith (която просто се беше скрила под чадъра ми, и не й се мокреше) и Бобсън (който всъщност си дойде съвсем сам :) ).

Събитието се оказа много приятно, въпреки че имаха малко технически проблеми, и водещия говори твърде много. Пускаха увертюрата на “Вилхелм Тел”, “Полтава” на не-помня-кого, и симфония номер 9 на А. Дворжак. Струваше си седенето на твърдата пейка :)

2004-08-04 14:46

Wednesday, August 4th, 2004

Because there was a question how exactly can you clone machines with tar and netcat, here’s a short explanation.

We have machine R – already installed, and machine I, which we want to install.

1) On machine I we boot a liveCD distribution, like knoppix, partition the drive, make the file systems and the swap.

2) mount the main file system in /mnt/1 (for example), and chdir there.

3) We start (quickly) one after the other the following commands:
On R: tar cpsf – bin boot cdrom dev etc floppy home initrd lib mnt root sbin tmp usr var |nc -l -p 9988 -w 10
On I: nc -w 10 ip.addr.of.R 9988 |tar cfps –
This does the copying between the machines, and the willing can put a ‘v’ option on either tars, and to watch what’s being copied.

4) After that’s finished, you can go and fix the configuration of the copies distribution – /etc/hostname, /etc/hosts, /etc/network/interfaces , etc…, create a /proc, and then we do a choort /mnt/1 /sbin/lilo (if you’
re using LILO, I can’t remember what was the way with GRUB), and we’re ready.

2004-08-04 14:29

Wednesday, August 4th, 2004

Понеже имаше въпрос как точно става номера с tar и netcat,ето едно кратко обяснение.

Имаме машина R – вече инсталирана, и машина I, на която искаме да направим инсталация.

1) На машина I boot-ваме някоя liveCD дистрибуция, като knoppix, правим си partition-и, файлови системи и swap на диска.

2) mount-ваме си главната файлова система в /mnt/1 (например), и отиваме там

3) Пускаме (бързо) една след друга следните команди:
На R: tar cpsf – bin boot cdrom dev etc floppy home initrd lib mnt root sbin tmp usr var |nc -l -p 9988 -w 10
На I: nc -w 10 ip.addr.of.R 9988 |tar cfps –
Това всъщност прави копирането между двете машини, желаещите могат да сложат опция ‘v’ на някой от двата tar-а и да гледат какво се копира.

4) След като това свърши, минаваме и си оправяме настройките като за новата машина – /etc/hostname, /etc/hosts, /etc/network/interfaces и т.н., създаваме си /proc, след което правим choort /mnt/1 /sbin/lilo (ако ползваме LILO, не помня какво беше за GRUB), и сме готови.

2004-08-03 23:38

Tuesday, August 3rd, 2004

Today was a server install’s day … I’ve reached the following conclusions:

1) I have to stop being lazy, and to look into the network boot. Up until now I did nothing, just make something with mknbi, that while booting, made the screen flicker with differently-colored letters (reminds me of a memory overwriting under DOS), or a kernel which booted, and wasn’t able to mount it’s root from NFS (damn it, the old debian installer works fine).I tormented it, tortured it, and then the knoppix ( it was writing with 4x speed) finished writing, and I booted from it (one of the LiveCD distributions, that boots from USB cds).

2) The installation of a machine from another one using tar and netcat is something wonderful.

3) The configuration of the 3com switch with the vlans is easy, after you start to know where which menu is. When you add the nice vlan support in the kernel, it’s definitely great.

(and I have to clean up the notebook from the horde of strange daemons, like atftpd and dhcpd).

In the end I have a remote access to those machines, so I can easily fiddle with them from here tonight – they’re connected on a slow link, only 256kbps (an ADSL through BTK), so I can easily say ‘apt-get install all-that-i-need’, and leave it sucking…

I’ve printed 30 pages of Quicksilver – in fact 210, because that’s the compression ratio. It’s readable, but slowly, because Stephenson’s style is a bit overloaded.

I’m thinking about doing the mistake of trying Doom 3 on my machine… The linux binary should be out soon…

2004-08-03 23:30

Tuesday, August 3rd, 2004

Днес беше ден за правене на сървъри … Стигнах до следните изводи:

1) Трябва да ми мине мързела, и да разуча мрежовия boot. До момента нищо не направих, само успях с mknbi да направя нещо, което като припалеше, и ми правеше екрана на мигащи разноцветни буквички (направо ми напомни на намазване на паметта под DOS), или ядро, което палеше, и не искаше да си закачи root-а от NFS (по дяволите, а стария debian-ски инсталатор пали). Мъчих, правих, накрая knoppix-а (който се пишеше на 4 скорости, проклето USB1) се написа, и припалих от него (една от малкото LiveCD дистрибуции, дето се оправя с USB cd-та).

2) Инсталирането на машина чрез прехвърляне на готова инсталация от друга такава с tar и netcat си е благина.

3) Настройката на 3com-ски switch с vlan-ове става лесно, след като усетиш кое меню къде му е. Като се добави и поддръжката на vlan-и в ядрото, направо се ражда човек…

(и трябва да си почистя notebook-а от хилядите странни демони, като atftpd и dhcpd).

В крайна сметка вече имам отдалечен достъп до машините, така че може да поръчкам малко оттук тая вечер – и без това там връзката е само 256kbps (един ADSL през БТК), така че спокойно мога да кажа ‘apt-get install всичко-дето-ми-трябва’, и да го оставя да дърпа…

Разпечатал съм си 30 страници от Quicksilver – т.е. всъщност 210, понеже такова е нивото на компресията. Чете се, но бавно, понеже стилът на Стивънсън е малко натоварен.

Обмислям да направя ли грешката да пробвам DooM 3 при мен… Linux-кото binary требе да излезе съвсем скоро…

2004-08-03 01:30

Tuesday, August 3rd, 2004

Some good news – the new servers for the project are here, tomorrow I’ll be going there to take care of the installation. I’m thinking about preparing a nice netboot, to evade any stupid problems. Somewhere exists a nice documentation about this, but I’m a bit sleepy, and unable to find it…

I found some ways to optimize Velin’s database, and it works nicely with 100 000 records (i broke the relations table in a few smaller ones), and now the full query takes only 12 seconds. It could be better, I’ve looked the explain results, and I’ll dig in when I have time. I’m thinking about drawing a bit and clearing up the exact way of the JOINs, because some things are still unclear.

Today we celebrated my Mom’s birthday, the three – me, my mother and my brother. Quiet, calmly, outside it was raining…

Doom 3 is officially released tomorrow. Unofficially it’s on data.bg today, and my brother downloaded it and I looked at it, it’s really good. Hopefully I’ll have some time to play it seriously, in some gaming hall…

I’m thinking about printing Quicksilver by Neal Stephenson, I read the Cryptonomicon on the monitor, and it wasn’t easy (it took about 4 months). Let’s see on how much pages I can fit it with 6pt font size :) It isn’t urgent, today there were two new books released, I have what to do in the next few days.

2004-08-03 01:18

Tuesday, August 3rd, 2004

Добра новина – дошли са още няколко сървъра за проекта, утре ще ходя да се занимавам с инсталациите. Мисля да си подготвя свестен netboot, за да нямам после глупави проблеми. Някъде имаше хубава документация по въпроса, ама съм леко заспал, и нещо не я намирам…

Намерих няколко варианта да оптимизирам базата за Велин, и се държи прилично с 100 000 записа (в общи линии разбих таблицата с релациите на няколко отделни), и сега пълния списък с всичките JOIN-ове отнема около 12 секунди. Може и по-добре, поогледах резултатите от explain, и мисля да задълбая, като имам време. Също така мисля да си нарисувам и изясня точния принцип на действие на JOIN-овете, защото няколко неща не са ми ясни.

Днес отпразнувахме рождения ден на майка ми, тримата – аз, майка ми и брат ми. Тихо, спокойно, навън валеше…

Doom 3 излиза утре официално. Неофициално го има на data.bg от днес, даже брата го свали и го разгледах, наистина са се постарали. Трябва да видя кога ще имам време да го играя сериозно, и да се завра в някоя зала…

Обмислям дали да не изтормозя принтера с Quicksilver на Нийл Стивънсън, Cryptonomicon-а го четох на монитор, и не ми беше лесно (отне ми около 4 месеца). Да видим на колко страници ще се събере с 6pt шрифт :) Поне не е спешно, днес са излезли 2 нови книги за четене, имам си занимание за няколко дни.

2004-08-02 13:57

Monday, August 2nd, 2004

MMmmmmmmmmmooooooringin….

Last night I got the desire to test the database design that I’ve thought out for Velin’s library, and I found it to be slow as hell, so today I’ll be playing a bit with it, to see why. It could change it in the end… And here’s the explain output, for the interested:

velin=> EXPLAIN
velin-> SELECT b.orig_name, a.name as author, v.path ,g.name as genre
velin->         FROM 
velin->                  books b, authors a, variants v, genres g, relations r, relations r1, relations r2
velin->         WHERE 
velin->                 (b.id=r.id1 AND a.id=r.id2 AND r.rel='BA') AND
velin->                 (b.id=r1.id1 AND v.id=r1.id2 AND r1.rel='BV') AND
velin->                 (b.id=r2.id1 AND g.id=r2.id2 AND r2.rel='BG');
                                                     QUERY PLAN                                                     
--------------------------------------------------------------------------------------------------------------------
 Nested Loop  (cost=0.00..22.52 rows=1 width=890)
   ->  Nested Loop  (cost=0.00..17.68 rows=1 width=816)
         ->  Nested Loop  (cost=0.00..12.85 rows=1 width=308)
               ->  Nested Loop  (cost=0.00..8.01 rows=1 width=186)
                     Join Filter: ("inner".id1 = "outer".id1)
                     ->  Nested Loop  (cost=0.00..6.95 rows=1 width=170)
                           Join Filter: ("inner".id1 = "outer".id1)
                           ->  Nested Loop  (cost=0.00..5.89 rows=1 width=154)
                                 ->  Seq Scan on relations r  (cost=0.00..1.05 rows=1 width=16)
                                       Filter: (rel = 'BA'::bpchar)
                                 ->  Index Scan using authors_pkey on authors a  (cost=0.00..4.82 rows=1 width=154)
                                       Index Cond: (a.id = "outer".id2)
                           ->  Seq Scan on relations r2  (cost=0.00..1.05 rows=1 width=16)
                                 Filter: (rel = 'BG'::bpchar)
                     ->  Seq Scan on relations r1  (cost=0.00..1.05 rows=1 width=16)
                           Filter: (rel = 'BV'::bpchar)
               ->  Index Scan using books_pkey on books b  (cost=0.00..4.82 rows=1 width=154)
                     Index Cond: (b.id = "outer".id1)
         ->  Index Scan using variants_pkey on variants v  (cost=0.00..4.82 rows=1 width=524)
               Index Cond: (v.id = "outer".id2)
   ->  Index Scan using genres_pkey on genres g  (cost=0.00..4.82 rows=1 width=90)
         Index Cond: (g.id = "outer".id2)
(22 rows)

(the idea is a few tables, and one separate, that describes all the relations. Looks like the postgresql didn’t like it).

This night I read at last “The moon is a harsh mistress” by Heinlein – in english, printed on about 80 pages (7pt font size, 2 columns). It was worth reading :)

Today everything seems different – yesterday I cleaned, moved my machine in the big room again (I’ll probably put up some photos later), and now the whole house looks better. There are a few things left to clean in the bathroom, and I’ll probably have to think up a solution for all the empty bottles, but there’s time for everything.

Something that I found out this morning – I should turn off the bell. To be able to deactivate it when I go to sleep, and activate it when I’m awake. If I was more evil, I whould’ve added an electrical shock for everyone pressing it while I’m asleep…

2004-08-02 13:48

Monday, August 2nd, 2004

УУуууууууууутро….

Снощи по никое време ми дойде желанието да тествам дизайна на базата, който бях направил за библиотеката на Велин, и открих, че е кошмарно бавен, та днес ще си играя да разбера explain-а и да видя защо така. Може в крайна сметка да го променя. А за желаещите ето един забавен explain:

velin=> EXPLAIN
velin-> SELECT b.orig_name, a.name as author, v.path ,g.name as genre
velin->         FROM 
velin->                  books b, authors a, variants v, genres g, relations r, relations r1, relations r2
velin->         WHERE 
velin->                 (b.id=r.id1 AND a.id=r.id2 AND r.rel='BA') AND
velin->                 (b.id=r1.id1 AND v.id=r1.id2 AND r1.rel='BV') AND
velin->                 (b.id=r2.id1 AND g.id=r2.id2 AND r2.rel='BG');
                                                     QUERY PLAN                                                     
--------------------------------------------------------------------------------------------------------------------
 Nested Loop  (cost=0.00..22.52 rows=1 width=890)
   ->  Nested Loop  (cost=0.00..17.68 rows=1 width=816)
         ->  Nested Loop  (cost=0.00..12.85 rows=1 width=308)
               ->  Nested Loop  (cost=0.00..8.01 rows=1 width=186)
                     Join Filter: ("inner".id1 = "outer".id1)
                     ->  Nested Loop  (cost=0.00..6.95 rows=1 width=170)
                           Join Filter: ("inner".id1 = "outer".id1)
                           ->  Nested Loop  (cost=0.00..5.89 rows=1 width=154)
                                 ->  Seq Scan on relations r  (cost=0.00..1.05 rows=1 width=16)
                                       Filter: (rel = 'BA'::bpchar)
                                 ->  Index Scan using authors_pkey on authors a  (cost=0.00..4.82 rows=1 width=154)
                                       Index Cond: (a.id = "outer".id2)
                           ->  Seq Scan on relations r2  (cost=0.00..1.05 rows=1 width=16)
                                 Filter: (rel = 'BG'::bpchar)
                     ->  Seq Scan on relations r1  (cost=0.00..1.05 rows=1 width=16)
                           Filter: (rel = 'BV'::bpchar)
               ->  Index Scan using books_pkey on books b  (cost=0.00..4.82 rows=1 width=154)
                     Index Cond: (b.id = "outer".id1)
         ->  Index Scan using variants_pkey on variants v  (cost=0.00..4.82 rows=1 width=524)
               Index Cond: (v.id = "outer".id2)
   ->  Index Scan using genres_pkey on genres g  (cost=0.00..4.82 rows=1 width=90)
         Index Cond: (g.id = "outer".id2)
(22 rows)

(В общи линии идеята е няколко таблици, и една отделна, която описва ВСИЧКИ релации м/у тях. Май не се хареса на postgresql-а).

Тази нощ най-накрая изчетох “Луната е наставница сурова” на Хайнлайн – на английски, отпечатана на около 80 страници (с 7pt шрифт, в 2 колонки). Струваше си да се прочете :)

Днес всичко си е различно – вчера се хванах да изчистя, да си преместя машината пак в голямата стая (и може пак да кача снимки), сега просто цялата къща изглежда по-добре. Останаха няколко дреболии из банята, и може да помисля какво да правя с многото празни бутилки, ама за това има време.

Нещо, което открих тая сутрин – трябва да си изключа звънеца. Да може да се активира като съм буден и да се спира, преди да си легна. Ако бях по-злобен, щях да добавя и електрошок за натискащите го докато спя …

2004-08-01 01:53

Sunday, August 1st, 2004

Nothing interesting… Velin gave me the book “The first in the Bulgarian Internet”, and I found a lot of omissions, wrong information, pure crap (like ‘520 kilobit cipher’),etc. But I was really amazed by the blunt omission of information about the academic network (acad.bg), the network of the Bulgarian Academy of Science, that’s just wrong.

For the interested, try to look up bgcict in google’s group, and go look at the oldest messages (there is a sort by date). I hope there will be someone to write more precise history, not one with a lot of advertisements of some sites, and a bit of history.

I started looking for bgcict, because I was interested what happened to the machine, one old VAX, one of the first machines, that pushed any kind of e-mail in Bulgaria… it stopped resolving in the last two years.

2004-08-01 01:47

Sunday, August 1st, 2004

Нищо интересно, в общи линии… Велин ми даде да прочета книгата “Първите в българския интернет”, и открих бая пропуски, грешна информация, глупости (като например ‘520 килобитов шифър’) и т.н. Най-много обаче ме изненада липсата на каквото и да било за академичната мрежа, за мрежите на БАН и т.н., което си е направо подигравка…

За заинтересуваните, пробвайте да търсите за bgcict например в групите на google, и идете на най-старите съобщения (има сортиране по дата). Може някой да се навие и да напише малко по-точна история, а не малко такава и купчина реклама на разни сайтове, които никой не ги знае колко ще оцелеят…

А кое ме накара да търся за bgcict – интересно ми е какво е станало с тази машина, един стар VAX, една от първите машини, докарващи някаква електронна поща в България … от година-две не се resolve-ва.