Let the light pierce through the darkness Close all old accounts, turn a new leaf Re-learn that old lesson of friendship Kill nor be killed, settle for lessening Amidst us of this fossilized hatred
connor naplója
programozással kapcsolatos okfejtések…
Perhaps that time has not come yet when our, Gods would listen to the beats in our hearts, peace and happiness spread their glow, perhaps we would have to force Mother Time?.
opensearch és javascript
Kisvirág csiripelte, hogy Johu designja megújult (nem igazán használom, nem tudom mi változott
). Az oldalt megnézve feltűnt, hogy JSből hozzá tudják adni az opensearch keresést Firefox böngészőkhöz. A kód mivel csak Firefoxot támogat kicsit kibővítettem. Ilyen lett:
- function addEngine()
- {
- var xml_url = 'http://opensearch.xml.url/opensearch.xml';
- var img_url = 'http://opensearch.image.url/opensearch.gif';
- var name = 'OpenSearch';
- if (typeof window.sidebar.addSearchEngine != 'undefined')
- window.sidebar.addSearchEngine(xml_url, img_url, name, 'General');
- else if (typeof window.external.AddSearchProvider != 'undefined')
- window.external.AddSearchProvider(xml_url);
- }
Így már IE-t is támogat (7.0+). Van még opensearch képes böngésző?
mobil vízió
Valamikor a nem túl távoli jövőben: Fut a dietetikus program a mobilon. Étteremben fizetek, a program megkérdi hogy eltárolja-e azt hogy mit ettem? Eltárolom. Majd átküldöm a dietetikusnak az aktuális étrendem. Aztán már csak konzultálni megyek hozzá az új étrendemről.
Ha nem étteremben eszem, akkor egy két gombnyomásra felvihetem, hogy éppen most mit ettem. (finom kolbászos kenyeret
)
(elég inspirálóak Doransky mobilos feed-megosztásai)
hunspell c api
Ahogy a cím írja!
Hunhandle
Megnyitott szótárállományok struktúrája.
void Hunspell_create(const char *, const char *)
Szótárat nyit meg.
Első paraméter aff fájl útvonala.
Második paraméter dic fájl útvonala.
int Hunspell_spell(Hunhandle *, const char *)
Szó helyességét ellenőrzi.
Paraméterek:
1. megnyitott szótár
2. szó
Visszatérési érték:
0 – hibás
> 0 – helyes
char *Hunspell_get_dic_encoding(Hunhandle *)
Szótár karakterkészletét adja vissza.
pl: UTF-8
int Hunspell_suggest(Hunhandle *, char***, char *)
Javaslatot tesz a hibás szóra.
Paraméterek:
1. szótárállomány
2. lista amibe elhelyezi a javaslatokat
3. szó
Visszatérési értéke a lista hossza. Ha nincs elem a lista NULL.
Teszt kód:
- int main()
- {
- Hunhandle *dic;
- char *word_ok, *word_notok, **slist;
- int list_size, i;
- word_ok = "hejes";
- word_notok = "helyes";
- dic = Hunspell_create("hu_HU-1.5/hu_HU.aff", "hu_HU-1.5/hu_HU.dic");
- list_size = Hunspell_suggest(dic, &slist, "hejes");
- for (i = 0; i < list_size; i++)
- {
- }
- Hunspell_destroy(dic);
- return 0;
- }
A kód a következő kimenetet produkálja:
0
1
UTF-8
11
helyes
tejes
lejes
nejes
pejes
vejes
bejes
fejes
hetes
heges
heves
gugli os
Bejelentették. Kb sejthető is volt, hogy mit akarnak, azt is hogy hogyan.
Rögtön kapóra is jön egy -egyenlőre- tervben létező rendszerhez:
Sokszor volt már az, hogy mentünk volna el, de hoppá meg kéne nézni a menetrendet! Minden gép már ki volt kapcsolva, mire betölt el is megy a busz/vonat/hév/akármi. Ezért már egy ideje gondolkodtam azon, hogy fel kéne használni a “csökkentsük a bootidőt” hype-ot. Összeszedni egy vasat, amire egy megfaragott linux kerül, valami egyszerű felülettel. És itt jön be a google os. Ők már alapból azokon gondolkodnak, hogy gyorsan bootoljon és csak egy böngésző legyen rajta. Még ugyan nem szedtem le, de ha reszelhető annyira amennyire nekem kell máris megvan az operációs rendszer, csak egy kezdőlapot és egy megfelelő vasat kell alátolni! (hibernáláskompatibilis + ssd merevlemezes + passzív hűtésű/csendes)
Jó móka lesz!
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.

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:
M.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:
Ö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ő)
RE: adatbázis-szerkezet “verziókövetése”
A korábbi írásban leírt grep-et átírtam egy awk script-be:
http://workshop.connor.hu/src/filter.awk
Még ez se tökéletes de már nagyságrendekkel jobb! Határozottan tetszik az AWK!
ASUS laptop folyt.
Az asus a vállalt időn belül nem reagált.
Viszont a bolt ahol vásároltam (gödöllői Unitel) adott egy usb-s audio modult, hogy ameddig nem oldódik meg legyen mit használni.
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.
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.

