Get Blogged by JoKi

"The only frontiers are in your mind"
18 | 05 | 2013
Navigation
Syndication
feed-image RSS 2.0
Latest Tweets
Most Read Articles
Article Time Line
About me
Microsoft MVP - Visual Developer for Visual FoxPro 2006 & 2007

Microsoft Specialist - Programming in HTML5 with JavaScript and CSS3 Specialist

Microsoft Certified Professional

Get in touch

Sharing is caring

Recent books

Sponsoring
If you like the information on these pages, your support is highly appreciated.
Thank you very much!
Affiliates
Spacer for layout formatting

Get Blogged by JoKi

Jochen Kirstaetter (2008)

The only frontiers are in your mind, welcome to my blog sphere. Your host at is Jochen Kirstätter aka JoKi.

Dive into the weird world of a professional Software Craftsman and follow his daily victories and struggles with modern technology at IOS Indian Ocean Software Ltd. I am a Microsoft Certified Professional (MCP) for Visual FoxPro, was Microsoft Most Valuable Professional (MVP) for Visual FoxPro in 2006 and 2007, and from spring 2004 until end of 2006 I organized monthly user group meetings as regional director of German FoxPro User Group (dFPUG). Based on this community activities I am also member of Microsoft Community Leader/Insider Program (CLIP) and PASS Deutschland e.V.

This blog is also about Flic en Flac and the beautiful island of Mauritius, my home.

Sincerely, JoKi



Essentials for software developer or any computer job
User Rating:Rating indicatorRating indicatorRating indicatorRating indicatorNon-rating indicator / 4
PoorBest 
Development
Monday, 13 May 2013 10:03

I have been talking about the following on many occasions during the last years already. Actually, it is always part of my consulting services when companies ask for advice on what they should do to improve the overall satisfaction of their software developers. But in general, it's pretty simple: The following are my essentials for any software developer or craftsman that is taking her or his profession seriously. Originally, I started my list with the first four topics only but experience taught me that there is more to this. And even nowadays, I would clearly say that this overview scratches the surface only.

Touch-typing

After being introduced to a team of software developers and/or testers by project or company management, I really enjoy myself to ask this particular question at a very early stage:

"Do you touch-type?"

I can tell you the expressions of their faces says more than any written book I've read so far. It's absolutely amazing how such a simple question puts everyone in the room into a dazzling state and gets them to look, uhm sometimes even to gaze at me with a touch of glare in their eyes, as if I just spoke in an unknown language. The reactions are mixed but usually the responses are similar to this short selection:

  • "What?"
  • "Sorry, I don't understand."
  • "What do mean by touch-typing?"
  • "No... ?"

Honestly, I have to admit that I totally understand this kind of answer based on the fact that absolutely nowhere young programmers or developers are educated and trained in an efficient way to use their daily tools of future work. Seriously, that question would be comparable to ask an architect whether she uses a calculator on her job. Only, that her reply would be more like this: "Of course."

So what is the actual problem about the fact that most developers I meet here on the island are not capable to touch-type, or sometimes don't even know what I'm actually talking about? Sincerely, I have no straight answer to this but it seems obvious to all of them that working 6+ hours per day at the PC, using the keyboard to get the work done, doesn't necessarily require to be fast and efficient.

Definition of TOUCH-TYPE
: to type by the touch system
-- touch typist noun
Source: Definition taken from Merriam-Webster - http://www.merriam-webster.com/dictionary/touch-type

Know your tools... well, getting a glimpse at the various curriculum at the tertiary educational institutes reveals a little bit more. Touch-typing isn't part of the education and therefore ignored. Any software developer without touch-type capability would have difficulties with my equipment - das keyboard Ultimate:

Das Keyboard ultimate is a blank keyboard and the ultimate experience of touch-typing
das keyboard Ultimate is a keyboard with blank keys and the ultimate experience of touch-typing

Most people really don't understand the consequences. It's not only about time, effort and cost but also plays a great role in daily motivation. I know that developers what to write code first, uhm, maybe I should say to type code first. But what's the purpose if creating wonderful code when your physical capabilities are far behind your mental ones? It's like producing a lot of output that gets finally stuck in the I/O buffers of your body.

Latest generation of hardware and software

Obviously this should be a no-brainer but reality bites and quite often developers' machines are not top-notch. There are various reasons for that and hundreds of excuses made by an employer but frankly speaking at least every two to three years latest it is necessary to upgrade the work equipment. Again, this is also something I clearly advice to other companies: Faster machine, less time-consuming and more efficiency of their developers and software testers. When I begin to work with new teams I like to get a better understanding of their opinion about their work, and as you might have guessed already... The computer they are using is usually part of those conversations. Either because I ask about it or they already tell me that they are not happy about their PC. Usually, they have more powerful machines at home, either for gaming or to develop on private projects. Imagine the frustration they have coming to work and only finding a dead-slow machine. The pain of waiting until the IDE has started and loaded the recent projects finally. Some of them even switch on the machine, wait to login and then go for their cup of coffee until auto-started software applications enter a state of readiness.

In rare cases I witnessed that they even brought in their own laptop and left alone the hardware provided by their employer. How embarrassing this might be...

Anyway, latest hardware means faster processing, lower latency and higher productivity of each single employee. Or at least it is plausible to cut off that argument that a job couldn't be done due to hardware-related limitations, etc. blah blah.

Oh before I forget to write about that one: Get yourself at least a second screen!

Working with multiple screens increases a software developers productivity
Working with multiple screens increases a software developers productivity

No matter the screen size, okay at least 19" should do, put an additional screen on your desk. If you are working on a laptop, use the VGA or HDMI output for the better. In worst case you could use an older machine and install Synergy on both of them.

The rise in your productivity using a second screen compared to switching applications is outstanding. And the return of investment (ROI) is incredible fast. I really wonder how archaic certain software companies are when they don't provide a second screen to their employees. Here is a little anecdote from the past: It was on my explicit request that my former employer started to introduce additional screens at work desks after I simply demonstrated to the manager that it is more efficient and productive to work on multiple screens. At that time I was used to work on three screens since years on my private machine at home, and it was absolutely frustrating to go to work. A couple of days later, I got a new graphics card, a second screen and my boss was overly happy with his own dual-screen machine. ;-)

Next, let's talk about software. Once again, stay on top of the game and work with the latest and greatest version that is currently on the market. Not only to show your commitment to your job but also to have access to the state-of-the-art on productivity. Just recently, I worked as consultant for a local company here in Mauritius and honestly I was shocked to see the numerous installations of Visual Studio 2005 on their Windows 7 machines. And to make things even worse, team leaders had either Visual Studio 2008 or 2010 on their machines. Taking into consideration that Visual Studio 2012 was in the final stages to hit the market, I urged them to plan and run a general upgrade on all machines.

Eventually, you might ask for the reason. Well, there were several of them and I'm going to discuss them in no preferential order.

Cost of licenses

True, software licenses do cost money and unfortunately it isn't obvious to some people that you have to take expenses on licenses into your annual budget planning. So no money planned, no upgrades available. Interestingly, while addressing this dilemma to my clients they are not aware of certain subsidizes programmes offered by the software producers. For example, as Registered Microsoft Partner you can purchase tailor-made variations of MSDN at an affordable price.

I'm always working on the latest available version of Microsoft Visual Studio, Microsoft SQL Server or Xamarin Studio. And if time allows even on the beta versions...

Project circumstances

The project is targeted to version X of the operating system and has to work with version Y of that product. Well, software changes and so should your development environment. There have been rare cases that a newer operating system simply sucked but in general go for the latest. Simply to leverage the improvements, read: bug fixes, and the new features that those software packages are offering. And to be prepared just in case that the client is going to ask you:

"Is (y)our software working properly on the upcoming OS?"

It's always better to say something like this

"Yes, it does (with some minor modifications). We already tested it some weeks/months ago while in beta stage."

than to shrug your shoulders and respond something like that "We don't know."

Maintenance of deployed applications

Oh yes, the crux with legacy code and the demons from the past. Well, in that case do yourself a big big favour and virtualise the environment. Simple as that, get a copy of either Microsoft Hyper-V, Oracle VirtualBox or VMware Workstation or Player, and move that old-fashioned piece of code over there. I'm going to write more on software virtualisation later in this article.

Proper chair

Remember what I wrote about touch typing? As a software developer you are likely to sit between six and eight hours every day at your workplace. Okay, there are these 'unpleasant' interruptions to either have a break or to attend a meeting but at the end of the day you are sitting most of the time at your desk. Either to code, to test or to read about your active tasks. Again, I think it is absolutely essential that you have an ergonomic chair that is well-suited for your body. Don't save money on your health! In case that you're employed and not comfortable with your chair or desk, speak to your manager or superior and evaluate possible solutions. It will be in their interest that you are confident and happy to come to work instead of having that annoying tension in your right shoulder or aches in your spine after an intensive coding session.

You will be surprised what a difference a good chair can make compared to one of those standard office chairs that you get for cheap. and it doesn't have to be expensive but at least there should be a couple of decent features:

  • Height adjustable
  • Adjustable back shield
  • Support for your lower spine and pelvis
  • Adjustable arm rests
  • Mesh fabrics

Well, you might think that I can easily speak of that being self-employed. But hey, no wait a second... even being an employer I took care of the well-being of my employees at their work space. As said, it is crucial that you feel comfortable at work.

Comfort = happiness = motivation = results

It's that simple!

Again, when consulting companies I usually ask them whether they have an initial budget for each new employee or even an annual allowance for the existing ones that could be used for the working environment. Of course, there is none... What would be the benefit of this? Hm, isn't it obvious that if an employee is allowed to 'design and implement' her work desk based on her choices is eventually higher bonded emotionally to this environment and therefore less likely to change later on? No?

Virtualisation and isolated project environments

This might not be applicable in all cases but nonetheless I think it is worth to mention and discuss it here, too. Frankly speaking, I use virtualisation of software since more than a decade. If I remember correctly, I used to have an early copy of VMware Workstation at that time, and it was quite an experimental experience to run multiple copies of Windows on the same computer. But it was absolutely delightful to be able to work on Windows 2000 and to test the software on Windows 98 or Windows NT 4.0 without the necessity of having another physical machine. Actually, virtualisation software is always one of the first software packages that I install on a new (or re-installed) machine.

Furthermore, as soon as you are working on multiple projects or for a number of clients, virtualisation always provides me with a clean development environment. Do you remember the old days of DLL hell? Yes? Well, I don't! ;-)

When I was assigned to work a new project I either asked the responsible project manager to give me a virtual machine, or if not available I created a master image which I put an the company's file server for all my team mates. The purpose of the virtualised environment is simply to avoid any kind of unpredictable behaviour of your development conditions. Furthermore, I am able to design and create the virtual image exactly to the likings of one of the customer machines. Later on, I used to run VMware Converter in order to virtualise one of the client's computer into a virtual one. This way, I was able to develop, run and test the software under more 'real' conditions.

And compared to my colleagues I had absolutely no trouble to install patches, upgrades and newer versions of software packages that are involved in the development process of a particular project. If it happened that it didn't work for the better, revert to latest snapshot and tada I'm back on track without any serious delays or whatsoever. Again, this also allows any developer to install and experience new versions of their IDE or additional software packages. Well, at that time it was mainly about incompatibility of different ActiveX controls or versions of Microsoft Office.

In case that you have to provide support for older operating systems for your customers. No problem, put that old-faggot in a VM and enjoy the latest OS you can get on your amazing hardware.

Virtualise your work environment to ease your life
Virtualise your work environment to ease your life

Need to test your latest web project with various browsers on another operating system or older versions of a particular browser, use a virtual machine and be happy!

Don't forget that this also shows your expertise and knowledge towards your clients. If it runs on your machine doesn't necessarilty mean that it runs on any machine. So be prepared and test it as much as you can. I recently had the situation that one of my clients had their website designed and implemented by another web designer. Fair enough everything was displayed and working as expected until I started to run my usual cross-OS and cross-browser tests in order to check my modifications in the code behind. You can't imagine the visual differences on various browsers on Mac OS X, Linux, Android or an iOS-based device. 'Unfortunately', it was a real eye-opener for the client and more work for the web designer to improve the site.

Ergonomic desk and working environment

do-not-disturb
Source:imgur.com

Well, this chapter is related to your proper choice of chair but goes a little bit beyond that. I'm going to leave my point of view on the working desk, on some accessories and constraints on your surrounding. You should pay some attention to your work desk, mainly on the height of the surface which is supposed to align properly with the position of your arms, especially your wrists. In case that you don't have access to a height-adjustable desk, you might be surprised what wonders a couple of bricks can do...

Talking about elevation, last year I saw a couple of alternatives to the conventional sitting position. Personally, I was mainly impressed by the concepts of the standing desk and the treadmill desk. The first one comes in quite handy and could be realised easily with only a few additional items whereas the latter might not be the best choice for your surrounding after all. But in case that you are working in your noise-reduced cubicle or even in your own office room. Yes, why not work-out while pouring those challenging software requirements into lines of code and test cases.

Next, take care that you spend some bucks on the keyboard, mouse, touch pad or trackball that you are using all day long. Based on my own experience I can tell you to take this dead-serious. At the beginning of my programmer's career I was always wondering about a tensed neck and shoulder. Finally, I found out that this was caused by hand movements on the mouse! And as soon as I replaced the mouse with a trackball I never had any issues of that kind anymore. There are serious, chronically injuries reported for any kind of typing work. Don't ruin your health because you (or rather your employer) saved some bucks on a proper keyboard. It's absolutely not worth it. The problem here is that the symptoms are not visible at the beginning but slowly sneak in after some months or even years of working at the desk. Listen to your body and change your equipment in case of problems. Just give it a try and see how it works.

Also, take care that your surrounding is calm and quiet. Put your maximum effort into your working comfort. If there's a problem, address it - ad hoc. Do not ignore it or push it away from you. Again, if you are not happy with your workspace your motivation will start to decay. Treat yourself with a professional environment and also don't be afraid of talking to your manager. It is very simple to describe your show-case and to proof that the circumstance might have a negative impact on your ability to focus, to concentrate and to deliver proper results as expected. A quick and cheap solution to 'dis-connect' yourself from your surrounding is to put on headphones or earplugs. Not only do you block any disturbing sounds but you also visualise to your colleagues a simple yet effective 'Do not disturb'. Again, I can tell you out of my own experience it works incredible well. I used to yell (and sometimes even swear) at my mates when they came to my desk and talked to me out of the blue. Guys, my apologies for that but we found a solution. After I discussed this with my boss, we came up with a simple system that in case of questions or issues to speak about to notify each other through an instant message. It worked flawlessly from day one on, and was quickly adapted by all colleagues.

This paragraph might be restricted to offices in Mauritius only but you never know... Comfortable temperature!

I cannot recall how many times I went into a freezer instead of an office for software developers here over the island. It is sheer insanity of some companies on how they set the temperature of their air conditioning. As a rule of thumb the inside temperature should not exceed a difference of 5 degrees Celsius compared to the outdoor temperature. Anything else is not healthy and will get you sick. Can you imagine to see computer workers sitting in long-sleeves or even cardigans at their PC while everything else outside is literally melting away and daring for water? No? Then you should come to Mauritius...

Clean desk policy

Another hot topic that you should pay some attention to are those 'unnecessary extras' on your work desk.

Golden rule #1: No food on or near the desk!

Seriously, do not keep any kind of food or snacks or whatsoever edible in the reachable surrounding of your work desk. It is not only disgusting to have crumbs of bread between the keys of a keyboard but also unhealthy for your body as you tend to eat mindless and unconsciousness. And leaving your desk to have a drink or have a snack gives you the ability to chat and exchange with your co-workers.

Please, feel free and tell me in the comment section about how your desktop currently looks like. If you'd like to take a picture and send it to me via email. I would be glad to write a follow-up article on this one with your contributions, seriously. Looking at my desk at the moment, I'm not too happy either. And as a matter of fact I just interrupted my work on this article, cleared up my desk and took a picture for you:

Keep your desk as clean as possible to avoid any kind of distraction
Keep your desk as clean as possible to avoid any kind of distraction

Now, I'm feeling more comfortable and more important: Less distracted!

Golden rule #2: Divide your daily tasks into chunks!

You don't have to monitor your email inbox every minute, don't need those nasty notification popups, or check your buddies' status on any social network. Instead, just have your instant messaging software up and running minimized, and focus on your main work: Coding.

Same as you are off from your desk occasionally, take care of this kind of tasks on specific times or bind them to other activities. For example, my mail client is usually closed during the day and only on certain activities, like ie. going to the tea kitchen to drink some water or to have my lunch break, etc. I check my mails and reply to them immediately. Don't forget, email is actually an asynchronous way of communication and you might assume that your communication partner is not expecting an answer within a couple of minutes. If they do, sorry then the choice of medium is rather poor; in such cases it would be better to use either instant messaging or pick up the phone and call the person.

Golden rule #3: Put your mobile away!

If your (personal) cellular or your smartphone isn't involved into your development process, simply do yourself a favour and put it out of your sight. Best would be to switch it into 'Meeting' profile and simply leave it in your bag. Please don't forget that you are actually at work, and not somewhere at a cafe.

But there might be some kind of emergency case, you might argue. True but honestly, everyone is (or should be) aware that you are at work and that they should call at the office in order to reach you. And let's not forget that the battery could be down, you forgot your mobile at home, etc. So, in case of an emergency it is way safer to call at the office.

Access to literature and training

Apart from writing software it is absolutely compulsory for any serious software developer to read books, blog articles and technical advisories, to watch tutorials or even to attend conferences on the technology you are working in. Actually, this is common to any kind of profession! Maybe I might be wrong here but for example doctors have to document their annual progress on latest research and products in the medical field. And so should software developers, too.

  • When was the last time that you read a book on a specific technology?
  • Do you know how many software-related books you read during a year?
  • Did you read any book since you left university?

Again, these are some of my standard questions when working with a new team of software developers. As for my part, I read approximately 5 to 6 technical titles in one year. Sometimes, I don't even need the content on an active project but the title did attract my attention and therefore I go for it. Interestingly, there had been occasions where that non-related title gave me an advantage on future work.

Nowadays, there are endless possibilities to gain access to high-quality material, especially in the field of software development. If you are a Windows developer go and check out MSDN and TechNet. Microsoft's latest achievement is called Microsoft Virtual Academy which provides online material and video courses on specific topics - for free! The recorded material is top-notch and you are able to download it for latter reference. Furthermore, I highly recommend you to get a subscription to one of the many eLearning platforms like Pluralsight, Lynda, TekPub, etc. just to name a view. And not to forget, check out the online tutorials from tool and libraries; ie. Telerik TV is a great resource in case you are working with their products.

Pick up the challenge and go for certifications. Yes, certifications will help you massively to know where you are standing with your knowledge, how to isolate blank spots and give you a deeper insight on the technologies you are dealing with on a daily base. Depending on your position, you should classify certifications as an investment into your future and to be able to stand out against other competitors on the market. As an employee you might like to discuss certifications as being part of your annual performance report. Not only do you show your employer clearly that you care for your job but it also increases your value for your employer. And honestly, it is a simple win-win situation for both parties. You get the chance to proof your knowledge and the certifications are personal, and your employer knows that you are able to deliver high quality results at a certain standard.

Learning on the job or during your spare time is essential as a software craftsman. Keep yourself educated and valuable to yourself, your employer and your clients.

 
Upgrade to Xubuntu 13.04 - Raring Ringtail
Linux
Thursday, 09 May 2013 10:09

Over the last couple of years, I had various levels of upgrade experience with Ubuntu, or more precise Xubuntu in my case. Those ones range from complete disaster (due to hardware issues) over good fun with some minor tweaks up to seamless. Following describes the steps and aftermath I did to upgrade my main working machine from Xubuntu 12.10 Quantal Quetzal to version 13.04 aka Raring Ringtail.

Preparations

In general, it is highly recommended that you read the official upgrade documentation of Ubuntu. Next, get your recent system up-to-date before you consider to upgrade. Also, take care that there are no pending partial upgrades or packages on hold. This might have a negative impact on the installation process of the newer packages. There are two possibilities to take of that: UI or terminal.

As for the UI, launch either the Ubuntu Software Centre or Synaptic Package Manager and check the status of your system.

ubuntu_software_centre
Check your system's status in Ubuntu Software Centre

synaptic_package_manager
The Synaptic Package Manager is a good alternative to check your system

and for those ones who prefer to work on the console, you might already know the procedure

$ sudo apt-get install -f
$ sudo apt-get update && sudo apt-get upgrade

And in worst case you might even consider to clean up a little bit before continuing with the release upgrade

$ sudo apt-get autoremove
$ sudo apt-get clean && sudo apt-get autoclean

That should do the work to put your machine in a clean state. One last step: Terminate any kind of screen saver or screen locker applications. The upgrade process will update libc6 and therefore is going to remind you that you might take the risk to get locked out of you system. Now, we are set for the next steps.

Initiate the upgrade

Start the process graphically via Applications menu > Settings Manager > Scroll down to section 'System' > Software Updater

settings_manager
Accessing the Software Updater in the Settings Manager

or run the following command to launch the visual Software Updater

$ sudo update-manager

Eventually, you have to adjust your settings for the available Ubuntu versions. Simply open the settings dialog and check that 'For any new version' is the selected value.

software_updater_settings
Check your notification setting on new Ubuntu versions

Afterwards, the updater should offer you Ubuntu version 13.04 as upgrade path.

In the console you have to modify your repository paths first. Open your favourite console text editor and change all occurences of 'quantal' into 'raring'

$ sudo nano /etc/apt/sources.list

Your file should look similar to this one:

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://mu.archive.ubuntu.com/ubuntu/ raring main restricted
deb-src http://mu.archive.ubuntu.com/ubuntu/ raring main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://mu.archive.ubuntu.com/ubuntu/ raring-updates main restricted
deb-src http://mu.archive.ubuntu.com/ubuntu/ raring-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://mu.archive.ubuntu.com/ubuntu/ raring universe
deb-src http://mu.archive.ubuntu.com/ubuntu/ raring universe
deb http://mu.archive.ubuntu.com/ubuntu/ raring-updates universe
deb-src http://mu.archive.ubuntu.com/ubuntu/ raring-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://mu.archive.ubuntu.com/ubuntu/ raring multiverse
deb-src http://mu.archive.ubuntu.com/ubuntu/ raring multiverse
deb http://mu.archive.ubuntu.com/ubuntu/ raring-updates multiverse
deb-src http://mu.archive.ubuntu.com/ubuntu/ raring-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes

And temporarily comment all the additional third-party repositories for the upgrade. We are going to enable them after the core update. Afterwards, simply type this

$ sudo apt-get update
$ sudo apt-get dist-upgrade

Now, it's time to lean back, wait for the packages to be downloaded and confirm a couple of questions from time to time. Depending on your amount of installed packages and your bandwidth it will take some while to get everything. As a reference, I had to upgrade 1720 packages with a total download size of approximately 1.1 GB. Due to my restricted bandwidth I left my machine alone overnight and do all the fun stuff. Next morning, some minor checks and rebooting the machine. The first fresh boot took a little longer than usual but the graphical login screen appeared as expected and after successful login my system was up to date.

ubuntu_uptodate
When all is said and done, work can be fun!

In case that you like to be on the safe side, you might consider to download the packages completely first and then do the upgrade itself afterwards:

$ sudo ap-get dist-upgrade -d

Doing the aftermath

This mainly depends on your package selection. In my case, I only had to take care of two specific applications: Skype and VMware Player. Well, as for VMware Player I had to re-install the application. You should use at least version 5.0.2 which is known to work out of the box on Ubuntu 13.04. Just in case that you don't have the latest version, get it from VMware and run the following in the directory with the bundle file:

$ sudo vmware-installer -u vmware-player
$ sudo chmod +x VMware-Player-5.0.2-1031769.x86_64.bundle
$ sudo ./VMware-Player-5.0.2-1031769.x86_64.bundle

This will do the trick and VMware Player runs again.

Skype actually took me a little bit more research (read: run some Google search queries) due to an error:

$ /usr/bin/skype
(Segmentation fault)

But the solution is also very simple. Skype requires to pre-load the libGL library in order to run properly

$ LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0 skype

And to simplify your life, create launcher script as a 'transparent proxy' for Skype:

$ sudo cd /usr/bin
$ sudo mv skype skype-bin
$ sudo nano skype

Your shell script should look like so:

#!/bin/sh
export LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0
exec skype-bin "$@"

Save your file and enable the execute bit on the script:

$ sudo chmod +x skype

That's it! Skype starts again as expected...

Optional: Decluttering

Xubuntu 13.04 comes with a couple of re-introduced software packages that you might like to get rid of. Check out the installed applications in your Ubuntu Software Centre or Synaptic Package Manager and remove them as needed.

 
Side-load and read your mobi ebooks on Kindle for iOS
iOS
Wednesday, 01 May 2013 10:20

Inspired by my own article on side-loading ebooks on Kindle for Android I wanted to know how to do it for iOS-based devices like the iPhone, the iPad, or the iPod. It seems that the possibilities are on the one side different but on the other side somehow 'richer' compared to Android.

First of all, due to the 'walled garden' concept in iOS you can not simply hook up your device to your Mac or PC and transfer the files 'as-is'. This is the major difference to Android which is a huge drawback according to my perception but not too bad after all for the majority of users in general.

Furthermore, the various methods to side-load an ebook to your Kindle app have been evolved. Mainly because several hacks from the old days became obsolete due to updates on the app itself. This is pretty positive that the app developers over at Amazon are taking the feedback of their users into consideration and enable more features over the time.

Using iExplorer (previously known as iPhoneExplorer)

Several search results are pointing the forum threads what recommend to use a software called iExplorer in order to transfer your non-Amazon ebooks to your device. The important information in this scenario seems that the folder names vary between running iExplorer on a Mac or using it on a Windows PC:

  • Mac folder: Apps/Kindle/Documents/eBooks
  • PC folder: Apps/com.amazon.Lassen/Documents/eBooks

Either way your book is going to show-up in your library. Most probably without a cover image.

But iExplorer seems to require the installation of iTunes which brings us to the situation that this method about iPhoneExplorer or nowadays iExplorer is actually obsolete. So, in case that you are only interested to side-load your Kindle titles to your iPhone, iPad or iPod don't bother yourself with the application. Otherwise, it's a great piece of software to control other parts of your devices, too.

Using iTunes

This might be the easiest version after all. Connect your device via USB, navigate within iTunes to Apps > File Sharing > Apps: Kindle > Kindle Documents and simply drag & drop your MOBIs from Mac Finder or Windows Explorer there. Or choose your files via the Add... dialog.

Transfer your .mobi files to your Kindle for iPad with iTunes
Transfer your .mobi files to your Kindle for iPad with iTunes

Of course, always assuming that you are actually having a Mac or Windows system at your fingertips. This looks completely different while running on Linux.

'Downloading' the ebook to your device

Since Kindle version 2.5 (~ November 2011) it is possible to use the registered app features directly on your device.

Access millions of free and out-of-copyright books from Project Gutenberg, Internet Archive, and other online sources. Open supported files from Safari and Mail or use File Sharing in iTunes to transfer files to your Kindle app.

Sounds too good to be true?

While accessing .mobi files Safari offers a dialog to 'Open in Kindle'
While accessing .mobi files Safari offers a dialog to 'Open in Kindle'

No, it actually works pretty smart but as stated in the release notes it is somehow restricted to the native iOS apps like Safari or Mail. Unfortunately, I couldn't manage to download a file in mobi format from the Project Gutenberg web site in Chrome:

Chrome fails to open .mobi files for Kindle for iPad
Chrome fails to open .mobi files for Kindle for iPad

"Download Failed - Chrome cannot download this file. Error 102 (): Unknown File Type." - Thanks for that!

Amazon's Send to Kindle feature

As already mentioned in the Android experience your Kindle for iPad app or your Kindle for iPhone/iPod app has the ability to receive documents (in)directly through your Amazon's Cloud storage. Either you change to the tab 'Docs' (Kindle for iPad, might be different on iPhone/iPod) or you open the Settings menu in your Kindle app to discover your device-specific 'Send-to-Kindle Email Address'.

Lookup your 'Send-to-Kindle' Email Address in the Settings menu
Lookup your 'Send-to-Kindle' Email Address in the Settings menu

Next, send an email to that particular mail address with your MOBI file or any other kind of document as attachment. Wait for some minutes and synchronise your device.

All described methods are very simple to follow and sideloading your own Kindle ebooks on your Kindle for iPad app isn't really an issue anymore as it used to be in the past. Thanks to standard features in iTunes and the 'Send-to'Kindle' mail delivery you can quickly enjoy your books on any iOS-based device.

Happy reading!

 
Side-load and read your ebooks on Kindle for Android
Android
Thursday, 25 April 2013 13:47

Although, I'm using the freely available Kindle app for Android it only happened recently that I run into the situation to upload an existing ebook in mobi format to my Android tablet. To be more precise, I purchased some titles from O'Reilly's Ebook library.

Upload the ebook to your device

Well, uploading the file wasn't really the problem. There are multiple apps in the Play Store which either allow you to access your existing network resources, like an SMB-based file share, FTP server or NAS, or turn your device into a server which can be accessed from your desktop machine via network. Just for matters of completion, I'm using ES File Explorer to access my NAS or run Air Droid to directly access my tablet through a browser. Anyway, there are tons of other apps to provide similar features. Maybe you leave a comment on your recommendations.

Where to store the ebook?

So, while transferring the ebook to the device isn't really a challenge I started to wonder where to store the file actually? Does the Kindle app scan your directories and possibly include any ebook to its library found? Similar to the Gallery app. Initially, I was hoping for that as I put the file into my regular 'Downloads' folder. Firing up and sync'ing the Kindle app did not produce the expected book cover in my library. Of course, you might think...

Okay, second try: Using my favourite file explorer I browsed through the folder hierarchy on the device.
This revealed that there are two potential candidates to store the file:

  • /sdcard/kindle and
  • /sdcard/data/Android/com.amazon.kindle/files

Solution: /sdcard/kindle

Actually, it turns out that the first one is the right one (read: better one) even though both seem to work. Simply copy your mobi-based ebook into that directory and then fire up your Kindle app for Android.
Unfortunately, any side-loaded ebook is not synchronised with your Amazon Cloud storage and therefore will not appear on any of the other devices you might use to access your Kindle library. In my case, that's not a big deal mainly because I only use my tablet to read ebooks after all.

Alternative: Send an email to your Kindle account

Frankly speaking, I haven't tried this approach (yet). The concept here is that Amazon provides a service called 'send to kindle' which gives you an unique email address for your Kindle account and allows you to send any kind of documents (mobi, doc, pdf, etc) to yourself and it will be distributed to your Kindle devices and readers, like ie. Kindle app for Android.

Guess, I should give it a try and report soon about the experience.

Update:

I just did a test run and sent a freely available ebook from Project Gutenberg as an email attachment to one of my Kindle 'devices'. After a 'Sync & Check for Items' the new title appeared as expected in my library and was downloaded to the device. Unfortunately, it doesn't appear in the cloud library and therefore not on other devices or Kindle reader apps like on iOS or Windows 8. Sorry, my mistake. Eventually, I was too fast last time checking.

Documents sent via email to your Amazon Cloud storage are available on other Kindle devices and readers. At least, I am able to access them on Kindle for iOS on my iPad and the other Android devices. As for the Kindle app on Windows 8 it remains a problem to access those documents.

If you are more likely in the Apple universe, then please read on: Side-load and read your mobi ebooks on Kindle for iOS

 
Playing Ingress by Niantic Labs in Mauritius
User Rating:Rating indicatorRating indicatorRating indicatorRating indicatorRating indicator / 14
PoorBest 
Android
Sunday, 21 April 2013 10:36

Ingress logo - courtesy of Niantic LabsAs of writing this article it is quite tough to play Ingress here in Mauritius. Unfortunately, it seems that there is only a low awareness of this great Android app by Niantic Labs.

"The world around you
is not what it seems."

Absolutely right!
Using the Ingress scanner app opens your view of your environment to a completely new world of discovery, excitement and you get drawn into an epic battle between the factions in Ingress, namely Enlightenment and Resistance. Niantic Labs is an off-spring from Google and develops Ingress independently from the Big Brother of internet searches and activities.

What is it all about?

Short version: World domination!

I won't repeat myself here as there are already very good introduction articles and video tutorials about what Ingress is. My recommendation is to checkout the following resources:

to get latest information about new technology, latest features for your scanner app, and of course to watch the battle reports of other players world-wide. It's great fun and very interesting indeed!

How to start?

First, request an invite on the Ingress website and get yourself an activation code for your future agent career in the Ingress reality. Unfortunately, this will take some time, frankly speaking a fortnight if you're lucky. I used this method to retrieve my invites twice and it took roughly 11 days until I received mail from P.A. Chapeau. Yes, there are at least two players of Ingress in our household... and maybe two more in the future.

An alternative way would be submit any kind of Ingress-related artwork to the Google+ page, and see whether one member of Niantic Labs is getting in touch with you privately. This might eventually shorten the waiting period by going the extra-mile but due to lack of experience I can't comment on this. Simply checkout the existing artwork and follow the responsible people on G+.

Playing Ingress in Mauritius

At the time, I started to play Ingress, there were approximately 8-9 portals in Port Louis only and collecting Exotic Matter (XM) was quite a challenge. I would assume that those portals were just the initial batch of locations Niantic pinned onto the map.

Ingress Portals in Port Louis, Mauritius
Intel map of Ingress portals in Port Louis

Currently, the highest density of portals is obviously in Port Louis. The easiest way is to start at the Caudan Waterfront and walk to Jardin de la Compagnie and round up your tour at the Cathedral. But thanks to the possibility to submit new portals the numbers are increasing and it is actually fun to discover and report places for the game play.

Levelling up

As a new agent you are starting on experience Level 1, and one of the aims you should follow is to gain more Action Points (AP) and level up quickly. Not only do get access to higher energy-loaded resonators but also acquire more powerful XMP bursters to cause quite some damage to the opposite faction. Furthermore, having the ability to link portals between each other based on the possession of their related portal keys, it is essential to maintain high level portals as their link range is higher. This allows cross-country connections and builds the base for huge control fields (CF) in order to gain Mind Units (MU).

Building links and control fields in Ingress to gain action points By the time there will be more links and control fields
Mauritius covered by several Control Fields (CFs)

Control fields are created by forming a triangle of links between three portals. But be aware that portals, having 8 resonators, can only cater for a maximum of 8 links after all.

Ingress is about social gaming - work together

Of course, no one can stop you from running around as a lone-some cowboy capturing and energizing portals. But unfortunately there is a slight catch. Higher levels can only be achieved by team-work.

Building high level Ingress portals is pure team-work!
Details on a specific portal. It is vital to have multiple agents

There are clear restrictions on the number of resonators a single player is allowed to place/upgrade on a portal. So, there is no chance to raise a portal to Level 8 on your own! Which is fantastic to my opinion and urges for communities and organised Ingress runs. The reports from other parts of the world have been amazing so far, and I would love to experience something similar in Mauritius, too.

Luckily, I had a chance to play with agent Stumpsand - an Australian fellow on vacation, and due to his Level 5 status I quickly got new gear and was able to gain a lot of APs in a shorter time than before his presence. With his energized Level 4 portals at Grand Bassin and Rose Hill and my portal keys to almost any other portal on the island it was absolutely easy to create my first bigger CFs (see image above).

Ingress is about participation - Shape the game

Yes, you make an impact on the game! Simply by either submitting new portals to Niantic Labs to be reviewed and added to the augmented reality map in the future or by reviewing and improving existing portals. Both is possible through the Ingress Scanner app. As of writing this article, I think that I have submitted already more than 20 new portals of which 10+ are already on the map, and I suggested minor improvements to existing ones, like ie. the position of the MCB HQ at St. Jean which is currently not accessible from the public area. And I doubt that MCB would be happy to have masses of Ingress players on their gated property.

The future of Ingress in Mauritius

It looks bright! And I'm hoping that this article gives you a brief overview and attracts more Mauritian players to join Ingress - either the Enlightenment or the Resistance for the sake of good game play!

Are you already an agent?
What do you think of Ingress?

For sure this isn't going to be the last article on Ingress in Mauritius. Stay tuned!

Updates

Ingress agent Stumpsand mentioned on G+ that there are quite a number of free WiFi areas near portals:

"Just a quick comment. You don't necessarily have to have a smartphone to play in Mauritius. A number of the portals I have visited have free Wifi within range so you could play with a tablet."

Some days ago, and also notified in Google+ by agent Stumpsand, I came across a great article by Tim Bray on Advanced Ingress techniques. Also have a look at the other resources in his series: Ingress, Things About Ingress, Ingress, Month 3, Ingress Weekly, and Ingress Tourism.

 
« Start : Prev : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : Next : End »

Page 1 of 36
Spacer for layout formatting