<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8965660</id><updated>2011-09-13T17:53:29.998Z</updated><category term='linux'/><category term='bashrc himdel backup shell bash'/><category term='extensions'/><category term='postgresql'/><category term='package'/><category term='request-tracker'/><category term='mysql'/><category term='old'/><category term='ff'/><category term='perl'/><category term='pose'/><category term='youtube'/><category term='geek'/><category term='school'/><category term='claws syplheed mail linux patch trayicon'/><category term='quiz'/><category term='computers'/><category term='X'/><category term='rt'/><category term='firefox'/><category term='test'/><category term='addons'/><category term='amd64'/><category term='unix'/><category term='browser'/><category term='fbxkb'/><category term='userscripts'/><category term='palm'/><category term='solnet'/><category term='debian'/><category term='keyboard'/><category term='mpd'/><category term='ubuntu'/><category term='pb138'/><category term='greasemonkey'/><category term='error'/><category term='padict'/><category term='db'/><category term='problem'/><category term='pose32'/><category term='patch'/><category term='broken'/><title type='text'>himdel</title><subtitle type='html'>Segmentation fault</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8965660.post-1347762301032374321</id><published>2009-04-12T00:45:00.000Z</published><updated>2009-04-12T00:45:42.019Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='solnet'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='rt'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><category scheme='http://www.blogger.com/atom/ns#' term='request-tracker'/><category scheme='http://www.blogger.com/atom/ns#' term='db'/><title type='text'>Migrating request-tracker (from rt-3.4.5 on mysql to rt-3.8.2 on postgres)</title><content type='html'>I've recently had the "pleasure" of upgrading our company's request tracker system and migrating it from MySQL to Postgres and I'd like to share what I found out.&lt;br /&gt;&lt;br /&gt;The process of installing and configuring the request-tracker-3.8 package from Debian experimental is considered obvious (and user-specific) and won't be covered here.&lt;br /&gt;&lt;br /&gt;First of all, all the data had to be migrated, except for the 'sessions' table which should be created empty (what would we need old sessions for).&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;export LC_ALL=C&lt;br /&gt;TABLES=ACL Attachments Attributes CachedGroupMembers CustomFieldValues CustomFields GroupMembers Groups Links ObjectCustomFieldValues ObjectCustomFields Principals Queues ScripActions ScripConditions Scrips Templates Tickets Transactions Users&lt;br /&gt;for foo in $TABLES; do echo $foo; mysqldump rtdb "$foo" --default-character-set=utf8 --compatible=postgresql --compact -t -u rtuser --password=omitted -r rtdb-"$foo"-`date +%s`.sql; done&lt;br /&gt;&lt;/code&gt; &lt;br /&gt;&lt;br /&gt;I chose to export each table into a different file to ease handling and because vim takes too long on 400MB files.&lt;br /&gt;&lt;br /&gt;Mysqldump may have the --compatible=postgresql option, but don't expect the output will be postgresql compatible .. but maybe it used to at some point, nowadays, Postgres won't accept string fields 'like \' \\this', but only 'like '' \this' or you have to explicitly tell it to see escaping .. E'like \' \\this'.&lt;br /&gt;&lt;br /&gt;Also, postgres won't handle the quotes in INSERT INTO "Table" .. .&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;perl -i -npe 's/^INSERT INTO "(\w+)"/INSERT INTO \L$1/; '"s/,'/,E'/g;" rtdb-*.sql&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Worked just fine.&lt;br /&gt;&lt;br /&gt;Seeing the inserts, I really didn't want to handle transmogrifying the CREATE TABLE statements and such, so I exported a freshly created pg-8.3 database from rt-3.8.2, removed any data from the dump and split it into the HEAD (the part before data) and TAILS (the part after). &lt;br /&gt;&lt;br /&gt;The only schema difference that had to be handled was in the table CustomFields, where order of columns was changed.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;perl -i -npe 's/INSERT INTO customfields VALUES/INSERT INTO customfields (id,name,type,maxvalues,pattern,repeated,description,sortorder,lookuptype,creator,created,lastupdatedby,lastupdated,disabled) VALUES/' rtdb-CustomFields-*.sql&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Explicit insert helped :).&lt;br /&gt;&lt;br /&gt;This made the data ready to be loaded to a new, empty database. Almost.&lt;br /&gt;&lt;br /&gt;For some reason RT uses text fields for saving mail content so non-utf8 mails couldn't be imported into the UTF-8 database .. after struggling long and hard, I didn't actually find a proper way to convert it so I used a quick and dirty hack and simply stripped all diacritics from the input data .. the language was Czech and cp1250, iso-8859-2 and utf-8 encodings were used .. I wrote a simple diacritics stripper for Czech that doesn't need to know the source encoding (because various were mixed in a single table dump) .. so that's what the zz_subs filter does in the following command.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;psql rtdb &lt; ok/HEADSfor foo in rtdb-*.sql; do echo $foo; cat "$foo" | ../zz_subs | psql rtdb; donepsql rtdb &lt; ok/TAILS&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Thus the data was migrated but RT still kept falling when I tried to insert anything new .. the culprit were the postgresql sequences (used to generate ids) - they didn't get updated because all entried were inserted with explicit id .. so all sequences still tried to use 1 as a new id, which didn't work. (rant mode: is it just me or is this behaviour incredibly stupid? should they at least keep incrementing if the next value is already there?).&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;psql rtdb &amp;lt;&amp;lt;EOF&lt;br /&gt;select setval('acl_id_seq', (select max(id) from acl));&lt;br /&gt;select setval('attachments_id_seq', (select max(id) from attachments));&lt;br /&gt;select setval('attributes_id_seq', (select max(id) from attributes));&lt;br /&gt;select setval('cachedgroupmembers_id_seq', (select max(id) from cachedgroupmembers));&lt;br /&gt;select setval('customfields_id_seq', (select max(id) from customfields));&lt;br /&gt;select setval('customfieldvalues_id_seq', (select max(id) from customfieldvalues));&lt;br /&gt;select setval('groupmembers_id_seq', (select max(id) from groupmembers));&lt;br /&gt;select setval('groups_id_seq', (select max(id) from groups));&lt;br /&gt;select setval('links_id_seq', (select max(id) from links));&lt;br /&gt;select setval('objectcustomfields_id_s', (select max(id) from objectcustomfields));&lt;br /&gt;select setval('objectcustomfieldvalues_id_s', (select max(id) from objectcustomfieldvalues));&lt;br /&gt;select setval('principals_id_seq', (select max(id) from principals));&lt;br /&gt;select setval('queues_id_seq', (select max(id) from queues));&lt;br /&gt;select setval('scripactions_id_seq', (select max(id) from scripactions));&lt;br /&gt;select setval('scripconditions_id_seq', (select max(id) from scripconditions));&lt;br /&gt;select setval('scrips_id_seq', (select max(id) from scrips));&lt;br /&gt;select setval('templates_id_seq', (select max(id) from templates));&lt;br /&gt;select setval('tickets_id_seq', (select max(id) from tickets));&lt;br /&gt;select setval('transactions_id_seq', (select max(id) from transactions));&lt;br /&gt;select setval('users_id_seq', (select max(id) from users));&lt;br /&gt;EOF&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Deep magic, but works.&lt;br /&gt;&lt;br /&gt;Now, rt has it's own thingy for upgrading database for rt upgrades, so I wanted to run it so everything is in order. After skimming through, it does seem to do some useful stuff. Unfortunately there's a schema change in 3.7.3 which tried to remove all tables so 3.7.3 has to be skipped.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;(echo 3.4.5; echo 3.7.1; echo y) | rt-setup-database --action upgrade --dba-password=omitted&lt;br /&gt;(echo 3.7.3; echo; echo y) | rt-setup-database --action upgrade --dba-password=omitted&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And really, that's all you need to do to migrate a rt.&lt;br /&gt;&lt;br /&gt;You might also want to put something like this in your crontab:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;0 4 * * *   postgres    /bin/echo "delete from sessions where LastUpdated &lt; (now() - '24 hour'::interval);" | /usr/bin/psql rtdb &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Rant mode on:&lt;br /&gt;Except, it didn't really work. And why not, you ask? Because of ****** cpan putting his sleazy libraries where they don't belong. Why, oh why can't you set cpan to install to /usr/local or somewhere that has less priority than /usr/share/ where debian puts them. It didn't work because we had Net::LDAP from 1999 in /usr/lib (and a current version in /usr/share that didn't get used).&lt;br /&gt;Oh well :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-1347762301032374321?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/1347762301032374321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2009/04/migrating-request-tracker-from-rt-345.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/1347762301032374321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/1347762301032374321'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2009/04/migrating-request-tracker-from-rt-345.html' title='Migrating request-tracker (from rt-3.4.5 on mysql to rt-3.8.2 on postgres)'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-6734593090686813885</id><published>2009-02-15T01:14:00.004Z</published><updated>2009-04-11T17:52:59.842Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='problem'/><category scheme='http://www.blogger.com/atom/ns#' term='broken'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='youtube'/><title type='text'>A weird youtube problem</title><content type='html'>For about an hour, youtube has been broken, at least for me. For most of the videos, it shows only a "We're sorry, this video is no longer available." notice. That sucks, especialy since it includes videos from recommended, top of search results, etc. Grr., hope they fix it soon.&lt;br /&gt;&lt;br /&gt;The problem seems to be with a decoder not recognizing the format. I can download the video (using the DownloadHelper ff addon for example) but I can't play it in mplayer either (using version 2:1.0~rc2-0ubuntu13.1) .. it says &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[flv @ 0x8750b74]Unsupported video codec (7)[flv @ 0x8750b74]Unsupported video codec (7)[flv @ 0x8750b74]Unsupported video codec (7)[flv @ 0x8750b74]Could not find codec parameters (Video: 0x0007)[flv @ 0x8750b74]Could not find codec parameters (Audio: 0x000a, 44100 Hz, stereo)&lt;/pre&gt;.&lt;br /&gt;&lt;br /&gt;I guess the flash part hasn't been updated for some video format changes. Or maybe it's somehow cached on my side? Or could they really have deleted so many videos at a time? (&lt;shiver /&gt;)&lt;br /&gt;&lt;br /&gt;Well, it really sucks, I'm on work Eee, with no data and my server disconnected. Fnuk.&lt;br /&gt;&lt;br /&gt;P.S. let's see how long it'll take to compile mplayer on Eee :) *CRAZY*&lt;br /&gt;&lt;br /&gt;EDIT1: like, 10 minutes, cool&lt;br /&gt;EDIT2: while videos on youtube still don't work, current mplayer plays them just fine :) mplayer FTW&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-6734593090686813885?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/6734593090686813885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2009/02/weird-youtube-problem.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/6734593090686813885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/6734593090686813885'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2009/02/weird-youtube-problem.html' title='A weird youtube problem'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-3314683284634349453</id><published>2009-01-19T04:31:00.002Z</published><updated>2009-01-19T04:38:38.063Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='old'/><category scheme='http://www.blogger.com/atom/ns#' term='computers'/><category scheme='http://www.blogger.com/atom/ns#' term='quiz'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><category scheme='http://www.blogger.com/atom/ns#' term='geek'/><title type='text'>unix quiz</title><content type='html'>I just found out about the UNIX quiz [http://spiffy.ci.uiuc.edu/~kline/Stuff/unixquiz.html] .. or "Okay, you degenerates! Let's see how much you really know about the history of Unix. This quiz appeared in ;login: magazine, July 1984. "&lt;br /&gt;&lt;br /&gt;So, without much ado, here's my first take on it (without looking up anything .. a know only a few anwsers and even these may not be correct).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   1. The source code motel: your source code checks in, but it never checks out. What is it?&lt;br /&gt;SCCS .. the precursor to VCS a CVS&lt;br /&gt;&lt;br /&gt;   2. Who wrote the first Unix screen editor?&lt;br /&gt;&lt;br /&gt;   3. Using TSO is like kicking a {what?} down the beach.&lt;br /&gt;&lt;br /&gt;   4. What is the filename created by the original dsw(1)?&lt;br /&gt;&lt;br /&gt;   5. Which edition of Unix first had pipes?&lt;br /&gt;&lt;br /&gt;   6. What is -=O=-?&lt;br /&gt;&lt;br /&gt;   7. Which Stephen R. Bourne wrote the shell?&lt;br /&gt;&lt;br /&gt;   8. Adam Buchsbaum's original login was sjb. Who is sjb?&lt;br /&gt;&lt;br /&gt;   9. What was the original processor in the Teletype DMD-5620?&lt;br /&gt;&lt;br /&gt;  10. What was the telephone extension of the author of mpx(2)?&lt;br /&gt;&lt;br /&gt;  11. Which machine resulted in the naming of the "NUXI problem"?&lt;br /&gt;The VAX&lt;br /&gt;&lt;br /&gt;  12. What customs threat is dangerous only when dropped from an airplane?&lt;br /&gt;&lt;br /&gt;  13. Who wrote the Bourne Shell?&lt;br /&gt;&lt;br /&gt;  14. What operator in the Mashey shell was replaced by "here documents"?&lt;br /&gt;&lt;br /&gt;  15. What names appear on the title page of the 3.0 manual?&lt;br /&gt;&lt;br /&gt;  16. Sort the following into chronological order: 1) PWB 1.2, b) V7, c) Whirlwind, e) System V, f) 4.2BSD, g) MERT.&lt;br /&gt;&lt;br /&gt;  17. The CRAY-2 will be so fast it {what?} in 6 seconds.&lt;br /&gt;&lt;br /&gt;  18. How many lights are there on the front panel of the original 11/70?&lt;br /&gt;&lt;br /&gt;  19. What does FUBAR mean?&lt;br /&gt;Fucked Up Beyond All Recognition&lt;br /&gt;&lt;br /&gt;  20. What does "joff" stand for?&lt;br /&gt;&lt;br /&gt;  21. What is "Blit" an acronym of?&lt;br /&gt;&lt;br /&gt;  22. Who was rabbit!bimmler?&lt;br /&gt;&lt;br /&gt;  23. Into how many pieces did Ken Thompson's deer disintegrate?&lt;br /&gt;&lt;br /&gt;  24. What name is most common at USENIX conferences?&lt;br /&gt;&lt;br /&gt;  25. What is the US patent number for the setuid bit?&lt;br /&gt;&lt;br /&gt;  26. What is the patent number that appears in Unix documentation?&lt;br /&gt;&lt;br /&gt;  27. Who satisfied the patent office of the viability of the setuid bit patent?&lt;br /&gt;&lt;br /&gt;  28. How many Unix systems existed when the Second Edition manual was printed?&lt;br /&gt;&lt;br /&gt;  29. Which Bell Labs location is HL?&lt;br /&gt;&lt;br /&gt;  30. Who mailed out the Sixth Edition tapes?&lt;br /&gt;&lt;br /&gt;  31. Which University stole Unix by phone?&lt;br /&gt;&lt;br /&gt;  32. Who received the first rubber chicken award?&lt;br /&gt;&lt;br /&gt;  33. Name a feature of C not in Kernighan and Ritchie.&lt;br /&gt;Passing struct by value as a function parameter&lt;br /&gt;&lt;br /&gt;  34. What company did cbosg!ccf work for?&lt;br /&gt;&lt;br /&gt;  35. What does Bnews do?&lt;br /&gt;&lt;br /&gt;  36. Who said "Sex, Drugs, and Unix?"&lt;br /&gt;&lt;br /&gt;  37. What law firm distributed Empire?&lt;br /&gt;&lt;br /&gt;  38. What computer was requested by Ken Thompson, but refused by management?&lt;br /&gt;&lt;br /&gt;  39. Who is the most obsessed private pilot in USENIX?&lt;br /&gt;&lt;br /&gt;  40. What operating system runs on the 3B-20D?&lt;br /&gt;&lt;br /&gt;  41. Who wrote find(1)?&lt;br /&gt;&lt;br /&gt;  42. In what year did Bell Labs organization charts become proprietary?&lt;br /&gt;&lt;br /&gt;  43. What is the Unix epoch in Cleveland?&lt;br /&gt;&lt;br /&gt;  44. What language preceded C?&lt;br /&gt;BCPL&lt;br /&gt;&lt;br /&gt;  45. What language preceded B?&lt;br /&gt;assembler?&lt;br /&gt;&lt;br /&gt;  46. What letter is mispunched by bcd(6)?&lt;br /&gt;&lt;br /&gt;  47. What terminal does the Blit emulate?&lt;br /&gt;&lt;br /&gt;  48. What does "trb" stand for (it's Andy Tannenbaum's login)?&lt;br /&gt;&lt;br /&gt;  49. allegra!honey is no what?&lt;br /&gt;&lt;br /&gt;  50. What is the one-line description in vs.c?&lt;br /&gt;"You are not expected to understand this"&lt;br /&gt;&lt;br /&gt;  51. What is the TU10 tape boot for the PDP-11/70 starting at location 100000 octal?&lt;br /&gt;&lt;br /&gt;  52. What company owns the trademark on Writer's Workbench Software?&lt;br /&gt;&lt;br /&gt;  53. Who designed Belle?&lt;br /&gt;&lt;br /&gt;  54. Who coined the name "Unix"?&lt;br /&gt;&lt;br /&gt;  55. What manual page mentioned Urdu?&lt;br /&gt;&lt;br /&gt;  56. What politician is mentioned in the Unix documentation?&lt;br /&gt;&lt;br /&gt;  57. What program was compat(1) written to support?&lt;br /&gt;&lt;br /&gt;  58. Who is "mctesq"?&lt;br /&gt;&lt;br /&gt;  59. What was "ubl"?&lt;br /&gt;&lt;br /&gt;  60. Who bought the first commercial Unix license?&lt;br /&gt;&lt;br /&gt;  61. Who bought the first Unix license?&lt;br /&gt;&lt;br /&gt;  62. Who signed the Sixth Edition licenses?&lt;br /&gt;&lt;br /&gt;  63. What color is the front console on the PDP-11/45 (exactly)?&lt;br /&gt;&lt;br /&gt;  64. How many different meanings does Unix assign to '.'?&lt;br /&gt;&lt;br /&gt;  65. Who said "Smooth rotation butters no parsnips?"&lt;br /&gt;&lt;br /&gt;  66. What was the original name for cd(1)?&lt;br /&gt;chdir&lt;br /&gt;&lt;br /&gt;  67. Which was the first edition of the manual to be typeset?&lt;br /&gt;&lt;br /&gt;  68. Which was the first edition of Unix to have standard error/diagnostic output?&lt;br /&gt;&lt;br /&gt;  69. Who ran the first Unix Support Group?&lt;br /&gt;&lt;br /&gt;  70. Whose Ph.D. thesis concerned Unix paging?&lt;br /&gt;&lt;br /&gt;  71. Who (other than the obvious) designed the original Unix file system?&lt;br /&gt;&lt;br /&gt;  72. Who wrote the PWB shell?&lt;br /&gt;&lt;br /&gt;  73. Who invented uucp?&lt;br /&gt;&lt;br /&gt;  74. Who thought of PWB?&lt;br /&gt;&lt;br /&gt;  75. What does grep stand for?&lt;br /&gt;gREp .. the command in ed(1) that greps .. the RE stands for regular expression&lt;br /&gt;&lt;br /&gt;  76. What hardware devidce does "dsw" refer to?&lt;br /&gt;&lt;br /&gt;  77. What was the old name of the "/sys" directory?&lt;br /&gt;&lt;br /&gt;  78. What was the old name of the "/dev" directory?&lt;br /&gt;&lt;br /&gt;  79. Who has written many random number generators, but never one that worked?&lt;br /&gt;&lt;br /&gt;  80. Where was the first Unix system outside 127?&lt;br /&gt;&lt;br /&gt;  81. What was the first Unix network?&lt;br /&gt;&lt;br /&gt;  82. What was the original syntax for ls -l | pr -h?&lt;br /&gt;ls -l &gt; pr -h&lt;br /&gt;&lt;br /&gt;  83. Why is there a comment in the shell source /* Must not be a register variable */?&lt;br /&gt;&lt;br /&gt;  84. What is it you're not expected to understand? &lt;br /&gt;something to do with VM&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-3314683284634349453?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://spiffy.ci.uiuc.edu/~kline/Stuff/unixquiz.html' title='unix quiz'/><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/3314683284634349453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2009/01/unix-quiz.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/3314683284634349453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/3314683284634349453'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2009/01/unix-quiz.html' title='unix quiz'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-5108701227509160103</id><published>2008-12-26T22:05:00.004Z</published><updated>2008-12-26T22:29:34.494Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='greasemonkey'/><category scheme='http://www.blogger.com/atom/ns#' term='userscripts'/><category scheme='http://www.blogger.com/atom/ns#' term='ff'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>useful greasemonkey scripts list</title><content type='html'>These are all the greasemonkey scripts I'm currently using. Greasemonkey is a firefox addon that allows you to have custom scripts that change the behaviour of any site. Most of them are rather useful so enjoy! :)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://userscripts.org/scripts/show/24371"&gt;Google Reader: Show Feed Favicons&lt;/a&gt; - shows favicons of the site the feed comes from instead of the generic rss icon in google reader&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://userscripts.org/scripts/show/3851"&gt;Convert hCalendar to Google Calendar&lt;/a&gt; - does what it says&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="#mbank-gm" onclick="document.getElementById('mbank-gm').style.display = 'inline';"&gt;mbank login&lt;/a&gt; - the mBank login page has autocomplete=off on the login form fields .. and I hate to have to look up my customer id every time .. so just replace the "foobar" in the script with your number and there you go. (It'd work for password too.)&lt;br /&gt;&lt;span id="mbank-gm" style="display: none"&gt;&lt;br /&gt;&lt;br /&gt;// ==UserScript==&lt;br /&gt;// @name           mbank login&lt;br /&gt;// @namespace      http://localhost&lt;br /&gt;// @include        https://cz.mbank.eu/&lt;br /&gt;// ==/UserScript==&lt;br /&gt;&lt;br /&gt;document.getElementById('customer').autocomplete = 'on';&lt;br /&gt;document.getElementById('customer').value = 'foobar';&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://userscripts.org/scripts/show/13720"&gt;Show Password on Click&lt;/a&gt; - shows the password when you click on a password input field&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://userscripts.org/scripts/show/33042"&gt;YouTube Enhancer&lt;/a&gt; - so the videos on youtube don't start playing automatically (which sucks when you open many videos at once) and load the higher quality version by default&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-5108701227509160103?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/5108701227509160103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2008/12/useful-firefox-extensions-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/5108701227509160103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/5108701227509160103'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2008/12/useful-firefox-extensions-list.html' title='useful greasemonkey scripts list'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-2046306738139889862</id><published>2008-12-26T03:08:00.010Z</published><updated>2008-12-26T22:08:01.531Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='addons'/><category scheme='http://www.blogger.com/atom/ns#' term='extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='greasemonkey'/><category scheme='http://www.blogger.com/atom/ns#' term='ff'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>useful firefox extensions list</title><content type='html'>These are all the firefox extensions I'm currently using .. and I'd be lost without many of them.&lt;br /&gt;Enjoy! :)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4949"&gt;AutoAuth&lt;/a&gt; - so you don't have to press enter on sites using HTTP authentication if you've already saved a password&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3615"&gt;Delicious Bookmarks&lt;/a&gt; - to synchronize ff bookmarks with &lt;a href="http://www.delicious.com/himdel" rel="me"&gt;my del.icio.us&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/26"&gt;Download Statusbar&lt;/a&gt; - so you can see current downloads in the statusbar&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3006"&gt;DownloadHelper&lt;/a&gt; - for saving youtube videos and image/video galleries&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3794"&gt;Facebook Toolbar&lt;/a&gt; - shows notifications about facebook events&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5721"&gt;Fast Dial&lt;/a&gt; - thumbnails on an empty tab .. just like in Opera&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt;Firebug&lt;/a&gt; - to debug javascript apps and change stuff on loaded sites&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/8973"&gt;FireStatus&lt;/a&gt; - shows what's new on &lt;a href="http://www.twitter.com/himdel" rel="me"&gt;my twitter&lt;/a&gt; + to post new items&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/433"&gt;Flashblock&lt;/a&gt; - shows a big play button instead of any flash on the site .. and you can start each flash thingy manually or allow flash for whole site&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/398"&gt;Forecastfox&lt;/a&gt; - so you know the weather outside&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/9411"&gt;GCal Popup&lt;/a&gt; - overlays the current site with a google calendar view&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://gears.google.com/"&gt;Google Gears&lt;/a&gt; - for offline apps such as &lt;a href="http://docs.google.com"&gt;Google Docs&lt;/a&gt;, &lt;a href="http://www.google.com/reader/view"&gt;Google Reader&lt;/a&gt; and &lt;a href="http://rememberthemilk.com"&gt;Remember The Milk&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.google.com/tools/firefox/"&gt;Google Notebook&lt;/a&gt; - shows a small Google Notebook so you can save snippets of a page&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4808"&gt;Google Reader Watcher&lt;/a&gt; - to see how many unread posts you have&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/748"&gt;Greasemonkey&lt;/a&gt; - to customize various sites (see my next post)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/5523"&gt;gui:config&lt;/a&gt; - well, easier than tweaking about:config items&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/139"&gt;Image Zoom&lt;/a&gt; - right click + wheel scroll on an image resizes it .. great for viewing comics in Google Reader&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/8207"&gt;Open in Browser&lt;/a&gt; - adds an option to the open/save dialog so you can view stuff on any mimetype in the browser (great for all those javascripts with Content-Type: application/data)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/6350"&gt;Open IT Online&lt;/a&gt; - adds an option to the open/save dialog so you can open documents directly in Google Docs (and others)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4106"&gt;Operator&lt;/a&gt; - shows any microformats on current page&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/7974"&gt;Perspectives&lt;/a&gt; - to get rid of some of the annoying Invalid SSL Certificate warnings&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/115"&gt;ReloadEvery&lt;/a&gt; - to reload the current tab every n seconds/minutes&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3818"&gt;Resizeable Textarea&lt;/a&gt; - so you can grab and resize any textareas&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/4336"&gt;Snap Links&lt;/a&gt; - middleclick and drag to open many links simultaneously&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1859"&gt;Tab History&lt;/a&gt; - preserves history of the parent tab in the new tab when you open a link in a new tab&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2780"&gt;Mobile Barcoder&lt;/a&gt; - shows the current tab url as QR-Code&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-2046306738139889862?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/2046306738139889862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2008/12/himdels-useful-firefox-extension-list.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/2046306738139889862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/2046306738139889862'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2008/12/himdels-useful-firefox-extension-list.html' title='useful firefox extensions list'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-6079216810379464573</id><published>2008-11-19T01:54:00.001Z</published><updated>2008-11-21T00:51:20.010Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='bashrc himdel backup shell bash'/><title type='text'>himdel's .bashrc</title><content type='html'>&lt;style&gt;&lt;!--&lt;br /&gt;.code { text-font: monospace }&lt;br /&gt;#--&gt;&lt;/style&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;001    # ~/.bashrc: executed by bash(1) for non-login shells.&lt;br /&gt;002    # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)&lt;br /&gt;003    # for examples&lt;br /&gt;      &lt;br /&gt;004    . /etc/profile&lt;br /&gt;005    export PATH=$PATH:/home/him/bin&lt;br /&gt;      &lt;br /&gt;006    # If not running interactively, don't do anything&lt;br /&gt;007    [ -z "$PS1" ] &amp;amp;&amp;amp; return&lt;br /&gt;      &lt;br /&gt;008    # don't put duplicate lines in the history. See bash(1) for more options&lt;br /&gt;009    export HISTCONTROL=ignoredups&lt;br /&gt;      &lt;br /&gt;010    # check the window size after each command and, if necessary,&lt;br /&gt;011    # update the values of LINES and COLUMNS.&lt;br /&gt;012    shopt -s checkwinsize&lt;br /&gt;      &lt;br /&gt;013    # make less more friendly for non-text input files, see lesspipe(1)&lt;br /&gt;014    [ -x /usr/bin/lesspipe ] &amp;amp;&amp;amp; eval "$(lesspipe)"&lt;br /&gt;      &lt;br /&gt;015    # set variable identifying the chroot you work in (used in the prompt below)&lt;br /&gt;016    if [ -z "$debian_chroot" ] &amp;amp;&amp;amp; [ -r /etc/debian_chroot ]; then&lt;br /&gt;017    debian_chroot=$(cat /etc/debian_chroot)&lt;br /&gt;018    fi&lt;br /&gt;      &lt;br /&gt;019    # set a fancy prompt (non-color, unless we know we "want" color)&lt;br /&gt;020    case "$TERM" in&lt;br /&gt;021    xterm-color)&lt;br /&gt;022    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '&lt;br /&gt;023    ;;&lt;br /&gt;024    *)&lt;br /&gt;025    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '&lt;br /&gt;026    ;;&lt;br /&gt;027    esac&lt;br /&gt;      &lt;br /&gt;028    # Comment in the above and uncomment this below for a color prompt&lt;br /&gt;029    #PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '&lt;br /&gt;      &lt;br /&gt;030    # If this is an xterm set the title to user@host:dir&lt;br /&gt;031    case "$TERM" in&lt;br /&gt;032    xterm*|rxvt*)&lt;br /&gt;033    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'&lt;br /&gt;034    ;;&lt;br /&gt;035    *)&lt;br /&gt;036    ;;&lt;br /&gt;037    esac&lt;br /&gt;      &lt;br /&gt;038    # Alias definitions.&lt;br /&gt;039    # You may want to put all your additions into a separate file like&lt;br /&gt;040    # ~/.bash_aliases, instead of adding them here directly.&lt;br /&gt;041    # See /usr/share/doc/bash-doc/examples in the bash-doc package.&lt;br /&gt;      &lt;br /&gt;042    #if [ -f ~/.bash_aliases ]; then&lt;br /&gt;043    #    . ~/.bash_aliases&lt;br /&gt;044    #fi&lt;br /&gt;      &lt;br /&gt;045    # enable color support of ls and also add handy aliases&lt;br /&gt;046    if [ "$TERM" != "dumb" ]; then&lt;br /&gt;047    eval "`dircolors -b`"&lt;br /&gt;048    alias ls='ls --color=auto'&lt;br /&gt;049    #alias dir='ls --color=auto --format=vertical'&lt;br /&gt;050    #alias vdir='ls --color=auto --format=long'&lt;br /&gt;051    fi&lt;br /&gt;      &lt;br /&gt;052    # some more ls aliases&lt;br /&gt;053    #alias ll='ls -l'&lt;br /&gt;054    #alias la='ls -A'&lt;br /&gt;055    #alias l='ls -CF'&lt;br /&gt;      &lt;br /&gt;056    # enable programmable completion features (you don't need to enable&lt;br /&gt;057    # this, if it's already enabled in /etc/bash.bashrc and /etc/profile&lt;br /&gt;058    # sources /etc/bash.bashrc).&lt;br /&gt;059    if [ -f /etc/bash_completion ]; then&lt;br /&gt;060    . /etc/bash_completion&lt;br /&gt;061    fi&lt;br /&gt;      &lt;br /&gt;062    alias apt-get='sudo apt-get'&lt;br /&gt;063    alias aptitude='sudo aptitude'&lt;br /&gt;      &lt;br /&gt;064    alias sshim='ssh -X himdel.mine.nu'&lt;br /&gt;065    alias aisa='ssh xhrad1@aisa.fi.muni.cz'&lt;br /&gt;066    alias oldtimer='ssh himdel@in.solnet.cz'&lt;br /&gt;      &lt;br /&gt;067    SSHFS="sudo sshfs -o reconnect -o allow_other -o fsname=sshfs -o transform_symlinks"&lt;br /&gt;068    alias mntpenny="$SSHFS xhrad1@192.168.1.2:/ /media/penny"&lt;br /&gt;069    alias mnthim="$SSHFS xhrad1@himdel.mine.nu:/ /media/penny"&lt;br /&gt;070    alias mntaisa="$SSHFS xhrad1@aisa.fi.muni.cz: /media/aisa"&lt;br /&gt;071    alias mntpb071="$SSHFS xhrad1@aisa.fi.muni.cz:/export/e1/pb071 /media/pb071"&lt;br /&gt;      &lt;br /&gt;072    function susp {&lt;br /&gt;073    echo Suspend in 4 sec...&lt;br /&gt;074    STATUS=`purple-remote getstatus`&lt;br /&gt;075    purple-remote 'setstatus?status=offline'&lt;br /&gt;076    killall sonata&lt;br /&gt;077    sleep 1&lt;br /&gt;078    killall -9 sonata&lt;br /&gt;079    sleep 2&lt;br /&gt;080    mpc pause&lt;br /&gt;081    sync&lt;br /&gt;082    sudo s2ram -f&lt;br /&gt;083    sleep 0.5&lt;br /&gt;084    purple-remote "setstatus?status=$STATUS"&lt;br /&gt;085    #    twitter post 'just started the notebook'&lt;br /&gt;086    mode.rb detect&lt;br /&gt;087    (sonata &amp;amp; exit)&lt;br /&gt;088    }&lt;br /&gt;      &lt;br /&gt;089    function wifi_school {&lt;br /&gt;090    #    sudo ifdown eth0&lt;br /&gt;091    #    sudo ifdown eth2&lt;br /&gt;092    #    sudo killall wpa_supplicant #should really just send a cmd or sth&lt;br /&gt;093    #    sudo iwconfig eth2 essid wlan_fi&lt;br /&gt;094    #    sudo iwconfig eth2 txpower auto&lt;br /&gt;095    #    sudo ifup eth2&lt;br /&gt;096    firefox https://fadmin.fi.muni.cz/auth/sit/wireless/login.mpl &amp;amp;&lt;br /&gt;097    }&lt;br /&gt;      &lt;br /&gt;098    function wifi_modules {&lt;br /&gt;099    sudo rmmod b43 b44 ssb&lt;br /&gt;100    sudo modprobe ndiswrapper&lt;br /&gt;101    }&lt;br /&gt;      &lt;br /&gt;102    function wifi_supp {&lt;br /&gt;103    sudo ifdown eth0&lt;br /&gt;104    sudo ifdown eth2&lt;br /&gt;105    ps -A | grep wpa_supplicant || sudo wpa_supplicant -Dwext -ieth2 -C/var/run/wpa_supplicant &amp;amp;&lt;br /&gt;106    #ps -A | grep wpa_supplicant || sudo wpa_supplicant -Dwext -ieth2 -c/etc/wpa_supplicant/wpa_supplicant.conf &amp;amp;&lt;br /&gt;107    sudo wpa_gui -p/var/run/wpa_supplicant&lt;br /&gt;108    sudo ifup eth2&lt;br /&gt;109    }&lt;br /&gt;      &lt;br /&gt;110    #function popice {&lt;br /&gt;111    #    sudo ifdown eth0&lt;br /&gt;112    #    sudo ifdown eth2&lt;br /&gt;113    #    sudo ip link set eth0 up&lt;br /&gt;114    #    sudo ip addr add 192.168.114.199 dev eth0&lt;br /&gt;115    #    sudo ip route add 192.168.114.254/32 dev eth0&lt;br /&gt;116    #    sudo ip route add default via 192.168.114.254&lt;br /&gt;117    #    sudo sh -c 'echo "nameserver 62.168.35.129" &amp;gt; /etc/resolv.conf'&lt;br /&gt;118    #}&lt;br /&gt;      &lt;br /&gt;119    #function eth {&lt;br /&gt;120    #    sudo ifup eth0&lt;br /&gt;121    #}&lt;br /&gt;      &lt;br /&gt;122    alias xs='sleep 4 ; xset dpms force off'&lt;br /&gt;123    alias ct1='mplayer http://cdn4.nacevi.cz/CT1-High'&lt;br /&gt;124    alias ct2='mplayer http://cdn4.nacevi.cz/CT2-High'&lt;br /&gt;125    alias wcat='wget -qO-'&lt;br /&gt;      &lt;br /&gt;126    function status {&lt;br /&gt;127    if [ "$#" -eq 0 ]; then   &lt;br /&gt;128    msg='getstatus'&lt;br /&gt;129    else&lt;br /&gt;130    msg='setstatus'&lt;br /&gt;131    fi&lt;br /&gt;132    if [ "$#" -ge 1 ]; then&lt;br /&gt;133    msg="$msg?status=$1"&lt;br /&gt;134    fi&lt;br /&gt;135    msg="$msg&amp;amp;message="&lt;br /&gt;136    if [ "$#" -ge 2 ]; then&lt;br /&gt;137    msg="$msg$2"&lt;br /&gt;138    fi&lt;br /&gt;139    purple-remote "$msg"&lt;br /&gt;140    }&lt;br /&gt;      &lt;br /&gt;141    alias q3a=quake3&lt;br /&gt;      &lt;br /&gt;142    function umri_pak_sys {&lt;br /&gt;143    echo umri_pak_sys&lt;br /&gt;144    cd /sys/class/power_supply/C1BC&lt;br /&gt;145    while [ $(cat charge_now) -gt 320000 ]; do&lt;br /&gt;146    sleep 1m&lt;br /&gt;147    done&lt;br /&gt;148    cd -&lt;br /&gt;149    }&lt;br /&gt;      &lt;br /&gt;150    function umri_pak_proc {&lt;br /&gt;151    echo umri_pak_proc&lt;br /&gt;152    cd /proc/acpi/battery/C1BC&lt;br /&gt;153    while [ $(grep ^rema state | awk '{ print $3 }') -gt 320 ]; do&lt;br /&gt;154    sleep 1m&lt;br /&gt;155    done&lt;br /&gt;156    cd -&lt;br /&gt;157    }&lt;br /&gt;      &lt;br /&gt;158    function pak_umri {&lt;br /&gt;159    if [ -d /proc/acpi/battery/C1BC ]; then&lt;br /&gt;160    umri_pak_proc&lt;br /&gt;161    else&lt;br /&gt;162    umri_pak_sys&lt;br /&gt;163    fi&lt;br /&gt;164    susp&lt;br /&gt;165    }&lt;br /&gt;      &lt;br /&gt;166    alias scrim='sshim -t screen'&lt;br /&gt;167    alias xss='for foo in {1..8}; do sleep=$((2 ** $foo)); echo "foo=$foo; sleep=$sleep"; sleep $sleep; xs; done'&lt;br /&gt;      &lt;br /&gt;168    # scrim in detached screen&lt;br /&gt;169    function blaf { screen -d -m ssh himdel.mine.nu -t screen "$@"\; echo -paused-\; read ;}&lt;br /&gt;      &lt;br /&gt;170    # blaf for all scrim -ls&lt;br /&gt;171    function blorg { for foo in `scrim -ls | awk '{ print $1 }' | grep penny`; do blaf $foo; done; screen -r ;}&lt;br /&gt;&lt;br /&gt;172    alias Ap='apt-cache policy'&lt;br /&gt;173    alias As='apt-cache search'&lt;br /&gt;174    alias Ai='apt-get install'&lt;br /&gt;175    alias Ar='apt-get remove'&lt;br /&gt;176    alias As='apt-get source'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Just thought I should share this :).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="edits"&gt;&lt;br /&gt;EDIT @ &lt;abbr title="2008-11-21T00:41Z" class="dtstart"&gt;21.11.2008&lt;/abbr&gt;: added lines [172-176]&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-6079216810379464573?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/6079216810379464573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2008/11/himdels-bashrc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/6079216810379464573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/6079216810379464573'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2008/11/himdels-bashrc.html' title='himdel&apos;s .bashrc'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-451180513613352324</id><published>2008-11-08T23:27:00.002Z</published><updated>2008-11-08T23:35:18.276Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='keyboard'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='X'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><category scheme='http://www.blogger.com/atom/ns#' term='fbxkb'/><title type='text'>fbxkb flags patch</title><content type='html'>My primary keyboard layout is US (qwerty), but from time to time, one needs a different one (usually cz_qwerty or hu for me). So I have this handy line in my ~/.xinitrc that let's me switch to the alternate layout by using Right Alt:&lt;br /&gt;setxkbmap -option grp:switch,grp:alts_toggle,grp_led:scroll us,cz_qwerty&lt;br /&gt;&lt;br /&gt;And I use fbxkb to see the current layout in the tray. The only problem is, it doesn't work .. instead of the us flag, it shows question marks and when i switch to the us,hu layout combo, it shows question marks for both layouts.&lt;br /&gt;&lt;br /&gt;Well, no more. It turns out, it was quite an easy bug to fix so here's a patch against fbxkb-0.6.&lt;br /&gt;&lt;br /&gt;---&lt;a href="#fbxkb-patch" onclick="document.getElementById('fbxkb-patch').style.display = 'block'"&gt;Show the patch&lt;/a&gt;---&lt;br /&gt;&lt;pre id="fbxkb-patch" style="display: none"&gt;--- a/fbxkb.c 2006-12-18 21:47:52.000000000 +0000&lt;br /&gt;+++ b/fbxkb.c 2008-11-08 16:25:32.000000000 +0000&lt;br /&gt;@@ -378,10 +378,11 @@&lt;br /&gt;g_assert((no &gt;= 0) &amp;&amp; (no &lt; ngroups));&lt;br /&gt;             if (group2info[no].sym != NULL) {&lt;br /&gt;                 ERR("xkb group #%d is already defined\n", no);&lt;br /&gt;+            } else {&lt;br /&gt;+                group2info[no].sym = g_strdup(tok);&lt;br /&gt;+                group2info[no].flag = sym2flag(tok);&lt;br /&gt;+                group2info[no].name = XGetAtomName(dpy, kbd_desc_ptr-&gt;names-&gt;groups[no]);           &lt;br /&gt;}&lt;br /&gt;-            group2info[no].sym = g_strdup(tok);&lt;br /&gt;-            group2info[no].flag = sym2flag(tok);&lt;br /&gt;-            group2info[no].name = XGetAtomName(dpy, kbd_desc_ptr-&gt;names-&gt;groups[no]);           &lt;br /&gt;}&lt;br /&gt;XFree(sym_name);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-451180513613352324?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/451180513613352324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2008/11/fbxkb-flags-patch.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/451180513613352324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/451180513613352324'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2008/11/fbxkb-flags-patch.html' title='fbxkb flags patch'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-8068698075866302948</id><published>2008-10-24T02:02:00.001Z</published><updated>2008-11-03T11:10:48.175Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='package'/><category scheme='http://www.blogger.com/atom/ns#' term='padict'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='palm'/><category scheme='http://www.blogger.com/atom/ns#' term='pose'/><category scheme='http://www.blogger.com/atom/ns#' term='pose32'/><category scheme='http://www.blogger.com/atom/ns#' term='amd64'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>pose (Palm Emulator) for amd64 debian / ubuntu</title><content type='html'>Some time ago, I moved from 32bit debian to 64bit debian on my notebook. So far, having configured flash and installed firefox from ubuntu, I haven't run into any problems. Until I tried to run Padict (Japanese dictionary for palms) under pose .. there is no pose package for amd64! And it's not so easy to compile either.&lt;br /&gt;&lt;br /&gt;So now there is. The creation was relatively straightforward, first I downloaded i386 versions of pose and recursively all its dependencies that aren't architecture-independent from packages.debian.org. That's: &lt;code&gt;pose (3.5-9.1), libdrm2 (2.3.1-1), libexpat1 (2.0.1-4), libfltk1.1 (1.1.9-6), libfontconfig1 (2.6.0-1), libfreetype6 (2.3.7-2), libgcc1 (1:4.3.2-1), libgl1-mesa-glx (7.0.3-6), libjpeg62 (6b-14), libpng12-0 (1.2.27-2), libstdc++6 (4.3.2-1), libx11-6 (2:1.1.5-2), libxau6 (1:1.0.3-3), libxcb-xlib0 (1.1-1.1), libxcb1 (1.1-1.1), libxdamage1 (1:1.1.1-4), libxdmcp6 (1:1.0.2-3), libxext6 (2:1.0.4-1), libxfixes3 (1:4.0.3-2), libxft2 (2.1.12-3), libxinerama1 (2:1.0.3-2), libxrender1 (1:0.9.4-2), libxxf86vm1 (1:1.0.2-1), zlib1g (1:1.2.3.3.dfsg-12)&lt;/code&gt;.&lt;br /&gt;And then I only extracted them (&lt;code&gt;for foo in *deb; do dpkg-deb -X $foo .; done&lt;/code&gt;), renamed lib and usr/lib to lib32 and usr/lib32 respectively, removed crud from usr/share, renamed the binary, manpage and menu entry to pose32, created a Makefile, ran &lt;code&gt;dh_make -n -c artistic -s -p pose32&lt;/code&gt;, edited debian/control a bit and finaly typed debuild and waited :).&lt;br /&gt;&lt;br /&gt;You still need pose-skins and a rom image.&lt;br /&gt;No, this version works, I see no reason to continually update it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-8068698075866302948?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://himdel.mine.nu/pose32_3.5_amd64.deb' title='pose (Palm Emulator) for amd64 debian / ubuntu'/><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/8068698075866302948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2008/10/pose-palm-emulator-for-amd64-debian.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/8068698075866302948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/8068698075866302948'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2008/10/pose-palm-emulator-for-amd64-debian.html' title='pose (Palm Emulator) for amd64 debian / ubuntu'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-4957971886496841903</id><published>2007-08-08T20:13:00.002Z</published><updated>2009-04-25T02:39:57.121Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='claws syplheed mail linux patch trayicon'/><title type='text'>claws-mail trayicon patch</title><content type='html'>My mailer is claws-mail (formerly known as sylpheed-claws, a fork of sylpheed) and I love it.&lt;br /&gt;But there's one thing I miss: I can't make the trayicon plugin count only messages in the folders I want instead of all folders. (So it'd tell me about new messages in inbox + important but not in newsgroups and spam.)&lt;br /&gt;&lt;br /&gt;Well, here's a quick and dirty proto patch for 2.10.0. The folder names are hardcoded into trayicon.c and necesary changes were made to folder.c . It works for me but of course I should pass a list of folders including paths instead of just a string like "folder1 folder2 ...folderN" and there should be a way to change the folders in the GUI. I'll do it later.&lt;br /&gt;&lt;br /&gt;&lt;a id="clawspatchbtn" href="#clawspatchbtn" onclick="javascript:document.getElementById('clawspatchsrc').style.display = 'block';"&gt;-- see claws-mail-2.10.0.trayicon.patch --&lt;/a&gt;&lt;br /&gt;&lt;pre id="clawspatchsrc" style="display:none"&gt;diff -Naur claws-mail-2.10.0/src/folder.c claws-mail-2.10.0.trayicon/src/folder.c&lt;br /&gt;--- claws-mail-2.10.0/src/folder.c 2007-07-02 08:32:16.000000000 +0000&lt;br /&gt;+++ claws-mail-2.10.0.trayicon/src/folder.c 2007-08-08 19:54:21.000000000 +0000&lt;br /&gt;@@ -967,6 +967,17 @@&lt;br /&gt;return retval;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;+struct PartialMsgCount&lt;br /&gt;+{&lt;br /&gt;+ guint new_msgs;&lt;br /&gt;+ guint unread_msgs;&lt;br /&gt;+ guint unreadmarked_msgs;&lt;br /&gt;+ guint marked_msgs;&lt;br /&gt;+ guint total_msgs;&lt;br /&gt;+ char *folders;&lt;br /&gt;+};&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;struct TotalMsgCount&lt;br /&gt;{&lt;br /&gt;guint new_msgs;&lt;br /&gt;@@ -1016,6 +1027,23 @@&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;+static void folder_count_partial_msgs_func(FolderItem *item, gpointer data)&lt;br /&gt;+{&lt;br /&gt;+ struct PartialMsgCount *count = (struct PartialMsgCount *)data;&lt;br /&gt;+ char *s = strstr(count-&gt;folders, item-&gt;name);&lt;br /&gt;+ if (!s)&lt;br /&gt;+  return;&lt;br /&gt;+&lt;br /&gt;+ if (((s == count-&gt;folders) || (*(s - 1) == ' '))&lt;br /&gt;+  &amp;&amp; ((s + strlen(s) == count-&gt;folders + strlen(count-&gt;folders)) || (*(s + 1) == ' '))) {&lt;br /&gt;+  count-&gt;new_msgs += item-&gt;new_msgs;&lt;br /&gt;+  count-&gt;unread_msgs += item-&gt;unread_msgs;&lt;br /&gt;+  count-&gt;unreadmarked_msgs += item-&gt;unreadmarked_msgs;&lt;br /&gt;+  count-&gt;marked_msgs += item-&gt;marked_msgs;&lt;br /&gt;+  count-&gt;total_msgs += item-&gt;total_msgs;&lt;br /&gt;+ }&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt;static void folder_count_total_msgs_func(FolderItem *item, gpointer data)&lt;br /&gt;{&lt;br /&gt;struct TotalMsgCount *count = (struct TotalMsgCount *)data;&lt;br /&gt;@@ -1134,6 +1162,26 @@&lt;br /&gt;return ret;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;+void folder_count_partial_msgs(guint *new_msgs, guint *unread_msgs, &lt;br /&gt;+        guint *unreadmarked_msgs, guint *marked_msgs,&lt;br /&gt;+        guint *total_msgs, char *folders)&lt;br /&gt;+{&lt;br /&gt;+ struct PartialMsgCount count;&lt;br /&gt;+&lt;br /&gt;+ count.new_msgs = count.unread_msgs = count.unreadmarked_msgs = count.total_msgs = 0;&lt;br /&gt;+ count.folders = folders;&lt;br /&gt;+&lt;br /&gt;+ debug_print("Counting total number of messages...\n");&lt;br /&gt;+&lt;br /&gt;+ folder_func_to_all_folders(folder_count_partial_msgs_func, &amp;count);&lt;br /&gt;+&lt;br /&gt;+ *new_msgs = count.new_msgs;&lt;br /&gt;+ *unread_msgs = count.unread_msgs;&lt;br /&gt;+ *unreadmarked_msgs = count.unreadmarked_msgs;&lt;br /&gt;+ *marked_msgs = count.marked_msgs;&lt;br /&gt;+ *total_msgs = count.total_msgs;&lt;br /&gt;+}&lt;br /&gt;+&lt;br /&gt;void folder_count_total_msgs(guint *new_msgs, guint *unread_msgs, &lt;br /&gt;guint *unreadmarked_msgs, guint *marked_msgs,&lt;br /&gt;guint *total_msgs)&lt;br /&gt;diff -Naur claws-mail-2.10.0/src/plugins/trayicon/trayicon.c claws-mail-2.10.0.trayicon/src/plugins/trayicon/trayicon.c&lt;br /&gt;--- claws-mail-2.10.0/src/plugins/trayicon/trayicon.c 2007-07-02 08:32:20.000000000 +0000&lt;br /&gt;+++ claws-mail-2.10.0.trayicon/src/plugins/trayicon/trayicon.c 2007-08-08 19:54:27.000000000 +0000&lt;br /&gt;@@ -197,8 +197,9 @@&lt;br /&gt;guint new, unread, unreadmarked, marked, total;&lt;br /&gt;gchar *buf;&lt;br /&gt;TrayIconType icontype = TRAYICON_NOTHING;&lt;br /&gt;-&lt;br /&gt;- folder_count_total_msgs(&amp;new, &amp;unread, &amp;unreadmarked, &amp;marked, &amp;total);&lt;br /&gt;+ &lt;br /&gt;+ folder_count_partial_msgs(&amp;new, &amp;unread, &amp;unreadmarked, &amp;marked, &amp;total, "inbox INBOX");&lt;br /&gt;+ //folder_count_total_msgs(&amp;new, &amp;unread, &amp;unreadmarked, &amp;marked, &amp;total);&lt;br /&gt;if (removed_item) {&lt;br /&gt;total -= removed_item-&gt;total_msgs;&lt;br /&gt;new -= removed_item-&gt;new_msgs;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;EDIT: As of claws-3.something, vanilla claws has this option in the menu, so the patch is no longer needed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-4957971886496841903?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/4957971886496841903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2007/08/claws-mail-trayicon-patch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/4957971886496841903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/4957971886496841903'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2007/08/claws-mail-trayicon-patch.html' title='claws-mail trayicon patch'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-7112971898352993190</id><published>2007-08-08T18:21:00.001Z</published><updated>2007-08-08T22:01:40.113Z</updated><title type='text'>bSPLORKT</title><content type='html'>Uh, long time no C. Sorry.&lt;br /&gt;So what happened, I passed most of my exams (except for PV168:the Java seminar (I didn't have time to do the project) and MB001:Analysis 2 (all of the slot collided with IB005 which I had to pass (and did))), then went to a family holiday (or "holiday"?) on Elba.&lt;br /&gt;So, if you want to check out the photos, see &lt;a href="http://picasaweb.google.com/himdel/Elba2007"&gt;himdel's picasaweb gallery&lt;/a&gt;.&lt;br /&gt;And when I got back, I started to work, in &lt;a href="http://www.solnet.cz"&gt;soLNet&lt;/a&gt;. So far, I like it a lot.&lt;br /&gt;&lt;br /&gt;And about all my other little projects, well, tell ya later.&lt;br /&gt;&lt;br /&gt;But there's something you SHOULD see:&lt;br /&gt;*TADA*&lt;br /&gt;mpl, a mplayer wrapper .. written in Ruby, needs just mplayer in PATH&lt;br /&gt;&lt;br /&gt;What's so cool about it?&lt;br /&gt;* mpl without params does "mplayer *"&lt;br /&gt;* mpl 1x01 does really "mplayer 1x01-TheFirstEpisode.ext" when 1x01 doesn't exist&lt;br /&gt;* mpl folder/1x01 works too, folder must exist&lt;br /&gt;* mpl folder doesn't work yet&lt;br /&gt;* for a list of existing files, the behaviour is identical to mplayer's, mpl -fs *.avi does "mplayer -fs *.avi"&lt;br /&gt;* mpl -R sorts the files randomly (all other -options are passed to mplayer)&lt;br /&gt;* mpl first separates options and files, checks all the files to perform aforementioned substitutions, then runs "mplayer @options @files"&lt;br /&gt;&lt;br /&gt;&lt;a id="mplrbbtn" href="#mplrbbtn" onclick="javascript:document.getElementById('mplrbsrc').style.display = 'block';"&gt;-- see mpl.rb --&lt;/a&gt;&lt;br /&gt;&lt;pre id="mplrbsrc" style="display:none"&gt;&lt;br /&gt;#!/usr/bin/ruby&lt;br /&gt;&lt;br /&gt;# params:&lt;br /&gt;# -R --random randomize files&lt;br /&gt;&lt;br /&gt;# does itcrowd/1x01 =&gt; itcrow/*1x01* conversion&lt;br /&gt;#include himdel.blogspot.com&lt;br /&gt;&lt;br /&gt;def split_ary(ary)&lt;br /&gt; a = []&lt;br /&gt; b = []&lt;br /&gt; c = false&lt;br /&gt; ary.each do |i|&lt;br /&gt;  next if i == '-'&lt;br /&gt;  if i == '--' then&lt;br /&gt;   c = true&lt;br /&gt;   next&lt;br /&gt;  end&lt;br /&gt;  a &lt;&lt; i if c or not (i =~ /^-/)&lt;br /&gt;  b &lt;&lt; i if (not c) and (i =~ /^-/)&lt;br /&gt; end&lt;br /&gt; [a, b]&lt;br /&gt;end&lt;br /&gt;(files, opts) = split_ary(ARGV)&lt;br /&gt;&lt;br /&gt;randomize = ((opts.include? "-R") or (opts.include? "--random"))&lt;br /&gt;opts.reject! { |x| ["-R", "--random"].include? x }&lt;br /&gt;&lt;br /&gt;def snd_save&lt;br /&gt; @play_state = `mpc | tail -n2 | head -n1`.chomp.sub(/^\s*\[(.*)\].*$/, '\1')&lt;br /&gt; @volume = `mpc | tail -n1`.chomp.sub(/^.*volume:\s*([0-9]*).*$/, '\1')&lt;br /&gt; `mpc toggle` if @play_state == "playing"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def snd_restore&lt;br /&gt; `mpc volume #{@volume}`&lt;br /&gt; `mpc toggle` if @play_state == "playing"&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;def mplayer( a, b )&lt;br /&gt; system("mplayer", *(a + b))&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;if files.empty? then&lt;br /&gt; files = Dir["*"]&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;files.map! do |fn|&lt;br /&gt; if File.exists? fn then&lt;br /&gt;  if File.directory? fn then&lt;br /&gt;   Dir[fn + "/*"].sort&lt;br /&gt;  else&lt;br /&gt;   fn&lt;br /&gt;  end&lt;br /&gt; else&lt;br /&gt;  dn = File.dirname fn&lt;br /&gt;  bn = File.basename fn&lt;br /&gt;  pt = "#{dn}/*#{bn}*"&lt;br /&gt;  if Dir[pt].empty? then&lt;br /&gt;   `locate "#{bn}"`.split(/\n/).sort&lt;br /&gt;  else&lt;br /&gt;   Dir[pt].sort&lt;br /&gt;  end&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;files.flatten!&lt;br /&gt;&lt;br /&gt;files.reject! do |fn|&lt;br /&gt; ext = fn.sub(/^.*(\.[^.]*)$/, '\1')&lt;br /&gt; if ext[0..0] != "." then&lt;br /&gt;  false&lt;br /&gt; else&lt;br /&gt;  ['sub', 'srt', 'txt', 'pdf', 'tgz', 'rb', 'pdf'].map{ |x| x.sub!(/^/, '.') }.include? ext&lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;files.uniq!&lt;br /&gt;&lt;br /&gt;class Array&lt;br /&gt; def shuffle!  &lt;br /&gt;  each_index do |i| &lt;br /&gt;   j = rand(length-i) + i&lt;br /&gt;   self[j], self[i] = self[i], self[j]  &lt;br /&gt;  end&lt;br /&gt; end&lt;br /&gt; &lt;br /&gt; def shuffle  &lt;br /&gt;  dup.shuffle!  &lt;br /&gt; end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;files.shuffle! if randomize&lt;br /&gt;&lt;br /&gt;snd_save&lt;br /&gt;mplayer(opts, files)&lt;br /&gt;snd_restore&lt;br /&gt;&lt;br /&gt;__END__&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;EDIT: dirs work, does locate on still not found anything&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-7112971898352993190?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/7112971898352993190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2007/08/bsplorkt.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/7112971898352993190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/7112971898352993190'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2007/08/bsplorkt.html' title='bSPLORKT'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-254073038915729399</id><published>2007-06-05T00:22:00.000Z</published><updated>2007-06-05T00:25:53.276Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='mpd'/><title type='text'>Sonata</title><content type='html'>Sonata (http://sonata.berlios.de/) is a gui mpd client. It's GTK, starts and closes to tray, shows notify on new song, downloading album art from the web, wheel on trayicon controls volume, and the opened interface is great too, much better than gmpc grids. In short, it's great!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-254073038915729399?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/254073038915729399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2007/06/sonata.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/254073038915729399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/254073038915729399'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2007/06/sonata.html' title='Sonata'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-1932266522246911888</id><published>2007-05-25T20:36:00.000Z</published><updated>2007-05-25T20:58:42.235Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='school'/><category scheme='http://www.blogger.com/atom/ns#' term='pb138'/><title type='text'>bib2xml progress</title><content type='html'>Allright, there's this course in my school, PB138 Moderní značkovací jazyky a jejich aplikace which basically deals with XML and the surrouning technologies. And it has team projects.&lt;br /&gt;&lt;br /&gt;Our team's project is called bib2xml, it's really something akin to http://bibtexml.sourceforge.net/ , that is, it's supposed to parse a BibTeX file and output a XML file with the same info. The next stage is to XSTL the XML into a XHTML output.&lt;br /&gt;&lt;br /&gt;Now I'm developing the first stage, the BibTeX to XML one and I'm proud to announce I hate Java. Oh, that and also that I'm almost done, just going to upload it to the repository!&lt;br /&gt;&lt;br /&gt;The BibTeX parser is easy enough, just a bunch of regular expressions really. The only ugly part in this version is that it reads the whole file into memory which is kinda evil, I should probably fix it sooner or later.&lt;br /&gt;The XML output is DOMmed :).&lt;br /&gt;&lt;br /&gt;As for the other parts, a XSD file to check the XML output against is currently being worked on, someone should also be working on the GUI a and the XML 2 XHTML transform (XSLT or XQuery).&lt;br /&gt;&lt;br /&gt;So, if you wanna check it out,&lt;br /&gt;svn co https://kore.fi.muni.cz:5443/repos/fi/pb138/2007/bib2xml&lt;br /&gt;Share and enjoy! :)&lt;br /&gt;(Well, actually, it's a school project so I have no idea whether we can actually choose the license. But you can definitely share the link ;).)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-1932266522246911888?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/1932266522246911888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2007/05/bib2xml-progress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/1932266522246911888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/1932266522246911888'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2007/05/bib2xml-progress.html' title='bib2xml progress'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-72412977772011297</id><published>2007-05-14T12:21:00.000Z</published><updated>2007-06-13T12:08:29.504Z</updated><title type='text'>TODO</title><content type='html'>Sorry for the delay, I'm too busy with school now to properly write anything. In fact, right now, I should be studying for my MB001 test this evening. &lt;br /&gt;&lt;br /&gt;check out changing date message headers in claws&lt;br /&gt;import himdel's log, unix time 1157500800 to 1158537600&lt;br /&gt;blog comixy&lt;br /&gt;gdeskcal + google cal&lt;br /&gt;pv168&lt;br /&gt;books&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-72412977772011297?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/72412977772011297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2007/05/todo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/72412977772011297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/72412977772011297'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2007/05/todo.html' title='TODO'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-930450549804780170</id><published>2007-05-09T22:33:00.000Z</published><updated>2007-05-09T22:49:21.680Z</updated><title type='text'>Google Reader</title><content type='html'>Google reader is a RSS feed aggregator, google style. That means it's AJAX, the UI is rather gmailish. Intuitive to use, easily integrated with Firefox and highly addictive. You can star messages, tag feeds into folders, share messages or tags, import lists of feeds, cool stuff. And best of all, I don't have to visit slashdot, root.cz, lwn, kerneltrap, comixes, blogs, etc. every day.&lt;br /&gt;Well, second best. I forgot about it automatically showing a play button (flash) for any podcasts, great way to listen to BBC.&lt;br /&gt;&lt;br /&gt;The UI for advanced stuff like maximizing the messages part of window is rather keyboard-centric ('u') but there is a greasemonkey script that adds a mouse button too if you prefer that. And this maximization is extremely useful for viewing wide webcomicses on a 1024x768 display.&lt;br /&gt;&lt;br /&gt;Now if I can only find a way to integrate gdeskcal with Google calendar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-930450549804780170?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.google.com/reader/view/' title='Google Reader'/><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/930450549804780170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2007/05/google-reader.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/930450549804780170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/930450549804780170'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2007/05/google-reader.html' title='Google Reader'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-1926337230828129326</id><published>2007-05-09T22:11:00.000Z</published><updated>2007-05-09T22:26:14.607Z</updated><title type='text'>trida - rss</title><content type='html'>K tridnimu foru ktere jsem napsal nekdy kolem maturity (v jednoduchem PHP, nad MySQL) a ktere tak nejak prubezne dotvoruji (umi odpovidani, oznacovani novych zprav, ruznobarevne designy, smajliky, vytvareni linku a mozna jeste neco; backup skript jiz ulozil 74MB dat, 1 denne od 2005-10-10), dnes jsem pridal RSS feed. Je to RSS 2.0, generovana php skriptem, zadne fancy funkce, proste cte z db a generuje rucne to xml. A guess what, funguje celkem pekne. Konecne mam nove zpravy v Google Readeru.&lt;br /&gt;&lt;br /&gt;Snad se nekdy dokopu i k narozkam, syntaxi pro formatovani, volitelnemu poctu zprav na stranku, ajaxu, smiley themes, loginu a tak.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-1926337230828129326?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/1926337230828129326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2007/05/trida-rss.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/1926337230828129326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/1926337230828129326'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2007/05/trida-rss.html' title='trida - rss'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-2968102904377311822</id><published>2007-05-09T21:40:00.000Z</published><updated>2007-05-09T21:56:15.892Z</updated><title type='text'>picasaweb and f-spot</title><content type='html'>I've tried out Picasa some time ago, I found it enjoyable but rather impractical, I usually know where my pictures are, not when. One feature that's great is that you can upload albums to Picasa Web Albums (http://picasaweb.google.com). I'd use Flickr (http://www.flickr.com) but hey, Yahoo things feel uncomfortable.&lt;br /&gt;I've just come from a trip to Italy so I wanted to upload some photos. Unfortunately, the current linux version of Picasa doesn't support this feature yet. After some googling I found F-Spot (http://www.f-spot.org) does. I've been meaing to give it a try anyway so I installed it.&lt;br /&gt;Now, I should mention I'm using fvwm-crystal as my window manager, no desktop manager, no gnome or kde stuff. Well, F-Spot crashed some time befor I installed all the necessary stuff like gnome keyring a dbus and figured out I have to run it with 'dbus-launch f-spot'. That way, it starts just fine. I used the --view interface since it's simpler and more closer to what I like, unfortunately it doesn't have any way to sort the files (I've found no such way in the non-view interface either) and because it runs the images through a filter (convert to jpg, resize), it uploaded the files with a randomish filename. No sorting on PicasaWeb either, then. (Before I got even there, I had to install the SVN version instead of the stable one since there was a change of protocol.)&lt;br /&gt;Being curious about C#, the language f-spot is written in, I decided to write a patch. Took a relatively short time, you can find the results at http://bugzilla.gnome.org/show_bug.cgi?id=437044 . I think I'm definitely going to play more with it. I should probably add a way to sort in the --view UI.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-2968102904377311822?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://picasaweb.google.com/himdel/Rome2007' title='picasaweb and f-spot'/><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/2968102904377311822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2007/05/picasaweb-and-f-spot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/2968102904377311822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/2968102904377311822'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2007/05/picasaweb-and-f-spot.html' title='picasaweb and f-spot'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-4857377070772146000</id><published>2007-05-08T16:00:00.001Z</published><updated>2007-05-09T22:02:31.804Z</updated><title type='text'>last.fm</title><content type='html'>Since I'm on the net all the time anyway, I've decided to give last.fm another try. I don't really like the last.fm default player for linux, I prefer mpd. So I installed lastmp (and lastfmsubitd as a dependency), version 0.35-2 (debian testing). Guess what, it works! So now I have my music online. But I really hate the weekly updating of chars, I'd like the weekly chart to simply show the music for last 7 days. Aside from that, it's great, rather comfortable to know what you're listening to. (No irony intended.)&lt;br /&gt;I guess now I should id3tag my music :).&lt;br /&gt;&lt;br /&gt;Anyway, I guess I'm starting to integrate more into the internet community. First YouTube, then Blogger and now this. Next thing, I'm gonna be using picasaweb and google reader! ... oh, wait, I do :).&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.last.fm/user/himdel/?chartstyle=basicrt10"&gt;&lt;img src="http://imagegen.last.fm/basicrt10/recenttracks/himdel.gif" alt="himdel's Profile Page" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.last.fm/user/himdel/?chartstyle=basic10"&gt;&lt;img src="http://imagegen.last.fm/basic10/artists/himdel.gif" border="0" alt="himdel's Profile Page" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-4857377070772146000?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.last.fm/user/himdel/' title='last.fm'/><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/4857377070772146000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2007/05/lastfm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/4857377070772146000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/4857377070772146000'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2007/05/lastfm.html' title='last.fm'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8965660.post-6217879135217102602</id><published>2007-05-02T17:03:00.000Z</published><updated>2007-05-09T21:37:41.251Z</updated><title type='text'>welcome</title><content type='html'>Greetings. As this is my first post, a self-introduction may be in order. I'm a 2nd year CS student, at FI MU, Brno, Czech Republic. I like languages, both programming and human (or  even sentinent-beingesque(?)  ones). I love C, Perl and Ruby, C++ and haskell are fine too, I'm usually rather unconfortable around Java and I've found C# rather easy to use even without knowing anything about it. Delphi is sometimes used too but I think the pascal syntax is rather clumsy and the components too rigid.&lt;br /&gt;My favourite book genre is sci-fi &amp; fantasy, I love Star Trek books, definitely Terry Pratchett, Douglas Adams, Neil Gaiman &amp;amp; JRRT, but my most favourite author is propably &lt;span style=""&gt;村上春樹 for I'm getting to know the japanese author literature now (well, only &lt;/span&gt;&lt;span style=""&gt;村上春樹&lt;/span&gt;&lt;span style=""&gt; and Kazuo Ishiguro so far).&lt;br /&gt;Speaking of Star Trek, I enjoy it immensely in every form, I grew up on TNG &amp;amp; VOY, later fell in love with DS9. I think ENT is cool, it kinda brings hope somehow. Recently I've seen Babylon 5, wel, it's great!&lt;br /&gt;Ok, that's probably more thant enough, oh, only one thing: I write this in English because, well, no language is more widely understood. Be warned, though: some post may contain czech, spanish, japanese or klingon text, some may even be completely in the language. Or even some other.&lt;br /&gt;&lt;/span&gt;Uh, and everybody calls me himdel, the origin is Sindarin (y'know J.R.R. Tolkien - language of the Elves that stayed in the MiddleEarth and did not go to Valinor) and it means cold terror. Long story, don't ask. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8965660-6217879135217102602?l=himdel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://himdel.blogspot.com/feeds/6217879135217102602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://himdel.blogspot.com/2007/05/back.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/6217879135217102602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8965660/posts/default/6217879135217102602'/><link rel='alternate' type='text/html' href='http://himdel.blogspot.com/2007/05/back.html' title='welcome'/><author><name>himdel</name><uri>http://www.blogger.com/profile/02830450741427743682</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_DQpqZxZDWI4/SRYivf0t7WI/AAAAAAAAKrM/AJ6yXFRGb78/S220/.172433.jpg'/></author><thr:total>0</thr:total></entry></feed>
