Skip to content

Archiv fuer das Jahr 2012

27
Dez

Nicht untätig.

Man hat zwar mittlerweile schon eine weile nichts mehr von mir gehört, aber trotzdem war ich nicht untätig. Letzte Woche habe ich meine WordPress Installation wiedermal geupdatet, was nun endlich auch wiedermal dringend nötig war. Außerdem habe ich schonmal mit meiner Blog-App für Android begonnen. Das holen der Daten per Web-Request ist eigentlich gar nicht so tragisch (sobald man zumindest mal weiß, dass Web-Requests in einem Thread abgearbeitet werden müssen), aber gut.
Ebenso habe ich mir den Bildschirm meiner Freundin geklaut. Also den Monitor. Weil sie ja jetzt eh einen neuen Laptop hat, ist sie kaum mehr hier oben wo mein Rechner steht und auch ihr Monitor. Und bevor dieser vergammelt, hab ich mir gedacht: Na gut dann nimmst du ihn eben.

Übrigens denke ich, kann die erste (Beta)Version meiner Blog-App bereits ab Mitte – Ende nächster Woche getestet werden. Viel wird diese dann wahrscheinlich noch nicht können, aber ein paar Posts anzeigen um was es ja bei so einer App geht wird schon funktionieren 🙂

Wo wir gerade beim Testen sind. Ich teste auch sehr gern mobile Geräte (Handy, Tablet). Von denen habe ich auch bereits ein paar geschrieben. Unter anderem folgende:

LG E900 Optimus 7
iPhone 4
LG P920 Optimus 3D
Galaxy Tab 2 10.1

Dabei wurden mir die beiden LGs von faq4mobiles zur Verfügung gestellt. Bzw. von Sponsoren. Dort wurden schon ein paar mal Geräte zum testen bereitgestellt. Das iPhone 4 war mein eigenes Gerät.

Als es den mobi-test-Blog eine weile lang gab, wurden neue Tester gesucht (was aber mittlerweile schon wieder ziemlich lange her ist). Jedenfalls hatte ich Glück und wurde ausgewählt. Ich konnte mein Glück kaum fassen, allerdings war es auch recht schnell wieder vorbei. Anscheinend gab es nämlich ein paar schwarze Schafe, was ja nichts neues ist, die gibt es ja überall. Jedenfalls sind laut angaben des Betreibers ein paar Geräte dermaßen zerkratzt und „verstümmelt“ zurückgekommen, dass er daraus die notwendige Konsequenz gezogen hat. Und zwar wurden alle Mitglieder aus dem Testteam geworfen. Da ich zu diesem Zeitpunkt noch kein Testgerät bekommen hatte und erst 2 Wochen im Team war, wurde ich auch gleich wieder „rausgeworfen“.

So und jetzt mach ich mal an meiner App weiter 🙂

22
Dez

Hello World! – Für Android.

Wie schon vor ner ganzen Weile angekündigt habe ich vor ein Hello World-Tutorial für Android zu schreiben. Und heute ist es so weit. Als erstes braucht Ihr Eclipse und den AVD(Android Virtual Device)-Manager. Dazu gibt es bei Google ein Bundle in dem beides bereits enthalten ist. Ein Klick auf „Download the SDK ADT Bundle for Windows“ lädt dann die knapp 400MB große Zip-Datei herunter.
Die heruntergeladene Zip-Datei könnt Ihr entpacken. In dem Ordner befinden sich dann „eclipse“, „sdk“ und „SDK Manager.exe“. Diese drei Ordner bzw. Dateien packt Ihr irgendwohin wo Ihr sie haben wollt. Den Ordner „sdk“ muss in „android-sdk-windows“ umbenannt werden. Danach kann „eclipse.exe“ aus dem gleichnamigen Verzeichnis gestartet werden.
Nachdem eclipse gestartet wurde, muss zumindest eine Android-Version heruntergeladen werden. Dazu klicken wir auf das fünfte Icon der Icon-Leiste (Android SDK Manager). Im erscheinenden Fenster machen wir ein Häckchen bei „Tools“ und in diesem Beispiel bei „Android 4.0.3 (API 15)“. Natürlich könnt Ihr später auch noch die anderen Versionen herunterladen. Mit „Install X Packages“ werden die ausgewählten Dateien heruntergeladen.
Ist der Download fertig können wir uns ein AVD erstellen. Dies geschieht mit sechsten Icon (Android Virtual Device Manager). Im erscheinenden Fenster rechts auf „New“ klicken. Im erscheinenden Fenster müssen die entsprechenden Einstellungen getroffen werden.

Name ist eigentlich egal, ich nenne das Gerät in diesem Beispiel „ICS“.
Device: 3.2″ HVGA slider (ADP1) (320 x 480: mdpi)
Target: Android 4.0.3 – API Level 15
CPU/ABI: ARM (armeabi-v7a)
SD Card: Size: 64 MiB

Den rest können wir so lassen wie vorgegeben. Dann bestätigen wir mit Ok.

Nun können wir mit unserem Projekt beginnen. „File -> New -> Project“. Dann wählen wir den Ordner „Android“ und darunter „Android Application Project“. Ein Click auf „Next“ und die nächste Maske erscheint.
Application Name: HelloWorld
Project Name: HelloWorld:
Package Name: com.chrisblog.helloworld
Beim Packagenamen solltet Ihr eine „URL“ verwenden die euch gehört. Bei mir z. B. com.chrisblog.

Minimum Required SDK: API 8: Android 2.2 (Froyo). (Legt fest ab welcher Android Version die App auf Geräten installiert werden kann, höhere Versionen haben mehr Funktionen. Hier muss also abgewägt werden was euch wichtiger ist. Für unser Beispiel reicht jedoch Android 2.2).
Target SDK: API 15: Android 4.0.3
Compile With: API 15: Android 4.0.3
Theme: Egal, ich habe den Standard gelassen.

Wieder auf „Next“. Ich habe den hacken bei „Create custom launcher icon“ entfernt, da wir dies im Moment nicht brauchen. Der Rest bleibt wieder so wie er war. In der nächsten Maske sollte „Create Activity“ angehakt sein und „Blank Activity“ ausgewählt sein. Falls nicht wählen wir dieses aus und klicken wieder auf „Next“. Der Name der Activity kann so bleiben wie er ist. „Finish“ und wir können loslegen.

eclipse sollte nun automatisch „activity_main.xml“ geöffnet haben. Wenn nicht macht Ihr das selbst. Im „Package Explorer“ auf der linken Seite unter „HelloWorld -> res -> layout“ ist die entsprechende Datei zu finden. Danach wechseln wir vom „Graphical Layout“ in „activity_main.xml“.

Dort ändern wir die Beiden „RelativeLayout“s in „LinearLayout“s.

Den Eintrag der mit „<TextView“ beginnt löschen wir und schreiben an dessen Stelle folgenden Code:

    &lt;EditText 
        android:id="@+id/edtName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Name"
        /&gt;

Danach noch ein Button:

    &lt;Button
        android:id="@+id/btnHello"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello!"
        /&gt;

Dann wechseln wir in die Datei „MainActivity.java“ welche sich unter „src -> eureURL.helloworld“ befindet.
Wir brauchen noch folgende imports:

import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

Als nächstes „holen“ wir uns unser Editfeld und den Button „in den Code“. Dies machen wir in der Methode „onCreate“ nach „setContentView(R.layout.activity_main);“:

Button b = (Button)findViewById(R.id.btnHello);
final EditText edt = (EditText)findViewById(R.id.edtName);

Dann kommt das OnClick-Event welches wie folgt festgelegt wird:

b.setOnClickListener(new OnClickListener() {
			
   @Override
   public void onClick(View arg0) {
      Toast.makeText(getApplicationContext(), "Hello World!", Toast.LENGTH_LONG).show();
   }
});

Toast.makeText erzeugt eine Meldung. Der erste Parameter ist der ApplicationContext, der zweite der Text der ausgegeben werden soll. Der dritte Parameter gibt an ob die Meldung kurz oder lang angezeigt werden soll und mit „show()“ sagen wir dem ganzen, dass es jetzt angezeigt werden soll.

Jetzt kann die App schonmal gestartet werden und sollte „Hello World!“ ausgeben.

Zum Schluss können wir das ganze so modifizieren, dass der eingegebene Name angezeigt wird:

b.setOnClickListener(new OnClickListener() {
			
   @Override
   public void onClick(View arg0) {
      Toast.makeText(getApplicationContext(), "Hello " + edt.getText() + "!", Toast.LENGTH_LONG).show();
   }
});

Wird die App nun gestartet und klickt man auf den Button „Hello!“ wird der entsprechende Text der im Textfeld „Name“ steht ausgegeben. Zugegeben, schön ist die App nicht gerade, allerdings erfüllt sie ihren Zweck.

18
Dez

Wie verwende ich sqlite in C++?

Wer eine kleine Datenbank in seine Anwendung einbauen möchte ist bestimmt schonmal auf sqlite gestoßen. Unter C# ist die Einbindung ziemlich einfach und mit einer DLL sehr schnell gemacht. In C++ sieht das ganze etwas komplizierter aus, ist aber vom Prinzip her auch ziemlich einfach zu handhaben.
(Ich benutze als Entwicklungsumgebung den C++ Builder von Embarcadero in der Version XE3).
Als erstes brauchen wir die Source-Files. Diese laden wir uns hier herunter. Wir benötigen das sqlite-amalgamation Package mit den C++-Headerdateien.

Die Headerdateien müssen aus dem zip-Ordner entpackt werden und dem Projekt hinzugefügt werden. Dann muss die „sqlite“-Header eingebunden werden:

#include "sqlite3.h"

Danach kann auch gleich losgelegt werden. Wir brauchen folgende Variablen:

int     nResult = 0, nCols = 0;
sqlite3 *db;
sqlite3 *stmt;

Dann wird die Verbindung mit der Datenbank hergestellt. Im Falle von SQLite ist das im Prinzip nur eine Datei. Ist diese noch nicht vorhanden, wird sie erzeugt. Und so gehts:

sqlite3_open("Sample.db", &db);

Und schon können wir mit den Statements loslegen. Als erstes wird natürlich eine Tabelle angelegt:

if (sql3_prepare_v2(db, "CREATE TABLE Test(a INTEGER, b INTEGER);", -1, &stmt, 0) != SQLITE_OK)
   ShowMessage("Error");

Mit einem „Step“ wird der Befehl ausgeführt und falls es keinen Rückgabewert gibt muss das Statement auch gleich finalisiert werden:

sqlite3_step(stmt);
sqlite3_finalize(stmt);

Danach können wir fortfahren und ein paar Daten in die Tabelle schreiben:

if (sql3_prepare_v2(db, "INSERT INTO Test(1, 2);", -1, &stmt, 0) != SQLITE_OK)
   ShowMessage("Error");

sqlite3_step(stmt);
sqlite3_finalize(stmt);

Zum Schluss das auslesen der Tabelle. Zuerst holen wir uns die Anzahl der Spalten:

nCols = sqlite3_column_count(stmt);

Danach lesen wir die Daten aus. Wir laufen durch eine Schleife, die erst unterbrochen wird, sobald das Ergebnis des „Steps“ nicht mehr einer „SQLITE_ROW“ entspricht. Solange dies der Fall ist lesen wir den aktuellen Namen der Spalte und den aktuellen Wert der Zeile in der entsprechenden Spalte aus und geben diesen mit einem einfachen ShowMessage aus:

if (sql3_prepare_v2(db, "SELECT * FROM Test;", -1, &stmt, 0) != SQLITE_OK)
   ShowMessage("Error");

while(true)
   result = sqlite3_step(stmt);

   if (result == SQLITE_ROW)
   {
      for(int nCol = 0; nCol < nCols; nCol++)
      {
         String strName = sqlite3_column_name(stmt, nCol);
         String strWert = (char*)sqlite3_column_text(stmt, nCol);
         ShowMessage(strName + ": " + strWert);
      }
   }
   else
      break;

sqlite3_finalize(stmt);

Ganz zum Schluss müssen wir die Datenbank natürlich wieder schließen:

sqlite3_close(db);
16
Dez

Wie binde ich eine Delphi-DLL im C++-Builder ein?

So, heute gibts wiedermal einen Post zum Thema Programmierung. Keine Angst, das Android Hello World kommt auch bald. Letzte Woche stand ich vor dem Problem: „Wie kann ich eine Delphi-DLL im C++ Builder einbinden?“. Die Lösung ist eigentlich relativ einfach.

Als erstes legen wir eine Delphi-DLL an: „Datei -> Neu -> Weitere -> Delphi-Projekte -> Dynamische Link-Bibliothek“. Das ganze speichert Ihr unter dem Namen eurer Wahl ab. Als nächstes legen wir eine Funktion an:

function Summe(a, b: integer): integer; cdecl;
begin
   result := a + b;
end;

Ganz wichtig dabei ist das „cdecl“ sonst funktioniert es nicht richtig.

Logischerweise muss die Funktion dann auch „exportiert“ werden, damit man darauf Zugreifen kann. Das macht man folgendermaßen:

exports
   Summe;

Damit ist der Delphi Teil auch schon fertig. Hier nochmal die Komplette Datei:

library DLLDemo;

uses
   System.SysUtils,
   System.Classes;

function Summe(a, b: integer): integer; cdecl;
begin
   result := a + b;
end;

exports
   Summe;

{$R *.res}

begin
end.

Als nächstes kommt der C++ Teil. Ich habe meiner Projektgruppe einfach eine neue VCL-Formularanwendung hinzugefügt: Rechtsklick auf Projektgruppe -> „Neues Projekt hinzufügen -> C++-Builder-Projekte -> VCL-Formularanwendung“.
Auf das Formular habe ich ganz einfach 2 Editfelder gezogen und einen Button. Danach müssen wir in die Headerdatei wechseln. Dort müssen wir ein paar Sachen definieren. Zuerst die DLL-Funktion auf die wir zugreifen wollen:

typedef int (DLLFUNC)(int a, int b);

Außerdem brauchen wir einen Zeiger auf den eben erstellten „Typ“ und eine Variable vom Typ HINSTANCE:

DLLFUNC *pDLLFunc;
HINSTANCE hInstance;

Die Headerdatei sollte dann so ähnlich aussehen:

#ifndef DLLAppH
#define DLLAppH
//---------------------------------------------------------------------------
#include &lt;System.Classes.hpp&gt;
#include &lt;Vcl.Controls.hpp&gt;
#include &lt;Vcl.StdCtrls.hpp&gt;
#include &lt;Vcl.Forms.hpp&gt;
//---------------------------------------------------------------------------

class TForm1 : public TForm
{
__published:	// Von der IDE verwaltete Komponenten
	TEdit *Edit1;
	TEdit *Edit2;
	TButton *Button1;
	void __fastcall Button1Click(TObject *Sender);
private:	// Benutzer-Deklarationen
	typedef int (DLLFUNC)(int a, int b);
	DLLFUNC *pDLLFunc;
	HINSTANCE hInstance;
public:		// Benutzer-Deklarationen
	__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Weiter gehts in der „.cpp“-Datei. Im Konstruktor wird die DLL geladen. Falls dies fehlschlägt wird eine Fehlermeldung ausgegeben. Die „.dll“-Datei muss sich im gleichen Verzeichnis befinden wie die „.exe“-Datei.

hInstance = ::LoadLibrary(L"DLLDemo.dll");

if (!hInstance) {
   ShowMessage("Die DLL konnte nicht geladen werden!");
}

Im OnClick Ereignis unseres Buttons schreiben wir folgenden Code:

this-&gt;pDLLFunc = (DLLFUNC*)::GetProcAddress(hInstance, "Summe");

if (!this-&gt;pDLLFunc) {
   ShowMessage("Laden der Funktion &gt;&gt; Summe &lt; &lt; fehlgeschlagen!"); } int nSum = (this-&gt;pDLLFunc)(this-&gt;Edit1-&gt;Text.ToInt(), this-&gt;Edit2-&gt;Text.ToInt());

ShowMessage(nSum);

Mit „GetProcAdress“ „laden“ wir die Funktion. Der erste Übergabeparameter ist die Variable des Typs HINSTANCE in der das Ergebnis der LoadLibrary-Funktion stehlt, der zweite Prameter ist der Funktionsname der Funktion die wir aufrufen wollen. Falls dies fehlschlägt geben wir eine Fehlermeldung aus.
Andernfalls Rufen wir die Funktion mit den in den 2 Editfeldern stehenden Zahlen auf und geben das Ergebnis mittel eines ShowMessage aus.

Das wars. Schon könnt Ihr eine Delphi-DLL im C++ Builder verwenden.

10
Dez

Schnee…

Wir nähern uns Weihnachten. Kann man auch an dem ganzen Schnee erkennen (zumindest bei uns). Ich hab ja eigentlich so auch nichts gegen den Schnee – solange der nicht über Nacht fällt, damit ich morgens Schneeräumen muss. Heute bin ich z. B. um 4:45 Uhr aufgestanden um Schnee zu schippen. Um kurz vor 5:45 Uhr war ich dann auch fertig. Und dabei war noch nicht mal alles geräumt, sondern nur das nötigste. Heute und morgen solls ja auch wieder schneien, ich hoffe aber nicht wieder über Nacht so viel.
Zumindest habe ich schon so gut wie alle Weihnachtsgeschenke. Zurzeit fehlen mir noch für 3 bzw. 4 Personen welche und da weiß ich schon Größtenteils was ich da kaufe.
Und da wir uns so rasant Weihnachten nähern gibts auch jede Menge Weihnachtsgewinnspiele. Leider hatte ich bis jetzt noch kein Glück… Wie jedes Jahr eigentlich.

Auf Weihnachten bekomme ich dann einen Kindle. Bin ja mal gespannt. Eigentlich war ich immer der Meinung: Nein ich kaufe mir keinen Kindle. Ich habe lieber Bücher zu Hause im Regal stehen. Nun habe ich mich aber doch entschieden mal so ein Gerät zu auszuprobieren. Denn für Unterwegs sind die Dinger einfach praktischer als ein Buch. Naja ich werde sehen ob ich gefallen daran finde. Zumindest die meisten Amazon-Bewertungen lesen sich ziemlich gut 🙂
Wo wir gerade beim Kindle sind. Bis zu Weihnachten möchte ich den 5. Band von „Das Lied von Eis und Feuer“ fertig sein, damit ich nach Weihnachten gleich mit dem Kindle den 6. Band lesen kann. Aktuell fehlen mir noch ca. 200 Seiten. Und wenn ich dann mit der „Das Lied von Eis und Feuer“-Serie fertig bin, stehen „Die Tribute von Panem“ auf dem Plan.
Übrigens gibts bei Amazon die 2. Staffel von Game of Thrones zum vorbestellen. Vorraussichtlicher Liefertermin liegt im April. Ich hab mir gleich mal eine Version „gesichert“.

Wie läufts mit meinem Android-Projekt? Zugegeben, in letzter Zeit war ich ziemlich „faul“ was das betrifft. Da auch der Emulator auf dem Laptop nicht so richtig läuft (stürzt immer ab) und ich mich mit dem Thema noch nicht so wirklich beschäftigt habe, kümmere ich mich um das Projekt meisten nur in der Mittagspause, falls ich da dann im Büro bin und Lust dazu habe. Zumindest kann ich schonmal eine Anfrage ins Internet feuern und bekomme das Ergebnis zurück. Ich denke auch, dass ich im Betriebsurlaub ein bisschen mehr Zeit haben werde um mich damit zu beschäftigen.
Außerdem habe ich mir auch vorgenommen meinen Rechner im Betriebsurlaub nochmal neu aufzusetzen. Ganz so glorreich war die Installation von AntiVir auf dem Windows8 Rechner nämlich nicht. Woher soll ich denn auch wissen, dass das Programm ständige BlueScreens verursacht? Deinstallation klappt natürlich auch nicht, weil gleich wieder ein Bluescreen produziert wird, auch im Abgesicherten Modus und sonst habe ich keine Idee wie ich das Programm runterbekommen soll, naja… Komischerweise stürzt mein Rechner immer nachdem ersten start ab, nachdem Neustart funktioniert alles Problemlos.

Übrigens ist das der 190. Blogeintrag. Fehlen also nur noch 10 bis zum „200-Jubiläum“.

24
Nov

Die Sache mit der Post…

Nachdem ich ja mein Google Nexus 4 verkauft habe und ich das Geld auch bekommen habe, habe ich das Gerät am Mittwoch weggeschickt. Am nächsten Tag steht in der Sendungsnachverfolgung: „Empfänger unbekannt“. So wies aussieht, wird das Gerät zu mir zurückgeschickt – hab ich mir zumindest Gedacht. Warum Empfänger unbekannt? Der Empfänger hat mir aus versehen die falsche Hausnummer gegeben. Ok, ist ja eigentlich kein Problem ich bekomme das Paket Freitag oder Samstag – war zumindest mein Gedanke. Nachdem ich mir gestern wieder den Status angesehen habe, wurde ich schon stutzig: „Das Paket wurde im Startpaketzentrum (Regensburg) bearbeitet“. Nun, wenn das Gerät zu mir zurückgeht, müsste das Zielpaketzentrum eigentlich Regensburg sein. Also heute nochmal den Status angesehen: „Das Paket wurde im Zielpaketzentrum (Börnicke) bearbeitet“. Heißt nun, das Paket wurde nach Berlin geschickt, wegen unbekannten Empfänger wieder nach Regensburg, dort wurde es (ohne vorher zu mir zu kommen) wieder nach Berlin geschickt, wo es nun wahrscheinlich wieder zu mir zurückkommt. Natürlich habe ich auch bei der Hotline angerufen, allerdings hat das nicht recht viel gebracht „Warten Sie bitte bis Montag ob das Paket bei Ihnen eintrifft“. Na super. Gut dann warte ich halt.
Nachdem ich ja das Nexus verkauft habe und ich mir – durch ein wenig Glück – ein relativ günstiges iPhone 5 gekauft habe, war ich ja Anfangs doch ein wenig im Zwiespalt ob das die richtige Entscheidung war. Im Nachhinein muss ich jetzt sagen ich denke schon. Ich würde es wahrscheinlich wieder genauso machen.

Ich hab mir jetzt Guitar Hero WoR gekauft. Ich hatte noch einen Amazon-Gutschein und ich war schon länger am Überlegen ob ich mir vllt. nicht Guitar Hero kaufe. Also hab ich mich am Donnerstag doch dazu durchgerungen und das Spiel bestellt. Dank des Gutscheins kostete mich das Bundle nur noch knappe 7€ und gestern wars dann auch da. Der erste Eindruck? Verdammt schwer. Ich habe mir das schon ein wenig einfacher vorgestellt. Okay, nach einer Weile läuft das ganze schon etwas flüssiger von der Hand, aber selbst im Schwierigkeitsgrad „Anfänger“ ist das Game am Anfang noch ziemlich anstrengend.

Kennt Ihr das auch? Serienmarathon, fast die ganze Woche lang…
Monags gehts los mit Simpsons (allerdings kommen seit kurzem keine neuen Folgen mehr). Am Dienstag gehts dann weiter mit 2 Broke Girls und The Big Bang Theory (wobei auch bei Big Bang Theory ab jetzt keine neuen Folgen mehr kommen so weit ich das beobachten konnte). Mittwoch Once Upon a Time, New Girl und How I Met Your Mother. Bis letzte Woche kam dann Donnerstags noch Beeing Human (das jetzt anscheinend auch nicht mehr läuft). Naja, so ist jedenfalls fast jeden Tag in der Woche etwas da was man sich angucken kann.
Wo wir schon bei Serien sind. Ich lese ja immer noch Das Lied von Eis und Feuer. Mittlerweile bin ich beim 5en Band, komme aber in letzter Zeit nicht so recht zum lesen. Werde aber versuchen in nächster Zeit wieder mehr zu lesen.

Meine Freundin und ich und meine Eltern haben uns jetzt miteinander einen Kickerkasten gekauft (Tischfußball). Den haben ich und mein Vater gestern Zusammengebaut und heute wird er vermutlich noch „eingeweiht“. Das Teil ist aber ein richtiger Kickerkasten. Nicht so ein Fliegengewicht bei dem man leicht die Stangen verbiegt usw., sondern Massiv und eher sowas wie man die Teile aus dem Wirtshaus kennt. Die Tage werde ich noch ein Bild davon Posten 🙂

19
Nov

Die Sache mit der Wiederherstellungs-DVD

Eigentlich wollte ich am Samstag den Laptop mal neu aufsetzen. Hauptsächlich wegen Windows 8 mit AntiVir usw. Jedenfalls hab ichs dann auch getan – gefühlte 15 mal. Denn so ganz einfach war das ganze nicht. Die Wiederherstellungs-DVDs haben nämlich den gespeicherten Stand wiederhergestellt, allerdings auf der zweiten Festplatte, auf dem kein Betriebssystem installiert war. Was zur Folge hatte: 2 Betriebssysteme auf 2 Platten von denen eines nicht startet. Denn das wiederhergestellte OS ließ sich nicht starten. Nachdem ich die Bootreihenfolge geändert hatte, wurde nur angezeigt: „No Operating System found“. Na Klasse.

Was macht man also in so einem Fall? Klar, Windows 7 von einer normalen Windows Insatallations-DVD aus installieren, denn da kann man dann den Datenträger auf dem das OS installiert werden soll auswählen. Was macht man aber nun wenn man nur eine Professional DVD hat, aber für den Laptop nur eine Home Premium Lizenz? Die ISO entpacken, ein paar Kleinigkeiten ändern und schon kann man bei der Installation zwischen den verschiedenen Versionen auswählen. Somit ist der Laptop jetzt auch wiedermal neu aufgesetzt, hat nur die nötigsten Sachen drauf und läuft mit einem frischen Windows 7. Und nachdem ich Windows 8 sowieso auf meinem normalen Rechner am laufen hab, denke ich lass ich jetzt auf dem Laptop auch erstmal Windows 7 noch für ne Weile drauf.

16
Nov

Nexus 4, iPhone 5?

Die Frage hat sich mir in den letzten Tagen gestellt. Da ich mich ja mit Android-Programmierung beschäftige, war mein Gedanke eigentlich ich kaufe mir ein Android-Device (was ich dann im Endeffekt auch getan habe). Welches? Wie man in der Überschrift schon lesen kann, war ich auf das Nexus 4 fixiert. Einige werden den ganzen „Stress“ um Google bestimmt mitbekommen haben. Erstes Problem: Ich habe keine Kreditkarte. Also was machen? Mywirecard schien die Lösung. Also nicht lange überlegt und einen „Account“ angelegt. Gut, nach kurzer Zeit war das erledigt. Am Dienstag war ich dann um 9 Uhr „pünktlich“ auf der Google-Seite um das Nexus zu kaufen. Natürlich hat das ganze nicht reibungslos funktioniert, aber nach kurzer Zeit wars geschafft und ich war einer der glücklichen, die ein Nexus 4 (fast) sein eigen nennen durften.

Eigentlich war ich der festen Überzeugung mir das Gerät zu behalten, schließlich will ich ja ein wenig Programmieren. Am Tag darauf hab ich dann schon gelesen, dass die Geräte auf ebay einen um einiges Höheren Preis als im Play-Store erreichen. Also hab ich die Preise etwas beobachtet und kam so ins Grübeln. Auch am Abend habe ich noch mit mir „gekämpft“ und überlegt was ich nun machen sollte. Als ich dann am Mittwoch Abend bereits die Versandbestätigung erhalten habe, hab ich mir gedacht: Naja, du kannst auch noch ein paar Wochen warten bis das Gerät wieder verfügbar ist wenn du es wirklich unbedingt willst.

Also hab ich das Gerät kurzerhand in ebay eingestellt. Und wer jetzt behauptet „Geldschinder“ und dass ich das Gerät zum überteuerten Preis verkaufen würde: Ich hab das Gerät für 1€ eingestellt und wenns jemand für mehr als 400€ oder sonst was kauft ist das ja nicht meine Sache, sondern dem seine.

Jedenfalls hat mir dann am nächsten Tag ein Arbeitskollege sein iPhone 5 für einen ziemlich guten Preis angeboten. Tja nun hab ich halt so eins und es bleibt nur ein „Problem“ zurück: Ich habe immer noch kein Android-Device das ich zum testen von Programmen verwenden könnte…^^

10
Nov

Android – und sonstige Neuigkeiten

Seit letzter Woche beschäftige ich mich ja etwas „intensiver“ mit der Android-Entwicklung. Dazu hab ich mir auch ein Buch bestellt welches m. M. nach ziemlich gut ist. Mittlerweile bin ich etwa zur Hälfte durch und bin aktuell bei den Sensoren, bzw. beim GPS. Nachdem ich das Buch durch habe möchte ich ein paar kleinere Apps entwickeln. Erstes Projekt wird wahrscheinlich eine App für meinen Blog sein. Um richtig zu entwickeln bräuchte ich fast noch ein Android Phone. Habe mir schon überlegt ob ich mir nicht vllt. ein Galaxy Note 2 kaufen soll. Nachdem ich mir das Gerät angesehen habe, ist mir aber ziemlich schnell klar geworden: Zu Groß, zu Teuer. Im moment bin ich am überlegen ob ich mir vllt. das neue Nexus-Phone von Google zu lege. Bzw. hergestellt wird es ja von LG. Die Daten des Geräts sind für den Preis einfach unschlagbar. Knapp 300€ für das Gerät mit 8 GB. Ich bin immer noch am hoffen, dass Amazon das Nexus 4 auch vertreiben wird. Denn erstens habe ich dort noch einen Gutschein und zweitens habe ich keine Kreditkarte um mir das Gerät direkt bei Google zu kaufen. Außer ich besorge mir eine sogenannte „Prepaid-Kreditkarte“. Denn bei Mediamarkt kostest das Nexus 4 um einiges mehr als bei Google…
Sobald ich mit dem Buch durch bin werd ich mich gleich an meine Chris-Blog-App machen. Außerdem werde ich ein paar Tutorials schreiben. Als erstes natürlich ein Hello World Tutorial. Damit auch meine Programmier-Kategorie ein bisschen gefüllt wird.

Ich habe ja in den letzten Beiträgen auch meine Blue-Screens unter Windows 8 erwähnt. Nun weiß ich auch woher diese kommen. Ich hab mir AntiVir auf meinen Rechner installiert. Dies hat zwar eine Warnung ausgegeben, aber ich hab mir einfach gedacht hey, so schlimm kanns ja nicht sein. Dann habe ich zufällig im Internet gelesen, dass Avira Blue-Screens verursacht. Na da hätten wir das Problem ja. Also hab ich mir gedacht na gut, deinstallierst du’s halt erstmal. Tja, so einfach ist das nämlich nicht, denn immer wenn das Deinstallationsfenster aufpoppt, stürzt mein Rechner mit einem Blue-Screen ab. Naja ich werds mal im abgesicherten Modus versuchen und sehen was passiert.

Nachdem ich mich ja ziemlich lange nicht von Twitter beeindrucken lassen habe, habe ich mich nun doch mal angemeldet. Nicht um selbst sonderlich viele Beiträge zu schreiben, aber um einfach ein paar Infos von bestimmten Seiten/Personen mitzubekommen. Z. B. mobi-test.de ist dort recht aktiv.
Ihr könnt mich nun unter dem Nutzernamen Chris_272 finden.

5
Nov

Die Android Entwicklung

Nachdem ich mir ja am Freitag ein Buch zur Android-Entwicklung bestellt habe, habe ich mich am Wochenende auch gleich mal ein wenig damit beschäftigt. Das ganze ist sehr Interessant, da das Buch nicht nur die Programmierung, sondern auch die Entstehung und den Aufbau beschreibt. Somit hat man schonmal ein gewisses Grundverständnis, was nicht schlecht ist. Die Android-Programmierung selbst ist (soweit ich bis jetzt gekommen bin) eigentlich relativ „in Ordnung“. Allerdings sollte man ein wenig Java-Grundkenntnisse haben, was bei mir nicht der Fall ist, weshalb ich mir ein paar Sachen des öfteren mal im Internet zusammensuchen muss..

Mittlerweile habe ich ja seit knapp 2 Wochen Windows 8 am laufen und langsam muss ich sagen wirds ziemlich nervig. Ich hoffe Microsoft patcht da bald nach. Gestern am Laptop 3 Abstürze gehabt, obwohl dieser nur gelaufen ist und nichts damit gemacht habe. Selbes beim Desktop-PC. Start -> Bluescreen -> Neustart *grml*.

Am Donnerstag fahren wir von der Arbeit aus auf Gratz. Veranstaltung über .NET-Framework usw., Interassant wird dabei aber der Teil mit den Windows 8 Apps und Windows Phone 8. Ich bin ja mal gespannt…