Fejlesztés

Vonalkód olvasó használati hiba LINUX-os böngészőbe (MEGOLDVA)

Fórumok

Készítenék egy PHP-MySQL -alapú programot, amibe vonalkódolvasóval olvastatnék be CODE 128 -as vonalkódokat.
Csináltam egy form-ot, beviteli mezővel.
Javascript-tel átfordítom az ASCII -kódokat rendes karakterekre, és a becsippantott mezőben felülírom
a tartalmat.
Ha kattintok a vonalkódra, valami speciális parancsot hajt végre,általában átvált a böngésző másik megnyitott fülére, vagy csak egy soremelést végez. de csak linuxos webböngészőben.
Konkrétan: UBUNTU GNOME + bármilyen böngésző (Próbáltam Chrome, Firefox).
Windows-os böngészőben semmi gond vele.
Bash scripttel már megoldottam UBUNTU alatt az ASCII - >> karakter konverzió.
Viszont ott meg tudtam oldani, hogy a csippantott ASCII -kódok meg sem jelennek, csak az átkódolt,
értelmes tartalom (read -s kod) { -s === silent)
Ha valahogy ugyanezt meg lehetne oldani PHP alatt is, hogy ne írja bele a beviteli mezőbe a csippantott kódokat,
csak a már Javascript-tel átkódolt értelmes tartalmat, az király lenne.

Megoldódott egy usb- s olvasóval kitűnően működik a dolog a weboldalon is.

Eclipse gepigeny

Fórumok

Gyors kerdes:

Meg tudnatok-e mondani, hogy mi a legfrissebb Eclipse verzio gepigenye? (ADT pluginnal vagy anelkul)?
Egy kicsi laptopra tennem fel, aminek az USB-vel is gondjai vannak.
Szoval ha nem menne rajta, akkor inkabb nem erolkodnek.

Koszonom a gyors valaszokat.

Feljlesztők segítségét kérném, Kernel modul fordítás

Fórumok

Sziasztok.

Adott egy program, a neve smartcam (http://sourceforge.net/projects/smartcam/) ez arra való, hogy a telefonunk (lehet az androidos vagy akár symbian) kamerájának képét wifin vagy bt-n használhassuk linux alatt (mint egy webkamerát).
Ahhoz, hogy ez működjön szükség van egy kernel modulra. Ezzel nincs is gond, eddig 2.6.35 alatt lefordult és működött is. Most viszont frissítettem a kernelt 3.14-re (egyébként egy 64bit-es ubuntu lucid-ról van szó), mégiscsak számos újdonság van benne ;). De ez alatt a kernel alatt nem fordul :(.
Innen töltöttem le: https://github.com/kripton/smartcam_linux mert ami a fenti oldalon van, az elég régi.

Tehát a konkrét hiba:

$ make -C /lib/modules/`uname -r`/build M=`pwd`
make: Entering directory `/usr/src/linux-3.14.18'
LD /tmp/smartcam_linux-master/driver_src/built-in.o
CC [M] /tmp/smartcam_linux-master/driver_src/smartcam.o
/tmp/smartcam_linux-master/driver_src/smartcam.c:585: warning: initialization from incompatible pointer type
/tmp/smartcam_linux-master/driver_src/smartcam.c:594: warning: initialization from incompatible pointer type
/tmp/smartcam_linux-master/driver_src/smartcam.c:612: error: unknown field ‘current_norm’ specified in initializer
/tmp/smartcam_linux-master/driver_src/smartcam.c:612: warning: initialization makes pointer from integer without a cast
make[1]: *** [/tmp/smartcam_linux-master/driver_src/smartcam.o] Error 1
make: *** [_module_/tmp/smartcam_linux-master/driver_src] Error 2
make: Leaving directory `/usr/src/linux-3.14.18'

Mivel úgy tudom ez alatt a kernel alatt már nincs "current_norm", ezért azt a sort kikkommenteztem, így van pár warning, de lefordul:

$ make -C /lib/modules/`uname -r`/build M=`pwd`
make: Entering directory `/usr/src/linux-3.14.18'
CC [M] /tmp/smartcam_linux-master/driver_src/smartcam.o
/tmp/smartcam_linux-master/driver_src/smartcam.c:585: warning: initialization from incompatible pointer type
/tmp/smartcam_linux-master/driver_src/smartcam.c:594: warning: initialization from incompatible pointer type
Building modules, stage 2.
MODPOST 1 modules
CC /tmp/smartcam_linux-master/driver_src/smartcam.mod.o
LD [M] /tmp/smartcam_linux-master/driver_src/smartcam.ko
make: Leaving directory `/usr/src/linux-3.14.18'

A modinfo szerint:

$ modinfo ./smartcam.ko
filename: ./smartcam.ko
license: Dual BSD/GPL
author: Ionut Dediu
description: Smartphone Webcam
srcversion: 9C88B7E7D9A164D69738815
depends: videodev
vermagic: 3.14.18-pcz-r2 SMP mod_unload modversions

A videodev term be van töltve.

Ha viszont megpróbálom betölteni ezt kapom:

$ sudo insmod ./smartcam.ko
insmod: error inserting './smartcam.ko': -1 Invalid parameters

A dmesg-ben meg ezt látom:

[90514.815289] ------------[ cut here ]------------
[90514.815308] WARNING: CPU: 0 PID: 3328 at drivers/media/v4l2-core/v4l2-dev.c:779 __video_register_device+0x58/0xd7a [videodev]()
[90514.815311] Modules linked in: smartcam(O+) webcamstudio(O) droidcam(O) pl2303 usbserial nls_utf8 isofs bluetooth 6lowpan_iphc b43 usblp ppp_async crc_ccitt snd_usb_audio snd_usbmidi_lib pwc videobuf2_core v4l2_common videobuf2_vmalloc videobuf2_memops videodev media ctr ccm binfmt_misc pci_stub vboxpci(O) vboxnetadp(O) vboxnetflt(O) vboxdrv(O) arc4 vhba(O) coretemp snd_hda_codec_conexant snd_hda_codec_generic snd_hda_intel snd_hda_codec mac80211 snd_hwdep snd_pcm_oss snd_mixer_oss snd_pcm psmouse snd_seq_dummy cfg80211 snd_seq_oss snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_device lpc_ich mfd_core snd soundcore ssb sdhci_pci sdhci led_class hp_wmi serio_raw msr sparse_keymap phc_intel(O) lzo i915 fbcon tileblit font bitblit softcursor drm_kms_helper ahci e100 mii drm i2c_algo_bit libahci video intel_agp intel_gtt [last unloaded: webcamstudio]
[90514.815395] CPU: 0 PID: 3328 Comm: insmod Tainted: G W O 3.14.18-pcz-r2 #2
[90514.815398] Hardware name: Hewlett-Packard Presario V6000 (RY564EA#ABU) /30BB, BIOS F.2E 03/22/2010
[90514.815401] 000000000000030b ffff88001c07dc58 ffffffff814feab4 000000000000030b
[90514.815406] 0000000000000000 ffff88001c07dc98 ffffffff8103bca3 00000000000002d2
[90514.815411] ffffffffa0571736 ffffffffa029f7d0 00000000ffffffff 0000000000000000
[90514.815416] Call Trace:
[90514.815425] [] dump_stack+0x49/0x5d
[90514.815432] [] warn_slowpath_common+0x81/0x9b
[90514.815440] [] ? __video_register_device+0x58/0xd7a [videodev]
[90514.815444] [] warn_slowpath_null+0x1a/0x1c
[90514.815451] [] __video_register_device+0x58/0xd7a [videodev]
[90514.815458] [] ? __vmalloc_node+0x35/0x37
[90514.815464] [] smartcam_init+0x58/0x80 [smartcam]
[90514.815472] [] ? 0xffffffffa02a1fff
[90514.815477] [] do_one_initcall+0x84/0x10a
[90514.815488] [] ? __blocking_notifier_call_chain+0x5b/0x67
[90514.815494] [] load_module+0x137d/0x1645
[90514.815498] [] ? module_unload_free+0xd8/0xd8
[90514.815504] [] ? __vmalloc_node+0x35/0x37
[90514.815508] [] SyS_init_module+0xb4/0xb9
[90514.815514] [] system_call_fastpath+0x16/0x1b
[90514.815518] ---[ end trace 2ffbd8ef55355ba7 ]---
[90514.815521] smartcam:(insmod) load status: -22

A drivers/media/v4l2-core/v4l2-dev.c fájl 779-ig sora ez:

/* the v4l2_dev pointer MUST be present */
if (WARN_ON(!vdev->v4l2_dev))
return -EINVAL;

Van már két video eszköt (/dev/video0 és video1), de nem hinném, hogy ez gond lenne (a azokat kiszedem akkor is ez van).

Szerintetek mi lehet a gond, valahogy működésre lehet ezt bírni?

Köszönöm

u.i.: Tudom, hogy van más program, amivel ezt meg tudom oldani, az megy is, de szeretném ha ez is működne.

Markdown specifikáció - Ti milyen dokumentációs toolt használtok?

Fórumok

A napokban kellett dönteni egy projektben arról, mivel írjuk a dokumentációt. Közben körbejárta az Internetet a hír, hogy páran összefogtak, és megalkották a Markdown specifikációt: http://standardmarkdown.com/

Egyrészt ennek örülünk, és köszönjük az erőfeszítéseket. Másrészt viszont kicsit szomorkodunk, hogy olyan cool dolgok, mint pl. a táblázatok a MarkdownExtrából nem kerültek be.

:-(

Mi végül Markdown/ReText kombónál maradunk, viszont érdekelne, hogy (főlkeg szoftveres projektben, tehát ahol akár a developer is néha dokumentációt kényszerül írni), mit használtok? Gondolok itt az egész spektrumra: Egy README-től kezdve a fejlesztői doksin át a User Guide-ig mindenre. Természetesen nem a kód/API doksira gondolok, azt alapértelmezettnek veszem, hogy javadoc/jsdoc/doxygen/etc van.

Szóval: ti mire, mit használtok?

Az én személyes kedvenc sztekkem a következő:

Markdown(Extra). Szeretem, ha egy egyszerű szövegszerkesztővel lehet írni a doksit, a forrásfában csak ilyent engednék meg. Táblázat feature kicsit macerának tűnik bővíthetőség szempontjából, de vannak erre is jó megoldások (https://github.com/godlygeek/tabular).

Külön, doksi repóba feltöltve (ahogy pl. githubon is), kényelmes a fejlesztőknek is. Személyes tapasztalat: Ha nem tudja a dev. azonnal megnézni böngészőben, akkor az a doksi _szinte_ nem is létezik. Ha nem tudja _szerkeszteni_ böngészőben: akkor egyáltalán nem létezik. Egy projektben egyszer docbookban (xml) kellett doksit írni. Senkinek nem volt fogalma sem, hol áll a fejlesztés és a szoftver... vagy éppen maga a dokumentáció...

(Szinte bármilyen) wiki. A fenti problémát pont a wiki küszöböli ki. Még jobb, ha (megintcsak a github/gitlab példájánál maradva) a wiki-t egyből gitbe menti, a legszueprebb, ha pedig rögtön Markdown-ban írhatjuk :-)

A wikis megoldáshoz mindenképpen szeretek belőni egy pdf exportert: a managereknek, product ownernek jót tesz, ha akár kinyomtathatja, és nézegetheti, és persze akkor kap egy oldalszámot is. Hátránya a wikinek a hierarchia hiánya: ez konvenciókkal kiküszöbölhető.

Word. WTF? Ezt én sem gondolhatom komolyan. Néha azonban olyan (főleg nagyvállalati) projektben találjuk magunkat, amikor nagyonfenszi, régimódi KÉZIKÖNYV kell.

Bár a Markdown->wiki->PDF járható útnak tűnik (én továbbra is talán ezt preferálnám), de be kell látni: a kézikönyvet már remélhetőleg nem én fogom írni, hanem az erre felvett technical writer. Ő pedig ne egy mancinéni legyen, aki egérrel kijelölve 29,3-as betűméretre állít, hanem ismerje a nagy office programok minden legtöbb csínját-bínját (template alapú formázások, referenciák, bibliográfia, etc.)

Mivel biztos fel fog merülni: a LaTeX-et bár ismerem, kerülöm. De ez már egy másik téma :-)

Firefox http-equiv refresh nem megy

Fórumok

Lenne egy információs tv, amit egy számítógép hajt meg. Így jelenik meg rajta az aktuális információ. A rendszer tervezés, fejlesztés alatt van jelenleg.
Próbáltam a legkevesebb erőforrásból megoldani a működését.
A megjelenítendő információ html+php+mysql-ből elérhető. Tehát firefox-ban van a weblap megjelenítve.
Jelenleg a rendszer VirtualBox-ban fut. CentOS 6.5 i386, 512MB RAM-al, Xfce4 ablakkezelő, Firefox 24.7.0. A frissítést egy másik lap oldja meg ami kikapcsolja a scrollbar-okat, ezzel a sorral megy a frissítés:

meta http-equiv="refresh" content="60"

Jelenleg a probléma, hogy egy jó ideig frissít is szépen. Majd egyszer csak megáll a frissítés, sőtt az animált gif-ek is megállnak. A grafikus felülethez a VirtualBox ablakában nem nyúlok, ahogy az a TV-s verziónál történne. Ha akár csak egy space-t nyomok a gif-ek mozognak tovább és frissül a lap. A host rendszerről elérve a lapot természetesen minden jónak tűnik, de itt mozog is az egér, nyomkodom a gombokat.

Valahol a firefoxban szeretnék javítani a dolgon, hogy ne álljon meg a frissítés.
Merre keressem a megoldást?

Cron-ba tenni billentyűlenyomás-t nem szeretnék, hisz az bármikor szivathatna is, amikor épp rendesen írni kellene ott valamit. Egérmozgás biztos nem jó ötlet, mivel 5mp tétlenség után eltüntetem a mutatót.

Regexp performancia (python vs ruby vs java) [Részben megoldva/lezárva]

Fórumok

Nem értem.
Megírtam (szerintem) ugyanazt a programocskát három különböző nyelven.
Arra számítottam, hogy leggyorsabb a java, utána a ruby, leglassúbb a python lesz.
Ehhez képest:

HZ@teszt:~$ time python l1.py
732241 837

real 0m1.780s
user 0m1.614s
sys 0m0.162s
HZ@teszt:~$ time ruby l1.rb
732241
837

real 0m3.752s
user 0m3.213s
sys 0m0.535s
HZ@teszt:~$ time java L1
732241,837

real 0m3.394s
user 0m3.191s
sys 0m0.410s
HZ@teszt:~$

python: http://pastebin.com/mNZ6x2NN
ruby: http://pastebin.com/YrC9YdSG
java: http://pastebin.com/mfGLap0W

Hogy lehet, hogy még a java is ennyivel lassúbb a pythonnál?
(lehet valahogy optimalizálni a java-n - openjdk7 egyébként - vagy a python tényleg ennyivel gyorsabb nála?)

update: közben megcsináltam perlben is.
$ time perl l1.pl
732241 837

real 0m1.252s
user 0m1.118s
sys 0m0.134s

Ha sokszor futtatom őket felváltva, akkor is úgy 5-10%-kal gyorsabb a pythonnál. Ebből az egészből az a legfurcsább, hogy eredetileg a pythont találtam nagyon lassúnak.

----------------------------------------------------------
update: na ez egyre cifrább lesz. Kipróbáltam a korábbi tesztprogramokat úgy, hogy kihagytam belőlük a regex használatot, a futásidők elég közel kerültek egymáshoz. OK, tehát a regex lassít. Most csak a python-t és a java-t átírtam úgy, hogy két változóba beraktam egy-egy fix stringet, az egyik olyan, amire biztosan illeszkedik az előkészített minta, a másik meg olyan, amire biztosan nem és ezeket ellenőriztettem 10milliószor. Érdekes módon így szinte tizedmásodpercre egyforma időket kaptam a java-tól és a pythontól. Mindkettő 39-41 másodperces futásidőket produkál.
Persze sok aljasságot kinézek a regex feldolgozóból is. Például azt is, hogy cache-eli a mintákat (ha nem teszem ki külön compile-ba, akkor is csak egyszer fordít egy mintát - legalábbis egy darabig -, így azt sem tartom kizártnak, hogy a már feldolgozott stringeket is tárolja és ha úgy látja, hogy egyszer már feldolgozta, akkor csak a tárolt eredményt adja vissza, nem dolgozza fel újra.

update2: azt továbbra sem értem, hogy ha csak simán végigolvastattam a fájlt, akkor miért nem jelentkezett komolyabb eltérés, de tény: ha a python is soronként olvassa az inputot, akkor minimálisra csökken az előnye a többiekkel szemben.

IDE kerestetik

Fórumok

Friss DevOps pozicioban egyre tobb es tobb a kod amit irok, igy szuksegesse, indokolta valt egy jo IDE beszerzese. A nano kezd kicsit buta lenni ahhoz hogy tudja kovetni amit muvelek.

Amit elvarnek
-Ne java alapu legyen ( nem all szandekomban java-t telepiteni a gepemre ebbol csak akkor engedek ha minden mast mar kiprobaltam )
-Git / SVN tamogatas
-Syntax highlighting-en kivul barmi okositas plus ( automatikus kiegeszites, stb )

Leginkabb Cloudformation(json), Puppet, Docker, Bash, PHP, JavaScript, Django( python ), SQL projektekkel foglalkozom.
Idealis esetben distro package, de ugy sejtem ha lenne a repoban ilyen mar megtalaltam volna, de barmi mas johet ( linux )