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.

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.

 

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.

FAQs about MageUnconference 2015

The first MageUnconference took place on March 7th & 8th in Berlin. You’d like to know how it was? Read the FAQs!

What’s an unconference?

Like an conference, but without any planned talks and with muuuch more and longer breaks. Someone Sander said to me in one of the breaks (sorry for not remembering, who it was I do SO remember it was Sander): “MageUnconference is a great combination of user group meeting and sessions”.

It was such a relaxed athmosphere according to conferences where people just rush from talk to talk and hardly have time to chat during breaks. It was my first unconference and – omg – unconferences are awesome! It was also the very first MageUnconference btw!

How was the preparty?

We had a few beers, we had food, I met a lot of people I already knew and a lot of new ones and some even not known from twitter before!

According to Fabian we didn’t manage to spend all the money that was sponsored for the preparty. Reminder for next time to all: Drink more beer or start earlier 😉

I also tried Ginger-Beer, I cannot recommend it.

The preparty took place in the Lindenbräu in the Sony-Center btw. After the last round of drinks we went for the After Pre-Party in the bar on the other side of the street of the Motel One.

2015-03-07 00.38.45 2015-03-07 00.38.53 2015-03-07 01.43.18 2015-03-07 02.14.13

Where did you stay?

After rumours on twitter, a lot of us booked their room in the Motel One at Ku’Damm (thanks Tobi for your tweet, i think everyone followed that). That was pretty cool as there was always someone around to go together to the Unconference and back.

I’m not sure which way was longer: The one from the elevator to my hotel room or the one to the toilets in the Abenteuerzentrum.

How did you get to the venue?

Driving with the bus from the Motel One! Despite my concerns beforehand it worked out better than I thought. My new favourite bus line in Berlin is now X10. Going with the bus, especially when going with a group of people, requires some attention from at least one of the group. Otherwise you will miss the station to get out. We had some near-misses.

2015-03-07 08.24.34

The Eichhörnchensteig is just right after the Waldmeisterstraße. The way to the Abenteuerzentrum was very idyllic.

Eichhörnchenweg 2015-03-08 14.13.19 2015-03-08 14.08.28

How was the venue?

The Abenteuerzentrum lies inbetween a lot of trees and green. It’s quite big and has a long way to the toilets (don’t forget to pass by when you’re in a session in the room “Bob”). We were lucky and the weather was very nice during MageUnconf which made it possible to sit outside, have breakfast outside and also sessions.

We had WIFI there which was reliable most of the time (depending on your location) and – for people like me without data plan in Germany – really essential to follow up all the tweets 🙂

2015-03-08 09.49.25 2015-03-08 14.07.24

What about the sessions?

Everyone had the chance to add topics he/she wanted to hear or talk about. The topics were collected on a wall, then introduced with a few words. A detailed picturized explanation about how that works can be found in Carmen’s Blogpost.

The good thing is: There are 3 (or even 4) dev-tracks.

The bad thing is: There are 3 (or even 4) dev-tracks.

Which means: You have to decide which one of all those cool sessions to attend! What I really liked were the discussions that evolved out of the sessions and also the quality of the topics was very good!

There were sessions about: Module testing, Magento search, Burnout, Magento and Bootstrap, Scaling Magento (day 1), Recommender systems, design patterns: abstract factory, Mistake Driven Development, Vagrant, Magento Meetups, Code Usablity, CRM and a lot more!

I even got to do my “First Aid – Survival Guide for web developers” session together with Benno which was really cool.

 

2015-03-07 11.21.56 2015-03-08 10.51.40

What did you eat aka How was the food?

There was lots of food! So much of it, that I cannot even list it all here. There was food all the time: apples, carrots, mandarines, cookies, cake, cereals, various kinds of break with various toppings. Lunch on saturday and sunday was vegan (the pumpkin soup on sunday was great btw!).

And there were a lot of softdrinks and 1337mate and Mischmasch and Coke and sparkling water (good quality sparking water from Vöslauer – Austrian company 😉 ) and much more!

2015-03-08 10.03.00 2015-03-08 10.03.05 2015-03-08 10.03.12

How was the afterparty?

There was a fireshow which was performed by “Feuer und Poesie” – omg, that voice! And omg, that fireshow!

After that we had delicious food from the barbecue.. For even more entertainment throughout the evening there was table tennis, dart and air hockey!

How many people attended the event?

I have no idea about the official number. Right before the event, 94 participants have been officially announced. Some didn’t show up or arrived later but there were still a lot of Magento people 🙂

Most of them were from Germany and the Netherlands, but there were also participants from Switzerland (2), UK (1.5, yeah, David, you’re the 0.5) and Austria (1). Hope I did not forget a country here.

There were a lot of cool Magento developers, but also project managers, sales & marketing guys/gals,… See #mageuc15 tweets for a list of people 🙂

One special thing I’d like to mention is that 3/4 of the MageStackDay-team met there 🙂

 

Did you like it?

Yes! And I hope there will be a #mageuc16!

Special thanks to the amazing team organizing MageUnconference: Fabian Blechschmidt, Rico Neitzel, Tobias Klose, Carmen Bremen and Vinai Kopp!

More information?

www.mageunconference.org
#mageuc15 Tweets

More Blogposts?

Check out these cool Blogposts:

English:

German:

MageEngage: Lerne die Magento Community kennen

David Manners hat eine neue Serie mit Interviews gestartet, um mehr über die coolen Menschen der Magento Community und ihre Freizeitaktivitäten zu erfahren. Das Ziel von MageEngage ist, die Magento Community der Magento Community vorzustellen.

David hat auch einen Beitrag auf MageHero mit seinen Gedanken dazu verfasst.

Für die erste Ausgabe von MageHero hat David mich über meine Aktivitäten im Rettungsdienst beim Österreichischen Roten Kreuz interviewed. Danke für das Interview, David!

Episode 1: Rescue Anna

Zusammenfassung des Interviews:

  • Ich bin seit ich 15 war beim Roten Kreuz
  • Ich habe meine Ausbildung zum Rettungssanitäter mit 17 begonnen und später meine Ausbildung zum Notfallsanitäter gemacht.
  • Eine Dienstschicht (in der Nacht oder am Wochenende) dauert 10-12 Stunden
  • Ich mache zwischen 1 bis 5 Mal im Monat Dienst.
  • Im Rettungsdienst fahren wir zu allen möglichen Dingen von denen man sich vorstellen kann, dafür eine “Rettung” zu rufen: alle möglichen Verletzungen, Unfälle und interne Notfälle.
  • Ich bin ziemlich selbstlos mit der Nutzung meiner Freizeit 🙂

Weitere Dinge, die ich beim Österreichischen Roten Kreuz in Niederösterreich bzw. in Herzogenburg mache und ich nicht im Interview erwähnt habe:

  • Mitglied der IT & Telecom Emergency Response Unit für Internationale Katastrophenhilfe
  • Beziksstellenverantwortliche für Jugendarbeit
  • Sichere Einsatzfahrerin
  • Rotkreuz-Zugskommandant (Führungskräfteausbildung Ebene 3 – Offizier – absolviert)

Mehr Infos über MageEngage:

MageEngage: Getting to know the Magento community

David Manners started a new series of interviews to find out more about the cool people in the Magento community and what they do in their free time. The aim of MageEngage is to introduce the Magento community to the Magento community. There’s also a post on MageHero with Davids thoughts.

In the first episode he interviewed me about my activities as a volunteer at the Austrian Red Cross ambulance service. Thanks for the interview, David!

Episode 1: Rescue Anna

Summary of the interview:

  • I joined the Austrian Red Cross at the age of 15
  • I started my training as EMT when I was 17 and continued later doing my training as paramedic (not the same level as in the US)
  • A duty (during night or on weekends) lasts between 10-12 hours
  • I go for 1 to 5 duties per month
  • We go for everything you can imagine to call an ambulance for: all kinds of injuries, accidents and cases of internal medicine,…
  • I’m pretty selfless with spending my time

Other things I do at the Austrian Red Cross in Lower Austrian and Herzogenburg which i did not mention in the interview (time is short):

  • Member of the IT & Telecom Emergency Response Unit of the Austrian Red Cross for International Disaster Response
  • Responsible for the local Red Cross youth groups
  • Ambulance driver
  • Red Cross officer within the chain of command

Find out more about MageEngage:

MageStackDay #2 am 13.+14. Februar 2015

Am 13. und 14. Februar 2015 ist es wieder so weit: Aufgrund der Nachfrage findet der zweite MageStackDay statt! Mittlerweile sind schon ca. 60 Magento-EntwicklerInnen für den 2. MageStackDay angemeldet und es verspricht, wieder ein tolles Event zu werden.

Beim MageStackDay dreht sich alles rund um die Erhöhung der Qualität der Fragen und Antworten auf magento.stackexchange.com. Die wohl bekannteste Seite aus dem Stackexchange-Netzwerk ist stackoverflow, auf der Frage rund um verschiedene Entwicklerthemen gestellt und beantwortet werden. Für besondere Themen, so auch Magento, gibt es eigene Bereiche innerhalb des Stackexchange-Netzwerkes, so auch für Magento. Während die Zugriffszahlen sehr hoch sind (eine der höchsten über alle Stackexchange-Plattformen betrachtet), gibt es viele offene d.h. noch unbeantwortete Fragen. Nachdem das offizielle Magento-Forum letztes Jahr geschlossen wurde, sind noch mehr Fragen hinzu gekommen und die Antwortrate leider auch drastisch gesunken.

Das Ziel

Wir möchten es schaffen, die Antwortrate wieder um 2-3% zu heben (so wie beim ersten MageStackDay). Langfristig ist eine Antwortrate von über 80% das Ziel, um aus dem Beta-Status zu kommen.

Gemeinsam werden wir versuchen, möglichst viele Fragen zu beantworten. Für die Aktivität auf der Plattform ist es auch wichtig, dass aktive User regelmäßig gute Fragen und Antworten upvoten!

Aber auch andere “Aufräumarbeiten” stehen im Vordergrund: Das re-taggen von Fragen und auch das Schließen von Fragen, die aus verschiedenen Gründen nicht auf die Plattform passen (nicht reproduzierbar, out of scope,…).

Für diesen zweiten MageStackDay haben wir auch einige Magento Extension-Entwickler an Board geholt, um die Community bei Fragen zu unterstützen.

Nicht nur Arbeit, auch viel Spaß!

Damit die ganze “Arbeit” auch Spaß macht, gibt es zur Unterhaltung der TeilnehmerInnen eine Team auf Slack mit verschiedenen Channels (Freischaltung notwendig, kontaktiert mich oder Sander) und einen MageStackDay-Twitter Account.

Außerdem haben wir Badges, um den MageStackDay zu unterstützen.

Wer noch schnell ist schafft es vielleicht auch, dass das MageStackDay T-Shirt noch rechtzeitig ankommt (Achtung: lange Lieferzeit)!

t-shirt_back1 t-shirt_front1

 

 

 

 

 

So ganz nebenbei lernt man auch viele coole Magento-Entwickler aus der ganzen Welt kennen 🙂

Wer machts?

Anna Völkl
Anna Völkl
Sander Mangel
Sander Mangel
David Manners
David Manners
Marius Strajeru
Marius Strajeru

 

 

 

 

 

 

 

 

 

 

Ins Leben gerufen haben diese Initiative Sander Mangel, Magento Entwickler aus den Niederlanden, und ich. Für die Organisation des zweiten MageStackDays unterstützen uns auch David Manners (DE) und Marius Strajeru (RO).

Mehr Infos

Zentrale Anlaufstelle für Infos und die Registrierung ist unsere MageStackDay-Webseite sowie unser Twitter-Account:

http://www.magestackday.com

http://www.twitter.com/magestackday

Nichts wie hin und gleich anmelden 😉 Wir freuen uns über deine Teilnahme!

 

Ubuntu Software & Tools

After some troubles and having enough of Windows, I switched to Ubuntu 14.04 LTS on my Lenovo X1 Carbon (2012 Edition) at the end of January 2015.

This is my collection of software and tools which I am using and which were recommended.

Some of the software I use:

  • KeePass 2 + mono + Firefox Plugin
  • PhpStorm
  • Apache, MySQL, PHP, git, composer, n98-magerun
  • Spotify test version
  • Skype (love the compact design compared to the new Windows version)
  • Radio Mobile with Wine (downloading from external works despite some install notes)
  • Wavemon
  • CompizConfig Settings Manager (ccsm)
  • Zsh

Thanks to my dear twitter followers, I also got the following recommendations:

  • Microsoft Office + Wine (thanks Th3Z0ne). Office 2013 does not work by the way (i tried it and was looking for solutions). Office 2010 should work (did not install it yet).
  • Remmina for SSH (already pre-installed, thanks Sander)
  • terminator (thanks Roman): Great tool. After I got used to it, I prefer it to Remmina. I can recommend this How-To.
  • shutter (Roman)
  • virtualbox + vagrant + nfs sharing (Roman)
  • Meld diff (Sander)

to be continued.