Zum Inhalt springen

VT-x vs. Hyper-V (and what Virtualbox and Docker think about it)

I recently updated to Windows 10 and wanted to play with Docker (the native one, not the Toolbox). I was eager to see if the Folder Mounting works better than with the Toolbox – which requires some unnerving Commands to produce a shared folder in the Boot2Docker Image which is then mapped to Folders inside the Docker Container.

So, i activated the VT-x Features in the BIOS (and used a fancy tool for my Dell Latitude , „CCTK“ – which really sucks, imho). Then in installed Virtualbox and the Docker (Beta). Now Virtualbox will be able to boot my (x64) VM…..oh, actually not. Various Errors told me that my machine has no VT-x Features.

This happens because Windows 10 (and – i presume – Windows 8) is running the Hyper-V Hypervisor. And there can only be one Hypervisor in Charge. Either Hyper-V or VT-x. And since the Service is running per default, the Hardware is blocked by Hyper-V.

You can actually disable Hyper-V in Windows 10 (sorry for the German Screenshot, its available in the Program Install Part of the Control Panel):


As you see i have disabled the Platform Features and the Administrative Tools for it. The worst part is : A reboot is needed as the kernel is either controlling the Hardware or not.

You can check if thats correct in Oracle Virtualbox. German Screenshot again, but you can find it when Changing a Box at the System Menu….the Screenshot shows the Acceleration Tab which is completely greyed out if Hyper-V is active:


Now it´s usable and Virtualbox runs again.

Still pondering if i make a start menu entry like described here to make switching more comfy: Switch easily between VirtualBox and Hyper-V with a BCDEdit boot Entry in Windows 8.1

Looks like the OsX Users don´t know that Problem. This is either making Windows obsolete or Oracle Virtualbox. Definitely not Docker.

Notepad++ as a Vim Replacement for Msys on Windows

git config –global core.editor „‚C:/Program Files (x86)/Notepad++/notepad++.exe‘ -multiInst -notabbar -nosession -noPlugin“

With problems like „this is not a terminal“ this is quite a nice solution.

On a side note, Msys comes with a very old Version of svn (binary) that is found on the beginning of the PATH Env Variable. Getting a newer one produced some nice blind-side errors since the console output was always the one from the old Version. I suggest using the Collab.Net SVN Cli.

Git & SSH & TortoiseGit

A lot of Beginners tend to use VCS Clients they already know. So, if someone used TortoiseSvn before (which is fine, it works) they will naturally trip over TortoiseGit – which is fine, works in most contexts, but will not enable you to progress further with git.

In Combination, the Installation of Git for Windows an Tortoise Git has other pitfalls. While installing Git, you´re given the choice if you want to have a separate Git Bash or you could merge Paths and use the Git Bash Commands in your Windows Shell. Most People choos the Former, but you should probably give the latter option a thought. Having Unix Style Commands and Git in your normal shell has no downsides (at least i never encountered any) and it integrates seamlessly. I recommend to merge Paths.

Now, when you´re able to use Git on the Console, it will use the console ssh client if you use SSH Git Repo Links. I recommend using SSH Keys for Authorization, you could use one or have a separate one for each Server you use, this doesn´t matter as long as your keys are password protected (you definitely want that). The Keys should be located at your Users Home Directory in the .ssh Folder. The SSH Client will ask you on console to enter your Keys Password.

This becomes a barrier if you install TortoiseGit. I really never got behind the logic that TortoiseGit and Plink/Putty work so well together but are so hostile no basic ssh connections on console. TortoiseGit not only configures SSH Connections for itself, but system wide as it seems, and it´s quite a pest to get rid of. You could tinker around with TortoiseGit´s SSH Settings and maybe succeeed, or deinstall it completely and still fail to get the configuration to work.

Actually my rather feeble pro Tips are:

  • Use the last option for Merging of Paths when installing Git (Yes, the one with the flashy red Warnings!)
  • Avoid TortoiseGit at all costs. Plus, you´re forcing yourself to familiarize yourself with the console commands (Which is a good thing!)
  • Acutally there are really nice graphical Git Clients out there that do not mess with your Basic System Configuration: Smartgit, GitEye or SourceTree

Git Submodule Repository Switch

Just a quick glance at Git Submodules – they´re really handy to keep Stuff under Version Control that is virtually the same in every Project. If you´ve never heard about the concept, have a look at Git SCM Submodules.

Right now i had to change the Repository of a previously linked Submodule to an other host, so, i changed some of Git´s Files around to reflect that change. And you may probably have ended here through some link or a search and you want to know which files to fix with new Urls.

The Answer is: Don’t.

Git tracks submodules through a multitude of files and in a quite redundant manner, i would say its definitely broken. Hopefully this gets better with Git2.

So, how do you do it? First, delete the Submodules Directory. There, its gone, now you can push it and its done, right ? Wrong.

Git keeps Submodule Info in another file where all the Submodule Info is kept, the „.gitmodules“ in your local Repos Root Folder. Lets see, there should be entries like this:

[submodule „.modman/AvS_FastSimpleImport“]
path = .modman/AvS_FastSimpleImport
url = git@github.com:avstudnitz/AvS_FastSimpleImport.git

I picked a rather popular Magento Extension for your pleasure. As you can see it tracks the Path where the Submodule is stored as well as an alias and a Repo Url. You should delete this entry. Leave the rest untouched.

But you´re still not done. Open the „.git/config“ File of your Project. You will find a copy of the Submodule entry in there. It´s absolutely redundant and tacky, just remove this as you did with the previous entry.

Aaand…you´re still not done. If you try to add the Repo from another Url you´ll be given a notice that the Folder is already configured and could be overwritten if you add the –force parameter. Don´t try that, it will add the Repo with the old Url again.

Actually you descend again in your .git folder and look in the „modules“ Folder. You should find another configuration under a similar folder structure as maintained under your Project Source, but this one holds more Git Configuration. Delete the corresponding Git Config Folder for your Submodule.

Now you commit your Deletions if necessary. Push it. The Submodule is now essentially missing from your project, so, watch any Deployment Settings if you have some.

And now – its really gone. You can add your Submodule now via „git submodule add“ and it will be versioned correctly with the URL you enter. Thats what i meant by „Don´t“. Fixing all these files is a mess and not best practice. Delete the triple-redundant Config Entries and Files and re-add your Submodule, that way you can be sure not to break your git config – plus it´s not really effective to hack the stuff until it works, and you won´t grow any grey hair about it.

Meet Magento Leipzig 2014

There are so many great blogposts about this years Meet Magento Event that it is difficult to add anything of worth, so instead of beginning with my opinion i would like to point to some interesting viewpoints (and continue later with mine). Sorry – most of it is in German.

Whoa. Thats a lot. Still here? Good.

I didn´t shoot many photos this year as i had the disctinctive feeling my trusty GalaxyS2´s camera is in a declining state since i switched to Cyanogenmod. Sorry for that, text will have to suffice.

Day 1: „This will be legen…wait for it…dary!“

Keynote by Magento Community Manager Rico Neitzel
Rico circumvented any classic Magento Topics and referenced to the Re:publica Talk by Sascha Lobo about the Espionage Scandal, the NSA and Data Rentention in general. Its a fact we´re not doing enough to preserve the Environment that is the base of our economic success (yes, a.k.a The Internet).

Opening Keynote ebay inc
Magento was nowhere to be seen – i missed him 😉 Ebay/Paypal was proxied by Arnulf Keese. Meet Paypal?

The Harsh Truth of Magento Enterprise
Tim could have thrown a flashbang grenade into the audience and it wouldn´t have created the commotion his speech has created. Days after „the incident“, it still is the main topic in conversations. Imho it boils down to a few things:

  • Tim exaggerated a bit, but he didn´t lie
  • He didn´t put an Exclamation Mark behind his ideas, think about it
  • People felt that Magento was „grilled“, but all he did was grill Features, Processes and Relation to Cost
  • It has nothing to do with the state of  Magento 2. Magento 2 is part of the general Problem, but it wasn´t the focus of the speech
  • His goal was to get everyone involved, albeit by exaggerating and polarizing. It worked!
  • Magento Partner Agencies are offended to a degree, which is understandable – to a degree
  • Some People voiced a good opinion about the Enterprise Support. In general, the topic was met with Standing Ovations – this is no coincidence! Partners should ponder that the Enterprise Support may have First and Second Class Customers….maybe?
  • Enterprise Support is profane. Support is only for Core Functionality, Reaction is slow to unbearable, there are not Account Managers (think, we talk about 12K $) and Asking for Shell Access to a Production Environments is a no-go. I don´t trust my grandmother with access, why should i trust Magento?
  • Withholding Bugfixes from the Community Edition is not a good thing. If you have a different opinion, let me know.
  • Having a lot of Extensions from one vendor is nice – agreed. But couldn´t we instead have a Enterprise-Grade Extension Marketplace?
  • No Enterprise == No Community. Magento was not created by a community effort but by commercial interest.
  • Commmunity Interest fuels a lot of Magentos Proliferation. This needs to be a factor, but isn´t at the moment.

Magento – Half a Rush-Hour for Developer
Whoa, that was fast. The Talk was only paused to inhale and still Rico Neitzel and Fabian Blechschmidt (or their genetic Magento-Supersoldier Offspring „Ribian Blechtzel“) were able to put focus on Magento-Specific Development Hurdles and all the Nooks and Crannies of Devmode, Multisite, Codepools, Namespaces…no, i will not even attempt to do that.

Magento 2.0
Tobias Zander told us about Dependency Injection and his general View of the Magento 2 Situation. Rock Solid Talk.

Magento I varnish you
Silvain talked about the pros and cons of using Varnish. Nothing really new, but great info.

appserver.io and Magento
Parallelization would be _the_ solution to intensive Database Operations like Import and Indexing. I really need to have a look at this project, maybe a separate VM…

PhpStorm – better, faster, more relaxed Magento Development
Benjamin Wunderlich of Shopwerft inspired the audience to indulge a little in the tool, not only the product. So, invest a little time in automation of your tasks, it will pay off later. Also, i found it nice to meet Benjamin in person.

Magento powered Mobile Shop WebApp auf AngularJS
I guess the Talk didn´t go as planned, but next time it should be more developer centric. Probably would have been better placed as a business track.

Code Quality with Magento
Andreas von Studnitz and  Nikolai Krambrock talked about Code Quality, which is a good starting point for new Developers to get a grip on the dos and don´ts of Magento Development. There was a note on „Do not use Aitoc Extensions“. Aitoc is known to use an agressive Licensing Module that forces a replacement of the Autoloader and several other hard-to-get-rid-of Changes to the Core. It is debatable if such a „bashing“ of Module Vendors is necessary in a developer track. It was also suggested to talk about doing it „right“ instead of bashing. I disagree – encrypted Modules and Core Replacements have no place in a Project, Period. It´s not worth the hassle, even and especially for Shop Startups with Beginner Level Magento Knowledge.

Central Logging with Magento
Christoph Frenes presented some Logging Services (which i had no idea of), definitely trying that.

After Show Party
Talked a lot to lots of different People…not as many as i wished to 😉

Day 2: „The World continues to rotate“

One Page Shops mit Magento & AngularJS
I read the Presenation before, so the idea wasn´t new to me. But Vinai simply cant even not get it 100% right, so – cool Idea and Execution. Angular Js will continue to rise in importance.

Busted!  9 1/2 worst Performance-Myths in E-Commerce
A Rock Solid Performance Talk by the „Managed Hosting is like assisted living“ – Guy, Thomas Lohner of SysEleven. Cementing their reputation as knowledgeable Hosting Partners, this talk was definitely reference-material.

Developer BarCamp
Ribian Blechzel continued their interrupted talk from the day before and won the battle 275:0.

In Conclusion

Ebay/Magento needs to act. Now. Fast. The Air is full of conflict which needs to be discussed. A Google Hangout with Tim Bezhashvyly and other Developers (Firegento?), maybe a Gold Partner Representative would probably be better than a Press Release. Lets see what happens? I have heard enough grave talking about Magentos Future from the Community – Ebay/Magento should definitely address this.

A lot of people were irked that Imagine overshadowed the German Event, i don´t care that much. It´s just a second con taking place at the same time. Get over it.

Magento 2 Timetable: For the love of god. Do you really want us to wait THAT long? Magento 2 was announced Years ago and now you tell us that its going to take at least another year to complete?

Magento 1.9…this seems rushed. Not good. Won´t update.

Open Recruitment was a topic. I didn´t recognize it as hostile recruitment. People talk about job opportunities and times are good for developers. There isn´t really more to it. Since Hackathons are weekend Events with cheap accommodation, i could cope without financial support from employers – it is nice of them to pay for it, but not really a requirement. The Time I spend on hackathons is at my leisure, i don´t require anyone to pay for this time.

I didn´t encounter any obvious elitism. Its absent in the hackathons, and barely felt on the Conference. But i agree that we as the community should keep an eye on it. Everthing else may not have been perfect this year, but all in good intention.


Mage Hackathon Leipzig 2014

Sorry for being inconsistent in my usage of language. Probably needless to switch to english, i just felt like it.

From May the 9th to Sunday the 11th i participated in a Magento Hackathon, targeted at Developers with interest in the Magento eCommmerce Shop System. If you need info about that, have a look at www.mage-hackathon.de or www.magento.com.


After a remarkably uneventful train travel to Leipzig, a taxi driver dumped me at a hotel with no discernible Signs (which was – of course – the wrong Hotel) and zapped off (not without – of course – his fee). A short walk later I found the right hotel, dumped my belongings and went to the „Stelzenhaus“ to meet the other Hackathon attendees.

I was rather exhausted because i was just recovering from sickness (yeah, grrrreat Idea to attend a hackathon in that state – but i was excited by the prospect of going there. Staying at home was not an option). Sorry to everyone for being so silent. It just wasn´t my day so I left early.


Sublab Graffiti

Graffiti at the Sublab Building

As Kendo Practicioners shun running if possible (oh well…) I skipped the running part (…as always). I met Nils for a short breakfast and went to the sublab.org. My Compliments to the Core Members of Firegento (@Fabian_ikono, @riconeitzel and other hard working Members) – you nailed it with the location. Set inside a large Industrial Building with lots of graffiti and diverse Occupants, the Sublab-Floor is an impromptu workshop with Projects like Free Wifi, Electronics Repair, Civil Rights Meetings, etc. – a one of a kind Location that would have made Tim Taylor exclaim „More Power!“. We had to resort to just make things go Faster 😉


I pressed that one. More than once. I even held it down. Impatience rocks.

We took a seat on sofas rescued from an unspeakable, grisly, final Fate and set to vote for the Topics we wanted to hack up over the weekend. You can look up our Projects (and Projects of earlier hackathons) here: https://github.com/magento-hackathon


Fabian sets the Crowd in Motion

Rico, Nils, Stefan and I set on to create a module named AttributeConfigurator. The Idea is to have a central XML File describing Attribute Sets, Groups and Attributes and have the module do all the CRUD Stuff to keep the Magento-Attributes synced to the XML File. Searching through Update Scripts for complete Info on Attributes could be cut to a minimum (our Module would just check Attributes created with it and should not touch core or third-party attributes). Needless to say, we bit off more than we could chew, but i promise to return and finish the Module later.

Thanks to perfect organziation we didn´t even have to leave the Sublab for food, everything was delivered and later the „Phantomspeisung“ commenced. Members of the Sublab organize a Weekly Mass Feeding with Vegatarian Food for roughly 40 People. Well, at least 80 people dropped in later to eat and things got a little bit crowded. Subsequently we left and called it a day.



Actually, a Phpstorm Aimbot would be nice.

We continued coding and socializing. Having most People in one Room definitely helped the communication (in comparison to the secluded Teams last year) so i got to know a lot more Personalities of the Magento Developer Community. Coding in a hackathon environment is what a Team Effort should always be: Communicating to each other freely and non-judgemental, searching for the best Solution without artificial Pressure and last but not least enabling all Participants to Contribute.


Peeps crowding around the Kicker Table.

I quite liked being there, definitely something i will keep up doing. Thanks to all attendees for being the hackathon.

If you´re interested, go ahead and read other Opinions about the event:

Magento auf PHP 5.3

Laut den System Requirements ist Magento bis zu PHP 5.3.24 kompatibel, habe gerade festgestellt das dem nicht so ist. Altlasten wie split() wurden zwar konsequent gegen explode() getauscht, aber beim Error Reporting bleibt dann so ziemlich alles stecken.

In folgenden Files:

error_reporting(E_ALL | E_STRICT);
error_reporting(E_ALL & E_STRICT & ~E_DEPRECATED);
ausgetauscht werden.

Leider ist das nicht update-safe, geht dann nicht anders. Was noch aufgefallen war ist eine Dependency die nicht in den Requirements steht: Magento verlangt das File Package für Pear. Ohne wirft der Autoloader Fehler. Abhängig vom verwendeten System kann das Probleme machen.

Andere Anpassungen die mir berichtet wurden waren XML-Fixes und das eventuell keine Rechnungen aus dem Adminbereich heraus erzeugt werden können. Falls ich dazu was finde update ich die Info hier.