Nerdblog.pl

Reklama na blogach - Blogvertising.pl

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 ;)

Jogger.pl - Dashboard - subskrybowani (user.js)

Dodano: 12.05.2009

Napisałem prościutki (dosłownie kilkulinijkowy) skrypt, który do Joggerowego Dashboarda generuje po prawej stronie na górze 'okienko' do dodawania osób do listy śledzonych przez bota.

Do pobrania z mojego serwera.

Bubble sorting for dummies

Dodano: 30.03.2009

Ten przykład to jedynie trzy elementy i został stworzony na specjalną prośbę zaprzyjaźnionej osoby. W normalnych warunkach nikt nie będzie raczej sortował tylko trzech elementów ani nie będzie robił tego metodą brute-force skoro możliwe są inne implementacje, ale jeśli ktoś nie ma pojęcia co to za algorytm ani jak działa to taki prosty obrazek może podziałać na wyobraźnię.

Tak, wiem, Ameryki nie odkryłem :P

Eksperyment programistyczno-lingwistyczny

Dodano: 13.03.2009

Przez ostatnie trzy tygodnie zbierałem dwa razy dziennie wszystkie wpisy z Joggerowego RSSa i przepuszczałem je przez aspella w celu znalezienia błędów. Następnie zapisywałem wyniki do jednego pliku, który rósł i rósł i rósł. Celem eksperymentu było stworzenie słownika wyrażeń technicznych, które mógłbym ignorować oraz napisanie bota, który sprawdzałby wyrywkowo wpisy na głównej Joggera i zgłaszał błędy ortograficzne autorom.

Niestety, jak się szybko okazało Aspell jest dość głupim narzędziem i nie potrafi rozróżnić błędu od nieznanego mu słowa i nieznanego mu słowa od błędu. Ponadto nie da się pobierać informacji z dwóch słowników, więc wpisy po angielsku wrzucone na główną powodowały, że Aspell głupiał i oznaczał każde słowo jako błąd. Z tego powodu projekt zarzuciłem, wrzucając tylko na serwer listę słów, które zgromadziłem jako ciekawostkę. Zostały one posortowane alfabetycznie i wyciąłem z nich powtórzenia (brana była pod uwagę wielkość liter więc WebKit i Webkit to nie to samo). Może kiedyś komuś się przyda :)

Reklamy: sklep komputerowy ,