Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 385

Thema: IM IN YR LOOP\n VISIBLE FOO\n IM OUTTA YR LOOP - Der Programmierer-Spamthread #2

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Also JSON bringe ich nun nicht wirklich mit komplex in Verbindung. o.O Einmal durchatmen und Hand anlegen.

    Code:
    //untested!
    //save objects in ArrayList
    ArrayList<JSONObject> myObjects = new ArrayList<JSONObject>;
    
    //create json from string
    JSONObject myJson = new JSONObject(string);
    
    //access top level array
    JSONArray project = myJson.getJSONArray("riskaProject");
    
    //retrieve objects
    for( int i = 0; i < project.length(); i++ ){
      myObjects.add(project.getJSONObject(i));
    }
    
    //print names
    for( int i = 0; i < myObjects.length(); i++){
      Log.d("jsonTest",myObjects.get(i).getString("title"));
    }
    http://www.json.org/ erklärt auch recht hübsch wie so'n JSON aufgebaut ist. Ich habs selber nie "ordentlich gelernt"

    Zitat Zitat von Whiz-zarD Beitrag anzeigen
    Die Leute, die mit selbstgefrickelten Java-Code komplette Designs basteln, haben das Android-System nicht verstanden und gehören geschlagen.
    Ich verstehe deine Aussage nicht.

  2. #2
    Zitat Zitat von YoshiGreen Beitrag anzeigen
    Ich verstehe deine Aussage nicht.
    Anders als bei x-beliebigen Java GUI-Builder setzt Android voll und ganz auf XML-Dateien für die Erstellung einer GUI.
    Es ist zwar möglich, mittels Java-Code eine View zu erstellen, aber dies sollte man, aus Übersichtlichkeit, soweit wie möglich vermeiden und stattdessen die Views mittels XML definieren und sie dann mit Daten füllen. Der generierte Code, der das SDK aus den XML-Dateien bastelt hat keinen zu interessieren und sollte auch nicht verändert werden, da der Code eh beim nächsten Build wieder überschrieben wird.

    Und wer meint, er müsste da irgendwas mit Java-Code zurechtfrickeln und den generierten Code verunstalten, weil der Code für ihm zu unübersichtlich ist, gehört einfach geschlagen.

  3. #3
    Ok, die Idee das jemand sowas macht ist so absurd das ich daran nicht gedacht hab. Tja - viel Spaß beim Aufräumen wünsch ichr dir

  4. #4
    @YoschiGreen
    Danke, ich glaub jetzt versteh ich das besser hab das aber nicht mit Objects und Arrays gemacht weil ich das doof fand. Stattdessen hab ich auf das Full-Data-Binding von Jackson zugegriffen. Das mappt mir die Sachen auf eine POJO, dafür sind vor allem die Exceptions super. Die sagen einem direkt was noch fehlt und die Annotations lassen das ganze sogar schön aussehen (die Json-Keys haben... exotische Bezeichnungen ). Das ist vllt etwas übel, aber ich brauch ja später eh alle Projekte in der Json mit Inhalt.

    @Gui

    Naja Whiz, für Anfänger (war ja jeder mal) ist das sicher erst mal etwas schwerer die würde ich nicht gleich schlagen Allerdings würde ich es auch vermeiden mit Code die Gui zu machen... Bin ganz froh das es so gelöst ist. Scheint ja sogar recht ressourcenfreundlich zu sein.

    Edit:
    Wie pusche ich eigentlich Daten zwischen Activities umher oO. z.B. Verbindungen mit einer Datenbank oder mit dem Internet, oder allgemein Objekte?

    Geändert von R.D. (24.02.2012 um 08:19 Uhr)

  5. #5
    Zitat Zitat von R.D. Beitrag anzeigen
    Edit:
    Wie pusche ich eigentlich Daten zwischen Activities umher oO. z.B. Verbindungen mit einer Datenbank oder mit dem Internet, oder allgemein Objekte?
    Das ist so ne Sache, die ein IMO ein bisschen unglücklich gelöst wurde.
    Man kann sog. Intents den Activities weitergeben. Das ist dann ein Key-Value-Paar. Allerdings kann man nur bestimmte Datentypen an eine Activity weiterreichen.
    Für ne Datenbankanbindung haben wir eine Singleton-Klasse geschrieben, die beim Starten der App Instanziert wird.

  6. #6
    Mh, das ist ja doof :/ Naja ich wollte das dann eh mit einem Singleton lösen aber hätte ja sein können das da was anderes Best Practices ist.

  7. #7
    Gründe, warum PHP sterben muss. Ich hätte es kaum besser formulieren können. Diese Sprache ist sowas von fubar, dass die das ohne einen kompletten Neuanfang definitiv nicht mehr fixen können.

  8. #8
    Der Einfachheit halber erspare ich mir eine genauere Analyse des Artikels, auch wenn vor dem "Okay, back to facts." einige fragwürdige Aussagen kamen (wie ein Absatz, der impliziert daß die Existenz von php.ini ein großer Fehler ist. Später kommen Kritiken an der spezifichen Implementierung von php.ini, aber oben liest es sich mehr wie "Konfigurationsdateien sind böse").


    PHP ist eine schlimme Sprache; allerdings ist PHP eine schlimme Sprache, in die man leicht reinkommt. Um ehrlich zu sein, habe ich mir bei Python relativ öfter an den Kopf gefaßt als bei PHP, weil die Sprache (oder ihre Dokumentation) komplett bizarr wirkte. Ruby ist in der Hinsicht allerdings durchaus okay. (Benutzt noch jemand Ruby?)

    Im Wesentlichen wartet die Welt darauf, daß jemand eine durchschlagend bessere Alternative zu PHP rausbringt. Weder Python noch Ruby scheinen sich momentan zu qualifizieren. Sie sind besser, aber nicht besser genug. Erst recht nicht serverseitiges JavaScript oder JSP.

  9. #9

    [rant]

    Und da sehe ich wieder, warum ich PHP benutze.

    Ich bin demletzt über Fred Boyle's Code Challenge gestolpert. Nicht revolutionär, aber ich dachte mir, ich könnte mir wirklich mal eine andere Umgebung als PHP ansehen. Django hat ein ansprechendes Tutorial und sieht gut designt aus, also probiere ich das.

    Und Django ist wirklich gut designt; es ist eine Freude, damit zu arbeiten. Dummerweise baut Django auf Python auf, welches sich mal wieder seinen Status als "die Sprache, die ich gern mögen würde" zementiert hat.

    Ich will einfach nur einen Wert bestehend aus einem Timestamp konkateniert mit einer laufenden Nummer halbwegs kompakt kodiert haben. In PHP wäre das folgender Code:
    Code (PHP):
    $foo = base_convert(time() . $number, 10, 36);

    Damit hätte ich meine Zahl base36-kodiert, was schon mal ganz gut ist.

    Problem 1: Python kann zwar Strings beliebiger Basis (zwischen 2 und 36) als Integer parsen, hat aber keine Funktion, um einen Integer in einern String beliebiger Basis zu überführen. Äh ja, sehr konsistent. Ich finde also nach einer Weile eine entsprechende Funktion auf StackOverflow.

    Problem 2: Um Zahlen zu konkatenieren und dann wieder als Zahl zu benutzen, muß ich sie casten, was unter Python eine hohe Kunst ist, weil Python noch schlechtere Fehlermeldungen als PHP ausgibt. Ich habe eine halbe Stunde lang an "TypeError: not all arguments converted during string formatting" geknabbert, bis ich zufällig herausgefunden habe, daß es in meinem Fall bedeutet: "Ich erwarte einen int, aber da ist ein string." Ganz ehrlich, das ist nicht hilfreicher als "unexpected T_PAAMAYIM_NEKUDOTAYIM". Immerhin kann einem bei Letzterem Google noch helfen; "not all arguments..." passiert wohl in allen möglichen Kontexten.

    Ich denke, ich probier's lieber mit Ruby on Rails weiter. Python ist nicht gut für meinen Blutdruck.

  10. #10
    Einmal in Ruby:

    Code (ruby):
    foo = "#{Time.now.hash}#{number}".to_i.to_s(36)


    Geht aber sicher sogar noch einfacher.

  11. #11
    Netter Artikel, einige ganz witzige Sachen drin. ^^" Hat mich wieder an dieses herrliche Video erinnert, das deutlich kürzer und unterhaltsamer ist.
    Ernstgenommen krankt seine Argumentation allerdings stark dran, dass er nicht objektiv rangeht, sondern offensichtlich alles versucht, als Schwäche von PHP auszulegen. Man kann sich nicht gleichzeitig darüber beschweren, dass es die wirrsten Funktionalitäten hat, und dass es nicht sämtliche Funktionaltitäten hat, die jemals irgendeine andere Sprache hatte.
    Grundsätzlich hat er aber natürlich recht. PHP ist absolkut grauenhaft. Jetzt kann ich's allerdings einfach schon viel zu gut, um auf was anderes umsteigen zu wollen. ^^""

  12. #12
    PHP ist nicht besonders gut, aber richtig schlimm ist, was manche Leute mit PHP anstellen.


    Wir verwenden in der Firma WordPress.

    Jetzt haben wir seit Neuestem das Problem, dass Leute unsere wp-comments-post.php extern aufrufen und Unsinn damit anstellen. Wer hätte es gedacht? Ein WordPress, das zugespammt wird. Das mußte ja so kommen.

    Da wir gerade nicht in der Lage sind, ein Plugin wie Antispam Bee zu integrieren, wollen wir eine einfache Lösung verwenden. Datei ins Theme verschieben, Aufrufe im Kommentarformular anpassen, Original per .htaccess sperren, fertig.

    Aber WordPress wäre nicht WordPress, wenn es so einfach wäre. Seit der Artikel gepostet wurde, hat sich die Struktur von WordPress geändert. In WordPress 3 ist nicht länger das Theme dafür zuständig, das Postformular zu erzeugen, sondern der WordPress-Kern.

    Der Kern ist dafür zuständig, ein Formular zu erzeugen.

    MVC, motherfucker. Have you even heard of it? Aber hey, wer kann schon MVC von einer Codebase verlangen, die schon Schwierigkeiten damit hat, auch nur prozedural zu sein? (Protip: Wenn man eine Funktion schreibt, die auf Daten arbeitet, dann sollte man ihr auch alle Daten als Parameter geben und nicht von einem halben Dutzend globalen Variablen abhängig sein. Ich sehe dich an, get_the_content().)

    Wenn ihr Schmerzen mögt, dann seht euch mal die zuständige Datei an und scrollt zu der Funktion ab Zeile 1510. Ja, der WordPress-Kern beinhaltet fiesestes PHTML und sie haben die Funktion nicht mal pluggable (= von Themes und Plugins überschreibbar) gemacht. Wenn du nicht vorhast, die komplette Funktion nachzubauen und damit deinem Theme eine Abhängigkeit auf eine interne Funktion von WordPress zu geben, kannst du nicht mal entscheiden, ob du das Formular in HTML oder XHTML kriegst; das hängt von der WordPress-Version ab.

    Wer kommt auf so was? Wer denkt sich "Hey, bisher haben wir diese View-Funktion im View, aber ich finde, daß sie im Controller viel mehr Sinn macht"? Okay, WordPress hat einen Haufen Legacy-Code, aber warum haben sie das Design wissentlich schlechter gemacht? Das ist Erstsemester-Niveau und nicht Code, den man in einer der erfolgreichsten Softwareplattformen der Welt erwartet.

    Meine Fresse.

  13. #13
    Es ist auf jeden Fall möglich, dass man in Java Funktionen und Variablen mit allen Schriftzeichen ( aus UTF-16 - außer Klammern, spezielle Steuerzeichen, \ und / ) nennen kann. Man muss dann nur drauf achten, dass man als Encoding der Quellcode-Dateien standardmäßig UTF-16 nutzt.
    Ich halte mich aber an die Konvention alle Variablen und Funktionen in englisch zu deklarieren.

    Übrigens muss ich mich in Rahmen eines "Praktikums" gerade mit modellgetriebene (nicht modellbasierte!) Softwareentwicklung mit EMF und Entwicklung von Plugins und Editoren mit GEF auf Basis von Eclipse rum ärgern. Die Modelle selber und den Quellcode automatisch daraus erstellen ist kein großes Ding, aber der Code den man für GEF erstellen muss ist echt schwer und umständlich.

    Habt ihr schon mal modellgetrieben etwas entwickelt?
    PS: Modellgetrieben != Modellbasiert

    Geändert von niR-kun (20.05.2012 um 15:53 Uhr)

  14. #14
    Zitat Zitat von niR-kun Beitrag anzeigen
    Habt ihr schon mal modellgetrieben etwas entwickelt?
    Nein, ich entwickle lieber zum Ziel hin als davon weg

  15. #15
    http://www.freebasic.net/forum/viewt...hp?f=8&t=19817

    (Da will einer einen humanoiden Roboter bauen, der über Windows läuft und dessen Software von vielen Personen modulweise entwickelt werden soll, genauso wie die Hardware, was das ganze zu einem billigen "no-brainer" werden lassen soll... Tjo.)

    Dieser Absatz ist ja genial:

    Zitat Zitat von TESLACOIL
    Some one might be into robot hands so will focus on this, another persons interest may be object recognition or speech output. By using a single physical body plan and by separating all the code into stand alone exes which share data via simple txt files it is possible to build something pretty amazing for a fraction of the time money and effort.
    Zeigt mir bitte mal, wie man über "simple txt files" in einem humanoiden Roboter, in Realtime Daten zwischen für "robot hands" oder "object recognition" zuständige "stand alone exes" austauschen soll. ROFL.

    Geändert von Cherry (21.05.2012 um 19:52 Uhr)

  16. #16
    Zitat Zitat von Cherry Beitrag anzeigen
    [...] Zeigt mir bitte mal, wie man über "simple txt files" in einem humanoiden Roboter, in Realtime Daten zwischen für "robot hands" oder "object recognition" zuständige "stand alone exes" austauschen soll. ROFL.
    Jede Anwendung liest zehnmal pro Sekunde die für sie zuständigen txt-Dateien. Wenn irgendeine Anwendung ihr eine Nachricht schicken will, wird die in die txt geschrieben, und die andere Anwendung liest es. It's not a bug, it's a feature!

  17. #17
    Besser wäre eine Main.exe die Daten im Ram verwaltet und alle Module können drauf zugreifen. Erfordert wahrscheinlich etwas rumgefummel

  18. #18
    Zitat Zitat von Moyaccercchi Beitrag anzeigen
    Jede Anwendung liest zehnmal pro Sekunde die für sie zuständigen txt-Dateien. Wenn irgendeine Anwendung ihr eine Nachricht schicken will, wird die in die txt geschrieben, und die andere Anwendung liest es. It's not a bug, it's a feature!
    Nur 10x pro Sekunde? Fail, zu langsam für anspruchsvolle Sachen. 1000x pro Sekunde? Fail, zu viele unnötige Festplattenzugriffe, außerdem kann man ja nicht gleichzeitig auf eine derartige Datei zugreifen.

    Es würde funktionieren, wenn die Datei ein Memory Mapped File wäre, allerdings wäre dann "simple txt" wohl nicht das Format meiner Wahl.

  19. #19
    warum überhaupt dateien? Wenns um Kommunikation geht, etwas utopisch, Messages und dann die Daten über eine mit der Message gesendeten Pipe schicken. Oder GlobalMemory.
    Vorallem sollte von "simple txt" nicht etwas irgendwas mit sgml oder gemacht werden. dauert viel zu lange zum parsen. direkt vordefinierte binäre strukturen.

  20. #20
    Zitat Zitat von Desmulator Beitrag anzeigen
    warum überhaupt dateien? Wenns um Kommunikation geht, etwas utopisch, Messages und dann die Daten über eine mit der Message gesendeten Pipe schicken. Oder GlobalMemory.
    Vorallem sollte von "simple txt" nicht etwas irgendwas mit sgml oder gemacht werden. dauert viel zu lange zum parsen. direkt vordefinierte binäre strukturen.
    Vielleicht, weil der Kerl, der das Projekt anstößt, noch nie von IPC gehört hat?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •