Indizierter Zugriff made in china:
Gefunden in einer Android-App.
Auf sowas muss man erstmal kommen![]()
Indizierter Zugriff made in china:
Gefunden in einer Android-App.
Auf sowas muss man erstmal kommen![]()
Bin auf nen witziges Video gestossen: WAT momente in Scriptsprachen (speziell Ruby und JavaScript)
Link: https://www.destroyallsoftware.com/talks/wat
Besonders toll fand ich: Array(16).join("wat" - 1) + " Batman!" ^^
Wundern sich Leute echt, warum ein Spiel bei ihnen nicht geht wenn sie ihre Schreibrechte auf ihren Nutzerordner blocken? Und eine Anwendung von eine CD gestartet werden soll? WTF, wo soll ich dann bitte meine Daten speichern... So was kann ich ja leiden. Alles funzt beim testen, man ist bereit für alles und dann kommt da einer mit einem Computer der total blockiert ist...
Double Post /o
Weil man sagt ich soll hier mehr posten:
Mr. Hat I Demo
![]()
Ich hab mal wieder ein kleines bisschen mit bash rumgespielt. Anlass war, dass ich einen kleinen Portscanner brauchte, der zwischen "Connection refused" und einem Timeout unterscheidet, weil ich ne Firewall, die verbotene Pakete einfach droppt, testen wollte (daher auch die vielen Timeouts im Screenshot). Wer ihn haben will, sei herzlich eingeladen. Für Verbesserungsvorschläge bin ich immer offen. Getestet wurde auf Mac OS X Snow Leopard, aber alle anderen Unixoiden sollten auch gehen.
Edit: ich seh grad, dass ich ein paar temporäre Dateien noch nicht automatisch lösch (die, in denen die Ergebnisse stehen), weil ich eigentlich konfigurierbar machen wollte, ob man die behält. Werde ich bei Gelegenheit anpassen.
Das Kompilieren ist nicht das Problem. Der Emulator ist das Problem. Der ist ein einziger Witz. Selbst für eine "Hallo Welt"-App braucht das Teil 5 Minuten zum Laden.
Am Besten ist es, du benutzt gleich ein Smartphone. Als Alternative kann man sich auch eine VM mit einem Android-OS installieren und dann mittels des Tools adb, welches beim SDK dabei ist, eine Netzwerkverbindung zur VM aufbauen. Das ist um weiten schneller, als der Emulator.
Eine x86 Version von Android kann man sich hier runterladen -> http://www.android-x86.org
Allerdings ist damit nicht alles möglich.
Wir haben auf Arbeit alles was wir brauchenAber danke! Ich hab dass dann einfach so gemacht das ich den Emulator hab laufen lassen. Mehr als ein Hello World sollte ich eh nicht machen, ich wollt nur gucken wie das dann so geht. Du hast aber Recht auf einem Gerät geht es schneller und zum Glück bekomme ich morgen eins x_X
Btw ist das Laden noch lange nicht so schlimm wie die Performance von dem Ding. Ich meinte übrigens nicht das kompilieren, das ist ja in Java immer sehr fix sondern hab nur die Geschwindigkeit vergleicht(Natürlich ist C beim kompilieren schneller als der Emulator).
So eine VM werd ich mir jetzt aber trotzdem mal laden![]()
Den Emulator benutzt du eigentlich nur, wenn du die Affenherde auf deine App los lässt. Es gibt zwar einen Paramter die nur auf ein Packet zu beschränken aber bei mir sind die schon ein par mal ausgebrochen. Wenn dein echter Androiden von denen angefallen kannste echt Spaß haben. Zack: Nummer in Pakistan gewählt. o.O
Es gibt aber die Möglichkeit den Emu mit nem Speicherabbild zu laden. Das soll angeblich schneller gehen - bei mir scheint es nicht zu funzen.
Fazit: Um gewisse Darstellungsfehler auf anderen Droiden nachvollziehen zu können ist das Ding geeignet. Schön mit ner Tasse Tee lohnt sich das. Aber für komplexe Bugs ist der echt zu lahm.
(PS: Für ne Minivorschau kannste auch direkt die .xml im Ecipse angucken Da ist wie bei der .manifest ein Reiter. Oben kannst du verschiedenen Auflösungen, Bildschirme und Themes einstellen.
Für relatives Layout ist das aber eher ein WYSIAWYG-Tool. Der Code ist ... kreativ.)
Geändert von YoshiGreen (21.02.2012 um 22:51 Uhr)
Die Gui ist mir relativ egal, das mach ich erst zu schluss, ich weiß aber bereits das ich die über die main.xml konfigurieren kann. Der Code ist echt übel, vor allem wenn du dann noch die Support Jar dazu nimmst, da heißt es dann nicht mehr Activity (lol), sondern Fragment(WTF?). Ist echt nicht witzig und ich bin ganz froh das ich das erst mal nach hinten verschieben kann. Allgemein kann ich das erst mal sein lassen, vorrangig ist jetzt: Userdaten (Name, Password usw) irgendiwe auf dem Android sichern, Stichwort Credentials. Da gibs ja irgendwas mit SharedPreferences, hoffe das klappt direkt
btw, kennt einer von euch ein gutes Json Framework? Jackson ist zwar gut, aber das zu parsen ist irgendwie merkwürdig... theoretisch müsste ich rekursiv schau ob etwas in meinem Json ist, da das keine simple Struktur ist :/
Ein Fragment ist ein Teil der GUI, der in Activities verwendet werden kann.
Falls es eine App werden soll, wo mehrere Nutzer sich anmelden und ihre eigenen Einstellungen vornehmen können, kommst du mit den SharedPreferences nicht weit. Außerdem finde ich diese ein bisschen umständlich. Nach jeder Änderung muss noch zusätzlich das commit() aufgerufen werden, da er die Daten nur erstmal zwischenspeichert. Erst beim commit() schreibt der die Daten persistent.
Wer guckt sich auch schon den generierten Code an?
Die XML Datei reicht völlig aus.
Geändert von Whiz-zarD (22.02.2012 um 17:20 Uhr)
Die support lib sind ja für die Abwärtskompatibilität. Kannst du also am Anfang erstmal Beiseite lassen.
SharedPreferences sind sehr gut für allgemeine Einstellungen in der App geeignet. Das reicht eigentlich auch für "Multianmeldungen" - die es so ja nicht wirklich gibt.
JSON: http://developer.android.com/referen...SONObject.html hm?
@Whiz: Es gibt Lebewesen die machen damit ganze Designs. "Und der Code ist ja so sauber formatiert." Nettere Menschen bekommen davon gesteigerten Blutdruck![]()
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.
--
Ich bin eine Säbelzahnkatze *miau*
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.
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^^)
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.