Old but not bus­ted … – Die­ser Inhalt wur­de vor mehr als 15 Jah­ren publi­ziert. Die Kor­rekt­heit und Ver­füg­bar­keit von Links kön­nen lei­der nicht gewähr­leis­tet werden.

Nun, nach­dem mei­ne B.A.-Arbeit in „Sack und Tüten“ ist und nur noch die münd­li­che Ver­tei­di­gung am kom­men­den Mitt­woch aus­steht, kann ich eig. schon jetzt von einem erfolg­rei­chen Ende (die­ses Stu­di­ums) spre­chen. *jip­pi!* 🙂

Spe­zi­ell in den letz­ten Tagen bzw. Wochen habe ich wie­der vie­le Din­ge gelernt und auch die letz­ten drei Jah­re haben eini­ge Erkennt­nis­se gelie­fert. Die prä­sen­tes­ten (und aktu­ell in mei­nem Kopf her­um spu­ken­den) davon will ich im Fol­gen­den mal ganz kurz, unge­ord­net & nicht voll­stän­dig aufschreiben…

Also:
Grafiken/Bilder/… in einer Arbeit, die am Ende auch aus­ge­druckt wird, soll­te man nicht unbe­dingt mit einer hohen Kom­pres­si­on spei­chern, denn das sieht in der Print-Ver­si­on echt blöd aus! (Auch wenn es nett ist, dass das PDF mit 70 Sei­ten, 25 far­bi­gen Abbil­dun­gen und einem im Anhang ein­ge­bun­de­nen ein­sei­ti­gen PDF nur knapp 3 MB groß ist…)

Eben­so soll­te man sich die digi­ta­le Ver­si­on der Arbeit vor­ab (zu Tei­len) mal aus­dru­cken um zu schau­en, ob die die ein­ge­bun­de­nen Abbil­dun­gen in einem guten Grö­ßen­ver­hält­nis (zum Text und zur Sei­te) ein­ge­bun­den sind. – Man hat nur eine recht unge­naue (wenn nicht sogar fal­sche) Vor­stel­lung davon, wenn man sich nur das PDF vor­ab anschaut…

Wenn man die Arbeit mit/in (La)TeX schreibt und eine exter­ne Bib­TeX-Datei für die Lite­ra­tur und/oder eine exter­ne Glos­sar-Datei ein­bin­det, soll­te man für das kor­rek­te Set­zen der Refe­ren­zen meh­re­re Kom­pi­lier­durch­läu­fe benut­zen. Ich habe es in Anleh­nung an einen Tipp auf TeX-SE so gemacht:
pdflatex Masterdokument && bibtex Masterdokument && makeglossaries Masterdokument && pdflatex Masterdokument && pdflatex Masterdokument && evince Masterdokument.pdf

Soll­te man eine Grau­stu­fen­ver­si­on eines schö­nen bun­ten (und mit Links ver­se­he­nen) PDF benö­ti­gen, emp­feh­le ich die Kon­ver­tie­rung der far­bi­gen Ver­si­on mit­tels Ghost­script wie (schon 2008) bei handyfloss.net beschrieben.

Selbst defi­nier­te TeX-Makros – in mei­nem Fall fest ste­hen­de und mehr­fach ver­wen­de­te Strings (wie bspw. das Makro „\art“ für „Bache­lor-Arbeit“) soll­ten bei der Benut­zung im Doku­ment am Ende mit einem geschüt­zen Leer­zei­chen ver­se­hen wer­den, denn sonst wird das Leer­zei­chen näm­lich ein­fach vergessen/nicht berück­sich­tigt… – So wäre (eine mgl.) kor­rek­te Verwendung:
blatext2 \art\ blatext2

Es ist (zwar recht arbeits­in­ten­siv aber letzt­lich auch) enorm hilf­reich und Freu­de berei­tend, wenn man sich ein The­ma aus­sucht, wel­ches echt span­nend ist!

Man soll­te nicht zu viel Zeit für einen Abschluss benö­ti­gen, denn sonst kann es durch­aus pas­sie­ren, dass selbst die (sozia­le) Hans-Böck­ler-Stif­tung die För­de­rung eines (direkt an den Bache­lor-Abschluss anschlie­ßen­des) Mas­ter-Stu­di­ums mit der Begrün­dung „der zu lan­gen Vor­stu­di­en­zeit“ ablehnt. .oO(…)

Es ist nicht unbe­dingt not­wen­dig, sich mit Lehr­per­so­nal ab dem ers­ten Semes­ter anzu­le­gen… – Das kann näm­lich dazu füh­ren, dass man ganz klar an den Noten der beleg­ten Modu­le erken­nen kann, wer die­se Per­son ist. Und das ist dann dem Gesamt­no­ten­durch­schnitt (der in unse­rer „Leis­tungs­ge­sell­schaft“ ja nicht ganz unwich­tig ist…) nicht wirk­lich zuträg­lich! (An allen Modul­no­ten auf mei­nem Daten­kon­troll­blatt, die zwi­schen 2,7 und 4,0 lie­gen und somit die schlech­tes­ten sind, ist immer eine Per­son betei­ligt gewe­sen… *verrückt,oder!?*)

So viel dazu… – Grüßle! 🙂

Old but not bus­ted … – Die­ser Inhalt wur­de vor mehr als 15 Jah­ren publi­ziert. Die Kor­rekt­heit und Ver­füg­bar­keit von Links kön­nen lei­der nicht gewähr­leis­tet werden.

…ich bin kein PHP-Pro­gram­mie­rer, aber für mei­ne B.A.-Arbeit mache ich es (mehr recht als schlecht) & bekom­me dabei manch­mal fast ne Krise…

So zum Bsp. in den letz­ten bei­den Tage. – Da wur­de aus einer klei­nen 40zeiligen Funk­ti­on (die die gewoll­ten Grund­funk­tio­na­li­tä­ten lie­fert) ein klei­nes Mons­ter mit 164 Zei­len… – Aber jetzt isses halt echt viel schö­ner & die Bedar­fe Aller sind befriedigt… 😉

Außer­dem noch schnell nen Link zu dem Pro­jekt RIPS: http://rips-scanner.sourceforge.net.
Damit kann man off­line PHP-Code auf Feh­ler & Schwach­stel­len prü­fen las­sen… – Sehr nett! (Aber bit­te nicht nur dar­auf verlassen. ;))

*sound­jetzt­gehts­ins­bett-wink*

Old but not bus­ted … – Die­ser Inhalt wur­de vor mehr als 15 Jah­ren publi­ziert. Die Kor­rekt­heit und Ver­füg­bar­keit von Links kön­nen lei­der nicht gewähr­leis­tet werden.

Als am Hei­li­gen Abend auf der WLAN­news-Mai­ling­lis­te die Nach­richt kam, dass der “Frei­funk Open­Wrt Image Gene­ra­tor” (der Augs­bur­ger Frei­fun­ker) nun Firm­ware-Images mit der ganz fri­schen Open­WRT-Ver­si­on 10.03.1 pro­du­ziert und mei­ne (vom FFP gespon­sor­te) Ubi­qui­ti Nano­sta­ti­on M2 eh seit mind. drei Wochen zer­flasht und somit funk­ti­ons­los am Küchen­fens­ter rum hing, dach­te ich mir, es sei eine gute Idee, das Neufla­shen noch­mal zu pro­bie­ren. – Gesagt, getan und hier gibts jetzt ein paar Hin­wei­se & Randbemerkungen…

Vorab

Zuerst­mal stand ich vor dem Pro­blem, alle not­wen­di­gen Infor­ma­tio­nen zusam­men zu kra­men. – Irgend­wie gibt es kaum Anlei­tun­gen im (sonst so vol­len) WWW. Am Ende kam ich immer wie­der auf die bei­den Sei­ten in unse­rem Wiki zurück:

Image bauen (lassen)

Wie schon geschrie­ben, habe ich den Image­buil­der benutzt. – Das Bau­en des benö­tig­ten Images geht damit echt ein­fach und ich möch­te an die­ser Stel­le ein dickes Dan­ke­schön an die Machen­den aussprechen! 🙂
Fol­gen­de Ände­run­gen an der (vor­ge­ge­be­nen) Grund­ein­stel­lung sind für das neue Image (einer Nano M2 für den Pots­da­mer Frei­funk!) im Image­buil­der vorzunehmen:

  • “Com­mu­ni­ty” → “pots­dam”;
  • “Tar­get” → “ar71xx-back­fi­re-29592” (danach “Sub­mit” klicken);
  • “Pro­fi­le” → “UBNT”;
  • “Host­na­me” → bit­te an unse­rer Wiki­sei­te IP-Adres­sen (und den ent­hal­te­nen Links) orientieren;
  • kor­rek­te Para­me­ter für “Lati­tu­de” & “Lon­gi­tu­de” wäh­len (danach zum Rei­ter “Frei­funk” wechseln);
  • “Wifi IP:” → bit­te an unse­rer Wiki­sei­te IP-Adres­sen (und den ent­hal­te­nen Links) orientieren;
  • wenn ein DSL-Anschluss für den Frei­funk frei­ge­ge­ben wer­den soll, bit­te einen Haken bei “Share inter­net con­nec­tion” machen (danach zum Rei­ter “Cont­act” wechseln);
  • bit­te alle Fel­der aus­fül­len (danach zum Rei­ter “Sub­mit” wechseln);
  • jetzt wird das Image (mit den Grund­ein­stel­lun­gen) durch einen Klick auf “GENERATE” gebaut.

Danach könnt ihr euch das fer­ti­ge Image her­un­ter­la­den. Dabei ist zu beach­ten, dass es zwei Images zur Aus­wahl gibt:

  • openwrt-ar71xx-ubnt-nano-m-squashfs-factory.bin (3.3M) und
  • openwrt-ar71xx-ubnt-nano-m-squashfs-sysupgrade.bin (3.3M).

Dabei ste­hen “ar71xx” für den ver­wen­de­tet WLAN-Chip­satz, “ubnt” für das ver­wen­de­te Pro­fil (s.o.), “nano‑m” für das Modell des APs/Routers, “squashfs” für das zu ver­wen­den­de Datei­sys­tem und “fac­to­ry” bzw. “sysup­grade” für die Art des Fla­shens (s.u.).

Flashen

Je nach Aus­gangs­vor­aus­set­zun­gen, müsst ihr euch für ein bestimm­tes Image ent­schei­den, wel­ches auf die Nano gespielt wer­den soll. Habt ihr schon Open­WRT (vllt. kann das auch die Ori­gi­nal­firm­ware?) auf der Büch­se, könnt ihr das “sysupgrade”-Image direkt über das Web-Front­end hoch­la­den. Soll­tet ihr die Kis­te per TFTP fla­shen wollen/müssen, nehmt das Image mit “fac­to­ry” im Dateinamen.
Das Ubi­qui­ti Wiki hat einen klei­nen und aus­rei­chen­den Arti­kel zum Firm­ware-Fla­shen per TFTP unter http://wiki.ubnt.com/Firmware_Recovery.

Randbemerkungen

  1. Bei mir hat nach dem Fla­shen der Log­in (http://192.168.1.1/cgi-bin/luci/admin/) ohne Pass­wort nicht geklappt. – Nach­dem ich dann ein ori­gi­na­les Open­WRT-Image (von [0]) instal­liert, dort das Pass­wort geän­dert und dann das “sysupgrade”-Image (ohne Kon­fi­gu­ra­ti­ons­än­de­run­gen!) geflasht habe, konn­te ich mich erfolg­reich mit dem neu­en Pass­wort als “root” anmel­den. (Ich habe nir­gend­wo im Netz einen Hin­weis dar­auf gefun­den, dass es sich um einen bekann­ten Bug handelt…)
  2. Aktu­ell ist mei­ne Nano eine Sack­gas­se, da das mit dem WAN als Gate­way (= “Share inter­net con­nec­tion”) nicht so klappt. – Kei­ne Ahnung, wor­an das liegt. Ich habe nichts an den Grund­ein­stel­lun­gen geän­dert und auch die Fire­wall-Regeln etc. schei­nen kor­rekt zu sein…
  3. Das klei­ne Pro­grämm­chen “horst” (sie­he [1] & [2]) – wel­ches man ein­fach per “opkg install horst” per SSH instal­lie­ren kann – tut nicht das, was es soll, son­dern been­det sich direkt nach dem Auf­ruf mit der Mel­dung “wrong moni­tor type. plea­se use radio­tap or prism2 hea­ders”. – Nach eini­gem Rum­su­chen nach einer Lösung, bin ich im Wiki der Lin­zer Funk­feu­er-Leu­te fün­dig gewor­den. Eine kor­ri­gier­te (und bei mir lauf­fä­hi­ge) Ver­si­on der Datei “/usr/sbin/horst.sh” (die für sol­che Fäl­le wohl vor­ge­se­hen ist) fin­det ihr unter http://paste.sokai.name/v/4efca6961b1a7.
  4. Ach und… Bei mir woll­te am Anfang der OLSR nicht so rich­tig. – Bis ich dann (eher zufäl­lig) gese­hen habe, dass die (durch das für das Image aus­ge­wähl­te Frei­funk-Pro­fil) ein­ge­stell­te BSSID nicht “02:CA:FF:EE:BA:BE”, son­dern “D2:CA:FF:EE:BA:BE” war und ich sie kor­ri­giert hatte.

So dann… – Viel Spaß mit euren Spiel­zeu­gen & immer her mit guten Tipps! 🙂

Old but not bus­ted … – Die­ser Inhalt wur­de vor mehr als 15 Jah­ren publi­ziert. Die Kor­rekt­heit und Ver­füg­bar­keit von Links kön­nen lei­der nicht gewähr­leis­tet werden.

An die­ser Stel­le soll es heu­te mal kurz um ein Pro­blem­chen und des­sen ‘Lösung’ gehen, wel­ches mich ges­tern (fast) den gan­zen Tag beschäf­tigt hat.

Ich hat­te die Auf­ga­be zu lösen, mit­tels eines HTML-For­mu­lars und PHP ein Bild (als BLOB) in einer MyS­QL-Daten­bank abzu­le­gen. – Eigent­lich ja nicht all­zu schwie­rig, denn Anlei­tun­gen & Code-Schnip­sel dazu gibts im Netz wie “Sand am Meer”…

Am Ende ent­schied ich mich für die Vari­an­te, die hoch­ge­la­de­ne Datei ohne file hand­ler (fopen, fread, fclo­se) in die DB zu hexen. Denn man kann recht ein­fach mit­tels mit­tels der glo­ba­len PHP-Varia­ble “$_FILES” auf die (mit­tels POST) hoch­ge­la­de­ne Datei zugrei­fen.

if (isset($_FILES['bild']) && is_uploaded_file($_FILES['bild']['tmp_name']) && $_FILES['bild']['size'] > 0) {
$mimetype = $_FILES['bild']['type'];
$blob = bin2hex(file_get_contents($_FILES['bild']['tmp_name']));

Da ich beim Insert immer die Mel­dung bekam, dass ich einen Feh­ler in der SQL-Syn­tax habe, wenn ich für den BLOB mysql_real_escape_string(file_get_contents($_FILES['bild']['tmp_name'])) oder addslashes(file_get_contents($_FILES['bild']['tmp_name'])) (wie bspw. hier beschrie­ben) benutzt habe, habe ich letzt­lich die Funk­ti­on bin2hex() für das Spei­chern der binä­ren Daten (des Bil­des) in der MEDI­UM­B­LOB-Spal­te der DB verwendet. 

Nach ein paar Test-Uploads stell­te ich dann jedoch fest, dass grö­ße­re Bil­der nicht hoch­ge­la­den wer­den kön­nen – wg. der Begren­zung auf dem Ser­ver. Also habe ich etwas gesucht und die dafür zustän­di­gen PHP-Ein­stel­lun­gen bzw. ‑Varia­blen gefun­den. Die­se spuck­ten mir aller­dings aus, dass mei­ne max. Upload-Grö­ße 32MB beträgt, was bei einem Upload von einem ca. 1,5MB gro­ßen Bild jedoch nicht ’stimm­te’. Denn da kam dann dann die MyS­QL-Mel­dung “Got a packet big­ger than ‘max_allowed_packet’ bytes” und der Daten­satz wur­de nicht in die DB geschrieben.

‘Gut, dass die MyS­QL-Mel­dung so aus­sa­ge­kräf­tig ist’, dach­te ich mir und such­te erneut nach einer Lösung… – Und sie­he da, auch dazu gibt es Lösun­gen, wie bspw. die­se. Ärger­lich war nur, dass ich den gan­zen Tag der Mei­nung war, dass der MyS­QL-Para­me­ter “max_allowed_packet” dyna­misch zur Lauf­zeit des Ser­vers per PHP beein­fluss­bar ist. *gml*
Dies kam zum Bei­spiel auch daher, dass das Aus­le­sen des Para­me­ters (mit mysql_query("SHOW VARIABLES LIKE 'max_allowed_packet'")) und das Neu­set­zen des Wer­tes (mit­tels mysql_query("SET max_allowed_packet=16777216;")) zwar anstands­los funk­tio­nier­te, aber lei­der den Upload nicht ver­bes­ser­te. Trotz des neu gesetz­ten Wer­tes (auf 16MB), war die Upload­gren­ze in Wirk­lich­keit immer noch beim Stan­dard­wert 1MB.

Lan­ge Rede, kur­ze Erkenntnis:
Das Ändern des MyS­QL-Wer­tes “max_allowed_packet” zur Lauf­zeit per PHP funk­tio­niert (i.d.R.) nicht. (Man kann, wenn man MyS­QL-Root-Rech­te mit sei­nem Log­in hat, ver­su­chen, den glo­ba­len MyS­QL-Para­me­ter zu ver­än­dern.)
Man muss/sollte/kann die Ein­stel­lung ser­ver­sei­tig vor­neh­men und ent­we­der dau­er­haft den Ein­trag max_allowed_packet=16MB; in der my.cnf machen oder mit MyS­QL-Root-Rech­ten den Wert mit­tels SET max_allowed_packet=16777216; zur Lauf­zeit ändern (dann ist die­ser bei einem Neu­start aller­dings wie­der weg).

Außer­dem ist anzu­mer­ken, dass die BLOBs in der DB irgend­wie (ca.) dop­pelt so groß sind/werden, wie die Ori­gi­nal-Datei­en. – Aus einem Bild mit 991K wird bspw. (bei mir) ein BLOB mit 2.03MB. *strange&doof* (Bit­te jetzt kein Bas­hing, ob es über­haupt sinn­voll ist, Bil­der direkt in der DB zu spei­chern. – Es muss die­ses Mal so sein!)

Old but not bus­ted … – Die­ser Inhalt wur­de vor mehr als 15 Jah­ren publi­ziert. Die Kor­rekt­heit und Ver­füg­bar­keit von Links kön­nen lei­der nicht gewähr­leis­tet werden.

Schon seit einer Wei­le habe ich unter Ubun­tu auf mei­nem EeePC das “proposed”-Repository instal­liert. Doch gera­de nach mei­nem Upgrade zu Onei­ric habe ich eini­ge merk­wür­di­ge Erschei­nungen, als deren Ursa­che ich eben die­ses Repo in Ver­dacht habe. (Außer­dem ist das “proposed”-Repo für ein Pro­duk­tiv­sys­tem – auf dem also im All­tag alles funk­tio­nie­ren soll – wohl eh nicht gut…)

Nun woll­te ich ein­fach das “proposed”-Repo deak­ti­vie­ren und mein Sys­tem sozu­sa­gen (wie­der auf den Stan­dard) “deak­tua­li­sie­ren”. Aber irgend­wie funk­tio­niert das nicht so einfach…

Nach eini­gem Suchen habe ich dann einen funk­tio­nie­ren­den Weg bei “Ask Ubun­tu” gefun­den, den ich hier mal (auch für mich zum Mer­ken) ver­lin­ke: “How can I revert back from an upgrade to the Pro­po­sed repo­si­to­ry?”.

Noch ein klei­ner Hin­weis zu obi­gem Vor­ge­hen: Bevor ihr die bei­den Skrip­te durch­lau­fen lasst, deak­ti­viert das “proposed”-Repo nicht. Erst nach­dem ihr euer Sys­tem deak­tua­li­siert habt, könnt ihr bspw. über die Soft­ware-Paket­quel­len-Ver­wal­tung auf dem Rei­ter “Aktua­li­sie­run­gen” den Haken beim Repo weg machen.

Viel Glück! 🙂