<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>rooter</title>
	<atom:link href="http://rooter.kyberian.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://rooter.kyberian.net</link>
	<description>my infinity</description>
	<lastBuildDate>Sun, 21 Mar 2010 14:56:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Click Modular Router &#8211; syntax highlight w vim</title>
		<link>http://rooter.kyberian.net/?p=94</link>
		<comments>http://rooter.kyberian.net/?p=94#comments</comments>
		<pubDate>Sun, 21 Mar 2010 14:39:38 +0000</pubDate>
		<dc:creator>Maciej Urbański</dc:creator>
				<category><![CDATA[Bez kategorii]]></category>
		<category><![CDATA[Click Modular Router]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://rooter.kyberian.net/?p=94</guid>
		<description><![CDATA[Ostatnio miałem przyjemność zapoznać się z Click&#8216;iem. Dla osób które jeszcze go nie znają, a chcą poznać polecam stronę projektu oraz parę lekcji i omówienie. Niestety jedyne narzędzie które zna jego składnie to clicky &#8211; także pisząc w terminalu jesteśmy pozbawieni udogodnienia podświetlania składni. Także mając chwilę wolnego czasu napisałem prosty syntax highlight dla vim&#8216;a, [...]]]></description>
			<content:encoded><![CDATA[<p>Ostatnio miałem przyjemność zapoznać się z <a href="http://read.cs.ucla.edu/click/click">Click</a>&#8216;iem. Dla osób które jeszcze go nie znają, a chcą poznać polecam <a href="http://read.cs.ucla.edu/click/">stronę projektu</a> oraz <a href="http://www.pats.ua.ac.be/software/click">parę lekcji i omówienie</a>.<br />
Niestety jedyne narzędzie które zna jego składnie to <a href="http://read.cs.ucla.edu/click/clicky">clicky</a> &#8211; także pisząc w terminalu jesteśmy pozbawieni udogodnienia podświetlania składni.</p>
<p>Także mając chwilę wolnego czasu napisałem prosty syntax highlight dla <a href="http://www.vim.org/">vim</a>&#8216;a, oto efekt:<br />
<div id="attachment_95" class="wp-caption alignnone" style="width: 571px"><a href="http://rooter.kyberian.net/wp-content/uploads/2010/03/clicksyntaxvim_4b9ba3ac855b4.jpg"><img src="http://rooter.kyberian.net/wp-content/uploads/2010/03/clicksyntaxvim_4b9ba3ac855b4.jpg" alt="skrypt Click" title="clicksyntaxvim_4b9ba3ac855b4" width="561" height="336" class="size-full wp-image-95" /></a><p class="wp-caption-text">skrypt Click</p></div></p>
<p>Tutaj można znaleźć sam plik z podświetlaniem: </p>
<p>A to przykładowa konfiguracja vim (~/.vimrc): <a href='http://rooter.kyberian.net/wp-content/uploads/2010/03/clicksyntax.vim'>clicksyntax.vim</a><br />
<code><br />
map <F5> :!click-check % <cr><br />
map <F6> :!click-install % <cr><br />
map <F7> :!click-uninstall <cr> </p>
<p>au BufRead,BufNewFile *.click set filetype=click<br />
au! Syntax click source ~/.vim/clicksyntax.vim<br />
<code></p>
]]></content:encoded>
			<wfw:commentRss>http://rooter.kyberian.net/?feed=rss2&amp;p=94</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenWrt &#8211; bootfromexternalmedia</title>
		<link>http://rooter.kyberian.net/?p=64</link>
		<comments>http://rooter.kyberian.net/?p=64#comments</comments>
		<pubDate>Tue, 08 Dec 2009 14:02:17 +0000</pubDate>
		<dc:creator>Maciej Urbański</dc:creator>
				<category><![CDATA[skrypty]]></category>
		<category><![CDATA[dir-320]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[skrypt]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://rooter.kyberian.net/?p=64</guid>
		<description><![CDATA[Dużym problemem na routerach z OpenWrt jest ograniczona ilość pamięci, na szczęście dzięki sdmod tudzież usbstorage &#8211; możemy łatwo tą pamięć rozszerzyć. To co pozostało, to umożliwienie instalacji pakietów na zewnętrznym nośniku. Można to osiągnąć przy pomocy funkcjonalności opkg, lecz same pakiety są często niedostosowane do instalacji w innych lokalizacjach niż / (root). Dlatego najprostszym [...]]]></description>
			<content:encoded><![CDATA[<p>Dużym problemem na routerach z OpenWrt jest ograniczona ilość pamięci, na szczęście dzięki sdmod tudzież usbstorage &#8211; możemy łatwo tą pamięć rozszerzyć. To co pozostało, to umożliwienie instalacji pakietów na zewnętrznym nośniku. Można to osiągnąć przy pomocy funkcjonalności <a href="http://wiki.openmoko.org/wiki/Opkg">opkg</a>, lecz same pakiety są często niedostosowane do instalacji w innych lokalizacjach niż / (root). Dlatego najprostszym wyjściem jest przeniesienie całego &#8222;/&#8221; na zewnętrzny nośnik.</p>
<p><span id="more-64"></span></p>
<p>Instrukcję do przeprowadzenia tej operacji można znaleźć na <a href="http://nuwiki.openwrt.org/oldwiki/openwrtdocs/kamikazeconfiguration/packagesonexternalmediahowto">openwrt wiki</a>.<br />
Znajdują się tam pliku konfiguracyjne, które do mojej wersji trzeba zmodyfikować &#8211; parametr enabled jest teraz liczbą, nie stringiem (zamieniamy &#8222;option enabled &#8217;1&#8242;&#8221; na &#8222;option enabled 1&#8243;).</p>
<p>0. Tworzenie pliku konfiguracyjnego<br />
konfiguracje umieszczamy w /etc/config/bootfromexternalmedia<br />
Przykładowy config dla dir-320, dla pendrive&#8217;a podpiętego pod USB</p>
<pre class="brush: bash;">
config bootfromexternalmedia
	option target   '/mnt/sda1'
	option device   '/dev/sda1'
	option modules  'scsi_mod usbcore jbd ext3 sd_mod ehci-hcd ohci-hcd usb-storage'
	option sleep    5
	option enabled  1
</pre>
<p>Nową opcją (w stosunku do pierwotnej wersji skryptu) jest sleep która specyfikuje liczbę sekund którą należy odczekać po załadowaniu modułów (konieczne dla nośników podpinanych pod usb).</p>
<p>1. Formatowanie i montowanie<br />
Należy szczególną uwagę zwrócić na nazwę urządzenia (u mnie /dev/sda1), zależy ona od wielu czynników.</p>
<pre class="brush: bash;">
ipkg install e2fsprogs
mkfs.ext3 /dev/sda1 # samo formatowanie polecam przeprowadzić na innym systemie, by nie zajmować miejsca na routerze
ipkg install kmod-fs-ext3
mount -t ext3 /dev/sda1 /mnt/
</pre>
<p>2. Kopiowanie plików na nowy root </p>
<pre class="brush: bash;">
mkdir -p /tmp/root
mount -o bind /rom /tmp/root
cp /tmp/root/* /mnt -a
sync
umount /tmp/root
umount /mnt
</pre>
<p>3. Zainstalowanie nowego skryptu init<br />
(/sbin/init, to domyślnie symlink do busybox)<br />
Należy go nadpisać nowym skryptem i zmienić prawa dostępu.</p>
<pre class="brush: bash;">
rm -f /sbin/init
wget http://kyberian.jumpingcrab.com/hg/openwrt_custom/raw-file/tip/external_boot.sh -O  -|tr '\r' ' ' &gt; /sbin/init
chmod a+x /sbin/init
</pre>
<p>Po restarcie jeśli wszystko zostało poprawnie skonfigurowane w pliku /etc/config/bootfromexternalmedia zostanie uruchomiony router już z nowym /<br />
Skrypt przewiduje sytuacje &#8222;awaryjne&#8221;:<br />
- brak pliku konfiguracyjnego lub enabled ustawione na 0 (lub tez brak tej linii) [skrypt przed moją modyfikacją zdawał się te warunki niepoprawnie sprawdzać]<br />
- nie udało się przejść na zewnętrzny nośnik<br />
w obu sytuacjach odpala defaultowy init.</p>
<p>Podejście tu przedstawione umożliwia konfiguracje niezależną dla routera z i bez zewnętrznego nośnika. Dla innych rozwiązań polecam zajrzeć na <a href="http://nuwiki.openwrt.org/oldwiki/openwrtdocs/kamikazeconfiguration/bootfromexternalmediahowto">openwrt wiki</a>.</p>
<p>Udostępniam moją zmodyfikowaną wersję skryptu (wraz z odnośnikami do wersji oryginalnych).</p>
<pre class="brush: bash;">
#!/bin/sh
#
# External boot script, for original please refer to:
# http://nuwiki.openwrt.org/oldwiki/openwrtdocs/kamikazeconfiguration/packagesonexternalmediahowto
# https://forum.openwrt.org/viewtopic.php?id=22298
#
# Note: Some cosmetic changes, also config parametr &quot;enabled&quot; is handled properly
#       config must be changed! from &quot;option enabled '1'&quot; to &quot;option enabled 1&quot;
#       also &quot;sleep&quot; was added (wait time after insmod - needed for usbstorage)

log(){
  echo &quot;EXTERNAL BOOT: $*&quot;
}

run_init(){
  log &quot;Run busybox init&quot;
  exec /bin/busybox init
}

. /etc/functions.sh

boot_config(){
  local cfg=&quot;$1&quot;

  local &quot;target&quot; &quot;device&quot; &quot;gpiomask&quot; &quot;modules&quot; &quot;sleep&quot; &quot;enabled&quot; &quot;oldroot&quot;
  config_get      &quot;target&quot;   &quot;$cfg&quot; &quot;target&quot;
  config_get      &quot;device&quot;   &quot;$cfg&quot; &quot;device&quot;
  config_get      &quot;gpiomask&quot; &quot;$cfg&quot; &quot;gpiomask&quot;
  config_get      &quot;modules&quot;  &quot;$cfg&quot; &quot;modules&quot;
  config_get      &quot;sleep&quot;    &quot;$cfg&quot; &quot;sleep&quot;
  config_get      &quot;enabled&quot;  &quot;$cfg&quot; &quot;enabled&quot;
  config_get      &quot;oldroot&quot;  &quot;$cfg&quot; &quot;oldroot&quot; &quot;/mnt/oldroot&quot;

  [ 1 == &quot;$enabled&quot; ] &amp;&amp; {
          [ -z &quot;$target&quot; -o -z &quot;$device&quot; ] &amp;&amp; {
                  log &quot;Undefined device or mount point&quot;
                  run_init
          }
          [ -n &quot;$gpiomask&quot; ] &amp;&amp; {
                  log &quot;Appling gpiomask $gpiomask&quot;
                  echo &quot;$gpiomask&quot; &gt; /proc/diag/gpiomask
          }

          log &quot;Loading modules: $modules&quot;
          for module in $modules; do
                  insmod $module
          done

          [ &quot;$sleep&quot; -gt 0 ] &amp;&amp; {
                  log &quot;Waiting for $sleep seconds&quot;
                  sleep $sleep
          }

          for i in `seq 1 5`; do
                  log &quot;Mount: $device on: $target (try $i)&quot;
                  if mount -o rw &quot;$device&quot; $target; then
                          break
                  else
                          log &quot;FAILED to mount $device&quot;
                          sleep 1
                  fi
          done

          [ -x $target/sbin/init ] &amp;&amp; {
                  log &quot;Run firstboot&quot;
                  . $target/sbin/firstboot
                  log &quot;Pivot Root&quot;
                  #$target/sbin/pivot_root $target $oldroot
                  #call func pivot from firstboot
                  mkdir -p $target$oldroot
                  pivot $target $oldroot
          }

          run_init
  }
  [ 1 != &quot;$enabled&quot; ] &amp;&amp; log &quot; DISABLED! &quot;

}

config_load bootfromexternalmedia
[ &quot;$?&quot; != &quot;0&quot; ] &amp;&amp; log &quot;Failed to load config&quot;

config_foreach boot_config bootfromexternalmedia

run_init
</pre>
<p>Dla najnowszej wersji mojej modyfikacji zapraszam do <a href="http://kyberian.jumpingcrab.com/hg/openwrt_custom/file/tip/external_boot.sh">mojego repozytorium</a> .</p>
]]></content:encoded>
			<wfw:commentRss>http://rooter.kyberian.net/?feed=rss2&amp;p=64</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatyczne pobieranie tapet z National Geographic</title>
		<link>http://rooter.kyberian.net/?p=53</link>
		<comments>http://rooter.kyberian.net/?p=53#comments</comments>
		<pubDate>Fri, 04 Dec 2009 00:03:55 +0000</pubDate>
		<dc:creator>Maciej Urbański</dc:creator>
				<category><![CDATA[skrypty]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://rooter.kyberian.net/?p=53</guid>
		<description><![CDATA[Pierwsze co muszę napisać to link do oryginalnego pomysłodawcy . Jego rozwiązanie różniło się tym, że niestety linki były w nim zapisane na stałe i skrypt musiał być modyfikowany ręcznie dla każdej nowej partii tapet, co oczywiście jest zbędnym wysiłkiem. Moja alternatywa: #!/bin/bash base=&#34;http://ngm.nationalgeographic.com/&#34; urls=&#34;photo-contest/2009-wallpaper photo-contest/wallpaper wallpaper/download&#34; dir=NG-wallpapers #res - resolution - leave blank for [...]]]></description>
			<content:encoded><![CDATA[<p>Pierwsze co muszę napisać to link do <a href="http://www.webupd8.org/2009/11/automatically-download-all-wallpapers.html">oryginalnego pomysłodawcy</a> . Jego rozwiązanie różniło się tym, że niestety linki były w nim zapisane na stałe i skrypt musiał być modyfikowany ręcznie dla każdej nowej partii tapet, co oczywiście jest zbędnym wysiłkiem.</p>
<p><span id="more-53"></span></p>
<p>Moja alternatywa:</p>
<pre class="brush: bash;">
#!/bin/bash

base=&quot;http://ngm.nationalgeographic.com/&quot;
urls=&quot;photo-contest/2009-wallpaper photo-contest/wallpaper wallpaper/download&quot;

dir=NG-wallpapers

#res - resolution - leave blank for all
res=&quot;&quot;
#res=&quot;1024&quot;
#res=&quot;1280&quot;
#res=&quot;1600&quot;
#etc

UA=Mozilla

mkdir -p &quot;${dir}&quot;
cd &quot;${dir}&quot;
echo &quot;Entering \&quot;${dir}\&quot; directory..&quot; 

echo -n &gt; .xmllist
echo -n &gt; .imglist

echo &quot;Greping xmls&quot;
for url in $urls
do
  wget -q -U &quot;$UA&quot; &quot;${base}${url}&quot; -O - |egrep -o '/.*\.xml' &gt;&gt; .xmllist
done

echo &quot;Downloading &quot; `wc -l .xmllist`
for url in `cat .xmllist `
do
  wget -q -U &quot;$UA&quot; &quot;${base}${url}&quot; -O - |tr '\r' '\n' |egrep -o '/.*\.jpe?g' &gt;&gt; .imglist
done

echo &quot;Downloading &quot; ` wc -l .imglist `
for url in `cat .imglist |egrep ${res}'\.jpe?g'`
do
  echo &quot;&gt;&gt;&gt; $url&quot;
  wget -q -U &quot;$UA&quot; -c &quot;${base}${url}&quot;
done
</pre>
<p>Do pobrania: <a href='http://rooter.kyberian.net/wp-content/uploads/2009/12/natgeo_auto.sh'>natgeo_auto</a></p>
<p>Korzysta się ze skryptu na własną odpowiedzialność.</p>
]]></content:encoded>
			<wfw:commentRss>http://rooter.kyberian.net/?feed=rss2&amp;p=53</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ustawianie baudrate dla pl2303 z Openwrt (Linux 2.4)</title>
		<link>http://rooter.kyberian.net/?p=42</link>
		<comments>http://rooter.kyberian.net/?p=42#comments</comments>
		<pubDate>Sat, 26 Sep 2009 13:05:31 +0000</pubDate>
		<dc:creator>Maciej Urbański</dc:creator>
				<category><![CDATA[Bez kategorii]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux 2.4]]></category>
		<category><![CDATA[openwrt]]></category>
		<category><![CDATA[patch]]></category>

		<guid isPermaLink="false">http://rooter.kyberian.net/?p=42</guid>
		<description><![CDATA[1. Powód Problem zaistniał dla mnie przy próbie odczytu danych bezpośrednio z odbiornika GPS (NMEA strings). Mógłbym wykorzystać gpsd który by zapewne zadziałał, lecz po co mi marnować zasoby kiedy mogę wykorzystać wbudowane w busybox awk. 2. Problem Mój adapter GPS (chipset SKYTRAQ Venus 6), pracuje jedynie na określonym baudrate (według producenta 4800/9600/19200/38400, dla mnie [...]]]></description>
			<content:encoded><![CDATA[<p><strong>1. Powód</strong><br />
Problem zaistniał dla mnie przy próbie odczytu danych bezpośrednio z odbiornika GPS (NMEA strings). Mógłbym wykorzystać gpsd który by zapewne zadziałał, lecz po co mi marnować zasoby kiedy mogę wykorzystać wbudowane w busybox awk.<br />
<strong>2. Problem</strong><br />
Mój adapter GPS (chipset SKYTRAQ Venus 6), pracuje jedynie na określonym baudrate (według producenta 4800/9600/19200/38400, dla mnie działał tylko z 38400). Także by odczytać dane z niego muszę ustawić to na porcie.<br />
Zazwyczaj można to osiągnąć przy pomocy <em>setserial</em>.</p>
<pre class="brush: bash;">setserial /dev/tts/0 baud_base 38400
</pre>
<p>Lecz, gdy próbuje przeprowadzić tą operacje otrzymuje błąd</p>
<pre class="brush: bash;">setserial /dev/usb/tts/0  baud_base 38400
Cannot get serial info: Invalid argument</pre>
<p><span id="more-42"></span><br />
Szukając w sieci odpowiedzi natrafiam na osoby z podobnym problemem, lecz bez pomysłów na rozwiązanie. Problem wynika podobno już z samej natury sterownika, lecz tutaj już bardziej zainteresowany by działało niż rozwiązaniem zagadki napisałem prosty patch zamieszczony poniżej.</p>
<p><strong>3. Rozwiązanie</strong></p>
<p><a href='http://rooter.kyberian.net/wp-content/uploads/2009/09/pl2303baudhack.patch'>pl2303baudhack</a></p>
<pre class="brush: diff;">
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -59,6 +59,8 @@
static int debug;
#endif

+static int cbaud = 0;
+
#include &quot;usb-serial.h&quot;
#include &quot;pl2303.h&quot;

@@ -572,7 +574,7 @@
dbg(&quot;%s - data bits = %d&quot;, __FUNCTION__, buf[6]);
}

-	baud = tty_get_baud_rate(port-&amp;gt;tty);
+	baud = (cbaud)?cbaud:tty_get_baud_rate(port-&amp;gt;tty);
dbg(&quot;%s - baud = %d&quot;, __FUNCTION__, baud);
if (baud) {
buf[0] = baud &amp;amp; 0xff;
@@ -1254,3 +1256,6 @@
MODULE_PARM(debug, &quot;i&quot;);
MODULE_PARM_DESC(debug, &quot;Debug enabled or not&quot;);

+MODULE_PARM(cbaud, &quot;i&quot;);
+MODULE_PARM_DESC(cbaud, &quot;Set baud rate&quot;);
+
</pre>
<p>Po odpowiednim zaaplikowaniu patcha (dla openwrt będzie to przykładowo umieszczenie go w katalogu target/linux/brcm-2.4/patches/ , i zmiana nazwy na jakaś poprzedzoną dużą liczbą np. target/linux/brcm-2.4/patches/120-pl2303_baudhack.patch, robimy jeszcze make clean &amp;&amp; make i gotowe ), już na systemie docelowym przeprowadzamy następujące operacje:</p>
<pre class="brush: bash;">rmmod pl2303 #upewniamy sie ze nie ma już załadowanego modułu
insmod pl2303.o cbaud=38400  # gdzie cbaud to baudrate który chcemy mieć, jeśli nie ustawiony będzie zachowywał się jak driver bez patcha</pre>
<p><strong>4. Uwagi</strong><br />
Problem występuje na jądrze 2.4 &#8211; podczas prób z 2.6 go nie zaobserwowałem. Moje zmiany nie są objęte żadna gwarancją i używa się ich na własną odpowiedzialność. Testowano na jądrze Linux OpenWrt 2.4.37.5 #3 Thu Sep 24 02:10:59 CEST 2009 mips unknown.<br />
Oryginalny plik <a href='http://rooter.kyberian.net/wp-content/uploads/2009/09/pl2303.c'>pl2303.c</a></p>
<p>EDIT[09.12.2009]<br />
Alternatywna metoda, która &#8222;nie psuje&#8221; pl2303 to</p>
<pre class="brush: bash;">
stty -F /dev/ttyUSB0  raw speed 38400 -clocal cs8 -parenb -cstopb
</pre>
<p>zdaje się być właściwą. Zazwyczaj też sam program korzystający z tty powinien go ustawić odpowiednio. W prekompilowanym OpenWrt dostępnym na oficjalnej stronie busybox nie zawiera stty, także i ta metoda zmusza nas niestety do kompilacji ze źródeł pakietu.</p>
]]></content:encoded>
			<wfw:commentRss>http://rooter.kyberian.net/?feed=rss2&amp;p=42</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bot/data miner do popularnego polskiego mmorpg</title>
		<link>http://rooter.kyberian.net/?p=23</link>
		<comments>http://rooter.kyberian.net/?p=23#comments</comments>
		<pubDate>Thu, 06 Aug 2009 23:55:08 +0000</pubDate>
		<dc:creator>Maciej Urbański</dc:creator>
				<category><![CDATA[Bez kategorii]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[marmar]]></category>
		<category><![CDATA[mechanize]]></category>
		<category><![CDATA[mmorpg]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[skrypt]]></category>

		<guid isPermaLink="false">http://rooter.kyberian.net/?p=23</guid>
		<description><![CDATA[Całość napisana w pythonie (w ramach nauki języka). Prawdopodobnie z racji braku UI i tego, że sam bot jest nieskończony będzie on mało użyteczny dla zwykłego śmiertelnika, ale dla każdego z choć odrobiną znajomości pythona sprawa powinna być jasna po krótkiej analizie. Nazwy MMORPG nie poddaje ponieważ nadal używa wrażliwego na takie działania silnika. Kod [...]]]></description>
			<content:encoded><![CDATA[<p>Całość napisana w pythonie (w ramach nauki języka). Prawdopodobnie z racji braku UI i tego, że sam bot jest nieskończony będzie on mało użyteczny dla zwykłego śmiertelnika, ale dla każdego z choć odrobiną znajomości pythona sprawa powinna być jasna po krótkiej analizie.</p>
<p>Nazwy MMORPG nie poddaje ponieważ nadal używa wrażliwego na takie działania silnika.</p>
<p>Kod (licencja GPL) zamieszczony w paczce poniżej:</p>
<p><a href="http://rooter.kyberian.net/wp-content/uploads/2009/08/marmar.tar">marmar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rooter.kyberian.net/?feed=rss2&amp;p=23</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>angoolsh &#8211; angool.com w konsoli (bash/awk)</title>
		<link>http://rooter.kyberian.net/?p=16</link>
		<comments>http://rooter.kyberian.net/?p=16#comments</comments>
		<pubDate>Wed, 27 Aug 2008 23:28:37 +0000</pubDate>
		<dc:creator>Maciej Urbański</dc:creator>
				<category><![CDATA[skrypty]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[skrypt]]></category>
		<category><![CDATA[słownik]]></category>

		<guid isPermaLink="false">http://rooter.kyberian.net/?p=16</guid>
		<description><![CDATA[Słownik języka angielskiego jest czymś bez czego trudno się mi obyć. Niestety, aby skorzystać z najłatwiej dostępnej odmiany, słownika online, trzeba być wyposażony w przeglądarkę. Co gorsza to do tego z angool.com który najbardziej przypadł mi do gustu także flash! nie dość, że strasznie nie wygodnie się wprowadza w nim polskie znaki to o używaniu [...]]]></description>
			<content:encoded><![CDATA[<p>Słownik języka angielskiego jest czymś bez czego trudno się mi obyć. Niestety, aby skorzystać z najłatwiej dostępnej odmiany, słownika online, trzeba być wyposażony w przeglądarkę. Co gorsza to do tego z angool.com który najbardziej przypadł mi do gustu także flash! nie dość, że strasznie nie wygodnie się wprowadza w nim polskie znaki to o używaniu go w przeglądarce tekstowej można zapomnieć. Potrzeba matką wynalazków i o to naskrobałem w bash/awk skrypcik dla ułatwienia sobie życia.</p>
<p>Skrypt szkód nie wyrządzi nikomu, ale na pewno nie zawodny on nie jest. Zapraszam do korzytania i modyfikowania.</p>
<p>28/03/08 Teraz działa także w gdy mamy w konsoli UTF-8 &#8211; ale doszła kolejna zależność: iconv</p>
<p><a href="http://rooter.kyberian.net/wp-content/uploads/2009/08/angoolsh">angoolsh</a></p>
]]></content:encoded>
			<wfw:commentRss>http://rooter.kyberian.net/?feed=rss2&amp;p=16</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
