Napiprojekt – wersja dla linuksa

Napiprojekt – dwa kliknięcia i mamy napisy do filmu. Teraz także pod linuksem! Jak czytamy na stronie “napiprojekt”:http://www.napiprojekt.pl/:

bq. Napiprojekt to program dzięki któremu w jednej chwili pobierzesz idealnie dopasowane napisy do Twojego filmu.
Program jest banalny w obsłudze, wystarczą 2 kliknięcia myszką,
aby na Twoim dysku znalazły się idealnie dopasowane napisy do Twojej wersji filmu.”

Niestety autor nie wydał wersji pod linuksa :(

Ale obiecal ze juz “niedługo”:http://forum.napiprojekt.pl/viewtopic.php?p=5062#5062

Niejaki GiM się nie doczekał tez “obiecal”:http://forum.napiprojekt.pl/viewtopic.php?p=5597#5597
i oto jest: “napiprojekt dla linuksa”:http://forum.napiprojekt.pl/viewtopic.php?p=5605#5605

Oficjalna strona projektu podana przez autorow: “http://napi.py.googlepages.com/”:http://napi.py.googlepages.com/

“Blog”:http://hacking.apcoh.com/2008/01/napi_06.html

Skrypt:


#!/usr/bin/python
# reversed napi
#
# musisz miec zainstalowanego 7zipa
# w ubuncianych paczka: p7zip-full
#
# by gim,krzynio,dosiu,hash 2oo8.
# last modified: 5-I-2oo8
#
# 4pc0h f0rc3
#
# wersja 0.15 beta
#

import md5,sys,urllib,os

def f(z):
idx = [ 0xe, 0x3, 0x6, 0x8, 0x2 ]
mul = [ 2, 2, 5, 4, 3 ]
add = [ 0, 0xd, 0x10, 0xb, 0x5 ]

b = []
for i in xrange(len(idx)):
a = add[i]
m = mul[i]
i = idx[i]

t = a + int(z[i], 16)
v = int(z[t:t+2], 16)
b.append( ("%x" % (v*m))[-1] )

return ''.join(b)

if(len(sys.argv)==1):
print "wy*dalaj na stadion po film"
sys.exit(2)

d = md5.new();
d.update(open(sys.argv[1]).read(10485760))

str = "http://napiprojekt.pl/unit_napisy/dl.php?l=PL&f="+d.hexdigest()+"&t="+f(d.hexdigest())+"&v=other&kolejka=false&nick=&pass=&napios="+os.name

open("napisy.7z","w").write(urllib.urlopen(str).read())
nazwa=sys.argv[1][:-3]+'txt'

if (os.system("/usr/bin/7z x -y -so -piBlm8NTigvru0Jr0 napisy.7z 2>/dev/null >"+nazwa)):
print "nie ma napisa do filmu"
os.remove(nazwa)
else:
print "napisy pobrano, milordzie!"

os.remove("napisy.7z")

W skrócie: md5 z pierwszych 10 mb pliku, nastepnie czary mary na tej sumie i mamy parametr t

Wysylamy to do serwera napiprojekt, jesli wszystko ok dostajemy spakowane napisy w formacie “7z”:http://pl.wikipedia.org/wiki/7z.

Archiwum jest zabezpieczone haslem: **iBlm8NTigvru0Jr0**

Proste, prawda? :)

Dzieki!

Tags: ,

Jest Perl 5.10-RC2!

Mamy perla 5.10! Pelna lista ficzurów (nie licząc bugów) znajduje sie na perldelta .

Tags:

Ruby on Rails na md6 (prawie)

Częściowa migracja na railsy ;)

Tags: ,

Kraków Perl Mongers

Krakowska grupa użytkowników perla powoli budzi sie do życia… Pierwsze spotkanie odbędzie się 5 grudnia 2007, środa (tak, tak, dzień przed Mikołajem) w Krakowie!!! W planie prezentacje:

  • Elastyczny web w stylu XP – Railsy w perlu, Catalyst MVC framework
  • SQLAlchemy i Janosik – jak w stylu ORM oswoić wolność wyboru z ZUSem
  • OpenLDAP back-perl – wirtualne usługi katalogowe

Miejsce spotkania: Cafe-szafe, ul. Felicjanek 10, koło Zwierzynieckiej / Filharmonii / Jubilata.

Wiecej informacji na stronie Kraków Perl Mongers

Tags: ,

Ruby On Rails MacOsX – szybka instalacja

Jak szybko zainstalować Ruby On Rails na Tigerze… Ściągamy i odpalamy skrypt, który widzimy ponizej:

localhost:~/rails oki$ cat install_rails_macosx.sh
#!/bin/bash

# http://dev.mysql.com/downloads/

echo 'export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH" ' >> ~/.bash_profile

echo "Readline"
curl -O ftp://ftp.gnu.org/gnu/readline/readline-5.1.tar.gz
tar xzvf readline-5.1.tar.gz
cd readline-5.1
./configure --prefix=/usr/local
make
sudo make install
cd ..

echo "Ruby"
curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz
tar xzvf ruby-1.8.6.tar.gz
cd ruby-1.8.6
./configure --prefix=/usr/local --enable-pthread --with-readline-dir=/usr/local --enable-shared
make
sudo make install
sudo make install-doc
cd ..
ruby -v

echo "Gems"
curl -O http://files.rubyforge.mmmultiworks.com/rubygems/rubygems-0.9.2.tgz
tar xzvf rubygems-0.9.2.tgz
cd rubygems-0.9.2
sudo /usr/local/bin/ruby setup.rb
cd ..

sudo gem install rails -y
sudo gem install mogrel -y

Baze mysql sciągamy z: http://dev.mysql.com/downloads/.

Skrypt “napisany” wg opisu z: http://hivelogic.com/narrative/articles/ruby-rails-mongrel-mysql-osx

Z cyklu: “moze komus sie przyda”…

Tags: ,

Screenshoty w MacOSX

Jak zmienić domyślny katalog zapisywania screenshotów? Okazuje się ze bardzo prosto… Domyślnie screenshoty są zapisywane w ~/Desktop jak pliki png. Aby ustawić katalog na np: ~/Desktop/screens wystarczy wklepać:

laptop5wifi:~/Desktop oki$ defaults write com.apple.screencapture location  Users/oki/Desktop/screens
mk508-laptop5wifi:~/Desktop oki$ killall SystemUIServer

A o tym jak robić screeny pod macosx można poczytać np tu: http://guides.macrumors.com/Taking_Screenshots_in_Mac_OS_X

Tags:

FreeBSD, MacOSX i Synergy

Jedna klawiatura i myszka do sterowania freebsd i mac… Dwa kompy:
michal2 – maszyna freebsd
laptop – komp z macos

Instalujemy synergy na freebsd:

[root@michal2~]$ cd /usr/ports/*/synergy
[root@michal2/usr/ports/sysutils/synergy]$ make install clean

Tworzymy sobie konfig dla serwera:

[oki@michal2~]$cat synergy-bsd-mac.conf
section: screens
    michal2:
    laptop:
end

section: links
michal2:
    right = laptop
laptop:
    left = michal2
end
[oki@michal2~]$

WAŻNE: Wpisujemy nazwy hostów, czyli to co nam zwraca hostname.

Odpalamy synergy na serwerze:

[oki@michal2~]$synergys -f --config synergy-bsd-mac.conf
INFO: synergys.cpp,1042: Synergy server 1.3.1 on FreeBSD 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sun May  7 04:42:56 UTC 2006     root@opus.cse.buffalo.edu:/usr/obj/usr/src/sys/SMP i386
...

Klient, ściągamy sobie synergy w wersji dla maca, http://sourceforge.net/project/showfiles.php?group_id=59275&package_id=58013
Instalujemy
Następnie na kliencie:

laptop: cd Desktop/synergy-1.3.1
laptop:~/Desktop/synergy-1.3.1 oki$ ./synergyc -f michal2

I działa ;]
Pomoc:
synergys –help
synergyc –help
Synergy

Tags: , ,

Perl debuger, Term::ReadLine::Gnu i historia poleceń

Używasz perla z opcją -d ? Chciałbyś ułatwić sobie prace korzystając z historii poleceń i dopełnień? Nic prostszego! Wystarczy że zainstalujesz w swoim wspaniałym systemie koffaniutki moduł o wdzięcznej nazwie Term::ReadLine::Gnu!

perl -MCPAN -e shell
cpan: install Term::ReadLine::Gnu

Po zainstalowaniu modułu nasz perlowy debugger będzie wspaniale reagował na strzałeczki i tabulator :)

96,71% gospodyń używa Term::ReadLine::Gnu i jest z niego zadowolona! Dołącz do nich!

Tags: ,

Pozycje keywordów w google z pomocą ruby

Przykładowy skrypt w ruby, który sprawdza pozycje w google dla keywordów odczytwanych z pliku.


#!/usr/bin/env ruby

require 'net/http'

class GoogleSearch

    def initialize(base_www)
        @base_www   = base_www.gsub(/http:\/\//,'')
        @google     = 'www.google.pl'
        @n          = 100
        @path       = "/search?num=#{@n}&hl=pl&q=&btnG=Szukaj&lr=lang_pl"
        @useragent  = 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.0.2) Gecko/20060111 Firefox/1.5.0.6a'
    end

    def position(keyword)
        @http = Net::HTTP.new(@google, 80)
        res = @http.get( @path.gsub(/&q=/,"&q=#{keyword.gsub(/\s+/,'+')}"), {'User-Agent' => @useragent})

        n = @n
        res.body.scan(/<!--m-->.*?<a href="(.*?)"/) { |url|
            n -= 1
            if url.to_s.gsub(/http:\/\//,'') =~ /^#{@base_www}/
                return [@n - n,url]
            end
        }

        return nil
    end
end

if __FILE__ == $0
    STDOUT.sync = true
    google = GoogleSearch.new('linuxlinki.md6.org')

    arr_kw = Array.new
    kw_file = open("keywords-google.txt")
    kw_file.each { |kw|
        kw.chomp!
        arr_kw.push(kw)
    }

    arr_kw.each do |kw|
        print "#{kw}: "
        if pos = google.position(kw)
            puts "#{pos[0]} #{pos[1]}"
        else
            puts "Not found"
        end
    end

end

Tags: ,

Szyfrowany gmail

FireFox, gmail i gpg, czyli o tym jak szyfrować swoje maile. Na początek instalujemy plugin do firefoxa: FireGPG.

Plugin ten korzysta z gpg:
cd /usr/ports/security/gpgme && make install clean

Następnie generujemy sobie klucze, jako rodzaj klucza najlepiej wybrać opcje numer 1.
Dlugość klucza, paranoicy wpiszą 2048.

gpg –gen-key

Przydatne opcje:
gpg –list-keys
gpg –keyserver subkeys.pgp.net –send-key id

Gdzie id to id klucza który chcemy wyeksportować.

Wyszukiwanie może się czasami przydać:

gpg –keyserver subkeys.pgp.net –search-keys jas@serwer.pl

Eksportowanie klucza prywatnego:
gpg –export-secret-key -a ja@serwer.pl > private.key

Importowanie klucza publicznego:
gpg –allow-secret-key-import –import private.key

Po wygenerowaniu klucza, można zacząć szyfrować :P
W menu ‘Tools’ pojawia sie FireGPG, które jest też dostępne jako menu kontekstowe.
Mamy następujące opcje do wyboru: Sign, Verify, Crypt, Decrypt, Import, Export, Editor, Options.
Scenariusz jest prosty: zaznaczamy dany tekst i wybieramy akcje. Podpisujemy, weryfikujemy autentyczność podpisu, szyfrujemy, deszyfrujemy, albo importujemy klucz publiczny.

W opcjach nie ma za bardzo co ustawiać, tym bardziej że nie wszystkie chcą działać.

W sekcji dotyczącej gmaila ‘Buttons to show’ zaznaczamy jakie przyciski maja jakie pojawiać podczas pisania maila. Niestety, żadnego z tych przycisków nie widać… Szyfrować można jedynie poprzez zaznaczanie tekstu i wybór odpowiedniej opcji z menu. No ale plugin jest w wersji beta, więc można wybaczyć.

Bugs, problems, requests odnośnie pluginu można kierować na forum

Tags: