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 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 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
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
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!
If 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?
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!
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.
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:
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
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.
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:
- If you're using a 64-bit Linux system, install the ia32-libs (AIR is 32-bit only):
sudo apt-get install ia32-libs
- Go here (http://update.devolo.com/linux/apt/pool/main/a/adobeair/) and download the AIR installer for 64-bit systems (amd64) or 32-bit (i386)
- Install the package you just downloaded:
sudo dpkg -i adobeair_188.8.131.5270_amd64.deb
You're done with the installation of Adobe AIR.
Installing the SDK Installer
- Download the installer (.deb) here: http://flex.apache.org/installer.html
- 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
- 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"
- Run the installer:
./Apache\ Flex\ SDK\ Installer
- 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:184.108.40.206) 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!
Let'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.
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 transmission-common transmission-daemon
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.
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 http://192.168.0.1 or http://192.168.1.1). 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: http://192.168.1.101:9091.
Last step: show your girlfriend how to add new torrents using WebUI. 😉
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.
- Make sure your game is correctly registered in your Battle.net account
- Download the Diable 3 Game Client (for Windows) from that same account
- Open the Ubuntu Software Center
- Search for PlayOnLinux and install it (this might take a while)
- Start PlayOnLinux, and complete the basic configuration steps (mostly automatic)
- Click on the Install button, and select the Testing category in the menu on the left
- Select Diablo 3, click install, and follow the instructions
- Complete the download/install process
- 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.
You 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:
- Open Writer
- From the top menu go to: Tools / Options. A new windows will open
- In the left menu of this new window, go to: Language Settings / Languages
- Look for Default languages for documents, and just under it, choose your preferred language
- Take a look at the other options above if you want to
- Close the Options windows
- You should see the language you have just selected at the center-left of Writer's bottom toolbar
Many 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.
Last year I talked a bit about some of my augmented reality projects. Many of you have sent questions and posted comments so I suppose there is a certain level of interest in that field. One of the conclusions I had back then was that to achieve a certain level of quality (great lighting effects, surface reflection, etc.) when rendering a 3D model in an augmented reality project, you better use a good 3D engine (such as Unity). I still think this is true.
Yesterday I "discovered" that Unity is offering its iOS and Android "basic" license for free until April 8th. Normally, you'd have to pay $400 for each of them. So if you were unsure Unity was a good choice for your project of not, go ahead and buy it for free. 😉 What a great way to finally test it out.
- Go to https://store.unity3d.com/index.html
- Select Unity FREE
- Add features: iOS and Android (both free until April 8th)
- Proceed to checkout
- Open email upon reception, and follow the instructions
Now enjoy your brand new installed Unity development tools!