ActivityFeed

A twitteren már elcsipogott program béta állapotba került. Mi ez az ActivityFeed?
Volt egy gondom, miszerint a youtube felhasználók aktivitását nem tudtam rss-ben követni*. Magamnak megírtam, majd viteez “nyüstölésének” köszönhetően publicitást kapott. Ezen az oldalon. Egyenlőre próbálgatás szintjén megy a program, de a tesztjeim egész biztatóak. A sebessége és működőképessége nagyban függ a youtube-tól, de ezzel együtt is egész jól megy.

* nem mondom hogy lehetetlen a követés, de nem is a legpraktikusabb.

Kiránduljunk gwave-vel!

Pár hete megérkezett a google wave. Eddig nézegettem, szoktam a felületet. Kiment néhány meghívó, így többed magammal is ki tudtam próbálni mire jó. A klasszikus msn-féle több szereplős játék a sodoku személyében jelent meg, ez a fajta felhasználás nem is volt váratlan. Viszont ennél sokkal többre is lehet használni a programot, igaz egyenlőre csak tervben. Az én példám amin keresztül szeretném bemutatni egy lehetséges felhasználási módot, az a klasszikus szervezzünk kirándulást. Azért ez, mert jelenleg is elérhető eszközökkel ezt tudom elég szemléletesen bemutatni. Persze olykor-olykor el fogok rugaszkodni a valóságtól és néhány lehetséges kiterjesztés ötletet is bemutatok.

Van egy baráti társaság, akik rendszeresen eljárnak kirándulni. Az ötletgazdag főszervező kitalálja, hogy szombaton olyan szép esős nap lesz, miért ne mennének el, kirándulni valahova?!
Mivel mindnyájan Budapest környékén élnek, adott a gondolat, valahova a környékbe induljanak el. A szervezőt nevezzük mondjuk connornak. Connor készít egy új bejegyzést, amibe térképre felviszi a szükséges információkat, leírja, hogy mikor és hol van találkozási pont, mi a cél stb.

tervezet
M.j.:
El tudnék képzelni egy alkalmazást a turistautak.hu-tól ami képes keresni és megjeleníteni a különféle útvonalakat, azok szakaszait kijelölve be tudnám illeszteni a bejegyzésbe. A bejegyzés megkapja a geo koordinátákat.
Egy másik alkalmazást is el tudnék képzelni a geocaching.hu-tól, amit beágyazva a bejegyzéshez kapcsolt útvonalterv alapján a lehetséges környéken lévő geocacheing ládákat listázza ki. (kis program a túrához)

Következő lépésként megnézzük, hogy milyen időjárás lesz. Az időjárást lekérdezem az adott napra majd beszúrom:

idojarasM.j.:
Ide is van ám ötletem! 🙂 Az idokep.hu gadgetjét beszúrva ismét a geo koordináták alapján lekérdezi az adott napra az időjárást, és javasol túrázáshoz megfelelő öltözéket a várható időjárás mellé.

Majd a bejegyzést elkészítve, a többeket meghívja Connor és megindul a szervezés.

A túra után a picasa-ra feltöltött galériám képeit beszúrva mondok köszönetet a résztvevőknek:

képmegosztás

Összegzés

Ha mindezt meg lehetne csinálni így ahogy leírtam akkor nagyon tetszene az alkalmazás! Persze jelenleg is lehet ilyet szervezni a wave-vel csak egyenlőre suta. Ez a példa is mutatja, hogy milyen lehetőségek rejtőznek egy ilyen alkalmazásban, ha írhatunk hozzá szabadon kiterjesztést! Milyen adatok beágyazásának lehet értelme? Turisztikai nevezetességek, útvonal tervezés, menetrend tervezés, galéria/kép beszúrás, videó beszúrás, fájl csatolás, naptár/esemény beszúrás, tv műsor beszúrás, fesztiválok, események programjainak beszúrása (pl mire menjünk el a szigeten ?!) stb.

Annak egyenlőre nem néztem utána, hogy egy adott bejegyzéshez lehet-e csatolni mikróformátumot API szinten. Ennek azért lehet jelentősége, mert így a különféle gadget-ek tudnának egymással kommunikálni, még nagyobb automatizmust elérve ezzel. A fenti ötletelésem is ezeken alapul, hiszen a gadgetek beszúrásával a bejegyzés még nem lesz felokosítva a gadget által végzett munka eredményeivel.

M.j.: Így például egy hogyan jutok oda gadget-nek is látnám értelmét. Otthonról megnézem a fenti bejegyzést. Egy gadget atomatikusan lekérdezi a honnan-t (laptop geo adata), a hovát (bejegyzésben található indulás helyszíne) és a mikort (indulás időpontja). Majd ezek alapján javasol közlekedési eszközöket. Gödöllőn lakom, Gödöllőről megyek => javasol vonatot a Keletihez 8:00-ra. Ezt beszúrhatom és kereshetek társaságot az utazáshoz. stb
A mikróformátumokban meg közismert, hogy milyen lehetőségek rejlenek!

Nekem alapvetően tetszik ez a játékszer és látok is benne fantáziát a jövőre nézve! Persze mindez akkor fog kiderülni, hogy életképes-e ha mondjuk édesanyám ül le a kifrorrott magyarul beszélő program elé. Akkor fog megmérettetni az alkalmazás. Ők még csak az e-mailnél tartanak. A számítógépet nem használók közül mondjuk a húgom féle emberek azok akik eljutottak az RSS-ig. És akkor hol van még a többi hype?!…

Redmine from Eclipse with mylyn

There is a great Eclipse plugin witch helps you to use various bugtrackers. This plugin’s name is Mylyn! There is a connector for Redmine too, witch name is redmin-mylyncon. Let’s see how to set it up!

Server side:
ruby script/plugin install https://redmin-mylyncon.svn.sourceforge.net/svnroot/redmin-mylyncon/redmine_mylyn_connector/tags/CURRENT
mv vendor/plugins/CURRENT vendor/plugins/mylyncon
rake db:migrate_plugins RAILS_ENV=production
/etc/init.d/apache2 restart

Client side:
Download the plugin from this Eclipse repository:
http://redmin-mylyncon.sourceforge.net/update-site/nightly/

Redmine eclipse-ből

Eclipse-hez létezik egy nagyszerű plugin ami segítségével a programból lehet használni a különféle bugtracker programokat (annyira különféléket hogy akár Gmail&calendar-hez is kötni lehet). Ez a plugin a mylyn! A redminehoz is létezik kötés, ezt redmin-mylyncon -nak hívják. Nézzük meg hogyan kell beüzemelni:

Szerver oldal:
ruby script/plugin install https://redmin-mylyncon.svn.sourceforge.net/svnroot/redmin-mylyncon/redmine_mylyn_connector/tags/CURRENT
mv vendor/plugins/CURRENT vendor/plugins/mylyncon
rake db:migrate_plugins RAILS_ENV=production
/etc/init.d/apache2 restart

A ruby hajlamos néha elhasalni az SF terheltsége miatt. –force kapcsolóval adjuk újra ki mindaddig amíg probléma nélkül le nem fut!
Ha mindent jól csináltunk a plugin oldalon megjelenik az új elem.

Ecplise alá pedig a szokásos módon telepítsük innen a plugint:
http://redmin-mylyncon.sourceforge.net/update-site/nightly/

redmine telepítése

Több időt töltöttem már eddig redmine telepítésével mint amennyit feltétlenül szerettem volna ezért álljon itt egy howto (amolyan comment nélküli):

svn co http://redmine.rubyforge.org/svn/branches/0.8-stable redmine-0.8
apt-get install libapache2-mod-fcgid libopenssl-ruby1.8 ruby rubygems libmysql-ruby1.8 rake libfcgi-ruby1.8
gem install -v=2.1.2 rails
mv public/dispatch.cgi.example public/dispatch.cgi
mv public/dispatch.fcgi.example public/dispatch.fcgi
rm public/.htaccess public/dispatch.rb.example

mv config/database.yml.example config/database.yml
mv config/email.yml.example config/email.yml

rake db:migrate RAILS_ENV=”production”

apache2:
<VirtualHost *:80>
ServerName redminehost

DocumentRoot /path/redmine-0.8/public

SetEnv RAILS_ENV production
DefaultInitEnv RAILS_ENV production
# Loglevel debug
<Directory /path/redmine-0.8/public>
AddHandler fcgid-script .fcgi
Options -Indexes +FollowSymLinks +ExecCGI
RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
</Directory>
</VirtualHost>

a2ensite …

admin/admin

audió fájlok egyesítése

A youtubeon találtam egy egész jó felvételt Rachmaninov op.18 zongoraversenyényről. Alexis Weissenberg zongorázik és Herbert von Karajan vezényel. Egyetlen probléma, hogy 4 részben van.
Nosza egyesítsük!

Kiszedjünk az audiót:
ffmpeg -i r01.mp4 -vn r01.wav
ffmpeg -i r02.mp4 -vn r02.wav
ffmpeg -i r03.mp4 -vn r03.wav
ffmpeg -i r04.mp4 -vn r04.wav

Összefűzzük őket:
sox r01.wav r02.wav r03.wav r04.wav r.wav

Majd mp3-at csinálunk belőle.
ffmpeg -i r.wav -acodec libmp3lame -ab 192000 r.mp3

A kevésbé ráérősek csinálhatják pl audacity-vel. 🙂

mj: sox program a sox csomagban van! (meglepő)

esetem az ASUS laptoppal

Tisztelt cím_felkialtojel_

A tegnapi napon vásároltam egy K50IJ-SX009L asus laptopot, melyre előtelepítve linux operációs rendszer volt _zarójel nyit_redflag_zárójel zár_. Az egy dolog, hogy grafikus felület nélküli operációs rendszerrel árulnak egy laptopot 2009-ben, de a linux-szal telepített laptopon is van olyan hardware eszköz melyet nem támogat az operációs rendszer. Egészen pontosan a wifi és a hangkártya azok melyeket az újonnan feltelepített rendszer nem volt képes kezelni. Az interneten való tájékozódás után derült ki, hogy az ezen szériához értékesített hibásan kezelt eszközöket egyik linux terjesztés sem támogatja. Ezek után jogos a kérdés, hogy akkor hogyan képzelték azt, hogy a laptopot linux operációs rendszerrel értékesítik _kérdőjel_. Véleményem szerint ez teljes mértékben kimeríti a vásárlók megtévesztését.
Várom mielőbbi javaslatukat a probléma megoldására _felkialtojel_

Köszönettel_kettospont_
Gossler Károly

ui_kettospont_ a formot fejlesztő céget felvilágosíthatnák, hogy a kettőspont, felkiáltójel és a kérdőjel is írásjel. Köszönöm.

gui unittest

Ilyenkor úgy érzem hogy igazolva vagyok, hogy az ötleteim nem is annyira nagy hülyeségek! 🙂
Most találtam meg az előző bejegyzésben írt elképzelés tökéletes opensource megvalósítását! Firefoxra!
A program neve Selenium. Próbálgatása még folyamatban.
http://seleniumhq.org/

kattintson a gép!

Facebook-on nem rég felfedeztem a farmville alkalmazást. Nagy általánosságban elmondható hogy nem játszom. Bár néha amikor már nagyon sok a gőz és elkap a nosztalgia, akkor előveszem az age of empires-t vagy a settlers-t. De ez is minden 20. szökőévben 1x van.
A játék lényege annyi, hogy van egy x*x méretű táblád amire ültethetsz és vásárolhatsz mindenféle kelléket. Kezdetben jól kiszámoltam hogy mit érdemes és mostanra szépen gyarapodó gazdaság van… egy 12*12-es mezőn ami annyit jelent, hogy aratáskor, felásáskor és ültetéskor kell kattintani egyet. Ez ugye 12*12 (-1 mert csak 143 van valójában) * 3 kattintás lenne. Mivel azért továbbra sem vagyok időmilliomos, lusta is egy picit és kiváltképp nem vagyok titkárnő hogy kattintgassak tegnap este írtam egy programot ami mindezt megcsinálja. Már úgyis régóta meg szerettem volna nézni hogy mivel lehet kattintásokat, billentyű leütéseket és egérmozgást imitálni linux alatt. A megoldást a xlib-ben és a gdk-ban találtam meg.
Gdk segítségével nézem meg egy adott pixel színét:

import pygtk
pygtk.require('2.0')

import gtk

screen = gtk.gdk.screen_get_default()
img = screen.get_root_window().get_image(int(x), int(y), 1, 1)
print screen.get_system_colormap().query_color(img.get_pixel (0, 0))

Míg a mozgatást…

from Xlib import display, X, XK

self.display = display.Display()
self.root = self.display.screen().root

pointer = self.root.query_pointer()
pointer.root_x, pointer.root_y

… a kattintást…

#1 left, 2 middle, 3 right
Xlib.ext.xtest.fake_input(self.display, Xlib.X.ButtonPress, 1)
self.display.sync()

Xlib.ext.xtest.fake_input(self.display, Xlib.X.ButtonRelease, 1)
self.display.sync()

és a billentyűleütést az xlib végzi.

Üzleti(bb) felhasználásban is látom némi értelmét a programnak. Komplexebb felületteszteléshez lehet(ne) használni oly módon, hogy a böngésző szabványos csatornán kommunikálva kérné a programtól a műveletet majd ezek után ellenőrizné a végrehajtás eredményét. Így meg lehetne oldani sárkánydobás (drag’n’drop), gépelés, billentyűleütések, egérmozgások (akár gesztikulációk) emulálását és ezáltal webalkalmazások tesztelését.
Több X indítással meg akár tesztfarm létrehozása sem lehetetlen elképzelés.
Másik elvetemült ötlet szerint akár a követett és felvett felhasználói műveletek is visszajátszhatóvá válnak.

adatlopás?

connor@tudor:~$ resolveip goolge.hu
IP address of goolge.hu is 193.28.86.55
connor@tudor:~$ resolveip google.hu
IP address of google.hu is 74.125.77.104
IP address of google.hu is 209.85.229.104
IP address of google.hu is 216.239.59.104
connor@tudor:~$ resolveip 193.28.86.55
Host name of 193.28.86.55 is netem.hu

webprogramozó

tapasztalatok webprogramozó okj-s tanfolyásról:

infó órán feladat: csináljunk egy szöveges dokumentumot az asztalra
előttem ülő srác a következő:
start -> office -> word
tanár “nem-nem, asztal jobb klikk -> új -> szöveges dokumentum”
srác jobb klikk a start menü gombjára
“nem-nem, felette”
srác jobb klikk az asztal egyik ikonjára
“nem-nem, mellé”
ok, végre megtalálta
csinálni kellett egy vbs scriptet
van benne egy olyan h msgbox
nah srác beírja ‘msg box’
és nem megy
“biztos szar a gép” és újraindította

web dizájner

Mostanában nézegetem az álláshirdetéseket és a nézegetés közben találtam ezt a gyönyörűséget:
http://www.graphisoft.hu/ceginfo/allaslehetosegek/web-designer/

Mi a probléma? Aki ezt kiírta nem igazán konyít a témához. Miért?
Webdesigner a szakmán belül a grafikust szokta jelenteni. Nézzük hány szakterület van egy álláshirdetésen belül:

  • “A Graphisoft internetes megjelenésének megtervezése, menedzselése, Weboldalak tervezése, készítése”: ez eddig ok. Bár a készítésnél már rezeg a léc.
  • “adminisztrálása, koordinálása”: Vagyis ő frissíti? Tologaja a cms-t és teszi ki az anyagot?
  • “Weboldalak lokalizálásának menedzselése”: Hát ezt a munkát se szokta grafikus végezni. Vagy Kelemen Gábor egy webdesigner! :)))
  • “Webes marketing kampányok támogatása”: Ez is egy szakterület.
  • “jól ismersz valamilyen webes script nyelvet,”: Ajaj.
  • “keresőoptimalizálási ismeretekkel (Google)”: SEO szaki…

Én ilyeneket olvasva mindig elbizonytalanodom. Most akkor kit is keresnek? Mert lehet, hogy egy 20 kezű mindenhez értő jómunkásembert, de akkor azt ne nevezzük már webgrafikusnak. Legyen mondjuk internetes szakember (Webmanager :)). Vagy jó, legyen webgrafikus de akkor határoljuk csak grafikára a követelményt. Kíváncsiságból belenéztem a szoftverfejlesztő oldalra is. Na! Ott már látszik hogy a cég szakterülete alapvetően a c/cpp szoftverfejlesztés! Nincs is hatalmas mellélövés, csak az ami egy szoftverfejlesztő számára szükséges. Talán egy kicsit kevés is. 🙂

name based virtual host és az ssl

Ezidáig a címben szereplő témára nem igazán volt lehetőség. Az volt a gond, hogy a http protokoll fölött ment az ssl kapcsolat létrehozása, az ssl kapcsolat létrehozásakor viszont a TLS handshake nem közvetítette hogy melyik virtualhosthoz szeretne csatlakozni majdan a http. Kb így zajlik rendesen:
K: Kapcsolódás
Sz: Nyilvános kulcs küldése (host1.hu)
K: Fogadás után a nyilvános kulcs segítségével elkezdi küldeni a titkosított http folyamot.
K: (titkosított adat, host1.hu PK) HTTP Kérés
Sz: (titkosított adat, host1.hu PK) HTTP válasz

Az okosok viszont kitalálták, mi lenne ha a TLS handshake során (mint az SMTP során a hello-val), elküldené azt is a kliens hogy kihez szeretne csatlakozni (host2.hu u.a. mint host1.hu):

K: Kapcsolódás (host2.hu -t küldi, a többi kötelező adat mellett).
Sz: Megkapott adatok alapján host2.hu nyilvános kulcsának küldése.
K: (titkosított adat, host2.hu PK) HTTP Kérés
Sz: (titkosított adat, host2.hu PK) HTTP válasz

Ennek a technikának a neve Server Name Indication (SNI). Mindehhez a TLS 1.1-t kell támogatnia a kliensnek. Nézzük milyen kliensek támogatottak (kapcsolódó wiki alapján):

  • Mozilla Firefox 2+
  • Opera 8.0+ (TLS 1.1-t be kell kapcsolni)
  • Internet Explorer 7+ (csak Vista!)
  • Google Chrome (Vista, XP nem)
  • Safari 3.2.1 Mac OS X 10.5.6

Szerver oldalon:

  • Apache 2.2.12+ vagy mod_gnutls mod_ssl helyett. (OpenSSL esetén 0.9.8f+, j-től default)
  • Utolsó lighttpd

Azok a kliensek akik nem támogatják továbbra is kapják az ssl_error_bad_cert_domain -t a többiek számára megoldódik az ilyen jellegű probléma.
Rossz hír az ubuntusok számára, hogy a Karmic ugyan az apache 2.2.12-t fogja szállítani, viszont OpenSSL-ből csak a 0.9.8f-et ami bizony a funkcionalitás backportja nélkül édes kevés…
Szóval megoldás már van csak meg kell várni míg elterjed!