Ostatnio naszła mnie chęć na asciijump. Jednak system, który posiadam to FreeBSD 8, który po prostu nie chciał skompilować mi asciijump'a. Aczkolwiek po wymienieniu kilku maili z autorem programu, udało mi się go skompilować (wersję 1.0.2beta) ;)
Po pierwsze, wymagany jest SLang, który w portach znajduje się w /usr/ports/devel/libslang2. Po nabyciu tej biblioteki ściągamy asciijump (w wersji 1.0.2beta). Po rozpakowaniu otwieramy plik configure i od linijki nr 2413 zamieniamy fragment:
else
{ { echo "$asme:$LINENO: error: \"S-Lang library not found! (try install slang-devel)\"" >&5
echo "$asme: error: \"S-Lang library not found! (try install slang-devel)\"" >&2;}
{ (exit 1); exit 1; }; }
fi
na:
else
LIBS="-lslang -lcurses $LIBS"
fi
Teraz wystarczy odpalić configure. Jednak FreeBSD jak to FreeBSD, swoje pliki trzyma gdzie indziej, więc configure odpalamy w taki sposób: CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" ./configure --prefix=/usr/local
To tyle, potem za pomocą gmake kompilujemy asciijumpa i cieszymy się grą :)
Jak wiadomo Vista i jej pochodne mają syf zwany Aero Glass. Jest tak nieużyteczny, że postanowiłem opublikować poprawkę, która zamieni cały terminal PuTTY w Aero (widoczne na poniższym screenshocie, także o tym pisał Coffeeredev)

Taki efekt można otrzymać poprzez modyfikację źródeł PuTTy'iego.
#include <mmsystem.h>
Pod nim piszemy:
#include <dwmapi.h> static void extend_glass_frame(HWND);
case WM_CREATE:I zamieniamy na:
case WM_CREATE: case WM_DWMCOMPOSITIONCHANGED: extend_glass_frame(hwnd);
static void extend_glass_frame(HWND hwnd) { BOOL bEnabled = FALSE; HRESULT (WINAPI *pDwmIsCompositionEnabled)(BOOL*) = NULL; HRESULT (WINAPI *pDwmExtendFrameIntoClientArea)(HWND, MARGINS*) = NULL; HMODULE hmDwmapi = LoadLibrary("dwmapi.dll"); if (hmDwmapi) { pDwmIsCompositionEnabled = GetProcAddress(hmDwmapi, "DwmIsCompositionEnabled"); pDwmExtendFrameIntoClientArea = GetProcAddress(hmDwmapi, "DwmExtendFrameIntoClientArea"); } if (pDwmIsCompositionEnabled) { pDwmIsCompositionEnabled(&bEnabled); } if (bEnabled && pDwmExtendFrameIntoClientArea) { MARGINS margins = {-1, 0, 0, 0}; pDwmExtendFrameIntoClientArea(hwnd, &margins); } FreeLibrary(hmDwmapi); }
Viola! Teraz kompilujemy i cieszymy się z naszego PuTTY z obsługą Aero Glass ;)
Dla leniwych: skompilowana wersja PuTTY+ z poprawką dla Aero
Przed chwilą stworzyłem coś dla geeków, którzy wielbią grę Portal :-)
Idealne do stosowania razem z motdem - wypróbowane :D
Ale do rzeczy:
#!/bin/bash # g33czy portal by kubz # licencja: WTFPL let R=$RANDOM%14 if [[ $- != *i* ]]; then case "$R" in "0") echo " .,-:;//;:=," echo " . :H@@@MM@M#H/.,+%;," echo " ,/X+ +M@@M@MM%=,-%HMMM@X/," echo " -+@MM; \$M@@MH+-,;XMMMM@MMMM@+-" echo " ;@M@@M- XM@X;. -+XXXXXHHH@M@M#@/." echo " ,%MM@@MH ,@%= .---=-=:=,." echo " =@#@@@MX ., -%HX\$\$%%%+;" echo " =-./@M@M$ .;@MMMM@MM:" echo " X@/ -\$MM/ .+MM@@@M$" echo ",@M@H: :@: . =X#@@@@-" echo ",@@@MMX, . /H- ;@M@M=" echo ".H@@@@M@+, %MM+..%#$." echo " /MMMM@MMH/. XM@MH; =;" echo " /%+%\$XHH@$= , .H@@@@MX," echo " .=--------. -%H.,@@@@@MX," echo " .%MM@@@HHHXX\$\$$%+- .:\$MMX =M@@MM%." echo " =XMMM@MM@MM#H;,-+HMM@M+ /MMMX=" echo " =%@M@M#@\$-.=\$@MM@@@M; %M%=" echo " ,:+$+-,/H#MMMMMMM@= =," echo " =++%%%%+/:-." ;; "1") echo " ,:/+/-" echo " /M/ .,-=;//;-" echo " .:/= ;MH/, ,=/+%\$XH@MM#@:" echo " -\$##@+\$###@H@MMM#######H:. -/H#" echo " .,H@H@ X######@ -H#####@+- -+H###@X" echo " .,@##H; +XM##M/, =%@###@X;-" echo " X%- :M##########$. .:%M###@%:" echo " M##H, +H@@@$/-. ,;\$M###@%, -" echo " M####M=,,---,.-%%H####M$: ,+@##" echo " @##################@/. :%H##@\$-" echo " M###############H, ;HM##M$=" echo " #################. .=\$M##M$=" echo " ################H..;XM##M$= .:+" echo " M###################@%= =+@MH%" echo " @################M/. =+H#X%=" echo " =+M##############M, -/X#X+;." echo " .;XM##########H= ,/X#H+:," echo " .=+HM######M+/+HM@+=." echo " ,:/%XM####H/." echo " ,.:=-." ;; "2") echo " .+" echo " /M;" echo " H#@: ;," echo " -###H- -@/" echo " %####$. -; .%#X" echo " M#####+;#H :M#M." echo " .+/;%#########X###-" echo " -/%H%+;-, +##############/" echo " .:\$M###MH$%+############X ,--=;-" echo " -/H#####################H+=." echo " .+#################X." echo " =%M####################H;." echo " /@###############+;;/%%;," echo " -%###################$." echo " ;H######################M=" echo " ,%#####MH$%;+#####M###-/@####%" echo " :\$H%+;=- -####X.,H# -+M##@-" echo " . ,###; ; =\$##+" echo " .#H, :XH," echo " + .;-" ;; "3") echo " ;=" echo " /=" echo " ;=" echo " /=" echo " ;=" echo " /=" echo " ;=" echo " /=" echo " ,--==-:$;" echo " ,/\$@#######@X+-" echo " ./@###############X=" echo " /M#####X+/;;;;+H#####$." echo " %####M/;+H@XX@@%;;@####@," echo " +####H=+##$,--,=M#X-%####@." echo " -####X,X@HHXH##MXHXXH-+####$" echo " X###@.X/\$M$:####$=@X/X,X####-" echo " .####:+$:##@:####$:##H/X=####%" echo " -%%$%,+==%$+-$+:$;-\$\$%-+,/$%%+" echo " -/+%%X\$XX$\$\$\$\$\$\$%\$\$$%\$X\$X\$%+/-" ;; "5") echo " =/;;/-" echo " +: //" echo " /; /;" echo " -X H." echo " .//;;;:;;-, X= :+ .-;:=;:;%;." echo " M- ,=;;;#:, ,:#;;:=, ,@" echo " :% :%.=/++++/=.$= %=" echo " ,%; %/:+/;,,/++:+/ ;+." echo " ,+/. ,;@+, ,%H;, ,/+," echo " ;+;;/= @. .H##X -X :///+;" echo " ;+=;;;.@, .XM@$. =X.//;=%/." echo " ,;: :@%= =\$H: .+%-" echo " ,%= %;-///==///-// =%," echo " ;+ :%-;;;:;;;;-X- +:" echo " @- .-;;;;M- =M/;;;-. -X" echo " :;;::;;-. %- :+ ,-;;-;:==" echo " ,X H." echo " ;/ %=" echo " // +;" echo " ,////, " ;; "6") echo " =+\$HM####@H%;," echo " /H###############M$," echo " ,@################+" echo " .H##############+" echo " X############/" echo " \$##########/" echo " %########/" echo " /X/;;+X/ " echo "" echo " -XHHX-" echo " ,######," echo " #############X .M####M. X#############" echo " ##############- -//- -##############" echo " X##############%, ,+##############X" echo " -##############X X##############-" echo " %############% %############%" echo " %##########; ;##########%" echo " ;#######M= =M#######;" echo " .+M###@, ,@###M+." echo " :XH. .HX: " ;; "7") echo " .-;+\$XHHHHHHX\$+;-." echo " ,;X@@X%/;=----=:/%X@@X/," echo " =\$@@%=. .=+H@X:" echo " -XMX: =XMX=" echo " /@@: =H@+" echo " %@X, .\$@$" echo " +@X. \$@%" echo " -@@, .@@=" echo " %@% +@$" echo " ]H@: :@H" echo " H@: :HHHHHHHHHHHHHHHHHHX, =@H" echo " %@% ;@M@@@@@@@@@@@@@@@@@H- +@$" echo " =@@, :@@@@@@@@@@@@@@@@@@@@@= .@@:" echo " +@X :@@@@@@@@@@@@@@@M@@@@@@:%@%" echo " \$@$, ;@@@@@@@@@@@@@@@@@M@@@@@@$." echo " +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+" echo " =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X=" echo " :\$@@@@@@@@@@@@@@@@@@@M@@@@$:" echo " ,;\$@@@@@@@@@@@@@@@@@@X/-" echo " .-;+$XXHHHHHX$+;-. " ;; "8") echo " .,---." echo " ,/XM#MMMX;," echo " -%##########M%," echo " -@######% \$###@=" echo " .,--, -H#######$ \$###M:" echo " ,;\$M###MMX; .;##########$;HM###X=" echo " ,/@##########H= ;################+" echo " -+#############M/, %##############+" echo " %M###############= /##############:" echo " H################ .M#############;." echo " @###############M ,@###########M:." echo " X################, -\$=X#######@:" echo " /@##################%- +######\$-" echo " .;##################X .X#####+," echo " .;H################/ -X####+." echo " ,;X##############, .MM/" echo " ,:+\$H@M#######M#\$- .\$\$=" echo " .,-=;+\$@###X: ;/=." echo " .,/X$; .::," echo " ., .. " ;; "9") echo " :X-" echo " :X###" echo " ;@####@" echo " ;M######X" echo " -@########$" echo " .\$##########@" echo " =M############-" echo " +##############$" echo " .H############$=." echo " ,/: ,M##########M;." echo " -+@###; =##########M;" echo " =%M#######; :#########M/" echo " -\$M###########; :#########/" echo " ,;X###########; =########$." echo " ;H#########+#######M=" echo " ,+##############+" echo " /M#########@-" echo " ;M######%" echo " +####:" echo " ,\$M- " ;; "10") echo " +@##########M/ :@#########@/" echo " ##############$;H#######@;+#############" echo " ###############M########################" echo " ##############X,-/++/+%+/,%#############" echo " ############M$: -X############" echo " ##########H;. ,--. =X##########" echo " :X######M; -\$H@M##MH%: :H#######@" echo " =%#M+=, ,+@#######M###H: -=/M#%" echo " %M##@+ .X##$, ./+- ./###; +M##%" echo " %####M. /###= @##M. X###%" echo " %####M. ;M##H:. =\$###X. \$###%" echo " %####@. /####M\$-./@#####: %###%" echo " %H#M/, /H###########@: ./M#%" echo " ;\$H##@@H: .;\$HM#MMMH$;, ./H@M##M$=" echo " X#########%. ..,,. .;@#########" echo " ###########H+:. ./@###########" echo " ##############/ ./%%%%+/.-M#############" echo " ##############H\$@#######@@##############" echo " ##############X%########M\$M#############" echo " +M##########H: .\$##########X=" ;; "11") echo " -\$-" echo " .H##H," echo " +######+" echo " .+#########H." echo " -\$############@." echo " =H###############@ -X:" echo " .\$##################: @#@-" echo " ,; .M###################; H###;" echo " ;@#: @###################@ ,#####:" echo " -M###. M#################@. ;######H" echo " M####- +###############$ =@#######X" echo " H####$ -M###########+ :#########M," echo " /####X- =########% :M########@/." echo " ,;%H@X; .\$###X :##MM@%+;:-" echo " .." echo " -/;:-,. ,,-==+M########H" echo " -##################@HX%%+%%$%%%+:,," echo " .-/H%%%+%%\$H@###############M@+=:/+:" echo " /XHX%:#####MH%= ,---:;;;;/%%XHM,:###$" echo " \$@#MX %+;- . " ;; "12") echo " #+ @ # # M#@" echo " . .X X.%##@;# # +@#######X. @#%" echo " ,==. ,######M+ -#####%M####M- #" echo " :H##M%:=##+ .M##M,;#####/+#######% ,M#" echo " .M########= =@#@.=#####M=M#######= X#" echo " :@@MMM##M. -##M.,#######M#######. = M" echo " @##..###:. .H####. @@ X," echo " ############: ###,/####; /##= @#. M" echo " ,M## ;##,@#M;/M#M @# X#% X#" echo " .%= ######M## ##.M#: ./#M ,M #M ,#$" echo " ##/ \$## #+;#: #### ;#/ M M- @# :" echo " #+ #M@MM###M-;M #:\$#-##\$H# .#X @ + \$#. #" echo " ######/.: #%=# M#:MM./#.-# @#: H#" echo " +,.= @###: /@ %#,@ ##@X #,-#@.##% .@#" echo " #####+;/##/ @## @#,+ /#M . X," echo " ;###M#@ M###H .#M- ,##M ;@@; ###" echo " .M#M##H ;####X ,@#######M/ -M###$ -H" echo " .M###% X####H .@@MM@; ;@#M@" echo " H#M /@####/ ,++. / ==-," echo " ,=/:, .+X@MMH@#H #####$=" ;; "13") echo " ,=;%$%%\$X%%%%;/%%%%;=," echo " ,/\$\$+:- -:+\$\$/," echo " :X$= =\$X:" echo " ;M%. .%M;" echo " +#/ /#+" echo " ## M#" echo " H#, =;+/;, ,#X" echo " .HM- :@X+%H: .%M%- .M#. -M@." echo " /#%. @#- ,H@--MH, .;@\$- .%#+" echo " .\$M; .+@X;, MM#@:/\$X;. ;M$," echo " =@H, ,:+%H#M%;- ,H@=" echo " .\$#; -#H =#$" echo " %#; #M ;#%" echo " H#- ## -#H" echo " ;#+ ## +#;" echo " ;H+;;;;;;HH;;;;;;+H/" echo " =H#@HHHHHHHHHH@#H=" echo " =@#H%%%%%%%\$HH@#@=" echo " =@#X%%%%%%%\$M###@=" echo " =+%XHHX%+= " ;; "14") echo " X MM X" echo " X MM X" echo " X MM X" echo " X MM X" echo " + HX +" echo " ,=\$\$XX%/-" echo " =X#########@%-" echo " ;##############=" echo " -###############M," echo " ;##@@@######M@###=" echo " .+:;+:=H##$=:/:;H." echo " - +###- ## :###,,;" echo " +@:/%;-H##H==/::H;" echo " /#@/-=+\$\$%::+H#$" echo " \$#%-, ,.:##-" echo " -@/ =X%." echo " %H= -$;" echo " =HH, .%M;" echo " /MM/ :@M/." echo " .:XX, -\$H:. " ;; "4") echo " .-+\$H###MM@MMMMM##@$+-,. ...." echo " -@$+%$+%HX+--.. . . .,:X$/+/++\$#:" echo " -#MXH$= \$HXH#:" echo " .--,:#+ ,+\$HMX =@@X%, . .X#:,,," echo " =#@\$H :####H =####;,M%\$#X" echo " X###$ \$####X =####H %###X" echo " ;###X /###@$: ,+HM##H.+###;" echo " :###;,X##%=;%H@H$;-;M#@-;###/" echo " ,M##;.@##;-H#######M=.M##-:###-" echo " ;##M ;##X @###H-=@###.;##X H##;" echo " ;##M./##X.@###H:/M###-=##X X##;" echo " -###;,M##:,@########+-H##; @##-" echo " %##M==@##%==%HMH%::/M##+.X##+" echo " %###/./###X+: -+\$M##M=,X##+" echo " X###X X####H +#####% @##H" echo " :###H %####H +#####; X##;" echo " /#$. -HM##H /###@+. +#$. ." echo " /HX%\$X: .,-, .-,. =XX\$H@-" echo " /#H+/+%+/+;=. .=/%;;/;;+#+" echo " .. .,-:XM#MM@@@@@@H@@M#@+=,. ,," ;; esac fi
Od czasu, kiedy Firefoks zaczął coraz bardziej zamulać, postanowiłem zmienić przeglądarkę. Wybór padł na Operę.
Wszystko byłoby piękne, gdyby nie fakt, że Opera nie posiada blokady na zapamiętywanie wprowadzonych adresów.
Teoretycznie w opcjach Opery widnieje możliwość niezapamiętywania adresów, lecz to nie do końca spełnia swojego zadania
Jednak istnieje możliwość zablokowania zapamiętywania wprowadzonych adresów w Operze. Aby to wykonać, wystarczy wykonać następujące kroki:
Zachciało mi się ostatnio słuchanej piosenki z serwisu Last.fm jako status opisowy w EKG.
Jako że nikt nie napisał takiego skryptu, musiałem spłodzić go sam. Na dodatek na koncie shell, gdzie stoi EKG, nie ma wbudowanej obsługi skryptów Pythona, dostępu do kompilatorów też nie.
Jednak wystarczyło trochę pokombinować - wyszło nawet całkiem ładnie. No, ale żeby dalej nie zanudzać napiszę Wam, jak stworzyć takie cudo.
Po pierwsze potrzebujemy jakiegoś hostingu. Gdy takowy znajdziemy, w zależności od posiadanej wersji PHP, tworzymy skrypt:
Wersja dla PHP4: (bez wbudowanej obsługi plików XML)
Tutaj będzie potrzebny nam skrypt LastRSS, który możemy pobrać z tej strony. Skrypt prezentuje się następująco:
<?php include "lastrss.php"; $nick = "kubz"; # <- NASZ NICK NA LAST.FM $rss = new lastRSS; $rss->cache_time = 0; $rss->cp = "UTF-8"; $rss->date_format = "l"; $rssurl = "http://ws.audioscrobbler.com/2.0/user/".$nick. "/recenttracks.rss"; if ($rs = $rss->get($rssurl)) { $f = $rs[items][0][title]; $f = str_replace(chr(128), "-", $f); # zamiana dziwnych #znaczków na myślnik, wersja dla domyślnego kodowania: ISO-8859-2 $f = str_replace(chr(226), "", $f); # j.w. $f = str_replace(chr(147), "", $f); # j.w. echo "Last.fm: ".$f; } else { echo 'Error'; } ?>
<?php $nick = "kubz"; # NASZ NICK NA LAST.FM $url = "http://ws.audioscrobbler.com/2.0/user/".$nick."/recent". "tracks.rss"; require('rss_fetch.inc.php'); $rss = fetch_rss($url); $f = $rss->items[0]['title']; $f = str_replace("?", "-", $f); # zamiana długiego myślnika na #krótszy, przecież EKG i GG nie obsługuje UTF-8... echo "Last.fm: ".$f; ?>
<?php function getLastTrack($username, $line = 14) { $file = file('http://ws.audioscrobbler.com/2.0/user/'.$username.'/recenttracks.rss'); echo str_replace('?','-',mb_convert_encoding(trim(preg_replace("/(<title>|<\/title>)/i","",$file[$line-1])),'ISO-8859-2','UTF-8')); } getLastTrack('marines'); ?>
#!/bin/sh ADRES="http://..." # adres do naszego skryptu wget -q $ADRES -O /tmp/lastfm LAST=`cat /tmp/lastfm` echo "/away "$LAST > ~/.gg/ekg-pipe rm /tmp/lastfm
chmod +x lastfmscreen ekg -c ~/.gg/ekg-pipe
timer -a last */60 exec ./lastfm
cabarc n USB.IN_ usb.infNa koniec wyrzucamy z pliku ISO: DOSNET.INF, TXTSETUP.SIF, USB.IN_, USBPORT.IN_, USBSTOR.IN_. Teraz dodajemy zmodyfikowane pliki USBBOOT.INF, DOSNET.INF, TXTSETUP.SIF, USB.IN_, USBPORT.IN_, USBSTOR.IN_. Ostatecznym krokiem będzie wypalenie płyty i instalacja systemu ;)
cabarc n USBPORT.IN_ usbport.inf
cabarc n USBSTOR.IN_ usbstor.inf
[Dialer huawei]
Init2 = AT
Init3 = AT&FE0V1X1&D2&C1S0=0
ISDN = 0
Modem = /dev/ttyUSB0
Modem Type = Analog Modem
Baud = 460800
[Dialer pin]
Init1 = AT+Cpin=1234
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
Stupid Mode = 1
Modem Type = Analog Modem
ISDN = 0
Phone = *99#
Modem = /dev/ttyUSB0
Username = erainternet
Dial Command = ATDT
Password = erainternet
Baud = 460800updetach
debug
connect "chat -v -f /etc/ppp/era-chat"
/dev/ttyUSB0
230400
crtscts
local
noipdefault
defaultroute
usepeerdns
novj
nobsdcomp
nopcomp
noaccomp
noauth
ABORT "NO DIALTONE"
ABORT "NO ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
"" "AT"
OK "AT+CPIN=NASZPIN"
OK "AT&F"
OK "AT+CMEE=1"
OK 'AT+CGDCONT=1,"IP","erainternet"'
OK "ATDT*99***1#"wvdial