Nerdblog.pl

Reklama na blogach - Blogvertising.pl

Co nadmiar pracy potrafi zrobić z człowiekiem - PS2 na komputerze

Dodano: 23.08.2009

Zaczęło się od tego, że byłem zmęczony pracą. Postanowiłem usiąść sobie, zrelaksować się i poprojektować trochę designy na kartce papieru. Sięgnąłem po ołówek i odkryłem, że jest niezaostrzony. Wziąłem kolejny - to samo. Wyszło na to, że na 5 ołówków mam 5 albo złamanych, albo całkiem nowych. No tak nie może być! Zabrałem się do poszukiwań...

(...)

Pidgin/Adium Simple theme with Blip hack

Dodano: 30.07.2009

Na życzenie smokka wrzucam tutaj mój super prosty styl z hackiem kolorującym tagi w Blipie.

(...)

Ruby 1.9.1 and MySQL gem

Dodano: 13.06.2009

Symptoms (may be little different):

gem install mysql
Building native extensions. This could take a while...
ERROR: Error installing mysql:
ERROR: Failed to build gem native extension.

(...)

Save and Commit (to Git) - plugin for Gedit 2.26

Dodano: 01.06.2009

Wow, it's finally done! After 4 hours of hacking and digging through documentations, API references and three other plugins I finally wrote my own Gedit 2.26 plugin :) The fun fact is I completely don't know Python at all(only basic ideas). Most of the code is either a rip-off from one of the previously mentioned plugins or my wild guesses 'how the hell does it work?!'. I hope your PC won't melt :D

What does it do? Well, it's a really simple script despite the time I put into writing it. It saves the current file you are working on and executes git add [file] && git commit [file] making your life a lot easier because you don't have to remember about those annoying commits in your local repo every time you change something. Useful!

Script is in it's early beta, I didn't give it any version number. There are lot of things to do so don't be suprised that it's not perfect. I must also warn you it's not exactly idiot-friendly and even if I tried to make it as safe as I could, you still can make your local repository unusable. Use at your own risk!

And yes, I know that the code is not a state of art. It was written during my NADD (Nerd Attention Deficiency Disorder) period, not during the NAND (Nerdy Attraction to Naughty Development - code have to be sexy!) one. Sorry :D

You can download the plugin from my server (4 KB)

I welcome any feedback and bug reports, but please, don't be too hard on me, I'm just learning.

Also if possible don't be too harsh on my english - still studying ;)

Telnetowanie w skryptach

Dodano: 21.05.2009

Być może korzystając z mojego skryptu rsget-mod lub w innej sytuacji, potrzebowaliście połączyć się z jakimś zewnętrznym urządzeniem w celu - ja wiem? - restartu routera, zmiany konfiguracji itp. Najczęściej - bo najprościej - używa się do takiego celu telnetu, ponieważ to najbanalniejszy protokół i twórcom sprzętu prościej go implementować niż takie SSH. Pojawia się jednak problem - jak z poziomu skryptu połączyć się z urządzeniem?

Pierwsza rzecz, która przyszła mi do głowy to skierowanie strumienia STDIN do programu klienckiego telnet. Niestety, klasyczne przekazanie strumienia nie działa w tym przypadku (trudne, żeby działało). Potem pomyślałem o netcacie - 'szwajcarskim scyzoryku do TCP/IP'. Niestety, on też nie chciał działać jak trzeba. Męczyłem się, kombinowałem, w końcu jednak Michał Górny przypadkowo naprowadził mnie na dobrą drogę. Przypomniałem sobie jak w zenity rozwiązany jest progressbar i mnie olśniło. Trochę kombinowania i mam rozwiązanie.

Na początku należy samodzielnie połączyć się z panelem, żeby zobaczyć jak wygląda proces autoryzacji. W moim przypadku trzeba połączyć się z ip 192.168.2.1 wpisać login (root) i hasło, a następnie wydać polecenie (u mnie: reboot, potem y). Gdy już wiemy jak to wygląda, konstruujemy banalny skrypcik:

(
	echo "open 192.168.2.1";
	sleep 0.5;
	echo "root";
	sleep 0.5;
	echo "haslo";
	sleep 0.5;
	echo "reboot";
	sleep 0.2;
	echo "y"; 
) | telnet

Jak to działa? Uruchamia telnet i po kolei wpisuje mu w ten sam sposób jak wpisywałaby to osoba z klawiatury kolejne polecenia - połączenie z serwerem, następnie wszystko to co powinno pójść do serwera. Zwróćcie uwagę na te wszystkie polecenia sleep - mają one na celu przytrzymania skryptu na czas łączenia się oraz reakcji sprzętu na wpisywane polecenia. Bez nich wszystko wysłałoby się wszystko równocześnie i zostałoby zagubione w trakcie.

Jak widać, napisanie takiego skryptu jest wbrew pozorom banalne. Mam nadzieję, że przyda się ono osobom korzystającym z mojego skryptu oraz tym, które potrzebują takiego rozwiązania u siebie. Happy hacking ;)

Reklamy: sklep komputerowy ,