Beiträge von Marco Feltmann

    Mag völliger Schwachsinn sein, aber meiner Erinnerung nach läuft jede App in ihrer eigenen 'Sandbox'.
    Soll heißen: Auch wenn die Datenbank an der Stelle liegt, die Du kennst und auch wenn Du sie via adb o.Ä. herunterziehen und reinschauen kannst, bedeutet es noch lange nicht, dass Deine App das auch kann.


    Die arbeitet in einer vorgegaukelten Root-Umgebung, das heißt, was auf Deiner SD als 'data/com.example.app2' zu sehen ist, wird der App als '/' dargestellt. Und höher als '/' kommt sie nicht.


    Das wird eigentlich seit Jahren auf Unix Systemen so gemacht.
    Im Webbereich hat jeder virtuelle Apacheserver einen so genannten Document Root, der dasselbe macht.
    Bei FTP-Servern lässt sich ein FTP-Benutzer in so einem Unterverzeichnis 'einsperren'.
    Einige Linux-Distributionen nutzen eine derartige chroot Umgebung für die Installation.
    Ganze Server lassen sich in virtuellen Maschinen in ein eigenes Unterverzeichnis 'sperren'.


    Eben dafür gibt es diese Content Provider.


    Da die erste App ja auch Dir gehört solltest Du dort ein Update mit dem Content Provider herausbringen und Deine zweite App darauf aufbauen.

    Spontan würde ich sagen (und StackOverflow scheint meine Meinung zu bestätigen), dass Du 'einfach' den ganzen LocationManager Krams in einen Background Service auslagerst.


    Dort hast Du dann auch Deine LocationManager Instanz und kannst diese nach der Geschwindigkeit befragen.


    Guckst Du http://stackoverflow.com/a/28535885



    Aber mal ganz ehrlich, das ist doch eigentlich kein Job für ein Mobiltelefon...
    Gibt's denn keine ordentlichen Fahrradcomputer, die das ein bisschen zuverlässiger messen können?


    Da lässt sich doch sicherlich was mit dem Arduino oder Raspberry Pi zusammenbasteln. ^^

    Sach ich ja, dieselbe Prosa, mit der sie auch für Swift um sich werfen.


    Spätestens wenn sie mit Protokollen hantieren und man Dinge liest wie:

    Code
    var objectType: A & B & C = instance()


    wird's haarig.


    Aber hoffentlich übernehmen die nicht jeden Scheiß.
    Wie beispielsweise den unglaublich sinnvollen Wegfall von ++i / i++... :rolleyes:

    Läuft denn das Tutorial zuverlässig?
    Ich kann mir durchaus vorstellen, dass in den letzten zwei Jahren am Sleepmode herumoptimiert wurde und nicht mehr geweckt wird wenn Du es willst, sondern dein Weckwunsch aufgenommen und gesammelt wird und dann ab einer gewissen kritischen Masse an Weckrufen das System den Sleepmode verlässt.

    Moin!
    Da ihr euch auf eine Antwort sehr freut verfasse ich gern eine. :)


    Zitat

    Hauptaugenmerk auf Android und iOS


    Klar. Ist ja alles dasselbe. Ist ja nun nicht so, als ob man allein für eine Plattform schon Tage an einer simplen Login-Maske basteln kann und Wochen braucht, um sich über den neuesten fancy stuff zu informieren - geschweige denn sämtliche spannenden neuen Dinge auszuprobieren.


    Zitat

    Entwickler aus America kündigen müssen


    Oh, das ist schade. Wollte der etwa Geld für seine Arbeit und fand Ansagen wie "30% der Anteile der Firma" zu schwammig?


    Zitat

    vier- bis zu siebenstellige Geldsummen sparen


    Das wird weder den Dachdecker von Nebenan noch die Werkstatt des Großonkels betreffen.
    Fand der Entwickler aus Amerika das Projekt nach den folgenden Details dann doch zu unsinnig um seine Zeit damit zu verschwenden?


    Zitat

    Diese Idee von uns gibt es weltweit nicht ein einziges Mal, ist sehr gefragt auf dem Markt und diese Fakten können wir nicht nur statistisch beweisen, sondern haben uns schon mehrere Meinungen eingeholt


    Eine Idee, die es nicht gibt aber auf dem Markt (welchem eigentlich?) schon sehr gefragt ist... Das klingt nach einer Lüge oder nach einem spekulativen Geschäft für Kreditunternehmen - was einer Lüge ziemlich nahe kommt.


    Zitat

    internationalen Patentanwalt


    Verstehe. Und da sich reine Ideen in Deutschland leider nicht patentieren lassen, braucht ihr jetzt dringend jemanden, der $irgendwas zusammenschustert, damit ihr das mit in die Patentschrift aufnehmen könnt.


    Zitat

    Was wir nur noch brauchen ist jemanden, der unsere Ideen im Bereich IT Umsetzt und mit uns ins Boot steigt.


    Ja, das klingt so.


    Nachdem nun geklärt wäre, was ihr glaubt zu brauchen: Was bietet ihr denn dem Interessenten bzw. was habt ihr dem Entwickler aus Amerika geboten?



    Meine Meinung nach diesen nichtssagenden Buzzwords (fehlt eigentlich nur noch 'Internet of Things'...)
    Das klingt hochgradig unseriös.


    Forderungen ohne angebotene Gegenleistung, Selbstwerbung mit nicht nachvollziehbaren Statistiken und Referenzen, riesige Summen, internationale Verbreitung, hohe Dringlichkeit.


    Mir kommt das so vor, als hätten da ein paar Jungs eine Idee um den Finanzsektor abzugrasen, möchten dafür aber möglichst wenig investieren und suchen einen dummen Allrounder, der sich bestenfalls kostenlos seine Freizeit um die Ohren haut.


    --


    Ein paar Tipps, solltet ihr das auch im deutschsprachigen OS X Entwicklerforum, Abteilung iOS probieren wollen:
    Wenn eure Idee so unglaublich geil ist, dass etliche Global Player sie für sinnvoll erachten und brennend daran interessiert sind, hättet ihr sicherlich den ein oder anderen Investoren an Land gezogen. Das dürft ihr dann auch gern erwähnen.


    Natürlich wollen die Jungs Businesspläne sehen. Da könntet ihr dann die relevanten Informationen draus präsentieren. Avisierter Projektzeitraum, geplante Arbeitsweise, irgendwas.


    Wenn Eure Idee großen Unternehmen Unmengen an Geld einsparen soll, wird es sicherlich keine App im Einzelbenutzersystem sein. Von Backend, Hardware, Skalierbarkeit, Sicherheit oder Reaktionszeiten erwähnt ihr aber nix. Übrigens ist jeder Punkt für sich ein Vollzeitjob und kann sicherlich nicht von einem Developer abgedeckt werden. Ernsthaft, ihr habt euch offenbar nicht einmal um einen (Kommunikations)Designer bemüht.


    Arbeitet mal ein bisschen an den Logikfehlern eures Beitrags und versucht es dann noch mal.

    Kann ich meinen DSL Anbieter einfach so kündigen, obwohl ich einen 1 Jahresvertrag habe.

    Nein.


    Mir wurde eine 6.000ter Leitung angeboten, aktuell komme ich aber nicht über 800 - 1.200.

    Woher weißt Du das? Ominöse überrannte Download-Speed-Tester? Große Downloads auf hoch frequentierten Seiten? Statistiken einer Torrent-App? Downloadzeiten bei einem Streamingdienst?
    Nur weil etwas maximal durch Deine Leitung geht, heißt das noch lange nicht, dass die Gegenstelle auch nur annähernd so schnell senden kann.
    Auch wichtig: Der ISP misst in MBit/s, viele Tools im MByte/s.
    1.000.000 Bit sind ungefähr 8x weniger als 1.048.576 Byte


    "Nicht erbrachte Leistung – Wurden beim DSL anmelden vertraglich vereinbarte Leistungen nicht erbracht und der Forderung auf Nacherfüllung nicht nachgekommen, kann vom Vertrag zurückgetreten werden."


    Reicht sowas als Begründung aus?

    Ganz normales Deutsches Recht: Du musst dem Vertragspartner die gemäß Vertrag vereinbarten Chancen geben, den Mangel in adäquater Zeit zu beseitigen. (Gesetzlich 3x zu je 4 Wochen)
    Wenn Du das getan hast (wovon ich nicht ausgehe) reicht das für eine außerordentliche Kündigung, gegen die die Unternehmen allerdings auch gern einmal anwaltlich begleitet Widerspruch einlegen.

    Nun ja, man könnte simpel einen Toast anbringen 'Sind noch Möglichkeiten vorhanden' und beim erneuten Tippen auf 'Check' könnte man es ja übergehen. Oder man macht es konfigurierbar: 'Sach Bescheid' oder 'Nerv Nich'.
    Natürlich könnte es auch weggelassen werden - dann ist 'Check' aber ein ungünstiger Name - denn es prüft ja nix.


    Idealerweise je nach Einstellung den Button'Check' anzeigen und danach dann auf einen Button 'Reihe fortführen' ändern oder nur 'Reihe fortführen' anzeigen.


    --


    Um die 5000 Punkte zu bekommen hab ich ordentlich Zeilen erzeugt. Der Scrollbalken am Rand war ungefähr halb so hoch wie ein Kästchen. Also ganz viele 'Reihe fortführen' Tabs. ;)


    Was durchgestrichen war blieb auch durchgestrichen, aber die Animationen vervielfältigt sich. Sieht einfach störend aus.
    Das auf Touches nicht reagiert wurde ließ sich auch durch mehrmaliges Scrollen beheben.
    Es wird also irgendwie an der Menge der dargestellten Kästchen liegen.


    --


    Das war eine rein fachliche Frage zum programmatischen Ansatz und der Umsetzung im Code bzw. der dahinterliegenden Idee. ;)


    --


    Zu den Modi:
    1-19 ist fein
    Chaotic schafft man wenigstens mal
    Zeitduell ist super, wenn man eine Zeit X zu warten hat - manuelle Einstellung der Spielzeit wäre noch eine Idee
    Quickmode verstehe ich nicht - sieht aus wie Zeitduell auf 5 Minuten gestellt
    Spaltenlöscher mit Spalten und Reihen fetzt ziemlich, nur mit Spalten sorgt bei mir ziemlich zügig dafür, dass ich drei sich wiederholende Sequenzen habe, die ich nie loswerden kann.

    Ein sehr interessantes Spielkonzept. Hat mich jetzt ein paar Stunden beschäftigt. ^^


    Ein paar Fragen zum Aufbau:
    Wie hast Du das Spielfeld realisiert, sind das alles ganz normale Views in der typischen View Hierarchie?
    Auch finde ich die interne Darstellung des Spielfeldes interessant. Ich hab irgendwie keine sinnvollen Ansätze, wie ich diesen Check ob das links/rechts/oben/unten ein gültiger Zug ist.


    Ein paar Featurevorschläge:
    Es wäre voll nett wenn das Programm eigenständig feststellen würde, ob es noch gültige Züge gibt.
    Auch wäre es interessant zu sehen, wie viele Ziffern man zum Sieg noch wegbekommen muss.
    Ein wenig stören die Animationen des Hauptmenüs doch. Wenn man sich einmal durch die Statistiken und die Anleitung tippt und jedes mal warten muss, bis das Menü wieder da ist, bremst das ein bisschen. Eventuell nur beim Starten animieren?
    Das Ingame-Menü mit Hints/Check/Restart/Undo/Punkte nimmt meiner Meinung mach ziemlich viel Platz weg. Hier wäre es schön, es würde ab einer gewissen Anzahl von Reihen wesentlich verkleinert werden, damit mehr Zifr ;) auf dem Bildschirm dargestellt werden können.


    Ein paar aufgefallene Probleme:
    So ab ca. 5.000 Punkten (keine Ahnung wie viele Zahlen/Blöcke/Reihen da auf dem Bildschirm waren) wurden meine Tabs auf den Ziffern nicht mehr erkannt. Ich musste Zifr in den Hintergrund schicken und wieder nach vorn holen.
    Auch hatte ich nach ein wenig hoch- und runterscrollen den Effekt, dass ich eine Ziffer angetippt habe und viele andere bereits durchgestrichene* Blöcke haben ihre Animation zum Durchstreichen* wiederholt. Zum Schluss haben sich zur vergrößerten, angetippten Zahl 9 bereits durchgestrichene* Blöcke wieder durchgestrichen.
    Eventuell hängen ja beide Probleme mit derselben Ursache zusammen.


    Alles in Allem mein neues Lieblingsspiel, auch wenn ich erst mal den 'klassischen' 1-19 ausprobiert habe.



    *) Durchgestrichene Blöcke werden mir auf meinem Gerät als schwarze Rechtecke angezeigt, obwohl das in der Anleitung so nicht der Fall ist.

    Steht doch da: Central Application Class.


    Also entsprechend dem üblichen Procedere eine entsprechende Subklasse von android.app.Application erstellt und im Manifest eingetragen, bingo.


    Was die Idee des fünfsekündigen Abrufens der Position soll (abgesehen von Akku aufheizen und leerlutschen) verstehe ich allerdings nicht. Such Dir lieber einen sinvollen Trigger!


    ChampS
    Das ist alles auf der vom TE verlinkten GitHub Projektseite beschrieben.

    Also ich kann mir aussuchen, ob ich NDK r12b mit 32 oder 64 Bit haben möchte.
    Ein r11e gab es nie, nur ein r10e.


    Du brauchst nur die jeweils aktuelle Version, die zu Deinem Betriebssystem und Prozessor passt.
    Den Rest kannst Du wegwerfen.


    Android Studio aktualisiert das NDK gern mal für Dich, ich weiß nur nicht, ob es danach auch wieder aufräumt.
    Jedenfalls reicht das jeweils aktuelle (r12b).

    Es gibt auch Ansätze, das Ganze auf dem Endgerät selbst mitlaufen zu lassen.
    Entweder die taugen nichts oder sie benötigen Root Zugriffsrechte.


    Ansonsten war ich nur bedingt fähig die Infos aus dem Emulator mitzuschneiden, da die Netzwerkschnittstelle dort ja auch nur emuliert wird.
    Um herauszufinden, was jetzt mein Zeugs und was das Zeugs vom Emulator ist war da nicht gerade trivial.


    So ein 'Live-Sniffing' wie unter WireShark wird es aber meines Wissens für das Mobilgerät nicht geben.
    Das hat immer nur eine .pcap ins Dateisystem, die man dann im Anschluss in WireShark einlesen und auswerten muss.

    AFAIK liegt das Hauptaugenmerk auf Effizienz, das heißt, möglichst schnell mit möglichst wenig Fehlentscheidungen die 'richtige' Entscheidung zu treffen.


    Hierbei liegt das Problem dann wieder im Punkt 'richtige Entscheidung'.


    Man kann das alte Beispiel der Ethik heranziehen:
    Stell Dir vor ein Zug mit 100 Passagieren rattert auf eine Weiche zu, die Du stellen musst.
    Je nach Deiner Entscheidung rast der Zug entweder auf einen Abgrund zu (100+ Tote) oder über ein paar Gleisarbeiter (5 Tote).
    Wie entscheidest Du Dich?


    Beim Menschen variiert hier die Entscheidung gern je nach Ausgangsposition der Weiche.


    Diese Annahme fordert eine Entscheidung A) oder B)
    Steh' ich jetzt direkt an der Weiche stell ich sie auf die Arbeiter und brüll in die Flüstertüte 'Zug im Anmarsch!'.
    Sitz' ich im Kontrollzentrum verlasse ich mich vielleicht darauf, dass die Jungs schon mitbekommen werden, dass da ein Zug auf sie zu kommt.
    Eventuell ist das auch ne elektrisch betriebene Lok und ich sitz in der Leitstelle, dann halte ich das Ding erst an und stell die Weiche dann auf die Position, die den längsten Weg bis zur Katastrophe verspricht.
    Sind überhaupt keine Bauarbeiten angekündigt worden und es ist davon auszugehen, dass die fünf sich da widerrechtlich aufhalten, stell ich die Weiche auf die kleine Gruppe und rate denen, dass sie Augen und Ohren offen halten.
    Sind die 100+ Passagiere hingegen gewalttätige Hooligans könnte es durchaus passieren, dass ich die Situation leicht falsch einschätze und aus Versehen auf den Abgrund schalte.


    All diese Möglichkeiten muss eine künstliche Intelligenz erst einmal analysiert bekommen, sie muss also nicht nur Daten haben sondern auch noch Annahmen treffen können.


    Ein weiteres Problem ist meiner Meinung nach, dass die Verknüpfungen einer KI meines Wissens stringent sind. Frei nach dem Faultier Sid:
    "Ich seh' 'n Baum, ich ess' 'n Blatt. Das ist mein Fährtenlesen."
    Intelligenz funktioniert anders. Intelligenz springt mal über die eine neurale Erinnerung/Wertung/Abstraktion/Kreativität Leitung, mal über eine andere Leitung. Mal wird für dieselbe Situation mehr Kreativität, mal mehr Erinnerung, mal mehr Wertung beansprucht.


    Vor Allem unter Stress führen manchmal sehr seltsame Verknüpfungen zu sehr seltsamen Entscheidungen, die sich am Ende als genial herausstellen. (Siehe Henry Ford.)
    In anderen Situationen wird der passende Zufall herbeigeführt. (Robert Martin Glover, Charles Goodyear)


    Vor Allem Charles Goodyear ist ein wunderbares Beispiel dafür, dass man ziemlich hirnverbrannt sein und trotzdem einen Geniestreich landen kann.


    Auch Thomas Edison, Steven Hawking, Albert Einstein, Linus Torvalds, Bill Gates oder Steve Jobs zeichne(te)n sich dadurch aus, es mit Ethik, Wertung und Respekt jetzt nicht soooo ernst zu nehmen und etliche Entscheidungen zu treffen, die zunächst komplett falsch oder gar schwachsinnig erschienen.
    Dennoch werden sie gemeinhin als ziemlich intelligent angesehen und ihnen werden bahnbrechende Errungenschaften nachgesagt.


    Allen kann man nachsagen: Scheitern auf etlichen Ebenen hat sie zu ihren Errungenschaften gebracht. Eine Option, die in den aktuellen Ansätzen der künstlichen Intelligenz soweit ich weiß komplett ignoriert wird.
    Niemand will halt, dass so ein T-2000 seine Entwickler röstet um auszuprobieren was passiert. ;)


    Auch scheint der Ansatz zu sein, dass die Entwickler der KI viel Input darüber geben, was geht und was nicht geht.
    Haben unsere Eltern bei uns auch versucht. Im Gegensatz zur KI sind wir trotzdem auf dem Sessel herumgeturnt, haben versucht vor unseren Eltern auf die Straße zu rennen, sind im Kirschbaum rumgeklettert, haben in Industrieruinen gespielt, Schulstunden geschwänzt und ähnliche Dinge gemacht, die wir nicht hätten tun sollen.
    (Und bei einigen Dingen auch erkannt, warum das doofe Ideen waren.)


    Hab mal ein Kind gesehen, dass mich mit riesigen Augen angestarrt hat, weil ich auf einem Tisch saß.
    In seiner Welt saßen Menschen immer auf Sitzmöbeln und aßen oder arbeiteten an Tischen.
    Dann hat es das auch mal ausprobiert und war völlig erstaunt, dass man auf Tischen sitzen konnte!
    (Die Blicke der Mutter - Dolche, ich schwör. +g+)


    Es hat so ein bisschen was vom Affentheorem.
    Wenn die Grundlage der Erfahrungen einer KI lediglich aus Konditionierung besteht (wie es aktuell ja der Fall ist), dann tötet es mitunter das, was aus unserer Sicht intelligente Menschen hatten.

    Um Entscheidungen abwägen zu können müssen viele Parameter erfüllt sein.


    Zunächst muss man kreativ sein um herauszufinden, welche Möglichkeiten es gibt, zwischen denen man sich entscheidet.
    Dann muss man sich abstrakt vorstellen können, welche Auswirkungen die jeweiligen Möglichkeiten haben werden.
    Abschließend muss man dann noch an Hand von moralischen, ethischen und anderen Wertvorstellungen ermitteln, wie diese Auswirkungen einzustufen sind.
    Hat man nun die beste Entscheidung getroffen bleibt natürlich noch die Frage nach der Realisierbarkeit des Ganzen.


    Allein hier sind an der Intelligenz schon mehrere unterschiedliche Teilbereiche zugange: Kreativität, Abstraktion, Bewertung, Empathie, Erinnerung, Vorstellung.


    Und je öfter man vor der selben Entscheidung stand (Sekt oder Selters?) desto eher bilden sich Automatismen, die diese ganze anstrengende Abwägerei abkürzen: Ich habe die letzten 20x Sekt getrunken, mach ich jetzt genauso.


    Stellt man ein kleines Kind vor dieselbe Entscheidung, wird es vermutlich beides ausprobieren. (Also lieber alkoholfreien Sekt nehmen.)
    Ihm fehlt es einfach an ganz vielen wichtigen Komponenten wie der Erinnerung, der Abstraktion und der Bewertung, so dass es hier Erfahrungen sammeln muss, auf die es später zurückgreifen kann.


    Dieses Erfahrungen sammeln, später darauf zurückgreifen und daraus für die Zukunft Vereinfachungen ableiten ist für mich Intelligenz.
    (Gibt es übrigens auch bei vielen Tieren...)


    Also nicht das bloße Sammeln von Erinnerungen wie eine DVD Sammlung, sondern das Verknüpfen, Abstrahieren, Lernen und Anwenden dieser Erinnerungen.