Pull to Refresh ist irgendwie zum Standard geworden. Jede App implementiert es ein bisschen anders. In der Support Library gibt es seit einiger Zeit eine Komponente mit dem Namen SwipeRefreshLayout die genau dies tut – ohne viel Gefrickel.
Image may be NSFW. Clik here to view.
Das Layout
Das Layout ist ziemlich einfach zu verwenden. In meinem Fall umschließt es einen RecyclerView.
Layout hin oder her, ohne Logik funktioniert das nicht. Wie so oft, gibt es hier einen Listener, der implementiert werden muss.
messageSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override public void onRefresh() {
//Refresh all the things! \o/
}
});
Normalerweise löse ich das so, dass ich nun eine refreshSomething() Methode habe, die das eigentliche abrufen der Daten übernimmt. Diese ruft schlussendlich onRefreshSomethingCompleted() auf. Dort wird dann der Adapter darüber informiert, dass sich die Daten geändert haben und beendet die Aktualisierungsanimation.
private void refreshSomething() {
// Loading... Please wait...
// Hooray we did it!
onRefreshSomethingComplete();
}
void onRefreshSomethingComplete() {
// Notify Adapter
// Tidy up your room
// Cook dinner
// Stop refresh animation
messageSwipeRefreshLayout.setRefreshing(false);
}
Das Sommersemester neigt sich seinem Ende. Einige schreiben Hausarbeiten, andere Laborprotokolle. Wieder andere schreiben wahrscheinlich gerade an ihrer Abschlussarbeit. Das Buch was ich heute vorstellen möchte, versucht euch die Arbeit zu erleichtern und macht dabei einen ziemlich guten Job.
Beim Schreiben von wissenschaftlichen Texten muss man sich konzentrieren – Punkt. Layout und Gestaltung spielen keine Rolle, denn es geht um den Inhalt. An dieser Stelle kommt LaTeX ins Spiel. Die Auszeichnungssprache gibt uns die Möglichkeit bestimmten Textteilen eine Bedeutung zuzuweisen. So markieren wir beispielsweise Begriffe, Beispiele, Theoreme, Sätze etc.. Wie diese schlussendlich formatiert werden sollen, spielt erstmal keine Rolle. Das lassen wir LaTeX machen und können später immer noch Änderungen vornehmen.
Leitfaden für Einsteiger?
Das Buch von Dr. Joachim Schlosser bietet einen guten Überblick über die wichtigsten Funktionen von LaTeX. Vor allem klärt es aber die wichtigen Fragen: Was ist LaTeX, Warum LaTeX und natürlich Wie nutze ich LaTeX.
Auch wenn es sich an Einsteiger wendet, wagt das Buch doch einen Blick über den Tellerrand der Textverarbeitung. So wird z.B. beschrieben, wie eigene Umgebungen erstellt werden können, die den Schreibaufwand massiv verringern können.
Image may be NSFW. Clik here to view.
Das Buch selbst ist – wer hätte das gedacht – in LaTeX geschrieben. Ein bisschen LaTeXception, quasi. ;) Es gibt unzählig viele Beispiele, die es dem Leser sehr einfach machen, ein Verständnis für das Gelernte zu entwickeln. Dabei wird auch oft gezeigt, wie der Code nach dem Kompilieren aussieht.
Grundlagen, Grundlagen, Grundlagen
Auf circa 300 Seiten erfahrt ihr alles, was für eine wissenschaftliche Arbeit notwendig ist. Neben den essentiellen Auszeichnungen für Fußnoten, Querverweise und Formeln thematisiert das Buch auch texttechnische Spitzfindigkeiten wie den Satzspiegel und textumflossene Objekte. Was darf bei Arbeiten im wissenschaftlichen Kontext nicht fehlen? Richtig: Tabellen, Grafiken und natürlich Literaturangaben. Mit eben diesen drei Themen haben es Einsteiger erfahrungsgemäß schwer. Das liegt meiner Erfahrung nach weniger daran, dass es in LaTeX schwer wäre Tabellen oder Grafiken einzufügen, sondern eher daran, dass LaTeX eben nicht „clickybunty“ und „husch husch“ ist.
Fehlersuche und Versionierung
Mit zunehmender Projektgröße sollte man darüber nachdenken, die Arbeit unter Versionskontrolle zu halten. Was eignet sich dafür besser als git und GitHub. Dass in einem Einsteiger-Buch darauf hingewiesen wird, ist alles andere als selbstverständlich und meiner Meinung nach sehr löblich.
Gleiches gilt für die Fehlersuche. LaTeX ist nicht unbedingt bekannt dafür, besonders verständliche Fehlermeldungen auszuspucken. Dennoch lassen sich 85 % der Probleme mit einer simplen Google-Suche lösen. Sollte das nicht helfen kann immer noch tex.stackexchange.de (englisch) und texwelt.de (deutsch) gefragt werden.
Über den Autor
Image may be NSFW. Clik here to view.
Dr. Joachim Schlosser führt bei MathWorks europaweit Ingenieure, die Professoren, Lehrschaffende und Anwender von MATLAB & Simulink an Universitäten und Hochschulen beraten. Bloggt auf www.schlosser.info .
Auf seinem Blog ist er sehr aktiv und auch auf Twitter findet ihr ihn unter @schlosi.
Einschätzung
Ein Buch, dass auf knapp 300 Seiten LaTeX zu vermitteln versucht, kann nur eine Einführung sein. Genau diesen Anspruch hat „Wissenschaftliche Arbeiten schreiben mit LaTeX — Leitfaden für Einsteiger“ und dem wird es auch gerecht. Als unerfahren Leser hat man die Möglichkeit es schlicht durchzulesen, um einen Überblick zu erhalten. Anschließend kann man es aber dennoch als Referenz für die essentiellen Fragen des LaTeX-Alltags verwenden. Es eignet sich mit seiner breit gefächerten Themenwahl für jede Fachrichtung – egal ob Soziologie oder Biologie, Jura oder Mathematik.
Gewinnspiel
Ihr seid neugierig geworden und wollt LaTeX lernen? Dann habe ich noch eine gute Nachricht für euch. Wir verlosen 2 Exemplare von „Wissenschaftliche Arbeiten schreiben mit LaTeX“. Die Teilnahme ist einfach. Teilnehmen könnt ihr ganz einfach.
Retweete diesen Beitrag und folge (Bonus-Entry) mir auf Twitter.
Retweeten und gewinnen. "Wissenschaftliche Arbeiten schreiben mit LaTeX"
Folgen erhöht die Gewinnchance
#icancodehttp://t.co/mCOAL1mYYU
Du hast kein Twitter? Gar kein Problem, du kannst auch einfach hier unter dem Beitrag kommentieren.
Teilnahmeschluss ist Freitag der 28.08.15. Danach werden die Gewinner mit Hilfe von random.org ermittelt. Damit ich euch kontaktieren kann, stellt bitte sicher, dass ihr eine valide Email Adresse hinterlegt, wenn ihr hier auf dem Blog kommentiert.
Noch mehr Bücher gewinnen
Bock auf mehr Gewinnspiele? Wir verlosen immer mal wieder hochwertige Fachbücher von namenhaften Verlagen und Autoren. Um auf dem Laufenden zu bleiben, schau doch einfach auf unserer Facebook Seite vorbei.
Image may be NSFW. Clik here to view.
Das Cookie Law ist da. Keiner weiß so recht was es bezwecken soll aber es ist erstmal da. Sicherheit und so. Das kommt eben dabei raus, wenn Menschen die keine Ahnung vom Internet haben, versuchen es zu regulieren. Was ein Cookie ist und wie er reguliert wird, findet ihr übrigens im EU Internet Handbook
CookieOK
Ein paar clevere Menschen haben jetzt eine Browserextension zusammengehackt, die automatisch Cookies bestätigt. Der gemeine Aluhut wird jetzt wahrscheinlich direkt ohnmächtig vom Stuhl kippen aber ich find es GROßARTIG!!
Soeben hab ich mir Logbuch:Netzpolitik vom Chaos Computer Camp angehört. Das Titellied, „Cyber Cyber“ hat mich völlig fasziniert. Klingt gut, ist wahr, traurig, lustig und vieles mehr. Gruslig coole Kombination.
Das sitzt. Google hat gestern offiziell bekanntgegeben, dass Android Wear jetzt mit iPhones funktioniert. Damit ist Android Wear ein ernstzunehmender Konkurrent der Apple Watch. Image may be NSFW. Clik here to view.
Vorraussetzungen
Damit die Android Uhr mit dem iPhone kommunizieren kann, muss dieses mindestens iOS 8.2 haben. Mit dieser Version sind alle Smartphones ab iPhone 5 kompatibel. Schaut man sich eine Verteilung der iPhones an, kann man durchaus davon ausgehen, dass ein ziemlich großer Prozentsatz der Apple Kunden ein Android Wear kompatibles Smartphone haben.
Android Wear für iOS funktioniert aktuell nur mit der LG Watch Urbane*. Alle zukünftigen Uhren von namenhaften Herstellern wie Hauwei, Asus und Motorola sollen iOS aber auch unterstützen.
Funktionen
Notifications
Fitness tracking
Erinnerungen
Einen Seitenhieb konnte sich Google natürlich nicht verkneifen:
Android Wear features always-on displays, so you’ll never have to move your wrist to wake up your watch.
Ob die neuen Android Wear Uhren jetzt wirklich Konkurrenz für die Apple Watch sind, bleibt abzuwarten. Sie sind in der Regel günstiger und haben (meiner Meinung nach) eine wesentlich bessere Benutzeroberfläche. Dennoch fügen sie sich nicht perfekt in das Apple-Ökosystem ein, was vielen Nutzern ein Dornen im Auge sein wird – verständlicher Weise.
ISO 8601 ist ein internationaler Standard der ISO, der Empfehlungen über numerische Datumsformate und Zeitangaben enthält. (Wikipedia)
In einem Timestamp im ISO 8601 Format können alle wichtigen Informationen gespeichert werden. Leider kann das kein Mensch lesen – oder sagen wir einfach lesen.
ISO 8601
Normalerweise bekommt man einen ISO 8601 Timestamp als String – generell schon eine großartige Idee. Nicht.
Angenommen, wir haben irgendwo eine Variable mit dem Namen date, die das Datum im ISO 8601 Format hält. Dieses Datum wollen wir jetzt im Format 16:15 01.09.2015 – also HH:mm dd.MM.yyyy – haben.
public String getHumanReadableDate() {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
try {
Date unformatedDate = format.parse(date);
String formatedDate = new SimpleDateFormat("HH:mm dd.MM.yyyy")
.format(unformatedDate);
return formatedDate;
} catch (ParseException e){
Log.e(TAG, "getDate " + e.getMessage());
}
return date;
}
Ohne Exception geht es natürlich nicht. Als trycatch Block drum und auf geht. Da ich das im Android System benutze, verwende ich für den catch Block Log.e(). Sollte irgendwas schief gehen, wird der Ursprungsstring im ISO 8601 Format zurückgegeben.
Kotlin ist der neue Stern am Android Himmel – oder verspricht es jedenfalls zu werden. Syntaktisch erinnert es ein bisschen an Swift und auch der Umgang mit Optionals ist dem von Swift sehr ähnlich.
Von Entwurfsmustern hat wahrscheinlich jeder Programmierer schon mal gehört – oder sollte wenigstens davon gehört haben. Es handelt sich dabei um Schablonen, die wiederkehrende Muster aufgreifen und eine Art Best Practice darstellen. Dabei sind sie natürlich anpassbar und dienen der Wiederverwendbarkeit.
Im Gegensatz zu vielen anderen Dingen in der Softwareentwicklung zählen Entwurfsmuster nicht zu den sehr kurzlebigen Komponenten. Factory, Builder oder Singleton – sie alle existieren schon lange. Dennoch wurden sie weiterentwickelt und an die Eigenheiten der Programmiersprachen angepasst.
Image may be NSFW. Clik here to view.
Für wen ist das Buch?
Du musst das Rad nicht neu erfinden.
Den Satz hat jeder – egal ob in der Softwarebranche tätig oder nicht – wahrscheinlich schon mehrfach gehört. Aber ist diese Aussage wirklich korrekt? Hätten wir das Rad nicht mehrfach neu erfunden, würden wir wohl immer noch auf mehr oder weniger runden Steinrädern durch die Gegend fahren und nicht auf ultraleichten Alufelgen Geschwindigkeitsrekorde aufstellen. Gleiches gilt auch für die Softwarearchitektur, das Design und die Entwicklung.
Das Buch ist so geschrieben, dass es keine Rolle spielt, ob wir in C, C# oder Java entwickeln. Es geht darum, die grundlegenden Prinzipien der einzelnen Muster zu verstehen und diese an die jeweilige Situation anzupassen. Dabei kann es schon mal passieren, dass man als Nerd da steht, wenn man mit einer besonders cleveren Umsetzung eines Musters glänzen kann.
Der Einstieg
Was erwarte ich eigentlich von einem Buch, dass mir Entwurfsmuster beibringen will? Was sind Muster? Wie erkenne ich Muster? Wann verwende ich sie und natürlich wie wende ich sie an?
Kann „Entwurfsmuster – das umfassende Handbuch“ von Matthias Geirhos diese Fragen beantworten? Absolut. Auf gut 50 Seiten wird hier eine Basis geschaffen, mit der sehr gut gearbeitet werden kann. Diese Basis beinhaltet neben einer kurzen Einführung in die UML und einer Erklärung, was Entwurfsmuster sind bzw. was sie nicht sind auch eine Auffrischung der Grundlagen objektorientierter Entwicklung. In einer Welt aus Betriebsblinden kann das meiner Meinung nach absolut nicht schaden. Durch diesen breit gefächerten Einstieg eignet sich das Buch auch sehr gut für Einsteiger, die im Internet-Dschungel oft mit unnötig komplexen Erklärungen zu kämpfen haben.
Wer das Buch aufschlägt wird schnell feststellen, dass die Überschriften in deutscher Sprache sind. Auf den ersten Blick ist das verwirrend, sind doch gerade Entwickler englische Begriffe gewohnt. Dennoch kann ich die Entscheidung gut nachvollziehen. Gemischte Sprache ist auf Dauer sehr anstrengend. Der Steckbrief am Anfang jedes Musters schafft Klarheit über die Begrifflichkeiten und wer nach den englischen Begriffen sucht, wird im Index fündig. Bei einem Nachschlagewerk hätte ich mir dennoch gewünscht, die englischen Begriffe bereits im Inhaltsverzeichnis zu finden – diese sind es schließlich, die einem in freier Wildbahn begegnen.
Musterklassifiktion
Muster können in verschiedene Klassen unterteilt werden. So ist ein Singletonmuster beispielsweise in eine andere Kategorie einzuordnen, als eine MVC Muster. Um die Übersicht zu gewährleisten, teilt der Author die Muster in 6 Klassen ein.
Die Einteilung erleichtert nicht nur die Suche nach einem spezifischen Muster, sie birgt auch eine Erklärungskomponente. Hier werden Anwendungsbereiche abgesteckt, die direkt verhindern, dass eines der Muster an der falschen Stelle verwendet wird. Nicht selten sieht man Code, der völlig überladen ist mit Entwurfsmustern. Nicht weil sie an dieser Stelle sinnvoll wären, sondern weil man sie kann und dann auch anwenden will. So kann sich der Leser jetzt Fragen: „Erzeuge ich hier wirklich etwas?“ – und anschließend entscheiden, ob der Einsatz eines Factory Patterns sinnvoll ist oder nicht.
Auch für Fortgeschrittene
„Entwurfsmuster – Das umfassende Handbuch“ erklärt 37 Muster. Dabei können auch erfahrene Entwickler noch etwas lernen. Singletons sind ein sehr heikles Thema, besonders wenn es um Nebenläufigkeit und Threadsicherheit geht. Bisher war mir beispielsweise nicht bewusst, dass man Enums als Singleton missbrauchen kann. Diese Variante ist nicht nur sehr übersichtlich, sondern auch garantiert threadsicher.
Solche Alternativen werden zu fast jedem Pattern angeboten, wodurch es auch für erfahrenere Entwickler durchaus die Chance gibt etwas neues zu lernen oder wenigstens ein teiferes Verständnis um bestimmte Verhaltensweisen zu erhalten.
Beispiele und Erklärungen
Das Buch von Matthias Geirhos geizt wahrlich nicht mit Beispielen. Egal ob Snippets, Anwendungsbeispiele oder ganze Implementationen – es bleiben nahezu keine Fragen offen. Bei einem durchaus trockenen Thema wie Entwurfsmustern ist das eine beachtliche Leistung.
Die meisten Codebeispiele sind Java-Code. Die Art und Weise wie die geschweiften Klammern gesetzt werden, lässt dennoch einen C# Hintergrund des Autors vermuten, werden diese im Java-Umfeld doch häufiger in der selben Zeile gesetzt und nicht in der darauffolgenden.
//Java Code
public void saySomething(String fnord){
//Add some magic
}
//C# Code
public void saySomething(string fnord)
{
//Add some magic
}
Codestyle
Java vs. C#
Die C# Beispiele stehen auf der Verlagsseite zum Download bereit. Ein bisschen Schade finde ich, dass bei vielen if – else Blöcken – wahrscheinlich aus Platzgründen – auf die Klammerung verzichtet wurde. Das ist aber echt schon Meckern auf sehr hohem Niveau.
Design- und Entwicklungsprinzipien
So der Titel des letzten Kapitels. Es ist in meinen Augen ein sehr wertvolles Kapitel. Hier werden unter anderem Merkmale schlechten Designs, das SOLID Prinzip und verschiedene Anti-Patterns beschrieben. Spätestens diese letzten 70 Seiten machen das Buch zu einem Nachschlagewerk, dass sich seinen Untertitel „Das umfassende Handbuch“ wirklich verdient hat.
Über den Autor
Auf der Homepage des Verlags heißt es über den Autor:
Matthias Geirhos ist C#- und .NET-Spezialist. Seit vielen Jahren ist er als verantwortlicher Entwicklungsleiter für eine große Verlagsgruppe tätig. Er hat viel Erfahrung in der Entwicklung und im Management von Softwareprojekten. Seine Bücher zeichnen sich durch gutdurchdachte Konzepte und flotten Schreibstil aus.
Ein Blick in die Liste seiner Veröffentlichungen bestätigt meine anfängliche Vermutung, dass er aus dem C# Umfeld kommt. Besonders den „flotten Schreibstil“ muss ich hier nochmal unterstreichen. Selten habe ich bei einem Fachbuch so oft schmunzeln müssen, ohne dass es lächerlich wurde.
Das gilt übrigens auch für sein Buch IT-Projektmanagement, dass ich auch nur wärmstens empfehlen kann.
Fazit
„Entwurfsmuster – Das umfassende Handbuch“ ist alles anderes als ein Staubfänger im Regal. Vollgepackt mit wertvollem Wissen wird es wohl eher auf dem Schreibtisch liegen bleiben und gar nicht erst den Weg in ein Regal finden.
Das Buch hat den Titel „Das umfassende Handbuch“ absolut verdient. Auf 630 Seiten werden 37 Entwurfsmuster aus verschiedenen Winkeln beleuchtet und erklärt. Dabei wird großer Wert auf die Anwendbarkeit, mögliche Fallstricke , Best Practices und den Bezug zur Realität gelegt. Matthias Geirhos schafft es, auch Leser mit geringem Vorwissen so abzuholen, dass sie am Ende definitiv verstanden haben worum es geht. Dabei macht es seine lockere und teils humorvolle Darstellungsweise zu einem wahren Lesevergnügen.
Würde ich mir das Buch für schlanke 39,90 € kaufen? Definitiv. Würde ich das Buch weiterempfehlen? Unbedingt sogar.
Die Keynote ist noch in vollem Gange und ich falle von einer Ohnmacht in die nächste.
Halten wir kurz fest, was wir bis jetzt gelernt haben:
Gott hat die Erde auf einem iPadPro erschaffen.
So sieht jedenfalls der Trailer aus.
Dieser erinnert aber auch ein bisschen an das X-Phone.
iSurface
Oh, habe ich schon erwähnt, dass es ein smartes smart Cover für das smarte iPad Pro gibt? Das Cover hat auch eine smarte Tastatur mit dem Namen …. SMART KEYBOARD. Oh mein Gott! Als ich mich gerade fragen wollte: „Moment, das sieht ja irgendwie aus wie das Surface von Micro…“ steht da jemand von Microsoft auf der Bühne. Was zur?
Image may be NSFW. Clik here to view.
An dieser Stelle müssen wir noch mal kurz Splitscreen loben. Eine Erfindung des 21ten Jahrhunderts…
Image may be NSFW. Clik here to view.
3 Jahre alt
Konnte ja keiner ahnen, dass Cupertino das wirklich durchzieht
Apple Pencil
Image may be NSFW. Clik here to view.
Jetzt wirds ernst. Apple hat mal wieder was erfunden, was vorher noch nie dagewesen ist. Noch nie!! Einen Stift. Ja, ihr habt richtig gelesen, einen Stift. Und das beste, er kostet nur schlanke 99$. Schnapper! Der Stift hat übrigens einen Lightning Stecker. Das war immer mein feuchter Traum – Ein Stift mit Lightning Stecker. Jetzt kann ich in Ruhe sterben.
Oh. Das hat Steve Jobs übrigens mal zu Stiften gesagt:
iWii
Wenn wir schon am kopieren sind, dann kopieren wir auch richtig. Erinnert ihr euch an ein längliches Gerät, mit dem man vor dem Fernseher z.B. Baseball spielen konnte. Ich hab den Namen vergessen… irgendwas von Nintendo… ach ja, Nintendo TV. Ne, das ist falsch. iWii? Ne, dass war er auch nicht. Apple TV! Genau! Das wars. Kam mir doch gleich komisch vor.
Richtig dreist find ich eigentlich, dass es wieder alles die neusten, größten und besten Erfindungen sind. ALS OB!?
Crossy Roads Frogger
Hab ich ganz vergessen. Apple hat natürlich auch ein Spiel namens Crossy Roads Frogger auf seinem System, dass so innovativ und geil ist, dass sie es auf einer Keynote vorstellen müssen. Und der Oberhammer kommt erst noch: Man kann es zusammen spielen!! Das funktioniert über so eine Ding, dass sich Internet nennt. Keiner weiß so recht was es ist aber wahrscheinlich hat Apple das auch erfunden… #Neuland
Kotlin basiert auf der JVM und kann mit bestehenden Java Librarys verwendet werden. Dabei ist es natürlich nicht unbedingt trivial, die verschiedenen Ansätze der „Nullbarkeit“ zu vereinen. Einer der Ansätze die Jetbrains jetzt vorstellt ist flexible typing.
An Android entwickelt sich rasend schnell weiter. Mit Material Design kamen viele neue Features dazu und mit Android Studio steht den Entwicklern nun ein mächtiges Werkzeug zur Hand. Der Einstieg ist nicht immer einfach. Das nachfolgende Buch möchte euch den Einstieg erleichtern.
Für wen ist das Buch?
Android 5 Apps entwickeln mit Android Studio richtet sich an Menschen, für die App-Entwicklung noch Neuland ist. Dabei sind jedoch grundlegende Java-Kenntnisse vorausgesetzt. Ziel des Buches ist es, euch an die Hand zu nehmen und auf dem Weg von der Idee zur Veröffentlichung zu begleiten.
Wie der Titel schon sagt, geht es um Android 5 – auch bekannt unter Lollipop (API Level 21). Mit Lollipop wurde Material Design eingeführt, welches das Android System auf ein völlig neues Design-Level gehoben hat.
Themenauswahl
Thomas Künneth behandelt in seinem Buch eine breite Auswahl von Themen. Dabei wird auf Activities und Fragments, Telefonfunktionen und Sensoren, Datenbanken und die Verwaltung von Multimedia-Dateien eingegangen. Selbst ein kurzer Einblick in Android Wear erwartet euch. Mit der Einführung des Translation Editors und einiger anderer kleiner Tools seid ihr definitiv gewappnet für den Play Store.
Interessant ist auch die ausgiebige Erklärung des Broadcast Receivers. Dieser wird in vielen anderen Büchern vernachlässigt oder nur sehr kurz angerissen.
Beim Lesen bin ich leider auf keinerlei Hinweise zu den Support-Libraries gestoßen. Somit konnte ich nichts zu Card Views oder Recycler Views finden. Auch AppComapt und Co habe ich vermisst. API Level 21+ nimmt aktuell nur gut 20% des Marktes ein – da ist Abwärtskompatibilität sehr wichtig. Dadurch fehlen mir auch weitergehende Infos zu Gradle.
Beispiele
Mir persönlich sind gute Beispiele oft wichtiger, als eine amüsante Schreibweise des Fließtextes. Das Verhältnis von Code-Beispielen, Bildern/ Grafiken und Fließtext ist dem Autor sehr gut gelungen. Der Text ließt sich flüssig und die Beispiele sind sehr aussagekräftig.
Über den Autor
Thomas Künneth ist Android-Entwickler der ersten Stunde und arbeitet als Senior Consultant für die MATHEMA Software GmbH. Er hält regelmäßig Vorträge über Java, Android und Eclipse und hat bereits mehrere erfolgreiche Fachbücher und Zeitschriftenartikel verfasst.
Wer einen Einstieg in das Android System sucht und sich nicht mit veralteten Tutorials rumschlagen will, der wird hier fündig.
Gute Erklärungen und eine breite gefächerte Themenauswahl macht dieses Buch zum guten Leitfaden für Einsteiger.
Mit 34,90 € befindet es sich im guten Mittelfeld der Fachbücher und bietet viel fürs Geld.
„War ja klar, dass die Null Probleme machen wird…“ Klingt absurd, aber wer mit Nachnamen „Null“ heißt, macht sich im Internet schnell unbeliebt. Wenn auch unfreiwillig.
We have an employee whose last name is Null.
Wenn eine Frage auf StackOverflow schon so anfängt, kann es nur gute Antworten geben… und wir werden nicht entäuscht.
Image may be NSFW. Clik here to view.
Natürlich darf auch der XKCD Bezug nicht fehlen: Image may be NSFW. Clik here to view.
Natürlich gibt es auch ein kluges Workaround: Image may be NSFW. Clik here to view.
Wenn ich an ein Singleton denke, dann denke ich erstmal an etwas in der Art:
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (Singleton.instance == null) {
Singleton.instance = new Singleton();
}
return Singleton.instance;
}
}
getInstance() mit null-Check. Fertig. Wenn da nicht diese Nebenläufigkeit wäre. Um die geht es hier aber eigentlich nicht vordergründig. Habt ihr mal darüber nachgedacht, einen Enum für ein Singleton zu benutzen? Das könnte z.B. so aussehen.
public enum Singleton{
INSTANCE;
}
Ja ja, so einen Enum hat jeder schon mal gesehen. Der Clou: Enums können eben auch Methoden und Variablen halten. Durch die Implementierung von Enums sind diese nicht nur threadsicher, sie werden auch erst bei der ersten Verwendung erzeugt.
public enum Singleton{
INSTANCE;
private String value;
public void connect() {}
public String getValue() {}
}
Jeder kennt es, es sind noch drei Chrome-Tabs offen, die direkt anfangen zu spielen, wenn ich den Browser startet. Diese Tabs nun zu muten ist mühsam, auch wenn Chrome mittlerweile schon mit einem kleinen Lautsprecher auf die Tabs hinweißt, die krach machen. In den Chrome Einstellungen ist jedoch ein Feature versteckt, das euch diese Arbeit erleichtert.
Flags
In Chrome gibt es eine Menge versteckter Einstellungen. Die meisten davon findet ihr unter chrome://flags. So gibt es hier nun auch die Einstellung:
Enable tab audio muting UI control. Mac, Windows, Linux, Chrome OS
When enabled, the audio indicators in the tab strip double as tab audio mute controls. This also adds commands in the tab context menu for quickly muting multiple selected tabs. #enable-tab-audio-muting
Einfach aktivieren und anschließend den Browser neustarten.
Nicht alles was schon ein bisschen älter ist, ist automatisch überholt. High Performance MySQL – Optimierung, Datensicherung, Replikation & Lastverteilung von O’Reilly ist ein Buch, das ich mir schon immer mal genauer angucken wollte. Das Exemplar, das ich hier vor mir liegen habe, ist die deutsche Ausgabe der 2ten Auflage von 2009. Erschienen ist das Buch 2005. Vor 10 Jahren also. Verdammt alt für ein Buch, das sich mit IT beschäftigt.
Ich habe ja nun schon einige Rezensionen geschrieben aber diese hat mir einiges abverlangt. Das Buch ist so vollgestopft mit Wissen und nützlichen Hinweisen, dass eine Packung Post-Its nicht ausgereicht hat, um alles zu markieren.
Themen
Mit knapp 750 Seiten ist High Performance MySQL alles andere als ein Leichtgewicht. In 14 Kapiteln werden alle wichtigen Fragen geklärt, die es zu Datenbankoptimierung zu klären gibt. Unter anderem auch die Fragen, von denen ihr gar nicht wusstet, dass ihr sie habt. Dabei wird zuerst auf die MySQL-Architektur eingegangen und anschließend verschiedene Optimierungsstrategien vorgestellt.
So findet ihr im Buch unter anderem folgende Themen:
* Engpässe finden: Benchmarking und Profiling
* Schema-Optimierung und Indizierung
* Servereinstellungen optimieren
* Skalierung und Hochverfügbarkeit
* Backup und Wiederherstellung
* Sicherheit
* Werkzeuge für High Performance
Image may be NSFW. Clik here to view.
Überholt oder Überholen
MySQL entwickelt sich nur sehr langsam weiter. Nicht um sonst erfreut sich MariaDB mittlerweile großer Beliebtheit. Dennoch ist das Buch alles andere als überholt. Viele der Techniken helfen euch auch heute noch eure Datenbank zu optimieren. Dabei handelt es sich vorrangig um essentielles Verständnis von Optimierungsstrategien und den Umgang mit MySQL. Die zweite Auflage ist jedoch auch schon 6 Jahre alt und kann damit nicht als top-aktuell bezeichnet werden.
Kaufempfehlung?
Absolut. Warum? Weil sowohl die Ideen der Datenbankoptimierung in Hinsicht auf Datensicherung, Repilkation und Lastverteilung besprochen werden, als auch wichtige, praktikable und durchaus noch aktuelle Techniken und Methoden vorgestellt werden, wie diese Optimierungen durchgeführt werden können. Das Buch könnt ihr super als Nachschlagewerk verwenden. Da habt ihr definitiv noch lange was von.
Das Buch ist mit 49,90 € zugegeben nicht ganz billig – aber definitiv eine Überlegung wert. 2012 ist übrigens die 3te Auflage in englischer Sprache erschienen. Vielleicht ist es ganz sinnvoll noch ein bisschen zu warten und sich diese Auflage zu gönnen, sobald sie auf deutsch erscheint.
Das Wintersemester hat angefangen und damit auch jede Menge Kurse, Tutorien Seminare und Uni-Projekte, die kollaboratives Arbeiten erfordern oder verlangen. Git eignet sich hervorragend für solche Projekte.
Durch sein schlankes Commandozeilen Interface oder grafische Anwendungen wie SourceTree ist git leicht zu handhaben. Obwohl es relativ simpel ist, sieht der alltag im Umgang mit diesem Versionierungssystem eher so aus:
Um zu lernen, wie man mit git umgeht reicht es nicht, mal eben ein Buch darüber zu lesen. Genau wie beim Programmieren hilft hier nur „learning by doing“.
Try Github
Eine der praktischsten Einführungen stellt GitHub zur Verfügung. Auf try.github.io werdet ihr in einer virtuellen, interaktiven Shell ein Mal quer durch alle Funktionen geführt – ohne euer eigenes System vollzumüllen. GitHub selbst wirbt damit, dass man git in 15 Minuten lernt. Das sei jetzt mal dahingestellt. Fakt ist: wenn ihr den Kurs 2 – 3 Mal gemacht habt, dann habt ihr alles wichtige gelernt, um eure eigenen Projekte mit git zu machen.
Learn Git Branching
GitHub ist im Grunde der Spielplatz der Leute, die richtig was vom Coden verstehen. Einer davon ist Peter Cottle. Ihm verdanken wir LearnGitBranching. Bei diesem Interaktiven Branching Spielplatz habt ihr die Möglichkeit euch völlig auszutoben. Image may be NSFW. Clik here to view.
Hier habt ihr auch die Chance mal im Sandkasten auszuprobieren, wie das eigentlich mit dem merge und dem rebase ist. Das Tool eigent sich übrigens auch Prima, um Workflows zu testen.
Tutorials von GitTower
GitTower ist ein grafisches Tool ähnlich wie SourceTree. Auf der Homepage der Entwickler gibt es viele praktische Hinweise, ein kostenloses eBook, CheatSheets und mehr als 20 Video Tutorials. Definitiv einen Abstecher Wert.
Become a git guru
Wo wir gerade bei GitTower waren. Von den Machern von SourceTree gibt es da auch noch was. Dabei handelt es sich zufällig um Atlassian, die kennt man von Projekten wie JIRA, HipChat und BitBucket. Ihr Tutorial Sammlung ist beachtlich. Die Git Tutorials findet ihr hier: Atlassian Git Tutorials
Objektorientierte Programmierung (OOP) ist mittlerweile state of the art in der Softwareentwicklung. Sei es Vererbung, Kapselung oder Schnittstellen – wer etwas mit Software macht, kennt diese Stichworte und sollte sie verinnerlicht haben.
Objektorientierte Programmierung – Das umfassende Handbuch ist das neueste Werk aus dem Rheinwerk Verlag. Ein umfassendes Handbuch für ein Thema wie OOP zu schreiben ist eine große Aufgabe, der sich die Autoren Bernhard Lahres, Gregor Raýman und Stefan Strich angenommen haben. Ob sie diese Aufgabe gemeistert haben, werden wir sehen.
Inhalt des Buches
Zuerst die harten Fakten: Das Buch hat 10 Kapitel und 688 Seiten. Dabei sind alle wichtigen Themen der Objektorientierung abgedeckt. Natürlich sind offensichtliche Punkte wie Datenkapselung, Vererbung und Polymorphie vorhanden.
Weitere Themen sind:
Dabei schaffen es die Autoren, ein theorielastiges Thema auf eine leichtverständliche, humorvolle Art und Weise zu verpacken – natürlich ohne dabei ins Lächerliche abzurutschen. Die Schreibweise erleichtert das Folgen und verhindert, dass der Leser schnell gelangweilt ist. Selten habe ich ein Fachbuch so ungern weg gelegt wie dieses. Wer diesen Schreibstil mag, dem empfehle ich auch dringend Entwurfsmuster – Das umfassende Handbuch. Dieses fügt sich nicht nur perfekt ins Thema OOP ein, sondern ist auch eine wahre Lesefreude.
Besonderheiten
Objektorientierte Programmierung ist ein Thema, das von vielen Sprachen berücksichtigt wird – wenn auch auf ihre eigene Art und Weise. Das Buch liefert Beispiele in den Sprachen Java, C++, JavaScript, Ruby, C# und Python. Damit nimmt es sich all den Sprachen an, die zu den aktuellen OO-Sprachen zählen. Das der Leser mit allen Sprachen vertraut ist, bezweifle ich mal. Unter den meisten Beispielen steht zwar drunter, um welche Sprache es sich handelt, dennoch empfand ich es teilweise verwirrend, ständig zwischen den Sprachen zu wechseln. Wie oben schon erwähnt, verwenden die unterschiedliche Sprachen die einzelnen Elemente auf ihre eigene Art und Weise, wodurch es notwendig ist, mehr als nur eine Sprache zu betrachten.
Eine weitere Besonderheit sind die Diskussionen der Autoren. Diskussionen in einem Buch klingen zunächst einmal grenzwertig. Dabei handelt es sich um Einschübe, in denen die Autoren – jeweils mit Namen markierte – ihre Meinung zu gewissen Aspekten des Buchs kundtun. Damit liefern sie sehr wertvolle Denkanstöße, die besonders Anfängern einen weiteren Blickwinkel eröffnen.
Fazit
Objektorientierte Programmierung – Das umfassende Handbuch ist das Buch, das ich mir vor 6 Jahren gewünscht hätte, als ich als Ersti in meiner ersten Informatikvorlesung gesessen habe. Die Erklärungen sind besser und die Beispiele hilfreicher als in meiner Vorlesung. Das Semester hat gerade begonnen und Weihnachten steht vor der Tür. Wer also noch Platz auf dem Wunschzettel oder ein bisschen Geld übrig hat, der sollte sich das Buch unbedingt zulegen. Tut euch selbst was Gutes – lernt ordentlich Programmieren. Und ganz nebenbei verhelft ihr den Autoren auch zu ein bisschen Ruhm und Reichtum – verdient haben sie es.