apal blogja

malykroszoft tiimz

... tavaly sikerult beleplnem. Iden mar nem. Gondoltam megirom hosszabban is a tapasztalatokat, de aztan a gondolat tovaszallt - mondvan hogy valojaban sok ujat nem tudok mondani eme szoftverceg minosegerol. Mondjuk mar tavaly osszel is volt annyi sutnivalojuk a bizottsagoknak hogy a doktori vedesek es/vagy szigorlatok egyreszet attettek zoom-ra. Azaz van feny az alagut vegen, de a holnaputani esemenybol vsz igy meg es/vagy mar sokan kimaradunk.

Es akkor ird le szazszor...

ARMv6-M alatt nem csinalunk ilyet hogy uint32_t x = ntohl(*(uint32_t *)buff) ...

ARMv6-M alatt nem csinalunk ilyet hogy uint32_t x = ntohl(*(uint32_t *)buff) ...

ARMv6-M alatt nem csinalunk ilyet hogy uint32_t x = ntohl(*(uint32_t *)buff) ...

... 

Visszaszámlálás

Márcsak kevesebb mint 11 óra! https://www.youtube.com/watch?v=J1nfIV-4_e8

Két kicsi magyar műhold, reméljük minden is rendben lesz :) A videó moszkvai időt mutat, magyar idő szerint szombat reggel 07:07-kor indulunk. (Node a mi visszaszámlálónk az csak-csak jó... bár a javascript sosem tartozott a kedvenc nyelvek közé, odafent azért nem azt kell használni)

Szerk: egy nap halasztás, start vasárnap reggel! két nap halasztás, lesz ez hétfő reggeli start is.

USB meghubbant...

Van egy USB3-Ethernet adapter, amit ha egyik USB-A 2-es csatlakozoba dugok akkor minden oke, de ha a masikba (ami konkretan egy USB2-es hub egyik vagy masik csatlakozoja) akkor nem mukodik csak ugy. A dmesg szerint az enumeration elejen mar elekad (de konkret hibat nem irt ki). Ellenben ha csak ugy felig dugom be hogy eppenhogy legyen kontakt, akkor szepen megy - ellentetben mechanikailag annyira nem tartos a dugvany.

Akkor ezekszerint ez az USB3 vs. USB1/2 hardveres szintu csatlakozo-kompatibilitas az igy sikerult? Eszi, nem eszi, nem kap mast? :)

gray code...

... hogy az is egy kellemes erzes mikor kiderul ~fel nap debuggolas utan hogy a gray code -> binaris konverzio elott nem lehet csak ugy ad hoc negalni az osszes bitet :) Avagy: legkozelebb ne doljunk be az "ah, open collectoros a gray-enkoder kimenete, tokmindegy hogy hogy vesszuk le azokat a biteket" dolognak!

pexec-1.0rc7

Nemregiben ezt a pexec programot bevette'k a gnu projektbe. Mielott oda is teljesen felmenne, emitten egy lokalisan veglegesnek szant verzio (1.0rc7), itten. Sok aprobb fejlesztes: autoconf, mutexek, atomi parancsok, dinamikus terhelesmegosztas es -szabalyozas, doku; ha valakit erdekelne egy kis shell-szintu "data parallelization". Mindenfele hibajelentest, o"tletet, megjegyzest, egyebet addig is szivesen varok!

pexec-1.0pre2

Egy kis karacsony elotti pexec frissites, miutan x nap elteltevel sikerult elerni a vasat, amin a legutolso fejlesztes keszult. Biztonsagi mentesnek is betudhato, ennek oromere; es egy kvazi-kritikus bugot is sikerult kijavitani (nem biztonsagi hiba, csak neha leblokkolt, ha az input kellemetlen formatumu). Apropo, biztonsagi hibak: tud-e' valaki jo modszert hogyan lehet keresni/talalni effajta reseket egy adott programon, ami me'g belathato meretu"? Oke, ne hasznaljon az ember strcpy()-t, ezen kivul...:)?

pexec

Programocska, az elmult par nap termese: pexec (illetve itt csak a lenyeg). A szokasoktol elteroen ehhez van kis honlap, manual, peldak, es meg hasznalhato is. Kicsit bovebben: ez egy olyan valami, amivel binarisokat es/vagy szkripteket lehet parhuzamosan futtatni, ugy hogy a futtatasi parametereket (stdin/out/err, kornyezeti valtozok) adott halmazon varialja. Tud csak localhoston is mukodni, de a szegeny ember vizzel foz, remote hoston is fut egy kellemes rsh segitsegevel. Van meg hatra par dolog (signalok kulturalt kezelese, remote control, mutexek), ezeket a napokban, szabadido" fv-eben megcsinalom; de addigis lehet hasznalni, a mai sokprocis/sokmagos ge'pek idejeben neha nem is rossz, hogy ki is lehet hasznalni a teljesitmenyt...

y2k038

No, nem tudom mennyire kozismert, de a unix-os y2k problema't kvazi megoldotta'k:


apal@szofi:~/progs/test$ cat sizeof.c 
#include <stdio.h>
#include <time.h>

int main(void)
{
 fprintf(stdout,"time_t: %d\n",(int)sizeof(time_t));
 return(0);
}
apal@szofi:~/progs/test$ gcc -o sizeof sizeof.c 
apal@szofi:~/progs/test$ ./sizeof 
time_t: 8
apal@szofi:~/progs/test$ arch
x86_64
apal@szofi:~/progs/test$

Apro oromok :]

64bit, write(), ...

Hehe, ez vicces, ke't he't szivas utan a kovetkezo" konkluziora jutottam: a

write()

nevezetu" elegge alapszintu" fv 64bites architektura'n, (ahol a

sizeof(size_t)==8

) sem ke'pes egyszerre 2giga'nal nagyobb darabot kiirni. Diszkre.

Kerdes: le van ez irva valahol?!

Ez nagy szopa's volt, az biztos, az ember mindenhol keresi a hiba't csak itt nem... Gondolom megoztom a ko"zzel e felfedeze'st, ilyforma'n, egy forumbejegyz'est azert nem e'r meg...

sufnituning levlista

Tobbszor ma'r felmerult a problema, hogy kellene levelezo"listakat csinalni, mert ugye ha az ember 1-nel tobb emberrel levelezget, akkor az ma'r levlista. Probalkozik is mindenfelevel (

mailman

, a mi esetunkben, asszem), de install utan nem mukodik, ordogi korbe kerul ("ahhoz hogy csinalj egy uj levlistat piszkalj meg egy ma'r meglevot", de me'g egyetlen lista sem letezik). Mondana' az okos, hogy rtfm meg google, meg anyamtyukja, de nem. Ugyhogy ezennel megosztane'k egy nagyon primitiv, amde egyszerusegeben teljesen hasznalhatonak bizonyult kis howto-t, hogyan csinaljunk levlistat lufibol, szigszalagbol es pezsgo"tablettabol. Eme bejegyze's keretein belul, elfe'r itt is.

distributed computing

A minap megjelent itt egy hi'r, amire ugyan nem sok hozzaszolas erkezett, deazert egyvalamire kivancsi lenne'k. Azert is, mert jomagam is probaltam effe'let csinalni egy ido"ben(*). Szoval a kerdes az, hogy ilyen tudomanyosnak beallitott valamiket az emberek miert is futtatnak a ge'pu"kon, hogyan lehetne ravenni o"ket hogy futtassa'k, stb. En a kovetkezo" problemakat latom igy elsore:
- miert is futtatnank ilyeneket? terheli a gepet, memoriat, netet, blabla...
- mi az ami e'rdekes, tehat eleve a tema legyen olyan ami az atlagjuzert kivancsiva' teszi: vilagmegvalto szimulatciok es tarsai...
- miert bizol meg a programban amit letoltesz? nem fog valami ka'rt okozni, me'gha nem is szandekosan? (pl. benne maradt egy bug, tmpfile-ok torle'se temakorben, es veletlenul leirt valami olyasmi file-t is ami nem ke'ne)
Igazabol a 3. ami erdekes lehet. Amiatt, mert ilyen cuccot nem ad ki az ember teljesen nyilt forrasukent, mert akkor beletu'r a baromja, es hamis adatokat kuld vissza. Tehat, zart a forras. Ezt ugyan sikerult minimalisra leszoritani (forditaskor ke'r egy passphrase-t, azalapjan general egy digest-generalo kodot, amit belefordit a szerverbe es a kliensbe is, igy lehet autentikaltatni valamennyire biztonsagosan); de ettol fuggetlenul: zart a forra's. Persze lehet csinalni azt is amit a seti@home, hogy N (N=3, asszem) helyre kuldi ki ugyanazt a csomagot, mondva'n, hogy nagy a vila'g, de ezt pazarla'snak erzem...

orthogonal range search

A cimbeli problema a kovetkezo"t takarja: adott N pont, D dimenzioban, x1 ... xD koordinatakkal e's keressuk, hogy egy adott, [a1..b1]x[a2..b2]x...x[aD..bD] koordinataknak megfelelo" te'glatestben mely pontok esnek bele. Kerdes az, hogy erre a problemara letezik-e valami hatekony implementacio? N nagy (~500millio, 1.1milliard, ...), az asszocialt adatbazis is nagy (~100 giga...). Gyakorlatban D=2, 3 vagy 4 lenne.

Mysql-lel probalkoztam, az hatarozottan nem jo erre a problemara. Az oracle-t mondja'k me'g, csak annak az ingyenes verzioja 4giga's limittel rendelkezik. A mysql-ben ez az ege'sz csak kozvetetten van implementalva e's csak D=2-re (spatial extensions), mindez openGIS alapokon. A pgsql-be is ezt (opengis) implementalta'k, de azt nem probaltam me'g (erdemes-e?).

scanarg-1.1pre3

Folytassuk a "milyen programokat irt a hulyegyerek az elmult x e'vben" sorozatot, hatha egyszercsak bekerul ide valami olyasmi, ami erdeklodesre tarthat sza'mot. Az elobbiekben bemutatott program (psn-1.0pre5) egyik demojaban mar bennevan ez a szinten API, de talan erdekes lehet kulon is. Szoval.

Ez a scanarg-1.1pre3.tar.gz ne'ven futo konyvtar, mely a kozismert

getopt()

e's

getopt_long()

fuggvenyek mellett kinal alternativat ugyanarra a problemara, megpedig (argc,argv[]) parancssori argumentumok e'rtelmeze'se're. Olyan mint a

sscanf()

: %-s formaban kell megadni egy argumentum egy parameter-parkent jelenik meg. Nyilvan nem annyira altalanos, de joval kompaktabb mint a getopt, es relative sokmindent sikerult belezsufolni. Pl. automatikusan kezel dinamikus listakat, ami a wildcard-os filenevek megadasanal viszonylag hasznos tud lenni.

psn-1.0pre5 II.

Az elozo bejegyzesbol kimaradt, hogy a progihoz melle'kelve vagyon egy-pa'r pelda is, ami ugy onmagaban is hasznalhato valamire:
- egy egyszerusito program, beirsz egy egyenletet es egyszerusiti (pl. 1*x-bol x-et csinal)
- egy egyenletmegoldo program, Newton modszerrel (egyenlet beir, pl. x^2=x+1, kezdeti ertek beir, mondjuk 1, es kiirja az eredmenyt: 1.61803)
- egy altalanos illeszto" program (lfit), filebol/stdin-rol olvas adatokat es adott kifejezest (nem feltetlenul fuggvenyt) illeszt az adatsorra, aka'r linearis, akar nemlinearis modszerrel. Pl tud pontokra legjobban illeszkedo" ko"rt illeszteni:


lfit -v u,v,uvr -c x,y -f "2*x*u+2*y*v-uvr" -y "x*x+y*y"

ez az stdin-rol beolvasott ke'toszlopos adatsort (x es y koordinatak) beolvassa, majd kiirja a kor kozeppontja't (u e's v) illetve az uvr neveztu mennyiseget, amibol a kor sugara't a r=sqrt(u*u+v*v-uvr) formulaval megkaphatjuk (tobb pelda is van me'g, lasd

lfit --examples

)

psn-1.0pre5

Szinten egy kis sajat programocska, ha valakit erdekel az effele temakor: psn-1.0pre5.tar.gz.
Kicsit bovebben: ez egy olyan konyvtar lenne, amivel szimbolikus matematikai szamitasokat lehet vegeztetni. Olyasmi problemakra, amire az atlagember a yacc/bison-t hasznalna'. Ezutobbival szemben ez egy direkt API, hogy a

juzer altal megadott keplet => lexikalis lebontas => lengyelsorozat-koverzio => kiertekeles (=> tovabbi atalakitasok)

lepeseket kozvetlenul, egymas utan, megfelelo fuggvenyekkel vegre lehet hajtani. So"t, a lengyel-sorozatokkal (PSN: Polish suffix notation, neha RPN ne'ven is fut ugyanez) egyeb atalakitasokat is el lehet vegeztetni, pl. analitikus egyszerusitesek, analitikus parcialis derivaltak szarmaztata'sa, visszakonvertalas ember altal fogyaszthato formara (pl. latex-re), optimalizalni lehet -- noha mindent (lexikalis lebontast, fuggvenyeket es operatorokat, derivalasi es egyszerusitesi szabalyokat, stb.) kulon-kulon tanitani kell.

fatinfo-0.3

Ujabb verzio ebbol a fatinfo nevu izebol: fatinfo-0.3.tar.gz.

Ujitasok:
* kulturalt utf16 -> akarmilyen encoding, iconv()-val, nezi a LANG kornyezeti valtozot, ebbol probalja kihamozni, stb, de kezzel is felulbiralhato (--encoding);
* alkonyvtarakat is tud listazni;
* patch az aktualis stable (4.6.1); midnight commander-hez, hogy legyen benne ilyen fatinfo-fat tamogatas;
* par bugfix (pl eddig lehettek gondok a nagyon-nagyon-nagyon hosszu filenevekkel)
* egyszeru doksi: ./man/fatinfo.8

Hm, kene bekuldeni rendes patch-et az mc-fejlesztokhoz...:]