knuspermagier.de
Er bloggt noch? Krass!

How to fix Xdebug, Virtual Machines and PHPStorm.

I'll confess: I'm a var_dump-debugger.

But sometimes it comes in really handy to have a real debugger at hand. Unfortunately it took me some time to figure out what I need to do to allow the Xdebug in my virtual environment to talk to PHPStorm. There are a lot of tutorials, but all I read miss one critical thing:

ssh -R 10000:localhost:10000 vagrant@funnyvagrantvm.local

Yes. Assuming your xdebug.remote_port is 10000, you'll have to open a SSH tunnel from your host machine to your virtual machine. (Maybe you don't need this if you configured your VM in a more open way, then all the other tutorials may be enough.)

Bonus content: My xdebug.ini:

zend_extension=xdebug.so
xdebug.remote_enable = 1
xdebug.remote_connect_back = 0
xdebug.remote_port = 10000
xdebug.remote_autostart = 1
xdebug.idekey = phpstorm
xdebug.max_nesting_level = 250

Especially xdebug.remote_autostart is nice when you need to debug your integration tests that test against your HTTP API.

Die große Auswertung der großen knuspermagier.de Leserumfrage 2015

Die große Leserumfrage, die ich letzte Woche startete, fand erfreulicherweise rege Beteiligung. Ohne viel Reden hier die Auswertung der insgesamt 61 Antworten:

Screen-Shot-2015-06-21-at-15.16.52.png

Danke für die Antworten!

RSS scheint also, zumindest was meinen Blog angeht, noch nicht besonders tot zu sein. Vielleicht sollte ich auch mal wieder versuchen einen RSS-Reader zu benutzen.

Die große knuspermagier.de Leserumfrage 2015

photo.jpg

Hallo liebe Leser,

seit langem beschäftigt mich die Frage, wie ihr euch eigentlich über neue Beiträge in diesem Blog benachrichtigen lasst. Wie wir alle wissen ist RSS ja tot. Wenn ich ab und zu hier mal was umbaue, dann vergesse ich zum Beispiel oft, dass es im Feed dann vielleicht kaputt ist, weiß aber am Ende auch nicht wie wichtig das jetzt ist.

Daher nun die große Umfrage:

Wie checkt ihr archiv.knuspermagier.de?

  • Per RSS-Feed. Oldschool!
  • Per Twitter!
  • Per Facebook
  • Ich gehe in unregelmäßigen Abständen auf archiv.knuspermagier.de und gucke, ob's was neues gibt
  • Ich habe den archiv.knuspermagier.de Brieftauben-Service abonniert
  • Ich lese diesen Blog nicht und kam nur durch die Suchanfrage "RSS ist tot Brieftauben" auf diesen Blogpost

Bitte kommentiert! (Oder schreibt mir bei Twitter oder eine E-Mail)

Startup Weekend 2015

2015-05-31_143417.jpg

Das letzte Wochenende verbrachten wir zu großen Teilen auf dem Startup Weekend. Gemeinsam mit Flo, Pablo und Hannah baute ich dort album up, ein kleines Tool für Dropbox-affine Fotografen.

Der aktuelle Stand ist natürlich noch nicht komplett fertig und benutzbar, wir werden es aber in den nächsten Wochen gemeinsam weiterbauen.

Einen etwas ausführlicheren Bericht findet ihr in Hannahs Blog, oder in der aktuellen Spezial-Folge von uswief.

Des Öfteren werde ich gefragt, wann ich denn mal wieder etwas über Serien schreibe. Ich finde das immer ziemlich komisch, denn wann schrieb ich denn hier groß mal was über Serien? Ich schrieb mal einen Abschiedspost zu House, das war es dann aber auch.

Naja. Ich würde auf jeden Fall gerne den Wünschen nachkommen, das Problem ist aber, dass ich das einfach nicht kann, weil ich kein großer Review-Schreiber bin. Ich habe keine Lust mir Notizen zu machen und bis ich eine Serie fertig habe, habe ich das meiste auch schon wieder vergessen.

Das Einzige, was ich vielleicht schaffe ist ein kurzer Zweizeiler, wie etwa:

Schaute gestern Daredevil fertig. Dreizehn sehr gute Folgen, die allerdings teilweise ganz schön brutal werden. Freue mich auf die nächste Staffel und kann es uneingeschränkt empfehlen.

Trying WatchKit (1)

Yes, I’m a bit late to the game but last weekend I decided to finally get in touch with WatchKit. My first project will be developing an App for Better, the (still unreleased) spendings tracking app I talked about multiple times.

Goal

My goal is to have a quicker way to add spendings. Open the app, choose the category and the amount, done. Also I want to have a glance that shows the total amount of the current month.

First steps

Adding a WatchKit component to your app is quite easy as Xcode does provide a nice template. I immediately switched to Interfacebuilder and added a WKTableView for the categories to the first controller.

I added some mock data to the generated InterfaceController.m and ran the App for the first time. Success! That went easier than expected.

My next challenge was to find out how to get the data flowing between the iPhone and the Watch. At first I tried to get MMWormhole to work. I followed the instructions and created App Groups and Entitlements and stuff, but it still wasn’t doing anything.

watch1.png

One roundtrip to StackOverflow later I discovered [WKInterfaceController openParentApplication:reply:] which seemed to be good enough for my use case. Unfortunately it did not work either.

Well, the problem was that the data that should be transferred must comply to the NSCopying protocol. Of course. How could I forget this?

Very unlike me I directly used the method that gets some models from Core Data to produce the data that’s transferred to the app. Usually I would work with some dummy data… that would have saved some time in this case.

Buttons, Buttons, Buttons

First controller done, next up: The controller to add a new spending. For the first try I settled with a pretty standard numpad button layout. The buttons on the lock screen are not much bigger, so I think it should work…

watch2.png

If it gets to tedious I’ll add another step with recent spendings that can be added again. I use the feature quite often in the iPhone app.

But at first I have to find time to implement this, so stay tuned for the next post!

Changing attributes of editable UITextViews

Just a quick note, because all my searching only resulted in code how to change the attributes of the... displayed text (by setting textView.attributedText):

You can set the attributes that should be applied to all new text in the UITextView by setting textView.typingAttributes.

Easier than expected! (And turns out: looking at the documentation would have helped faster.)

Kindle Paperwhite Review

Am 22. November 2012 verfasste ich folgende Stichpunkte für einen Post, den ich irgendwann mal veröffentlichen wollte:

- touch mittlemäßig - oft vertouche ich mich, manchmal gehts garnich, manchmal dann 2 seiten auf einmal, vielleicht lernt man es - für tastatur und dictionary aber super - hätte gerne weiter hardwaretasten, gerne zusätzlich und touch zum umblättern deaktivieren - etwas schwerer, display fühlt sich rauer an - licht gut, aber ungleichmäßig und eher blau als paperwhite - umblättren fühlt sich langsamer an

Heute, fast zweieinhalb Jahre und einige Lesestunden später, kann ich sagen, dass all diese Stichpunkte auch weiterhin zutreffen.

(Aus der Reihe: "Philipp räumt seinen Drafts-Ordner auf")

Ignorierte Staffeln und Statistiken

watched.li statusblog:

Ignoring Seasons and Statistics

Hey, long time no see!

After struggling with myself for months how to advance this little side project I decided that’s okay to add new features to the “old” code instead of rewriting everything from scratch.

So the first two new features landed today:

Wisst ihr noch, wie ich vor ein paar Monaten über mein Problem mit Web-Entwicklung schrieb? Nach dem Post war ich zwar total motiviert, jetzt endlich damit anzufangen, watched.li mit Yii 2 neu zu implementieren, ein paar Tage später war aber auch schon wieder alles vorbei.

Gestern konnte ich mich dann endlich dazu überwinden, mir den alten Code wieder anzuschauen, räumte etwas auf und stellte fest, dass das alles gar nicht so kacke ist, wie ich dachte. Ich war wohl auch schon vor drei Jahren ein okayer Programmierer.

Jedenfalls implementierte ich gestern nun zwei kleine neue Features und fühle mich jetzt, wo der Druck, alles neu bauen zu müssen, weg ist, doch wieder motiviert noch mehr zu machen. Ich freue mich.

Vielleicht ist an dem guten alten Spruch "Never rewrite code from scratch" doch was dran.

Tweet-Archiv

Da ich ja gerne alles, was ich so mache, archiviere, benutzte ich seit einigen Jahren Tweetnest um meinen Tweets ein alternatives zuhause zu geben, falls Twitter mal alles abschaltet. Irgendwann gab es Serverprobleme, alles ging kaputt und ich war immer zu faul, Tweetnest zu reparieren, da ich ja auch noch 3200 Tweets Zeit hatte, alles wieder zum Laufen zu bekommen.

Naja. Im Laufe der Zeit löste sich das Problem quasi von selbst, denn Twitter fing an einen Archiv-Export anzubieten.

Vor ein paar Tagen zeigte Markus jedenfalls, wie er sein Twitter-Archiv automatisch up-to-date hält und in einem Git-Repository ablegt. Das fand ich gut und habe es daher ebenfalls so aufgesetzt. Sehr cool!

(Ich musste das Script, allerdings noch etwas anpassen, da ich auf meinem Server rvm benutzen muss, da Debian so eine alte Ruby-Version hat -- die Pfade zu den Binaries müssen also mit $HOME/.rvm/wrappers/ruby-2.2.0/ beginnen.)