Krautkanal.com

Veröffentlicht am 2015-08-01 03:45:49 in /prog/

/prog/ 7493: Was programmiert Bernd grade? Will er vielleicht seinen...

xspirits Avatar
xspirits:#7493

Was programmiert Bernd grade? Will er vielleicht seinen Code zeigen? Auch wenn es nur ein paar Zeilen in Pastebin sind, es ist sicher interessant für /prog/.

Ich fang mal an!
>https://github.com/2-3/imouto
Eine einfache IRC-Client-Library in Ruby mit optional sehr grundlegendem Bot-Gerüst. Hab ich geschrieben weil mir alle Ruby-Gems für IRC-Bots zuviel vorgegeben haben. Eine erweiterte Variante des Bots (zusätzlich Plugin-Support) läuft in KCs #/int/-Channel. Als nächstes will ich ein Gem draus machen, aber darauf hab ich grad keine Lust!

Jetzt zeig du Bernd, was codest du grade :3?

thomasgeisen Avatar
thomasgeisen:#7494

>>7493
Eine Webanwendung mit Node.js und MongoDB.

Code will Bernd nicht zeigen, er will nur davor warnen, dass Mongoloid Database Krebs ist.

tweet_john Avatar
tweet_john:#7495

>>7494
>Code will Bernd nicht zeigen, er will nur davor warnen, dass Mongoloid Database Krebs ist.

Warum?

saarabpreet Avatar
saarabpreet:#7496

>>7495
a) die Tatsache, dass in 95% Prozent aller Fälle eine relationale Datenbank die bessere Wahl ist, weil der Wert der Daten durch ihre Verbindung entsteht. Gut, dafür kann MongoDB ja nix.
b) diese ganzen technischen Eigenheiten, wie unsafe writes als default, 16mb max. pro Dokument etc. Dafür können die Entwickler etwas.

steynviljoen Avatar
steynviljoen:#7497

Ein 2D Billardspiel in Java.

Das "Was" ist aber nebensächlich, es ist nämlich mein erstes Projekt mit Subversion Versionskontrolle, JUnit Tests und Javadoc Dokumentation.

Diese Prinzipien habe ich in der Vorlesung "Effizient programmieren" gelernt (zwar für C++, aber ich bin ein verkappter Java-Anhänger).

chris_frees Avatar
chris_frees:#7498

>>7497
>2015
>subversion nutzend

rahmeen Avatar
rahmeen:#7499

>>7497
SVN ist nicht schlecht, aber wenn du Zeit hast solltest du mal git ausprobieren! >>7498 ist zwar ein beschissener Post, aber es stimmt schon, git ist generell SVN als überlegen angesehen.

garand Avatar
garand:#7500

>>7499
Soweit ich das durch Internetrecherche überblicken kann, ist weder Subversion noch Git besser.
Es hat beides Vor- und Nachteile und ist vom jeweiligen Einzelfall abhängig.

Werde mein nächstes Projekt aber mit Git versionieren und mir ein eigenes Urteil bilden.

polarity Avatar
polarity:#7501

>>7500
na wenn du sowieso allein arbeitest, könntest du auch CVS nehmen. warum sollte man etwas mit kultur und geschichte ablehnen?

sindresorhus Avatar
sindresorhus:#7502

>>7501
Weil Git in jeder Hinsicht besser ist.

ryhanhassan Avatar
ryhanhassan:#7505

>>7502
Nein. Git ist z.B. deutlich schwerer für Anfänger zu verstehen.

leonfedotov Avatar
leonfedotov:#7508

>>7505
Was ist daran schwer? Und was soll leichter sein?

keyuri85 Avatar
keyuri85:#7510

>>7493
So viel Arbeit für nichts. Wo das theoretisch überhaupt mögliche Optimum für nichtinteraktive IRC-Clients bereits längst erreicht ist.

https://github.com/SirDzstic/boskop-ng

carlyson Avatar
carlyson:#7511

>>7508
Rebase vs. merge vs. pull. Was fast forward ist und wann man das will. Der Unterschied zwischen staging area, stash, HEAD und origin. Warum git checkout, clone, branch, fetch und pull alle irgendwie den working tree mutieren aber komplett unterschiedliche benutzt werden (und heißen) und so weiter. Gib mal "git help" ein und versuch für jedes gelistete Kommando einen konkreten Aufruf zu tippen und das sind nur die wichtigsten. Dazu kommt noch das die Mächtigkeit von git dazu führt das es nicht nur einen Workflow gibt sondern dutzende. Du kannst git nicht lernen ohne gleichzeitig einen bestimmten Workflow mit zu lernen.

ovall Avatar
ovall:#7512

>>7510
Ach geheim. Kompiliert das wenigstens mit dietlibc?

marciotoledo Avatar
marciotoledo:#7513

>>7511
Aber.. man braucht doch nur "git add", "git commit -am bla" und "gitk". Das geht buchstäblich in einem Satz.

itskawsar Avatar
itskawsar:#7596

Ein Kommandozeilenwerkzeug ursprünglich nur zum Hochladen von Bildern auf KC weil alle existierenden Krebs sind. Jetzt würde ich es aber noch gerne um andere Funktionen erweitern, hat jemand Ideen?

davidbaldie Avatar
davidbaldie:#7598

>>7596
Alle Inhalte eines Fadens automatisch herunterladen und schön aufbereiten.

leandrovaranda Avatar
leandrovaranda:#7600

>>7598
Herunterladen von Bildern des Fadens implementiere ich gerade, wie wäre es denn schön aufbereitet?

cheezonbread Avatar
cheezonbread:#7602

>>7600
Ich speicher das ganze einmal als XML Datei, um es bei Bedarf wieder unkompliziert einlesen zu können und dann einmal als schöne, übersichtliche HTML Datei.

id835559 Avatar
id835559:#7603

>>7596
Ja, vielleicht wäre generell ein Thread-Speicherwerkzeug ganz praktisch. Also gespeicherte HTML-Datei im Browser öffnen, und dann bezüglich Bilder vergrößern und so das gleiche Verhalten wie bei KC haben.
Bonus: So programmieren, dass es mit einer entsprechenden Konfigurationsdatei auch auf anderen Bildbrettern läuft.

Hatte mir neulich ein paar Gedanken dazu gemacht:
- Die ganzen Ressourcen (Scripts, CSS und wiederkehrende Bilder wie Countryballs oder Buttons) in einen separaten Ordner tun, damit die nicht immer wieder neu abgespeichert werden müssen. Dem Benutzer die Möglichkeit geben, den Ressourcen-Ordner selbst anzugeben und ihn gegebenenfalls mit noch nicht vorhandenen Ressourcen füllen.
- Update-Funktion: Wenn die Datei (also der Thread) schon vorhanden ist und sich verändert hat, nur updaten. Beiträge, die gelöscht wurden, als solche markieren.
- Fürs Archiv unnötige Dinge wie Report-Button, Antwort-Formular, Disclaimer usw. entfernen.
- Funktion, um einem oder mehreren Bildern den richtigen Dateinamen zu verpassen (Thread, in dem das Bild vorkommt muss dann natürlich angegeben werden, oder das Programm sucht selber).
- Aus allen archivierten Threads so eine Thread-Übersicht machen, ähnlich wie die Thread-Übersicht auf den einzelnen Brettern.

m4rio Avatar
m4rio:#7609

Bernd wird wohl nun die Tage eine App analysieren Reverse Engineering betreiben und daraus Statistiken generieren. Dann hoffen das aus den Statistiken so viel Mett kommt das die Betreiber die Statistiken weg haben wollen.

bighanddesign Avatar
bighanddesign:#7610

>>7603
Ich bin zwar nicht >>7596, aber weil mir die Idee ganz gut gefällt werd ich das mal für mich umsetzen. Oft gibt es auf verschiedenen Brettern Fäden, welche Bernd gerne verfolgen würde, es dann aber verplant.
Außerdem kann Bernd so endlich mal Python "lernen".

markmushiva Avatar
markmushiva:#7638

Harro Bernd, hab nun ein kleines Wiki geschrieben, in Racket. Die Sprache kann ich jedem empfehlen der sich mal am funktionalen Programmieren probieren will. Hat auch eine SEHR gute Dokumentation!

https://github.com/2-3/polkadot

franciscoamk Avatar
franciscoamk:#7641

>>7638
hast du irgendwo ein Demo online?

(Racket (oh-Gott (diese Scheißklammern, überall)))

im_jsmith Avatar
im_jsmith:#7643

>>7641
http://mysides.rip:8000/
Aber keine Ahnung wie lang das da online bleibt Bernd. Werde es wahrscheinlich unter einer anderen URL nutzen um persönliche Ergüsse festzuhalten!

katiemdaly Avatar
katiemdaly:#7644

>>7641
>>7643
Und an die Klammern gewöhnt man sich wirklich schnell, Racket zum Beispiel liefert auch ein IDE mit dass in der Hinsicht super ist :3. Ich persönlich finde S-Expressions aber super, sie machen es sehr einfach zu sehen wie Code evaluiert wird!

joe_black Avatar
joe_black:#7648

>>7643
sieht echt nett aus, gibt es noch schreibrechte zum testen?

grantrobinson Avatar
grantrobinson:#7651

>>7648
Nein, dann müsste ich Bernd ja Dateien auf meinen Server schreiben lassen :3. Wär sicher per FTP machbar, aber das habe ich nicht auf dem Server eingerichtet---hört sich auch so nicht nach einer super Idee an, öffentliches FTP. Aber wenn Bernd Racket hat ist eine lokale Testumgebung nur downloaden und Code ausführen. Einfacher gehts wirklich nicht!

aluisio_azevedo Avatar
aluisio_azevedo:#7652

>>7651
ok, ich überlege es mir sogar racklet bei mir lokal zu packen und das ganze auszuprobieren.

evandrix Avatar
evandrix:#7655

>>7638
bin schon bei roco exe polkadot.rkt mit der standardconfig gescheitert. hab an dem output gesehen, dass es wohl an zeile neun und "current-directory-for-user" liegt, hab das mal an den verzeichnis, wohin ich es geklonnt habe, angepasst. wieder gescheitert, jetzt mit " polkadot.rkt:81:3: hash-clear!:"

bin jetzt zu müde für weitere schritte.

shalt0ni Avatar
shalt0ni:#7661

>>7655
Aaaaah---dabei hatte ich das doch getestet! Welches OS benutzt du, Bernd? Hab das unter Debian und Windows 7 ohne Probleme kompiliert... Ich nehme an Racket ist aktuell? Wenn du den ganzen Output pasten könntest wär das super, dann find ich vielleicht woran es liegt!

carlosgavina Avatar
carlosgavina:#7667

>>7661
alles schon ein wenig älter,
packete nur aus standardrepos.

http://pastebin.com/54xhEnZU

nateschulte Avatar
nateschulte:#7669

>>7667
Ja, "current-directory-for-user" wurde mit 6.0 eingeführt. Würde unbedingt mal updaten, da sind ja schon Spinnenweben überall!

arashmanteghi Avatar
arashmanteghi:#7671

>>7669
>>7638

>polkadot displays documents you have written in Markdown and links them to the tags you specified in the document header. There are no change logs or user accounts or similarly complex features—polkadot is meant as a simple personal wiki.

total überlesen. ja, ein netter markdown darsteller im browser.

kinday Avatar
kinday:#7674

Bernd schreibt gerade an einem dokumentenarchiv für sich, da er ein Multifunktionsgerät mit automatischem Einzug bekommen hat der auch mit sane tut.

Irgendwie ist dann celery ins Projekt mit rein gekommen, dann tesseract. Und nun kann Bernds pisscode ausschneiden autorotieren und sogar halbwegs okayes OCR.

Leider hasst Bernd guis und webentwicklung und deshalb wird es nie ein brauchbares Interface geben

sawalazar Avatar
sawalazar:#7675

>>7671
Tja Bernd, hat halt nur das, was ein Wiki braucht. Hast du mehr erwartet?

stephcoue Avatar
stephcoue:#7677

>>7675
editor wär schon nicht schlecht, versionierung auch nicht verkehrt.

robergd Avatar
robergd:#7678

>>7677
Editor:
Was spricht dagegen deinen Lieblings-Editor zu benutzen? Stell ich mir um einiges angenehmer vor als in dem Browser zu arbeiten. Gibt ja genug Wege das Dokument dann auf den Server zu bringen. Werde aber sicher irgendwann ein externes Skript schreiben das ein simples Formular mit markdown-Vorschau für genau das bietet. Ist halt ergänzende Software, gehört nicht direkt ins Wiki.

Versionierung:
Bind halt das Dokuments-Verzeichnis in git/CVS ein, das kann Versionierung besser als jedes Wiki und ist jetzt auch kein großer Aufwand. Falls du verschiedene Versionen des Dokumentes anzeigen willst; das entspricht nicht dem Scope der Anwendung, es ist ja nicht für das Arbeiten in Gruppen gedacht, wozu braucht man dann eine Webansicht verschiedener Versionen?


polkadot folgt der UNIX-Philosophie insofern, als dass das Ziel nicht ist deinen gesamten Wörkflow zu ersetzen, sondern einen Baustein zu geben den du einfach in diesen einsetzen kannst. Ich persönlich benutze SFTP um meine Dokumente zu verwalten, plane aber ein einfaches Datei-Upload-Script ergänzend zu verwenden. FTP ist aber immer noch komfortabler.

grantrobinson Avatar
grantrobinson:#7680

>>7678
ich will dir jetzt nicht nahe treten, aber wenn ich zum editieren schon subl verwenden sollte, würde ich auch bei der anzeige in subl bleiben.

> wozu braucht man dann eine Webansicht verschiedener Versionen?
ich habe mal ein wiki als eine art tagebuch/fallentwicklung/personen dossier verwendet. da war es mir schon wichtig, welches teil/satz wann und wo reinkam.

ist jetzt natürlich nicht das ziel deines projektes.

marciotoledo Avatar
marciotoledo:#7683

>>7680
Tagebuch... nun ja, ich habe geplant definitiv eine Sortierung nach Erstellungsdatum einzubauen, das könnte man wohl zur Tagebuch-Haltung benutzen. Du trittst mir auch nicht zu Nahe, nur finde ich dass das Filesystem halt ein super interface ist, und definitiv besser als das über Online-Editor zu lösen. Aber wie gesagt, so ein Editor kann man ja deswegen dazubauen! Spricht nichts dagegen. Ich verstehe das schon, auch Sachen online bearbeiten zu wollen.

cbracco Avatar
cbracco:#7684

Auf der Arbeit bändige ich die Python und Javascript im Sinne irgendsoeiner kapitalistischen Scheiße.

Privat arbeite ich gerade weiter an meiner 2D-Spieleengine (in Java). Nicht um Spiele zu entwickeln, sondern einfach um zu lernen (Architektur, Skriptung, etc.). Vielleicht bau ich das später zu einem Multiagentenrahmenwerk um, sofern es da nicht bessere Lösungen gibt.

stuartlcrawford Avatar
stuartlcrawford:#7685

>>7684
>Spieleengine
>Java

Ach Bernd...

oscarowusu Avatar
oscarowusu:#7686

>>7685
Was spricht deiner Meinung nach denn dagegen?

karsh Avatar
karsh:#7687

>>7685
Gut, für 2D und zum experimentieren ist es Ok. Aber die JVM ist nicht gerade für seine schwindelerregende Schnelligkeit bekannt. Und gerade komplexere Engines müssen flink wie ein Wiesel sein.

haydn_woods Avatar
haydn_woods:#7688

>>7687
Performanz ist allerdings in erster Linie eine Frage der verwendeten Algorithmen.

madhan4uu Avatar
madhan4uu:#7689

>>7688
Das eher nur, wenn du innerhalb einer Programmiersprache bleibst.

Aus C++ kenne ich es so, dass du mit der Verbesserung deines Algorithmus dein Programm ca. 100 Mal schneller machen kannst. Tricksereien mit C++ können dein Programm vielleicht doppelt so schnell machen.

Wenn du allerdings eine Sprache verwendest, die beispielsweise vor jedem Zugriff auf einen Wert in einem Puffer erst mal bounds checking macht (keine Ahnung, ob das bei Java so ist), dann hast du im Gegensatz zu weniger abstrakten Sprachen ein enormes Geschwindigkeitsproblem.

oskamaya Avatar
oskamaya:#7691

>>7689
>Wenn du allerdings eine Sprache verwendest, die beispielsweise vor jedem Zugriff auf einen Wert in einem Puffer erst mal bounds checking macht (keine Ahnung, ob das bei Java so ist), dann hast du im Gegensatz zu weniger abstrakten Sprachen ein enormes Geschwindigkeitsproblem.

->unqualifiziert, darüber zu reden

michigangraham Avatar
michigangraham:#7693

>>7689
Eine Lösung, die Daten mit linearer Laufzeit in Java bearbeitet, wird immer schneller sein als eine, die das mit quadratischer Laufzeit in C++ machen tut.
Spielemotoren sind ein Paradebeispiel dafür, da in einer belebten virtuellen Welt oft viele Daten anfallen, auf deren performante Bewältigung die Wahl der Algorithmen einen weitaus größeren Einfluss hat als die der Sprache.

emmakardaras Avatar
emmakardaras:#7701

>>7693
das sind asymptotische werte, lineare laufzeit kann auch viel größer sein als quadratische, wenn du die absoluten zeiten anschaust.

andrewgurylev Avatar
andrewgurylev:#7708

>>7691
>->unqualifiziert, darüber zu reden
Lasse mich gerne korrigieren, aber nicht ein mal ein Argument zur These zu liefern ist dann doch nur billige Trollerey.

ggavrilo Avatar
ggavrilo:#7710

>>7708
Boundarychecks kosten fast gar nichts und Abstraktionen an sich macht eine Sprache nicht langsam.

Speicher rumschaufeln ist teuer. Java (und das nur in der JVM) erreicht je nach Programmierskill dadurch etwa. 3x - 15x langsamere Performance und das ist immer noch mehr als ausreichend, um damit kleine bis mittelgroße 3D-Spiele zu bauen, z.B. mit der jmonkeyEngine.

>inzu4 GC ist eine Abstraktion
Nein, der ist eine Automatation.

ajaxy_ru Avatar
ajaxy_ru:#7746

>>7710
>Boundarychecks kosten fast gar nichts
Erbitte Quelle.

>mehr als ausreichend, um damit kleine bis mittelgroße 3D-Spiele zu bauen
Eben das bestätigt doch meine Aussage. Mit Java kannst du eben nur "kleine bis mittelgroße 3D-Spiele bauen".

saarabpreet Avatar
saarabpreet:#7758

>>7746
>Eben das bestätigt doch meine Aussage. Mit Java kannst du eben nur "kleine bis mittelgroße 3D-Spiele bauen".

Und für eine 2D-Engine, die garantiert keine AAA-Spiele trägt, spielt das was für eine Rolle?

>Quelle erbeten, dass boundary checking gratis, umsonst und frei ist
http://stackoverflow.com/questions/16713076/array-bounds-check-efficiency-in-net-4-and-above
http://blogs.msdn.com/b/ricom/archive/2006/07/12/663642.aspx

ovall Avatar
ovall:#7764

Bernd baut gerade am Firefox rum. Bild relatiert: Hier werden die Daten eines XHR eingelesen.

bergmartin Avatar
bergmartin:#7770

>>7758
>Und für eine 2D-Engine, die garantiert keine AAA-Spiele trägt, spielt das was für eine Rolle?
Keine, aber darum ging es ja auch nicht.

heikopaiko Avatar
heikopaiko:#7771

>>7758
Willst du mich verarschen? Denkst du, ich bin zu blöd zum googlen? Es ist nicht so, dass ich nicht selber mal gesucht hätte, und das waren auch mit die ersten Ergebnisse.

>SO
Hätte gerne etwas wissenschaftlicheres. SO ist vielleicht mal ganz interessant und man kann sich ein paar Inspirationen holen, aber wie es in so einer Community nun mal ist, hast du dort manchmal einen Circlejerk sondergleichen.

>MSDN
Auch kein Beleg, weil er das bounds checking innerhalb der Programmiersprache macht, die das sowieso durchführt und somit wegoptimieren kann. Siehe auch erster Kommentar.

javorszky Avatar
javorszky:#7772

>>7770

Nun, Bernd hat nicht angefangen mit

>7684
>Spieleengine
>Java

>Ach Bernd...

>>7771
>[Autismus getriggert]

>Denkst du, ich bin zu blöd zum googlen?
Sweet mother of fuck, Bernd. Du bist hier auf Krautchan, glaubst du wirklich, Vernunftbernd geht erstmal davon aus, dass Leute auf Bilderbrettern vernünftig sind?

>Es ist nicht so, dass ich nicht selber mal gesucht hätte, und das waren auch mit die ersten Ergebnisse.

fatihturan Avatar
fatihturan:#7773

>>7772
[Fortsetzung]
>Es ist nicht so, dass ich nicht selber mal gesucht hätte, und das waren auch mit die ersten Ergebnisse.

Bernd geht nicht davon aus, dass es dazu aktuelle, ernst zu nehmende Forschung gibt, weil das stark abhängt von der Hardware, der Implementierung und den Optimierungen des Compilers, der Benutzung in einem richtigem Programm etc pp.
Und dann heißt es wieder, huh, das ist kein Algorithmus, wo man jetzt beweisen könnte, dass er effizient oder nicht ist und damit ist das ganze kein Gegenstand der Forschung.

Und damit ist ein an/aus-Vergleich auf Seiten wie SO oder MSDN das Beste, was man bekommen kann, versteht Bernd?

jamesmbickerton Avatar
jamesmbickerton:#7774

>>7701
Danke für die Bestätigung meiner These, dass bei der 3D-Berechnungen in Spielen der Algorithmus für die Laufzeit relevanter ist als die Sprache.

newbrushes Avatar
newbrushes:#7890

Ich Programmier zur Zeit das hier:
http://www.github.com/cl-porky11/cl-game
Geschrieben in common lisp, funktioniert bestimmt grad nichts.
Wird vermutlich ein engine für Spiele, 2- und 3d, zB visual novels, wo man selber auch was im internet hochladen kann
könnte aber auch was ganz anderes werden

zackeeler Avatar
zackeeler:#8097

Einen Planetenterraformsimulator mit Produktionsketten, Transportwegen, Raumflug, Zeitzonen.
Endlich etwas in das ich mein bisheriges Wissen gut einfließen lassen kann.