Revenge of the Software Developer Laptops

Intel i7 CPU

Intel i7 CPU

As a software developer looking mainly for performance when building a new tower system or buying a new laptop, I am not a big fan of the very popular ultrabooks that have taken a lot of market shares in the past few years. I don’t want to sacrifice power over extreme portability or 10 hours of battery life: I’ll be working at a desk with power plugged-in most the time.

To learn more about my previous laptop list software developers and personal requirements, please read my other post on this topic. Thanks!

My spec preferences for a great laptop

First, let me make a little wrap-up of what I am looking for in terms of specs for a new laptop (I went a bit deeper into details in my previous post):

  • Quadcore CPU
  • 15″ display (can’t be smaller if you want to go quadcore, see why here)
  • 16 GB of RAM
  • Discrete GPU
  • Solid state drive (SSD)

Don’t forget about the WiFi adapter!

One thing I had previously forgotten to keep in mind is the WiFi adapter. We tend to forget about those, but they are not all created equal! My first advice (and it is even more true if you plan to install Linux on your machine) is to go with an Intel WiFi adapter. Its hardware and drivers are rock solid, and so will be your wireless connection. I also read here and there that Killer™ WiFi adapters are very great.

A crucial point worth checking is the number of antennas, indicated 1×1, 2×2, etc. This shows the number of sending and receiving antennas. Rule of thumb here: the more antennas, the more bandwidth, the better. Obviously, you’ll be wanting an adapter that supports the 801.11ac standard.

My new favorite laptop

Please note: like I did in my previous article, some of the links in this page point to Amazon products. By following them (and actually buying something from Amazon), you may be helping me make a little bit of money to pay for my family’s needs without paying a dime of your own. So thanks!




To be honest, I am at the point where this laptop, the GIGABYTE P55Wv5-SL3, has become my only option. I have went through dozens of lists and reviews looking for a single notebook that met my requirements, and also did it under $2000 CAD (just under $1600 USD as of today). This is the only one I could find.

Technical specs

  • 6th generation Intel Core i7-6700HQ
  • NVIDIA GeForce GTX 970M 3GB GDDR5
  • 16GB DDR4 2133 RAM memory
  • 128 GB M.2 SSD
  • 1TB HDD
  • Intel Dual-Band Wireless-AC 8260 (2×2)
  • 15.6″ Full HD 1920×1080 Wide viewing angle(IPS) anti-glare display LCD

I must admit I haven’t tried this model yet, but on paper, I really like it. Being pretty recent, there aren’t a lot of online reviews available, the ones you can find are all very positive, especially for a computer in this price range.

If you are interested in full technical specs and a partial (but kinda complete) review of the P55Wv5 (but it’s a preview version with only 8GB of RAM), I suggest you to visit Tom’s Hardware for their review.

Discarded contenders

Here are laptop models very similar to the P55Wv5-SL3 in terms of core specs that I couldn’t keep on my list, both because of the weakness of their WiFi adapter. But they might be a good fit for you, who knows?!




The ASUS ROG GL552VW-DH74 (and other ASUS Republic of Gamers variants) are on many gamer laptop lists. It really is a great computer for its price, but it has a major problem: its WiFi adapter is probably the one adapter Intel has totally screwed up, the Wireless AC Intel 7265. You’ll find hundreds of complaints about it, on every geek forum out there. I have experienced it myself in another laptop, and ended up replacing it. Before I forget: it is strongly recommended to go for the metal construction version if you plan on buying this one.

MSI GE62 6QD Apache Pro

MSI GE62 2QD Apache Pro

MSI GE62 2QD Apache Pro

Another great contender, the MSI GE62 6QD Apache Pro, has similar core specs. Its main problem, for me, is again its WiFi adapter. It’s not that bad, but it’s a 1×1, meaning its bandwidth is limited to a theoretical 433 Mb/sec. When you have to transfer, for example, virtual machine images over WiFi, a 2×2 adapter (866 Mb/sec) is always appreciated. Other than that, it seems to be an excellent laptop choice for both software developers and gamers. If you don’t mind it’s very average WiFi adapter, this is a great choice.

Laptop Choices for Software Developers

Asus ZenBookPro UX501

Asus ZenBookPro UX501

I recently found myself looking for a good developer laptop. Depending on the stack that is running on your development machine (Web server like Nginx, Apache or IIS, DBMS like PostgreSQL, MySQL, Oracle or MS SQL Server, an IDE or advanced text editor, etc.), but also other softwares like a Web browser with 12 active tabs, tools like Adobe Photoshop, a music player, several command line consoles with ssh sessions or Gulp running, a virtual machine, etc., etc., you might find today’s trendy ultrabooks not so powerful as they are usually limited to low-power CPUs with only two cores, and most often rely on integrated graphics. (sorry for this really long sentence)

This is the conclusion of my own little quest to find what I like to call a good developer laptop. There is nothing exhaustive here. I am simply talking about the models that I think are interesting right now, and why I think they are.

Going quad-core… and 15 inches

First thing you need to know is that sub-15-inch laptops equiped of a quad-core CPU are almost impossible to find. Intel’s CULV specification for ultrabooks limits power for CPUs to 17 watts, which is not enough at all for, let’s say, a Core i7 6700HQ which has a TDP (thermal design power) of 45 watts. You can make your own research here, but long story short, if like me, you decide to go quad-core, you’ll most likely have to accept to buy a laptop with a 15-inch screen, at least.

My three favorite options (right now)

First, I want to clearly state that some links in this article point to Amazon products. By following them, you may be helping me pay for groceries, diapers, cat food or coffee. So thanks!

Dell New XPS 15 Laptop

Dell XPS 15

Dell XPS 15

Dell has really hit something last year with the New XPS 13: a great screen with a very thin bezel called InfinityEdge (from a distance, it really looks like an 11-inch laptop), an acclaimed keyboard, very good performances for an ultrabook, good built quality, and a nice look. The camera’s position (below the screen) might be a problem for you though.

For 2016, Dell just arrived with the New XPS 15: something very similar to the XPS 13, but as you have probably already guessed, this new model is built around a 15-inch screen, which means it’s got room for a quad-core CPU (yay!), and a discrete graphics adapter. Dell offers many configuration options: touch-screen or not (with PPI from 141 to 282),  i7, i5 or i3 CPU, 500GB old-school HDD to 1TB SSD, integrated GPU or Nvidia GeForce GTX 960M, etc.

Working around several people owning the XPS 13, I must say that I am tempted by Dell’s very slim design (the thin bezel helps a lot). I love the keyboard, and the mousepad is kinda great too, but I would have preferred a numpad on the 15-inch version. For obvious reasons, my next laptop will be equiped of an SSD. But the way Dell has done things. that would force me to invest in a multi-touch 4K Ultra HD screen, and I’m really not sure I want to go there. But the more I read, the more it becomes a standard in high-end laptops. So in the end, I might actually “go there”.

Here’s a great article about the New XPS 15 made by the guys at Ars Technica.

Asus ZenBook Pro UX501

Asus ZenBook Pro UX501VW-DS71T

Asus ZenBook Pro UX501VW-DS71T

Let’s stay in high-end models a little more. Kind of new Asus ZenBook Pro UX501 offers something very similar in terms of performance. With this model, you have no configuration options, so you’ll have to pay for the multi-touch (10 points, really?!) 4H Ultra HD screen. You’ll get the same i7 6700HQ and Nvidia GeForce 960M the XPS 15 has. A not-so-small difference (for me at least) would be the numpad that is present on the Asus’ keyboard.

Living in Canada, it’s relatively hard for me to compare MSRPs, mostly because electronics are always more expensive in the Great North, but also because right now, 1 US Dollar equals 1.39 Canadian Dollar. But for what I see, for a comparable configuration the XPS 15 might cost about $350 US more than the ZenBook.

Acer Aspire V15 Nitro

Acer Aspire V15 Nitro Black Edition

Acer Aspire V15 Nitro Black Edition

As you might have noticed by now, what I really want is performance, without paying for features mostly gamers will want, and as of now, I’m still not a huge fan of touch-screens on laptops. So my last option could be to go with something cheaper, but with very comparable “core performances”: Intel Core i7-6700HQ, Nvidia GeForce 960M, but only 8 GB of RAM, and an old-school 1TB HDD, that I would immediately replace with a 256 GB SSD. I would lose the Thunderbolt port (which I really don’t mind right now), and save maybe $300 when compared to the Asus, and even more when compared to the Dell.

Anything to add?

I am still thinking about all this, and like I said, I’ll have to compare Canadian prices before making a final decision. If you would like to share your opinion on the subject, please do so! That might help me a lot. I usually keep my laptops for at least 5 years, so I want something that is going to last.

Thanks a lot for reading!

Deploying Flex iOS7 applications on the App Store

flex-ios-appsIf you did not know already, Apache Flex is a technology (a software development kit or SDK) used to build, and deploy cross-platform mobile applications or rich Internet applications (RIA). The technology has been donated to Apache in 2011, but still uses Adobe AIR or Flash Player as runtime. For many years, Adobe has been doing a great job of keeping its runtimes compatible with Apple’s guidelines and requirements.

A recent problem

In the past weeks, Apple announced that “Starting February 1, new apps and app updates submitted to the App Store must be built with Xcode 5 and iOS 7 SDK.” Could this really mean the death of Flex applications for iOS?

The solution

Fortunately, Adobe released a fix that is currently available through the latest beta release of Adobe AIR. So if you plan to publish on the App Store soon, you should re-run the Apache Flex SDK Installer, and where the installer asks you to select an AIR version, just select AIR 4.0beta. Proceed with the installation, and that’s it! Now build your app as you have always done, and enjoy the power cross-platform development!

Source: Building Apache Flex apps for iOS7

Update (March 2nd, 2014)

Please note that Adobe just changed the AIR versioning from 4.0 to 13.0 to synchronize it with Flash Player. When running the Apache Flex SDK installer, select the latest AIR version: AIR 13.0beta.

Ubuntu: Activate multi-touch on Elantech touchpad

Acer Aspire S7-392-9890

Acer Aspire S7-392-9890 13.3-Inch Touchscreen Ultrabook (Intel Core i7-4500U Processor, 8GB DDR3L, 256GB SSD)

If like me you recently bought a new computer with an Elantech touchpad, and installed Ubuntu on it, chances are your touchpad lacks the multitouch features, and therefore, you can’t scroll with it. This is extremely annoying to most of us. Tonight, I went back to Ubuntu bug page to realize someone has submitted a fix, and it seems to be working for many users. Just tried it on my Acer Aspire S7, and it worked perfectly for me too. So let me share it with you…

First, if you aren’t sure your computer was built with an Elantech touchpad, open a terminal, and type the following:

cat /proc/bus/input/devices

You should find a block containing a line looking like this one, which confirms you are on an Elantech touchpad:

N: Name="ETPS/2 Elantech Touchpad"

Download this archive (from Ubuntu’s bug reporting page).

Open a terminal, and follow these steps (after step 4, you will have no mouse at all):

cd ~/Downloads
sudo dkms ldtarball psmouse-elantech-x551c.tar.gz
sudo dkms install -m psmouse -v elantech-x551c
sudo rmmod psmouse
sudo modprobe psmouse

Enjoy multitouch!

Source: Elantech clickpad/touchpad lacks multitouch features

Installing Apache Flex SDK under Linux


Recently, the Apache Flex team released the latest version of Flex SDK: 4.10. This release came with a Linux installer for the first time since Adobe Flex Builder 3 alpha, several years ago. As a member of their user mailing list, I take part in certain discussions, often on the Linux support subject. It seems that users have difficulty installing the Flex SDK, even with the .deb (Debian software package) available on Apache Flex’s website. Taken from those discussions, here’s the easy way to install the Apache Flex SDK under Linux.

AIR dependency

Flex SDK is best installed using the SDK Installer, which requires Adobe AIR 2.6. If you didn’t already know, installing Adobe AIR on Linux isn’t that easy, as it is not supported by Adobe anymore. The easiest way I have found is this one:

  1. If you’re using a 64-bit Linux system, install the ia32-libs (AIR is 32-bit only):
    sudo apt-get install ia32-libs
  2. Go here ( and download the AIR installer for 64-bit systems (amd64) or 32-bit (i386)
  3. Install the package you just downloaded:
    sudo dpkg -i adobeair_2.6.0.19170_amd64.deb

You’re done with the installation of Adobe AIR.

Installing the SDK Installer

  1. Download the installer (.deb) here:
  2. Once you have downloaded the .deb, install it using dpkg (this command will force the installation, even if the AIR dependency is not resolved):
    sudo dpkg -i --force-depends apache-flex-sdk-installer-2.6.0-bin.deb
  3. Once the installer has been installed (you might encounter several warnings and errors, just ignored them), open a terminal and go the installation folder:
    cd "/opt/Apache Flex/Apache Flex SDK Installer/bin"
  4. Run the installer:
    ./Apache Flex SDK Installer
  5. Now you just need to decide where you want the SDK to be installed, and you’re good. Everything should go smoothly.

Uninstalling the SDK Installer

I really suggest that you uninstall the SDK Installer (but not the SDK, of course!) when you’re done, because it will cause you all sorts of errors with apt-get in the future. Errors that look like this:


org.apache.flex.installapacheflex:i386 : PreDepends: adobeair:i386 (>= 1: but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

This can be done very easily with the following command:

sudo apt-get -f install

As always, feel free to ask any question you might have, I’ll do my best to answer them. Have fun developing with Apache Flex and Linux!

Advanced Linux Mouse Configuration Made Easy

logitech-mouseThose of you using a mouse with multiple buttons, such as the one shown here, probably already know how painful it can be to make it work just as you’d like on Linux. I have myself been postponing the configuration of my Evoluent VerticalMouse for years. I recently gave myself a little kick in the butt, and came up with the following solution.

Identify your mouse

First, find the exact name of your, and copy it somewhere for later use:

xinput list

Mine is: “Evoluent VerticalMouse 4”

Learn your mouse’s buttons’ positions

Install xev if not already installed:

sudo apt-get install xev

Open a terminal, and run xev from the command line. A small white window will open. Put your mouse in that window, and try clicking one of your mouse’s buttons. You will get a lot of output for every click. You need to find a block that looks like this, the most important part being near the end (button 3 in this case):

ButtonPress event, serial 36, synthetic NO, window 0x3c00001,
 root 0x269, subw 0x3c00002, time 14058208, (44,38), root:(1725,240),
 state 0x10, button 3, same_screen YES

Now you can easily write down the number associated to every button of your mouse.

Choose the right order for your buttons

We will use xinput to change the button mapping. Starting with the button map you have just written down, you can easily swap buttons to match your preferences. For example, here’s what I had at first (my mouse has three buttons like in the old times, and two thumb buttons) :

  1. Left click
  2. Middle click (paste selected text in Linux)
  3. Right click
  4. Wheel scroll up
  5. Wheel scroll down
  6. ?
  7. ?
  8. Upper thumb click (back)
  9. Wheel click (forward)
  10. Lower thumb click

Here’s what I wanted :

  1. Left click (1)
  2. Right click (3)
  3. Forward (9)
  4. Wheel scroll up (4)
  5. Wheel scroll down (5)
  6. ?
  7. ?
  8. Back (8)
  9. Paste selected text (2)
  10. Lower thumb click (unused… 10)

In my case, the xinput command looks like this:

xinput -set-button-map "Evoluent VerticalMouse 4" 1 3 9 4 5 6 7 8 2 10

You can run this command in the terminal to test if your configuration works well. You can always come back to default with :

xinput -set-button-map "Evoluent VerticalMouse 4" 1 2 3 4 5 6 7 8 9 10

Make your command run at startup

We’re almost done… Now create a file in your home directory with a name something like .mouse_config, and paste your xinput command in it. Open the automatic startup program that comes with your OS. Its name in Ubuntu 12.04 is Startup Applications. Add a new entry that points to your script, add a name and a description if you want to, and that’s it! Enjoy a perfectly working mouse!

Installing a Transmission Daemon on Ubuntu

TransmissionLet’s say you have a computer (could be your home file server) on which you want to install a torrent client as daemon (command line), and manage it through a Web interface. Would be great, right? It’s pretty easy to achieve but there are a couple of details you need to pay attention to.

Note: This tutorial was written for Ubuntu Server 12.04 but it doesn’t mean it can’t be useful for other versions or distros.

Required packages

It’s pretty simple as only a couple of packages need to be installed, and they are already in the repositories. For readability, I’m putting each of them on a different line, but they should all go on the same.

sudo apt-get install transmission-cli

Create folders for Transmission

Even if you could always use the default folders, I like keeping track of everything, the way I want it. So here’s what I’ve done. I think the folder names talk by themselves.

sudo mkdir ~/transmission
sudo mkdir ~/transmission/complete
sudo mkdir ~/transmission/downloading
sudo mkdir ~/transmission/torrents


This step isn’t crucial, but it will save you lots of “sudo” commands in the future. By default, Transmission always gives downloaded files permissions to the transmission group (debian-transmission to be more precise). This is why adding your user to this group could be a good idea. Make sure your replace your_user in the following commands:

sudo usermod -a -G debian-transmission your_user

Now you need to set the correct ownership and permissions:

sudo chown -R your_user:debian-transmission ~/transmission
sudo chmod -R 755 ~/transmission

A good configuration file

Now this part is very important. The configuration file must be filled correctly or else you might not be able to access Transmission’s web interface. Many other things could also “go wrong”. But don’t worry, you can edit this file anytime in the future to fix any problem you might encounter.

First thing to do is to stop the daemon. If you don’t, the configuration file will be overridden when Transmission closes the next time.

sudo /etc/init.d/transmission-daemon stop

Use any text editor (I use Nano here) to edit the configuration file.

sudo nano /etc/transmission-daemon/settings.json

You will find all possible settings here: official Transmission wiki.

When you’re done, restart the daemon.

sudo /etc/init.d/transmission-daemon start

Configuration file example

Here’s an example of what I have added or changed from the default configuration file. Don’t forget to change your_favorite_list_url and your_user in the following example.

"blocklist-enabled": true,
"blocklist-updates-enabled": true,
"blocklist-url": "your_favorite_list_url",

"download-dir": "/home/your_user/transmission/complete",

"incomplete-dir-enabled": true,
"incomplete-dir": "/home/your_user/transmission/downloading",

"rpc-authentication-required": false,
"rpc-whitelist-enabled": false,

"watch-dir-enabled": true,
"watch-dir": "/home/your_user/transmission/torrents"

Make sure there’s a comma at the end of each line, except for the last one. The last entry (watch-dir), means every torrent file your copy in that folder will be automatically added by Transmission. Download should start only seconds after that.

Port forwarding

For optimal performance in both download and upload, it is recommended to open/forward Transmission’s default port, 51413. To do that, you will need to access your router’s from your favorite Web browser (usually at or If you need help passed that point, I suggest googling for something like “your_router_model port forwarding”. You should find plenty of information.

Access Transmission WebUI

Now that you have stopped the daemon, edited settings.json, and restarted the daemon, you should be able to access the Web interface. Simply navigate to your server/computer’s IP and port 9091 (can be changed in settings.json if it doesn’t suit your needs), which should look something like:

Last step: show your girlfriend how to add new torrents using WebUI. 😉

Playing Diablo 3 on Ubuntu Made Very Easy!

After trying to install Diablo 3 on my Hackintosh from and original DVD an failing (it installed fine but the game won’t start), I decided to look for an Ubuntu solution. This is when I learned about PlayOnLinux, a Wine graphic user interface that makes installation of Windows programs very easy. So here’s a VERY EASY guide to install Diablo 3 on Ubuntu with online installation files.

  1. Make sure your game is correctly registered in your account
  2. Download the Diable 3 Game Client (for Windows) from that same account
  3. Open the Ubuntu Software Center
  4. Search for PlayOnLinux and install it (this might take a while)
  5. Start PlayOnLinux, and complete the basic configuration steps (mostly automatic)
  6. Click on the Install button, and select the Testing category in the menu on the left
  7. Select Diablo 3, click install, and follow the instructions
  8. Complete the download/install process
  9. You’re done! Enjoy Diablo 3 on Ubuntu!

Note: I had a little resolution glitch when first started the game. Changing the resolution from the login screen inside the game fixed it.

Other note: the guys at PlayOnLinux say they will support the DVD install method soon.


If you’re using Ubuntu 12.04, and experience the connection error #3007 over and over, here’s a solution that seems to work. Before connection, open a terminal and type this command:

echo 0|sudo tee /proc/sys/kernel/yama/ptrace_scope

This solution comes from that thread in PlayOnLinux forums. Please let us know if it works for you or not.

Installing Dictionaries in LibreOffice – Ubuntu 12.04

Dictionary-ThesaurusYou just installed or updated to Ubuntu 12.04 (Precise Pangolin), and now you realize you need correction tools for a language that didn’t come by default? Follow these very simple steps, and you’ll be ready to go in a matter of minutes.

Make sure you have sudo access

First, you need to make sure you have administrator (sudo) rights on your system (which you most probably have if you installed it yourself). If you are not sure you have sudo access on your system, try the following:

  • Open a terminal (can be done from the Dash Home menu)
  • Type the command written below (it updates APT’s local package index and is totally inoffensive)
  • The command will ask for the sudo password, enter your usual password
  • If you have sudo access,  you should see a list of package update URLs go through the terminal window
  • If you don’t have access, find who does! (sorry, we can’t really help you here)
sudo apt-get update

Install dictionary packages

Two packages must be installed. The first is the dictionary itself, the second will add correct hyphenation patterns to LibreOffice’s corrector. Examples here are for French, but you only need to change the last part (fr) for the language of your choice. For example: sp for Spanish, or de for German.

sudo apt-get install myspell-fr
sudo apt-get install hyphen-fr

Thesaurus (synonyms and antonyms) for your language

If you are interested in having thesaurus features for your newly installed language, you only need to install one package:

sudo apt-get install mythes-fr

The shortcut to access thesaurus in LibreOffice is CTRL+F7.

Change the default language for all documents

Now that you have installed a new dictionary (and maybe more correction tools), you probably want to change the default language/dictionary for new documents you will create. Here’s how to do that:

  1. Open Writer
  2. From the top menu go to: Tools / Options. A new windows will open
  3. In the left menu of this new window, go to: Language Settings / Languages
  4. Look for Default languages for documents, and just under it, choose your preferred language
  5. Take a look at the other options above if you want to
  6. Close the Options windows
  7. You should see the language you have just selected at the center-left of Writer’s bottom toolbar

Tips to Strong Passwords for Improved Privacy

LockMany people think the strongest passwords are those made of special/foreign characters such as É, &, * or ¿. A password looking like g&J2!3aQ must be pretty strong right? What about taking a dictionary word, and replacing letters with numbers, for example, 0r4ng3? Well, these two examples aren’t THAT strong.

For a human being without automated tools, the first one is kinda hard to break, and the second one is a bit easier. For a specialized bot though, it’s almost as easy as breaking 87654321. Many algorithms exist to help dishonest people break into your email, bank Web access, or social media accounts. I’m sure all of you will want to prevent that. Following are my personal advices for safer passwords (or pass phrases). Some are based on computer science facts, and others on real experiences from friends, and myself. They can’t be taken as the ultimate truth, but will help you achieve better safety for your multiple on-line accounts.

Don’t use the same password twice

Imagine you are on a public computer signing in to some irrelevant website, let’s say to leave a comment on a forum, and someone sees what you are typing: your email address (which is often used as username), and your password. He can now access your email account if it is protected by the same password. From there, he can do almost anything because he’ll be able to use the “retrieve your password” feature of all other websites you have an account on.

Prefer a long phrase to a complicated short password

As illustrated in this image, the longer the password, the better. More than that, you can choose it so it’s easier for you to remember. “I lost my favorite green shoe” (if it means something to you), is much easier to remember than uJ@ggC9K!.

Some miscellaneous tips for short passwords

If a site limits you to a short password (10 or 12 characters for example), here are some easy tips you can follow :

  • Don’t use dictionary words or people/place names, even with numbers at the beginning or end, this is the first thing password crackers will try
  • Same thing with replacing letters with “matching” numbers: m4st3r, those are broken easily
  • Find something easy to remember so you don’t have to write it down, for example : 1994 with “turtles” (the year you bought your favorite turtles): 1tURt99Les4
  • You might wanna use a more complex combination of uppercase and lowercase letters, and also numbers to make it hard to break for humans

Don’t change your password for no reason

If your account hasn’t been compromised, and if you don’t have a good reason to change your password, don’t change it. You risk forgetting it or maybe not choosing a password as strong as your first one. Remember, it hasn’t been cracked yet! 😉

Please, I’m sure some of you readers will have more tips, and maybe discredit mine, who knows. Feel free to leave your comments.

« Older posts

© 2016 Evil Coding Monkey

Theme by Anders NorenUp ↑