Seite 10 von 20 ErsteErste ... 67891011121314 ... LetzteLetzte
Ergebnis 181 bis 200 von 385

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

  1. #181
    Zitat Zitat von YoshiGreen Beitrag anzeigen
    Das reicht eigentlich auch für "Multianmeldungen" - die es so ja nicht wirklich gibt.
    Ich hab eine gebastelt. ^^
    Ist aber eine Firmeninterne App gewesen, wo mehrere Nutzer das selbe Gerät benutzen.

    Zitat Zitat von YoshiGreen Beitrag anzeigen
    @Whiz: Es gibt Lebewesen die machen damit ganze Designs. "Und der Code ist ja so sauber formatiert." Nettere Menschen bekommen davon gesteigerten Blutdruck
    Die Leute, die mit selbstgefrickelten Java-Code komplette Designs basteln, haben das Android-System nicht verstanden und gehören geschlagen.

  2. #182
    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.

  3. #183
    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.

  4. #184
    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

  5. #185
    @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 09:19 Uhr)

  6. #186
    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.

  7. #187
    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.

  8. #188
    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.

  9. #189
    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.

  10. #190

    [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.

  11. #191
    Einmal in Ruby:

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


    Geht aber sicher sogar noch einfacher.

  12. #192
    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. ^^""

  13. #193
    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.

  14. #194
    Meine längste Zeit die ein Compile-Vorgang gebraucht hat, war 3 Stunden auf'm Lappi.

    Was ich da am Wickel hatte: Linux 3.4-rc6 (der Kernel selber war in 20min fertig, der Rest war die ganzen Module compilieren, mit Default-Konfiguration).
    Warum ich das compiliert hatte: Bug-Report vervollständigen mit Infos. Ich habe da einen schönen Bug im Kernel auf meinem Lappi, natürlich eine Regression.

    Leider habe ich zu spät gelesen, dass ich make auch noch den Parameter -j[Zahl] geben kann (z.B. -j4 für 4 Aufgaben, die parallel ausgeführt werden sollen).

    Ach ja, um auf PHP zurück zu kommen:
    PHP-Bashing macht immer Spaß, ich kann mich an folgendes erinnern:
    http://blog.fefe.de/?ts=b17a03df

    PHP mag ja einen Sinn haben, aber es ist einfach nur so schlecht geschrieben und völlig verbuggt.

    PS: Ich brauch eine neue Tastatur.
    Wenn man für 5 Wochen Tag für Tag auf einer Laptop-Tastatur tippt (Graka vom Desktop-PC defekt und reklamiert, natürlich hab ich keine Ersatz-Graka da), fühlt sich eine "normale" Tastatur an als ob man auf einer Schreibmaschine rumtippt.

  15. #195
    Das Problem an PHP ist einfach, dass es von einer großen Community entwickelt wird und jeder seine eigenen kleinen Brötchen backt.
    Schaut man sich hingegen andere Sprachen an, so fällt schon auf, dass es dort nur eine kleine Gruppe gibt, die die Design-Entscheidungen treffen.
    Beim gescheiterten PHP6 musste ich mir auch an den Kopf fassen. PHP6 sollte ja mit einer Unicode-Unterstützung ausgestattet werden, aber nicht nur bei der Ausgabe (da wäre es mal bitter nötig), sondern auch im Quellcode. Das heißt im Klartext, dass auch hebräische, chinesische, ... Funktionsnamen zulässig gewesen wären, was auch der primäre Gedanke dahinter war. Ich frage mich, wer dort so viel Rotwein gesoffen hat, um auf diese Idee zu kommen? Zum allen Überfluß hätten wir nicht nur ein Gemische aus strukturierter- und objektorientierter Programmierung, sondern noch ein Gemische aus Sprachen.

    Und was Wordpress angeht:
    Wordpress ist so ein Kandidat, um aufzuzeigen, wie man es an vielen Stellen nicht machen sollte.
    Man siehe sich mal die Translate() Funktion an.
    Der zu übersetzende Satz wird als Index missbraucht. D.h. er sucht diesen Satz in seinen Übersetzungstabellen. Also muss der Satz auch zu 100% stimmen. Ansonsten findet er ihn nicht.
    Ist ja auch sehr sinnvoll ... Die haben wohl den Begriff "assoziatives Array" zu wörtlich genommen.

  16. #196
    Das mit dem translate beruht allerdings auf gettext einem Unix Standard ... ist also keine reine PHP Erfindung.
    (Ändert nichts daran das gettext einfach nur Schwachsinn ist^^)

  17. #197
    Zitat Zitat von Xardas der Dunkle Beitrag anzeigen
    (Ändert nichts daran das gettext einfach nur Schwachsinn ist^^)
    Warum ist gettext Schwachsinn?

    Geändert von Kyuu (19.05.2012 um 15:23 Uhr)

  18. #198
    Angenommen, man verschreibt sich, oder die Texte (die ja gleichzeitig die Indizes sind) ändern sich.
    Dann darfst du alles anpassen, weil er die Übersetzungen nicht findet.

    Angenommen der Default-Text würde "There's an error" heißen. Dann rufst du gettext("There's an error"); auf.
    Nun kommt einer auf die Idee und ändert den Text in "Sorry, but there is an error" und schwupps könnte deine Anwendung den Text nicht mehr übersetzen, da nun nach dem falschen Text gesucht wird.

    Man kann jetzt anfangen, anstatt Texte nun eindeutige und prägnante Indizes (z.B. ERROR) zu nehmen, aber das ist ein Workaround, der dieses bescheuerte Prinzip umgeht. Aber hier hat man das Problem, dass er als Default-Wert nun die Indizes verwendet. Wenn du also nun nicht die entsprechende Sprachdatei hast, würde anstatt "Sorry, but there is an error" nun "ERROR" in deiner Anwendung stehen.

  19. #199
    Und was schlägst du als Alternative vor?

  20. #200
    Eine Mischung aus beidem. Eine Suche über einen eindeutigen Index, der nach einen übersetzten Text sucht und wenn er keinen findet, einen geeigneten Default-Wert zurückliefert.
    z.B.
    Index: ERROR
    Default-Wert: "Sorry, but there is an error"
    deutsche Übersetzung: "Tut uns leid. Es ist ein Fehler aufgetreten."

    mit gettext("ERROR", "de_DE"); würde er nun die deutsche Übersetzung zurückgeben.
    Wenn man aber nun gettext("ERROR", "fr_FR"); ausführt, würde er nun den default-Wert zurückgeben, da es keine französische Übersetzung gibt. Auf diese weise lässt sich der Default-Wert ändern, ohne dass die Anwendung angepasst werden muss. Diese Variante ist zwar auch fehlerträchtig, da sich auch die Indizes ändern können, aber diese ändern sich nun mal seltener als ganze Texte und bis jetzt habe ich in jeder Firma, wo ich bis jetzt als Softwareentwickler tätig war, diese Lösung gesehen.

Berechtigungen

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