Google Play Music – All inclusive

Seit heute ist Google Play als kommerzieller Streamingdienst mit dem Angebot „all inclusive“ in Deutschland verfügbar.
Wie an verschiedenen Stellen im Netz zu lesen ist, setzt Google vor allem auf die nahtlohse Integration in Android und das dadurch „optimale Benutzererlebnis“.
Die technischen Merkmale (>20 Mio. verfügbare Songs, Streamingqualität, etc. ) sind vergleichbar zu Spotify und anderen Diensten und lockt für schnellentschlossende mit einem Angebotspreis von 7,99 € pro Monat. Verglichen mit den 9,99 €, die Spotify haben möchte, ist das ein gutes Angebot.

Mich stört leider schon einige Zeit an der Google Play Music App, dass dort sämtliche auf dem Greät abgespeicherten Audiofiles in die lokale Bibliothek aufgenommen werden – also auch die Podcasts, die BeyondPod für mich herunterlädt. Bei der Zufälligen Wiedergabe ist es dann störend, wenn auf das Lieblingsstück eine Podcastepisode folgt, obwohl ich statt Gequatsche gerade lieber Musik hören möchte.

Natürlich bin ich mit diesem Problem nicht alleine auf der Welt, doch auch die auf Stackexchange (http://android.stackexchange.com/questions/37490/how-do-you-prevent-google-music-from-importing-all-mp3-files-on-the-device) beschriebene Lösung unter verwendung von .nomedia Dateien hilft leider nicht.
Der direkteste Weg, eine .nomedia Datei in einem Verzeichnis auf Android zu erstellen, scheint übrigens die Terminal App zu sein. Verschiedene Dateimanager und Der Zugriff via USB Kabel vom Computer führten zu .nomedia.txt und .nomedia.c Dateien >:-| Spart euch den Umweg,falls ihr es versucht. Terminal App, ins entsprechende Verzeichnis wechseln und folgenden Befehl eingeben:

touch .nomedia

Aber ob es nun auf diesem Wege funktioniert oder nicht – viel zu umständlich auf jeden Fall. Schade, dass ich nicht in Google Music selbst gezielt Verzeichnisse ausschliessen kann. An diesem Punkt hat die Google Play Music definitiv Nachholbedarf :)

Angesehen von diesem Manko macht die Play Music und die dazugehörige App einen guten Eindruck, die Zufallswiedergabe funktioniert gut und die Radiofunktion liefert einen guten Mix zum gewählen Genre.

Die Verfügbarkeit des Streamingdienst kann vielleicht noch ein interessantes Kriterium sein, wenn ich mir überlege, ob Spotify oder Google Music: Spotify-Clients gibt es auf sehr viel mehr Plattformen und Geräten – sogar auf meinem Fernseher, der mit seinen Mediafähigkeiten den Mini-PC als Medienabspielgerät abgelöst hat.

6. Dezember 2013 · Android, Mobile, NetFeed, Software 0 Kommentare

ZSH: Kommandos aus der Historie ausschliessen

Gerade eben ein super Feature der ZSH (für alle die es noch nicht kennen: ZSH ist zusammen mit oh-my-zsh die Kommandozeile) entdeckt:


HIST_IGNORE_SPACE: Durch ein vorangestelltes Leerzeichen verhindern, dass ein Kommando in der Historie gespeichert wird

Have fun :)

6. Dezember 2013 · Linux, Software 0 Kommentare

JellyBean (Android 4.3) für Samsung Galaxy S3 im Anflug

Gute Neuigkeit via allaboutsamsung.de :-) :

Samsung setzt Android 4.3 Update für Galaxy S III fort – noch nicht in Deutschland, aber die Schweiz anscheinend schon :) Mal sehen, wann ‚was kommt.

5. Dezember 2013 · Android, Mobile 0 Kommentare

Google Play Guthabenkarte

oder: Gründe, einen Raspberry Pi in einen WLAN-VPN-Router zu verwandeln.

Da sind sie nun also erhältlich und endlich gibt es auch für Leute ohne Kreditkarte, die Möglichkeit im Android-Appstore aka Google Play kostenpflichtige Apps (und andere Inhalte) zu erwerben.

Nachdem ich die lang erwarteten Karten dann auch im Rewe in Weil am Rhein entdeckt habe, wollte ich es wissen und habe eine gekauft.

Erste Erkenntnisse:

  • Es reicht nicht ein „deutsches“ Google Konto zu haben (in Deutschland / über dt. Netz erstellt, deutsche Rechnungsadresse, etc., Gerät aus dt. Handel), sondern man scheint sich auch zum Einlösen der Karte in Deutschland aufhalten zu müssen. Verbindet sich das Gerät z.B. über einen schweizer Internetprovider zu Google Play, erscheint die Meldung „Guthabenkarten sind in Deinem Land nicht verfügbar“.
  • Über VPN eine dt. Internetverbindung zu simulieren schlägt leider auch fehl. Weder direkt auf dem Gerät VPN zu benutzen, noch über einen „VPN-enabled-Hotspot“ eines zweiten Android-Handy zu gehen, führt zum Erfolg. Bei der ersten Variante beendet sich Google Play kommentarlos, bei der zweiten meldet es lapidar „keine Verbindung“. Letzteres ist damit zu erklären, dass es mit Android anscheinend „per default“ nicht möglich ist, eine VPN Verbindung per WLAN Tethering zu teilen. :-(

Da der Ansatz, ein VPN zu benutzen, der vielversprechendste zu sein schien, habe ich als nächsten Schritt versucht, einen „WiFi-to-VPN“ Router zu konfigurieren. Bei den beiden naheliegenden Variante, direkt über die GUI Tools der beiden gerade verfügbaren Desktop Systeme hier, schlug leider fehl. MacOS ist der Meinung, eine freigegebene Internetverbindung lieber an der etablierten VPN Verbindung vorbei direkt über die Ethernetverbindung zu routen. Das Kubuntu System scheiterte an der hardwareseitigen Unterstützung des WLAN Moduls im Dell Latitude E6410 für den AccessPoint Modus – Intel-Chipsätze sind hier nicht so gesegnet.

Also auf zur nächsten Stufe: Den Raspberry Pi in einen Wifi Access-Point und VPN-Router verwandeln. Die grundsätzlichen Schritte sind auf e-linux-org: RPI-Wireless-Hotspot gut erklärt.
Eine Hürde stellte noch mein WiFI-Dongle dar (LogiLink WL0084A mit RealTek RTL8192CU Chipsatz), der nicht direkt durch hostapd (das softwareseitig den Access-Point bereistellt) unterstützt wird. Zum Glück findet sich auch hierfür im Internet Abhilfe (Raspberry Pi Access Point using RTL8192cu), wobei mich die schnelle Lösung, einfach ein Binary aus einer DropBox Freigabe herunterzuladen schon hat stutzen lassen. Es gibt definitiv vertrauenswürdigere Quellen. Wenn man vorhat den RaspberryPi in sein normales Netzwerk zu integrieren ist diese Variante definitiv nicht zu empfehlen.

Während des weiteren Feintuning bin ich dann noch über ein Tutorial gestolpert, dass auch den von mir genutzten WiFi Adapter bzw. Treiber nutzt und ebenfalls einen binär-Downlaod für das gepatchte hostapd verlinkt: http://learn.adafruit.com/downloads/pdf/setting-up-a-raspberry-pi-as-a-wifi-access-point.pdf
Auf Seite 22 wird dort auch erklärt, wie man die neue Version aus den Quellen kompiliert – und man damit die change hat, nachzuvollziehen worin die Änderungen bestehen und Sicherheitsbedenken ausräumen kann.

Nachdem wir nun also einen Access Point zur Verfügung haben, der uns an einem „deutschen Internetanschluss“ ins Internet leitet, sollte doch hoffentlich alles gegessen sein.
Soweit die Theorie :) Denn Google Play zeigt auf dem „Zielgerät“ das gleiche Verhalten wie schon zu Anfang – es beendet sich kommentarlos wieder. Auf einem anderen Gerät werden zwar die Preise in Euro angezeigt (sicheres Zeichen dafür, das Play zumindest nicht mehr meint, wir wären in CH), aber es fehlt der „Einlösen“ Menüpunkt.

Alternativ bleibt noch der Weg über die Website https://play.google.com/store. Also über einen normalen Desktop & Browser und VPN dort eingeloggt und sehen wir den ersehnten „Einlösen“ Button. Wenige Schritte später erscheint die Bestätigung, dass
das Guthaben dem Konto gutgeschrieben wurde. Klar hätte man diesen Weg von Anfang an gehen können, aber dann hätten wir den Spass mit dem Pi ja nicht gehabt und jetzt keinen WiFi-VPN ROuter zur Hand, der Sicher auch an anderer Stelle nützlich sein kann :)

Den Kauf der ersten App vollziehen wir dann ohne VPN – ohne Probleme. Der angezeigte CHF Kurs wird in Euro umgerechnet und wie erwartet mit dem zuvor zugebuchten Guthaben verrechnet :-)

Abschliessende Erkenntnis:

Hat man dann mal Guthaben auf seinem Konto, scheint es wiederrum egal zu sein, wo man sich aufhält – Apps und andere Inhalte kann man dann einfach von diesem Guthaben bezahlen.

Also, viel Spass jetzt auch ohne Kreditkarte im Play Store :)

P.S.: Über andere Probleme mit international genutzen Google Konten und den Guthabenkarten weiss der Blog stadt-bremerhavenzu berichten: Guthabenkarten nur mit dt. Adresse nutzbar.

28. Juli 2013 · Android, Linux 0 Kommentare

Sprachkurisositäten

Jemals über komische Sprach“features“ in Programmiersprachen gewundert? Oder über Kurisositäten geärgert?

Hier findet sich eine wunderbare Sammlung, gut um einfach mal zu lachen oder sich zu beruhigen, das die Absurdität in Sprache X, über die man sich gerade geärgert hat doch relativ harmlos ist ;-) :

http://stackoverflow.com/questions/1995113/strangest-language-feature

Viel Spaß :-)

12. Juni 2013 · Pick, Software, Work 0 Kommentare

Route aus Google Maps exportieren

Der Blogpost Google Maps – Route speichern erfreut sich immernoch grosser Beliebtheit, aber leider funktionier die Anleitung / der Trick (anfügen von &output=kml an die URL) nicht mehr . Also ein kurzes Update.

Man muss jetzt den Umweg über die „My Maps“ (Meine Karten) seines Google Profil gehen:

Nachdem man also eine Route zusammengestellt hat, wählt man am Ende der Liste der Stationen der Route am linken Bildschirmrand „Save to My Maps“ . Danach erscheint das im ersten Bild gezeigte Miniformular, in dem man eine existierende Karte oder das Hinzufügen einer neuen Karte („Other…“) auswählen kann.

save_to_mymaps_step1

Nachdem man hier uf „Speichern“ geklickt hat, gelangt man zur im zweiten Bild gezeigten Ansicht und findet dort den Link zum Herunterladen des KML, das die Route enthält:

save_to_mymaps_step2

Viel Spass beim Weiterverarbeiten der Routen :)

3. Juni 2013 · NetFeed 3 Kommentare

Wir sterben alle.

Bei Zen Pencils gibt es diese Woche einen wirklich guten Comic mit dem Titel „We’re all dying“.

Sehr „tiefes“, philosophisches Thema, dass dort aufgehangen an einem Zitat aus How To Be a Woman von Caitlin Moran aufgegriffen wird.

Lesenswert und genial illustiert. ;-)

25. Mai 2013 · NetFeed, Pick 0 Kommentare

AfterburnerDolphin – Effective enterprise JavaFX development

Der folgende Post ist ein Cross-Post zum Canoo RIA Blog und daher auf englisch. Es geht um die Verknüpfung von OpenDolphin und Afterburner.fx – also um Java und Softwareentwicklung. ;-)

OpenDolphin

During the last JavaOne, Canoo announced the open sourcing of Dolphin.
OpenDolphin is a library that provides a remoting solution to bridge the world of Enterprise Java and Desktop Java or other client technologies (mobile, web).

Since then, a lot has happened around OpenDolphin and it keeps gaining more and more attention.
For me personally, it was from the first time I heard of it a very interesting project, but due to daily business and other projects I didn’t have the time to get into it.
Using JavaFx as the first client technology to be implemented was also a little hurdle as I haven’t done any serious work with JavaFX, yet.
(Besides, there is an JS implementation of OpenDolphin – it proves that OpenDolphin doesn’t tie you to a client UI technology.) But now, I’ve finally found some time to play with JavaFx and OpenDolphin ;-).

Afterburner.fx

As I attended to Adam Bien’s Airhacks Workshops in March, he introduced the Afterburner.fx mini-framework to the audience and released it a few days later.

Afterburner.fx is a minimalistic MVP framework for JavaFX that provides
„Zero-Configuration“ dependency injection (DI) of models and services
and
Convention-based unification of presenter, view, FXML and css.

ScenceBuilder

Thus it enables the usage of the JavaFX scene builder (a UI design tool) to implement a clear seperation of layout and logic (as the layout is encapsulted in the xml). In his talk „Enterprise JavaFX 8“ Adam describes it as an implementation of „inversion of control“.
The outcome is a very powerful set of lightweight technologies to build JavaFx applications.

The wiring between the UI XML and the code a pretty minimal. On the one hand, in XML, you just need to define the controller class:

<AnchorPane id="AnchorPane" ... fx:controller="de.mynethome.presentation.DemoPresenter">

And optionally, event handler methods can also be set via XML with

<Button ... fx:id="button" onAction="#buttonClicked"  />

In the code, the UI components get injected by the @FXML annotation and the name used as fx:id :

  @FXML
  Button button;

Combine the power

My idea on the moment I saw it was to bring those two projects together to benefit from the features of both projects:

  • A clean and easy way to create the UI and build up the client
  • a powerful and non the less easy to use library for client-server communication and clear speration between logic on the server-side and UI-related code on the client with open-dolphin.

AfterburnerDolphin

You can find the outcome of this idea at my AfterburnerDolphin project at github.

It demonstrates the things mentioned above:

client structure

In the client module, you can find a clearly structured app, the design and layout clearly seperated (as extracted to xml and css files) from the logic (look at the App class and the DemoPresenter).

It’s all tied together via DI and convention-based confguration of afterburner.fx .

The client creates a PresentationModel and binds the button text value to the value of that model.
(DemoPresenter, Line 43)

  public void initialize(URL location, ResourceBundle res){
    JFXBinder.bind(ATT_ATTR_ID).of(textAttributeModel).to("text").of(button);
  }

On a button click, the client communicates via OpenDolphin with the server (server module, ApplicationAction) where the command for a new value (current date) of the presentation model’s attribute is created and send as a response.

(ApplicationAction, Line 17)

actionRegistry.register(ApplicationConstants.COMMAND_ID, new CommandHandler<Command>() {
            public void handleCommand(Command command, List<Command> response) {
              ValueChangedCommand valueChangedCommand = new ValueChangedCommand();
              long id = getServerDolphin().getAt(PM_APP).getAt(ATT_ATTR_ID).getId();
              valueChangedCommand.setAttributeId(id);
              valueChangedCommand.setNewValue(new Date());
              response.add(valueChangedCommand);
            }
        });

That demonstrates how easy this set of technologies lets you set up a well structured multi-tier application ;-) and implement a roundtrip between client and server.

Any business logic can be handled on the server, the client only need to implement the presentation. And the implementation and maintenance of the client UI is eased up by the clear structure implemented with the help of afterburner.fx .

The UI of this sample application is very simple, as you can see from the screen shot – before and after click on the button. The date used as die new button text is set on server side.

demo-beforeclickdemo-afterclick

Conclusion

I think, the combination of AfterBurner.fx and OpenDolphin provides a very powerful featureset.
At first, it’s easy and quick to setup and design UI Layout with Scence Builder.
After that, AfterBurner.fx and OpenDolphin allow you to build an application with clear, distinct seperation between layers:

  • UI layout (in XML)
  • UI logic (in client code)
  • Business Logic (and more) (in server code)

You can be up and running very quickly with a short time to initiate application development. With the clear seperation, I would expected the setup to provide the foundation for a very maintainable project.
And with OpenDolphin you protect your investment as you can very quickly provide an multi-channel application (providing an mobile app UI based on the already developed server code) or switch to another UI technology and reuse the business logic implemented on server side.

Further steps

Fork AfterburnerDolphin on github.

Find out more about Afterburner.fx, visit the Afterburner.fx Homepage.

Get more information on OpenDolphin with the OpenDolphin documentation.
Or look at the OpenDolphin videos on youtube.

17. Mai 2013 · Software, Work 0 Kommentare

Google Reader Shutdown – was man daraus lernen kann

Ein lesenswerter Kommentar über den Wert und die Wichtigkeit frei verfügbarer Schnittstellen und Formate und den negativen Effekt, den geschlossene Dienste haben, aufgehangen am „Shutdown“ des Google Readers:

http://www.marco.org/2013/03/19/free-works

Die zentrale Aussage wird nochmal zusammengefasst mit den Worten:

And we lucked out with Reader — imagine how much worse it would be if website owners weren’t publishing open RSS feeds for anyone to fetch and process, but were instead posting each item to a proprietary Google API. We’d have almost no chance of building a successful alternative.

That’s Twitter, Facebook, and Google+. (Does the shutdown make more sense now?)

Auch zeigt das Statement sehr deutlich, warum es immer noch Sinn ergibt, ein eigenes Blog oder eine eigene Bildergalerie zu pflegen und nicht alles einfach via G+, Facebook und Twitter zu machen. Denn dort sind es nur Beiträge in einem grossen System, über das Ihr keine Kontrolle (und zum Teil auch weniger Rechte) habt.

Übrigens wurde in der letzten Binärgewitter Folge auch über das Ende des Google Reader gesprochen, in den Shownotes finden sich also ein paar Hinweise auf Alternativen.

20. März 2013 · NetFeed, Software, WebWork 0 Kommentare

Fix-It: Spotify – 30 Tage Premium aktivieren

Falls noch jemand fast daran verzweifelt, die 30 Tage Premium Test-Periode zu aktivieren, hier ein kleiner Tipp.

Kurz zum Kontext: Spotify ist ein Musik-Streaming-Dienst, bei dem man per Computer, Tablet oder Smartphone auf eine unermessliche Musikauswahl zurückgreifen kann. Für werbefreies Hören werden per Computer 5 € / Monat fällig, wenn man auch unterwegs oder auch einfach zuhause per Smartphone oder Tablet hören möchte, braucht man den „Premium“ Zugang, für den 9,99 € fällig werden.
Streaming-Dienste bewegen sich zur Zeit im wesentlichen im der gleichen Preis-Liga, so dass man z.B. bei Simfy und Napster in etwa das gleiche für ähnliche Beträge bekommt.

Da man nach Möglichkeit nicht einfach mal kurz 9,99 € zum ausprobieren ausgeben möchte (schließlich könnte man sich davon auch eine CD kaufen – zwar „nur“ eine, aber die gehört einem dann wenigstens und geht nicht weg wenn man das Abo kündigt, aber das ist einen eigenen Post wert…), wird ein 30 Tage-Test angeboten.

Geht man nun nicht direkt den Weg über die Website, sondern registiert sich nach Installation der App auf Telefon oder Tablet (selbstverständlich zum Test ersteinmal ohne Facebook-Verknüpfung) und versucht erst später, per Login auf der Website den 30 Tage Test zu aktualisieren, kann man in die komische Situation kommen, dass man zwar noch eine Zahlungsmethode auswählen darf, danach aber nur noch „Loading data…“ sieht…und vergeblich auf das Laden des Kreditkartenformulars etc. wartet.

Des Rätsels Lösung ist nun, dass man sich zurück in seine Kontoeinstellungen hangeln muss und dort unbedingt eine gültige Postleitzahl (im erlebten Fall hatte sich dort beim Anmelden via App eine simple „1“ eingetragen) und ein passendes Geburtsdatum eintragen sollte. Ist das geschehen, klappt es auch endlich mit dem Formular für die Zahlungsdaten und man kann erstmal 30 Tage testen :-)

(Aber nicht vergessen, die Erinnerung für die pünktliche Kündigung in den Kalender zu setzen – damit man wenn, dann doch bewusst für Spotify zahlt und nicht erstmal 10 € los ist, bevor man merkt dass man da was ausprobiert hatte… ;-) )

Viel Spass beim Musik hören und stöbern! :)

22. Februar 2013 · Mobile, NetFeed, Software 0 Kommentare

mynethome.de wird erstellt mit WordPress
Beiträge (RSS) und Kommentare (RSS)

(c) 2005 - 2026 Markus Schlichting - Mastodon