Martin @ Blog

software development and life.

Flower

Archive for the ‘Computers’ Category

Using Boxen to manage your machine

What is Boxen

Boxen is a framework developed by Github to automate the initial installation of a new laptop for development (or any other task which requires a fixed set of tools). It is developed by Github and was initially called The Setup. The philosophy behind Boxen is that development is production which means that it should be automated like a production environment. Boxen is opinionated in some choices made by the developers who created Boxen, but it is also very pragmatic.

Boxen is basically a wrapper around Puppet, and should be used to manage your installed applications and tools. The nice part is that, since it is open source and used by quite a number of companies already, there are many modules available to automatically install and setup a wide variety of tools, ranging from MySQL to Skype and from Caffeïne to Minecraft. It is also highly configurable and it is very easy to made custom changes for individual developers or machines.

Initial installation of a laptop basically only requires you to install Xcode (which is very trivial since Mavericks) and cloning the our-boxen Git repository and your laptop will be installed within minutes. The best thing is that the latest changes and updates are also pulled automatically when you run boxen, so it is not only useful for when you have a brand new installation on your laptop.

Why Boxen

A while ago I looked into using Boxen to manage my laptop, especially because it would be a very easy way to setup laptops of new colleagues as well. Before I heard about Boxen, I created an install script for MacBooks which is used quite a lot within our company, but has a lot of issues. The main problem with an install script are:

  • Hard to make it idempotent (i.e. to re-run it once it has ran once)
  • Very hard to make it fail-safe. This is because every slight difference in configuration can make the script fail and impossible to recover. You have to cater for almost every possible setup which exists.
  • It doesn’t handle changes in configurations nicely.
  • It is a awful lot of work to keep it up-to-date

With Boxen, all those points are addressed.

Another nice thing is that Boxen is taking the pragmatic approach, so you can basically change everything and still benefit of the fact that a lot of code is reused and it will always be possible to re-run the script to automatically adopt changes in configurations required by your projects.

There are some downsides to Boxen as well. I started experimenting with Boxen around a year ago, at which point the documentation was not very abundant. That is a bit improved now, but many things still have to be deducted from the source. When you have problems, it is not always easy to find the cause and it requires some painfull debugging now and then. Fortunately, since quite some developers are using it nowadays, many issues are somehow covered in issues in Github, so this problem is less prominent then in the beginning.

The main issues I had where because we are using GitHub Enterprise (which means that we have our own GitHub installation running on a private server), and in the beginning that wasn’t really supported (or at least not documented). That is fixed now. Another issue is that our MacBooks are logging in on the Windows Active Directory stuff we have running internally, which causes some issues with user groups. This has been addressed in this issue.

Recommended way of starting with Boxen

Initially, I thought to create an our-boxen repository, tweak it and try it on a fresh VM installation of Mac OS X. While that sort of works, it is quite ellaborate and not very ‘eat your own dogfood’. As a result, I thinkered with the setup for over a year, without really using it. So that is definitely not the recommended way.

The way to get started with Boxen I recommend is to just start using it on your local development environment. For me, that meant that I had to delete my existing Homebrew installation and dump my rvm RVM setup. While that is not always a realistic option, in my experience it is the best one to get started with Boxen. It requires that you fix everything as quickly as possible in order to get a running environment ASAP and also ensures that everything actually works. Because of the fact that I wouldn’t have a running environment for at least a couple of hours, I decided to do this in between Christmas and New Year, because we’re not working that much at our office and it is not a problem that you’re not able to run everything locally anyway.

Don’t do everything with Boxen

Initially, I thought it was a good idea to basically do everything with Boxen, including checking out all the required repositories to run our services on your local machine. However, after a while I discovered that would be pretty much unmaintainable (our setup is quite dynamic, even more dynamic than I expected). So instead of that, I decided that it would be a better idea to make sure all required tools, like Play, Thrift, Scala, Maven, Java, IntelliJ, Skype, etc. would be managed by Boxen and the actualy projects (checking out, starting, stopping, executing database migrations) by the tools which are specialized in that. While we didn’t have a proper tool for those tasks, I decided to create that first (also while using it myself, so it forces me to have it in a working state). This turned out to work quite well and basically allowed me to improve the time to convert a freshly installed MacBook into a completely working environment from a couple of days to around an hour. Having the tools for updating, starting, stopping services to be separate also makes it a lot faster to keep my development machine up-to-date.

Distributing Boxen

There is a project called Boxen-web available which makes it easy to distribute a Boxen setup. However, as far as I could see, that uses Heroku. I didn’t really try it yet, but for now I opted to create a simple script which does the initial setup required for Boxen.

Some things we had to fix

We were still manipulating /etc/hosts file to actually get development domains point to your localhost. With Boxen it is relatively trivial to let everything ending in .dev point to your localmachine. This blogpost has a nice explaination on how to do this.

Conclusion

I have just started using Boxen on my own laptop and besides some testing in VM’s, it is not used yet to install fresh laptops (that will happen this week), so we don’t have much experience yet, but so far it looks very nice.

Ethical problems with Wifi experiment

The Dutch computer magazine Computer Idee! (intended for novice computer users) is critized for an article in which they investigated the behaviour of people on public wireless networks. The editors of the magazine installed a freely accessible public Wifi network at Shiphol Airport and monitored the usage of it. Obviously, there were people using this network and sending private data over it without any encryption. Now the editors of the magazine are critizied for not obeying the ethical laws common to the hacker community. Interestingly, this comment is made by Roel Schouwenberg, a researcher for Kaspersky.
I don’t think I agree with Schouwenberg. Computer Idee! exposed a real problem and in my opinion this is not a ethical problem. Users of public wireless networks should be aware that their data is exposed and can be used by anyone. Obviously, it is a bit questionabel that Computer Idee! stored the private data on their systems, but I think it is strange that researchers from Kaspersky are complaining about this. I think they should be complaining about the behaviour of users, who should use encryption technologies when sending private data over a public wireless network. Never trust systems and networks you don’t control.
But maybe Schouwenberg is complaining because the ignorance of users is essentially their business. If computer users were more security aware, the amount of virusses and other malware would be less, because the won’t be as succesfull as they currently are…. Making the public more aware and reducing the security risks by changing the habits of users is not in the interest of Kaspersky.

Mailserver at HetNet network

I have a temporarily internet connection via Het Net (in a few weeks I get a fiber connection at 100mbit). Since I manage some domains and don’t want to spend money on external mail servers (I’m Dutch…), I wanted to run my own SMTP server for receiving mail (sending mail can be done using the mailhost of the provider).
However, since a few years, most Dutch providers block incoming traffic at port 25 and only allows it to access the smtp servers of the provider. So this is a problem when you want to run your own mailserver for your domain.

When you’re at a KPN provider (HetNet or Planet) it is possible to use a mailrelay server. In order to make this work, you should set a primary and secondary mail server in your DNS record. Your own mail server should have the highest priority. As secondary mailserver you should set mailrelay.planet.nl with a lower priority.

Example:

IN MX 10 mail.yourdomain.com.
IN MX 20 mailrelay.planet.nl.

For me at least, this solution works.

Hello from Eindhoven!

‘Hello from Seattle’ is Microsoft’s alternative on the Zune to the ‘Designed by Apple in California’ that is printed on the packaging of Apple products. I think it is a bit of sad in a way an indicator that Microsoft is actually losing its leading position on the IT market. I don’t think it is a very good sign that you have to imitate (or react, depending on your view) this kind of gimmicks of the competitor.

Last weekend was quite busy. We went to the Efteling because the employer of my girlfriend was having a family day there. It was very nice, especially because the weather was exeptional good for this time of the year.

I also read today about a new mainbord from ASUS which incorporates a embedded Linux installation for configuring the system and also provides some functionality, such as Skype. I think it is a nice idea, but unfortunately, it is a little expensive with a price of 360 dollars. You can buy a complete system for that money.

Rikkert Koppes has created a library which enables some Web Forms 2.0 elements for existing browsers. Not all additions are implemented and some parts, like css pseudo classes, work a little different than in it will be in the ‘real’ WF2 implementtions, but it is a very nice start and I think it can definitely be useful in web applications (especially the various date controls).

Microsoft winner of ‘Best campaigner against OOXML’

I think this post is rather funny. I think it is also noteworthy that Microsoft is also the owner of a ISO standard proposal with the largest number of comments…

Whieee!! A Wii

I noticed I did not mentioned yet that since a few weeks I own a Wii. My girlfriend gave me one for my graduation (which obviously made me very happy and was very sweet :-) ). Since I didn’t use a Wii before I got my own, I was eager to experience the machine. I had read about it on the internet, but my expectations were not very high, considering the fact that I saw some hypes before which where disappointing when I tried it my self. Howeve, Nintendo did a very good job with the Wii. Controlling the device using the Wii-mote (the wireless remote control) works very well. You can just point to your TV to control the cursor. Combined with the Nunchuk it enables innovative ways to play games, such as boxing by just do punch movements, and tennis by just make the movements one normally makes when trying to hit a tennis ball with a tennis racket.

Currently, I own four games:

Wii Sports
The game that ships by default with the Wii. It contains a number of small games, such as tennis, golf, baseball, bowling and boxing. It uses the possibilities of the Wii-mote to its full extend (of course) and is very entertaining. Especially with multiple players it is very nice
Extreme Truck
This is an arcade truck racing game. It was very cheap, but is nice to play. Controlling your car is done by using the Wii-mote like a steer. This makes it very natural to play, because most people have the tendency to move nonetheless to the direction the car should go to when playing it on another system. The Wii uses this motion to actual control the truck. The simulation is not very realistic, but that’s ok.
Scarface
A very nice game, but doesn’t use the controllers to their full extend. However, the Nunchuk makes it easier to play these kind of games compared to other consoles, I think.
Boogie
I didn’t play this game very much, but it seems nice.

I’m planning to buy some additional games. Resident Evil 4 should be very nice according to stories of other people. I also want to buy some Mario games, such as Mario Party 8 and Super Paper Mario. And of course the braintraining game Brain Academy Wii Edition.

Huidige stemcomputers worden niet meer gebruikt

De actiegroep ‘wij vertouwen stemcomputers niet’ zal vermoedelijk verheugd zijn met het besluit van staatsecretaris Bijleveld om de goedkeuring voor stemcomputers in te trekken. Daarmee lijkt het einde van de huidige Nedap-stemcomputers ingeluid, wat naar mijn mening een goede zaak is. Een uitgebreide bespreking van het probleem heb ik eerder gegeven. Het plan is nu dat er nieuwe stemcomputers komen die de stem uit zal printen, waarna de uiteindelijke telling zal worden gedaan door een elektronische stemmenteller. In principe wordt de stemcomputer dan niet meer dan een heel geavanceerd rood potlood.

Getuige zijn website, geloof het bedrijf Nedap nog heilig in zijn machine en ziet geen enkel probleem:

Hoewel nooit aangetoond is dat Nedap stemmachines onbetrouwbaar zijn en in het Nationaal Kiezersonderzoek dat op 22 november 2006 door het CBS werd gepubliceerd, bleek dat maar liefst 84% van de respondenten ‘veel’ of ‘zeer veel’ vertrouwen had in de Nedap stemmachines, kunnen wij ons ook vinden in het door de commissie voorgestelde alternatief.

Ik denk niet dat ze veel andere keuze hebben dan zich ‘vinden in het advies’.

Overigens had NRC.Next een fout in zijn berichtgeving over dit onderwerp, aangezien de krant meldde dat Nedap de enige stemcomputerfabrikant in Nederland is. Dit is onjuist, aangezien de SDU ook stemcomputers maakt, die al eerder werden afgekeurd.

Op de superprofessionele website van Groenendaal, de producent van de software voor de stemcomputers, wordt de actiegroep ‘wij vertrouwen stemcomputers enthousiast ontvangen:

Hoera! We hebben er weer een actiegroep bij.

Maar maakt nog geen melding van de nieuwste ontwikkelingen in stemcomputerland.

SCO almost bankrupt

SCO has applied for Chapter 11 bankruptcy protection, which means the company can reorganize without having to fear from its creditors. It is very intersting to read that Darl McBride, SCO’s CEO, now blames Linux for the bad financial position the company is in. As many Slashdot readers already points out, SCO – formarly known as Caldera, was a Linux distributer. But it stopped selling its Linux solutions when it decided to accuses Linux developers from ‘stealing’ code from Unix and use it in the Linux kernel. Until know, this claim is never proven. According to SCO, Linux distributors were aggressively targeting Unix vendors and as a result SCO is now almost bankrupt. I think this company gets what it deserves.

New OpenOffice.org release

A new version 2.3 of OpenOffice.org has been released. I have not yet tried the new version, so I’m not sure if it is really a n improvement over the previous version. Recently, there was some good news for the OpenOffice.org development progress, since IBM has announced to support OpenOffice.org development. According to various developers in the OpenOffice.org community, the lack of developers is the main problem of OpenOffice.org. I wonder if this is also the cause of the fact that usability-wise, OpenOffice.org is in some area’s worse than what Microsoft provides with its office suite.

I’m not a very frequent user of OpenOffice.org, so I’m not really an expert in OpenOffice.org, but I think the development team missed an opportunity to beat Microsoft by just doing things the right way and make it more user friendly than Microsoft Office. For example, it is very hard to select another language than the default for a document. For some odd reason, this has to be done in the settings for a paragraph, but there are also language dropdowns in the spell checker and the ‘options’ menu. Such an essential task should be more easy to be done.
Apple has done a better job with its iWorks suite. It seems they really tought about the usability and did not start with the ‘standard way’ office suites implement their interfaces. This resulted in a different userinterface compared to the competition, but definately an improvement over its competitors. Maybe, in the feature we will see this kind of improvements also in the open source office suites. It seems that office suite developers are starting to understand this problem, since the latest release of Microsoft Office shows an entirely different user interface which – on some points – is definitely an improvement over the previous version. However, it should be noted that I’m not an Microsoft Office user, so I’m not sure if it is also an improvement in daily use.

Open source photography

For people who think the only solution to have decent photo editing software, is to use a pirated version of Adobe Photoshop or Painshop Pro, there is a site called ‘Open Source Photography’. The site is all about (digital) photography and processing photographs using open source software. It contains tutorials on The Gimp, Illustrator and other software and provides information on other tools. The site focus on users, and I think this kind of initiatives makes open source software more accessible to common people.

You are currently browsing the archives for the Computers category.