Notizen und Gedanken von Andreas Marc Klingler

Schlagwort: Software

Code-Rea­li­tät

In Vor­le­sun­gen hört man ja ab und zu Hor­ror-Geschich­ten über „die Rea­li­tät”™. Man lacht dann meist dar­über und fragt sich, ob es denn stim­men kann, das in frei­er Wild­bahn wirk­lich der­ma­ßen unglaub­lich schreck­li­cher Code exis­tie­ren kann. So blöd kann ja kei­ner sein.

Letz­te Woche habe ein sol­ches Bei­spiel erlebt, bei des­sen Code-Ana­ly­se ich minu­ten­lang nicht mehr aus dem Lachen her­aus­kam. Auch wenn Wei­nen wohl ange­mes­se­ner gewe­sen wäre.

Es ging um eine Web­platt­form, die trotz 8‑Kern-Sys­tems mit 32 GB RAM kaum noch benutz­bar war auf­grund extrem lan­ger Ant­wort­zei­ten im Minu­ten­be­reich. Ein Haupt­pro­blem war eine Meho­de, die fol­gen­des gemacht hat:

  • Lade zu Beginn erst­mal alle Objek­te aus der Daten­bank in eine Variable.
  • Lade, weil’s so schön ist, auch direkt alle abge­lei­te­ten Objek­te abge­lei­te­ter Tabel­len in Variable.
  • Füh­re diver­se Trans­for­ma­tio­nen mit allen die­sen Objek­ten aus (deren Sinn sich mir nicht zu 100% erschlos­sen hat).
  • Fil­te­re ca. 80% der Objek­te raus.
  • Füh­re mit der ver­blei­ben­den Objek­ten wei­te­re Trans­for­ma­tio­nen durch.
  • Ermitt­le schließ­lich die Anzahl der Ele­men­te, die in der „Haupt­va­ria­ble” noch drin sind, und …
  • ver­wen­de die­sen Wert nie wieder.

Über­flüs­sig zu sagen, dass auch die ande­ren Varia­blen über­haupt nicht ver­wen­det wer­den. Tja…

Will­kom­men in der Rea­li­tät! (Flucht­mög­lich­kei­ten sind nicht ausgeschildert.)

(Nach­trag: Zum The­ma: devopsreactions.tumblr.com, codinghumor.tumblr.com uvm.)

Neue Mög­lich­kei­ten mit WebRTC

Ich habe mir schon vor län­ge­rem vor­ge­nom­men, mich mal aus­gie­big mit Web­RTC zu beschäf­ti­gen. Mit die­ser noch in der Ent­wick­lung befind­li­chen Web-Tech­nik wird es mög­lich, belie­bi­ge Daten in Echt­zeit direkt zwi­schen Brow­sern zu über­tra­gen. Zum Bei­spiel ist damit eine Anwen­dung wie Sky­pe nativ im Brow­ser mög­lich — ohne den Umweg über US-Ser­ver, die alles unbe­grenzt spei­chern.

Sehr span­nend. Letz­ten Mon­tag fand im Beta­haus das ers­te Web­RTC-Tref­fen statt; mit tol­len Leu­ten und Vor­trä­gen. Eini­ge Notizen:

  • In Mac OS ist seit eini­ger Zeit der Dienst Air­Drop ein­ge­baut. Damit kann man im loka­len Netz zwi­schen zwei Macs Datei­en aus­tau­schen. Und zwar idio­ten­si­cher. Genau die­sen Dienst gibt es jetzt auch als Web-Platt­form unter sharedrop.io. Im loka­len Netz kann man zwi­schen zwei Rech­nern damit auch platt­form­un­ab­hän­gig Datei­en aus­tau­schen, ohne irgend­wel­che Ser­ver-/Cli­ent-Geschich­ten auf­set­zen zu müssen.
  • Brow­ser-zu-Brow­ser-Tele­fo­nie wird mög­lich. Zwi­schen zwei Brow­sern klappt das direkt, und mit einem Pro­xy-Dienst auch mit dem Fest­netz. Die Live-Demo eines Test­pro­jekts lief einwandfrei.
  • Falls auf­grund von NAT oder ande­ren Netz­werk­ein­schrän­kun­gen kei­ne direk­te Ver­bin­dung zwi­schen zwei Brow­sern mög­lich ist, kann man einen Dienst auf einem gemein­sa­men Ser­ver auf­set­zen, der bei­de „ver­bin­det“. Wenn die Daten über die­sen Ser­ver lau­fen, ist das natür­lich sicher­heits­tech­nisch erst­mal nicht so schön, aber das garan­tiert wenigs­tens die Ver­füg­bar­keit. Und da die Tech­nik dezen­tral ist, las­sen sich hun­dert­tau­sen­de Web­RTC-Ser­ver natür­lich auch nicht so ein­fach über­wa­chen wie z.B. nur Skype-Server.
  • Ich dach­te bis­her bei dem Begriff Web­RTC bis­her pri­mär an „Sky­pe ohne Über­wa­chungs­in­fra­struk­tur direkt im Brow­ser“. Aber abs­trakt gese­hen geht es um direk­ten Aus­tausch belie­bi­ger Daten zwi­schen Brow­sern. Das eröff­net ein gewal­ti­ges Feld an neu­en Möglichkeiten.

Ich glau­be, wir wer­den in Zukunft vie­le Diens­te mit die­ser Tech­nik sehen, wel­che die Gren­ze zwi­schen Desk­top- und Brow­ser-Anwen­dung wei­ter ver­wi­schen werden.

Exzel­len­tes Blog über Soft­ware­tech­nik und ‑ent­wick­lung

Vor eini­ger Zeit bin ich auf ein wun­der­ba­res Blog gesto­ßen, dass ich allen ans Herz legen möch­te, die Soft­ware auch ent­wi­ckeln: Joel on Soft­ware.

Es han­delt um Soft­ware­tech­nik und ‑ent­wick­lung sowie einer grö­ße­ren Epsi­lon-Umge­bung davon. Vie­le Arti­kel sind Augen-öff­nend und zumin­dest ich habe in den gut vier Wochen, in denen ich das Blog „aus­ge­le­sen” habe, sehr viel erkannt und gelernt. (Unte­re ande­rem auch gute Grün­de dafür, war­um man in der Pra­xis oft Din­ge tut, für die es im aka­de­mi­schen Bereich aber auch gute Grün­de gibt, sie zu verpönen.)

Auf der Haupt­sei­te gibt es in der zwei­ten Spal­te eine sehr lan­ge Lis­te auf gute Arti­kel aus ver­schie­de­nen Berei­chen. Ein guter Anfang. Über die Archiv-Sei­te kann man dann geord­net alle Bei­trä­ge ab März 2000 lesen.

Ursprüng­lich habe ich an die­ser Stel­le auch noch eine Aus­wahl her­vor­ra­gen­der Zita­te aus dem Blog anbrin­gen wol­len. Ich habe mich bei der gro­ßen Men­ge, die ich mir her­aus­ko­piert habe, nicht mehr ent­schei­den kön­nen und gebe daher allen Inter­es­sier­ten lie­ber den Rat, das Blog selbst aus­zu­le­sen. Man kann sich ja auch damit Zeit las­sen, die Arti­kel lau­fen ja nicht weg. :-)

Ether­pad mit Wildcard-Subdomains

Nach dem Auf­set­zen einer Ether­pad-Instal­la­ti­on auf tandem-rhein-main.de kam auf jeder Ether­pad-Sei­te eine uner­war­te­te Authen­ti­fi­zie­rungs­an­fra­ge von Apa­che. Die Domain etherpad.tandem-rhein-main.de erfor­dert aber kei­ne Zugangs­da­ten. In einer Ether­pad-Instal­la­ti­on auf einem ande­ren Ser­ver habe ich bei der Instal­la­ti­on und Ein­rich­tung nichts anders gemacht, und dort trat die Authen­ti­fi­zie­rungs­an­fra­ge nicht auf.

Wei­ter­le­sen

RSS-Aggre­ga­tor wie Goog­le Rea­der auf eige­nem Server

In dem Bei­trag Über den Umgang mit RSS erwähn­te ich, dass ich noch kei­ne ver­nünf­ti­ge Soft­ware gefun­den hat­te, mit der ich RSS-Feeds wie in Goog­le Rea­der zen­tral übers Web lesen kann und auf einem eige­nen Ser­ver läuft.

Über den Kom­men­tar von Night­wolf habe ich end­lich eine tol­le Lösung gefun­den: rssLounge. Die web-basier­te Open­So­ur­ce-Soft­ware ver­fügt sogar über eine zusätz­li­che Fil­ter­ebe­ne, um auch bei meh­re­ren hun­dert RSS-Feeds nicht den Über­blick zu verlieren.

Wei­ter­le­sen