Updating PhpStorm Desktop/Launcher icon on Ubuntu

I keep forgetting how to edit my desktop entries after updating PhpStorm on my Ubuntu installation.

This is the file that needs to be edited: ~/.local/share/applications/jetbrains-phpstorm.desktop

Just update the paths for the Icon & Exec after the update:

cat ~/.local/share/applications/jetbrains-phpstorm.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=PhpStorm
Icon=/opt/PhpStorm-143.1184.87/bin/webide.png
Exec=”/opt/PhpStorm-143.1184.87/bin/phpstorm.sh” %f
Comment=Develop with pleasure!
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-phpstorm

 

Vierter MageStackDay am 15. und 16. Jänner 2016

MageStackDayNach zwei sehr erfolgreichen Online-Events und einer Pause im Herbst 2015 ist es im Jänner Zeit für eine neue Auflage des MageStackDays!

Am 15. und 16. Jänner treffen wir uns wieder online, um gemeinsam Fragen auf magento.stackexchange.com zu beantworten, zu schließen, zu verbessern, aufzuräumen und die Qualität dieser Plattform zu verbessern.

Abgesehen von der Plattform arbeiten wir derzeit an der neuen Version unserer Webseite, über die die Registrierung möglich sein wird.

Als nettes Extra gibt es MageStackDay sticker, die entweder persönlich bei den Organisatoren des MageStackDays erhältlich sind (Sander Mangel, Anna Völkl, David Manners) oder online via StickerMule bestellt werden können.

500 dieser wunderbaren Sticker, die wir weltweit verteilen, verdanken wir dem Sponsoring der CopeX GmbH!

Zur Unterhaltung und Informationsaustausch verwenden wir unsere MageStackday Slack Team. Bitte kontaktiert mich, wenn ihr eine Einladung für die Gruppe möchtet.

Konferenzen für Magento Entwickler 2016: MageTitans Mailand und MageUnconference in Berlin

In der Magento Welt gibt es mittlerweile eine Vielzahl an Konferenzen und Events, die verteilt über den ganzen Globus stattfinden.

Diese zwei tollen Events zu Beginn des Jahres möchte ich euch besonders ans Herz legen:

MageTitans IT

mage_titans_itNachdem 2014 und 2015 die MageTitans zum ersten und zweiten Mal in Manchester äußerst erfolgreich durchgeführt wurde, ist es 2016 Zeit für den ersten Ableger davon, der in Mailand in Italien stattfindet.

Leider habe ich es zur MageTitans nach Manchester nicht geschafft, die Rückmeldungen und vielen Tweets auf Twitter haben aber für ein äußerst tolles Event gesprochen 🙂 Ich bin schon gespannt auf die italienische Version.

Am Freitag, dem 5. Februar 2016 findet dieses eintägige Event, das sich speziell an Magento Entwickler richtet, statt und ich habe die Ehre, dort auch wieder einen Talk halten zu dürfen!

 

MageUnconference in Berlin

MageUC-LogoEin zweites tolles Event, ist die MageUnconference, die am Samstag & Sonntag, dem 12. und 13. März in Berlin in Deutschland stattfindet.

Ich war letztes Jahr dort und war großartig! Wie großartig genau könnt ihr in meinem Rückblick & FAQs vom Event 2015 nachlesen.

Im vergangenen Jahr waren großteils Entwickler vor Ort, die Organisatoren wollen das Event heuer aber auch speziell für Designer, Projekt-Manager, Shop-Betreiber etc. interessanter machen.

 Weitere Events

Darüber hinaus wird es wieder jede Menge Magento Stammtische/Meetups und Meet Magentos in verschiedenen Ländern, das Developer Paradise in Kroatien und auch wieder die Magento-eigenen Veranstaltungen Imagine und Magento Live geben.

Es gibt also viele tolle Möglichkeiten, mit der Magento Community persönlich in Kontakt zu treten, neue, spannende Dinge aus der Magento-Welt zu hören und sich auszutauschen.

Skype: online/offline Status Problem

Verwendet man Skype auf mehreren Geräten kann es passieren, dass man manchmal als online angezeigt wird, obwohl man nicht online ist.

Diese Anwort habe ich vom Skype support erhalten:

Wie ich verstehe, werden Sie ständig als Online angezeigt obwohl Sie es nicht sind.

In manchen Geräten, wie zum Beispiel Handys oder Tablets läuft Skype wenn Sie es schließen im Hintergrund weiter, weswegen in vielen Fällen der Skype Nutzer als Online angezeigt wird. Wenn Sie sich jedoch abmelden, sollte dass nicht passieren.

Ich möchte Sie bitte die Skype Anwendung auf Ihrem Computer zu benutzen und folgende Meldung in einem beliebigen Chat-Fenster einzutippen und auf Enter zu drücken.

/showplaces

Es wird eine Liste angezeigt auf der Sie erkennen können auf welchen Geräten Sie Online sind.

Anschließend möchte ich Sie bitten diese Meldung in einen beliebigen Chat-Fenster einzutippen und auf Enter zu drücken.

/remotelogout

Geben Sie nun wieder /showplaces ein um zu überprüfen ob Sie von allen Geräten abgemeldet wurdern.

Magento CE 1.9.2.2 database diagram

Update: Here’s the new version of a Magento CE 2.1.3 database diagram.

Every now and then someone on the Internet asks for a Magento database diagram, like this question here on MagentoSE.

While there are a lot of cool resources out there (which are unfortunately a bit outdated), I created a new one.

This is the database diagram of a fresh CE 1.9.2.2 installation.

Some statistics (because I love statistics):

  • Magento CE 1.9.2.2 consists of 333 tables
  • 19 tables start with core_*
  • 47 tables start with sales_*
  • 84 tables start with catalog_*

How to read it & find stuff:

  • Catalog is on the very left (big yellow group)
  • Sales is on the very right (big blue group)
  • EAV and Core stuff is in the middle (the brown & orange groups)
  • Customer tables are in the middle/bottom (big green group)
  • The rest (salesrules, logs, reports, newsletter, tags, poll, etc.) is on the bottom

If you like it, go and upvote my answer on MagentoSE 😉

Have fun with it!

Magento CE 1.9.2.2 database diagram

Link: Magento CE 1.9.2.2 database diagram

Feedback on the diagram is welcome. Especially on some lonely tables that I moved to the best of my knowledge and belief into one of the groups.

 

Windows 10: VPN settings not available & DNS problem

Update: Windows Update 1511 solved the problem with the non-accessible DNS settings. You might need to set the Standardgateway though:
VPN Connection > Properties > Network >  IPv4 > Properties > Advanced > IP-Settings
[X] Use default gateway for remote network


 

The Problem

The network settings window of my VPN adapter was not accessible. Means: It was there, not greyed out but clicking on it did not open the settings tab.

First stop(s):

http://superuser.com/questions/949306/windows-10-windows-vpn-ipv4-properties-not-accessible
http://answers.microsoft.com/en-us/insider/forum/insider_wintp-insider_web/network-connection-vpn-ipv4-properties-not-working/a60edf99-4b06-4219-bb75-b7c08de4ff9e

The File

The first place to get rid of my problem after the first recommendation: Adjust stettings in this file:

“C:\Users\USERNAME\AppData\Roaming\Microsoft\Network\Connections\Pbk\rasphone.pbk”

Change the following settings:

IpPrioritizeRemote=1 => IpPrioritizeRemote=0
IpInterfaceMetric=0 => IpInterfaceMetric=1

I was looking for some fast fix but: Nothing changed. Enabled/disabled the connection: not better.

PowerShell

Run the PowerShell as Admin:

Check VPN connection:

Get-VpnConnection

Set SplitTunneling:

Set-VpnConnection -Name "YOURVPNNAME" -SplitTunneling $True

Again: nothing happened.

Enabled/disabled the connection again, nothing happened.

Back to the config file

I tried to set the DnsAddresses in there:

IpDnsAddress=10.0.0.11
IpDns2Address=10.0.0.11

(note: these are not the real DNS settings)

as well as setting it via command prompt:

netsh int ip set address "YOURVPNNAME" gateway=10.0.0.11

Disconnecting + Connecting again: no luck.

nslookup

After some more research I found out it could also be a DNS issue. I ran “nslookup” form the command prompt and checked the gateway.
This showed my local gateway.

Getting closer?

IPv6 & Split tunneling

Some hints on that from the Microsoft forum:

No. 1:

This seems to be IPv6 related.
It keeps using my ISP’s IPv6 DNS server instead of my company’s (IPv4 only) DNS server.
If I disable IPv6 on my LAN network adapter, it starts working.

No. 2.:

Ok, it works, when SplitTunneling is disabled (Remote Gateway on) and IPv6 disabled.

I disabled SplitTunneling (again) and IPv6 on my WiFi and VPN. No luck.

 

Maybe these settings about help someone else resolving the issue. Some lucky users were able to resolve the problem after the very first step by editing the config file.

To be continued.

Creating the best small Web-App I can

I was requested to create one little form for my father-in-law who runs a online radio in his free time. The feature is called “Wunschbox” so basically an input form were the listeners of the radio can leave their request for a certain song. The admins of the radio should be provided with the list of incoming requests and mark them as “done” (=played on the radio). Sure, not a problem.

Right after creating the project in PHPStorm I wondered if I should just continue in basic PHP or use a cool and fancy framework for this. I love working with frameworks and as I work with Magento as daily business – which provides a big toolset – I wondered if there was something out there that would please my requirements for this small project. It would have taken me about one hour to hack these two pages together but I decided to ask that question on twitter and got some replies. My little journey started.

TL;DR: I was looking for good ways to create a small web-app. After trying Silex and Lumen I decided to go back to basic PHP and finally to TDD.

Looking for the better

I started googling and one of the first frameworks that popped up was Silex which was also recommended in the first replies on twitter.

Silex

Silex is a PHP micro framework based on Symfony2 Components. I knew Silex a bit from digging into Bolt CMS some weeks ago. Also the first replies on twitter recommended Silex. So I added it via composer and got started. After adding the Symfony Form Component as a new dependency to my repository it had about 19M in size. That felt just wrong for my little small web-app and would have been an overkill. Meanwhile some new Tweets about Lumen (which I didn’t know before) arrived and I decided to have a look at it, as the website seemed pretty promising.

Lumen

Lumen is a PHP micro-framework by Laravel. It can also be installed quite easily via composer. You can easily create new projects via command line by calling lumen new projectname. That’s what I did and I found myself again in a project folder with 20MB. The structure looked good but I didn’t want to continue at this point. Again: It was way too much and too big.

The better: Keep it simple – back to basic PHP

Silex and Lumen are really cool Frameworks (as far as I can tell from testing them both for about 30 Min.). But both of them felt just way too big for my two small PHP pages. At this point I reminded myself about some basic principles and one of them was: Keep it simple & stupid. In no way both of these two frameworks which had about 20M each were simple enough for my need as I expected my small web-app to have a few Kilobyte of Code. So I started with the frontend and created the first form in basic HTML. After that, I went to bed.

I tweeted my findings: “Conclusion after 1h of trying Silex and Lumen (which are awesome btw!): I should stick to my own principles and keep it simple > Basic PHP”.

TDD!

I woke up in the moring with a reply from Vinai on twitter (thanks for that!) who recommended also basic PHP plus TDD!

I didn’t think of creating this “app” in a TDD way, but the size of the project was just perfect for REAL TDD! So I set up phpunit for my two pages and wrote the first test(s) this morning. At this time I have 6 tests, 2 classes (one for the application + one test class) and that basic HTML form from last night. Nothing big, I know. But I’m really happy with it.

Thanks for the inspiration, Vinai!

There’s some garden work waiting to be done today but I will continue in the evening.

Why a blogpost?

I found the way of finding and deciding really interesting as well as the factors time and quality related to this.

“That’s cool, but you could have been done with that already”

This was my husbands quote when I told him I’ve set up tests for my small web-app this morning 🙂

Yeah, I know: I already spent way too much time with it. More than I would have initially needed. But I’m really happy with the current state, it’s pretty clean, straight, minimalistic and there were some interesting responses related to it.

Initial time thought to create this little web-app: 1h

Time to give Silex and Lumen a try and tweet about it: 1.25h
Setting up the project, phpunit and writing first tests: 0.75h
Time to write this little blogpost about it: ~0.25h
To be continued.

Time for some garden work now. Really. Looking forward to your thoughts & replies on that.

Ubuntu: Nicht genügend freier Festplattenspeicher für Aktualisierung

Bei der Installation der letzten Ubuntu Updates kam folgende Meldung:

Nicht genug freier Festplattenspeicher verfügbar

Die Systemaktualisierung benötigt 72,5 M an freiem Speicherplatz auf der Festplatte “/boot”. Bitte stellen Sie mindestens x M an zusätzlichem Speicherplatz auf der Festplatte “/boot” zur Verfügung. [..]

Die Lösung war folgender Befehl aus dem Ubuntu-Forum der die alten Header aus /boot entfernt:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge