Én csináltam!

Vagyunk páran, akik időről időre hobbiból programozunk egy magunk által kitalált projektet. Ez lehet, hogy hasznos lenne más számára is, és előfordul, hogy csak mi vagyunk rá büszkék. Ha van ilyen projekted, legalább 2 sor, és csinál valami hasznosat, szépet, vagy csak érdekes, akkor írj róla!

Hozzászólások

Rootolt Android telefonra billentyűzetleütések injektálása távolról. link

Bash script, ami lekapcsolja a gépet, ha kevés a forgalom a hálokártyán (tipikusan azért, mert a letöltés véget ért). link

A kodhoz: $data-ban az eth0-ra van szures, ha vki mas interfacet hasznal, pl eth2, akkor nem mukodik.

if=`cat /proc/net/dev | grep -i eth | awk '{print $1}' | cut -d: -f1`

itt pedig:

data=`cat /proc/net/dev | grep $if | sed -r 's/.*://' | sed -r 's/ *([0-9]*) *([0-9]* *){7}([0-9]*).*/\1+\3/' | bc`;

de ha tobb interface van, csak az elso lesz feldolgozva, ami tovabbi munkat igenyel, vagy megadod parameterben, hogy melyik interfacere allitson be szurest..

- nem szerencses valtozonak builtin nevet adni (if) ;-)
- ez a cat-grep-awk-cut szornyu. awk is tud grep-szeruen szurni, az iface (device) neve garantaltan kisbetus, arrol meg ne is beszeljunk, hogy "ha vki mas interfacet hasznal" lehet wlan0-tol kezdve barmi... es ez meg csak a linux; BSD-ken, Solarison driverfuggo a kartya neve. Mindenesetre a fenti

if=`cat /proc/net/dev | grep -i eth | awk '{print $1}' | cut -d: -f1`

helyett pl az

iface=$(awk -F\: '/eth/ {print $1}' /proc/net/dev)

verziot ajanlom, de nalam pl van eth0, eth1 is, igy nem nyert a dolog. legjobb parameterkent, pl '-i eth0' megadni az interface-t, esetleg -i nelkul lehet eth0 a default.

szerk. bocs, hulye vagyok, pont ezt irtad te is ;-)

Perl script, ami egy text fájlban felsorolt PubMed ID-k alapján letölti a hivatkozásokat az OpenOffice irodalomjegyzék adatbázisába. Amolyan poor man's EndNote. pickupfrompubmed a pastebin-en. DBI, DBD::XBase, XML::Simple, Text::Unidecode modulok kellenek neki, és a kódban be kell állítani az openoffice könyvtárat, ahol a beállításokat tárolja. Nem túl felhasználóbarát, de mükszik.
Csaba

C library (egyelőre osx és linux-ra (vagy mindenre ami posix)) callback centrikus thread-safe tcp/ip server/client hálózatkezelő, hogy ne kelljen select-eket használni, meg fél hektár header file-t includolni :)

Signal és timeout eseményeket tud kezelni? Gondolom socket event-eket regisztrál a programozó, abból összeállítod a select() fd_set paramétereit. Fogadhatnál abszolút időbélyegekkel felcímkézett időzített eseményeket is, amelyeket bedobnál egy prioritásos sorba. A sor elején álló eseményig hátralévő (relatív) időintervallumot megadnád a select() timeout-jaként, és máris tudna a programozó kapcsolatfüggő időkorlátokat regisztrálni a kapcsolataira. Mit szólsz? :)

Inkrementális SVD library. Speciális esetekben gyorsabban tud SV felbontást előállítani, úgy, hogy felhasználja az előző felbontás eredményét. (És ugyanez GPU-ra, csak az még nincs publikálva, mert gány a kódja ... :) )

:) Gondolkoztam pedig, hogy linkeljem-e, mert nem sok embernek lehet ra szuksege. Meg az se biztos, hogy neked jo lesz, mert eleg specialis esetben hasznalhato:

Szoval amit tud:
- vannak vektoraid (lehetoleg jo nagy dimenziosak: > 10k)
- ezekbol veszel egy parat (lehetoleg keveset < 100)
- ebbol keszitesz egy SVD felbontast
- majd egy update muvelet segitsegevel az uj vektort belepteted az SVD "bazisba"
- aztan egy downdate muvelettel a "legregebbi" vektort kiejted a bazisbol
- igy a bazis merete, es a memoriaigeny is fix

Egyebkent a memoriaigeny kb ennyi float vagy double: 2*N*(M+1) + 8*M*M + 14M,
ahol N a nagyobb es M a kisebb dimenzio.

A muveletigeny kb. egy M*M-es SVD es egy N*M x M*M -es matrixszorzas muveletideje, szoval itt latszik, hogy ha M tulno egy hataron akkor nem lesz gyorsabb mint elvegezni a teljes SVD-t.

Ha ilyesmi programot keresgelsz akkor folytathatjuk privatban, tudok kuldeni algoritmust, par merest a sebessegrol, illetve megvan a GPU-s valtozata, ami egesz igeretes, de csak egy nem tul eros kartyan tudtam eddig tesztelni ...

sshc - perl curses::ui-s ssh frontend

felparsolja az ssh kliens konfigot és az abban található sessionok közül lehet indítani ssh-t a launchyhoz hasonlóan.

kép

Turbo Pascal 7.0 -ban (+Assembly) írtam GUI library -t. Egérkezelés (soros port), alapvető ablakkezelés (ablakmozgatás, kicsinyítés, nagyítás, bezárás, ablakok fedése egymással, ablakok alatti terület lementése, visszatöltése, stb) és vga/svga módok kezelését tudta. Nem nagy cucc, de 14 évesen írtam autodidakta módon. Sajnos már nincs meg a forrás :(

Én "rendszer diagnosztikai" progit írtam. Kiírta grafikus diagrammal hogy mennyi a hdd mérete, és mennyi még a szabad. Meg CPU benchmarkot, ami adott egy viszonyszámot. :)

Akkor még nem tudtam, hogy létezik ilyen hogy MMX, SSE, SSE2, SSE3... stb.. de akkor jópofa volt hogy a DX2-es gépem mennyivel gyorsabb mint egy 386-os, vagy mint egy SX. :)

Én is belekezdtem hasonlóba. Anno egy DLH-hoz hasonló game cheat adatbázist akartam összehozni. Az enyém kicsinyíteni-nagyítani nem tudta az ablakokat, ellenben volt scroll, egérkezelés, árnyék az ablaknak, stb.
Csak aztán szépen abbamaradt a project. Valahol még talán megvan a forrás is.

En is tizenvalahany evesen irtam egy csaladfa kezelot/kirajzolot, freepascalban. Vegre 32 bites volt :) es a binaris nagyobb lehetett 64k-nal. Kezelte az ablakokak, a kepernyofelbontast. Meg ki is nyomtatta a csaladfat ascii-s vonalabrakkal matrixnyomtatora. En kiirtam CD-re, de nem tudom hol van :)

subscribe
---------------------------------------------------
Talisker Single Malt Scotch Whisky aged 10 years :)

Interaktív, real-time Julia-halmaz nézegető Perl-ben

http://hup.hu/node/80376

Írtam egy hasonló elven működő Game of Life szimulátort is, de annyira lassú, hogy nem merem linkelni (a PerlMonkson fent van, meg lehet keresni).

CNC vezérlés átalakítása saját kényelmemre
- Az előlap nagyon szerény volt: 2 db plexi, közötte HP Deskjet 110c nyomtatás :) - megmosolyogtató
- Kibeleztem, átszerveztem, előlapot készítettem, beépítettem a meghajtókat, le lett rendesen árnyékolva...
- két gép volt benne és óriási kupleráj... a második képen látni az eredeti vezérlést...

megy, mint az óra...

http://kepfeltoltes.hu/view/100216/DSCN8872_www.kepfeltoltes.hu_.jpg
http://kepfeltoltes.hu/view/100216/DSCN8734_www.kepfeltoltes.hu_.jpg

MesterLogika SDL használatával készült logikai játék. Még csak próba verzió, azaz a béta is fényévekre van, de játszható. Forrás akkor lesz kitéve, ha újraírtam és szépen fog kinézni. Most még szégyen, ahogy kinéz. Sajnos időm most nincs foglalkozni vele, de nem adtam fel, hogy kész legyen valamikor.
http://bemutatkozom.hu/viking/
--
unix -- több, mint kód. filozófia.
Life is feudal

Itt
Hostolva, mig van accom es helyem.
Azt mondtam, multiplatform, emlekeim szerint Lazarussal keszitettem, es kellett kicsit hegeszteni, h a referencia Delphi 5.0 is vigye, de a benne levo exe-t most kiprobaltam wine alatt es jol mukodott. Jo jatekot.
Jah, dokumentacio nincs, nem user friendly, de ha ismered a jatekot, sztem rajossz a mukodesere.

monoBristol - Gui a Bristol szintetizátor csomaghoz. Ubuntu és Debian tárolókban benne van, vagy http://dacr.hu/monobristol

Fejlesztés alatt pedig egy online társasjáték.

Szerk.: az orrom előtt dolgozik a kicsike, s kihagytam :D
Online képtovábbításra ffservert használunk, de a netünk elég instabil, így ha megszakad a jelfolyam, nem igazán bírt magához térni a kapcsolat. Összeraktam egy kis progit, ami wget-el 15 másodpercenként lehúzza a szerverről az ffserver stat.html-jét, onnan grep segítségével kinyeri, hogy mennyi bájtot töltött fel a feladó-gép. Ha két 15 másodperces ciklusnál is ugyanannyi az érték (azaz nincs újabb érkezett bájt), ssh-zik a szerverre, az ffservert újraindítja, törli az ideiglenes streamfájlt, majd a feladógépen elindítja az ffmpeg kódolást a szerverre, majd logolja a kimaradás időpontját.
Nem szép a kódja, de már egy éve tökéletesen felügyeli a net-szakadásokat. Forrás nincs publikálva, de annyira egyszerű, hogy ez alapján bárki össze tudja rakni a scriptet.

társasjátékról jut eszembe, én is írtam egyet, még az akkori csajomnak poénból, nagyon egyszerű meg sz.r :) csak hamar gyorsan kellett egy mert nem volt kéznél kinevet a végén :)

http://log69.com/temp/vb6progik.zip

betettem néhány régi vb6-os progimat, csak magam szórakoztatására csináltam ezeket, persze névjegy-gyel szigorúan, kéretik fenntartással kezelni!

megj.: Mindegyik megy wine-vel.

Billiard (bal egérrel golyó sugara állít, jobb gombbal kihúz és lő)
Clock (bal dupla klikkre lehet csak bezárni :D)
Crazy Dots (biztos ismeritek az algoritmust, Ctrl+R és Ctrl+A, vagy bal egérrel gombbal lehet rajzolni pontokat)
Skandi (akkori lottó mániám)
Sphere (ez is mánia, itt a numerikus + és - gombbal lehet a "felbontást" növelni, space gomb meg nézet)
Tarsasjatek (itt jobb gombra helyi menü van + az egérrel közelebbi bábuval lép bal klikkre)

remélem nem lesz gondom az ms dll újraterjesztéséből :O

A feladat:
dd if=/dev/nagyblockdevice of=/nfs/barmi

Ilyenkor a CPU malmozik, a hálózat meg nem. Ráadasul az otthoni "NAS" eléggé köhögött az írás közben.

Megszoktam, hogy komplett HDD-t dd-vel mentek és utólag tömörítem. Egyszerű és bevált, de így még jobb lesz. Köszönöm. :)

--
http://blog.htmm.hu/

Ha amúgy is bzip2-vel tömörítenéd, akkor kívánom, hogy tudd hasznosítani az lbzip2-t.

Ha a bzip2-re csak azért esett a választásod, mert "miért ne", akkor a fenti és hasonló feladatokhoz ajánlom megfontolásra ezt a cikket, a benne tárgyalt

tamp

tömörítőt, illetve az

lzop

-t. (A

tamp

-et személy szerint nem használom, mert ahol használnám, az egyrészt egymagos gép, másrészt se nem GNU/Linux, se nem Solaris; úgyhogy ott marad az lzop.)

Ha kifejezetten az erős tömörítés fontos, akkor ajánlom a plzip-et, ami eredetileg az lbzip2-0.17 fork-ja, de a

liblz

-t használja (LZMA) tömörítésre a

libbz2

helyett. (Nem én fejlesztem.)

Micsoda emlékeket ébresztett ez fel bennem :D. Nekem is volt ilyenem régen. Párhuzamos port, /dev/coffe, és sima echoval működött. Elsősorban arra használtam, hogy egy szkript reggel feltekerte a zenét, felkapcsolta a villanyt és lefőzte a kávét. Így könyebb volt korán kelni ... (meg volt olyan változata is, hogy a desktop notification area-n volt egy ikon amivel lehetett kapcsolgatni a villanyt, aminek persze semmi értelme nem volt, de "funky" volt, hogy idézzek fentről ... )

nyosweb: Egy egyszeru, kicsi webserver, ami a 0.9-es es 1.0-as HTTP egy, a mukodeshez szukseges minimalis subset-jet implementalja. C-ben irtam, preforkol, van benne vedelem a tulterheles ellen, mukodik az asztali (x86) gepemen es Zauruson is.

reversi/othello: Egy alfa-beta nyeseses minimaxot implementaltam c++-ban, hogy kiprobaljam hogy mukodik a gyakorlatban. Nincs benne sok optimalizalas, ma mar maskepp allnek neki. Mindenesetre a legtobb emberi ellenfelet megveri. (persze gep es turelemfuggo - ugyanis az idovel nem gazdalkodik normalisan, nem is meri)

dzsinn: Egy 3D engine-nek indult, de szethullott a csapat. Amit tud: alakzatokat be tud tolteni XML-bol, texturat kezel, valamint IFS fraktalokat rajzol (ezt HW-bol szamolja). OpenGL/C++

bot engine: Egy esemenyvezerelt webes robothoz tartozo keretrendszer PHP-ban. Meg lehet neki adni, hogy toltson le bizonyos oldalakat, utana ezeket valamilyen modon elemezze, a felismert mintakra reagaljon (regexp vagy adott XPATH-on letezo elem meglete), adatot gyujtson, es utana a belso allapotanak megfeleloen menjen tovabb.
Azert kezdtem el irni, mert egy idoben tobb olyan feladatom volt, ami valami hasonlot igenyelt, es untam copy-paste-tel osszevagni a korabbi botok forrasabol az ujat. A jelenlegi meg nem eleg letisztult (lehet, hogy soha nem is lesz), de jol mukodik. Kicsit kusza a kodja, es nemtrivialis a hasznalata, de nekem megfelel.

--
If women are so good at multitasking, why can't they have sex and a headache at the same time?

Reversinel az viszonylag egyszeru. Minel tobb babud van, annal jobban allsz (mert az nyer, akinek a vegen tobb van). Tehat az adott node erteke a figuraid szama - az ellenfel figurainak szama.
Lehet sulyozni, mert pl. a sarkok, elek strategiailag tobbet szamitanak, de ennel tobb nem kell.

Damanal, amobanal persze mas a helyzet, ott tenyleg bonyolultabb ez a resze. Csereben a lepesgeneralas trivialis (reversiben az komplikaltabb).

--
If women are so good at multitasking, why can't they have sex and a headache at the same time?

Legegyszerűbb mailing list, ha az aliases-ben felsoroljuk a címzetteket. Persze ki is lehet rakni text file-ba. Viszont Sendmail-nél nálam ha egy ilyen listán lévő személy válaszol a levélre, akkor nem a "lista" címre küldi vissza a levelet, hanem az eredeti írónak. Engem eléggé idegesített ahhoz, hogy írjak egy milter-t. Ráadásul nálam a return-path-t sem tölti ki rendesen az MTA - szerintem egy bug. Végül is így nem csak a válasz címzettje lesz helyes, hanem "rendes" levelező listák standard haeder-jeit is be lehet rakni a levél fejlécébe. Ezután a levet egy átlagos mail programmal megnyitva lesz "válasz a listára", meg "leíratkozás" gomb, stb... C-ben programozni olyan, mint részegen tántorogni egy aknamezőn.

"Jegyezze fel a vádhoz - utasította Metcalf őrnagy a tizedest, aki tudott gyorsírni. - Tiszteletlenül beszélt a feljebbvalójával, amikor nem pofázott közbe."

Egy egyszerű script ami kiolvassa egy fájlból a benne szereplő neveket és azok alapján létrehozza a csoportot, homemappát, felhasználót etc.

#!/bin/bash

PW='minad'
GR='users'
GR_ID=2000
addgroup --gid $GR_ID $GR

subUseradd()
{

for USER in $(cat /home/comp/$GR'.dat') ;do

mkdir /home/comp_user/$GR/'users'$USER -p

useradd -d /home/comp_user/$GR/'users'$USER -g $GR -s /bin/bash 'users'$USER
echo $USER:$PW | chpasswd

chown -R users$USER:$GR /home/comp_user/$GR/'users'$USER
chmod 705 /home/comp_user/$GR/'users'$USER -R

cp /etc/skel/.bashrc /home/comp_user/$GR/'users'$USER
cp /etc/skel/.profile /home/comp_user/$GR/'users'$USER
done
}
clear
subUseradd

qzsir.googlecode.com Egy egyszerű zsírozós játék C++/Qt-ban írva.
---------------------------
Oszt jónapot!

Mester, segíts! :D
Zsírozni szeretnék, oly rég játszottam, de nem tudom lefordítani.- Szinte már minden QT-s cucc fent van, de ezt kapom:

berci@berci:~/Letöltések/qzsir-1.0.0-beta$ qmake
berci@berci:~/Letöltések/qzsir-1.0.0-beta$ make
g++ -c -pipe -g -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I/usr/include/qt3 -I_build/uic/ -I_build/moc/ -o _build/obj/bot.o bot.cpp
bot.cpp:4:14: error: Qt: Nincs ilyen fájl vagy könyvtár
bot.cpp: In member function ‘int Bot::botStartTheRound(int*)’:
bot.cpp:75: error: ‘qrand’ was not declared in this scope
bot.cpp:84: error: ‘qrand’ was not declared in this scope
bot.cpp:93: error: ‘qrand’ was not declared in this scope
bot.cpp:102: error: ‘qrand’ was not declared in this scope
bot.cpp: In member function ‘int Bot::getNonTenAndAceAndMaybeSeven(int*)’:
bot.cpp:203: error: ‘qrand’ was not declared in this scope
make: *** [_build/obj/bot.o] Error 1

Nokia telefonhoz névjegyzéket tölt fel vcfből. B2P.py, kell neki PyS60.

Hmmm. Megoldottam a rovásírás problematikáját a weboldalakon:)
Ez egy eléggé kevesek számára hasznos dolog, de marhajól néz ki.
Ráadásul kissé túlteng bennem a nemzeti érzés is, azért is juthatott eszembe, hogy meg kéne oldani.

Függetlenül attól, hogy a napi használhatósági értéke konvergál a nullához, a legjobb tudomásom szerint ez nekem sikerült csak.
Én csak ezért vagyok rá büszke. No meg a kitartásomra, hogy egy hétig agyaltam rajta csak azért, hogy egy pofonegyszerű CSS trükkre rájöjjek.
Annyira gyalázatosan egyszerű, hogy eddig mindenki akinek elbüszkéledtem vele, azt mondta. "jajjmááá". (akkor miért nem ő oldotta meg? :)
De jó poén, itt a helye. (teszt, pölö: www.fusz.hu.)
--
A linux felhasználóbarát. mindössze megválogatja a barátait...

eh de veszett lassan lehet scrollozni az oldalt. Más oldalak mennek, így szerintem nem nálam van a bibi.

Egyébként nemrég kellett csinálnom egy weboldalt egy íjászboltnak, kérték, legyen rovásírással is feltüntetve néhány dolog, akkor találtam ezt:
http://www.rvs.hu
Nagyon jó pofa fordító, megkímélt attól, hogy megtanuljam ezt a számomra felesleges írásjelkészletet. :)

Opacity,text-shadow,box-shadow effektek fogják le a scroll-t :///
Ezen az oldalon kíséreltezem mindig, mindeféle ötlettel. Készítettem olyan "tanulmány" oldalt, ami egy fullos Desktop környeztet adott GUI-nak.
Csak hülyeség, mert amit egy weboldalon egy kattintással nem érsz el, (indokolt esetben kettővel) azt rosszul terveztem meg :))))))
--
A linux felhasználóbarát. mindössze megválogatja a barátait...

Nem vagyok túl jó ismerője a rovásnak, úgyhogy inkább kérdem: hogy vannak megoldva a kettősbetűk? Azt tartom a rovásírás legnehezebb részének.

—-—-—
int getRandomNumber() {
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

Ahogy latom, sehogy, raadasul olyan fontot hasznal, ami a nagybetuk helyen tarolja az osszevont betuket/speci karaktereket. Szoval a "Főoldal" feliratbol valami egeszen egzotikus dolog lesz, a "Magyarero.hu"-bol "1000 A G SZ A R E R O . H U".
Arra meg nem jottem ra, hogy mikor hasznalja a magas es mely "k"-t.

Az otlet jo, de nem lehet a latin ABC-t 1:1-ben megfeleltetni a rovasnak, kell ele valami plusz kod (valoszinuleg statisztikai/szotar alapon megvalositott "sz","zs","cs" betukkel).

--
If women are so good at multitasking, why can't they have sex and a headache at the same time?

Nos, ez valóban így van. A helyzet a köv. Létrejött egy "rovás bizottság", ami a rovás jelrendszert akarta (sikerrel) az UTF8 szabvány alá szuszmákolni. Ezt sikerült elérniük. A gond a következő: több .ttf is készült ennek a felhasználásával. Mivel a sazkértők egy raklap dologban a mai napig nem képesek megállapodni, így forudlhat elő, hogy több .ttf is létezik. Az egyikben a számok nincsene definiálva, a másikban a kettős hangok jelei, stb... sőőőt, olyan is van, ahol alkottak is több új jelet, pl: a @ -ra. Egyszóval ezt a részét nem én szeretkeztem el :D Próbáltam abból dolgozni, amit a szakik csináltak. Az elején, akármelyiket is akartam felhasználni, a másik betűtípus alkotója telefonon hívott fel, és cseszett le (néha nem emberi hangnemben), hogy mégis mit képzelek magamról, miért nem az övét használom, hiszen az a jó.
Egy idő után a belátásom szerint döntöttem, és mindegyiknek megírtam, hogy egységesítsék, csináljanak egyetlen betűtípist, aztán majd beszélünk, addig hagyjanak békén.

Erről ennyit. :)
--
A linux felhasználóbarát. mindössze megválogatja a barátait...

Van egy-két barátom, akikben szintén túlteng a nemzeti érzés, nekik mindig ezt mondom:

És mond: Honfi, mit ér epedő kebel e romok ormán?
Régi kor árnya felé visszamerengni mit ér?

(No offense, és klassz, hogy megcsináltad, de nem vagy első. Jó sok évvel ezelőtt (kb 10-15) csináltam egy Tolkienes honlapot, ugyanígy oldottam meg a tünde írást, bár akkoriban még nem volt css, inline font-face trükk kellett ttf importhoz. Azóta sok víz lefolyt a Dunán, és amióta kijött a film és mindenki Tolkien rajongó lett, nem hangoztatom...)

Rovásból akkor mégiscsak első vagyok :))))
De ügyes vagy a css nélküli megoldásban. Azt olvastam, hogy a font-face ebből az IE featureból került át a css-be. Ezért van az, hogy a font-face dolgot az összes IE támogatja, míg mondjuk az opera csak a 10.x, az ff pedig a 3.5 -től tudja ezt.
--
A linux felhasználóbarát. mindössze megválogatja a barátait...

Desktop kliens a Toggl.com "time tracker" szolgáltatásához a hivatalos API -n. A csapatom megkövetelte a Toggl -os munkaidő-mérést, de nem tetszett, hogy weboldalon kell kezelni a számlálót, ekkor dobtam össze pár nap alatt Ruby-Qt4 alapon a saját számlálom. Épp pár napja annak, hogy gatyába ráztam publikus kiadásra, kezdő Ruby-Qt4 -eseknek esetleg jó mankó lehet.

A HWSW-n van egy ilyesmi fórumtéma, ott is akadnak érdekességek: Ezt alkottam, megmutatom Nektek

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."

Összejött pár játékprogram. Ma este mindenki a máséval játszik :D
HUP Game/Application CD Collection mikor kerül a polcokra?
--
unix -- több, mint kód. filozófia.
Life is feudal

Jó pofa :)
Lassan tényleg ki lehet adni egy "HUP Tools & Games" ISO-t :D

szerk.: no el is kezdtem letöltögetni őket, ahogy időm engedi, mappákba rendezem, s ha megfelelő mennyiségű HUP-tagság által létrehozott cuccot sikerül összegyűjteni, összehozok egy ISO-t belőle menüvel és minden szépséggel. Vélemény? Hasznos lehet?

Bár egy egyszerű linkgyűjtemény a HUP-on jobb lehet, hiszen akkor mindig a legfrissebb verziók érhetők el.

nekem is tetszett, csak maga a játék bosszantott. feleségem nézte mi a szart csinálok.. :)

az nagyon tetszik, ahogy megcsináltad. SDL-re, C-ben, olyan tipikusan geek-es letisztult.

azon gondolkodtam, hogy könnyen át lehetne pofozni tetris-nek is akár, ha már megírtál minden keret részt hozzá ;)

* Térkép megjelenítő programot OpenMoko-ra tervezve, de végül annyit késett a készülék hogy nem vettem meg. A program multi-programming-language, működött Javában és .NET-ben is (egy saját fordító segítségével), így egy Winmobile-os vacakon futtattam is. Volt belőle online applet demo is saját domainen, de már nem fizetem tovább :-). Végül senkit nem érdekelt és abbahagytam a fejlesztését. sourceforge-ról még mindig letölthető kipróbálható verzió. http://yamamap.sourceforge.net/
* Template nyelvet, ami ötvözi az egyszerűséget a nagyszerűséggel. Kód generálós projekthez írtam, programozóknak egyszerűbb mint bármi más és nagyon hatékonyan lehet vele dolgozni, plusz az eredmény is gyors lesz. http://rtemplate.sourceforge.net/
* Remoting API-t, ami ötvözi az egyszerűséget a nagyszerűséggel. http://coolrmi.sourceforge.net/ - épp pár hete is dolgoztam rajta és már többet/kicsit másként tud mint ami le van belőle írva
* Parsert (ami nem generátorként működik mint majdnem minden hasonló rendszer) ami nyelvtant és szöveget kap, ebből visszaadja a szintakszisfát. Ezt először az 1etemen csináltam valami hagyházinak, később újraírtam, de eddig nem használtam semmi értelmesre. Tervem hogy csinálok egy saját programnyelvet, ahhoz kell. https://sourceforge.net/projects/astparser/
* Csináltam egy Python szolgáltatást Java frontenddel, aminek segítségével ébresztőt lehet beállítani amikor bekapcsol a notebook és elindul egy MPD playlist lejátszása. Szépen lassan - kíméletesen - hangosítja. Azóta sokkal jobb kedvvel kelek :-). Ezt is open source-nak szántam, de nem volt még időm publikálni. Ha valakit érdekel megteszem.
* ffmpeg libbel dekódoló és OpenGL-ben videót lejátszó lib. (A részleteket össze lehet szedegetni netről, de így egyben nincsen fenn példaprogram, pedig sokan emlegetik fórumokon.) Meg lehet vele csinálni hogy 3D-s módon jelenítjük meg a Video tartalmát - kvázi Compiz effekteljük. Ezt is csak tervezem egyelőre, hogy open source lesz.
* Gimiben még csináltam autó-szimulátort, aminek rendes fizikai modellje volt. Ez volt az amiért hajlandó voltam először beleásni magam a Budó Mechanikába és a Hajós Geometriába. Akkor DirectX-es volt, egyetem alatt grafika nagyházinak újraírtam a grafikus részét OpenGL-ben. A kód nem olyan, hogy tiszta szívvel merném publikálni, mert közben informatikus mérnök lettem és más lett a mércém :-).
* Egyetemen gráf-mintaillesztő illetve transzformációs engine-en dolgoztam. Ez volt az első komoly csapatmunka amiben részt vettem. http://en.wikipedia.org/wiki/VIATRA
* Hang elemző programot írtam még régen, amivel fel tudtam ismerni a magánhangzókat (ha kellően hosszan voltak mondva :-)
* Egyszerű Hammond szimulátor egyik barátom kérésére
* Időjelentő asztali alkalmazást - látom más is írt ilyet. Ez még standalone volt, a továbbfejlesztett változat a belső rendszerünkkel működik együtt, így az nem open source. https://sourceforge.net/projects/timeboss/
* Tartok egy informatika szakkört a volt gimimben. Egy ideje úgy döntöttem hogy csak papíron lesznek vázlatok, ott van vége a weblapnak :-). Így egyszerűbb és talán hatékonyabb is. https://sourceforge.net/projects/szig2009/

Na, ez kicsit olyan lett mint egy szakmai önéletrajz, de nem bírtam visszafogni magam ha már elkezdtem :-)

Kiosk browser XULban, ami egy Solaris/Sunray kombón fut és socketen figyelve várja a terminál kártyaolvasójáról a kártyaszámot.

Na ilyet keresek én is egy ideje, mióta nem tudom rendszerszer~uen tárolni, publikálni a projektjeimet. Egyelõre az honlapomon vannak elszórva, nemfrissítve.

~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.

Batch szkriptek win5.1 alá, közel hasonlót csinálnak, mint unix-os változataik. SP3-ban lévõ cli programokat felhasználva.

http://www.freeweb.hu/bandie91/pub/?t=2&dir=/projects/UnixLikeBatch#nav…

~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.

cirill utf8 karaktereket szer~u html tegekké alakítja. Olyanoknak, akiknek pl eroszakosan latin2 charset-et küld a webhosting-ja. Imagemagick-kel elore legyártottam a bet~uket formáló képeket.

http://www.freeweb.hu/bandie91/pub/?t=2&dir=/projects/cyril2html#navbar

~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.

Röviden utf8-latin2-html között konvertál `replace' segítségével, majd átültetem, hogy a `sed'et használja, azt hordozhatóbb. De nem egyszer~uen úgy, mint az `iconv': kalapos-, hullámvonalas- u és o bet~uket az encodingnak megfelelore állítja, vagy `&aacute;' szer~uvé ill. vice versa.

http://www.freeweb.hu/bandie91/pub/?t=2&dir=/projects/ulhconv#navbar

~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.

Olyan, mint a phpmyadmin, csak parancssoros.
`wget' `curl' segítségeivel kommunikál egy szerveroldali php-vel (hogy olyan db szervereknél is lehessen "távolról" query-zni, ahol csak a localhostot engedi be)
`w3m'mel rendereli a táblázat formát, de csv-be is ki tudja írni.

~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.

python parancssori script,
a népszeru delicious.com-ra rakja a paraméternek megadott linket
delicious.py -v http://hup.hu
alapértelmezésben ki próbálja találni az oldal címét.
bejelentkezo adatokat a ~/.delicious.py.auth -ból veszi.

~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.

pastebin.com-ra tölt fel parancssorból!

pastebin [-l language] [-n name] [-x expiry] [-e email] [-P|-p] [-s subdomain] <file>

cat <file> | pastebin

wget jóvoltából visszatér a pastebin url-lel (curl-lal rejtélyesen nem ment)

http://pastebin.com/zwyTxzbR
http://www.freeweb.hu/bandie91/pub/download.php?get=/projects/pastebin/…

~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.

sub
Ami van, annak nagy része nem publikus, ami az lenne, az meg régi. Ami publikus lehetne: egyszerű szövegszerkesztő, spec. vírusirtó egy vírusra, szöveges kalandjáték, 3D multiplayer fps kezdemény, netsnapszer kezdemény, ilyesmi. Most éppen a mission impossible - Solarah Online.

Rádió és TV statisztika oldal. Van benne számítás rendesen. Igaz, egyszerűbb dolgok, de abból nagyon sok. Eredetileg játékszerver directory oldalnak indult volna a dolog (http://www.unrealgames.hu/index.php?page=362 ami most nem frissül, de ez amúgy is kezdetleges verzió) de erre nagyobb volt az igény. Van benne minden: 6 féle stream szerver támogatása, 4 féle rendezés, egy csomó lejátszót hozzájuk lehet választani, grafikonok, frekvencialista a rádióknál. Tehát shoutcast.com magyar módra :)
Cím: http://www.rtvstat.hu/ Perlben van írva az egész.

Mindegyik radio szervererol (Shoutcast, Icecast) links2-vel letoltom az szerver weboldalat. Onnan meg egy perl scripttel szedem ki a hasznos infokat (hallgatok szama, bitrata, formatum stb...) Ez az egesz belemegy egy adatbazisba. Ami meg legeneralja a weboldalt, ebbol a DBbol szedi ki az infokat. Az egesz cucc cronbol fut 5 percenkent.

Volt mar 1-2 radio aki kitalalta, hogy ilyen jogi gond meg olyan. Irtam is neki hogy akkor irjon nyugodtan a google-nak is mert az is megtalalja a radioszerveret. Amugy meg allitsak be annak megfeleloen a szervert hogy ne lehessen kiszedni az infokat. Kesobb persze rajottek, hogy nem jo ugy aztan inkabb hagytak :)

Kicsit ujitottam az oldalon. Ceges agyonkorlatozott 80-as port only nettel is siman lehet mar hallgatni a radiokat :). Lejatszonal kell kivalasztani az `alapert.+proxy` -t. Volt mar dolgom olyan mobilnetes hozzaferessel ahol szinten csak a WWW ment meg talan az FTP (ekkor talalkoztam ilyennel eloszor, ez lehet hogy csak nekem uj). Annal is siman ment. Egyelore csak a *cast szerverek mukodnek ezzel.

Szintén, csak C-ben (változtatható és menthető táblamérettel, aknaszámmal, valamit top20-as eredménylistával), szoftlab házinak kellett :D
Pár éve csinálgatok egy PHP/MySQL-es moduláris oldal motort. A szokásos funkciókon kívül már van hozzá webshop modul is, bár a user kezelés kódja esztétikai okokból érett az újraírásra, meg a külsőre sem sokat adtam.
Van még egy weboldalhoz készült Firefox addonom.

Bye Bye Nyuszifül

subscribe
____________________
Ha igen akkor miért nem...
Linux 2.6.30-gentoo-r4 i686 Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz GenuineIntel GNU/Linux

HomeControl program - egy mini Linuxos kártya vezérli az otthoni fűtést, kerti locsolót, nyáron a medence szűrőt (csak egy felfújható nagyobb medence...). Az érdekessége, hogy az internetről letöltött aktuális hőmérséklet alapján vezérli télen a fűtést. Programozható időpontokban este kikapcsolja, reggel bekapcsolja a kazánt, a reggeli bekapcsolás időpontja a külső hőmérséklettől függ, hidegben hamarabb így mire felkelünk, már meleg van.
Nyáron a locsolás gyakorisága függ a napi max hőmérséklettől. Ezenkívül letölt csapadék előrejelzést is, így ha másnapra jelentős eső várható, akkor nem locsol.
A medence szűrőt időzítve kapcsolja, magasabb hőmérsékletnél hosszabb a működés.
A főprogram C nyelvű, bash script, sed, awk támogatással.

--
Soli Deo Gloria

A lehető legegyszerűbb módon: vettem egy 3 darabos rádiós távvezérelt dugaljkészletet. A távirányító gombjait egy-egy tranzisztoron keresztül a kártya digitális kimenetei vezérlik. A dugaljakba vannak bedugva a locsoló és a szűrő szivattyúi. A fűtéshez kellett egy kicsit meghekkelni az egyik dugaljat, hogy ne 230V-ot, hanem csak kontaktust adjon, ez megy a kazán termosztát bemenetére.

--
Soli Deo Gloria

Jómagam egy wifi internet hibabejelentő és megrendelés kezelő rendszert írtam. PHP + HTML + SQL.

Nem nagy wasistdas, de könnyen tudunk így az NHH felé hibanaplót, rendelkezésre állási adatokat, ügyféllétszámot leadni. :) Segít a kollégáknak a melóban.

/off

A képernyőkép alapján valami ilyesmit láttam egy külföldi szállodában, egy asztali gépen.
15 percnyi netezés volt 1 €, és miután bedobtad a pénzt egy erre kialakított résbe, el is kezdett számolni 15:00-től visszafelé.

A visszaszámolás végeztével viszont újraindult a gép, és amit addig letöltöttél a gépre, az kitörlődött.

(Hozzáteszem, eléggé le volt butítva a gép, IE6 volt rajta, és kb. 800x600-as, vagy még rosszabb felbontással ment csak, a gmail is csak a sima html-verzióval működött...)

/on
---
| Dropbox | Ubuntu One |

pont nemrég egyet írtam delphiben (nem nevet!), roppant egyszerű a lényege:

adott egy korlátozott júzer, de futtatnia kéne valamit rendszergazda szinten nap-mint nap (ez egy scanner éppen, szarul írt programmal, ami csak rendszergazdként indul el...)
Ez gyakorlatilag egy launcher, amibe belevan égetve a user+pass+domain + futtatandó cucc, így egyszerűbb lesz az életem.

Régebben csináltam ugyancsak delphiben egy elég komplex autó-shop rendszert , gyakorlatilag 90%-on volt (kb 300 munkaórával), szerencsésen winyó meghalt, asszony meg közölte, hogy amire mentek backupok 12-óránként időzítve, azt formázta, és képeket rakott rá 2 aznap...

esetleg:
idezet=`echo $idezet | sed -e "s/á/á/g" -e "s/Á/Á/g" -e ... -e ...`
nekem jobban bejönne, bár a shellscript az, amit az ember inkább úgy optimalizál, hogy más nyelvre írja át :)

—-—-—
int getRandomNumber() {
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

-Olyan perlszkriptet, ami fisher99 blogjából (http://www.timurlenk.hu/blog/) rss szkriptet generál. Ő időnként megváltoztatta, hogy hogyan tördelje a statikus htmlt, én pedig végül feladtam, és már más adja az rss kontentot.

-Python szkript, amivel tumblrre lehet tömegesen queue-ba fotót feltölteni.

(majd még mondok mást is.)

Java nyelven:
-Helyi "tudásbázis", könyvtárakban/topicban keresés, hozzáfűzés stb, még eléggé "alfa"..
-Többször előforduló fájlokat kereső program, név/méret/md5 összeg alapján hasonlít, pár paraméter még megadható, ez már majdnem kész, szóval ezt meg merem mutatni. Ha valaki csatlakozni akar a projekthez szívesen körbekalauzolom :) (hja és ha valaki a win7 uac-t megkerüli nekem, ill usbs driveon megoldja a törlést rendszergazdai jog nélkül, annak jövök egy sörrel) http://kenai.com/projects/dup
-Naptár, eseményeket lehet felvenni, időzíteni őket és riasztást bekapcsolni ha közeledik ill kikapcsolni ha el van végezve. Ez is eléggé bugos még, néhány funkciót majd át is akarok írni szebbre, szóval csak "saját használatra"..
-java3d libekkel gráfmegjelenítés (azaz szülő és gyerekpontok térben), egy beadandóból akartam családfa-megjelenítést varázsolni aztán elmúlt..
Idő hiányában sajnos csak a dupla file keresővel foglalkozom, illetve most egy picit azzal sem :)

rubyban irt irc-smtp-imap-msn-icq-etc gateway prioritasos varakozasi sorokkal, szuresi feltetelekkel meg egyeb nyalanksagokkal

- Not even the slightest bit -

Pythonban írt stratégiai játékkezdemény. Négyzetrácsos pálya, jelenleg 2 személyes, mozgatható lények mindkét oldalon. A játék szimultán zajlik, 4 lépést előre borítékolni kell előre (melyik lény mit csináljon), majd a szerver egyszerre kiszámolja, hogy mi történt. Ha ketten lőnek egymás felé, akkor mind a kettő meghal.

A játék kipróbálható, de biztos bugos, és a lények képességeit (lövés, mozgás, varázslatok) kellene megfelelően beállítani. Letölthető innen: Vakarcs. (Az előző verziót még C++-ban írtam és konzolos volt, de azt már nem fejlesztem.) Dokumentáció nincs, de elérhető vagyok.

Félig-meddig OFF, mivel nem program, hanem hardware-projekt, de én csináltam:

3-tengelyű botkormányhoz oldalkormánypedál 4. tengelyként, repülőgépszimulátorhoz (Linux ill. FGFS kompatibilis)

kép1 kép2

(Ládás vegyes íz /aka. hitlerszalonna/ ládájából készült, 1 db potméter a lényege. Eredetileg "prototípusnak" készült, de évek óta szolgál.)

:wq

C-ben írt sakkmotor (chess-engine). Winboard-protokollt ismerő GUI kell hozzá (Winboard vagy Arena). Évek óta szinte egyáltalán nem nyúltam hozzá, a korábbi verziói simán mentek Linux alatt is, elvileg ezt is csak le kéne fordítani. http://www.hun-digital.hu/merlin/

Nem nagy ügy, meg toltam is HUP-on akkoriban a linket: netcat-ba CRLF support.
http://www.reidea.hu/netcatcrlf/
Azt nem értettem, hogy hosszú évekig mindenk sírt a "bare LF" miatt, de senki nem oldotta meg.
Fedora mainteinerek már régen bevették, ha jól emlékszem, FC8 óta benne van. Ubuntu és Debian most télen kapott patch-et (az nc6-ba is), talán a következő distroban benne lesz. Az az érdekes, hogy Ubuntunak meg Debiannak volt egy alterativ csomagja, ami a bsd-s volt és abban már benne volt. Nem tudtam követni. :)

Parancssoros interaktív TvRip.
Divx vagy xvid formátumban vesz fel 3 különböző méretben. Támogatja a delogót, a cront, ha kell lekapcsolja a gépet.

Parancssoros interaktív VHSRip.
Xvid, divx, mpeg formátum, 3 különböző méret. Nincs cron. Ha kell lekapcsolja a gépet.

/etc/rc.d/init.d/tvcard_init A nem használatos 4-es futási szintet beállítottam a TvRip-hez. Csak 10 démon fut. Nincs X, nincs háló, nincs tűzfal. Nincs semmi felesleges dolog. A Grubban ez az alapértelmezett! Ha a gépnél ülök tudok választani!
De sorozatokhoz kitűnő beállítás. S mivel egy csomó démon nem fut, több erőforrás áll rendelkezésre a mencodernek.

Az említett script ha 4-es futási szintet észlel, akkor feltesz egy kérdést, amelyre a választ megadott időn belül várja.
Ha nincs válasz, akkor az előre megadott opciókkal tölti be a tvkártyát. Amely jelen esetben a TvRip-nek kedvez. A sorozatok miatt.

Ezt azért csináltam, hogy a VHSRiphez ne kelljen mindig más opciókkal átírni az /etc/modprobe.conf-ban a tvkártyát. Ugyanis a VHSRiphez kell egy noninterlace kapcsoló, míg a TvRiphez nem kell. (pinnacle) Így automatizáltam a dolgot.
Ha meg VHS_rip úgyis ott ülök a gép előtt, majd kiválasztom a 4-es futási szinten a VHS-t, és akkor annak megfelelő beállításokkal tölti be a tvkártyát. Elindítom a felvételt, kikapcsolom a monitort, aztán megyek aludni.

wav_to_mp3_or_ogg

Sziasztok!

Gondolom nem egy ember írt kis unrarolo scriptet az internetrol letoltott szerzemenyek kitomorítésére :) Esetleg megoszthaja ezt itt :)

Értem ezalatt, hogy beadok egy mappát, amiben van sok giga letoltott dolog, jellemzően berarozva. És ezeket szépen kitömöríti a saját kis mappájába, a közben fellépő esetleges problémákról, meg szól, ill. egy naplófájlba menti :)

Ha csinált ilyet valaki, akkor szívesen várom, hogy belinkelje :)

#!/bin/bash

#Ez a szóközök miatt kell.
IFS=``

innen=""
ide=""

find ${innen} -name "*.rar" -exec unrar x "{}" *.avi "${ide}" \;

Ugyanez ziphez:
#!/bin/sh

#Ez a szóközök miatt kell.
IFS=``

BASE_DIR=""
find ${BASE_DIR} -type f -iname '*.zip' -exec sh -c 'file="{}"; cd "$(dirname "$file")"; unzip "$(basename "$file")"; rm -f *.zip' \;

hát van egy bitey tömörítő algoritmusom ami megpróbálja a raw bluray filmeket párszáz kilobájtra tömöríteni, sajna még nagyon alfa...:C

No rainbow, no sugar

Hali!

Készítettem python gyakorlásnak egy mplayer indítószkriptet, mely igazítja a film képarányát a monitoromhoz. Felismeri az elérési útból, hogy magyar nyelvű-e vagy külföldi feliratot igénylő-e a film, ha külhoni, akkor automatikusan beilleszt a mozi aljára egy maximálisan 40 pixeles fekete sávot a szövegnek. Ha dvd-ről indul az avi, akkor nagyobb cache-el indítja azt.

Van egy oktatásba illesztett projektem is itt: http://remotelab.energia.bme.hu . Még fejlesztés alatt, de már egy ideje így jól működik, csak a régi szervernek használt pc-k ne halnának ki alóla állandóan :).

Üdv: Smerli

Pythonban írtam egy kis programot, amivel mysql táblákba lehet bevinni cikkhivatkozásokat meg lekérdezéseket csinálni. A találatokra egyik egérgobbal kattintva vágólapra kerül a cikk ACS által megkövetelt hivatkozási formája, másik egérgombbal kattintva meg a megadott fájl végére beszúrja a hivatkozást latex/bibtex formátumban. Gyakorlás volt fájlműveletekre, kevés networkre meg sqlre.

--
[citation needed]

A legtöbbhöz képest elég egyszerű cucc+nem is teljesen saját, az alapokat Bagoj úr írta, de hátha valakinek hasznos lesz.
Avidemux-hoz gyárt job fájlokat, egy előre elkészített példa fájl alapján, hasznos pl. sorozatok konvertálásánál, nem kell mindegyik részhez külön beállígatni és menteni a jobokat.
Bővebb infó itt, lap alján található a letöltési link.

Nem igazán szoktam programozgatni, úgyhogy tuti nagyon kezdetleges megoldások vannak benne, ezt nézzétek el, a lényeg nekem az volt, hogy működjön. :)

---- Házon belűli projectek
WallPC - egy kicsi, fali, érintőképernyős izé, ami jelenleg egy csomó feladatot ellát, lásd lentebb;) (debian, c, sdl - opengl alapokon)
Riasztó - Egy egyszerű, ámbár nagyszerű lakásriasztó, etherneten keresztűl vezérelhető (UDP utasításokkal operálva), a wallpc-vel vannak nagy haverságban;)
HomeTV - Mivel a házban van egy fbsd szerver ami samba, nat, nyomtatómegosztást és egyéb nyalánkságokkal látja el a családot, egy központi "gócot" kialakítva (ide fut be az összes koax, utp a házban), készült egy egyszerű weben vezérelhető mplayer fork, ami modulátoron keresztűl rászabadúl a házban szaladgáló koaxokra, így lehet filmezni az összes tv-n a házban:)
egyizé - ez ilyen automatizált kazán, szintén a wallpc-vel barátkozik, előre beállított módon (és persze mindenféle hőmérséklet függvényében) kapcsolgatja a fűtést.
sok más egyéb, ami már annyira nem érdekes;)
---- egyéb nagyon szabadidős projectek
fyc - (a Fuck Your Console rövidítése:D) Egy c-ben írt daemon olyan programokhoz, amik rendelkeznek interaktiv moddal, de mindezt elég gyatrán kezelik le (összehányja a kimenetet a bemenettel). A daemon egy unix domain-t gyárt, amire csatlakozik egy ncurses konzol, ami mindezt szép formába lapátolja össze:)
gtaIVsrv - saját elmebetegségem vezérelt arra, hogy kipróbáljam magam mire vagyok képes, így elkezdtem egy GTA IV szerver daemont, illetve a hozzá tartozó klienst fabrikálni. Hogy aztán elkészül-e, ez majd akkor derül ki, ha elkészül, addig meg majd okoz egy két kellemes percet a haverokkal történő alfa teszt során;)
flIRC - Egy webes kliens, flash, javascript, xhtml alapokon, a flash kezeli a socketeket, a protokoll illetve a megjelenítés kezelése javascript-re bízva. Okos jószág lesz egyszer, ha kész lesz;)

Így hirtelen ennyi jutott eszembe ami kiemelhető, de biztos találnék még olyat amik már feledésbe merültek, pedig hasznosak lehetnének a világ számára;)

nem bonyolult a történet.
Egyrészt annyi kell hozzá, hogy legyen egy pont, ahova csatlakozik a házban lévő tv-k koax kábele (kábeltv-nél a bejövő ág, ha kihúzod, sehol nem megy;)).
Összetevők:
1. szerver/gép, amiről megy a film, benne egy tv out-os kártya (RCA - S-VIDEO tökéletes), a lényeg hogy alap felszereltségben össze tudod kötni a gépet a tv-vel.
2. UHF Modulátor - az RCA vagy S-VIDEO jelet keveri rá a koax kábelre (megadott csatornán, pl nálunk 32-es). Így a tv-n a gép videójelét a 32-es csatornán tudod fogni. 6e ft -tól már lehet értelmes darabokat kapni belőle.
3. jack-rca kábel, mert kell hang is;)

az UHF modulátornak van egy bejövő és egy elmenő ága, a bejövő megy a kábeltv / antenna felől jövő ága, az elmenő a TV-k felé. A bejövő ág felé a modulátor nem sugároz (vagyis de, de annyira minimálisan hogy 20 méter múlva a kábel csillapítása is elnyomja).

a lelke szegénynek egy microchip PIC16F887 -es uC, a jeleket 8db mozgásérzékelő szolgáltatja (neeem, nem gyári riasztóhoz tartozó mozgásérzékelők, mert azok 6e-től kezdődnek). A nagy kék barkácsáruházban lehet venni mozgásérzékelőt lámpához, 1200 FT volt darabja, egy minimális darabolás után a célnak megfelelt (Kondenzátor, ellenállat ami vágta a feszültséget 220-ról 24 voltra ki, hogy ne kattogjon relé ki). Mivel negatív táplálású volt a relé, így a jelvezetéken folyamatos 24 volt van, ami jó, mert ha vágják a kábelt riaszt. Az UC-be a program megírása 1 napot vett igénybe, az érzékelők optocsatolókon keresztül lett illesztve. Az ethernetes illesztésre van spéci IC, sajnos fejből nem ugrik be a neve.

Sziasztok!

Ezt pont ma dobtam össze, és gondoltam, másnak is jó lehet, ha már egyvalakinek kellett :)
http://systemcore.org/kepdarabolo.zip
Nem egy nagy szám, igazából 1 órás google meg néhány sornyi kód eredménye. Édesanyámnak pedagógusként szüksége volt rá, hogy képeket tudjon x*y -os egyenlő téglalapokra vágni puzzle-höz. Ez a kód pontosan ezt tudja, se többet, se kevesebbet (na jó, kép átméretezés, mint extra feature).

Kéretik nem fikázni :) Azért teszem fel, mert pont most láttam ezt a topicot, és hátha még egyszer valakinek jól jön.
Amúgy a kód egy része innen lett kiemelve:

http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-…

C#-ban íródott, a forrásfájlok VS2008 projekthez tartoznak, de aki csak használni akarja, az exe-t megtalálja a zip-en belül: kepdarabolo/bin/Release/kepdarabolo.exe

Építő jellegű kritikát,javaslatokat szívesen veszek. Ami nem került bele, mint feature, az azért nem került, mert nem volt rá szükség. Ha kell valakinek valami extra ezzel kapcsolatban és van rá időm, azt viszont szívesen vállalom :)

Ja, és nem vagyok egy nagy C# guru, ezért nem a legprofibb megoldások vannak benne, de működik :)

Hupsz, és a működés, mert leírva nincs, és édesanyám kérése alapján lett megoldva, ami pedig:
- megnyitsz egy vagy több képet
- ha a "ment mindet"-re nyomsz: az összes képet átméretezi, és az átméretezett képet elmenti a forráskönyvtárán belül a nevével jelzett alkönyvtárba, a darabok megszámozásával, tehát pl. a
C:\dir\alma.jpg -ből c:\dir\alma\alma[1..n].jpg lesz (n = x*y, ahol x, hogy horizontálisan, és y hogy vertikálisan hány részre ossza a forrásképet)
- ha a betöltött képek közzül csak egyet akarsz menteni, akkor katt rá (ekkor jobb oldalt meg is jelenik), majd katt a mentésre. innentől ugyanaz a sztori.

és mivel csak jpg-kre volt szükség, ezért csak azokat tölti be. Igény szerint lehet bővíteni persze :)

Nem szaporitom a szot, mindket fajlnev beszedes.
Twitter.awk
Posterous.awk

Illetve felturbozott QWebKit peldaprogram - QuickBrowser
Egyelore annyival tud tobbet, hogy a letoltesi mappa tallozassal is megadhato, es CMake-val fordul. Tavlati terv a cookie kezeles normalis megcsinalasa.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

KmlDateInjector.java :)
GPX-formatumu GPS tracklogok Google Earth kompatibilis KML formatumma alakitasakor utolag beleinjektalja a track-pontok ido-adatait a GPX fajlbol a KML fajlba, hogy Google Earth-ben lathatova valjon az egyes trackpontoknal a sebesseg. Dirty hack kategoria.

proxy_login.c
Egyetemi halozatba valo bejelentkezest, azaz proxy autentikaciot automatizalo program. Cross-compile-olva MIPS-alapu, mokolt firmware-u routerre, crontabbol percenkent futtatva, ha behalna a net...
Sufni-DynDNS kliens inkluzive:)
(Poenbol megirtam Javaban is, ugy 20x annyi ideig tartott a futasa, foleg a JVM betoltogetese miatt.)

:wq

Szia!

KmlDateInjector.java ez valahol elérhető?
---
Egy anlgaii etegyem ktuasátai szenirt nem szimát melyin serenrodbn vnanak a bteűk egy szbóan, az etegyeln ftonos dloog, hogy az eslő és az ultosó bteűk a hölyeükn lneegyek. A tböbi bteű lheet tljees össze-vabisszásagn, mgiés porbléma nlkéül oalvsahtó

Hasznos topic, majd feltolok en is egy parat, addig nezelodjetek itt: http://986site.extra.hu/

--
Azt akarom, hogy az emberek ne kenyszerbol tanuljanak, hanem azert, mert tudni akarnak.

Magam és kollégáim részére írtam Linux alatt egy "support" nevű programot Lazarusban, amely a mindennapi support tevékenységet könnyíti meg. Némi hackeléssel lefordítható Windows alá is azoknak, akik azon végzik dolgaikat. Egy AD lekérdezést készít a cég gépeiről (kb. 400 db), amelyeket egy listába tesz. A kiválaszott gépet VNC vagy RDP elérésen keresztül lehet matatni. Szűrt listás keresővel van ellátva, amely adott esetben egy böngészőhívás után az intraneten működő php-s teleonkönyvben is kikeresi az adott gép kezelőjének telefonszámát. Lehet default VNC passwordot is tárolni a lustáknak, akik nem szeretnek gépelni. :-) A platformfüggetlenség miatt a legtöbb opció .ini fileból állítható. Van kedvenc és előzménylista is. Szeretjük...

Ezt inkább egy frontendnek nevezném. A megvalósítása nagyon egyszerű, a szükség hozta az ötletet, mert naponta (sajnos) elég sok a support jellegű tevékenység.

Van egy AD lekérdező script, ami az ldapsearch parancs segytségével összegyűjti cégünk összes gépét, majd megfelően formázva azt leteszi egy fileba. Ez egy külső parancs, a support program csak meghívja induláskor. Ezt a scriptet elhelyeztem az intranetes szerverünkre (Linux) is, ahol napjában 1x lefut és a Windowsos verzió onnan kapja le a listafilet wget-tel. Semmi kedvem nem volt ott is kotorni pl. cygwinnel, írják meg maguknak... :-)

Listafile minta:

...
GEPNEV Gipsz Jakab [ 192.168.55.26 ]
UGYFEL01 Ügyfélszolgálat 1. [ 192.168.66.44 ]
...

A program a kiválasztott sort a fileból az első szőközig dolgozza fel, majd a beállításoknak megfelelően adja hozzá az xvnc4viewer, vagy az rdesktop (Windows alatt vncviewer.exe és mstsc) parancshoz paraméterként, mivel minden AD-s gép nevét feloldja a nameserver. Egy ini file tartalmazza a parancsok default paramétereit. Policy-ból toljuk le a kliensek torkán a VNC jelszavakat, ezért célszerű volt letárolni az aktuális jelszót, amelyet a program igény szerint hozzátesz futtatáskor.

A céges telefonkönyvünk írója adott egy URL-t, amelybe ha beleillesztem a keresendő sztringet, akkor hozza a találatokat. A program annyit tesz, hogy meghívja az Opera böngészőt (ini-ből állítható) a megfelelő paraméterrel.
Tehát egy lépésben tudok IP-t, embert, gépnevet, telefonszámot keresni, annak függvényében hogy éppen mit tudok.

Lusta informatikusoknak pont megfelelő! :-)

Na kész.

A nem publikus adatokat átírtam. Linux alatt a vncpasswd segítségével állítottam elő a vnc_passwd filet, jelen esetben üres. Ha Windowsra szeretnénk lefordítani, akkor a forráskódban van 1db komment, amely jelzi, hogy mit kell kivenni, valamint az ad.cmd és a support.ini fileokat kell lecserélni.

Letöltés itt.

Angol tanuláshoz írtam egy BASH scriptet.
Minden angolóra után fel lehet vinni az új szavakat és kifejezéseket egy szöveges fájlba, amiből a script dolgozik.
Van a scriptnek beégetett alapértelmezett működése, amit két féle képpen felül lehet bírálni. Vagy egy konfigurációs fájl beállításával, vagy a parancssorban az induláskor megadott paraméterekkel. Ez utóbbi természetesen nagyobb precedenciával bír.
A működés a következők szerint állítgatható:
A kifejezés párok közül először a magyar, vagy az angol nyelvi változatot írja ki a program, vagy netán véletlenszerűen vegyesen.
A kifejezéspár első és második nyelvi váltazatainak kiírása között hány másodpercet adjon gondolkodásra a gép, netán enter billentyűre várjon. Utóbbi használatával enter előtt bármi mást lenyomva leállíthatjuk a programot.
Ugyanezt a várakozási beállítást meghatározhatjuk a kifejezés párok váltásai között is.
Megmondhatjuk, hogy hangosan olvassa-e fel az egyik, vagy mindkét nyelvi változatot. (espeak rulz).
Végezetül lehetőség van kérni a teljes tudás felsorolását sorrendben.
--
unix -- több, mint kód. filozófia.
Life is feudal

Mostanaban ilyen erdekes javascripteket csinalok, mint pl. key-combok (mondjuk alt+1) kezelese, vagy hitelkartyaszambol kibocsato megallapitasa, stb... :) ez erosen onszorakoztatas mar. :D

A dolog sajnos nem ennyire egyszeru... az elso szam mindig azt jeloli, hogy milyen a szektorban mozog a kartya (MII, ez nalunk altalaban 4-5: banking and finance, mast nem nagyon lattam eddig, talan meg a 3-ast, ami utazasi akarmi, jellemzoen dc) aztan ezekbol jon az issuer, utana a 7 hegyu egyedi account numbered, aztan egy check digit (mint egy checksum). A problema az, hogy az account numberbol meg nem derulhet ki a bank _elvileg_.

Oooo. Nem tudom, komolyan, csak fel fullel hallottam, de mintha az account number elso par szamaba lenne bank azonosito. Van harom referenciakartyam, ossze fogom hasonlitani oket, egy bankon beluli mind, hatha kijon valami izgalmas.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Hetfon megnezem, esku, de most elnezegetek itt egy kartyat, es az 5101 3791 mintha stimmelne a masik ket kartyaval (az 5101 hihetetlenul ismeros, szoval az olyan 89%). A CIB-nel gondolom azert van difi, mert lakossagi/uzleti, de nekem az a tippem, hogy az elso negy-nyolc szam az bank + kartyacsoport. Az mar lehet, hogy bankfuggo, hogy ez hogy van elrendezve.

Jo, hogy felmerult ez a topic egyebkent, megtalaltam a kartyaszam validacios eljarast, ami jo, mert pont csinalgatok egy rosszkartya-teszter progit a cegnel, es eddig csak a honap+evet tudtam validalni, meg az adatok szerkezetet (ha hulyeseg jott ki az ertelmezes utan, akkor a kartya rossz), magat a szamot nem. Mondjuk nem nagyon keresgeltem utana.

Mielott kerdezne valaki: a kod azert nem lehet publikus, mert kotodik egy nem altalam irt kartyaolvaso kezeloprogramhoz, ami szigoruan belso kod. A tobbi meg vegulis csak annyi, hogy a neten fellelheto infok alapjan kisakkoztam, hogy melyik bytepozicioban mi talalhato, es felepitem egy C struct-ba az egeszet, majd megjelenitem.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

4779 - Sainsbury's Bank (UK) - Visa Debit Card
4779 15 - BZWBK (PL) - Visa Debit Card

pedig egyik banknal sem vagyok, es megis ezzel kezd :D

The first 6 digits of a credit card number is known as the Issuer Identification Number (IIN), previously known as bank identification number (BIN). These identify the institution that issued the card to the card holder.

Tehat KORABBAN ez volt a BIN.

u#2: Ja amugy meg az OTP sincs rajta, pedig ok eleg nagy mocskok ahhoz, hogy szerepeljenek benne.. :))

Kerdes hogy a masodikkent emlitett bank megvan-e meg, illetve hogy az adatok mennyire frissek. Mert lehet, hogy a bankod egyszeruen megvette azt a range-t, a masik bank meg - akar felvasarlas, akar mas miatt - mar mas range-bol oszt kartyat. Persze egy IIN valtas nagy dolog, de van, hogy indokolt.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

No, megneztem. Reszben tevedtem, az egyik teszt kartyam Maestro, az massal kezdodik (nyilvan, mert nem MCDC kartya), viszont a masikkal egyezik az elso nyolc, szoval elnevezes ide vagy oda, az elso par szamjegy egyertelmuen bankspecifikus. De azert meg nyomozok tovabb.
--


()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Sziasztok!

A dolog meg erosen fejlesztes alatt all, de mar hasznalhato. Talan masnak is hasznos lehet. Egy web2py-ben irt app, ami segit a dvdk, cdk, konyvek leltarozasaban. Az appot hostolom is, igy ha valaki ki szeretne probalni, vagy elesben akarja hasznalni, akkor batran tegye meg.

http://devel.modernbiztonsag.org/wiki/storpy

Shark MP4 Converter

Történt, hogy tönkrement a régi telefonom, s beszaladtam a boltba venni egyet "occsóé". A Samsung Shark-ra esett a választás. Örömmel néztem, hogy az előző készülékemhez képest ez már tud videót. Gondoltam, konvertálok rá néhány "Rém rendes család"-ot, hogy legyen mit bambulni két munkafázis között.
Kerestem konvertert Linux alá, de szinte mindegyikkel csak szívtam, főleg, hogy a párom is csak lesett rájuk (érthető, nem fog bitrátákkal vacakolni, pedig ő is használná, ha már az ő készüléke is video-képes).
Jött az ötlet, hogy írok scriptet mencoder-hez. Párom arca egyre morcosabb lett :D
Feladatom tehát szó nélkül is ki lett mondva, kódolni kell egy GUI-t.

Eddig Mono-ban írtam az ilyeneket, de most jött a gondolat, hogy itt lenne az ideje a Qt-vel is megbarátkozni (kellemest a hasznossal). Ennek eredménye lett ez a GUI, ami "drágám"-kompatibilis is (ne várjatok repülőgép-műszerfalat). Nem mondom, a kód biztosan lehetne szebb is, biztosan meg lehetett volna csinálni ésszerűbben, sőt, biztosra veszem, hogy lettek volna olyan lehetőségek a Qt-n belül, melyek hatásosabbak, de legyen nekem elnézve, hiszen életem első Qt-s programocskája.

Használjátok egészséggel! :)

http://dacr.hu/sharkmp4

(a weblap meg aztán főleg gyorsan lett csak összehányva)

Ui.: egyre jobban tetszik ez a Qt.

Tipp: s/transported by/shipped by/

Majd megnezegetem a kodjat, nekem is kene neha valami hasonlo egyszeru dolgok.
Amin elgondolkodtam meg ilyen feluletek gyartasara, az a Java. Egy kulon threadbol meg lehetne csinalni a futtatast, mondjuk nem lenne preciz progress bar, de hat mindent nem lehet.
--


Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Köszönöm, éreztem, hogy nem túl jó, de hát legalul jeleztem is angolhoz való viszonyomat (finnül jobban megy) :)

Javítom.

A Java-t anno próbálgattam, de nem nagyon ragadott meg. Mono-t használtam keresztplatformos rendszerként, ahova kellett, feltettem a framework-öt, aztán futott is szépen, bár leginkább úgy is Linux-ra fejlesztek.
Viszont a Qt egyre jobban tetszik.
Még ami kérdés van bennem, hogy Windows binárist a MinGW-vel meg lehet csinálni, de pl.: OSX verziót mivel tudnék csinálni OSX nélkül? Van valami okosság erre?

Qt nagy kiralysag :)
OSX nelkul OSX verziot? hm, jo kerdes, de ha van egy normalis qmake config hozza, akkor nem olyan nagy a problema, le tudja forditani a user maganak :)
ha meg mindenkepp binarist akarsz belole, rakj fel OSX-et egy VirtualBoxba
-
Slackware current / OSX Snow Leopard

Megsugom, nem fogsz tudni. Mint ahogy Linux ELF-et is kisse problematikus windowson forditani, igy ezt is. Csak ezt meg jobban, mert pl. a Universal binary-khoz (aminek egyaltalan ertelme van ebben a kontextusban) kulon pecselni kell a gcc-t, hogy tudja.
--


Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Lehet, Python-al nem sok dolgom volt eddig (kígyó-fóbiám van :P ). C++-t tanultam eleget, C# előtt azt nyesztettem, így nekem ez volt a kézenfekvő. Nem nyelvet akartam tanulni, hanem framework-öt, de gyanítom, ha elkezdem tanulni a Pythont, akkor a Qt használata már abban sem lesz ördöngősség, ha magát a Qt-t már ismerni fogom A-Z.

Hozzáteszem, Mono-ban is egyszerűbb egy ilyet összehányni, mint C++-ban, de élveztem a mazochizmust. Egyébként nem volt egy vészes dolog, a forrást átböngészve sem egy bonyolult és hosszú kód.

hm... Pedig keresgéltem ám :)
No mindegy, legfeljebb egyel több, szerintem az soha nem baj. No meg hát ugye tanulás szempontjából is volt motivációm.
Minden esetre köszönöm a linket, szinte tök ugyanolyan felületet sikerült összehoznom (esküszöm, nem másoltam :D )

EVE Online-hoz irtam automata furo programot:)
Kidokkol, kimegy a mezore, fur, beszallit. Random idot var a stationon, gazdasagosan kezeli a lezereket, meg mindenfele kenyelmi opcio. Windows es Linuxhoz egyarant megirtam, mas-mas nyelveken.
Jo ezt biztos sokan nem tudjak mire valo, de aki EVE-zet mar, az biztos tudja, hogy ez milyen unalmas, monoton, de penz gyarapito tevekenyseg, amit en automatizaltam:)

Engem ez érdekelne, ha elérhető a forrás, vagy akár csak maga a program.
Sajnos most pénzhiány miatt nem eve-ezek, de tervezek hamarosan megint előfizetni :)

Én az AutoIt nevű programmal próbálkoztam egér eventeket küldözgetni, végülis sikeresen, mert működött a dolog, csak hardcode-olva volt minden, tehát az hogy kb mennyi idő amíg kiér az aszteroidamezőre stb. és így nem igazán tetszett úgyhogy hagytam a fenébe.

En is az AutoIt-el csinaltam, de ugy hogy ellenoriztem mikor er ki az aszteroida mezore, mikor vegez a kidokkolassal. Ezt ugy sikerult, hogy pixel szin vizsgalattal figyeltem, hogy mikor tunik el a Warp drive activ felirat, illetve mikor jon be az urben latszodo UI a kidokkolas utan, valamint a cargo mikor lesz telle. Igy szinte semmivel nem toltott el a hajo felesleges idot es egesz este tudot furni meg en aludtam. A stationon pedig random idoket vart, hogy ne legyenek annyira egyformak a ciklusok, hatha szemetszur valakinek...
Mar jo reg hasznaltam, de majd elobanyaszom es feltoltom valahova.

Linux alatt az XMacroval csinaltam ilyet, de asszem abban nem volt pixel szin vizsgalat, igy abban siman idozitesekkel volt megoldva minden.

Nem tudom ismered-e ezt a mondást:
"Minden bonyolult problémára van egy egyszerű, világos, könnyen érthető rossz megoldás."

Ha jól értem a feladatot és a megoldást, akkor a lenti esetben:


   5
  4 6
 9 2 3

az algoritmus az 5,6,3 útvonalat találja meg, ahol az összeg 14.
Szemben az 5,4,9 útvonallal, ahol az összeg 18.

Szerintem a jó algoritmus:
1. Alulról felfelé haladunk a fában, tehát először a legalsó sorban vagyunk.
2. Minden fa pontra kiszámoljuk a maximális összeget az alatta levő két szám alapján. A legalsó sorban, nyilván a szám lesz a maximális összeg. Ezt az összeget és az alatti fa pont indexét letároljuk ehhez a fa ponthoz.
3. Egy sorral feljebb megyünk és folytatjuk a 2. ponttal, amíg el nem fogynak a sorok.
4. A fa csúcsán szerepel a maximális út összege. Fentről lefelé összegyűjtjük az indexeket, ez lesz az út.

A példánál ezen összegeket és indexeket számolja az algoritmus:
(9,0) (2,0) (3, 0)
(13,1) (9,3)
(18,1)

Tehát 18 a max összeg és az (1,1,0) az útvonal, tehát a legfelső elem az első mindig: 5, majd a következő sor első indexű eleme: 4, majd a következő sor első indexű eleme: 9, és mivel 0 van, így kész vagyunk.

Sőt, az összegek sem kellenek, csak egy darab, a mindenkori sormaximumok összege.

Ui. az utat megkapod m (ill., m-1) darab maximumkiválasztással (m a hszög magassága). A feladat csak a külső, 1(vagyis 2).. m ciklus miatt csúszik bele a programozás bevezetők 3. feladatából a 4. feladatba. :)

Én megcsináltam még régebben. Hasonlítsuk össze a sebességet! :)

A Project Euler 67-es problémája egy száz soros háromszög, az szerintem jó lesz tesztcélokra. ;) Az algoritmusom megegyezik azzal amit a kolléga írt, csak pythonban van megírva, pszeudofunkcionális stílusban. :) Nem tudom, hogy mennyire olvasható így, számomra érthető volt fél év után is. Minden lépés ki van bontva, ha nagyon akarnám, gondolom be lehetne sűríteni két sorba is.


librarian@rincewind:~/workspace/projekt_euler$ python triangles_final.py triangle.txt
[****]
Run Time = 0.0437099933624

A kód itt Kommenteljétek, ha van kedvetek.

Mennyi időd volt a feladatra amúgy?
-----------
"Generally, Russian technology assumes dumb machines and smart humans, not the other way around." -- The Russian Tea HOWTO

Egyfajta multi-boot android telefonokhoz, gyakorlatilag bármilyen rootolt telón használható, amin van recovery:
http://forum.samdroid.net/f9/multi-boot-system-recovery-2640/
Elméletileg nem csak Android, de bármilyen linux bootolására rá lehet venni, bár ezt még nem próbáltam.

---
BME-VIK '09
Compaq Mini 311 - N270 @ 2323 MHz - 3GB DDR3 @ 1240 MHz - ION

Az SDL függvénykönyvtárat használva megírtam az életjáték nevű matematikai mókát, az eredmény itt található - mivel először használtam SLD-t, így sok szempontból kezdetleges lehet, ha valamilyen észrevételetek, ötletetek van, írjatok, szívesen fogadom az építő jellegű kritikákat.
--
Azt akarom, hogy az emberek ne kényszerből tanuljanak, hanem azért, mert tudni akarnak.

Sziasztok,

Pár napja indult el 1 új projektem igaz még csak magyarul, kiváncsi lennék ki mit gondol, mennyire érhető, hogy mivel foglalkozik az oldal

http://www.oneminutejobs.com/

Végtelenül egyszerű "nyerőgép" (primitív megoldású pörgetéssel). Fruit Machine után szabadon. :)
Sztori: kollégákkal céges vacsin voltunk, ahol volt elszeparált kaszinó. Bedobtunk a félkarúba 500 HUF-ot, mind elvesztettük. Ekkor jött az ötlet, hogy írok egyet nekik ajándékba.
Tudom, sok száz ilyen van, itt inkább a személyes "ajándék" volt a cél, nem az újat alkotás. Szóval viccből készült, elég rövid idő alatt, így nézzétek. :)

http://dacr.hu/symbolmachine/

Klasszikus pálmafás csendes-óceáni helyszínre gondoltam, ahova ha bejön a dolog, el lehet ruccanni nyaralni :P
Úgy hallottam valamikor régen (50% konfidenciaszint:P), nem egynek a gazdasága többek között az online kaszinókra épül.

int getRandomNumber() { // ←ez itt már az aláírásom
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

nos, a legalább 2 sor kritériumnak megfelel
perl szkript, .css-ben cserélgeti a színeket.

itten van

észrevételeket szívesen fogadok, ha megnézi, kipróbálja valaki

___

Don't Panic!

Futtatni még nem volt szerencsém, csak olvasgatni a sorokat.
Egy random színgenerátor+cserélő miként lehet hasznos? :)
Valami olyan project-hez készült, ahol minden "belépésnél" generálni kell új színt, vagy inkább ujjgyakorlatképpen íródott?
Nekem minden esetre hasznos, perl még nem az erősségem, tanulgatom. Köszönöm!

random_color szerintem túl van bonyolítva: elég egy véletlenszámot generálni 0:256^3-1 intervallumban, és azt hat számjegyűre formázni, fölös színenként külön.
És igazán viccelődhettél volna ilyesmivel… (:P):
(($temp eq "random") || ($temp eq "\n")) ? &random_color : ($temp =~ /^([[:xdigit:]]{6})$/) ? push (@new, $temp) : print "mondom színt írjál, vaze. Te se játszottál színcápát kockákkal…";

A fenti kódot nem próbáltam, és te se tedd inkább, ha meg akarod érteni később is :P Amúgy az első feltételben szerintem nem kell erőltetni a regexpet, a stringek egyszerű összehasonlítása így érzésre gyorsabbnak tűnik.

int getRandomNumber() { // ←ez itt már az aláírásom
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

erm... ha beírod "kézzel", h random, akkor onnantól az összes színt legenerálja, csak emiatt nem jó erre a célra amit írtál, ha jól látom. (fixme)

amúgy tetszik :)

első feltétel alatt mit értesz? a y/n?-t?

de akkor meg írhatom hogy

if (($y_or_n eq "Y") or ($y_or_n eq "y")) or ($y_or_n eq "\n")) {
$filename = $ARGV[0];
} elsif (($y_or_n eq "N") or ($y_or_n eq "n")) {
&name;
}
?

___

Don't Panic!

A „($temp =~ /^random$/i)”-ra értettem, de kb. általánosíthatnám mindenre, ahol nincs szükség regexpre.
Amit írtam, az pedig szerintem tökugyanaz:


$flag = ($temp =~ /^random$/i) ? 1 : 0;
		if ($flag) {
			&random_color;
		} elsif ($temp eq "\n") {
			&random_color;
                }

===

if (($temp =~ /^random$/i) || ($temp eq "\n")) { &random_color; }

… mondjuk nagyon nem értek a Perlhez, de értelmében szerintem nincs különbség.

int getRandomNumber() { // ←ez itt már az aláírásom
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

Ööö... kritizálni lehet?

Minden változód globális. Ez egy rossz szokás, mert ugyan az elején egyszerűsíti a dolgokat, de ha ne adj' $isten elkezd fejlődni a programod, mondjuk többezer soros, tucatnyi modulból álló szörnyeteggé, akkor borzasztóan hátráltatni fog. Azt a változót, amire csak egy függvényben van szükség, a függvényben deklaráld. Tisztább, szárazabb, biztonságosabb érzés.

Ezenkívül mindent a szkript elején deklarálsz. Ez rontja az olvashatóságot: mindig, amikor látsz egy változónevet, akkor töprengened kell, hogy ez mi a szar és hogy került ide. Ha valamire csak pl. egy for cikluson belül van szükség, akkor ott deklaráld.

Aztán mindenütt C-stílusú for ciklusokat használsz:

for ($i=0;$i<$#old;$i++){

Ezek helyett jobb (olvashatóbb, gyorsabb) a

for my $i (0..$#old)

(A tied még hibás is, mert @old utolsó elemét kihagyja.)

Pár helyen feleslegesen bonyolítasz. Pl. a random_color függvényben nem kell a

		if ($rand < 16) {
			$hex[$x] = "0" . $hex[$x];
		}

,
helyette elég a

sprintf "%02x", ...

.

Az is a baja annak a függvénynek, hogy egy globális tömböt buzerál, ahelyett, hogy simán visszaadná a generált számot, és a hívóra bízná, hogy mit kezd vele. Én így írnám:


sub random_color {
    return join "", map {sprintf "%02x", rand 255} (1..3)';
}

A többit még nem néztem át, de első körben szerintem ennyi is elég...

nagyon szépen köszönöm mindenkinek a segítséget!!

bocs h nem reagáltam hamarébb, de ének meghallgatáson voltam tegnap délelőtt, arra készülgettem...

kicsit átírtam a kódot itt-ott az útmutatásaitok alapján, de túl sokat nem volt kedvem vele időzni, új ötletem támadt:).

természetesen a továbbiakban az itt olvasottak szellemében fogok próbálni kódolni.

ha megint produkálok valami valamennyire értékelhetőt, akkor majd lehet h kiteszem azt is ide, már csak az érdekes hozzászólások kedvéért is :)

mégegyszer köszi, hogy áldoztatok rám az időtökből.

további szép... te jó ég, 3:34 van
hajnalt.

___

Don't Panic!

Egy erősebb hétvégén összedobtam egy proof-of-concept SOAP kliens-t Android-ra, amely abban jobb, mint a ksoap2, hogy minimális munka van a szerializációval, a projekt nyílt forrású, már akadt is egy amerikai srác, aki tolt bele némi saját fejlesztést, mert könnyebben használható, mint a ksoap2, bár nem teljes implementáció, illetve az API is még képlékeny, de azért használható: http://wiki.javaforum.hu/display/ANDROIDSOAP

A másik Android projektem is egy hétvégés projekt jelenleg, de ha beválik, akkor több hétvégés projekt lesz belőle: Travian-hoz csináltam egy Android alkalmazást (mivelhogy játszogatok :), amely könnyebbé teszi a játékot mobiltelefonon - bár egyelőre csak a mezőket lehet vele fejleszteni és a GUI se túl szép... :) A Travian oldaláról nehezen vehető észre, mivel egy WebView widget-et vezérlek, tehát minden letöltést az Android-os böngésző csinál, a program csak elemzi a HTML tartalmat: http://wiki.javaforum.hu/display/TRAVIANDROID
--
http://wiki.javaforum.hu/display/~auth.gabor/Home

Ezt talán már érdemes idelinkelni…
http://numen.extra.hu/websquare/
Foursquare-re lehet vele becsekkolni, a tények jelenlegi állása szerint másra nem is nagyon használható. Ami értelmet ad a létezésének az az, hogy a Foursquare nem adott ki a telefonomra (E51) működő klienst.

Ugyan van olyan alkalmazás, amivel be lehet csekkolni, viszont az csak GPS jel alapján lövi be a pozíciót, míg az Opera Mobile akár adótornyokat is igénybe vesz. És amíg elindul a GPS, azt várja ki az, akinek két anyja van. ☺
Picit részletesebben itt írtam le: http://hup.hu/node/98750

int getRandomNumber() { // ←ez itt már az aláírásom
	return 4;//szabályos kockadobással választva.
}		//garantáltan véletlenszerű. xkcd

Szevasztok!
Ez egy kis gyüjtemégy egy két mostanában és régebben fejlesztett nyílt kódú programomból.

http://hyperprog.com

Dióhéjban:

gSAFE: Egy Qt4 re épülő (többplatformos) sql felületépítő library.

Treegen: OpenGL -es környezet generátor (Fa,Fű,pálfrány.stb..)

Rotor: Egy veszteségmentes képforgató progi, mely próbálja minimalizálni a képforgatással járó user interakciót. Azaz a lehető legkevesebb vesződéssel tudod a nyaralási fotóidat beforgatni.

Hyperchat: Ez egy kis C# os grafikus chat program. Komolyabb célja nincs, csak gyakorlásból, ötletelésből született.

Én még tavaly fejlesztettem programot a Nyugat-Magyarországi Egyetem, Botanikai kutatócsoportjának részére.
A program lényege hogy egy szkennelt tárgy területét számítja ki. Először csak parancssoros verzió létezett, aztán írtam hozzá grafikát, később JPEG képet is képes lett értelmezni, jelenleg az adatokat is képes kimenti, és már Linux alatt is futtatható.
A programot C-ben írtam, GUI pedig GTK+.

Bővebb információ itt

Sajnos a weblapom már kicsit elavult, ezért előre is elnézést kérek.

http://turaindex.hu - Pre-Alpha-Teszt, virtualtourist inspired :)

* Rails 3.0.4
* Ruby 1.9.2
* Unicorn webszerver
* mongodb adatbázis, GEO2D indexek (mongoid gem)

Tanulásra készül, de májusra el akarunk vele készülni úgy, hogy a fejlesztés és reklám költségeit néhány hónap alatt behozza.

Majd' két éve készült drag & drop mentő cucc Windowsra (VBScript; Windows XP-vel tesztelve).

A lényege: állományokat* és/vagy könyvtárakat* dobva rá (ill. a parancsikonjára) adott könyvtárba** kerülnek az állományok és/vagy könyvtárak másolatai, tömörítve***, az eredeti nevüket az aktuális dátummal és időponttal kiegészítve****. Pl., ha a

valami.txt

-t és a

valami könyvtár

-at dobod rá, akkor

valami.txt (2011-04-13-20-56-57).7z

és

valami könyvtár (2011-04-13-20-57-01).7z

kerül a megadott könyvtárba.

Önmagában futtatva a mentéshez beállított könyvtárat nyitja meg.*****

Nekem a gyorsindító sávon (Quick Launch) és a küldés (Send To) menüben is van hozzá egy-egy parancsikon, és az őt tartalmazó könyvtár fel van véve a

PATH

környezeti változóba (mert parancssorból is használható (de az üzeneteket nem ott jeleníti meg (egyébként eléggé hallgatag)), pl.:

mentes valami.txt "valami könyvtár" "egy kis ez" "meg az" stb

), mert csak akkor ér valamit, ha kéznél van.

Valamennyire kezeli a hibákat, de nem túlságosan. A helyettesítő karakterekkel nem tud mit kezdeni.

* a parancsikonokat nem követi; különleges objektumokkal nem feltétlenül boldogul
** a scriptben előre beállított könyvtár (környezeti változó is lehet)
*** 7-Zipet használ, de mással is működik
**** a kiegészítés tetszőlegesen megváltoztatható a scriptben
***** vagy hibaüzenetet jelenít meg, vagy azt csinál, amit szeretnél

Ha valaki pont erre vágyott, jó neki. Ha másra, az nem ez.

Szabadon bármicsinálható vele, de Facebookon lájkolni rossz jellemre vall.

:)

egy ideje próbálok megszabadulni porosodó könyveimtől, de nem igazán találtam erre szakosodott oldalt, úgyhogy összedobtam egyet, persze elég egyszerű az egész:

Könyvbazár

kereken 1 napja megy az oldal, úgyhogy még nincs sok hirdetés fent, de bátran lehet regelni és hirdetni :)

Üdv,
Sándor

egy darabig nem volt munkám és ezért esténként sok szabad időm volt. de azért próbáltam úgy elaludni, hogy még normális időben fel tudjak kelni. persze ha nem voltam álmos filmet vagy sorozatott néztem.

dotnetben windows alá csináltam egy progit ami miután lejátssza a filmet kikapcsolja a gépet. sima alkalmazás indítás volt. mplayer játszotta le a progit mert az ugye kilép a film végén. és ezért lehet WaitForExit fügvényt használni.

később csináltam bele késleltetést, hogy ha esetleg a sorozat végén még nem aludnék akkor érkezzek leállítani a kikapcsolást és plusz részt betenni. illetve kész lejátszó listát is tudtam betenni. nem csak egy filmet.

na én sem akarok kimaradni, így másfél év után... :)

anno 15 éve átírtam a régi klasszikus Wizard of Wor nevű játékot DOS-ra, Turbo Pascalban készült, 320x200 256 szín, joystick kezelés (volt átalakított Quickshot joyunk erre a célra), IPX multiplayer, SB Pro, Gravis, sok finomság volt benne. Sajnos sem a forrás, sem a bináris nincs már meg, tönkrement a hdd-m, persze a floppy backupok is, de még nem adtam fel a reményt, a sch-ben játszottak vele páran, hátha valahol meg van archívban...

illetve 2004 környékén 5.1 DirectSound kimenet a windowsos mplayer-be... na ez viszont megvan a mai napig, szerencsére nem én vigyázok a forrásra

Sokoban megoldó program.

A Sokoban azért érdekes, mert elég agyament megoldások kellenek, de az értelmes lépések száma általában kevés. Éppen ezért a brute force megoldás az esetek 50%-ában jó. Az őrült nagy pályák esetén képes elszállni a megoldási idő.

E - kezdőpont
D - gyémánt
B - bázispont ahová tolni kell
d - gyémánt és bázis egyszerre
X - fal
SPACE - szabad terület

A program 1 nap tologatás után született, mert rájöttem, hogy ennyi idő már elég lett volna a megíráshoz.

Működés:
- legelőször feltérképezi azokat a mezőket, ahová eljuthat a gyémánt (zsákutcák kiszűrése)
- utána ciklikusan kiszámolja a lehetséges lépéseket
- már kipróbált kombinációk eldobálása
- bizonyos értelmetlen felállások automatikus kiszűrése

Minthogy brute force, a legykevesebb lépésből álló megoldást fogja adni.

#!/usr/bin/perl

use Data::Dumper;
use strict;

my @initial = ('XXXXXXXXX',
               'XXX  XXXX',
               'XXX  XXXX',
               'XXXDBD  X',
               'X  BEB  X',
               'X  DBDXXX',
               'XXXX  XXX',
               'XXXX  XXX',
               'XXXXXXXXX',);

my $fileName = shift @ARGV;

if( defined $fileName )
{
  open(FH, "<", $fileName);
  @initial = <FH>;
  close(FH);

  s/^\s+|\s+$//s for (@initial);
}

my $stcnt = 1;
my %processedStates;
my @states = ([[map { [ split //, $_ ] } @initial],undef,1],);

my @targetValues = find( ['B',], $states[0][0] );
my @targetValues2 = find( ['d',], $states[0][0] );
push @targetValues, @targetValues2;

my %illegalFields = detectIllegalFields( $states[0][0], @targetValues );

replaceValue( $states[0][0], 'B', ' ' );
replaceValue( $states[0][0], 'd', 'D' );

while( replace( [' ', 'E',], ['E', 'E', ], $states[0][0] ) )
{
}

while( my $currentArr = shift @states) {
  my ($current,$parent,$round) = @$currentArr;

  my @arr = map { $current->[$_->[2]][$_->[1]] } @targetValues;
  if( (grep { $_ eq 'D' } @arr) == @arr )
  {
    my @resultArr;

    while( defined $parent )
    {
      unshift @resultArr, $parent;
      $parent = $processedStates{$parent};
    }

    print "All found!\n";
    my $cnt = 1;
    my $len = @{$current->[0]};

    for my $res (@resultArr)
    {
      my @rows;
      my $tmp = $res;
      $tmp =~ s/E/ /g;

      while( length($tmp) )
      {
        push @rows, substr($tmp,0,$len);
        substr($tmp,0,$len) = '';
      }

      print STDERR $cnt++ . ". step:\n";
      print STDERR " " . join( "\n ", @rows ) . "\n";
    }

    exit;
  }

  $stcnt++;
  if(( $stcnt % 100 ) == 0 )
  {
    $|++;
    print "\rQueue:" . @states . ", steps:". (scalar(%processedStates) + 0). ", rounds:$round ";
  }

  my @possibleMoves = find(['E', 'D', ' '], $current);
  my @ext = find(['E', 'D', 'E'], $current, bidir => 1);
  push @possibleMoves, @ext;

  my @short = clonearr( @$current );
  replaceValue( \@short, 'E', ' ' );

  my @newMoves;
  for my $move( @possibleMoves )
  {
    my @step = clonearr( @short );
    changeTo( $move, [' ', 'E', 'D'], \@step );
    next if isInvalid( $move, \@step );

    while( replace( [' ', 'E',], ['E', 'E', ], \@step ) )
    {
    }

    my $myName = hashCode( \@step );
    next if exists $processedStates{ $myName };
    $processedStates{ $myName } = $parent;

    push @newMoves, [\@step, $myName, $round+1];
  }

  push @states, @newMoves;
}

die "No solution exists!";

exit;

sub clonearr
{
  my (@arr) = @_;

  my @res;

  for my $n(@arr)
  {
    push @res, [ @$n ];
  }
  return @res;
}

sub replaceValue
{
  my ($map,$this,$that) = @_;
  for my $y (@$map)
  {
    for my $cell (@$y)
    {
      $cell = $that if $cell eq $this;
    }
  }
}

sub replace
{
  my ($this, $that, $map) = @_;

  my @patterns = find( $this, $map );

  for my $pattern(@patterns)
  {
    changeTo( $pattern, $that, $map );
  }

  return @patterns;
}

sub changeTo
{
  my ($pattern,$that, $map) = @_;

  my $x = $pattern->[1];
  my $y = $pattern->[2];
  my ($dx,$dy) = @{ $pattern->[0] };

  for my $d (@$that)
  {
    $map->[$y][$x] = $d;
    $x += $dx;
    $y += $dy;
  }
}

sub find
{
  my ($pattern, $map, %parms) = @_;
  my $str1 = join('', @$pattern);
  my $str2 = join('', reverse(@$pattern));
  $str2 = undef if !($parms{bidir} && (length($str1) > 1)) && ($str2 eq $str1);

  my @arrays;

  my $xlen = @{$map->[0]};
  my @xstrings = map { join('', @$_) } @$map;
  my @ystrings = map { my $p = $_; join('', map { $_->[$p] } @$map) } 0 .. ($xlen - 1);

  for (my $i=0; $i < @xstrings; $i++ )
  {
    my $pos = 0;
    my $res;
    while( ( $res = index( $xstrings[$i], $str1, $pos ) ) != -1 )
    {
      push @arrays, [[1,0], $res, $i];
      $pos = $res + 1;
    }
    if( defined $str2 )
    {
      my $pos = 0;
      while( ( $res = index( $xstrings[$i], $str2, $pos ) ) != -1 )
      {
        push @arrays, [[-1,0], $res + length($str2) -1, $i];
        $pos = $res + 1;
      }
    }
  }

  if( length($str1) > 1 )
  {
    for (my $i=0; $i < @ystrings; $i++ )
    {
      my $pos = 0;
      my $res;
      while( ( $res = index( $ystrings[$i], $str1, $pos ) ) != -1 )
      {
        push @arrays, [[0,1], $i, $res ];
        $pos = $res + 1;
      }
      if( defined $str2 )
      {
        my $pos = 0;
        while( ( $res = index( $ystrings[$i], $str2, $pos ) ) != -1 )
        {
          push @arrays, [[0,-1], $i, $res + length($str2) - 1];
          $pos = $res + 1;
        }
      }
    }
  }

  return @arrays;
}

sub niceDump
{
  my ($map) = @_;

  my @xstrings = map { join('', @$_) } @$map;
  print Dumper( \@xstrings );
}

sub hashCode
{
  my ($map) = @_;
  return join('', map { join('', @$_) } @$map);
}

sub isInvalid
{
  my ($move, $map) = @_;

  my $newLocX = $move->[1] + 2 * $move->[0][0];
  my $newLocY = $move->[2] + 2 * $move->[0][1];

  my @rows;

  for my $k ( 1, 0, -1 )
  {
    push @rows, [ map { $_ eq 'X' ? 1 : ( $_ eq 'D' ? 2 : 0 ) } map { $map->[$newLocY-$k][$newLocX+$_] } -1 .. 1 ];
  }

  my @destPos = grep { $newLocX eq $_->[1] && $newLocY eq $_->[2] } @targetValues;
  return 0 if @destPos;

  return 1 if $illegalFields{ $newLocX . ":" . $newLocY };

  return 1 if $rows[ 0 ][ 0 ] && $rows[ 0 ][ 1 ] && $rows[ 1 ][ 0 ];
  return 1 if $rows[ 0 ][ 1 ] && $rows[ 0 ][ 2 ] && $rows[ 1 ][ 2 ];
  return 1 if $rows[ 2 ][ 0 ] && $rows[ 2 ][ 1 ] && $rows[ 1 ][ 0 ];
  return 1 if $rows[ 2 ][ 1 ] && $rows[ 2 ][ 2 ] && $rows[ 1 ][ 2 ];

  return 1 if ($rows[ 0 ][ 1 ] == 1) && ($rows[ 1 ][ 0 ] == 1);
  return 1 if ($rows[ 0 ][ 1 ] == 1) && ($rows[ 1 ][ 2 ] == 1);
  return 1 if ($rows[ 2 ][ 1 ] == 1) && ($rows[ 1 ][ 0 ] == 1);
  return 1 if ($rows[ 2 ][ 1 ] == 1) && ($rows[ 1 ][ 2 ] == 1);

  return 0;
}

sub changeIfNeeded
{
  my ($pattern,$that, $map, $cellValue) = @_;

  my $x = $pattern->[1];
  my $y = $pattern->[2];
  my ($dx,$dy) = @{ $pattern->[0] };

  for my $d (@$that)
  {
    $map->[$y][$x] = $d if $map->[$y][$x] ne $cellValue;
    $x += $dx;
    $y += $dy;
  }
}

sub detectIllegalFields
{
  my ($map) = @_;

  my @valids = clonearr( @$map );

  replaceValue( \@valids, 'E', ' ' );
  replaceValue( \@valids, 'D', ' ' );
  replaceValue( \@valids, 'd', 'B' );

  my $ok = 1;

  do
  {
    my @loc1 = find([' ', ' ', 'B'], \@valids);
    my @loc2 = find(['B', 'B', ' ', 'B'], \@valids);

    changeIfNeeded( $_, [' ', 'B', 'B'], \@valids, 'B' ) for (@loc1);
    changeIfNeeded( $_, ['B', 'B', 'B', 'B'], \@valids, 'B' ) for (@loc2);

    $ok = !(@loc1 || @loc2);
  }while( !$ok );

  niceDump( \@valids );

  my @illNodes = find( [' ',], \@valids );
  %illegalFields = map { $_->[1] . ':' . $_->[2] => 1 } @illNodes;
}

Legszives az elozo kodot tedd ki valahova es ide csak a linkjet tegyed.
1) ez nem kodtarolo hely
2) nincs kodformazas/kodkiemeles, igy kb. atlathatatlan es navigalhatatlan.

Egy jo hely erre a https://gist.github.com/ ahol meg egy git repot is kapsz bonuszban melle :-)
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

http://distrib-coffee.ipsl.jussieu.fr/pub/linux/mandriva-prehistory/6.0…
http://distrib-coffee.ipsl.jussieu.fr/pub/linux/mandriva-prehistory/6.0…

A prehistory tetszik benne csak, a "kód" az már nem annyira... A sztori egyébként egyszerű volt, megkaptuk az IBM PC300-GL gépeinket, benne rádiós hangkártyával, és kellett valami, amivel konzolról is lehet rádiót hallgatni. A Video4Linux és környéke akkoriban bontogatta a szárnyait, úgyhogy maradt a direkt matatása a kártyának...

Anno Mandrake volt a gépen, ha jól emlékszem, ezért az rpm - azóta volt jó sokáig Debian, mostanság meg Ubuntu.

A 300-as limit a 100 hsz. környékén flame-be fulladó hülyeségekre vonatkozik, normális topic esetén bevállalom a nem beágyazott formájú megjelenítés használatát is.

Szeretném megragadni az alkalmat és publikálnám egy saját fejlesztésű alkalmazásomat.

A neve: LbCreator
A szoftver segítségével címkéket állíthatunk elő, különböző komponenseket helyezhetünk rá (kép,vonalkód,szövegdoboz), lehet adatokat importálni CSV-ből és ODBC-ből valamint támogatja a fontok importálását. Tetszőleges méretű alapanyagra állíthatjuk elő a nyomatot, akár több nyomat is elhelyezhető egy íven.

A projekt első alpha kiadása elérhető a projekt honlapján:

http://www.lbcreator.hu

A licenc-t "common creative" alapján képzeltem el, így ingyenesen letölthető, terjeszthető (ellenszolgáltatások nélkül),illetve a program nem módosítható (ezzel kerülném el azt, hogy valaki a módosított programot sajátjaként pénzért árulná).

A támogatás egyenlőre csak PayPal bevonásával fut a további ügymenet még kidolgozás alatt van.

Helló!

Egyenlőre a magyar célközönség volt a pálya, mivel Magyarországon ilyen jellegű szoftvert csak úgy tudsz beszerezni, hogy adott címke nyomtatóra jó csak, vagy előre megadott alapanyagokra tudsz outputot csinálni amit az alapanyag gyártó árusít (de hozzá ezt a szoftvert ingyen letöltheted), ami fizetős az meg húzósabb kategória (bár az tud SAP-ot, illetve 2D barcode-okat)...

Továbbá csak címke készítéshez hatalmas kiadás egy dokumentum-kompozíciós rendszer vásárlása.

A további tervek között elsősorban a GUI "finomítása" szerepel, valamint változó képek importálásának lehetősége.
Későbbiekben elképzelhetőnek látom a több nyelvűség támogatásának fejlesztését.

kar, hogy nem lehet hibas commentet torolni.

Ez kevés! Azért kevés, mert csak neked rejti el.
Pedig néha előfordul, hogy az ember keze gyorsabb mint az agya, és jó lenne a butaság, elnézés, mellényúlás nyomait kitörölni mindenkiszámára, mert értelmetlenül van ott!
Az általános törölhetőség persze más problémákat vet fel. Értelmetlenné teszi a kapcsolódó hozzászólásokat is, de az meg még rosszabb lenne, ha a hozzászólásom "alatt" lévő hozzászólásokat is törölné.
A tanulság: Észnél kell lenni és megfontoltan kell írni! :-)
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

Nem kódolás, de talán idefér ez is… Tipográfiai munkásságom eredménye::
http://www.dafont.com/balint-erdosi.d2939

Van több is, csak DaFontra lassan kerülnek fel a dolgok.

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

Mivel jómagam, webdesignnal és webprogramozással, valamint érdeklődés (hobbi) szinten SEO-val is foglalkozok, így kézen fekvő volt, hogy létrehozzak valamit a PageRank építő közösségnek.
Így született meg nemrég a Webrain, ami egy egyszerű linkkatalógus, viszont mégsem olyan átlagos mint a legtöbb hasonló oldal.
Sok gondot fordítok rá, javítgatom, fejlesztgetem amikor csak tudom.

Az egyes oldalaknál Alexa és Google PR kijelzés is van, amiket rendhagyó módon nem maga az oldal CMS-e kérdezz le. Erre egy külön "asztali" alkalmazást írtam, amellyel tudom frissíteni ezeket az értékeket.
Ez azért kellet, mert a Google nem szereti, ha a PageRankot több százszor kérdezed le, és előbb-utóbb blokkolja azt az IP-t, ahonnét sok ilyen kérés jött. És mivel itthon, minden nap új IP-t kapok, így ez a veszély nem fenyeget és még a kényelem rovására sem megy.

Szintén rendhagyó módon, ez a katalógus rendelkezik iPhone/iPad verzióval is! Mivel Apple fan vagyok, és érdekel a mobilokra optimalizált weboldalak fejlesztése, így létrehoztam a Webrain Mobile-t! :)

Lehet, esetenként túllőttem a célon, ami egy ilyen weboldal esetében szűkséges, de mivel hobbi projekt így gondoltam bele viszek merészebb dolgokat is.
Mindenesetre örülök, mert bevált a rendszer és naponta 5-6 ajánlás érkezik, tehát jó érzés, hogy van valamim amit sokan használnak és a segítségükre van a saját munkájukban.

A magamfajta AVR-el kókányolók biztosan sok anyáztak már azért, mert eltolták a FUSE bitet a kedvenc kontrollerükben. Mivel ez velem is megesett párszor ezért hegesztettem egy frontendet az avr-dude elé ami segítségével emberbarát módon tudom a fuse biteket cseszletni. A cucc Qt4 alapú, és az AVR studiohoz adott XML fájlokból generálja a fusebeállító guit. És természetesen vastagbetűsen anyáz ha külső órát akarsz beállítani.

Ezenfelül majdnem minden avrdude funkció elérhető belőle grafikus felületen, emberbarát módon lehet programozót választani stb.

Rilíz egyelőre nincs, majd ha nagyon ráérek csinálok debcsomagot meg statik exet belőle hogy mindenki boldog legyen.

http://code.google.com/p/avrdude-qt-gui/

Sziasztok,

újabb alacsony költségvetésű projektem készült el, remélhetőleg nem hiába dolgoztam vele :) Ingyenes WordPress blogot nyújtok egyelőre csak angolul.

http://blogdict.net/

WordPress-es emberek véleménye érdekelne, hogy ki milyen plugint/témát javasolna a meglévők mellé.

Ha valaki esetleg a facebook like-ra is rákattint annak nagyon megköszönöm.

Üdv,
Sándor

Egy kisebb játék, szórakozásra. :) a forrás ugyan nincs nagyon kommentelve, de szerintem egész könnyen olvasható:link
A https miatt lehet, hogy elsőre nem enged be, de ez csak egy home server :) ...
Makefile-t nem csináltam mert gondoltam 1 db c file-hoz nem kéne, na mindegy a többi bent van a readme-ben
A játék egy egyszerű koordinátageometria alapú versenyzés :) könnyű hozzá pályát is csinálni stb.
Ha nem működne dobhattok mailt:rise.hun[kukac]gmail[pont]com

---
Where there is a shell, there is a way.

Köszi :)
Még érettséig fejlesztem de akkor le kell állnom egy kis idôre, bár szívesebben csinálnám ezt :)
[Szerk] nem szeretek android alól kommentelni mert néha nem kezeli a fa szerkezetet..
---
Where there is a shell, there is a way.

Az SDL használatával készült a bmp3d nevű progi, ami egy 256 színű képből a színek számértéke szerinti 3 dimenziós 'tájképet' mutat.
--
Azt akarom, hogy az emberek ne kényszerből tanuljanak, hanem azért, mert tudni akarnak.

Egy egyszerű, parancssoros tumblr-postoló:

#!/bin/bash

URL=$1
NAME=$2
CONTENT=$3

IFS=^

set -f
command="dialog^--stdout^--checklist^Cimke^20^30^30^$(cat $HOME/logfiles/tumblr-tags)"
TAGS=`$command`
TAGS=$(echo $TAGS | sed 's@\" \"@\",\"@g')

IFS=" "

curl -s -n -d "email=EMAIL&password=PASSWORD&type=link&url=$URL&name=$NAME&description=$3&tags=$TAGS" http://www.tumblr.com/api/write

A ~/logfiles/tumblr-tags generálása:

#!/bin/bash

LOGFILES=~/logfiles

(curl -s http://AZONOSITOD.tumblr.com/api/read | grep -o "<tag>[^<]*</tag>" | sed "s@</*tag>@@g ; s@\$@^^0@g" | sort -u | tr "\n" "^") > $LOGFILES/tumblr-tags

A newsbeuter hírolvasóhoz készítettem, ha a bookmarking parancsára az első szkriptet állítod be, akkor a C-B hatására lefut, megkérdezi a linket (mármint a newsbeuter), címet (enter-enter és akkor az alapértelmezett lesz), utána pedig kidobja a párbeszédablakot, ahol a már meglévő tag-ekből választhatsz. Így nem kell még egy böngészőt indítani, ott megosztani, stb. Gyors, praktikus, egyszerű :)

A kod ugyan nem sajat munka, segitseget kertem a Coppermine foruman (nem volt olyan egyszeru belenyulni egy osszetett rendszer kodjaba, mint gondoltam).

Evek ota tortem a fejem, hogy inkabb szines, vagy fekete-feher kepeket tegyek kozze az egyik galeriamban. Vegul kipattant a fejembol kiotlottem a lenti megoldast, eloszor sajat, egyszerubb valtozatokkal (JS), majd az elozoek szerint:

Fekete-fehér fényképek színes eredetikkel

Eszreveteleket, javaslatokat szivesen fogadok.
--
Direp

Ó… Azt hittem, találtál valami okos (=gyors) megoldást arra, hogy elég legyen csak a nagy felbontású színes képet tárolni, és abból csinálsz fekete-fehéret…
Valószínűnek tartom, hogy ezen a területen az Internet Explorer-féle filter property gyorsabb, mint a canvases megoldás (ami viszont jobban testreszabható algoritmus).

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

Ezzel az a gond, hogy ha jó minőségű fekete-fehér képeket akar az ember, akkor azokat külön-külön manuálisan kell létrehozni a színes képekből (csatornakeverő, gamma-görbe stb.) Így marad az egyszerű képcsere.

Egy másik galériámban máshoz kell a canvas, ott a látogató s.k. is létrehozhatja a fekete-fehér képeket (korlátozott lehetőségekkel persze). Itt lehet megnézni: http://cc.direp.hu (Itt jelenleg mindössze egy alapítványnak önkéntesként készített fotóim vannak fent, de ezen is lehet látni amit kell..)
--
Direp

Jogos a felvetés, természetesen az algoritmus nem tudja pótolni a művészi döntéseket. Első közelítésben automatikus csatornakeverésre gondoltam, valami ilyesmire:

r = b = g = (0.3*r + 0.5*g + 0.2*b);
int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

Segítséget kérnék az alábbi program teszteléséhez, tovább fejlesztéséhez, nemzetköziesítéséhez.
Itt a gettext-re gondoltam, de eddigi kísérleteim kudarcot vallottak.
http://files.myopera.com/Nextra/files/TvRip-1.81.zip

Ez egy analóg tévékártyákhoz készült konzol módú interaktív "videomagnó".
Gondolom azért még nem teljesen a kukába való, mivel sok háztartásban van kábelrendszer, és nem mindenkinek van még dvb-c vevője.

Én egyelőre idáig jutottam el vele. Ami nem teljesen kiforrott az az rtc0/wakelarm.
Odáig eljutottam hogy elkészül a tényleges felvételnél 2 perccel korábbi unix formátumú idő egy txt fájlba.
Gyakorlatilag ezt a sudo-n keresztül írom be a /sys/class/rtc/rtc0/wakealarm fájlba, de a gép mintha nem mindig foglalkozna vele.
Éppen ezért ez most nincs is benne a csomagban.

Van-e más út a gép felélesztéséhez a hibernáción kívül?

Annyit tudni kell hogy én nem tudok programozni.
Mindent a fórumokból, levlistákból kapott tanácsokból, ötletekből kísérleteztem ki, tanultam meg.
Kevés az a kód részlet melyet egy az egyben átvettem.

A segítséget előre is köszönöm.

graphviewer:

Általános léptethető (pl. idő-)grafikon vizualizáló. Kb. bármilyen szöveges standard inputot performance meter jellegű módon megjelenít, több gráf lehet egy ablakban, több ablak lehet, stb. Van hozzá némi doksi meg egy online konfig file generáló oldal is.

Pici, lightweight. FLTK grafikát használ, ami statikusan bele van linkelve.

Ugyan korábban már post-oltam, de mostanra fejlődött a programom:


_________________________________ ELETJATEK __________________________________

Hasznalat: eletjatek [KAPCSOLOK] [FAJL]

Az eletjatek (game of life) nagyfelbontasu verzioja.
FAJL nelkul a 'pelda.bmp' kep lesz a kezdeti allapot, ha viszont sajat kepet
szeretnenk importalni, akkor a formatuma 1 bites szinmelysegu (2 szinu
indexelt) BMP kell, hogy legyen.
Alltalaban a nagyobb szamerteku szin az aktiv, de ezt GIMP-pel modosithatjuk a
'Szinek / Lekepezes / Szinterkep ujrarendezese' menupontban.

KAPCSOLOK

    ( -h | --help    )          segitseg
    ( -s | --start   ) START    a kezdeti generacio szama (1)
    ( -f | --fps     ) FPS      kepfrissites sebessege (16)
    ( -z | --zoom    ) ZOOM     nagyitas merteke (1)
    ( -x | --szabaly ) A:B:C:D  A: eletbenmaradashoz min. szomszedok szama (2)
                                B: eletbenmaradashoz max. szomszedok szama (3)
                                C: uj sejthez min. szomszedok szama (3)
                                D: uj sejthez max. szomszedok szama (3)

IRANYITAS

    SPACE                       szunet
    ( ESC | q )                 kilepes

.................................. OTLETEK ...................................

Ha csinalunk egy kepet, amelyen csak egyetlen aktiv pont talalhato, es a
szabalyokat ugy adjuk meg, hogy 1 szomszed eseten jojjon letre uj sejt, akkor
erdekes mintazatokat kaphatunk.

    eletjatek -x 2:3:1:1 pont.bmp

Szinten erdekes meg, ha pl. az alap keppel es a kovetkezo szabalyokkal
jatszunk:

    eletjatek -x 4:5:2:3

Vagy peldaul folyadek-szeru hatast is kihozhatunk:

    eletjatek -x 4:5:3:3

__________________________________ WINDOWS ___________________________________

Windows-on a szoveges kimenet az 'stdout.txt' fajlba kerul, mig a hibajelzesek
az 'stderr.txt'-be.

________________________________ BIMBA LASZLO ________________________________
                           http://bimbalaszlo.uw.hu

Letölthető zip és tar.gz formában is.
--
Azt akarom, hogy az emberek ne kényszerből tanuljanak, hanem azért, mert tudni akarnak.

Pár ilyen a napi munkámtól teljesen eltérő hobbi projectet tettem ki ide/oda.

Kipróbáltam, nekem nagyon begyere. Sokat kerestem ilyesmi alkalmazást, de mind tukmált a repülővizsgás beálításaival, meg avval, hogy nekem kellett kapcsolgatnaom, hogy éppen, mivel foglalkozom, pedig az olyan egyszerű, van 3 alkalmazás, amit munkával kapcsolatban használok, logolja azokat, oszt jónapot. Köszi, hogy megosztottad.

Ez az én megoldásom a "RAR problémára". Ez az első és eddig egyetlen komolyabb shell-scriptem.
Paraméterként a csomagolt fájl(ok) nevét kell megadni kiterjesztés nélkül.

Pl.: packed.part001.rar esetén
script_neve packed

Ha a kicsomagolt archívumban bin/cue páros volt ugyan azon a néven, akkor azt átkonvertálja .iso-vá, amennyiben nem tartalmazott hangsávot is a bin.
Ehhez szükség van a bchunk program telepítésére!

Két problémám van vele.
1. Ha elfogy a hely kicsomagolás közben, akkor is törli a *.rar fájlokat, de erre már lene megoldás, csak lusta vagyok...
2. Szeretném megcsinálni úgy, hogy ne kelljen megadni paramétert, max. egy kiinduló könyvtárat, amit alkönyvtáraival együtt rekurzívan átnyálazna és végezné a dolgát.

Tudtok eme két hibában/hiányosságban segíteni?
Építő jellegű hozzászólásokat is szívesen fogadok!

openSUSE 12.2, vagy ami éppen jön.

Azt a sok if elif, stb. dolgot másképp csinálnám. Vagy case esac, vagy egy ciklus, ami végig megy egy tömbön, a tömbben a string konstansok, s a többi adja magát.

Aztán, ha a filenévbe teszek egy szóközt, az egész el fog hasalni. A megfelelő helyettesítéseket tedd idézőjelek közé! További észrevételem, hogy fileneveket nem szerencsés bedrótozni. Hozd ki egy változóba, az elején deklaráld, s a későbbiekben hivatkozz rá. Az sem jó ötlet, hogy simán írsz egy rarerror.txt file-t. Mi van, ha az aktuális könyvtárhoz nincs írási jogod? Aztán mi van, ha már van egy ilyen file, s benne van nagymamád legfinomabb pogácsa receptje, s felülírod? Szerintem ismerkedj meg az mktemp paranccsal.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Köszönöm, hogy átnézted a kódomat és segítettél, hogy publikációképesebb legyen. :)

A sok if elif-et kicseréltem, nekem is szúrta a szemem. :) ciklus mellett döntöttem.

A szóközt tartalmazó fájlnévnél valóban elhasalt eddig, ezt is javítottam, de igazán nem zavart, mivel nem volt olyanokkal dolgom, vagy csak ritkán. (Olyankor csoportos átnevezéssel megoldottam a dolgot. :D)

A kiterjesztések mostmár nincsenek bedrótozva, egy tömbbe raktam őket.
Egy másik tömbben vannak azok, amelyeket törölni kell kicsomagolás után.

Megfogadtam az mktemp tanácsodat is, mivel eddig nem tudtam erről a lehetőségről. Örülök, hogy felhívtad rá a figyelmem.
Igaz, hogy a könyvtárakra minidg van írási jogom. Mivel oda végzem a kicsomagolást, így a script sem működne, ha nem így lenne.
Ezek a könyvtárak csak ideiglenesen jönnek létre egy erre a célra fenntartott üres könyvtáron belül, ahol véletlen sem tárolom megboldogult nagyanyám receptjeit, de az elegáns megoldásokat mindig is jobban kedveltem a gányolásnál. :)

Hálásan köszönöm az építő hozzászólásodat!

Van még pár nekem nem tetsző, ill. nem jól működő dolog a scriprtben.
Pl. ahol a kicsomagolás utáni felesleges fájlokat törlöm... azt hogyan kellene elegánsan megoldani? Mert nem így, az biztos. :) Működik, de szégyenlem magam miatta. :)

Itt a jelenlegi verzió

Erről a részről van szó:


   for k in $(rm -f $1.${ext_to_delete[$i]} 2>/dev/null);
   do
      echo $k
   done

A másik, ami nem hiszem, hogy jó lenne, de még nem próbáltam ki, az ez a rész:


   rm -f "$1[0-9][0-9].cdr"

Mindkettőre ugyan az lesz a megoldás, csak a megfejtés még távol áll tőlem.

Szerk.: A harmadik:
"rar" kiterjesztésű fájlok kicsomagolása után törölnöm kellene a "rar" és a "?[0-9][0-9]" fájlokat, de ez nem működik így. Hogyan kellene megoldanom?
Esetleg "[a-z][0-9][0-9]"-t írjak?

Szerk. 2: Ebből jön a 4. kérdésem. Mi van a nagybetűs kiterjesztésű fájlokkal? Azokra hogyan tudom ráhúzni ugyan ezeket a szabályokat?

A rekurzív könyvtárbejárásba az után ásom bele magam, ha az eddig elkészültek tökéletesen működnek.

A bash szintaktikája nagyon távol áll tőlem, de nem adom fel, szeretném jobban megismerni.

Még egyszer köszönöm a segítségedet!

openSUSE 12.2, vagy ami éppen jön.

Amikor a part üres string, ott exit 0 az, amit írni szerettél volna, nem pedig quit 0. Fölötte a ciklusban a 2>/dev/null értelmét nem látom, hiszen a vizsgálat szerintem nem fog semmit az stderr-re írni. A $error hivatkozást idézőjelbe tenném. Tudom, hogy az mktemp nem tesz a filenévbe szóközt, tehát a konkrét esetben semmi jelentősége, csak bántja a szemem, rossz szokás. Egyedül akkor nem szoktam idézőjelbe tenni a helyettesítést, ha az a szándékom, hogy adott esetben több paraméterre hulljon szét, amit helyettesítek, ilyen viszont ritkán fordul elő. Mondjuk parancssori kapcsolókat helyettesítesz egy változóval, akkor nyilván nem szabad idézőjelbe tenni, hiszen a helyettesítés után azt szeretnénk, hogy a szóközök mentén több paraméterre essen szét.

Azt a for ciklust nem értem, amit kérdezel. Ugye az rm -f törölne, s a kimenete adná azt a listát, amin a ciklus végigmegy. Ugyanakkor szerintem az rm -f nem fog semmit az stdout-ra írni, így nincs min végigmennie a ciklusnak. Szerintem ilyesmit szerettél volna:

for i in $(seq ${#ext_to_delete[@]}); do
  rm -f "$1".${ext_to_delete[i-1]}
done

Itt viszon épp nem kell az idézőjel, mert a shellt elzárod a globbing értelmezésétől. Az egyik sort szerintem így kellene írni ott:

rm -f "$1"[0-9][0-9].cdr

Igaz, nem próbáltam ki.

Az rm -f "$101.iso" gondolom, nem a 101-edik paraméterre akart vonatkozni, így lenne jobb:

rm -f "${1}01.iso"

Rekurzív könyvtár bejárásra alant írtam gondolatébresztőt. Nagyon egyszerű, szerintem nem szorul magyarázatra. Talán annyi, hogy a directory-t úgy vizsgálom, hogy megpróbálok egy cd paranccsal belemenni, ha sikerül, akkor visszahívom a függvényt rekurzívan majd cd ..-tal visszajövök az eredeti mélységre, ha nem, akkor pedig megnézem, regurális file-ról van-e szó, s ha igen, elvégzem a kívánt műveletet vele. Mert ugye a cd parancs exit kódja 0 - true -, ha sikerült, s nem 0 - false -, ha nem.

A for i in $(seq 0 ${#ext[@]}); do ciklusod túlcímez a tömbön! Ugye az n elemű tömb indexei 0-tól n-1-ig tartanak, s nem n-ig.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Amikor a part üres string, ott exit 0 az, amit írni szerettél volna, nem pedig quit 0.

Azért a quit()-al léptetem ott is ki, mert akkor már létezik az mktemp-el létrehozott fájl, amit a quit töröl, mielőtt exit-el kilép.


for i in $(seq ${#ext_to_delete[@]}); do
  rm -f "$1".${ext_to_delete[i-1]}
done

helyett ez lett a (majdnem) jó megoldás:


rm -f "$1".${ext_to_delete[i-1]} 2>/dev/null;

Hogyan lehetne megetetni ezzel azt az esetet, amikor türölni akarom:
az összes $1.rar és az összes $1.[A-Za-z][0-9][0-9] nevű fájlt?
Csak a $1.rar-t törli a mostani állapotában, a $1.r00-t és társait már nem.
Az eredeti ciklussal pont az volt a bajom (amire az előző kérdésem vonatkozott), hogy elvégezte ugyan a törlést, de nem igazán volt szükség a ciklusra és az echo is csak azért volt benne, mert a do és a done közé kellett valami. :D

Az is zavar még, hogy a VALAMI.partXXX.rar alakú fájlnevekben az XXX bármennyi db [0-9] számból állhat.
Pl. lehet:
VALAMI.part1.rar
VALAMI.part01.rar
VALAMI.part001.rar, stb.

Ezeket is le lehetne úgy kezelni valahogy, hogy ne kelljen egyesével megadni az összes lehetőséget a számjegyek számát illetően?
Valami ilyesmit találtam, de nem igazán vágom a pontos szintatktikát: [^0-9].

Itt a jelenlegi verzió, átnéznéd ezt is?

A gondolatébresztőt értettem és hálásan köszönöm! Szinte csak be kellett copy-paste-elnem.
A problémám a paraméter nélküli script-indítás esetén az, hogy eredetileg kiterjesztés nélküli fájlnévvel kell meghívni a scriptet, a rekurzió esetén pedig sajnos kiterjesztéssel "hívódik" meg a függvény, így nem is működik. Erre is ki kellene ötölni valamit.

Köszönöm, hogy ennyit foglalkozol velem!

openSUSE 12.2, vagy ami éppen jön.

Vendégségben voltam, s a kaja mellett finom volt a vörösbor is, így most nem merülnék részletekbe, mert csak ostobaságokat írnék. :) A quit-et valóban benéztem, nem vettem figyelembe, hogy az egy saját magad által deklarált függvény.

rm -f esetén kell a 2>/dev/null? Úgy emlékszem, a -f kapcsoló miatt akár nem létező file-ra is lehet hivatkozni, akkor sem ír hibaüzenetet. Mi több, ki is próbáltam, s valóban így van.

A "$1".??? nem jó megoldás? Ugyan nem a kérdésedre válasz, nem elég pontos, de hátha elég. Nyilván lehet szofisztikáltan is, de a fentebb említett oknál fogva most nagyon semmi kedvem gondolkodni. ;)

Van ám üres utasítás, nem kell az echo. Az üres utasítás a kettőspont, visszatérési értéke 0, azaz true. Példa:

while :; do sleep 1; done

Az utolsó kérdésedre nézd az alábbi kódot, a többit rád bízom:

a='valami.alma.doc'; echo "${a%.*}"
valami.alma

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE