Linux
Linux
The best Linux distros go head-to-head so you get the perfect desktop for your PC
Also inside
Get programming
The top-five development environments revealed p24
TuxRadar.com
Master SUSE
Ghost blog
Shrimping.it!
Welcome
#
We support the open source community by providing a resource of information, and a forum for debate. We help all readers get more from Linux with our tutorials section weve something for everyone! We license all the source code we print in our tutorials section under the GNU GPLv3. We give you the most accurate, unbiased and up-to-date information on all things Linux.
What we do
Who we are
This issue we look at 3D printing and all the possibilities it can bring. We ask our experts what they would like to 3D print...
An abundance of choice
The freedom to choose is a key pillar of the open source world; hairy Richard Stallman wanted to ensure that we all had the freedom to access computing , and its a good thing too. Could you imagine having no other choice than Windows 8? What would you do if Apple iOS was the only option? If the GNU/Linux system didnt exist youd nd your freedom to choose severely limited. Our main feature this issue celebrates that choice by looking at the big ve distros: Ubuntu, Mint, Fedora, Mageia and OpenSUSE. We are pitting them against each other and highlighting their pros and cons so you can nd out which one is the best for you. Theyre all stand-out distros in their own ways, but what makes one the right choice for your desktop, server or laptop? We know that you will have your own opinions, and our scope isnt limited to just those ve distros, so we take a look at the hardcore and lightweight options as well at Linux Format, were always excited at the host of choices on offer! Something thats not quite so open but still rather empowering is everyones favourite diminutive ARM-powered board, the Raspberry Pi. Excitingly, it took a step closer to becoming a fully open platform when Broadcom manufacturer of the Pis SoC open sourced its GPU stack. This is a rst for Broadcom and can only be down to the fantastic work of the Raspberry Pi Foundation. While many parts of the Pis Broadcom SoC will remain blobs, this additional open sourcing is another step in the right direction. Elsewhere, GPL 3D printer models have the ability to revolutionise manufacturing and we are therefore taking an open source rst look at just how you can get involved with 3D printing. However, if you fancy something a little more down-to-earth, you could try out the open source Arduino Shrimping.it project on page 78. With tutorials on hardened home servers, the Ghost blogging platform, coding tutorials on HTML5 and JavaScript workow, this issue were touching upon the whole range of benets that the FOSS world has to offer!
Chris Thornett I would print out a 3D replica of my office mug to act as a decoy for all of those pesky mug thieves.
Matt Hanson Id print a replacement handle for the tea machine that Neil broke with his Hulk-like strength,
Efrain HernandezMendoza A 3D replica of my torso, so it would look like the work of a Renaissance sculptor.
Les Pounder Id print myself a backup beard just in case I lose my real one in a freak accident. It could happen!
Mayank Sharma Id print out replacement organs so I could live forever, which would annoy Shashank.
Neil Bothwick Id print out a 3D acoustic guitar, and then use a regular 2D printer to print out instructions on how to play it.
Kent Elchuk Id 3D print a case for my Raspberry Pi that made it look like a robot from Miyazakis Castle in the Sky.
John Lane I quite fancy printing out 3D models of Da Vincis inventions to see how well they would really work.
Carl Fletcher Id print out a giant model of Tux the penguin and leave it in Mayanks front garden (just to annoy him).
Subscribe today
Contents
Reviews
Zbox Nano ID68+. ..............16
We whacked SteamOS on this tiny PC to see how well it would cope as a home-made Steam machine. It offers plenty of power in a very small package.
STAR DISTROS
We pit the five best distros against each other to see which is the best p32
A small PC that comes ready for you to install your favourite distro.
Acer C720............................ 17
Will the latest Chromebook make enough of a positive impression for us to go full Google? Read on to find out
Synology DS214se............18
Make your home network the talk of the (extremely geeky) town with the best network attached storage device around.
Philips Screeneo................19
Its a bit on the expensive side, but this Android-powered projector proves its worth.
SparkyLinux...................... 20
Just because a distro has a minimalist design doesnt mean it cant be powerful.
PiBang Linux......................21
CrunchBang Linux on our Raspberry Pi? Dont mind if we do!
Talking heads
Its a mindset and a way of life you are born with athirst to want to understand.
Freakyclown on hacking and why it is so important p40
www.linuxformat.com
Ubuntu 13.10
p96
Dont miss...
3D printing............................44
How the latest tech works with Linux.
CyanogenMod......................48
Whats next for the popular Android mod? We explain the cryptographic software.
GnuPG ................................... 52
Coding Academy
HTML5.................................... 84
Think you can make the next YouTube? Find out how to host videos online in a customised player with HTML5.
Tutorials
Android to Linux LinConnect. ....................... 66
Neil Mohr shows us how to get notifications from Android devices to the Linux desktop.
JavaScript Grunt................... 88
Never again suffer from RSI (Repetitive Scripting Irritation) thanks to Grunt, which can automatically run JavaScript tasks, giving you more time to enjoy the finer things in life, such as this magazine.
Regulars at a glance
News. ............................. 6 Subscriptions............30 Answers......................92
Upstart vs systemd, Mozillas $25 smartphone, an Ubuntu phone is spotted in the wild and more. Treat yourself to a subscription to LXF. Go on. You deserve it. YOUR PROBLEMS SOLVED Copying ISO images to USB, recording on Raspberry Pi and more.
Mailserver. .................. 10
Hardware debates, Fedora love and a plea for more penguins.
Sysadmin. ...................54
Dr Chris wonders if Amazon S3 will keep your data safe even if all life on earth is wiped out by a meteor, in one of his more cheerful articles.
Next month................98.
Get the perfect Linux desktop, Firefox OS explored, and we investigate FOSS in the education sector.
HotPicks.....................58
The best open source software, forged in the fires of Mount Doom.
Arduino Shrimping.it........................78
Create your own DIY circuit board for literally pennies.
www.tuxradar.com
Mozilla phones
Ubuntu phones
Wifislax
asynchronous. In 2006, Upstart was introduced, and for a while it looked as if that was going to be the de facto replacement for init, being adopted by Ubuntu, Fedora, WebOS and Chrome OS. Developed by Canonical, its eventdriven design made it more flexible, and its early popularity with a number of distros, regardless of their affiliation with Canonical, made Upstarts coronation as the successor to init all the more likely. In 2010 another alternative, systemd, was introduced and thats when things got a little heated, as support for Upstart began to shift to systemd. Whilst Fedora had adopted Upstart with version 9, by version 15 it had moved to systemd. Meanwhile, Upstart was included with the fourth milestone of OpenSUSE 11.3, though as an option rather than the default replacement for init; yet in version 11.4, in March 2011, systemd was used and to add insult to injury, it was even enabled by default. Whilst Ubuntu looked to be sticking with its parent companys creation, Upstart, Debian was taking a more cautious approach. Whilst initially adding Upstart as an option rather than a default, when systemd was released Debian began debating a move. In a post on https://wiki.debian.org, the benefits of systemd were explained: Systemd is not just init. It unifies, in fewer lines of code, everything that is related to starting services and managing session groups: user login, cron jobs, network services (inetd), virtual TTY management having a single system to handle all of that allows us to remove a lot of cruft, and to use less memory on the system. Just as things seemed to be moving in favour of systemd, Mark Shuttleworth,
Canonical founder, spoke out about systemd, and Upstarts detractors, in a post on http://bit.ly/lxfupstart, which began with a passionate defence of Canonicals other controversial creation, Mir: When lots of competitors attack a project on purely political grounds, you have to wonder what THEIR agenda is. At least we know now who belongs to the Open Source Tea Party those same outraged
www.linuxformat.com
Newsdesk
PHONES
Newsbytes
Its been a turbulent few months for Bitcoin. On the last day of February, www.mtgox.com, the worlds largest Bitcoin exchange, filed for bankruptcy. During the crisis, the company lost 750,000 bitcoins (worth around $446 million) of customer holdings. The company itself lost 100,000 bitcoins that it owned, bringing the total loss to more the $500 million. Mt.Gox laid the blame for this on a software bug that caused incomplete Bitcoin transfers, which might then have been exploited by hackers. However, it didnt take long for the currency to recover, with the price of one bitcoin climbing to a high of $701.32 just a few days after Mt.Goxs bankruptcy a gain of 57 per cent over the past week. It was also announced that the UK is planning to scrap VAT on Bitcoin trades.
expanding market. In many parts of the world and especially in developing countries spending the equivilent of a couple of hundred pounds on a handset is just not feasible, which is why Mozillas announcement of a deal with Chinese chip designer Spreadturn Communications (instead of Qualcomm, which had been providing the chips for FirefoxOS-based smartphones), has garnered so much attention. By being able to keep the cost of the phone so low, Mozilla is looking to make inroads in markets such as India and Indonesia with Indonesian mobile networks such as Telkomsel and Indosat planning to sell the devices. We were able to get some hands-on time at Mobile World Congress with a unit created by Haier for the Chinese market. It runs on a SC6821, a single-core ARM Cortex A5 SoC running at 1GHz, with 256MB RAM, 2GB flash storage and a 3.5inch display capable of 320 x 240 resolution. It even has a 2 megapixel camera. Those specifications might not give the iPhone or Samsung Galaxy S4 any sleepless nights, but for that price we could see FirefoxOS smartphones really taking off.
PhOnES
After a major setback, Bitcoin is proving to be somewhat resilient. Figures from Gartner show (http://gtnr.it/1nfXbZR)
t wasnt just Mozilla hogging the limelight at this years Mobile World Congress, however, with Canonical having a strong showing in support for the fledgling Ubuntu Phone, showing off two prototypes whilst they were at it the Meizu MX3 and the BQ Aquaris. Unlike Mozillas desire to dominate the low-end market with an impressively cheap handset, Ubuntu Phones at least at the moment will target the mid- to high-end smartphone market. A risky manoeuvre, perhaps, with Android and Apple dominating. The Meizu MX3 comes with an eight-core Samsung processor, 5.1-inch screen and an 8 megapixel camera. The sleek and minimalist design (it has only one button ) seems rather influenced by Apples aesthetics it even comes in a glossy white body. The Spanish-made BQ Aquaris has slightly lower specifications, with a 4.5-inch screen and a quad-core MediaTek A7 chip. Its worth bearing in mind that these are
prototypes and neither were working at MWC so the specifications could change when they launch. According to Mark Shuttleworth, founder of Canonical, we will see the first Ubuntu phones go on sale later this year, some time around autumn. No prices have been announced yet, but you can be sure they will be going for a bit more than $25.
The MX3: if Apple and Samsung had a baby it would come with Ubuntu Touch installed.
Android has taken a 62 per cent of the worldwide tablet market, with an increase in sales of 68 per cent. Two years ago, sales of Android devices trailed iOS by 8 million now Android devices have a lead of 50 million. Meanwhile, iOS devices account for 36 per cent of the market down from 52.8 per cent. Windows tablets, for the record, now account for 2.1 per cent. Whilst Android goes from strength to strength, 64-bit Android devices are a conspicuous absence. The current version of Android, 4.4 (KitKat), is only 32-bit as people wait for Google to release a 64-bit version. A Linux group, www.linaro.org, is looking to speed up the process by creating apps for 64-bit Android running on ARMv8 architecture, as well as contributing to the Linux kernel.
www.tuxradar.com
Newsdesk Comment
Open Government
This month, the UK Cabinet Office published proposals on Government documents and went through a public comment process. They mandate all the sensible and obvious things: exposing data as standard HTML, CSV, etc. More interestingly, though: For information being collaborated on between departments information should be shared in ODF (version 1.1 or higher eg ODF 1.2). That is a great commitment to openness that may help to drive extremely positive changes. Thankfully, the Cabinet Office proposal doesnt fall for including OOXML. Instead, it enables real choice of implementation by excluding OOXML from the list of acceptable formats, and by focusing on a real open standard: the Open Document Format (ODF). Having been involved in the OOXML process at ECMA, alongside Microsoft, its clear that OOXML is a silhouette of every feature and corner-case of a single vendors complex implementation, with much of that complexity carried through to ISO. It was good of Microsoft to engage and fully explain its format. However, its only usefulness as a standard seems to be to help people mandate the single high-fidelity implementation (via a different name). In contrast, the ODF standardisation process is something that all implementors can get involved with, can contribute meaningful changes and improvements to, and can work collaboratively on. ODF has diverse, highfidelity implementations available from many companies to bring real competition to the market for office suites. Interestingly, others who claimed to have implemented OOXML in the consultation seemed to have managed only to do some banal XML output. By choosing ODF, the UK can enjoy the benefits of ODF implementations. Never again should citizens have to pay for software to read their own Governments data.
Michael is a pseudo-engineer, semi-colon lover, SUSE LibreOffice hacker and amateur pundit.
ViRTUal COMPUTinG
The 4.3.8 version of VirtualBox has been released. The first of 2014, this is a maintenance release that comes with a number of improvements for running the virtualisation software on Linux, including support for Enterprise Linux 6.5 kernels, as well as improved 3D graphics handling and an easier to use GUI. VirtualBox lets you create and run virtualised machines running within Linux. Its handy if you want to test a number of distros or operating systems, or even sandbox applications you can run them without affecting your main PC.
SOUnD SERVER
PulseAudio 5.0 will be available by the time you read this. Its an open source networked sound server hosted by freedesktop.org. Features include volume controls for each application you have running, the ability to play sounds
through a remote computers speakers via a network, low-latency recording and support for multiple audio sources. The latest release brings BlueZ 5 support and native log target support for system-journal.
www.linuxformat.com
Mailserver
Write to us at Linux Format, Future Publishing, 30 Monmouth Street, Bath BA1 2BW or lxf.letters@futurenet.com
Hardware hell
Good evening. I found the letter Sound as a pound by Nick Ford and your response to be very interesting. My old PC has a Sound Blaster Audigy sound card. I have Ubuntu 9.04, 10.04LTS and 12.04LTS (all 32-bit) installed alongside Windows XP. The sound card works fine in all of my Ubuntu versions. I have Clementine, Audacity, VLC, Banshee, Rhythmbox installed in 10.04 and 12.04 and the sound works fine with them. In my new PC I have a Sound Blaster X-Fi Titanium sound card installed. It works fine in Ubuntu 12.04, Linux Mint 15 and Zorin 6.4 (all 64-bit). I dual boot with Windows 7 Ultimate 64-bit. From your response to Nicks letter I guess I am lucky that the sound card works. Following your comment about hardware manufacturers, I had an issue with the Intel graphics on my motherboard. In Ubuntu the highest resolution I could get was 1,024x768, yet in Windows 7 I had resolutions up to 1,620x1,440. I eventually bought a Nvidia graphics card and found that my old monitor did not switch on when connected to it, so I ended up having to buy a new one. Philip Gray Matt says: Ah yes, thats the old hardware compatibility
Wheres Tux?
y 19-month-old daughter sometimes reads Linux Format with me. She started on LXF179, which had over half a dozen penguins on the first dozen pages (and well over a dozen scattered throughout). Unfortunately, LXF180 barely has four in the entire magazine. Keep the PPP (penguins per page) up, or I wont be able to keep reading the magazine with her! Jan, Calgary, Canada Matt says: Jan, Im of the school of thought that there can never be enough Tux in the magazine, so I will endeavour to keep the PPP over an acceptable threshold. Ive hidden a few penguins throughout the letters page, so I hope you and your daughter enjoy looking for them!
conundrum. Where it giveth with one hand (your Sound Blaster compatibility) it taketh with the other (no integrated Intel graphics for you). Its a tale almost as old as time, and in some ways youre not being too far fetched when you say that the lack of Sound Blaster woes is due to luck and the same can be said about your Intel problems. Another person with a similar setup may suffer from the reverse, or alternatively, they may not encounter any problems at all. Its hard to predict.
One of the major strengths of PCs is that they can run a huge variety of hardware and software. Once youve thrown the extensive range of operating systems and distributions into the mix, its not surprising that there will be conflicts and incompatibilities. The good news is that with a combination of newer hardware and mainstream distros, these problems should become less commonplace. With older hardware and more obscure distros, you should be able to get
round a lot of problems with a bit of research, a splodge of elbow grease and plenty of time.
shane_collinge@yahoo.com
www.linuxformat.com
Mailserver
Mark defends Fedora from the slings and arrows of Linux Format.
of your Fedora reviews, version 20 received a distinctly mediocre report, and even included a picture caption stating Not a DOA Fedora release for a change . My experience with Fedora is always so much better than your reviews suggest. Sure, there are occasional release bugs, but these are usually fixed in updates extremely quickly within the first week of the version being introduced. Fedora gets me all the latest desktops; not just Gnome and KDE, but Mate (latest), Cinnamon (latest) and Enlightenment (brand new 0.18 release). The desktops all work side-by-side without any clashing, and are much better than with Ubuntu. If I wanted to, I could choose a new desktop each day of the week from my login window. I have nine distros on my test machine but none of them boots
or turns off as quickly as Fedora. Therefore, I find myself using Fedora ahead of Ubuntu and Mint for both work and play. While a vanilla Fedora install requires a lot more software to compete with Macs or Windows, these days customizing Fedora is a fairly trivial task. There are excellent websites, such as www.howtoforge.com/theperfect-desktop-fedora-18-xfce to help. Once your Fedora setup is all singing and dancing, FedUp can make it easy to upgrade between versions without installing all the extras and desktops again. Finally, the real beauty of Fedora is that it gets cutting edge software working better than in any other distro. The software in Fedora is usually brand new and the quality of the lesser known (noncore) packages seems so much better than in Ubuntu (and
therefore Mint). Moreover, when I report a bug in Fedora, the reporting back on fixing is really good. In Ubuntu, I have the feeling that people are less interested in both the other desktops and the non-core software. Linux Format, please show a little love for Fedora. How about an article on how to customize Fedora and install all those extras that make it so lovable? Mark Wilson, Durham Matt says: First of all, thanks for the kind words, Mark. Please dont feel the need to stay your hand again if you want to pen us another compliment. As for the rest of your letter, have we been too harsh on Fedora in the past? It certainly has its fans on the team. Although as we mentioned in our review of Fedora 20 (LXF180), it was a perfectly good release, but did little to wow us. A 7/10 score is in no means bad, especially considering that 5/10 is a mediocre score, and anything below is poor. As you say, Fedora benefits hugely from tinkering and with a bit of time you can get Fedora running just the way you want it to. This issue, weve pitted Fedora against the other most popular distros to see which one comes out on top. We can almost hear you cheering on Fedora from here. If anyone else feels weve been too harsh on their favourite distro, why not write in and let us know what you love about it?
I will most certainly be cancelling my subscription. Surely it is the role of a magazine such as yours to give the news and explain and inform of new developments in the field, not teach the subject? There must be few yachting magazines, for instance, that explain exactly how to put a dinghy into the water. Steve and others like him would have been better advised to get one or two of the excellent books published by OReilly. While they may not describe the latest Ubuntu version, they would give the Linux newcomer a much greater depth of understanding. I wonder how many Windows users picked up their knowledge of it without attending a course or borrowing a book from their local library? I had been hoping that the magazine would be offering some useful information on Systemd, or perhaps giving us more detailed knowledge on any changes expected in the next version of the kernel, but perhaps I am now reading the wrong magazine? Graham Young
Balancing act
I was rather annoyed by the letter from Steve published in LXF180 and very concerned at your reply. If Linux Format is to turn into Linux for Beginners
www.tuxradar.com
Mailserver
languages, Pascal, FORTH, C, and assorted application languages.[/digression] In my experience, the major reason an educated, computerliterate person needs to know programming fundamentals is to customise a program to environment variables such as the machine or the tools or to user requirements. In a changing environment, the number of machines can change, the program might need to be executed on different computers, other machines might need to be connected, data queries could alter, the software specifications may become outdated and there might be legal requirements to consider. It would seem that the requirement for software maintenance often exceeds the need for new flashy application software. Being able to adapt to the changes is of higher priority than marketing a new idea. You must be able to grow and adapt, or you will die. This is the lesson of Charles Darwin, and it applies to software as well. Carl Snyder Matt says: Carl, you bring up some interesting points. Say, for example, a small business employs five people who all rely on a specific piece of software to do their job. After five years, the business needs change and the software doesnt quite fit the bill any more. Whats the quickest and cheapest way to solve this? Would it be better to replace the software with something that will achieve the business goals, but with the additional cost, plus time taken to train the employees to use the new software? Or, if one of the team knew how to code, would it be preferable to add the desired functionality to the existing software, therefore keeping costs down and reducing the need for retraining? We know which option wed pick. such a great level of writing and humour. Id forgotten how much I missed those amusing screenshot captions! Despite being an absolute novice with Linux, there is so much great content in the magazine. I read it virtually cover to cover when I can and I am currently learning all manner of programming languages. I particularly like the Coding Academy and Tutorial pages. The Perfect Linux Install article inspired me to finally give installing a Linux distro on a desktop PC a go. I managed to shrink a partition of my hard disk to free up space for Linux. After searching on the internet, I also successfully disabled FastStartup and Secure Boot. Having a few back issues worth of DVDs, I tried OpenSUSE, Mint and Mageia, because I didnt like the feel of Ubuntu. Unfortunately, I just could not get past the next hurdle of installing one of them without fear of wiping the rest of my hard disk. I could not seem to get any of the distros to point the installation to the fresh 50GB of space. I was unable to see the 50GB partition, or in the case of OpenSUSE, the installer was not content with having that 50GB space I had selected it wanted me to select some other part of the hard disk afterwards, too. I think that many wishing to try Linux for the first time would want to dual boot, as they would still need access to a familiar system until they have made a complete transition. I also have some paid-for software thats not available on Linux that I am not about to get rid of in a hurry. For a feature that should have been aimed squarely at absolute Linux beginners, I found the barrier was just set too high for me and there was just too much assumed knowledge required. I doubt that the article was much use to the long-standing Linux Format readers either, as they are already savvy enough to carry out their own installations. Perhaps you could put an installation category on your forums while considering essential beginners. It could include the essential details on how to set up distros on your PC with dual booting in mind. Stuart Bowes Matt says: Stuart, as I was an avid reader of Amiga Format, Im afraid you are my sworn enemy. Still, time heals all wounds, so lets put aside petty arguments over who had the best sound (Amiga), who had the superior version of Shadow of the Beast (Amiga) or who went a more authentic colour of urine yellow when left in the sun (Amiga). Im glad you feel that the spirit of those esteemed Format magazines of old is evident in the one you currently hold in your hands. As for your installation woes, Im sorry to hear you are having problems watch out for an article from the final editor of ST Format in a future issue on this subject. Creating and using partitions can be fiddly, and some installation processes dont really help things. Quite a few distros including Ubuntu, which otherwise didnt impress you offer an automated process of creating a new installation that can be dual booted. Of course, partitioning and organising drives is important, so when you can do it yourself, its usually for the best. Weve got a series of tutorials coming up that look at some of the core commands and tools of Linux, including file systems, partitioning and more, so hopefully theyll help you dual boot to your hearts content. LXF
Neil says: To quote myself, as they are the best quotes, it is a tricky balancing act . And to quote John Lydgate, you cant please all of the people all of the time . Its good to see that things havent changed much from the 15th century. I tend to see the magazine as a graduated tome, ideally with something for everyone. We do need to stay approachable for new readers and the main cover feature will always reflect that, but I hope the magazine still brings new ideas, tricks and technologies to long-standing readers. Let us know if were managing that. Outside of that though, the tutorials and the non-novice coding articles should push you and open up new areas of knowledge. As it happens, I do have a Systemd feature pencilled in for issue 184, so hopefully were still on your wavelength, Graham.
School of code
I just finished reading the article from Linux Format in which Robert r0ml Lefkowitz was interviewed. It inspired me to reply in this fashion. [digression]I was trained as an electrical engineer at Purdue University in the late 1970s, where I was first formally taught programming using FORTRAN IV, then assembly language for the Intel 8080 processor. In the 1980s, I learned BASIC programming language of various flavours, 6800/6502/6809 assembly
Write to us
Do you have a burning Linuxrelated issue you want to discuss? Do you simply want to reignite the Atari ST vs Amiga wars, or want to request more penguins in the magazine? Write to us at Linux Format, Future Publishing, 30 Monmouth Street, Bath BA1 2BW, or email us at: lxf.letters@futurenet.com.
Format fan
Its great to be back with another Format magazine. Back in the day, I used to be a subscriber to ST Format until it finally came to an end in 1996. Subscribing to Linux Format feels like coming home, with
www.linuxformat.com
The intrepid Les Pounder brings you the latest community and LUG news.
United Linux!
EMF Camp 2014
Les Pounder finds an attractive outdoor event.
beautiful sunny day in August FM radio station broadcasting music with real ale flowing. What else and information, which as well as being do you need in life? Well, aside a good solution to an age-old problem, from lots of cool people and technology. gave the event a more communal feel. The Electromagnetic Field, abbreviated This year the event takes place to EMF Camp, is a weekend outdoor between 29 to 31 August For more technology festival that happens in a details head over to the website to stay vast campsite south of Milton Keynes. up to date and register your interest: The mix of technology, hacking and https://www.emfcamp.org. science is the ultimate draw for many The team is also looking for as where else can you learn about biovolunteers to help make the 2014 event hacking, crocheting, lock picking and a smash success. Volunteers receive other great topics? extra perks and privileges, but most The whole weekend is a chance to importantly youll receive the warm learn and share skills in a constructive glow of giving something back to the and supportive environment and at the community. Its not all about code and last event, which took place in 2012, we commits. Soft skills and a level head are found many large tents full of great also key skills in our community. LXF project ideas although everyone tends to remember the portaloo server racks that were scattered around the site. Last time, the event team also did an astounding job of facilitating your every need, providing a 380Mbps internet connection, which was split across the site. Tohelp co-ordinate the Big tents and even bigger ideas are the name of whole event the team ran an the game at EMF Camp.
Edinburgh LUG Meet on the first Thursday of the month at the Southsider pub, West Richmond St, Edinburgh. http://www.edlug.org.uk Greater London LUG
Extra information can be foundon www.gllug.org.uk
Hull LUG First Tuesday every month, visit the website for more details. http://hulllug.org Liverpool LUG Meet on the first Wednesday of the month from 7pm at the Liverpool Social Centre on Bold Street, Liverpool. http://liv.lug.org.uk/wiki Lincoln LUG Third Wednesday of the month at 7pm, Lincoln Bowl, Washingborough Road, LN4 1EF http://lincoln.lug.org.uk Manchester Hackspace Open night every Wednesday. Visit the website for more details. http://hacman.org.uk Surrey & Hampshire Hackspace Meets every Thursday. Visit the website for more information. http://sh-hackspace.org.uk Tyneside LUG First Saturday of the month from 7pm at the Discovery Museum. Visit the website for more details. www.tyneside.lug.org.uk
and failures with you. They will also advise you on the lessons they learnt along the way. The event takes place in the glorious city of York on 1st May. Tickets are 75 for this interesting and informative event and you can find out more via its official website http://dotyork.com.
www.tuxradar.com
All the latest software and hardware reviewed and rated by our experts
MATT HANSON watched 40,000 people try to play one game of Pokemon at the same time.
Price barrier
ne of the most important foundations of the Free and Open Source Software movement is the belief that people should have access to software tools no matter what their background, or how wealthy (or poor) they are. A child whose parents cannot afford a Windows and Office licence shouldnt be held back from their homework, nor should a student who cant afford a Mac and Photoshop be stopped from completing their course. Thanks to a committed community, there are free and open source alternatives. But what about hardware? In an ideal world, there would be free (in the financial sense) hardware alternatives to expensive devices that many of us who live in affluent parts of the world take for granted. The reality of manufacturing costs of creating hardware means producing hardware for free, no matter how noble, isnt particularly viable. However, producing low-cost hardware that lowers the price of entry is a completely viable option, and its one that is becoming ever more popular. The Raspberry Pi has found great success in providing an affordable PC for people to use and experiment on, and Mozilla is readying a $25 Firefox OS smartphone aimed at developing countries. Theres an ever-growing consensus that access to the internet is a basic human right, and any technology that helps safeguard education, freedom of speech and other rights should also be made as widely available as possible, with FOSS being just the beginning. matthew.hanson@futurenet.com
SparkyLinux........... 20
The minimalist distro aimed at power users gets a thorough going over in our test lab.
Acer C720................ 17
Is this the Chromebook thats going to make us ditch our tablets and laptops and embrace Chrome OS?
PiBang Linux........... 21
Get CrunchBang Linux on your Raspberry Pi with this handy Raspbian alternative.
Synology DS214se... 18
Easily one of the best NAS drives around, and all powered by our old friend Linux.
Philips Screeneo...... 19
A feature-packed, Android-powered projector that can throw large images in a small space. We like it.
This month we look at Guacamelee! Gold Edition, a colourful old-school platformer based on Mexican folklore, and Gone Home, a truly unique experience.
Game reviews......... 23
SparkyLinux
Guacamelee!
A light and fast Linux distro for those of us who want the latest updates and innovations.
Bluefish
Geany
Get your code on with this roundup of the best IDEs (integrated development environments) for Linux. Whether youre a beginner or a pro, these tools can help.
www.tuxradar.com
Reviews Desktop PC
Specs
Intel Core i5-4200U @ 1.6GHz Intel HD Graphics 4400 4GB DDR3 RAM 500GB HDD 10/100/1000 Ethernet port 802.11ac Wi-Fi HDMI, DisplayPort 2x USB 2.0, 4x USB 3.0
egular readers will recall a few months ago we reviewed the Penguin Wee [Reviews, p16 LXF181] a compact PC that packed a powerful components into a tiny body. The Zotac Zbox Nano ID68 Plus is a similarly small-form PC in fact its quite a bit smaller than the Wee. But while the Zotac ZBOX Nano ID68 Plus comes with some decent components that will easily run the distro of your choice, along with office and media software, as well as the odd game, its specs still pale in comparison with the impressive Penguin Wee. For a start, the Zotac ZBOX Nano ID68 Plus comes with a dual core Intel Core i5 4200Urunning at 1.6GHz, aperfectly good and relatively recent fourth generation processor (which youll hear referred to as Haswell). The Wee model we reviewed, however, came with a quad-core Intel Core i5-4430 a full desktop processor. Not only is it clocked higher (3GHz), but the additional cores make it much better at multitasking, among other improvements. The Zboxs integrated graphics is the Intel HD Graphics 4400, which is perfectly adequate for casual games and watching HD media, though not as good as the Penguin Wees Intel HD Graphics 4600. Rather helpfully, certain parts of the Zbox Nano ID68 Plus are upgradable. For example it comes with 4GB of DDR3 RAM, which is perfectly adequate for most day to day computing but you can add more RAM (to a total of 8GB). You can also swap out the 500GB hard drive for an SSD, or even a pair of mSATA drives in a RAID array.
The small chassis of the Zbox Nano still offers plenty of connectivity andcan be kept behind a TV or monitor.
The case itself is a small Intel NUClike (127mm x 127mm x 45mm), and even comes with a mounting bracket for attaching the PC to the back of a flat screen TV or monitor, and there are plenty of connection ports, such as HDMI, DisplayPort and USB 3.0s. Because of the size of the Nano, it makes sense that Zotac has gone for mobile components, and while they help reduce the overall size of the PC, along with the cost and power draw (which in a case this small is essential to keep the components from over heating), it does have an impact on the speed of the machine.
Steam Zbox
Unlike the Penguin Wee, the ZBOX Nano ID68 Plus doesnt come pre-installed with an OS, and for testing purposes we decided to see how Valves Debianbased SteamOS would perform on the machine. Installation was relatively quick and easy using Ye Olde SteamOSe (http://directhex.github. io/steamos-installer), and once up and running we hooked the Zbox up to a 42-inch 1080p TV and tried out a few games. Fez, a delightfully quirky platform game, isnt the most graphically demanding game, but it looked great on the big screen, and the Zbox had no problems at all running it. We even tried out SteamOSs in-home streaming beta, which lets you stream and play games running off one
machine on another. From a very powerful gaming PC in another room, connected via powerline adaptors we were able to stream recent games, such as Tomb Raider and Bioshock Infinite at impressive quality to the small PC. What wasnt quite so impressive was the noise of the case fans for a PC designed to sit in your lounge, its a bit too noisy. Its a shame, as otherwise this would be an ideal media-streaming PC. After running our benchmarks it was clear that Zboxs mobile components were holding it back in pure power terms in comparison with the Wees desktop technology, but the gap isnt quite as large as we thought. Aside from the noise, its an excellent little box that offers plenty of power for day-to-day tasks, and even a spot of gaming. LXF
Verdict
ZBOX Nano ID68 Plus
Developer: Zotac Web: www.zotac.com Price: 420
Benchmark results
Benchmark Blowfish* Cryptohash** Fibonacci* N-Queens* FFT* Raytracing* Zbox Nano ID68 Plus 4.726 327.085 1.669 7.346 1.011 6.202 Penguin Wee 2.97 595.14 1.28 3.77 0.78 4.96
Rating 7/10
A great mini PC that has plenty of power for most day to day tasks, though can be a little noisy.
www.linuxformat.com
Chromebook Reviews
Chromebook C720
Henry Winchester tries Acers latest take on the Chromebook concept has it found its feet or is it just treading water?
In brief...
A lightweight and low-end laptop which runs Googles strippedback ChromeOS. See also: HP Chromebook 11 and Google Chromebook Pixel.
Not enjoying ChromeOS? Then check out Crouton to add a Linux distro.
ince they were announced three years ago, weve seen lots of different takes on Googles Chromebook concept, where laptops simply run the Linux-based ChromeOS. Weve gone from Googles own Cr-48 prototype, and moved through versions created by Samsung, HP and Lenovo, and generally they have progressively improved. Each and every one is unique; HPs Chromebook 11 is colourful and has even been viewed favourably by Apple fans, whereas Samsungs feels corporate and business-like. Despite being based on Linux, ChromeOS is somewhat limited. Its designed for a singular purpose: running Googles Chrome browser. Itdoes a few other things too, such as video playback and file management, but its raison detre is the internet via Chrome. Google is perhaps brazenly insistent that you use Google Drive, its cloud storage system, and Google Docs rather than installing, say, LibreOffice, and if you want to play games, you have to do so via a rather limited selection on Googles Play Store, as opposed to installing something like Steam on Linux. The Acer Chromebook C720, the companys latest take on the Chromebook is thankfully one of the best to date. Chromebooks are notoriously plasticky and cheap, and although the C720 is made of plastic and costs under 200, it feels more premium than its Chromebook brethren. The dark grey finish looks just like expensive aluminium from a distance, and the chassis feels reassuringly weighty without being back-breaking. A nice responsive keyboard makes the C720 eminently suitable for simple word processing and emailing, and while the trackpad is a little sticky its not a dealbreaker. The screen is
slightly washed-out, but still perfectly usable and impressively viewable in direct sunlight. Battery life comes in at about seven hours of internet, which is a solid result.
Despite its decent design, the Acer Chromebook still begs the question as to why someone would want a laptop, which is so limited and singular in its existence? But this is part of the beauty of Chromebooks they dont get bogged down in the complexities. They boot up in less than seven seconds, and as the internet is such a humongous part of our every day lives being able to get straight to Chrome is appealing to many users. If it isnt then a fuller flavour of Linux distro can be sideloaded onto Chromebooks via Crouton. But in its original state, the Acer has modestly nailed the concept, and its limitations are also its strengths. It feels like its worth every penny of its 200 asking price, too. LXF
Verdict
Acer Chromebook C720
Manufacturer: Acer Web: www.acer.co.uk Price: 199
Rating 8/10
ChromeOS may choke it a little, but this is a great purchase for internet activities and day-to-day computing.
www.tuxradar.com
Synology DS214se
NAS units may come and go, but the Synology DS214se has an ace up its sleeve and this ace is Linux, as David Hayward finds out.
In brief...
Quite possibly one of the most impressive NAS units weve ever used. Fast and simple to use.
Specs
Marvell Armada 370 800MHz CPU 256MB DDR3 2x SATA drive bays with 10TB max capacity 2x USB 2.0 1x Gigabit LAN OS: DSM v4.3 Packages: Antivirus, Audio Station, iTunes, Mail, DLNA, Surveillance Station, Media Server, Backup Server.
ynology is a company with an outstanding reputation in the network attached storage industry. It produces quality hardware, engineered to last and to provide the best possible access for the individual. It also has an intuitive Linux-based operating system built in to each of its DiskStation and RackStation models. So when we had the opportunity to get our hands on the DS214se NAS unit, we jumped at the chance. The feature list is impressive; with a Marvell Armada 370 800MHz CPU and 256MB of DDR3 memory running things in the background, this two-bay NAS unit can handle up to 8TB drive configurations in RAID 0, 1, JBOD, Basic and a Synology Hybrid RAID. It has a low-power consumption rating, a mere 19W, and its fast enough to serve your home network with HD content at speeds measuring up to 55MB/s reading, and 40MB/s writing. There are two USB 2.0 ports on the back, along with a single Gigabit LAN port and power. The front of the unit is uncluttered and features a strip of identifying LEDs that indicate the status of the system, LAN activity and activity on each of the two installed hard drives.
Good looker
Its presented in a sleek, elegant white plastic case with sizable rubber feet and the Synology name acting as a vent across both sides, and wont look out of place in the lounge. Its reasonably compact, too, measuring 165 x 100 x
Features at a glance
DSM
The DSM is simply wonderful. Its easy to use, fast and capable of such a lot.
Administration
Packages can be installed, admin tasks conducted, and management of the NAS is superb.
225.5mm and weighing only 0.87Kg (excluding any installed drives). Installing a hard drive is a breeze: simply slide one of the panels and the unit and the SATA ports are revealed, along with a frame on which to mount each of the drives. Once installed, the rest of the process can be managed via the Synology DSM (DiskStation Manager). Here is the real star of the show a flexible and very functional Linux-driven interface thats leagues ahead of the competition. The latest DSM is downloaded and installed once the unit is up and running and taking over the drive(s) installed; this means youll have the most up-todate version to hand, without the need to compare version numbers for installed features. From here, maintenance and administrative tasks can be accessed without the need to trawl through the usual nested menus. The DSM is quick, easy on the eye and intuitive; theres a handy system health, resource monitor, log viewer and current connections gadget. The layout is the same as that of a standard Linux desktop, so navigation feels natural, and integrating new features is a single click away through the package centre, acting very much the same as a GUI package manager. Its the level of detail, ease of use and quality of the operating system that
make using this NAS unit less of an administrative chore and more of an extension to your desktop. Different packages can be installed, updated and configured. Web services, users administration, router configuration and firewall settings can all be managed through the control panel. Theres even access to the DSM terminal through SSH or Telnet. Theres a lot going on, and you can be forgiven for forgetting youre dealing with a NAS unit after configuring the DSM to your liking. However, it does an admirable job of being a NAS for the home or small office, and thanks to the wonderful DSM you can guarantee youre getting an exceptional device. LXF
Verdict
Synology DS214se
Manufacturer: Synology Web: http://goo.gl/Jz9kIS Price: 120
Rating 9/10
An excellent, reasonably-priced NAS unit. Plus, the installed DSM is a dream to use and manage.
www.linuxformat.com
Philips Screeneo
Projectors for the home user have always had a bad press. However, that all changes with the launch of the Screeneo, as David Hayward finds out.
In brief...
A short-throw 100-inch projector with every feature you could imagine under a single Android OS layer.
he Philips Screeneo HDP1590 Projector is an all-in-one unit that offers the user an experience never before found from a home projector. In this 339 x 287 x 148mm unit youll find a wealth of features that put most other entertainment systems to shame. The Screeneo has 4GB of internal memory, which is more than enough to power the customised version of Android 4.2 (Jelly Bean) that runs every aspect of the projector. From within the UI, you can enable the dual-band Wi-Fi function, enable or disable the Ethernet port, search for media content on your home network, browse the internet, install third-party APKs, and fine-tune the screen output. Its DLNA certified, Bluetooth enabled, Miracast enabled and can stream virtually anything from any NAS unit you have installed. In terms of hardware, theres plenty of connectivity around the back: a pair of USB ports, two HDMI ports, VGA, Ethernet, RCA analogue, Digital optical out, DVB-T Tuner, AV in and a Trigger Out for controlling projection screens. Around the front, located by sliding the brushed aluminium Philips logo faceplate down, youll find yet another USB and HDMI port, along with an SD card slot and a manual focus slider. The projector itself is built on a set of Dolby 26-Watt speakers with a subwoofer. Using a top-projecting DLP system from a mere 44cm from the wall it can produce an image of up to 100 inches in 1280 x 800/720P HD
The build quality is superb, and the 2.1 speakers are more than enough.
resolution or from 10cm can manage a 50-inch display. Its also 3D capable, supporting all 3D modes as well as on-the-fly conversion of 2D to 3D.
world it currently occupies. The UI is fast, fluid and easy to use, plus it played everything we could throw at it and, thanks to the inherent abilities of Android, theres a lot more scope for further entertainment options. Naturally, a device of this calibre is going to cost you a pretty penny or two; in fact, at 1,500 you can be forgiven for looking elsewhere, but bear in mind youll not find this level of connectivity or quality in the competition. If its an all-in-one entertainment system youre after, and you have the wall space to project a 100-inch image onto, then you really should consider the Philips Screeneo as the hub of your living room. LXF
Features at a glance
Verdict
Philips Screeneo HDP1590
Manufacturer: Philips Web: www.philips-shop.co.uk Price: 1,499
Rear
The rear of the projector has substantial connectivity and a very swish leather carry strap.
Front
The brushed aluminium panel slides down to reveal more ports and a manual focus adjuster.
Rating 9/10
Its expensive 1080p expensive but considering what you get for your money you cant really go wrong.
www.tuxradar.com
SparkyLinux LXDE
Les Pounder adds some spark to his Linux distro-hopping adventures with this Debian-based release thats not for novices.
In brief...
A fully-featured, tailored Debianbased distro for advanced users.
ebian has been around for many years and has provided a stable basis for a multitude of great distros. Ubuntu, Linux Mint and Crunchbang have long used the Debian infrastructure to much success. With Debians multiple repositories, distros have a choice of foundation for their new project. For stability, most projects stick with Debian Stable; but for those wanting the latest of everything, Debian Testing is the place to start, and this is where SparkyLinux calls home. SparkyLinux follows a similar line to Crunchbang and provides a light and functional desktop environment with minimal clutter. SparkyLinux is around a 1.5GB download and comes with a host of applications ready for you to use. Favourites such as LibreOffice and Gimp come pre-installed, along with Debian-friendly rebrands of Firefox and Thunderbird, namely IceWeasel and IceDove. What is interesting is the inclusion of TeamViewer, the popular remote support and meeting application. The inclusion of Radio Tray, a neat little tray application that provides a choice of radio stations, is a great touch. Sparky also comes with all of the necessary codecs to play YouTube and popular audio files such as MP3 and OGG, so you will not have to bother with installing codecs after installation a job that can be quite stressful, depending on the distro. Software installation can be handled via the GUI, using Synaptic to download software from the Debian Testing
SparkyLinux comes with TeamViewer and Dropbox as standard. It also has its own settings centre to enable easy configuration.
Features at a glance
repositories, or you can dig into the terminal for a little apt-get action. While using SparkyLinux, we were reminded of Crunchbang Linux. The desktop has the minimalist feel of Crunchbang, but includes a menu for quick access to applications and a dash of colour. The comparison between the two distros is complimentary, as both are extremely well put together and breathe life into aging PC kit. Both Sparky and Crunchbang use Conky to display a series of statistics on the righthand side of the desktop. This is a great feature and very customisable by the user, its just a pity that the default Sparky Conky config is a little awkward on the desktop.
late. The Linux world is not just about Gnome, KDE and Unity, and SparkyLinux is a great showcase of this. Performance with the LXDE version was great on a Core 2 Duo machine, and the system resources were rarely taxed. Those of you with Core i3/5/7 series CPU will have no issues running it. SparkyLinux is not a distro for those new to Linux. To get the most from it, you need a little experience under your belt. The performance and choice Sparky provides are fantastic, while there is a version of the distro for gamers that provides a platform for modern and retro gaming. LXF
Performance
SparkyLinux comes in a choice of window managers to cater for machines of various abilities and specifications. For the majority of machines, the LXDE version will provide the right balance of speed and features. But if you have an older machine, or wish to try them out anyway, you are spoilt for choice, with OpenBox and Enlightenment versions ready for download. This provides much-needed choice, which has been missing for quite a few of the mainstream distros of
Verdict
SparkyLinux 3.2
Developer: SparkyLinux Web: http://sparkylinux.org Licence: GPLv2
Apps
Conky
Rating 8/10
A great distro for experienced users, with excellent performance on a multitude of platforms.
www.linuxformat.com
Distribution Reviews
PiBang Linux
A CrunchBang derivative for the Raspberry Pi? Les Pounder fires up the community created distribution to investigate.
In brief...
An alternative Raspbian based distro for the Raspberry Pi. See also: Pidora.
hen Crunchbang Linux came on to the Linux scene in 2008 it ushered in an era of lightweight Linux distributions for all types of machines that had previously been left unloved. The use of the Openbox window manager, in particular, gave a world mostly full of Gnome and KDE a new and interesting method of user interactivity. About two years ago, the creator of Crunchbang, Philip Newborough, was approached by the community to produce a version for the Raspberry Pi. Philip asked the community themselves to produce the distro and while PiBang Linux is not an official Crunchbang distro, it has Newboroughs blessing. PiBang is a distro for those that want a stylish yet grown up Linux operating system for their Raspberry Pi. Its also using the standard Raspbian repositories, which enables you to access all of the existing software and projects that are currently whizzing around the community. The distro uses the Openbox window manager to great effect and the desktop is a minimalists dream. To access the menu all you need to do is click on the right mouse button and it appears. The amount of entries on the menu that appears highlights straight away that this a packed distro. There are two others versions of PiBang available. One uses the i3wm tiling window manager and another thats designed as a stripped back server operating system. The distro what ever version you choose
is supplied as an image file (.img) that you can transfer to a blank SD card via good ol dd. When you first boot the OS you are asked to create a new user who can be added to the list of sudoers and afterwards youre free to login to the desktop. From there youre presented with a configuration screen. In the post install screen you can configure and install extra software, such as Git version control and LAMP services.
Openbox. For best results wed recommend overclocking the CPU using raspi-config to around 800MHz. This should help things zip along nicely. The main barrier to performance is the hardware used in the Raspberry Pi. Until the true power of the GPU is unleashed via Wayland, all distros will have a speed limit. We found the PiBang to be a serious distro for those who want to use their Pi as both a hobby and a production tool. PiBang has firm roots in Raspbian and this provides you with a plethora of great software, should you need to install any more software as PiBang comes with plenty of options. If you find Raspbian too simplistic but still want to have access to its repos, then PiBang should be a definite contender for a space on your Raspberry Pi. LXF
Features at a glance
Verdict
PiBang Linux
Developer: PiBang Community Web: http://pibanglinux.org Price: Free. Buy the creator a beer
Raspbian repos
Openbox
Rating 8/10
This is a distribution for those who want to be as productive as possible with their Raspberry Pi.
www.tuxradar.com
Specs
Th GPU GM107 (Maxwell) CUDA cores 640 Base clock 1,020MHz Boost clock 1,085MHz Memory 2GB GDDR5 Memory bus 128-bit Memory clock 2,700MHz
his is a first. Here we are with a new GPU architecture from Nvidia, and for once its not debuting in some flashy 500 top-end graphics card. Instead, Nvidia has decided to introduce the new Maxwell design in a mainstream graphics card, the GTX 750 Ti, right from the off. Keeping the new GTX 750 Ti and its Maxwell architecture on the same 28nm lithography means that Nvidia has been able to iron out architectural bugs without having to worry about unforeseen process problems, and since 28nm yields are as good as theyre likely to get, it makes perfect sense for a mainstream, high-volume card to roll out on a process thats going to be produced in numbers. Its almost aping Intels method of CPU production its tick-tock cycle. Intel creates a new architecture on an existing production process and then refines the same architecture with a die shrink the tick being the shrink and the tock the new microarchitecture. This could just be a happy accident.
Ultra efficient
So, what is Maxwell all about? In a word: efficiency. Thats been the buzz word around most of our technology in recent years, but it has taken GPUs a long while to catch up. The graphics card is most likely the hottest and loudest part of your PC, and thats partly because weve allowed it to be. But the times they are a-changin . Whereas once you could rely on a new die-shrink to get more processor logic into the same space at an equal or lower cost, the technological demands of ever-shrinking transistors is rising with each shrink in process and that rising cost of development comes with production cost increases. To get more with less, as much performance per watt as possible must be developed. And thats Maxwells raison dtre. The upshot of this is graphics cards will get more efficient in terms of power demands and temperatures. In terms of the architecture, Maxwell shares DNA with Kepler and Fermi, being made up of many little CUDA cores for that parallel processing goodness. Its the
management and arrangement thats different the big change is in the streaming microprocessor. The SM has evolved from its first appearance with the Fermi architecture: it was redesigned as SMX for Kepler and now as SMM with Maxwell. The new SMM re-organises the control logic and CUDA cores. Previously, each SMX housed 192 CUDA cores that were looked after by one piece of control logic. With Maxwell, every SMM is divided into four quadrants, with 32 CUDA cores in each, and each with its own control logic. That means there are only 128 cores in every SMM, but each of the four processing blocks has its own instruction buffer and scheduler to improve efficiency and speed. The SMMs are smaller, which means Nvidia has been able to squeeze five of them into this GM107 GPU. This added logic and higher number of streaming microprocessors adds to the parallel processing power of the Maxwell chips and, according to Nvidias testing, means it can deliver 35 per cent more performance from each CUDA core. All this talk of efficiency and elegant design solutions is one thing, but how does it perform? This isnt a big leap forward in graphical performance on a card-for-card basis. The GTX 750 Ti performs at around the same sort of levels as the retired GTX 650 Ti Boost.
This board is tiny Nvidia is confident well see half-height designs and because it draws all the power it needs from the PCIe bus, it doesnt need any external power connectors. Thats exciting because it means that those of us without the sort of PSU that doesnt have the capacity or PCIe connector to spare for a modern graphics card now have an upgrade path. The GTX 750 Ti will potter along at over 30fps in most modern games at the highest 1080p settings. You can drop the settings down a notch and get great gaming performance. Some of the minimum frame rate numbers dont look too healthy, but that could be a result of immature drivers. LXF
Verdict
Nvidia GTX 750 Ti
Developer: Nvidia Web: www.nvidia.com Price: 115
Rating 8/10
A good value card, with great temperature control and power efficiency. A taste of whats to come.
www.linuxformat.com
Guacamelee! GE
Matt Hanson dons a mask to play this vibrant platform game thats based on Mexican folklore.
In brief...
An eye catching and enjoyably retro-feeling platform action game. The Gold Edition comes with extra levels, challenges and costumes as well.
efore playing Guacamelee! Gold Edition our main source of knowledge about Mexican folklore came from the late 90s LucasArts adventure game Grim Fandango, and our art editor Effies stories of what he got up to on his holidays back in the motherland . Since playing Guacamelee! our knowledge might not have improved all that much, but weve had a lot of fun along the way. You play as Juan Aguacate, an ordinary farmer who becomes a luchador wrestler to rescue El Presidentes Daughter who has been kidnapped by Carlos Calaca who, as you might expect, is a skeleton. With a beautiful and vibrant art style that takes inspiration from a range of sources, from the Day of the Dead celebrations to pulp Mexican movies, Guacamelee! looks absolutely stunning, with a fantastic soundtrack, yet you wont need an all singing-all dancing gaming PC to play it. The devs, Drinkbox
suggest Pentium 4 2GHz and it only uses OpenGL 2.1). Its not just Mexican culture that inspires the game, however, with a play style thats highly indebted to classic platform and fighting games, especially Meteroid and Castlevania. Rather than running through a linear progression of levels (like in early Super Mario games), youre free to explore the world (or perhaps we should say worlds as you can switch between the world of the dead and world of the living throughout the game), with certain abilities that you learn on the way unlocking various additional locations. The combat is straightforward but with enough depth to encourage you to try out new moves, and though there are a few frustrating difficulty spikes the gameplay and beautiful setting will keep you coming back for more theres even a twoplayer co-op mode. Guacamelee! feels like a love letter to both Mexico and console games of old. LXF
Verdict
Guacamelee! Gold Edition
Developer: Drinkbox Studios Web: http://guacamelee.com Price: 11.99
Rating 9/10
A vibrant, fun and amusing platformer that harks back to some ofNintendos classics.
Gone Home
In brief...
An exploration game, where you play a returning daughter from a trip abroad and discover your home is empty what happened to your family?
Light switches, rifling through sock draws and 90s cassette mixes have Neil Mohr crying.
or a time we joked we were playing a light switch simulator, but as we explored the many rooms and corridors of this empty house, set in Arbor Hill, Oregon, as a storm raged outside, we realised we were exploring lives and lives and experiences that made us cry. From The Fullbright Company, the game was developed to be a pure story exploration experience theres no combat and no puzzles as such. Butthen the whole house is one large puzzle, filled with memories, tapes and trinkets from a familys past, which are waiting to be uncovered. Its a deeply effecting experience, something that can hardly be said of the Call of Dutys or Battlefields of the gaming world. Instead, Gone Home has you playing as a long-absent sister.
While you rummage through drawers and sneak around rooms you feel like a interloper, intruding on peoples private lives and it genuinely feels wrong. Played out through voice-over monologues in the best System Shock style the background story slowly unravels. The 90s backdrop is painted in with discarded tape cassettes, which play live bands. Pop one on and as you explore, shouty girlband music slowly recedes into the background, masked by creaking floorboards and rain pelting windows. The games Unity engine isnt particularly presented at its best, the mechanics are clunky and youre unlikely to replay this apart to find the odd hidden tape. Itll take you an hour as well, but none of this makes it anything but an entrancing game. LXF
Verdict
Gone Home
Developer: The Fullbright Company Web: http://gonehomegame.com Price: 14.99
Rating 9/10
May 2014 LXF183 23
On a technical level Gone Home isnt good but as an emotional experience its entirely engrossing.
www.tuxradar.com
Roundup
Every month we compare tons of stuff so you dont have to!
How we tested...
We installed all the IDEs via their recommended method of installation. For consistency, we tried all the apps on top of the latest Fedora 20 running Gnome 3.10.2. We also noted and fulfilled any special requirements by any project, such as Eclipse and Aptana Studio which need Oracle Java to work. All the IDEs support multiple programming languages, and since we are on the lookout for a general purpose editor thats useful across multiple languages, we tested all kinds of projects in all the IDEs. To rate their prowess in handling complex projects we used them to tinker with popular open source projects, including Wordpress which is written in PHP and TWiki thats coded in Perl. We also tried snippets of code in other popular languages such as Java, HTML5, JavaScript, Ruby and CSS.
Our selection
Aptana Studio Bluefish Eclipse Geany Komodo Edit
n Integrated Development Environment, or IDE, is a software application thats designed to help developers build software. And when it comes to building software, the right tool for the job can really make all the difference to your workflow and efficiency. Weve come a long way since the days developers would edit source code in vi and run cc from the command line to compile the code. A modern day IDE offers a richer code creation and editing experience. Most of them now include a
feature-rich source code editor with intelligent code completion features, a graphical user interface builder and even a debugger to help pinpoint problems in the source code. Development environments not only help you if you are a new programmer, they also simplify your workflow when you are starting out with a new programming language. Not all IDEs are the same, however, they come in all shapes and sizes. There are simpler ones that are nothing more than an over-glorified text editor and complex
ones with endless menus that are cumbersome to operate. In this Roundup well be looking at some of the most popular IDEs that are designed to be of use to a large number of coders because they support quite a few programming languages. Well test the features that are offered by their code editors, appraise them for encouraging and fostering team collaboration, rate their user interfaces, check out their supported plugins and comment on the skills of their various debugging features.
www.linuxformat.com
he most important part of any IDE is the code editor. Its where they write, debug and tweak their code. In essence a code editor isnt unlike a text editor. However, unlike a vanilla text editor, a code editor has several features, such as syntax highlighting, code folding, code completion and a lot more to aid the developer to better visualise and organise the code. Geanys code editor provides the most basic assistance. It does syntax highlighting and can fold code blocks. Although it doesnt auto-close braces, it does colour code them for you which will help you to identify any unclosed ones. Web developers will also appreciate Geanys ability to auto-close XML and HTML tags. Bluefish does code block folding as well. Additionally, it also highlights matching start and end markers for both brackets and tags. So when you click on a bracket, it highlights the corresponding closing or opening one. The editor also does autocompletion and automatically closes
tags for several programming languages. Furthermore, it displays reference information which is a really handy feature if youre new to a particular language. Youll also get this help even if you have nested code in another language, such as JavaScript inside a PHP program. Another useful feature in Bluefish is the Snippets Bar from which you can add the most common snippets of code for a variety of languages. In addition to folding code and checking syntax, Komodo will also highlight variables. So you can doubleclick on a variable to see all occurrences in the code. A major plus is its ability to do code refactoring, where It can rename variables, class members and extract methods. Eclipse does code-refactoring as well. You can use it to extract the selection as a local variable or as a method. In addition to providing the usual assistance for code navigation,
The Bluefish Snippets Bar adds a lot to theexperience ofworking with the app.
Eclipse lets you reshape the layout of its editor. You can detach views and editors and combine multiple views into a single window. This is particularly useful for those who work with windows spread across multiple displays. You can customise the layout of the editor with Aptana Studio as well. Besides the usual code navigation features, such as auto-completion, Aptana will also assist developers by suggesting and explaining tags. When you type a tag, itwill show a list of similar tags and give you an explanation of what each tag does.
Verdict
Aptana Studio Bluesh Eclipse Geany Komodo Bluefishs code editor implements a large number of useful features.
he most common way to collaborate on projects is via a revision control system, such as Subversion and Git. Bluefish is a disappointment in this department as it doesnt support any.
Geany uses the GeanyVC plugin to enable access to Bazaar, Git, Mercurial, Subversion and CVS. However it only supports diff, log, status, revert and commit. Komodo Edit doesnt have revision control capabilities. Komodo
IDE can, however, work with the CVS, Subversion and Perforce source code control systems, although you still cant create or configure repos and branches from within the IDE. The IDE also enables developers to edit a document simultaneously, and store/share common snippets and macros via the publish feature. Aptana Studio ships with a built-in client for CVS to access repos. You can also add support for others via plugins, but we found the documentation very unclear and the plugin links were broken. Eclipse handles version control very maturely. The EGit plugin adds the Git distributed VCS within the IDE while the Subclipse plug-in adds support for Subversion. Both the Xpairtise and Saros plugins are popular as they enable multiple developers to work on a file simultaneously and see changes in real time.
Verdict
Aptana Studio Bluesh Eclipse Geany Komodo Wed suggest using Eclipse if collaboration is important to your project.
www.tuxradar.com
Getting started
Is the user interface intuitive enough?
he apps covered in the Roundup offer a plethora of features and support a wide array of programming languages, some natively and some via add-ons and plugins. These add-ons bring greater complexity that should be handled by a well-designed UI.
All the IDEs in the Roundup have a different layout. Some even allow their users to heavily customise the layout to suit their workflow. That said, users should see this flexibility as an optional benefit and not a necessity for using the app. This is why well award those IDEs
that expose their functionality and features by making judicious use of the user interface, instead of just overwhelming the user with endless menus. Well also rate IDEs based on how they welcome them to make sure they dont inundate the user with information.
Geany
Geany is straightforward to adopt as its a glorified text editor and the interface doesnt try to conceal that fact. The latest version is in the repos of all major distros. Youll also need to install its 20 core plugins. When you launch the app youre greeted with a clean interface and a prominent code editor with a simple layout. From here, you can get cracking with existing code file or create a new one using one of the supplied templates. We found autocomplete and code folding other conveniences aid the developer in writing and reading the code. When youre done you can use the well-placed buttons to compile, debug and run the code from within the IDE itself. Geany ships with just the right amount of configuration options to show off its flexibility without overwhelming the developer.
Bluefish
You can install Bluefish using your distros package manager tools after adding its custom repository. Bluefish is as fast as Geany to launch, and it presents a similarly clean interface. You can either open an existing file or start a project using one of its supplied templates. The Snippets Bar and the HTML toolbar are wonderful assets when writing code. Using these even programmers new to a language can quickly cook up code without much familiarity with the syntax. All you need to do is select the element you wish to add from the menu, define any options and values and let Bluefish create the corresponding code for you based on the values you selected. You can also control the behaviour of its tags from the apps preferences which also allows you to tweak other aspects of the IDE and its code editor.
Language support
What programming languages do they support?
Verdict
Aptana Studio Bluesh Eclipse Geany Komodo Bluefish does enough to satiate the needs of web developers.
ll the IDEs in this Roundup will help you write code in multiple programming languages. However, many of them are designed for a particular language. Aptana Studio, for example, is designed to build Ajax web apps and supports the latest HTML5 spec. But you can also use it author code in HTML, CSS, JavaScript, PHP and Ruby. Komodo can, in addition to these web-based languages, aid in the development of Node.js, XSLT, Python
and many more languages, with its code intelligence features for autocompletion and easier code navigation. However, its debugger will only accept PHP, Python, Perl, Ruby, Node.js, Tcl, and XSLT. Web apps are also a speciality for Bluefish. It includes language definition files for Perl, PHP, Python, C/C++, CSS, Google Go, HTML5, JavaScript, and more. Bluefish also has support for popular open source web apps such as MediaWiki and Wordpress.
The relatively simple Geany supports programs written in C, PHP, HTML, Python, Perl, Pascal, and Java etc. If its Java you want to edit, you should use Eclipse which is written primarily for that language. However you can also use it for other languages, such as C++, Python, Perl, PHP etc by means of different plugins. The IDE also has various dev environments, including the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/ C++ and Eclipse PDT for PHP.
www.linuxformat.com
Komodo Edit
ActiveState produces two IDEs. The freely available Komodo Edit which we evaluated in this Roundup and the commercial Komodo IDE, which you can evaluate using a 21-day free trial. The app is available as a compressed archive that includes an installation script. When you launch the app, it shows you a Help screen which points you to some introductory documentation and screen casts. As with Geany and Bluefish, you can either load an existing project or create a new one using a template. Komodo has templates for more than 50 programming languages and includes sample projects for HTML5, Perl, Python and Tcl. The code editor does a nice job of presenting the code and has the usual conveniences to make it easy to navigate. It also lets you easily create reusable code snippets.
Aptana Studio
The IDE is based on Eclipse and requires Oracle Java Runtime Environment. It also requires Git for version control and if you intend to do Ruby on Rails development youll also need to make sure the development environment is fully set up. Its also advisable to check out the Getting Started guide on the website for other requirements. Theres no installation if you are using the standalone version of the IDE. Just download, extract and run the app. When you launch the app for the first time, youll need to choose a workspace folder for your projects. As with other IDEs, you can create a new project using one of the supplied templates. The IDE inherits some of the best features of Eclipse, including the ability to only show you commands depending on the type of file you are editing. It also explains keywords and other elements.
Eclipse
Eclipse is by far the most feature-rich IDE in our Roundup. Theres not much involved in getting started with Eclipse if you have the required components, though. Just download the compressed archive, extract and run. Eclipse is slow off the blocks and only performs well on fairly well equipped machines. The main interface of the app is divided into different panels. At first glance it looks a bit daunting. Unfortunately, this doesnt change even after spending some time with the app. If you are new to Eclipse, you should take some time to familiarise yourself with its working One unique feature is Perspectives which let you customise the layout and contents of the windows. However, itll only be a hindrance to novice users wholl struggle to discover major features and functionality.
Verdict
Komodo dispenses support via its online forums where they also host a collection of FAQs. The project also has quite a few screencasts on its YouTube channel, some of which are linked in the start screen of the app. Komodo also has detailed built-in documentation that covers every feature in detail. Eclipse leads the pack in this area with large amounts of information in the application and even more available online on its YouTube channel. The app also comes with sample projects.
Aptana Studio Bluesh Eclipse Geany Komodo Youll find user-contributed screencasts for all the apps on YouTube.
hanks to all the functionalities crammed into them, IDEs are complex pieces of software. Nomatter how many years of programming experience you have, sooner or later youll need to refer to some kind of documentation to make the most of a particular feature. Bluefish scores poorly in the support department. The app doesnt include any sort of offline documentation and only has a barebones manual hosted on its wiki. However, the app is pretty
popular with developers and youll find several tutorials and guides on the web. Even the lightweight Geany does better which ships with an illustrated user guide. However, besides a FAQ theres not much information on its wiki. Aptana Studio ships with integrated help and has an online wiki which it shares with its other IDE, Titanium Studio for mobile development. Aptanas support also includes a board which is a collection of tagged questions on Stack Overflow.
www.tuxradar.com
Debugging support
Do they make this task any easier?
major chunk of any developers time is spent debugging their own creations. Duties such as streamlining their code, removing inconsistencies and polishing the rough edges are a necessary part of the development process. The amount of time this takes and the sanity sucking nature of the task can be simplified with a selection of the right tools. The most popular open source debugger is
the GNU Debugger (GDB) which works for many programming languages and offers extensive facilities for tracing and modifying their code. While many of the IDEs use GDB, some have a debugger of their own. Both Komodo Edit and Bluefish dont ship with a debugger, so youll have to debug your programs outside the apps. The advanced retail version of Komodo does ship with graphical
Aptana enables you create, manage and run several debug configurations.
debugger that can deal with code in PHP, Python, Perl, Ruby, Tcl and Node.js. One notable feature of the debugger is the HTTP Inspector that can inspect browser-server communications. Although Geany relies on GDB as well, but it does one better. The IDE has its own debugger plugin which lets you debug from within the application. Currently, the plugin only supports GDB, but support for other back-ends is planned as well. Aptana Studio has its own custom debugger that can handle code written in Ruby on Rails and JavaScript. Using this debugger you can do the usual tasks youd expect, such as setting breakpoints, inspecting variables and controlling execution. Like Aptana, Eclipse has a special debug Perspective which gives you a preconfigured set of views for debugging Java code. In this Perspective you can control the execution process of your programs and can investigate the state of the variables. You can also hook up GDB with Eclipse and along with several other third-party debugging tools.
Verdict
Aptana Studio Bluesh Eclipse Geany Komodo Most IDEs tend to ship with debuggers for their preferred languages.
ll the IDEs we featured rely on plugins to extend their core functionality, and youll have to use one or several plugins to make best use of the IDE. Much of Bluefishs functionality is based on plugins, so much so that youll have to install its plugins package along with the IDE itself. The app has plugins to create HTML dialogs, add snippets of code, a character map, zencoding for improving HTML & CSS workflow and more. Geany too has lots of plugins. Some that ship with Geany enable you to insert HTML characters, create source files for new class types, add the file browser tab in the side and provides different actions related to saving files. The project also collates several plugins in various states of completion on http://plugins.geany.org. On the website you can read about each plugin,
check features and usage instructions, before you download and install them. Some of the most useful plugins are for debugging: theres the GenDoc plugin for auto-generating documentation, Geany Macro which enables user defined macros, and the Addons plugin which adds such things as bookmark list, status icon, etc. Komodo too has a dedicated section on its website where it hosts additional plugins. The project claims to list over 100 add-ons. Some useful extensions are the NST Code Browser, Emmet toolkit for improving HTML, the ToDo helper, MySQL database explorer and the CakePHP code intelligence. Plugins for Eclipse come through the Eclipse Marketplace. Many are free though some are paid-for only. Unlike other projects, the Eclipse marketplace is a whole ecosystem in itself.
Verdict
Aptana Studio
You can install Komodo plug-ins from within the IDE itself.
Bluesh Eclipse Geany Komodo Eclipse trumps them all, but the other IDEs also have useful plugins.
You can browse and search plugins, explore them in detail and view screenshots. Some even have detailed user guides and support forums of their own. Users can also comment, discuss and review plugins. To install a plugin all you need to do is drag and drop it into a running Eclipse Workplace. Aptana Studio can itself be plugged into Eclipse.
www.linuxformat.com
The verdict
hoosing an IDE depends on your requirements as a programmer. The language you are programming in and the size of your project are two of the most important criteria for selecting an IDE. Bigger and complex tools can scale down, but the reverse is only possible to a limited extent. Case in point is Bluefish which is suitable for individuals working on web-based projects, including complex ones, such as WordPress and MediaWiki. However, the IDE lacks a debugger and theres no support for any version control system, which rules it out for team projects. Then theres ActiveStates Komodo which is available in multiple versions. The free Komodo Edit is a basic editor that can be extended with plugins. However, its overshadowed by its commercial sibling, Komodo IDE. This version has all the features youd expect, including a built-in debugger.
The other three IDEs all get LXFs stamp of approval. We arent asking you to install all three, but between them they cover all types of programmers who flip through these pages. If web and scripting languages are more of your style, Aptana is well suited for the task. PHP, Ruby on Rails, and Python are supported as well as Adobe Air. However, If you want to use it with a more comprehensive IDE, the app is also available as a plugin for the Eclipse. For individual developers, theres no better option than the lightweight Geany which supports all the major programming languages. It features a simple layout and has a clean interface that doesnt overwhelm users. Despite its lightweight nature, the app offers all the common features that you expect from an IDE, which
makes it a wonderful general purpose IDE for individual users. But in terms of features and execution, theres no beating Eclipse, which supports a range of languages. Eclipse has a loaded interface and is overkill for individual users. However, it gives you a future-proof environment that prepares you for tackling bigger projects in the real-world.
Eclipse gives you a future-proof environment that prepares you for tackling bigger projects.
4th Komodo Edit
Web: http://komodoide.com/komodo-edit/ Licence: MPL Version: 8.5.3 A feature-limited app that doesnt offer anything spectacular.
1st Eclipse
Web: www.eclipse.org Licence: EPL Version: 4.3.1 The best IDE for all-round development.
2nd Geany
Web: www.geany.org Licence: GNU GPL v2 Version: 1.23.1 A flexible IDE for the individual developer.
5th Bluefish
Web: http://bluefish.openoffice.nl Licence: GNU GPL v2 Version: 2.2.5 Isnt bad as such, but loses out to more feature-rich peers.
3rd Aptana
Web: www.aptana.org Licence: GNU GPL v2 Version: 3.4.2 The perfect IDE for web-based projects.
Over to you...
Do you agree with our choice? What IDE do you swear by or have sworn at? Email your opinions to lxf.letters@futurenet.com
Also consider...
While, weve covered the most popular ones, there are several other expansive as well as lightweight IDEs you can check out. If you are used to emacs or vi, we wouldnt even try to pluck you away from these versatile and evergreen tools. However, despite their flexibility we cant recommend them to new developers because of the steep learning curve and access to easier alternatives. Java developers impressed by Eclipse should take a look at NetBeans which includes a wonderful graphical user interface designer. Programmers that dabble with C# code should consider MonoDevelop. Ifyou are looking for no-nonsense IDEs theres also Anjuta, KDevelop, and Code::Blocks. Of late there has been a surge of web IDEs. These IDEs reside inside your web browser and are naturally ideal for developing web apps. Some popular web IDEs are Cloud9, ShiftEdit, and Codeanywhere. These platform support a large number of programming languages, including HTML, CSS, PHP, Java, JavaScript and several others.
www.tuxradar.com
Subscriptions
Subscribe today
Save 35% and get Linux Format for just 27.49 every 6 months
ake advantage of our fantastic new subscription offer and subscribe to Linux Format magazine for only 4.22 an issue.
Get a great deal on your annual subscription and have Linux Format delivered to your door for 58.99 a year.
www.linuxformat.com
he archiv e with LXF of DRM 1000s -free tutoria ls, feat ur and re views es
Visit www.myfavouritemagazines.co.uk/LINP2C
(Please use the full web address to take advantage of this special offer)
Star distros
The top five desktop distros slug it out and Mayank Sharma is the man with the bell.
ore than 100 distros are listed on distrowatch.com and all of them want a slice of your hard disk. But choosing a distro is an involved process, and this is why many users prefer to stick to the one they have set up and update it every six months or so. However, most distros especially the more popular ones are constantly evolving. A distro that fell out of favour for introducing a new feature in one release might score better than its peers when that feature stabilises in subsequent releases. Of course, we arent going to suggest that you keep hopping distros whenever a major player unveils a new version. But if you have been using the same distro for
a while, its time to take a good look at the other options out there. The top distros dont just cater to a particular audience anymore. Things were simpler when distros were known for sticking to and polishing their default desktops. Fedora was the premier Gnome distribution,
If youve been using the same distro for a while, its time to look at the other options.
OpenSUSE was known for its KDE desktop, and Ubuntu was the only newbie-friendly distro, with a novel software centre. Some of the top distros, including Ubuntu, Fedora and OpenSUSE, have the resources of million-dollar multinational corporations
behind them, but that doesnt mean they are technologically superior to pure community-supported efforts such as Linux Mint and Mageia. Over the next few pages, we will analyse five distros (Ubuntu, OpenSUSE, Fedora, Mint and Mageia) to test their strengths and identify their weaknesses. Well nitpick their installation and upgrade process, comment on their package managers, fiddle around with their configuration options and assess their usability to find the perfect Linux desktop distribution for you. Dont despair if you are an advanced Linux user. Well also look at the top distros for experienced Linux campaigners, cherry pick distros made for older hardware and delve into the realm of specialised distros.
www.linuxformat.com
Star distros
alterations to elements that were automatically configured, such as the location of the bootloader. We think this approach works better than Fedoras hub-and-spoke model. The partitioning mode in Mageia 4s installer can be used in simple or expert mode. The auto-allocate option creates an easy layout in simple mode, whereas expert mode offers three options based on the intended use of the installation. After creating a partition, you can configure its mount options. For example, you could mount it as read-only. You can even create logical volumes from within the installer and add partitions to it, which can then be encrypted. The installer lets you pick which bootloader to use and supports Grub, Grub 2 and Lilo. You can also modify its entries and pick the location for installing the bootloader. Before installation, the installer removes unwanted packages, such as language support, but doesnt create any users. Mageia has tools that will update the system from online repositories, and you can use the DVD to upgrade to newer releases. These facilities make it really easy to refresh your system when necessary.
Verdict
Mageia 4 Ubuntu 13.10 Linux Mint 16 Fedora 20 OpenSUSE 13.1
The Ubuntu installer lacks the flexibility offered by OpenSUSE and Mageia.
Specialised distros
There is a slew of regular distros, but plenty of specialised examples, too. Some can be run as regular desktops, but most exist to quench the thirst for a particular genres best apps. Interested in producing multimedia, but want to avoid the hassle of finding the right codecs and apps? ArtistX comes with 2,500 multimedia tools, and Apodio will show you which do what. The Ubuntu Studio distro has tools for book publishing and editing raw images. Youll also find a variety of open source tools for education, such as UberMix, Skolelinux and Edubuntu. Since the mainstream distros strive to serve a variety of users, they run apps and allow connections on ports youll never use. If you want a distro for security, try Network Security Toolkit. It bundles many of the tools in sectools. orgs Top 125 Security Tools list. There are several open source tools designed for digital forensics and penetration testing. The two best distros that give you access to the entire cache are CAINE Live CD and Kali Linux. The latter is the continuation of the BackTrack Linux distro. If you want to power your SOHO network with the best network server tools, Zentyal has all the components you need to run a gateway server, an office server and a communication server. It has got Apache web server, OpenLDAP directory server, BIND DNS server, Jabberd2 IM server, Zarafa groupware, Asterisk VoIP and DansGuardian. Looking to manage a RAID storage device? Check out the Debianbased OpenMediaVault. With the arrival of Steam, Linux has opened its doors to gamers, and Valve has released its own Debian-based distro called SteamOS.
www.tuxradar.com
Star distros
User experience
Do they strong-arm the user?
A distro is more than just a collection of apps. In fact, many of these top distros have the same applications. The one factor that defines a distro and separates it from its peers is its user experience. The top distros tested in this feature offer different user experiences, and these are influenced to a considerable extent by their default desktop environments. All the leading distros spend a considerable amount of effort on making sure their final product is a cohesive unit rather than a loose conglomeration of its parts. The top distros leave no stone unturned to deliver a polished product, and will include innovations such as custom artwork to help apps blend with the desktop, and tailored apps to better suit the workflow.
Mageia 4
Mageia is one of the best-assembled community distros. It has an expansive support infrastructure and very good documentation. Documentation is vital to using the distro because you need to understand its repository structure before fleshing it out with new apps. Like many desktop distros, Mageia displays a help screen after loading the desktop. But, unlike others, Mageias help screen is interactive, teaches you about the repos and gives you shortcuts to edit software sources. Mageia boasts intuitive custom tools with which to manage various aspects of the distro. One of the best is Mageia Control Center, which allows you to control and tweak everything. Mageia ships with several desktops, and the
developers have made sure the experience is consistent across all of them. However, we recommend the KDE desktop.
Ubuntu 13.10
Getting started with Ubuntu should pose no issues to any user. The distro uses one of the best installers, and can be navigated easily to carve out space on your disk and set up a dual-boot system. Once youre inside the distro, it is a different story. Despite several years under its belt, Ubuntus Unity interface is still visually different from the desktop most users are familiar with. If you can look past your prejudice, however, the desktop is quite intuitive to navigate. Features that work well for the desktop include Ubuntu One data hosting and sharing service, Ubuntu Software Center and the messaging menu. This allows users to control their messaging status across various online services. These tools give the distro a usability edge
over its peers. All said and done, Ubuntu is well put together with pleasantly integrated components.
Pre-installed apps How ready to use are they out of the box?
All the top distros include the usual selection of apps for everyday desktop use. Youll find distro-agnostic apps such as LibreOffice suite and Firefox, as well as other utilities and apps that are packaged with the respective desktop. Some distros require users to equip browsers with plugins to play Flash content, or install codecs to handle multimedia files in a proprietary format. If you think that carrying out such tasks would be an annoyance, steer clear of Mageia, Fedora and OpenSUSE; all of these require you to add plugins and codecs manually post-installation. The Mint project produces separate editions of every release, with and without these proprietary codecs. All these distros support multiple desktop environments in different live CDs. However, none of the live CDs allow package selection. Ubuntu and Mint produce only installable live CDs, while Mageia, OpenSUSE and Fedora have install-only DVDs. Mageia and Fedoras DVDs offer the highest number of desktop environments. As well as Gnome and KDE, they support Cinnamon, Mate, Xfce and LXDE. Mageia offers Razor-qt and Enlightenment. While OpenSUSE has only Xfce and LXDE, besides KDE and Gnome, the distro leads the others in terms of flexibility during package selection. You can fine-tune the package selection and even choose individual packages for installation.
Verdict
Mageia 4 Ubuntu 13.10 Linux Mint 16 Fedora 20 OpenSUSE 13.1
In terms of default packages, there is very little to choose between these distros.
www.linuxformat.com
Star distros
Linux Mint 16
Mint is everything that is good about Ubuntu and then some. The distro takes the best tools from Ubuntu including its installer and combines them with a whole set of custom tools, such as its Cinnamon desktop. Cinnamon is based on Gnome 3, but retains the look and feel of Gnome 2. You will find all the familiar desktop furniture, including a panel at the bottom showing a list of open windows, and an applications menu in the bottom-left corner. Another cool tool is the Mint Software Manager (this predates the Ubuntu Software Center and is just as slick). You can use the Software Manager to install the Steam client. Mint does a great job of integrating its various tools. For example, the latest release has a new tool for formatting USB
disks. This is integrated into the context menu of Cinnamons Nemo file manager, along with the USB Image Writer tool.
Fedora 20
Usability woes in Fedora start with the redesigned Anaconda installer. It has been tweaked in the past couple of releases, but it still lacks the consistency youll find in other mainstream distribution installers. Out of the box, Fedoras Gnome 3 desktop is still very bland and wears a deserted look. Unless users enable extensions, they have to grapple with some of its peculiarities, such as a missing bottom panel and the inability to place icons or folders on the desktop. The new paginated applications view isnt as effective as the categorised view that is adopted by its peers. Nonetheless, users will appreciate the single unified system status area. The new headers on windows merge title bars
and toolbars into a single element, giving the distro a refined and consistent personality.
OpenSUSE 13.1
Like Fedora, OpenSUSE uses the RPM package manager. However, in contrast, OpenSUSE is much more approachable. The installer isnt confusing and can be scaled up for advanced users, which is a definite plus. The OpenSUSE developers havent tinkered much with the default KDE desktop. But, just like past releases, they have made sure that all apps are branded properly with OpenSUSE green, which gives a slick look to the desktop. While the distros package management tool lacks the dress sense of Ubuntus Software Center and Mints Software Manager, its one-click install system steals the show. OpenSUSE comes with the comprehensive YaST configuration tool, although it could do with a little polish.
Interestingly, OpenSUSE is no longer just a KDE release; you can use either KDE or Gnome with the distro.
Verdict
Mageia 4 Ubuntu 13.10 Linux Mint 16 Fedora 20 OpenSUSE 13.1
www.tuxradar.com
Star distros
Configuration options
How tweakable are the distros?
Some distros have expansive sets of controls that can help customise just about everything. Then there are distros that ship with just enough options, so the user doesnt feel overwhelmed. A standard Ubuntu installation doesnt offer as many system settings as its peers. However, you can carry out minor tweaks to the Unity desktop such as changing the wallpaper. If you want more control, youll need to grab a third-party tool such as Ubuntu Tweak or Unity Tweak Tool. Linux Mint 16 bundles its own custom settings tool, that can be used to influence the appearance of the desktop and tweak compositing effects. Some elements of the settings tool are similar to Ubuntus. The one major difference is the Device Drivers option. This utilises a tweaked user interface to enable users to make an informed decision about which drivers to use for their devices. Fedora doesnt have a settings panel, and relies on the one that ships with Gnome. The Gnome settings
Yast is a very versatile configuration utility, but could do with a facelift.
Verdict
panel isnt so different from Ubuntus in terms of configuration, including the ability to sign in to online accounts such as Google Docs and Facebook. Yast handles OpenSUSEs configuration. It caters for desktop users as well as advanced Linux admins. The tool allows users to tweak all of the settings for a normal desktop, configure the bootloader and firewall, manage users, set up the network, tune security settings and set up system services. It can be used to transform an OpenSUSE installation into a Samba server, an Apache web server and more. It also doubles as the package manager. Mageia offers a similar number of configuration tools. Its custom control centre has modules for managing software, hardware peripherals and system services. Advanced users can employ it to share internet, set up a VPN and configure network shares. Mageia and OpenSUSE get additional configuration options, thanks to the KDE Control Centre.
Mageia 4 Ubuntu 13.10 Linux Mint 16 Fedora 20 OpenSUSE 13.1
Default desktops
Do they look appealing?
The oft-overlooked area of the Linux ecosystem, the desktop environment, came into the limelight around 2011. Suddenly, dramatic new desktop versions were introduced that overruled the existing ones. The community ranted and raged, users ditched their favourite distros and forks began to emerge overnight. Several years later, the situation has calmed. Desktops are now more usable than ever and new, stable, ones have entered the mainstream. All the top distros now offer polished versions of multiple desktops. Ubuntu is something of an exception in that it offers non-Unity desktops as officially-supported spins. Unlike Gnome, KDE, Xfce, Cinnamon and Mate, you wont find the Unity desktop present on any other distro besides Ubuntu. Like its revolutionary peers, Ubuntus Unity has come a long way in the past couple of years. However, despite its numerous usability improvements, the desktop still looks different and disorientating to new users. That said, it is well put together and is integrated nicely into Ubuntu. In many respects, Gnome is Fedoras flagship desktop. Yet Gnome is still very bland and as much of a shock to the senses as Unity. Users will need to spend some time playing around with its extensions to make the desktop work for them. On the other hand, you have Mageia and OpenSUSE; the new version of their KDE desktop had a head start on Unity and Gnome. But that desktop suffers from a different kind of problem. Its users are faced with a daunting challenge of comprehending its revolutionary features and then tweaking them as per their requirements. Some of the features arent very intuitive to comprehend and configure, which means that many users miss out on its goodness. If you want a familiar-looking desktop, Mints Cinnamon retains the workflow that users are familiar with.
Verdict
Mageia 4 Ubuntu 13.10 Linux Mint 16 Fedora 20 OpenSUSE 13.1
Unity and Gnome are usable, but not everybodys cup of tea.
www.linuxformat.com
Star distros
Lightweight distros
For PCs past their prime.
Bodhi Linux
The distro uses the lightweight and pleasing Enlightenment desktop environment. Enlightenment offers a number of different profiles, including Bare, Laptop and Fancy, each of which is optimised for different types of hardware configuration. The distro ships with a very minimal set of apps, which are primarily borrowed from the LXDE environment. These include the Leafpad text editor and PCManFM file manager, but you can add more apps to these with Bodhis AppCenter. This innovative web-based software installation tool enables you to download packages on any distro and then bring them over to Bodhi for installation. Bodhi Linux is based on Ubuntu and employs its easy-to-use installer, while offering lots of end-user documentation on its website.
Lubuntu
If you want Ubuntu goodness on an underpowered computer, check out Lubuntu which is built around the lightweight LXDE desktop. Unlike Bodhi, Lubuntu is chock-full of apps. Its got some GTK apps, such as the Evince document viewer, Archive Manager and mtPaint image editor, along with feature-rich apps that go with its LXDE desktop, such as the Leafpad text editor and PCManFM file
manager. Lubuntu has the Sylpheed email client, as well as the Chromium web browser. It has also got Audacious and Gnome Mplayer, which allow you to play audio and visual files. The distro comes, too, with word processing software AbiWord and the spreadsheet app Gnumeric. For package management, the distro uses its own lightweight version of the Ubuntu Software Centre, called the Lubuntu Software Centre.
Puppy Linux
Puppy Linux uses one of the lightest window managers (JWM). While it isnt the prettiest to look at, it is fully functional and comes with minuscule hardware requirements. The distro is popular for its collection of software and custom apps. It has apps for graphics and productivity, as well as for playing back,
editing and creating multimedia. Using its custom apps, you can block website ads, grab podcasts, burn optical media and a lot more. The distro is available in a variety of different flavours. The WaryPuppy edition uses an older kernel and includes additional drivers to support peripherals such as dial-up modems, while RacyPuppy uses a newer kernel.
Verdict
Depending on the age of your computer, you could revive it with any of these three distros. Lubuntu is a good option for machines that are about half a decade old, with a single core and upwards of 512MB of RAM. Application launches wont be the fastest, but youll have the satisfaction of resuscitating your old workhorse. Bodhi Linux, with its Enlightenment desktop, is an elegant blend of eye candy, a stable base and a well-designed package management system. However, you will need to spend some time with the package manager to prep the system. The distro that is top dog when it comes to older hardware is Puppy Linux. There is also no rival to the distros default software collection. Unless you want a particular piece of software, it will be quite a while before you fire up its package management system. The weakest part of the distro is its installer, which doesnt have an automatic partitioner; instead, it fires up Gparted for you to manually partition the disk. Having said that, each step in the installer is very well documented within the installer itself. The distro has an impressive support infrastructure; it has two independent and very active forum boards, as well as loads of documentation on getting started. The distro also bundles help documentation on several topics, including advice on working with Microsoft Office files.
www.tuxradar.com
Star distros
Advanced distros
For the hard-core power user.
Arch
Arch is one of the most loved options for advanced users who want to set up their own customised distro. While most distros provide a prepacked set of apps and configurations, Arch lets you design your installation from the ground up. Arch can take a long time to get going, depending on the number of packages you wish to install. All packages are downloaded off the web. The installation itself will introduce you to a range of configuration files that must be set by hand. Absolutely everything must be done manually. The most impressive feature of the Arch distro is Pacman, its bespoke package management tool. Arch is a rolling release that can be brought up to date with a single command.
Gentoo
Along with Arch, Gentoo is one of the most configurable distros. With it, users get pervasive control in building the system from the ground up. Gentoo is a rolling release that, unlike Arch or any other distro, insists you inspect the kernel during installation and streamline it by removing features you dont need. This distro packs an awesome package management system, called
Portage. Portage introduces you to Linux internals and several new technologies native to Gentoo, such as the USE flags system. The USE flags system can be used to define the features you want a package to support. If youve never used it before, theres a steep learning curve to using Gentoo. Derivatives such as Funtoo can be a good starting point if youre not ready to start struggling with Gentoo.
Debian
Because of its stability, Debian is considered to be the best distro for rolling out servers. The distro is also the desktop of choice for power users. One of the best things about Debian is its adaptable installer, which enables users to control which Linux kernel modules to load. After the core packages are installed, you get to configure the package manager and can install additional sets of predefined packages to turn the system into a web server, print server, mail server and more. Debian can run on many different architectures. Thanks to older, thoroughly tested, stable packages, the distro is extremely secure. It ships with no proprietary drivers or codecs, but almost every software vendor provides pre-packaged binaries for Debian, making app installation a breeze.
Verdict
Control and flexibility are the hallmarks of distros intended for power users. If you are already a power user, chances are you are already using one of these three distros. Compared to Arch and Gentoo, Debian provides a much larger number of binary packages and is available on a wider selection of architectures. Debian is an ideal starting point for would-be power users. It provides a solid, stable system and gives users a good idea about how configurable and flexible a Linux system can be. Since Arch and Gentoo do not provide any default packages, they offer much greater control to users and allow them to design a system as per their liking. However, there are other similarities between Arch and Gentoo. For starters, they are both source-based distros that have intricate set-up processes. As they both have rolling releases, their packages are available shortly after being released upstream. If you consider the level of control a distro offers to the users, then Gentoo cannot be beaten because it allows you to tweak everything, from the kernel up. Gentoo builds the system according to a user-specified USE flag, while Arch provides a ports-like system for building packages from source, and is designed to be installed as a prebuilt binary. Arch is, therefore, quicker to set up, while Gentoo is more customisable and much faster.
www.linuxformat.com
Star distros
The Verdict
Star distros.
Ubuntu the distro that made Linux a household name has recently been on a decline. Kudos to Canonical for trying to be disruptive and change the status quo with the distro, but the jurys still out on Ubuntus Unity interface, which is now key to Canonicals multi-device strategy. The distro is more than just a single product, and rather an ecosystem that is made of both online services and desktop software. But, as new features are added and existing ones are polished in an effort to integrate the local desktop with the web, it continues to alienate itself from privacyconscious users. Fedora loses out for very different reasons. The distro has got too much going on, but this is to be expected of a distro that doubles up as a test bed for newer, bleeding-edge features. While it has got a new installer, its revolutionary default desktop is not on friendly terms with a majority of the community. Other changes to the core infrastructure, such as package management, have already been announced for the coming releases. There is nothing inherently wrong with Fedoras closest RPM-based rival, OpenSUSE. But after weighing up all its features, we feel the distro works better on the business desktop. Many of the distros features, such as its support for
directory servers, will be wasted on the home desktop. Even its One Click Install system doesnt offer any real advantage for installing individual apps. This leaves us with Linux Mint and Mageia; in our opinion, these are the top two desktop distros. Linux Mint is essentially a one-man effort and cannot match the resources and manpower of the experienced community of developers that powers Mageia. The best thing about Mint is the Cinnamon desktop, and this has fuelled its meteoric rise. Cinnamon is no longer exclusive to Mint, and is offered by Mageia as well. Mageia lacks some of Mints excellent custom tools, but the distro has very useful and mature alternatives of its own. Consider the robust organisation and rock-solid infrastructure that powers and supports Mageia and you have a distro thats all set to rule the distro charts.
1st Mageia
Mageia does an all-round excellent job of showcasing the best the FOSS community has to offer.
4th Fedora
Fedora is in a state of flux, with key pieces of software still under development. See a users viewpoint on page 10.
3rd OpenSUSE
This distro is better suited to a business desktop rather than a home PC. See our guide on page 68.
5th Ubuntu
Ubuntu will reclaim its top spot if its multi-device strategy pans out with Unity at its heart.
Also consider...
Besides the distros weve covered in this feature, there are several others that cater to the average desktop user. If you like Fedora, youll love Korora. This distro uses the latest Fedora release and adds codecs, plugins and a bunch of apps to make it more usable out of the box than Fedora. If you like the idea of Mageia, youll probably also like PCLinuxOS, ROSA Desktop Fresh and the recently-released OpenMandriva distro. Another favourite is Sabayon, which aims to give regular desktop users a taste of the Gentoo distro, while the Arch-based Manjaro is aimed at the advanced user. Chakra Linux is usually one of the first distros to roll out the newest KDE releases. However, if you are looking for a distro to recommend to someone who is just starting to get into Linux, take a look at PinguyOS and Zorin OS. LXF
www.tuxradar.com
Freakyclown Xxxxxxx
Les Pounder talks to enigmatic hacker Freakyclown about the future of online security in a world where every click is under surveillance.
The world of hacking Skip forward a fair few years later and Im is a shady place full nowworking as a professional hacker or ofsecrets and lies, penetration tester (pentester). butin recent years this world has been LXF: Was there an event in your life that dragged by the triggered your interest in hacking? scruffof the neck FC: I dont think becoming a hacker is intothe media something that is triggered by an event. Its a spotlight through the likes of WikiLeaks, mindset and a way of life you are born with the Snowden files and high-profile hacks athirst to want to understand and change on major corporations by clandestine things. I dont think there was a key moment groups. But hacking is as old as technology where I suddenly exclaimed Eureka! and went itself and not all hackers are malicious. off to learn hacking. I believe it grew out of an Recently we met Freakyclown, a hacker and innate need to learn not only how stuff worked, penetration tester who works to make the but how to make it do what I wanted it to do. world a safer place, one client at a time. Sure, its fun to sit and play videogames but Freakyclown is a rare type of person; there is nothing like the feeling of making one while he protects his real identity, hes yourself no matter how crude and simple it content to speak in public about his may be. This mindset helps when testing profession, and hes become a popular networks, web applications, binary applications speaker at UK events. Hes also a keen supporter of the Raspberry ON THE pERCEpTIoN of HACKERS Pi Foundation and its mission.
Hackspace
Interview
through to criminal forensics. We are very active at releasing new tools and blog posts tothe world via our own dedicated labs site (http://labs.portcullis.co.uk). When Im not doing normal pentest, work I get to indulge in my speciality social engineering! LXF: So what is social engineering? FC: Social engineering is basically convincing people to provide you with information or access to places they shouldnt. Although this does include things people may have heard of, such as email phishing attacks, we use social engineering to test the physical security of buildings ranging from small offices through tobanks and more secure places that I cant mention. Ive been doing this type of testing formany years and have a 100% success rate getting into every target Ive been given. Im not sure whether this means Im great at my job, orthat across the board people dophysical security really badly. Ispend a lot of time trying to convince people that its a very important aspect of IT security. Many times I have gone against a firm that have spent millions of pounds on their network security only to rock up and walk into their building and remove the computers that they have worked so hard to protect. I have literally thousands of stories of interesting events and situations that I have gotten into doing social engineering testings and I am slowly writing a small book of them, readers that are interested in that should hit me up on Twitter or IRC to encourage me along with that, cause I need the motivation to finish it up. LXF: Have you ever come across security issues in a service or product that have forced you to reconsider using it yourself? FC: Oh yeah, I hear of loads of things that concern me and make me want to stop using some products or services. Ive heard of everything from those NFC-enabled bank cards (which I love to do a live demonstration with during my talks, illustrating how easy theyare to steal data from), through to whole companies whose networks I know are insecure, and I fear for my own personal data! Im sure someone with a normal mental
LXF: Youre quite an enigmatic celebrity in the unconference and events world. Can you tell us a little about your history? Freakyclown: Well, Im originally from Essex and I grew up pretty poor, but thanks to my mates, who are more like brothers to me, we kept a tight-knit group that got us all through the hard times. I got into computing pretty young. My first computer was a Binatone dual paddle game system with analogue controllers and metal toggle switches to select Tennis or Pong and soon. I went through a couple of machines including an Atari 2600, my best mate Lee still has his wood-faced one! Then I got an Amstrad CPC464, which was my first real computer with a keyboard, and that got me into a little programming. Eventually I traded in my Amstrad for a Commodore 64 and then finally upgraded to the Amiga 500 and 1200, which is when computing really took off for me. I started hitting bulletin boards and other dial-up places. It was around this time I started hanging out with 2600 hacking groups. Before long I started going along to their London meetings and making friends, but most importantly the group gave me a huge help in learning things.
People think you need to be an ex-criminal to do the job we do, but that isnt true.
and building security. We come at them from a completely different angle to the end user and the developer. When pointing out security flaws I often get told I would never have noticed that, or I wouldnt have imagined doing that. This comes from a lifetime of looking at things in a completely different way. A lot of people think that you need to be part-criminal or an ex-criminal to do the job we do, but that isnt true at all. In fact, it would mean you would almost never get a job like this its like saying that a policeman would need to be a criminal to catch them. Its all about the mindset. LXF: You work for a company called Portcullis Security can you tell us a little about the work that you do for it? FC: Portcullis is one of the largest computer security firms in the UK. It has been going since 1986 and has about 40 pentesters. Most of the work that I do is web application testing and network testing. We have specialists in almost every field from iOS phone testers
www.linuxformat.com
Freakyclown Xxxxx
Linux Format would like to thank the Museum of Computing in Swindon for its kind help with the production of this interview. Go give it a visit: www.museum-of-computing.org.uk
FC: Well, there was this one time when I got attitude wouldnt sleep well at night. arrested for the CMA (Computer Misuse Act) Onesneaky trick to help people track whos Section 3, which got a little out of hand to be selling their information is to sign up to Google and then give + emails to companies. honest, but the law saw sense after many, many months of me agonising and waiting For example, MrFoo@gmail.com can use MrFoo+ElectricCo@gmail.com for the electric until the bail case was finally dropped! company and it will come through to MrFoo@ Another funny moment was in London, when gmail.com and you can separate ON BRUSHES WITH THE lAW out emails easier, but if a gas company starts emailing you on MrFoo+ElectricCo@gmail.com then you know who passed it on, which makes it easier to block and report spam. LXF: As part of your presentation for various events, you introduce yourself via aseries of quick slides. Have you had any brushes with the law, and if so, how do they perceive a hacker?
The bank was surrounded by police, and I had to explain and prove I was a good guy.
I was undertaking a social engineering job. Itwas about 2am or 3am and I was scoping out this building for weaknesses ready for the next morning. I wanted to see what ways I could infiltrate this massively secure building.
Suddenly I heard a cough from behind me and someone asked me what I was doing. Obviously being sleep deprived and focused on the task at hand, I casually said Trying towork out how to break into this bank tomorrow . It was then that I realised that twocoppers were standing there staring at me in disbelief. That took some explaining! A third time involved a social engineering test against a high street bank that suddenly took a turn for the worse when the bank was surrounded by police and I had to spend a fair amount of time explaining and proving that I was a good guy! But to answer the question, the average policeman doesnt seem to understand hacking, in much the same way that the general public dont (they are normal human
www.tuxradar.com
Freakyclown Xxxxxxx
beings remember!) and frankly it is not their job to. Its the job of the courts and judges to understand and interpret the very grey guides given in laws and hopefully see sense in it all. LXF: Your talks are always very popular and you draw quite a crowd what do you think attracts people to them? FC: I genuinely have no idea why people evencome along, let alone why I get invited toheadline at events, but Ive been told its a combination of scaring the audience as well as making them laugh. I get the biggest range of reactions to my talks, from people asking for signed stuff through to people crying at the subject matter that has upset them. I like to make my talks a mix of simple explanations ofcomplex subjects and super technical explanations to make sure that everyone who comes along can take something away from them. If I can get across the actual reason why people should use secure passwords or not post their photos on Facebook, and they can explain that to their friends in a way that isnt technical, but they can give the real world reasons, then I think a talk has been successful. LXF: The actions of Edward Snowden, and his release of top secret documents to media and other websites have given him a pseudo-celebrity status. Should an action such as this be celebrated? FC: I know I am going to get some flack for this, but I think Snowden should be tried as a traitor. He took a job for the NSA and then years later grew a conscience? Oh please, you dont become a vet and not expect to be putting fluffy kittens down, and then cry about it to the papers that other vets are doing the same. The agency he worked for has a job to do and should be allowed to do it! Honestly, nothing he has released has been mind-blowing or at least not suspected. The only fact that weve learned is that the NSA is terrible at presentations! The mass media like to make things appear a thousand times worse than they actually are, and yes, they will moan about the way that certain secret agencies act, but they only see one side of things. There are many decisions and actions to be done in order to protect the way of life that we have, and they arent always pleasant. As Spock once said, The needs of the many outweigh the needs of the few. LXF: Weve heard many stories about the NSA spying on and monitoring civilians communications. What is your take on this? FC: The clue is in the name. Throughout history, mankind have spied on each other it is the way of the world and will not change! As I already said, we need these agencies in order to enjoy the freedom and liberties that we have. I have no issue with the way they do things in fact I salivate about the awesome technologies they are involved with, and the projects that the general public have no idea about. Just read the history of Menwith Hill! LXF: How is Menwith Hill related to hacking, and what technologies have been used or created there that are now commonplace? FC: Well, Menwith Hill is a small hub in the worldwide Echelon system run jointly by the UK, USA, New Zealand, Australia and Canada. Its been around since the 1960s and is used to sniff traffic, then the data is given to other agencies. Thats because its illegal to snoop on your owncountry, but not on eachothers. Menwith came onto peoples radar (no pun intended), when documents brought out in a trial in the 1990s showed that it had fibrelines from the UK phone trunks capable of handling 100,000 concurrent phone lines. People used to think it was all conspiracy theory stuff until Snowden started releasing documents and now its coming back into the publics mind. LXF: Whats your definition of the term hacker? FC: I grew up when hacking was the old school term, meaning if you use something in a way its not designed for, its technically hacking, or if you cobble something together to enable you to use something in a way it wasnt designed tobe used, then thats hacking. However, nowadays it is more generally meant for computer-based stuff. The mass media have totally ruined the word, and I urge the geek community to try and steal it back and reclaim it for its original intention. I helped start the Surrey and Hampshire Hackspace (http://sh-hackspace.org.uk), and its not about hacking computers in the sense of breaking into computer systems. We do everything from wool-spinning through to robots. Some people think we should be called a makerspace, but I love that we have stuck to the old ways and are known as a hackspace. LXF: Tor has been seen as the best way to stay anonymous online, but there are reports that its been compromised by government agencies. Are we seeing an increase in surveillance at the expense of liberty? FC: Never ever rely on a single point to remain anonymous. Tors logo is an onion for a reason. Use Tor, for sure, but use it like a skin of an onion layers upon layers upon layers. Encryption is another thing people do badly but depending what you want to do take the appropriate measurements. You dont need to fly to Thailand and use a stolen laptop with stolen Wi-Fi from a nearby cafe to browse the secret wiki on the undernet, but if you are probing NASA servers for proof of aliens, dont do that from your parents house! LXF: Are we moving blindly towards a controlled internet, where organisations can lock content? For example, ISPs blocking torrent sites due to illegal file sharing? FC: No not blindly. We have always had this, and people thinking otherwise are just not informed enough. Deep packet inspection and QoS have always been available to even the most basic networks. If you dont like whats being blocked, there is always a way around it. Again, we need to protect the innocent, like kids with bad parents, from seeing stuff thats not appropriate. The people that moan about things being blocked by default generally havethe technical knowhow to bypass them and assume that the general public want theaccess they need, in much the same way that people assume the speed limit should beraised, when most people cant drive safely at15mph in a car park. We have to protect themasses from themselves not for the few Michael Schumachers and geek wizards. [LXF: The Internet of Things is slowly becoming a reality. Recently fridges were found to be part of a botnet sending 750,000 spam emails. Do we really need to have every device on the internet? And if so,how can we reduce the chance that our fridges become part of Skynet?
www.linuxformat.com
Freakyclown Xxxxx
FC: Until IPv6 finally takes off, I cant ever imagine that everything will be connected. Nordo I worry that Skynet will be made fromfridges! Theres a fantastic film called Maximum Overdrive (1986) where all the computer-controlled devices on Earth start to turn on people and kill them, maybe this is more of the future than Terminator style wars. Computers are extremely fickle. I cant imagine Skynet running for more than two weeks without needing a reboot due to an update being required. LXF: Google has bought quite a lot of interesting companies lately, including the robotics company Boston Dynamics and, more recently, Nest, the remote-controlled central heating project. With its purchase of Nest, are we looking at a potential security risk to life and liberty? FC: I think Google gets a lot more flack than itdeserves. Google is not military funded, and nor is it doing R&D on behalf of the military. Google just has too much money and is trying to find the next big thing. People love to hate onsuccess. In the 1980s and 1990s everyone hated Microsoft; now everyone hates Google, Facebook and Flappy Bird. LXF: How can users stay safe online? FC: Trust no one. Make sure youve installed every update youre asked to install (after checking its authentic). Run a decent free antivirus solution. Make sure that you actually understand the risks. I suspect the average reader of this magazine is more savvy than most, so I ask the dear readers to teach others some basics that they already know. LXF: Devices such as the Raspberry Pi and Arduino have made tinkering and hacking more accessible for learners. Have you come across any nefarious uses forthese devices? FC: Yeah, in fact Ive created a few myself. One is a VoIP phone that has a Raspberry Pi embedded into it. The host phoneprovides the hidden Pi with an Ethernet network connection to the targets network. The Pi also creates a wireless access point, so it can be left plugged into a targets network and work as a VoIP phone, but allow attackers to wirelessly attack their network. LXF: On the subject of nefarious devices, whats your take on the use of drones? Withkit being easily available online, are werisking our privacy? FC: Like all new technology theres always going to be a risk that it could be used for harmas well as good. I mean, how long until wesee someone attach a grenade to a drone and swoop in on Justin Bieber concert, or fly over military bases to snoop for secrets?
LXF: There are many user groups and hackspaces starting up around the world. What would be your advice to a group, and what lessons did you learn along the way? FC: Lets first clear up for the readers that we are talking about spaces where people can learn things such as electronics, weaving, woodwork, and any other skills the members may have. They get to build 3D printers, use lathes, drills and sometimes some computer stuff happens. A hackspace is not a place you would go to learn illegal hacking skills. As I mentioned, I helped start the Surrey and Hampshire Hackspace in Farnborough, so
I cant imagine Skynet running for more than two weeks without a reboot.
I have some experience ofwhat its like to need and then start a hackspace. I would suggest you have a really good look around first. There might already be a hackspace in your area. If like me, you find there isnt one, then its best to start off small. Start with simple meetings in a local pub or coffee shop to make sure you get the core people in place. Its this core that will see you through the next few years until you get your first space. Take baby steps. We did pub meetings, then found pubs that let us use the back room for free, and then moved on from there. Were always available on IRC on freenode #sh-hackspace if anyone wants to come and ask for more advice. LXF: If anyone is interested in a future security or hacking career, what advice would you give them?
FC: Learn the basics. Make sure you know the fundamental ways things work networking, code, packets and wires and so on because only when you understand the fundamentals can you start to work out how to build on these things and then start to make them behave inways to your advantage. If you are young andlooking at college or university, then try to get onto a course that covers as much stuff aspossible rather than focused on one area. Pentesting requires not only the correct mindset but also having a broad knowledge. Ifyou are older or already have a job so cant get on a full-time course, your best bet is to look at getting a certification. In the UK you should check out Crest or Tiger Scheme as these are well known and the industry will look favourably on people that have gotten those certificates above, say, a CCNA or MS cert. There arealso many free tutorials out there, and there are loads of downloadable live CDs that have tools and applications to help you learn, such as Kali Linux, Black Arch and then you have live CDs for setting up testing labs, such as WebGoat and DamnVulnerable Web App. Remember: ifyou dont have permission, you shouldnt betouching it or you will end up in trouble andthat will ruin any chance of getting a job. LXF: Are there any hacks committed by other hackers that you wish you had done? Ifso, which and why? FC: [laughs] Im not sure I would want to have done any because they generally got caught, but I think Gary McKinnons was the most interesting one to me due to my interest in UFOs. The trouble is, having briefly met him at aconference, I dont believe a word of what he says he saw. LXF
www.tuxradar.com
3D printing on Linux
s we all know, 3D printing has taken off and is now available to home users and enthusiasts albeit ones with exceptionally deep pockets. However, despite the press frenzy on 3D printing, there appears to be a distinct lack of attention towards the poor operating system behind the printer. This is a shame, and so wed like to make amends and see what we can do to bring Linux into the 3D printing world. More specifically, we are going to go the extra mile by building ourselves a 3D printer from a kit. Well see whats necessary to get the printer running under Linux, what software is needed and how it all connects
up and works. Well also pass on a selection of tips to help you out if you decide to take the plunge into this brave new world of 3D printing.
unfortunately it is compatible only with Windows and Mac. A lot of the 3D printers that come in kit form, such as the RepRap family and Velleman, follow the open source route to some degree, and will therefore work quite happily under most Linux distros. In our tests here, we opted for the Velleman K8200 because its a mechanical marvel of a device and very open when it comes to operating systems. The next issue at hand is the software that will be communicating with the printer. In most cases, the printer manufacturer will recommend a particular package, or set of packages, that will work best with their device. The reasons are simple: the majority of 3D printers particularly kit form devices come in different sizes and with various printing parameters. The print bed, or platform, of one printer will probably be a different size to another, as will the range of the X, Y and Z axes. In some instances, this presents a slight problem, but in most cases it is remedied easily with the help of predefined profiles. Its worth noting that the software needs to be able to communicate with the printer, and has to have the ability to manipulate and control its motors and heated elements. As well as this, it has to be able to import any given number of 3D models, and slice them so that they can be sent to the printer. The slicing part of the process can reveal the G-code, or G programming language, which tells the printer what to do, and how to do it. By revealing the G-code, it is possible to modify further the parameters of the printer and the print job, and tweak as necessary. For example, the temperatures of the
www.linuxformat.com
3D printing on Linux
3D printing tips
As we said, there is a certain element of trial and error involved with 3D printing. Following these tips should help you to get a more successful print: n Make sure the print bed is perfectly flat and ensure that the nozzle is the same height across the entire bed (all four corners and the centre). Usually, 0.25mm is the recommended height which also happens to be the thickness of a standard greetings card using one as a gauge certainly helps. n Cut out any draughts that may be blowing over the print during the printing process. Having a section of the print cool too quickly can cause curling or warping. This will ruin the print, and cost you in terms of filament, energy and time. n Pre-heating the print bed is an absolute must, although most printers will do this automatically. Its often best to get the bed up to around 50C for polylactic acid (PLA), whereas acrylonitrile butadiene styrene (ABS) requires a little more heat. n Incorporating a raft into your design will save you a lot of wasted prints. A raft is a layer of filament that the printer will print onto the bed first, before printing the object on top. This increases the adhesion and can stop curling. It can be tricky to remove the raft from your design, but there are videos online that help explain how to do it. n Should you use PLA or ABS? Both of these printing materials have different properties and operational temperatures. In general terms, PLA is used most commonly for household and hobby projects, but its worth investigating both thermoplastics to see which one suits your needs best.
Some users have found that placing a mirror over the print bed is the ideal way to ensure that its flat.
heated print bed can be altered, the fan speed can be controlled and any temperature differences from the extruder nozzle (the bit where the melted plastic comes out) can be enhanced to produce a better or more successful print from your object. Finally, the printer software needs to be able to align the imported model, or allow you to fine-tune and manipulate the object on-screen so it can be printed out correctly by your printer. For example, if a pyramid design was loaded or imported with the apex pointing down, you would need to be able to rotate the design the right way up within the software. This would ensure that the design could be printed accurately. Thankfully, most 3D printer control software does all of the above. Some may do one aspect better than others, or some might automate the process more effectively, but generally most will offer all the basics. For this article, we used the excellent Repetier-Host software. As well as being able to create a 3D model from scratch, it does everything weve already mentioned to near-perfection. You can download Repetier-Host for Linux from goo.gl/vsHW55, and well go through the installation process in this articles accompanying walkthrough. The final element in the list of ingredients needed for successful 3D printing is modelling software, but this can probably be left until a later date, when youve eliminated any kinks with your setup. If you take a moment to browse the wealth of open source models available to download on Thingiverse (www.thingiverse.com), youll probably find plenty of options that
The Velleman K8200 is a good kit project 3D printer and works well with Linux.
interest you. So why bother with 3D modelling software? Well, if youve already spent considerable money and time on purchasing and building a 3D printer, then it makes sense to understand how a 3D model is created. By designing and creating
Hollowing out an object is an easy way to cut down on both materials and time.
your own 3D models, you will gain more insight into how the printers work and how they interpret the G-code data. There are a couple of tools worth looking out for when choosing a 3D modelling
program. These are Creating Hollow Object and Fixing Non-Manifold Geometry . If these tools arent available, then it may be necessary to shop around for a package that supports them. When youve loaded up your design and are ready to export it over to the printer, take a moment to consider the cost of the print. 3D printing is an expensive exercise. If you are planning on a 3D printing career move, then you definitely need to take into account the amount of material that you use for each of your designs. Even if 3D printing is just a hobby, printing solid objects can soon become an expense you can do without. Hollowing out an object, therefore, is an easy way to cut down on both materials and time, which will ultimately mean an overall saving of money. Most 3D modelling programs already come with the tools necessary to allow you to create hollow objects, and some even do this automatically for you. Bear in mind that a hollow object isnt as strong as a solid object, and some designs may need an elaborate raft designed into them before they can print successfully. Also, the hollowing-out tool should be able to reduce the number of internal polygons in your object. One of the biggest problems associated with modelling software is the creation of non-manifold geometry. Non-manifold geometry occurs when you have any edge that is shared by more than two faces. The result may look good enough on paper or in the design, but its impossible to print it in reality. The majority of 3D modelling packages are able to warn you of a non-manifold
www.tuxradar.com
3D printing on Linux
geometry issue, and as a result most are able to fix the problem for you by cleaning up the polygons and vertices. At the very least, they will highlight the areas where non-manifold geometry has occurred, therefore allowing you to resolve the issue. some users may prefer one 3D modelling or CAD program over another, we find Blender to be extremely helpful for our purposes. Now that we have the ingredients together, we can start to cook up some 3D objects. We will run through a basic print of an object from Thingiverse in the walkthrough, but check out the Printing tips box for even more help. Once youve created a few objects, youll soon notice that there is a great deal of trial and error involved with 3D printing, and that some considerable tweaking is necessary to perfect your models, when it comes to both the hardware and the software. Our advice is to remain patient, read the forums for the printer and the software youre using, and not to be afraid to ask for help if you need it. Good luck with your 3D printing projects. Let us know how you get on! LXF
Troubleshooting
Most CAD programs will allow you to fix any of the problems that may occur with a 3D model, or will advise you of potential issues. The more complex the CAD program, though, the more likelihood there is that it will cost a pretty penny, although thats not always the case. In our experience, Blender (www. blender.org) is the program that fits the bill for a number of reasons. Its relatively easy to use, can fix non-manifold geometry through the Mesh menu in Edit mode, and
Our model of Tux should serve as ample inspiration for your 3D printing projects.
can be used with great success when creating hollow objects. Blender also enables you to import all manner of 3D model file types and save them as STL files ready for loading into Repetier-Host. Finally, Blender lets you edit and improve existing models from the likes of Thingiverse. While
Locate a model from Thingiverse, and click on the Download This Thing! button for the STL les. Save them for later. Download RepetierHost at goo.gl/vsHW55. Update by entering the usual apt-get commands:
sudo apt-get update && sudo-apt-get upgrade
Download model
Double-click the Repetier-Host icon, and set up the printer according to its instructions. Once thats done and tested, load the STL le downloaded from Thingiverse into RepetierHost. Click on the Slicer tab, followed by Slice with slic3r , to convert the model to G-code.
Connect to the printer, and click on the Manual Control tab, then click on the Heated Print Bed option to activate and heat up the print bed before sending the le through to print. When it has reached the optimum temperature, click on Run Job to send the data through to the printer.
Keep an eye on the printer as it works. Make sure there are no draughts and that theres nothing in the way of the nozzle as it prints the layers.
Keep watch
When the print is nished, clean any excess away and carefully remove the object from the print bed. If needed, clean the print bed and repeat the process for any objects that may attach to the rst (as in our example).
www.linuxformat.com
The thermistor, which controls the temperature of the print bed, is very small.
Getting to grips with your rst 3D model can be daunting. If youre feeling nervous, go to www.3Dtin.com. Use the website to try copying shapes of household objects.
With the rst part of the basic design now created, try adding something else to it in order to expand the object and improve your sense of 3D geometry.
Next, add a third object to the environment with the aim of combining them all, or at the very least connecting them. Take a moment to rotate the design and see it from all angles to check that its complete.
Finally, combine or connect the objects and try to make your 3D geometry look correct. It doesnt matter at this stage if the design is capable of being printed practising and getting used to working in 3D is the emphasis here.
www.tuxradar.com
CyanogenMod
do, given how difficult and technically-inclined you have to be to do it. The problem of getting people to actually use its software isnt an issue that the CyanogenMod team has taken lightly. In fact, its one of the spurs that has pushed the team into turning its community-based, opensource Android spin-off into a full-on business venture: Cyanogen Inc. With seven million dollars in funding behind it, the core CM team, including Koush and CyanogenMods founder Steve Kondik (known as Cyanogen), is now hard at work turning the enthusiast-friendly ROM into a mainstream
hit. And the first challenge facing them is making it easy to install. What we hear from everybody is that, Yeah, I share this with my friends and I think its great, but then I tell them what they have to do to install it and they bail , says Kondik, with the air of someone whos pitching a product theyre proud of. So weve made this installer. We say its one-click, though in reality its more like three clicks. But weve been doing some pretty extensive usability testing on it, because the big goal here is to get CM to as many people as possible. We think that the whole walled garden approach is fine, but its
www.linuxformat.com
CyanogenMod
getting tired, and people want an alternative, and weve absolutely proven that. By having this installer, the current growth is just going to go crazy. Its just going to sky rocket. Hes not joking either after announcing the Cyanogen business, the brand new servers were brought to their knees by over 38 million downloads in just one month. And the team was keen to point out that, while the installer is seen as the crucial first step to making CM more popular outside of hardcore Android users, its only the beginning.
Beyond phones
One of the opportunities for the new company is looking at a world outside of smartphone operating systems. We got a lot of interest from TV stick manufacturers, especially after the Chromecast was released, says Koush. My mailbox blew up from probably seven or eight different parties that wanted to put CynagenMod on a TV stick and build something really compelling. But I dont think thats something that we can focus on right now with a team size of 17. Weve got tokeep our objectives laser-focussed for the time being. But it certainly is interesting Iwould love to do something like that with more resources.
Were contracting a really notable security researcher, Moxie Marlinspike, to build a secure messaging/iMessage product for us, says Koush. Another big change will be getting CM installed on phones as the default operating system, starting with a partnership with Oppo on the N1, a new flagship phone: Oppo had
The main reason people install it is because what is out there is just not very good.
given us support in the past, and when we were forming the company, I told them what was going on. For the global release of the N1, theres an officially supported version of CM, and theres also going to be a limited edition that will actually run CM by default, says Kondik. This is just the beginning of bigger things, really. We have the chance to do some
experimentation and get everything in place to support something like this, and then next year well do something bigger. Its got to be done right, though. You cant just put some branding on a phone and sell it. Youve got to provide something that you cant get elsewhere, especially if you want to make money off the thing. Its going to be important to have a really great platform, really great services. People arent just going to shell out $800 for a device unless its really giving them something that they cant get elsewhere. Theres also the opportunity to use the teams knowledge, and the flexibility of CMs Android roots, to make something new that appeals to a different audience. One of the things that were doing now is were working on a version of CM well, actually, building on
www.tuxradar.com
CyanogenMod
some contributors, Koush says. And we want to do stuff that other open-source projects do, like bounties for features. And were contracting people. The new company has also announced that some of the work it will do will be proprietary, leading to concerns over the future of the open-source project. Kondik understands these fears, but is fairly bullish that theyre unfounded. When you look at Android, it was done with a very specific goal in mind to really screw up an industry that had gone so far down the proprietary software route that it was hopeless. And they totally succeeded. But now its happening again, and were hoping to be the answer to that, he muses. But you have to find a balance. Thethings that we wont be releasing are the things that give us a competitive edge. We wont release the source code for our installer. That would be crazy.
Lead developer Koushik Dutta, aka Koush, has every reason to look pleased with himself.
Keeping competitive
But Koush allays concerns that everything will be entirely locked up: We dont have any plans to close source any of the existing stuff, he says, definitively. Were building on top of the open source project. Were not even maintaining a closed fork of CM internally. Anything that we need to do to support our own applications, well build the APIs [application programming interface] into the open source side and ship that. Going forward, youre going to see two release branches. One is going to be business as usual; what were releasing today. Then youre going to see a version that comes with extra stuff that weve done that we think is pretty awesome. Some community members have also worried about the pressure on a business to make money, and how that will affect CM at large. Right now, were following the great Silicon Valley idea of get the users, and the money will come later , says Kondik. But this strategy can be problematic, with users often annoyed when things, such as ads are put into services that were formerly ad-free. I think our virtue, and the reason people want to use our stuff, is that we dont do that, Kondik continues. If we were to do that, it would basically be suicide. Thats the biggest thing that we hear from everybody: Oh, theyre going to put ads in it, crapware, and all this stuff. But thats the opposite of our plan. Were in this for the long haul. We think its going to be a big company. Were not trying to make a quick buck and then get out. Were trying to build something important. Theres too much time, and too many emotions from too many people involved to give it anything less than what it really deserves.
top of it to create something thats more tailored to a bigger sector of the market, says Kondik. CM is absolutely perfect for people who are technical, and everything is designed for people who are technical. We dont want to dumb it down, but we want to wrap some of that stuff in a prettier face. Sometime next year, were planning on launching something quite a bit bigger thats geared more towards a broader market.
million dollar check that went into our bank accounts, says Koush, with a mixture of amusement and frustration. The money that we got is to build a business, so its hiring people, paying them, building out an office, paying for the servers that have been donated for so long, paying for bandwidth Were paying for so many different things that its
Mass appeal
These plans help to explain why the team wanted to take the chance to push CM further by creating a business around it, but the decision understandably caused some concerns from the community, while some contributors wanted to know whether they would get paid a portion of the new business money for the work they put in. I think some of the younger guys have this vision that Steve and I got written this seven
Youre going to see a version with extra stuff that weve done that we think is awesome.
scary looking through the transactions of our business bank account. The new company has no interest in paying for previous contributions, because that doesnt do anything to push its business forward. Instead, its going to look to reward contributors for new work. Were going to hire
Team work
Working on a project with thousands of contributors all over the world leads to some fantastic software, but there are inevitable bumps along the way: There are conflicts on a daily basis. All day, every day, pretty much, laughs Kondik. A lot of it has to do with philosophical differences. We try to stay fairly conservative with features, but there are countless derivative works of our stuff that are basically more of a free for all. The thing is, we want to pass the Android Compatibility Test Suite, because weve always wanted to be a professional product, so we have that in mind the entire time. But as far as resolving conflicts, its really pretty typical of any open source community. It works like a meritocracy: Ifsomething really cant get resolved, then maybe one of us will step in and say, This one is technically superior to this one. Its really all about technical merit. Were not going to play favourites if the code in the software is nonoptimal, right?
www.linuxformat.com
CyanogenMod
Its important for a project such as CyanogenMod to remember the emotions and history that went into getting the movement to where it is today. When Kondik and Koush look back on the early days, they talk about the speed of growth and voracity of its contributors as though theyre not quite sure how it happened or if it really happened at all. A few people had looked at different approaches to building on Android, but when I posted my version up, people seemed to really go crazy over it, says Kondik. It was really awesome time because of how quick people were to try it out and give feedback on what was broken and what could be better. So I kept at it for a few months and more people started using it; more people started submitting patches and wanted to work on it.
Koush got involved later on when the first Motorola Droid hit the shelves, and started porting CM to it. I recall the first year there was maybe only a dozen guys, and then I disappeared for a year, and I came back and there were a hundred guys, says Koush. And then a year later there were 500, and now theres 2,000. Its just crazy. Its exponential growth for contributors and for users.
Gaining ground
But despite all the changes that come from mvoing from a purely contributor and community-driven project to a well funded business, the team promises that the feel of CyanogenMod wont change. A lot of the guys who were on the open source project were
Improved installer
The new installer for CyanogenMod is one of the most important pieces of the software puzzle for growing its audience, and it was a challenge both technically and in design terms:Theres hundreds of devices out there and they all work differently, and they all have their own different set of quirks, explains Kondik. Every manufacturer has their own tools that you need to use to flash them, and in a lot of cases, they were never really made for anybody to do anything like this. When we did the first version of the tool, we did our very first usability test, and we had a really smart guy with an engineering background hes at VP level at a pretty big company. We asked him to install CM, and the response we got was not the one that we had anticipated, to put it mildly. He ripped the thing apart, recalls Koush, laughing about the experience now. It was funny, because he was an iPhone user, and an Apple user, so he didnt use Android and he didnt use Windows, which is the installation platform. So, basically, everything that could possibly have gone wrong did. But it was really eye-opening, because we want to make this completely accessible to anyone who has absolutely no knowledge of how any of this works. And I think its that thing, that we have such a deep understanding, that we werent able to initially realise what the difficult points are, because we just take it for granted. We approached it and built it basically from the ground up maybe four months ago from a brand new angle, and it was a dramatic improvement over what we had.
going to their day jobs and then hacking on CM for a long time, including myself, says Kondik. And now we just work on CM the whole time. But one thing that has not changed is working very, very late. Until 5 oclock in the morning, he laughs. But is it the classic Silicon Valley startup with fun toys around the office? We have a Kegerator! shouts Kondik, proudly. And a really nice coffee machine, adds Koush. I think were all on the same page; the office is somewhere you want to come into and work, so we dont do cubes. We have a nice setup and a design. Theres one thing that will change for CyanogenMod when the OS launches for a mainstream audience, though: the name. The team says that the company will still be called Cyanogen, and the open source project will keep its name, but for reaching a wider audience, the OS will be called something new, and this change may be related to CMs partnership with OnePlus (http://oneplus.net) but Koush is staying tight-lipped: Yeah, its changing he chuckles. For a mass consumer release, CyanogenMod doesnt exactly roll off the tongue. LXF
www.tuxradar.com
What on Earth is
you ever feel like our conversations Q Do here are being read by other people?
Matt Hanson doffs his tin foil hat and quickly peeks out of his concrete bunker to fill us in on the GNU Projects FOSS cryptographic software.
to use PGP youd need to buy a Q So licence from Symantec? people have better things to do then which is why the non-proprietary A No A Yes, spend time reading what were saying. OpenPGP has become the most widely Good point. Still, Im feeling slightly paranoid. Could you tell me about some fancy technology that will keep me safe, secure and, most importantly, calm? By a happy coincidence, we can. Weve been meaning to talk to you about GnuPG a technology thats been protecting your privacy behind the scenes for quite a while. confidentiality, which ensures that no one except the people you designate will be able to read it. The second is integrity, which means no one can change your data covertly. This leads to what the GNU Project calls assurance . understand integrity and confidentiality Q Ibut what does it mean by assurance? means you can be confident that, when A It you use GnuPG correctly, your data will be kept confidential, with its integrity intact. So, when sending an email with an attachment to a workmate, you can be sure that no one but the two of you can read the email, and that the attachment wasnt changed as it was sent. However, the GNU Project is keen to stress that an assurance is not a guarantee. should I do to make sure my distro Q What is equipped with GnuPG technology? it depends on what distro youre A Typically using, but luckily a number of them come with a version of GnuPG already installed. For Debian and Ubuntu, GnuPG is installed by
GnuPG?
used email encryption standard in the world. In 1997 the OpenPGP Working Group was formed to define a standard that would be proprietary from its inception PGP. OpenPGP became anIETF(Internet Engineering Task Force) Proposed Standard (RFC 4880), and can be implemented by anyone, with no licencing fees. like the sound of OpenPGP, but where Q Idoes GnuPG come in? is a GPL licensed alternative to A GnuPG PGP thats compliant with RFC 4880 ourold friend OpenPGP. GnuPG is primarily a program run from the command line, though there are graphical user interface front ends. still not feeling safer! What does Q Im GnuPG do, exactly?
GnuPG stands for GNU Privacy Guard, and A the technology is also sometimes referred
to as GPG. Its a completely free and open implementation of the OpenPGP standard, created by the GNU Project. The OpenPGP standard is based on PGP (Pretty Good Privacy), which has been around since 1991, and is now owned by Symantec.
GnuPG is cryptographic software designed A to protect data in two key areas. The first is
www.linuxformat.com
GnuPG is configured to offer you and your A data the best possible protection straight
away. For example, by default GnuPG will generate 2,048-bit RSA keys for encrypting your data. If youre feeling confident and want to change GnuPGs settings to suit your needs, you can open the gpg.conf file, usually located in ~/.gnupg, and edit the settings there.
Windows, head to www.gpg4win.org, A For where youll find an installer. Gpg4win always interested in encryption. Q Im combines a number of handy features that Whats a 2,048-bit RSA key? makes it easy for Windows users to take is a public key cryptosystem thats A RSA advantage of the protection that GnuPG offers. widely used throughout the world. It was
Its refreshing to see governments support measures to keep data secure and private.
As well as the core GnuPG technology, theres GPA (an alternative certificate manager), GpgOL (an email encryption plugin for Microsoft Outlook 2003/2007/2010/2013), GpgEX (a file encryption plugin for Windows Explorer) and Claws Mail, an email application with cryptographic support built in. Gpg4win works with Windows XP, Vista, 7 and 8 in 32 and 64-bit configurations. If youre after GnuPG tools for Mac OS X then youll want to get GPG Suite from https://gpgtools.org. This suite includes MacGPG, which is the underlying engine. Its based on GnuPG 2.0.22, and is run from the command line. The suite also includes GPG forMail, which is an email encryption plugin for Apple Mail, GPG Keychain, an application that helps you manage OpenPGP keys, and GPG Service, a plugin that works with most applications to add GnuPG features such as encryption and verification processes. GPG Suite is compatible with OS X 10.6 to 10.9.
developed in 1977 by Ron Rivest, Adi Shamir and Leonard Adleman hence RSA . It takes two large prime numbers, along with an auxiliary value, and creates two numbers that are used as the public and private keys. The public key is used to encrypt text, and the private key decrypts it. So if we send you a message, we can find out your public key and encrypt the message accordingly. You can thendecrypt the message with your private key, which we would never know. For more information on RSA encryption check out http://bit.ly/lxfRSA. According to the United States National Institute of Standards and Technology, 2,048-bit RSA cryptography will besecure until at least 2030. does the German government Q Where come into this? light of the NSA and GCHQ scandals, its A In refreshing to see governments support measures to keep individuals emails and data secure and private, but that is exactly what Germanys Federal Ministry of Economics andTechnology did in 1999 when it invested 250,000 Deutsch Marks in the GnuPG Project, which was coordinated by Werner Kock a programmer from Dsseldorf. Gpg4win was created with support from theGerman Federal Office for Economy and Technology, with the aim of bringing GnuPG to the dominant OS. The idea was to port GnuPG to Windows along with an easy to use graphical user interface and extensive, good quality German documentation. The project was
all well and good, but it sounds a Q Thats bit too Windows-centric for my tastes. Thats because it is, at least with Gpg4win, A but that doesnt mean that you and other Linux users havent benefitted from it. For a start, if youre sending something confidential to a Windows user, and theyre going to be sending confidential information back, then youre going to want them to have the same level of cryptographic security and integrity as you. The same applies to the education of the person you sent the confidential information to. If they are as clued up as you are about the importance of data security, you can be sure that anything you send them will be protected. I guess youre saying that the Q So security of my data is only as strong as the weakest link? Exactly, and more often than not your weakest link will be the recipient of your emails or attachments, who wont have the knowledge or tools to keep the data youve sent them protected, so any initiative that educates people on the benefits of PGP and any of its offshoots is always to be welcomed, especially when it also promotes the use of free and open source software.
Great and what do I need to do if Im using FreeBSD? To install GnuPG on FreeBSD, run the following commands as root: cd /usr/ports/security/gnupg make install clean
I want to tell people about this, but Q Cool, dont want to look like an idiot. How do you pronounce GnuPG? According to the GnuPG website (www. gnupg.org), the correct way to pronounce it is guh-NEW-pee-gee , but we cant guarantee this will stop you looking silly. LXF
www.tuxradar.com
Dr Browns Administeria
Dr Browns
The Doctor provides Linux training, authoring and consultancy. He finds his PhD in particle physics to be of no help in this work at all.
Dr Chris Brown
Administeria
Esoteric system administration goodness from the impenetrable bowels of the server room.
Does Amazons claimed 99.999999999% per annum for durability of data in S3 ignore the risk from large meteorites?
Stewards of PID=1
ou may have seen the announcement that Debian has decided on a casting vote to switch to Systemd as its boot system, starting with the Jessie release. Subsequently, in a post titled Losing Graciously , Mark Shuttleworth announced that Ubuntu will do the same, saying that it will be our default as soon as it offers a credible quality of service to match the existing init . Fedora has used Systemd since release 15, and RHEL 7 will use it too. So I guess thats pretty much the end of the road for Upstart. It must have been a difficult decision for Mark, because Upstart has been part of Ubuntu since Feisty Fawn (back in 2007) and was originally the brainchild of James Scott Remnant who worked for Canonical at the time. (James now works at Google.) At risk of being branded a Luddite, I would personally have preferred to stay within my comfort zone of good ol init with its straightforward inittab and old-fashioned System V style run levels. I never much liked Upstart, and I wont be sorry to see it go. I am conscious that is my age talking. In my younger days I devoured new technologies like a raptor guzzling its prey. Now, Im happy with a mug of Horlicks. More pragmatically, as an IT trainer, technology splits give me headaches because you need to decide which technology to teach, or risk confusing your audience by trying to cover them all. So I guess that moving forward Ill be able to focus on Systemd. chris.linuxformat@gmail.com
Durable storage
Amazons S3 offers availability and durability. Now you can access it from a Linux command prompt.
$ sudo python setup.py install That was easy enough. The next job was to import my AWS keys into s3cmd so that it could authenticate to the service on my behalf, like this: $ s3cmd --configure Youll be prompted for your AWS Access Key and Secret Key, which you were given when you signed up for the AWS account. Just copy and paste them in here. Now were all set to go. As a test, I decided to use S3 to back up the directory containing all my Linux Format articles. First, I created an S3 bucket for the purpose: $ s3cmd mb S3://LXF Now, I could choose to upload and download individual files from S3 with the put and get subcommands (rather like the old command-line ftp commands), but I was attracted to the sync command that let me efficiently synchronise a local directory tree to S3 storage: $ s3cmd sync ~/LXF S3://LXF It took a while to initially upload all 150MB, but after that, syncs only propagated the changed files, and took a matter of seconds. If you already use S3 for storage, s3cmd is definitely worth a look.
he world is awash with cloud-based storage solutions such as Ubuntu One, Dropbox, and Google Drive. These are popular because they provide client-side tools that will automatically synchronise directories on your local machine with the cloud-based storage. Amazons S3 (Simple Storage Service) provides an alternative. It is very much a pay-as-you-go service ($0.085 per GB per month), and it can be accessed via a nice webbased interface (part of the AWS Management Console), or through a web service API. I recently discovered a tool called s3cmd that provides command line access to S3 storage. First, I downloaded the tarball (s3cmd-1.5.0-beta1.tar.gz) from http://sourceforge.net, then extracted the archive and ran the installer: $ tar xvf ~/Downloads/s3cmd-1.5.0-beta1.tar.gz $ cd s3cmd-1.5.0-beta1
www.linuxformat.com
Dr Browns Administeria
At installation time
Later
File system
File system
aide --init
cong le aide.conf
aide --check
REPORT
Database
Database
aide.db.new.gz
Rename
aide.db.gz
Be aware, though, that the two distros take rather different approaches to creating an initial configuration. For this tutorial, I used CentOS.
Instant gratification
Im always eager for instant gratification, so immediately after installing AIDE I decided to give it a whirl with its default configuration. The first thing that you have to do is to take your baseline snapshot: # aide --init AIDE, version 0.14 ### AIDE database at /var/lib/aide/aide.db.new.gz initialised This will take a while to run. Just how long depends on how big your filesystem is, how many checksums youve chosen to compute (more on that later) and how fast your computer is. But you will certainly have enough time to brew a nice cup of tea. AIDE recommends that the initial database is generated immediately after the operating system and applications have been installed, before the machine is plugged into a network . Quite frankly, I think that this recommendation is unrealistic. For a start, the chances are you will need to download AIDE from your distros repositories in the first place. Also, it is good practice to download any security updates from your distributor after the initial installation. (It all depends on your level of paranoia, and who you trust.) But certainly you should do it as soon as possible after installation, not six months downstream.
AIDE works by building an initial snapshot of the filesystem, then comparing the filesystem with the snapshot at a later time.
Easy installation
You should find AIDE in the repositories of most distros, so installation should be straightforward. On CentOS, for example, its simply a matter of running: yum install aide and on Ubuntu its just: sudo apt-get install aide
Timestamps
Every file in Linux carries three timestamps, and there is sometimes confusion about what they all mean. Heres a little table to summarise. Up until ext4, there was no birthtimestamp, so you cannot tell how long a file has been around.
www.tuxradar.com
Dr Browns Administeria
what filesystem changes are expected and what arent, and then to translate that policy into a config file. The mechanics of running AIDE are simple enough, but writing the config can be quite tricky.
After running aide --init, I renamed the database as the input database, ready to run AIDE in check mode: # cd /var/lib/aide/ # ls -l total 7224 -rw-------. 1 root root 7396869 Jan 31 18:58 aide.db.new.gz # mv aide.db.new.gz aide.db.gz Next, to show aide in action, I made a surreptitious edit to /etc/passwd, adding the line: archive::0:0:root:root:/bin/bash and this gives me a handy (if rather obvious) superuser backdoor. I then ran AIDE in check mode: # aide --check and went to make another nice cup of tea. Reassuringly, AIDE reported the change to /etc/passwd, showing that its size, timestamps, inode number, and various checksums had all changed. The screenshot at the top of page 57 shows this. I would encourage you to try the experiment for yourself but dont forget to take that line out of /etc/passwd afterwards! In reality, you would not run aide --check interactively, instead youd run it as a daily cron job, with the output mailed to root. To state the obvious, running AIDE is a waste of time unless somebody actually takes the time to read the reports. Doing this on a daily basis requires quite a lot of discipline. Doing it for 50 servers requires real dedication. Of course, it gets much worse if your reports contain lots of false positives, because there is a real risk that these results will drown out a crucial entry that flags up a genuine problem. Therefore, its important to sit down and think (ouch!) about
www.linuxformat.com
Dr Browns Administeria
but if you do this, be careful of the file name matching algorithm that AIDE uses. Essentially, the names you specify are treated as regular expressions (not filename wildcards) that are implicitly anchored to the beginning of the file name but not to the end. This means that a smart intruder could hide files under /usr/src-rootkit (for example) and AIDE wouldnt notice. Youll find examples of this carelessness in the CentOS configuration, such as the rule: !/etc/.*~ which is intended to prevent checking of backup files (names ending in ~) but inadvertently allows a nice hiding place any file under /etc with a ~ in the name will be ignored. The rule should really include an end-of-string anchor like this: !/etc/.*~$
25,000 changed files: Summary: Total number of files: 106292 Added files: 7284 Removed files: 1795 Changed files: 25323 If your system has (legitimately) deviated so much from the original baseline that the reports have become unwieldy, you can choose to update the database using: # aide --update but you will then need to rename the new database back to the original same (as I did after my initial aide --init) before you can run a check.
Debian is different
If youre installing AIDE onto a Debian-style distro, then be aware that the default configuration is significantly different from the one shown on these pages. In particular, there is an entire directory (/etc/aide/aide.conf.d) containing more than 100 configuration snippets that are automatically concatenated into a single configuration file (/var/lib/aide/ aide.config.autogenerated) by the script update-aide.conf. This is a Debian extension that makes it easier to update the AIDE configuration when new packages are installed. I compared my test installation on Ubuntu with the one I carried out on CentOS. I discovered that the Ubuntu configuration is thought out in much more detail. In particular, there are several attribute groups intended to handle log files. These present an interesting challenge to AIDE because they routinely grow, and during log file rotation they also get renamed and perhaps compressed. Please remember that intrusion detection is a reactive rather than a proactive approach to security. It is absolutely not a replacement for keeping all of your system safe and secure in the first place! LXF
www.tuxradar.com
tk-yupana
LibreOffice
Version: 4.2 Web: www.libreoffice.org
ooking at the utilities listed at a glance above, some will be unknown to you, featured because they deserve wider circulation. LibreOffice (LO), were fairly confident, will not be unknown so why has it earned prominent space in the pages of HotPicks? Simple, most people tend to run the version that shipped with their distro, until they upgrade to the next distro version. But development of office suites, like web browsers, is becoming faster, with incremental releases containing several small but useful improvements, any one of which could make a big difference in your working day.
Even if you write your documents in LaTeX, youll still be likely to fire up an office suite to open the inevitable docx attachments sent your way by unenlightened colleagues. This release of LO sees several improvements in interoperability, with the Redmond standard (filling a whole page of the release notes) as well as import/export improvements with MathML, PDF, AbiWord, SVG and Palm ebook, and
Extra functions in Calc combine further Excel compatibility with genuine usefulness. Probably.
legacy Mac formats. Style improvements infuse everything from improved integration to menus in Gnome 3, Mate and Xfce, through overcrowded tab collections in dialogues wrapping evenly onto a second line, the new default template designed especially for Writer and the space-efficient redesign of the start screen. Naturally, theres now the option of a flat icon set (Sifr). Calc sees improved statistics functions, a random number generator, and more than 20 added spreadsheet functions for MS-Excel interoperability.
Speed demon
Although many are disabled by default, the experimental features in the latest release are also worth a closer look. The Firebird SQL connector for BASE is staggeringly fast compared with HSQLDB 1.8, as it avoids the C++-toJava overhead. Some time over the next few releases, HSQLDB will be phased out in favour of Firebird, so this is our chance to get a head start on migration. Live data streaming is the other headline experimental feature. Add in performance improvements, locale tweaks, CMS integration, an Expert Configuration window, and a simplified scripting API bundled in for BASE, and perhaps you shouldnt be waiting until the next time you upgrade your distro before you see an upgraded office suite.
Firebird SQL
Its Calc that has seen the greateset number of improvements, from Excelcompatible functions to bigdata handling abilities.
Calc
Calc also gains improved statistical functions, and even a random number generator. Spreadsheet geeks rejoice!
www.linuxformat.com
LXFHotPicks
Secure password manager
KeePass
Version: 2.25 Web: http://keepass.info
n despair at remembering 50 different passwords, many people simply use the same one on every service that they use thus if one of their services is compromised (not unknown, when so many web apps we try are from start-up companies, with one technical founder having to deal with security as an afterthought), youve just handed your banking password over to unknown baddies. Some people manage complex mnemonic-based systems to provide long mixed passwords individual to each service, but few can see such a system through comprehensively. So, how to keep long passwords, individual to each app or service, save them securely and have them ready to hand? Enter the password manager. KeePass is built on mono (or .NET if you install it on a Windows machine) so, providing you already have the appropriate libraries (which you should
do if you have Gnome), follow the links from the website to unofficial packages for your distro, or the source package. We grabbed the deb from Sid, which will have made it through to Debian testing by the time you read this, and it APT updated our mono installation for us along the way.
Before you start entrusting your passwords to KeePass, youll need a secure master password to protect them all.
Secure encryption
Start with a strong master password, which KeePass SHA-256 encrypts for you. Good policy, in a shared KeePass set-up (eg, keeping the passwords for the companys accounts), is to use a longish sentence, with numbers and punctuation where theyre not expected, then change it each month.
Many people use the same password on every service they use.
You can use a key file as well as (or instead of) the master password. KeePass 2.25 features mainly autotype improvements, entry attachmenthandling enhancements, XML replace functionality, and various minor new features and improvements to this award-winning piece of software. Passwords can be grouped, and there are many import/export format options, all of which contributes to this apps ease of use. But portability and excellent security would make KeePass a good choice even if it were less userfriendly, so features are a pleasant bonus in this case.
Codemiscs
Version: 2014-02-10 Web: http://bit.ly/1nmJC7s
odemiscs is a collection of exciting, creative, amusing, and innovative commands, you read. It is intended to be fun and useful. OK, you wonder, so what does that mean? It includes a command wrapper (cmd), project generator (mkproject), human language translator (tw), feed reader (rf), images wizard (imgs), colorizer (colorize), slowed down echoer (typewriter), and shell show (show). Right, then, lets try them out. Install (as per website instructions) is painless and quick. Running doc/demo shows you whats included, to a certain extent, but you have to run the commands a bit more to begin to appreciate them. Many of the scripts call common command-line utilities, such as fortune-mod or lynx, and will tell you when you run them whether youre
lacking a needed package. For example, after running rf we were told we lacked xmlstarlet. After installing xmlstarlet we were then able to run commands such as: rf mozilla-people to grab blog feeds, choosing the --link= switch for the numbered feed items to get the URI.
Scripts range from the whimsical to the useful, but all are worth a read through the source.
Finding meaning
Tw calls lynx to check one of more than 4,000 dictionaries some local, or on freetranslation.com, but the vast majority from Google Translate. Calling tw translate.google.com.cy-en cariad for example, will translate a word from
There are skeletons for Bash, C, C library, Python, C++ and Perl.
www.tuxradar.com
the command line far quicker than you can walk to the bookshelf to pull out a dictionary, or even switch to a browser screen and load Google Translate. Also in the time-saving help category, mkproject makes project skeletons; by default, a hello world project of the selected skeleton that is managed with autotools. There are skeletons for Bash, C, C library, Python, C++, C++ library and Perl; but why not add one for your favourite language? Its all the work of Juan Manuel Borges Cao so far, though as its under GPLv3, were sure contributions are welcome.
LXFHotPicks
X11 user-action recording tool
Xnee
Version: 3.17 Web: www.sandklef.com/xnee
ver wanted to record and replay a user interaction with your system, to demonstrate a program? Henrik Sandklefs Xnee is probably what you need, but it can be used for so much more. Recording and replaying can be tied to a key modifier combination, making a record and replay macro. Xnee can type in the contents of a file eg, to test a blog engine, and in automated tests. Xnee has a backronym, Xnee is Not an Event Emulator , as the target X Window app is convinced it is receiving user input. Finally, as well as recording and playing back keyboard and mouse actions, Xnee can distribute them beyond a single computer, making it useful for a classroom demonstration, or even in remote learning. We downloaded and unzipped the source tarball and ./configure told us we needed to apt-get install libxtst-dev
to add the missing X11 extensions: RECORD and XTest. This done, we compiled with ./configure --disable-doc to save installing Dia and Texi2HTML.
Many parts
Xnee consists of a library, two applications and an applet for Gnome users: cnee command-line program gnee graphical user interface program pnee a Gnome panel applet libxnee library used by Xnee and gnee Cnee, called from the command line and with enough options to make a visit to the manpage mandatory, will probably be more use to you than the GUI gnee, but while you make up your own mind, heres a quick cnee example. Capture with: cnee --record --keyboard -o cnee-test01.
Although Xnee plays this back by showing you every keypress you captured, the recording is just a text file.
xml Type something, random or otherwise, and then play it back with: cnee --replay --file cnee-test01.xml You can see part of the captured file from the key events themselves in the screenshot. Mouse events, too, are captured in a similar format the everything is a file text-based Linux in action.
Xnee consists of a library, two apps and an applet for Gnome users.
IPCop
Version: 2.1.1 Web: www.ipcop.org
or more than a decade, IPCop has been blocking bad packets and helping to keep intruders out of your network. Its a lightweight distro to install on an old machine, and sits between your small office or home network and the Wild West of the rest of the internet. If youre currently relying on the ADSL router, with or without built-in minimalist firewall, that your ISP gave you, its time to take action. Any old PC from the last decade or so will be powerful enough to run this distro, though if youre using an old piece of kit its worth configuring a spare to swap in when a power supply or disk drive gives up the ghost.
card, and a card to talk to the internet using either a supported USB ADSL modem, or another NIC connected to the ADSL router you have. IPCop also works with dial-up and 3G connections. An extra NIC gives you the possibility of a De-Militarised Zone (DMZ) of separately restricted access for internet-facing servers. Download an ISO, burn to CD (or USB key or even floppies), boot up, and youre confronted with a curses library-based text installation that wont look unfamiliar to veteran users of oldskool distros such as Debian. As IPCop takes over the entire hard drive (you wont be dual-booting on a firewall!),
This splash screen means security is about to arrive, but make sure your hard drive is backed up and clear.
Well connected
As a minimum, youll need a network card (NIC) to face your internal network (via a switching hub) and/or a wireless
theres little to select, save which interface is used for DMZ, and what address range(s) youd like to use internally. Within this range, you should set up a sub-range for the DHCP server. Set up an admin user and you can remove the install medium and reboot, then connect to https://ipcop:445 from a browser on your now-protected network. Now you can fine-tune your set-up, change and review firewall rules, administer the VPN options, and check the logs and status of your IPCop install.
LXFHotPicks
Incan abacus implementation
tk-yupana
Version: 0.7.3 Web: http://bit.ly/1fOoErs
he yupana, or Incan abacus, is a fascinating puzzle. A bronze age calculating machine glimpsed in the illustration to a 400-year-old manuscript in Copenhagen Royal Library, whose mode of calculation has become the battleground for several competing conjectures. Writing in El Primer Nueva Coronica y Buen Gobierno, in 1615, Felipe Guaman Poma de Ayala charts the history of Andean people: from the creation legends to the rise of the Inca empire, until Spanish Conquest but is imprecise on the operation of the yupana. You can see the illustration from his work in the screenshot. Several theories have appeared in the last century, since the manuscript resurfaced. First, in 1931, Henry Wassen proposed a decimal answer, with seeds in various positions on the board valued at 1, 5, 15 and 30, as they increase. The overly complex calculations needed for
this system made it an unlikely answer. Emilio Mendizabal, in 1976, looked to a Fibonacci sequence of 1, 2, 3, 5, while Carlos Radicati di Primeglio, in 1979, argued for nine seeds in each box. The 1981 solution of English textile engineer William Burns Glynn was a single unit per seed, base ten, with the last column memory , where you can temporarily place ten seeds about to become a unit on the next row.
From 400-year-old illustration to a conjectured working abacus maths, history and anthropology in one.
Astronomical tool
In 2001, Italian engineer Nicolino de Pasquale combined Fibonacci with base 40. De Pasquale has bolstered the claim for base 40 by suggesting use of the yupana as an astronomical
calculator. The first departure from the positional numbering system for the additive, or sign-value notation, is Cinzia Florios 2008 proposal that the abacus is a board for making multiplications. The arguments continue, but you can try them all, thanks to Kunturwebs tk-yupana. Written in the Tcl language, tk-yupana will enable you to try addition, subtraction and multiplication in each implemented theory. The 100-page manual is a model of clarity, goes into fascinating depth on the mathematical side, and provides an introduction to the Incas.
haveged
Version: 1.9.1 Web: www.issihosts.com/haveged
erhaps randomness is not a subject that has greatly troubled you in your computer use, but you rely on it for security and it may not be random enough. As haveged coder Gary Wuertz says, all randomness is ultimately traceable to a hardware interrupt . This being so, the kernel has to pool different events to generate enough entropy , but as this is most heavily weighted towards user interaction from keyboard and mouse, your servers may not be providing enough randomness for you to be happy with whats being used in TLS/SSL protocols, TCP sequence numbers, and cryptographic uses. Haveged generates an unpredictable stream of random numbers harvested from the indirect effects of hardware events on hidden processor state (caches, branch predictors, memory translation tables, etc), using the
in! Other uses include a secure disk erase, which should be less timeconsuming than several passes with shred, and generating lots of data handy for testing your data-driven apps, particularly for speed and efficiency. If you dont need this much randomness, its still worth reading the website for insights into how whats going on at the bare metal level can be collected and used in programs such as this, and the unintended consequences of compiler optimisations which undermine the original collection sequence in the program.
VMS Empire
Version: 1.11 Web: www.catb.org/~esr/vms-empire
eres one from the vaults. VMS-Empire is based on Walter Brights original Empire program, from which all the multiplayer 4X simulations out there, from Civilization to Master Of Orion, are descended. 4X? Thats expand/ explore/exploit/exterminate. It was actually in TOPS-10/20 FORTRAN on the PDP-11 before appearing on DECs VAX/VMS in the late 70s. This code, ported to C and released in the mid 80s, was rewritten by Eric S Raymond for *nix, and named VMSEmpire to show its origins. Fast forward four decades, and Raymond is still fixing bugs and putting out maintenance releases. Both the download and the binary produced after a simple make are less than 100k, so you should
certainly have room for this, however old your PC. Play is you against the computer, with both of you as emperor or empress starting out unaware of the whereabouts of the other. You start with very little idea of the large map on which you play, and the territory may consist of islands, water, and much to confuse you until you have played through a couple of times. Whether you find your opponent quickly is down to chance, so your forces may not be so evenly matched when you meet. All of this uncertainty means you have to put time into
Like most empire builders, you start small, edging through the dark to find your enemy before destroying them.
developing strategies with different sets of tactics for different situations, and may find youve spent more time playing than you planned! For added interest, enter ++ to get into debugging mode, then % to watch the show as the computer makes its moves. You can get to understand the computers algorithm for choosing its moves not that wed suggest you then use that knowledge to your advantage in the next match. Perish the thought
Go playing engine
Fuego
Version: 1.1 Web: http://fuego.sf.net
s Rodney William Whitaker said, Go is to chess as philosophy is to double-entry accounting . The venerable game of Go has a history in AI research almost as long as computing itself thanks to its simple rules (two players take turns to place stones on a grid to control territory), but complex strategy. Even todays supercomputers cannot brute-force a win against a master, so its a real testing ground for AI algorithms. Tree searches with selective pruning were used in early programs (such as GNU Go), but neural network research, while promising, has never reached a breakthrough stage. Monte Carlo Tree Search, with Upper Confidence bounds, is the strongest programming strategy at the moment, and thats what you get
here, embodied in a large collection of well-documented C++ libraries. On our Debian testing box, we installed the GoGUI board first (unzip and sudo ./install.sh), then untarred Fuego and ran the usual configure, make, make install, pausing to install various missing libboost libraries highlighted by the configure script painful, as there is a not altogether clear choice between many libboost libraries in Debian. The RPM went painlessly and quickly onto Fedora 20, pulling down all of the necessary libboost packages in just the way the deb package should if its available by the time you read this.
To play against a human, such as yourself, Fuego needs a board that speaks GTP: here, the Java-based GoGUI.
Open GoGUI, select Fuego as the engine, and youre facing a strong opponent, with just enough aggression to keep you on your toes. Over time, it doesnt reveal the sameness that made earlier implementations of GNU Go so easy, though you may want more variety of opponents still, a great offline choice for those far from their local Go club, and a fascinating set of libraries if you want to delve into the AI programming side of things.
LXFHotPicks
Disk information utility
di
Version: 2.4.5 Web: www.gentoo.com/di
Also released
New and updated software that also deserves a look
xwax 1.5 Digital Vinyl System controlled via turntable and timecoded vinyls. http://xwax.org
rying the codemisc commands earlier in this colum, youd have noticed how great it is to just type (and remember) two-letter utility commands, as with the familiar ls, ln, du, et al. Di disk information is a handy little utility that improves on the familiar df command, to give you more information, and filtered the way you like. With a two-decade history, past versions have been ported to BeOS, Cray, and OS/2, and it continues to be very portable this release contains updates for Irix, and runs on just about every *nix, as well as Windows. In use, di proves its worth by defaulting to human-readable information (ever aliased df to do that? Didnt you wish you could just config it to do that permanently?). It also adjusts to user quotas, where applicable, giving a personal disk reading for each user who calls it.
Options include CSV output (-c), great for scripted use to snapshot your system, and skipping the header (-n), which also clears an unwelcome line for many scripts. di -fm uses the -f option to use format string and the mount point suboption, thus displaying only mount points. Whatever output you want, di it seems is flexible enough to provide it.
Combine digital tracks with turntable control, thanks to xwax. MooseFS 1.6.27 Fault-tolerant, network-distributed filesystem with POSIX file attributes. www.moosefs.org Flexibility from -I and -x to include the filesystems you want, to default human-readable values and csv output options. Snort 2.9.6.0 Network intrusion prevention and detection with signature, protocol, and anomaly-based inspection. www.snort.org (R)?ex 0.44.4 Allows you to manage all of your servers from a central point. www.rexify.org Dada Mail 6.8.0 Mailing list manager for verified, closed-loop opt-in subscriptions. http://dadamailproject.com Erebus 0.13 2D classic point n click style RPG for Linux/Symbian/Android. http://erebusrpg.sf.net tvpvrd 4.50 Schedule and manage multiple analogue TV capture card recordings. http://sf.net/apps/mediawiki/ tvpvrd Linux on Android 2.7.2 A chroot environment on Android, running everything from Arch Linux to Slackware. http://linuxonandroid.org
Ack
Version: 2.12 Web: http://beyondgrep.com
ast month, we covered grep, with added Perl regular expressions, so this week it seems fair to delve into greps Perl-based rival, Ack. As its hosted on a website named betterthangrep.com, theres not much doubt about the authors feelings on the matter, and tests show that in most cases Ack is significantly faster. This is partly down to Perl regular expressions, and partly because of Acks way of whitelisting file types, and ignoring those it doesnt understand list those it does with: ack --help-types While its easily installed via CPAN, for those who dont spend much time in a Perl environment, a neat little single-line install is provided to give a local copy for an unprivileged user: curl http://beyondgrep.com/ack-2.12single-file > ~/bin/ack && chmod 0755 !#:3
You can also just use your package manager note that Debian-based distros package ack as ack-grep, meaning you must call it as ack-grep, or rename it with: dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep Use like grep, or grep -P, and enjoy the speed. LXF
Use like grep, but get recursive search and blazing speed for free.
www.tuxradar.com
In the magazine
Fed up of being tracked online? We show you how to take control of your online privacy. How the Raspberry Pi was made an exclusive visit to the Pi factory, plus Pipelight, an intro to Gentoo and OCaml.
In the magazine
Pete Lomas gave us an exclusive look into the birth of the Raspberry Pi and we gave you the ultimate guide, we rated the Penguin Wee 4th Gen and Tails 0.22, plus we checked out the best VolP clients out there.
In the magazine
Is the latest release of Mint 16 enough to make you switch? Discover how to expand your Raspberry Pi, we investigate equality and the open source community. And explore OpenStreetMaps.
LXFDVD highlights
LXFDVD highlights
Linux Mint 16 with MATE & LXDE, Fedora 20, plus more!
LXFDVD highlights
In the magazine
Continue the new year with a freshly installed Linux, configured just the way you want it! Wealso look to the future of gaming on Linux and round up the best open source video editors around.
In the magazine
Join the in crowd, with our feature on crowdfunding, marvel as we peer inside Qt, pick your own beginners distro, and find out what Robert r0ml Lefkowitz has to say about open source software.
In the magazine
LXFDVD highlights
LXFDVD highlights
Pinguy, Elementary OS Luna, tutorials, HotPicks and more.
Uncover the next generation of open source mobile OSes in Ben Everards last feature for LXF. Go inside Project Sputnik: Dells Ubuntu laptop and discover the programs teaching kids to code.
LXFDVD highlights
LXLE, OS/4 OpenLinux, Grml in 32- and 64-bit flavours and more.
Quote the issue code shown above and have your credit or debit card details ready
Xxx Reviews
Turn on, log in and let our experts help make you a smarter Linux user
CHRIS tHORNEtt likes Open Data, but wonders what the governments bought for 24,999 recently.
Open Govt
he UK government gets only ten requests a year for burials at sea. This and the fact that the executive director of the Digital Government Service likes to attend meetings at Number 10 wearing shorts, were among the intriguing titbits I learnt at a talk about the development of the award-winning gov.uk portal. You can read about gov.uks guiding principles here (http:// bit.ly/Pjn789), and after all the months of documents spewing from the Edward Snowden folder its refreshing to hear about a government initiative that made openness and the needs of the user central to its design. Its mind-boggling achievement too, which manages to draw over 300 separate government agency websites into one place.
LinConnect.................... 66 OpenSUSE..................... 68
Neil Mohr introduces us to the handy tool that lets you receive notifications from your Android phone on your Linux desktop. Carl Fletcher gives a complete guide to mastering OpenSUSE, with hints and tips for all parts of the popular distro.
Job scheduling..............72
Save time by getting your PC to run and complete tasks automatically. Neil Bothwick shows us how, with cron and at.
Shrimping.It.................. 78
Create your own Arduino-compatible circuit board for less than the price of a cup of coffee with Shrimp.It Richard Smedley shows us how.
Hardened servers........80
Kent Elchuk takes us through the process of creating our very own advanced home server on almost any device we have going spare.
Baby steps
We cant go back after the Snowden revelations though. Greater transparency and accountability from government has to happen and while were waiting for the Coalition to stop bickering over an Intelligence and Security Committee revamp, were beginning to see baby steps in the right direction. For instance, as Michael Meeks mentions in his column (p8), the government appears close to adopting the Open Document Format (ODF) for all documents. This will make swathes of data highly searchable, assuming, of course, its ever released. chris.thornett@futurenet.com.
Whether youre a beginner or a guru, learn new skills in our programming section
In this issue...
HTML5
Host video content on your website with your very own configurable player p84
www.tuxradar.com
JavaScript
Wave goodbye to repetitive tasks and streamline your workflow with Grunt p88
Android: Linux
Whos that calling? Whats that alarm? Neil Mohr is sick of people pestering him on his phone, time to hack in desktop notifications.
Our expert
Loves his Google Nexus 5 like he loves a good chocolate torte and a good whiskey in the evening. His wife worries.
Neil Mohr
ntil were carrying around phone devices that are running full desktop Linux and those days arent too far off theres always going to be a divide between our phones and our desktops. In many ways thats not actually a problem, as we presume most of us sit there with our phones on our desks. So when a call comes in, an alarm goes off or a calendar event springs up, we can spy the flashing, beeping device or hear it playing the Crazy Frog theme as were so 2005 it hurts.
There are many times though when thats not good enough. The phone could be in another room, you might have it set to silent or you could have donned industrial ear protectors to drown out the drawling of your work colleagues. Its at these times that you need some sort of smartphone to desktop communication. Enter LinConnect a smart little Android app that can bring all of your phone notifications to your Linux desktop. How does this magic work? As you might suspect its a client-server system that runs over your local network. (See the walkthrough opposite on page 67.) Before trying LinConnect out you should read the warnings that this is still alpha software. When we installed the Android app the change log had a number of entries that said a full reinstall would be required and all settings would be lost. So dont expect this to be stable at the moment. The fact it works so well, even at this stage, is a testament to how slick it is on the Android side. On the Linux server side of things, the installation could still do with a little work. As most of the heavy lifting is done by a somewhat ropey shell script, but its good enough to get the job done. LinConnect will also install all the required dependencies, install the Python server program and set it up to start automatically each time your system starts. The author has tested the system on Ubuntu and we were running mighty Mint 15 without any major hitches. At this point, we were using version 2.13, there seems to be little to no customisation on the Linux desktop end of the equation. Itll plug into the default desktop notification system and use that to pass on any Android notifications. Hopefully as this is undergoing some serious development well see more abilities to tailor the notifications but its a start. LXF
www.linuxformat.com
LinConnect Tutorial
notifications
LinConnect up and running
1
Youll want to head over to the Google Play Store and search for LinConnect (http://bit. ly/LXFlincon) then install it on to your chosen Android device. As the app is in alpha its free. You should also hook up your device to the local network.
Youll need to get the desktop package: wget --quiet https://raw.github.com/hauckwill/ linconnect-server/master/LinConnectServer/ install.sh && chmod +x install.sh Run the script with sudo ./install.sh.
If the script encounters any errors, itll panic and fail, which leaves you having to install dependencies manually. Itll also fail if it encounters the ~/.linconnect folder already exists. So you should rm -f -r ~/.linconnect to remove it and make a future reinstall easier.
Reinstall or upgrades
The required Python 2 dependencies are: sudo apt-get install -y python-pip python-gobject git libavahi-compat-libdnssd1 gir1.2-notify-0.7 Youll also need sudo pip install cherrypy pybonjour and change the default port via the ~/.config/linconnect-server/conf.ini file.
Manual dependencies
Back on your device youll need to connect LinConnect to your new LinConnect server. First enable the app to capture notifications from Android. Next select the server your device should connect to, youre able to enter a manual IP and it defaults to port 9090.
Get LinConnected
Once connected you can tap the server entry on the device to fire off a test notification, but otherwise any Android notification will appear on your Linux desktop. In the app, the Enable applications option enables you to add and remove apps from notifications.
Notication time
Chromium to text
Its not quite in the same arena as bringing Android notifications to your Linux desktop but there are a host of browser-based services that tie into your various phone services. One such service we use a lot is Mighty Text. This consists of an Android app [http://bit.ly/ LXFmighttxt] and a Chromium browser plug-in, which together enables you to receive and send text messages from Chromium. Its something of a revelation being able to type out and reply to text messages on your desktop. It also suddenly makes texting far more useful. Another advantage is if you receive security messages, as these now appear onscreen rather than on your mobile. Though we do worry about man-in-themiddle attacks just how secure is it? Another fantastic little app thats worth a try is Air Droid [http://bit.ly/LXFairdroid]. This is a more general Android device manager that provides a funky web-based interface within your browser. Just fire up the app and tap the IP address it offers into your browser. Both the phone and desktop have to be on the same local network to work. It provides a virtualised front-end for your phone so you can easily transfer files, access photos and control aspects of it like the camera.
www.tuxradar.com
OpenSUSE: A
Carl Fletcher charges to the rescue with a cry of SUUU-ZAAAA! and shows us how to get the open distribution fighting fit for action.
on any challenge. Installing OpenSUSE is much like any Linux distribution. Apart from the fact that it defaults to a separate /home partition here are some key points to consider are: 1 Always download the distribution from the official source, which is http://software.opensuse.org. 2 If possible, use BitTorrent for the download. 3 Always check the MD5SUM of the downloaded ISO. 4 Using a USB stick rather than a CD/DVD makes installation quicker. 5 Run the Media Check from the boot menu of the USB or CD/DVD. 6 The DVD gives you access to other options, such as a few desktop environments like Xfce and LXDE. Following installation the recommended procedure is to install all patches. This can best be achieved by opening a terminal and running. su zypper patch Let it run, then do it again, then reboot the machine. Please note the use of su - ,instead of sudo which is used by the likes of Mint and Ubuntu, though is the same as Fedora. The zypper patch command we used means the system will be updated. Before we proceed with the main part of this tutorial, we think its worth pointing you in the direction of the OpenSUSE forum as a source for more help from the community https://forums.opensuse.org/forum.php. Aside from speaking directly to people, the forum has a wealth of information that may help you with installation, which were not covering in any detail here.
Our expert
is a SUSE Knowledge Partner and admin on the OpenSUSE Forums. He also supplies Linux solutions to the workplace and home, web design, systems admin and networking.
Carl Fletcher
hile the fundamentals of GNU/Linux are the same across the board. The immediate post installation experience across the range of distros can vary greatly. As the name suggests, OpenSUSE is open , which basically means it doesnt ship with non-free, proprietary software or libraries. To some, thats a good thing, others though might find it frustrating to say the least. Though we will offer some installation tips for to you consider, this tutorial is not an installation guide, rather its a post installation, configuration and maintenance guide that will have OpenSUSE running in such a way as to be able take
Vendor switching in the Yast2 UI is a vital part of the multimedia process. Here you can change repos and switch installed packages to the new repos.
www.linuxformat.com
OpenSUSE Tutorial
fixers guide
combination of Packman and VLC is not recommended. This is because VLC and Packman contain conflicting libraries. Packman does contain VLC Media Player and its also possible to use just the VLC repo without Packman, but this will severely reduce the number of multimedia apps available to you. The Packman repositories can actually be divided in to four different categorised directories. Typically and as here, we add the complete top directory. And rather than confuse you with more information on the VideoLan Repository, well just leave it as described and suggest you make it a subject of enquiry in the OpenSUSE forum there just isnt sufficient space to detail it in this article. Here, well just focus on Packman, as they are the most popular repositories by a long chalk The Packman repositories are also mirrored around the world, so it could be something you need to consider in download speed terms, see the following page for the full list: http://packman.links2linux.org/mirrors. experienced, the possibility of using some community repositories from the OpenSUSE BuildService (OBS) is something you could consider. A standard and popular set of community repos are available by opening Yast > Software > Repositories and after clicking Add, followed by the community radio button you will see a list with check boxes. Some people stumble upon this option and decide to select them all, thinking that the more will surely be the merrier and we advise that this certainly isnt the case. A much deeper range of repos can be seen here: http://download.opensuse.org/repositories. Thats the top level of selections available. If you drill down to here: http://download.opensuse.org/repositories/home you can see the repos of individual users, these could be compared to the PPA system familiar to Ubuntu users. Typically though, if you want to find software that isnt in the default repos + Packman range we encourage as standard, you might want to start your search here: http://software.opensuse.org/search. This search function supplied by OpenSUSE is powerful and very useful. However, it needs to be used with some care. We particularly discourage the use of the OneClick option that becomes available to you. Ifyou are unfamiliar with the OpenSUSE BuildService repositories, it is usually better to ask in the forum or on the IRC channel before diving in. Themain problem with OneClick installers is they can: First, add duplicates of the default repositories; second, subscribe you to repositories you might be better not being subscribed to; and third, they can also pull in the installation of software that you didnt actually request and are not dependencies of the software that you were trying to install. That being said, they can work adequately, but need to be used with some caution and with a reasonable understanding of OpenSUSE software management.
Quick tip
If your Broadcom device isnt supported by b43, it may be supported by wl . This driver is available in the Packman repository. Theres also a guide for this here: http://bit.ly/ LXFBroadcom
Vendor switching
OpenSUSE uses vendor switching to maintain priority for updates to a particular repository (which is sometimes referred to as vendor stickiness). It might sound stupid or tiresome, but its actually a very useful feature that deals with a situation where theres more than one repository that supplies a particular package. For example, k3b is supplied by the default OpenSUSE OSS repo and if we add in the Packman repositories, its also supplied there. Switching to Packman will mean k3b and any other packages with multiple providers, will be installed from Packman only. This is an important step in having fully functioning multimedia. Now lets run through that process. First, we need to open Yast > Software > Software Management and select to View By Repositories. Note that the Gnome (pictured bottom, p68) and KDE (pictured below) user interfaces look quite different from each other, so weve included a picture of each: Just occasionally, when applying this switch in Yast, you will experience a dependency error, similar to the one mentioned earlier when we were working in the terminal. Again, if this happens you should look for the Solutions option to allow Vendor Change > Packman. Keep in mind too, that if you do use additional repositories, as many users do and, for example, use the KDE release repositories that supply the latest stable KDE builds, youll still need to follow the same switching method. You will, however, need to re-apply the switch on Packman as the last step. Congratulations, you have now completed the main steps in setting up multimedia in OpenSUSE. Remember though, this is just a good foundation, there are hundreds of other applications in Packman that can just as easily become a part of your installation. We have already stressed the need to keep your repository numbers to a minimum. However, once you become more
For KDE users, the Qt vendor switching interface is a little different to Gnomes, but it follows the same method of selecting, switching and applying changes.
If you missed last issue Call 0844 848 2852 or +44 1604 251045
www.tuxradar.com May 2014 LXF183 69
Tutorial OpenSUSE
Quick tip
YaST can also work out of the X display with a Ncurses text based interface.
Managing graphics drivers and getting wireless working has to be one of the most talked about parts of getting any Linux system up and running. The system default graphics drivers should allow you to install and update your system adequately. Remember, once you have run the initial updates, reboot to be sure you are now running from the latest kernel. The standard way to install the open source drivers for your ATI or Nvidia graphics hardware is: 1 Go to the repository manager: Yast > Software > Software Repositories > Add > Community. 2 Select either Nvidia or ATI as appropriate for your system and then click OK. 3 Next open Software Management and, in most cases, thevideo drivers will have been auto selected for installation. Wesuggest you review the Installation summary before accepting the changes. 4 Proceed with caution if you have to manually select the driver, or if you know your hardware to be in any way unusual, for instance, hybrid graphics.
drivers section, and we move on to the day to day maintenance issues. Once you have your system running nicely its easy enough to keep it updated. All the desktop options (Gnome, KDE, Xfce, LXDE) have updater back-ends that look after this. Only KDE has a proviso in that Apper, its package manager, has been known to ignore the vendor switch, so watch out for that. Alternative options exist for updating and one of the easiest methods is to use your terminal. The following will update your system and can be used on all desktops: su zypper up Using a terminal might not be the most glamorous route to updates. It is though to be our first recommendation, as it eliminates any complications that some patches cause with the built in updater applets, most notably Apper.
One of the great features of KDEs Qt Yast2 UI is to select and perform updates in very specific way.
Never miss another issue Subscribe to the #1 source for Linux on page 30.
70 LXF183 May 2014
www.linuxformat.com
OpenSUSE Tutorial
60000, of course we already have that port forwarded in the router (but thats another topic). Adding the port to the firewall rules is easy. Follow the route: Yast > Security and Users > Firewall > Allowed Services > Advanced (button) and add 6000 to both the TCP Ports and UDP Ports fields and click OK to apply it. Once we apply the changes, the port 60000 is now open for TCP/UDP connections. Assuming your router has these ports forwarded and your software client is configured to use the same port, all should be good. Of course, you can open any number of different ports or port ranges. This is just a sample of what Yast can do. If youre easily intimidated by command line configurations, then Yast will offer a friendlier option, especially if youre coming from Windows. Not all the services are as simple to work with, but the UI has a useful Help button in each section to offer useful and enlightening pointers should you start to flounder.
This completes our tutorial, which should mean that by now you should be able to master some of the intricacies of OpenSUSE and enjoy the benefits of this powerful, full bodied distribution with a strong community following. LXF
Top tips
Pre-Installation
Test Live: You can use the Live DVD either on optical media or a USB to try out OpenSUSE Live with your hardware. Using a USB usually makes for a much smoother experience and if wireless works in the live session at least you know its not going to be a problem once installed.Note that the full DVD image doesnt have a Live mode, however it does allow installation of other desktop options, such as Xfce and LXDE. Partitioning OpenSUSE defaults to using a separate /home partition, which is a great way to keep all your user files safe. Wed suggest that the best route for partitioning is to follow the Custom route. This way you get to manage exactly what happens. At the first partitioning screen in the installer, choose Create Partition Setup then Custom Partitioning (for experts). The partitioner doesnt make any changes until the very last step of setting up the install process. Be sure to examine carefully the proposed changes when you get to the Install Proposal Summary. Media Check OpenSUSE is no different from most Linux distributions in that its installation media has a way of checking its integrity. Run the Media Check to be sure there has been no errors in the burning/writing process. DVDs are most likely to have problems, especially if you use a poor quality DVD media and/or decide to burn the image at too high write speed. There are two media checks you can do: 1 Checking the md5sum of the downloaded ISO. Torrent clients do this as will k3b when you load an ISO for burning. Ifit fails to match there is little point burning it or writing it in any way. 2 Then there is the integrity check of the burned or written media. Even if the downloaded ISO is good, a burn/write can go bad. Checking both is the belt and braces approach. Disk Partition labels This isnt really OpenSUSE specific. But its really handy if you give your partitions a label. Especially if you have a number of partitions above and beyond your actual installation. The installation partitioner can do this, as can tools such as Parted Magic. Use labels that make sense to you: eg If you have a 1TB partition you plan to use for all your movies, use that as the label. This partition will show in your file manager with that same label rather than some arbitrary XXGB partition name.
Theres a plethora of options in the Yast Control Center offering great flexibility in system settings and configuration.
Post Installation
Install updates Run zypper patch twice to install all the security patches and bug fixes, then reboot. This is important for many reasons, most notably because some drivers you may want to install are built against the most recent kernel. Having the patches installed will ensure you are running the current kernel. Keeping everything updated is then: zypper up Wireless tips Wi-Fi continues to be something of a trouble spot. The most useful information to help people trying to help you is the device information. We quoted the code for that earlier, but here it is again: sbin/lspci -nnk | grep -iA2 net Make sure the package kernel-firmware is installed. Fonts The fonts in OpenSUSE might need to be tweaked. This tends only to involve switching the font to Droid Sans and enable hinting with the Slight option. There is a package you can install called fontconfig-infinality, which some users have found gives improved rendering. Alternatively, there are some users who have OpenSUSE BuildService repositories with font subpixel-hinting improvements. You can search for those at: http://software.opensuse.org/search. But dont mix infinality with other repos offering a modified build of subpixel-hinting. Of course too, there is the ability to pull in (Microsoft Fonts) with the helper package fetchmsttfonts. Other Software Everyone has different expectations and requirements which makes it almost impossible to cover everything, but remember to use the search function in Software Management to check whats already available in your current repository configuration. For non-standard and Proprietary software, such as: Skype or Steam, you can check the Software Search we have already mentioned and also this search engine: http://search.opensuse.org. Zypper This isnt that different to the apt and yum packaging tools found in Debian and Redhat-derived distros respectively. KDE users can read documentation in Konqueror by running man:zypper in the address bar. In the terminal, its just man zypper. If you want to search for a theme, for example, its a case of opening a terminal and searching for it by name with zypper or for theme packages generally with zypper se theme.
www.tuxradar.com
Job scheduling Harness the power of Cron and automate regular tasks
Got Cron? Neil Bothwick shows you how to save time by scripting regular tasks and one-off events to happen when and how you want them to.
emember when they told us that computers were going to make life easier for us and save us time? Well, it must be true because Windows users have all that spare time they can use for cleaning up after viruses and malware! Having a program that will back up your hard drive or check for a new release of your favourite podcast is great, but you still have to take the time to run it. If software can dothe job for you, it should be able to do it when you want without you needing to ask it to, or even remember to. Linux has a couple of options for running tasks at set times, so were going to look at how you can have your computer remember to do things for you, even when you dont. The two standard programs for these tasks are Cron and at. Cron is for repeating tasks, while at is used to run tasks once, at a specific time.
Cron daemons
There are a number of Cron daemons available on Linux, but were going to look at vixie-cron here because its the most popular. While the basics are the same for the various Cron daemons, some of the details are different, so if you use a different Cron, take a moment to check the documentation. ACron daemon runs in the background, waking up once a minute to check whether you have any scheduled jobs for it to run. These jobs are defined in files called crontabs. Slightly confusingly, there is also a command for managing crontab files that is also called crontab. The main system crontab file is /etc/crontab. Tasks defined in here are managed and run by root, but can be run with a specific users privileges. Users also have their own crontabs containing tasks to be run for and as that user, thisis where you define your own Cron jobs. The format of thefiles is slightly different, so lets take a look at the users
KDEs task scheduler adds plenty of buttons to set up various schedules with your mouse.
A text editor like this is the traditional way of editing your cron tasks, with crontab using whichever editor you have set as your default.
crontab format first. If you run: crontab -l you will see a list of currently defined jobs. There might be none, so lets set one up. Run: crontab -e in a terminal to start editing it. You should use crontab -e to edit a crontab file, rather than loading it into an editor directly. Crontab runs your editor, but also checks the syntax when you have finished making it more difficult, but not impossible, to mess things up. Crontab uses the editor defined in the EDITOR environment variable, so you can let it use whichever text editor you prefer. As a trivial example, add this line: 0 * * * * aplay /usr/share/sounds/pop.wav A users crontab line consists of six fields. The first five define the schedule while the remainder of the line is the command to run. This example plays a slightly annoying sound on the hour. Of course, this is just an example; you could be doing something useful like running a backup scriptor using Flexget to check for updates to your favourite podcast [See Tutorials, LXF181]. The time fields are: Minute, Hour, Day of month, Month and Day of week. The * wildcard means match any , so this line matches at any hour on any day in any month as long as the minutes are zero on the hour. The days of the week are numbered 0-7 starting with Sunday, so Sunday can be either 0 or 7. If you think of the week starting on Monday, use 1-7, otherwise use 0-6; it makes no difference to cron. We used a minutes single value here, but you can also uselists and ranges. A list is a series of values separated by commas, and lists can include ranges. Do not include spaces in the lists or Cron will think the rest is the next field. A more complex example would be: */10 7-10,17-22 * * 1-5 aplay /usr/share/sounds/pop.wav Here the hour matches between 7am and 10am, and
www.linuxformat.com
scheduling
alsobetween 5pm and 10pm, while the day matches Monday to Friday. The minutes field shows another option, */10 matches when the minutes are divisible by 10, so this will make an annoying sound every ten minutes during weekday mornings and evenings. Only a truly evil person would install this task on a friends computer while they werent looking. Allfields have to match for a task to run, so you would not normally use both the day of week and day of month unless you want very occasional matches, like running an extra backup on Friday the 13th, just to be on the safe side. The system crontab follows a similar format, except thereis an extra field between the day of the month and the command. This specifies the user the task should run as, usually root for system tasks. Only the root user (or one using sudo) can edit this file. specification as its argument and reads the job to run from standard input, for example: echo somecommand --with-opts | at 13:30 will run the specified command at 1:30pm. The time specification is incredibly flexible and you can also perform arithmetic on it. Although: echo somecommand | at now may not seem that useful (you could just run the command yourself), what about using: echo somecommand | at now + 1 hour or even: echo somecommand | at 5pm + 1 day to run it at 5pm tomorrow. You can see the jobs you have queued, or that everyone has queued if you are root, with atq. Along with the time, it gives each job a number, which you can use to delete the queued job with atrm or list its contents with: at -c jobnumber While cron tasks are run with a minimal profile by default, running at -c will show you that at sets everything up to mirror the current environment before running the job. Now with Cron and at taking care of everything behind the scenes, you can leave the computer to get on with the boring things while you enjoy yourself. LXF
Other settings
When a cron job runs, a number of environment variables are set, according to the user running it, such as $LOGNAME, $HOME and $SHELL. It is also possible to define variables in the crontab file by placing the definition at the top, either to override a standard variable or to add another. One of the most useful is: MAILTO=me@example.com This sends the output from any cron job by email. If you redirect standard output to /dev/null in the crontab definition, the only output should be error messages, which will be mailed to you when something goes wrong. No email is sent when there is no output. Running a command from Cron is not the same as running it in a terminal, your profile is not loaded and the pathmay be quite limited. Its good practice to always use fullpaths for commands in the crontab. If youre running a script, you may need to add something like: source /etc/profile or: source $HOME/.bash_profile if you would like to have the command run in a similar environment to that of your shell. There are some shortcuts for common schedules that you can use instead of the normal five fields, such as @hourly, @daily, @weekly and so on. The man page describes them all. You may also have directories /etc/cron.hourly, /etc/ cron.daily, /etc/cron.weekly and /etc/cron.monthly on your system. Drop a script in one of these directories to have it run at the appropriate time. These will always be run as root and not necessarily on the hour, the scheduling of these is usually spread out to avoid a high load at the top of each hour.
Where its at
If you want to run a command once, at a specific time, at is your friend. Unlike Cron, this is not always installed by default, but will be in your distros package manager. At takes a time
Gnomes task scheduler has fewer buttons than KCron, as you would expect, but still provides a handy alternative to a text editor. However, a text editor is still the most flexible way of creating Cron tasks.
www.tuxradar.com
Ghost: Setup a
Are you looking for a simple and easy to use blogging platform? Then give Ghost a try. John Lane shows us why it may be just what youre looking for.
Ghost, in its own words, is just a blogging platform. It goes back to basics to offer a simple and clean platform for publishing your writing to the web. You can download the MITlicensed source code and run your own server or you can sign up for a hosted version for a small monthly fee. In this tutorial we will set up our own Ghost server and create some content to demonstrate its features. Follow us and youll be blogging in no time. Ghost is relatively new and isnt yet in most package repositories (Arch Linux users can build it from the AUR), so head over to the Ghost website at http://ghost.org to download the source. Youll need to register and then log in before you can see the download link, or you can get it directly via the terminal: # curl -L https://ghost.org/zip/ghost-latest.zip -o ghost.zip
Our expert
fell into Linux way back in 1994 and has been hacking his way out ever since. He has a Gitserver in a secret location.
John Lane
f you want a blog these days, youll probably be drawn to Wordpress. But what originated as a simple blogging platform has evolved into a fully-fledged content management system, or CMS, thats capable of being used to build complex websites. Wordpress has grown up and it no longer has a specific purpose, which is great if youre looking for a good CMS. But if all that you want to do is to quickly and effectively publish content on the web, using a CMS can overengineering what ought to be a simple task. But there is an open source alternative called Ghost.
When you start Ghost for the first time you get welcome post but not a lot else.
www.linuxformat.com
Ghost Tutorial
custom blog
Send email from your server
We have configured Ghost to use Sendmail for email. If the machine running Ghost doesnt have Sendmail, you can use SSMTP, a send-only sendmail emulator with just enough functionality to send mails. Install and configure it like this: # apt-get install ssmtp # cat > /etc/ssmtp/ssmtp.conf << EOF Mailhub=smtp.example.com RewriteDomain=example.com EOF You will need to specify your own SMTP server for the Mailhub domain and your own domain in RewriteDomain, and you can test that it works correctly with the following: # echo testing ssmtp | sendmail you@example. com and then just look out for an incoming test message in your inbox.
mail: { transport: sendmail, options: {} }, Note the trailing comma. The empty options block prevents Ghost from displaying a meaningless warning message. That definition is sufficient to send mail as long as the server has a working sendmail or equivalent. For other options refer to http://docs.ghost.org/mail. One final thing to configure is your blogs URL its referenced in password reset emails, so youll want to set it to something resolvable, at least within your internal network whilst testing. Our test servers name is lxfghost and http://lxfghost:2368 was sufficient while testing internally. Edit the URL setting in config.js: url: http://lxfghost:2368, Thats all there is to it; you can now start your Ghost server. It displays the IP address and port where its listening you can browse to this location in your web browser. # npm start Ghost is running in development... Listening on 0.0.0.0:2368 Url configured as: http://lxfghost:2368
Get posting
To start writing your blog, you will need to point your web browser to /ghost. When you do this for the first time, youll be redirected to a sign-up page so that you can create an admin user account. Complete this and youll be taken to the admin screen. Ghost will send you a welcome email message if you configured email. The interface is quite simple and there are three main tabs supplied. Content lists all posts as we have seen, New Post creates a new post and Settings is used to manage how your blog looks. Selecting New Post opens a new editing window with two panes side by side. Ghost uses Markdown formatting syntax you type this into the Markdown pane on the left and see formatted output in the preview pane on the right. Theres a small question mark icon on the Markdown pane that explains the basics of the syntax but you can learn more at
http://bit.ly/markdown. Ghost provides keyboard shortcuts for the main ones. Your work is not saved automatically, so press the blue Save Draft button periodically to do this. When you are ready to publish, click the little arrow icon next to Save Draft, select Publish Now in the menu that appears and then click the red Publish Now button. Unpublished posts are only accessible through the admin pages, published posts are publicly visible on your site. If you change your mind, a similar action allows you to unpublish a post. The label thats on the blue button that saves your work changes when a post is published. This changes from Save Draft to Update Post but still does the same thing, which is saving your work. You can also tag posts. Click in the bar at the bottom and begin typing a tag name. Existing tags will be suggested as you type click one of these to select it. Otherwise, everything that you type will become a new tag, including whitespace. Press Enter on your keyboard to complete the tag. At the moment, you can create tags but nothing is done with them. Sorting and filtering posts with tags is a future roadmap item. At the end of the tag bar is a small gear-shaped icon. Thisgives access to some post settings that you can alter, including the posts URL and its publication date. This is also
Quick tip
To see if your repo doesnt have a suitable version of Node.js check: http://bit.ly/ nodepkg.
The admin screen lists your posts on the left and content on the right
If you missed last issue Call 0844 848 2852 or +44 1604 251045
www.tuxradar.com May 2014 LXF183 75
Tutorial Ghost
where you go to if you want to delete a post. The final setting here allows you to make the post into a static page. Static pages arent listed with posts, they must be directly accessed by a URL or via coding in your theme. You might use them to provide About or Contact pages on your site. Personalising your blog by customising how it looks is as important as the content you decide to post. There are two places where these customisations take place: the Settings tab and the theme. On the Settings tab, you can give your blog a title and description. You can upload a logo that will be displayed on each post and a cover image that will appear on the front page. Its here also where you select the theme you want. This will create a new theme called linuxformat. You have to restart Ghost to make the new theme available, after that you can select it on the Settings tab. Right now, its identical to Casper. Lets do something about that. The files you will most likely want to modify are the style sheet, found within the theme directory at assets/css/ screen.css and layouts in the *.hbs files, which use the Handlebars templating language. You can read more Ghost themes and how to make the most of Handlebars at http://docs.ghost.org/themes. As an example, we modified the CSS to give the title text a background and rounded corners. We said that Ghost takes blogging back to the basics. If you want to accept comments on your posts youll experience initial disappointment, because you cant. This is, however, by design and the reason that the Ghost developers give is that there are many third-party commenting services available and you can embed these into your theme to enable commenting on your blog posts.
Customising Casper
Ghosts default theme is called Casper and the theme documentation suggests one way to start a new theme is to copy Casper and customise it. So thats what well do here but, if you prefer, you can get ready-made themes at http://marketplace.ghost.org. Some are free whereas others require a payment and you can also upload your own. Ghosts themes are stored in content/themes and creating a new one (albeit the same as Casper) is a simple matter of copying it. cd /srv/ghost cp -a content/themes/{casper,linuxformat}
If Markdown cant offer all you need, you can use HTML!
There are alternative Ghost hosting services. Try http:// digitalocean. com and http:// ghostify.io.
Never miss another issue Subscribe to the #1 source for Linux on page 30.
76 LXF183 May 2014
www.linuxformat.com
Ghost Tutorial
Tab options
Content lists posts on the left with the selected post previewed on the right. Youll need to click the pencil icon on the far right, next to the Settings cog icon to edit it; New Post starts a new one.
Markdown
Type your post on the left and use Markdown to format it. The question mark in top right of the pane opens a pop-up help page explaining the syntax. Use the blue button (bottom right) to save your work.
Post settings
The gear icon allows you to change your posts URL, publication date or make it a static page. This is also where you can delete your post.
Of course, you could use other commenting services that are available, such as those provided by Echo, Disqus, Livefyre or IntenseDebate or even Facebook, if thats your preference. The Ghost blogging platform performs automatic update checking so that you can be alerted when theres a new version available. In doing so, anonymous usage data is collected. If this makes you uncomfortable, you can opt out by setting updateCheck: false in your config.js file. However, you can always head to http://bit.ly/ghostupdatecheck and satisfy yourself about what is involved by checking the source code. Further details are available at http://docs. ghost.org/usage/configuration. Ghost allows you to configure multiple environments in the config.js file. So far, we have been using the default development environment but theres also a production environment that you can configure and you should do this when you put your blog live. The development and production environments differ in how much logging is performed and how they pass content to the browser (the asset pipeline). When youre ready to release your blog to the public, you should make sure you configure and use the production environment. For our blog, we configured this in config.js and started the server with npm start --production The other thing that you will probably want to do when you do decide to go live is to publish your blog on the
standard HTTP port, which is 80. If your server hosts only Ghost then this is a simple matter of configuring it that way in config.js. If,however, you already run a web server then you might want to publish your blog on a subdomain. Web servers such as Apache and Nginx can be configured with a virtual host to handle your subdomain and proxy requests to your Ghost server. LXF
www.tuxradar.com
Richard Smedley demonstrates how Shrimping.it can put the education back into microcontroller fun and how its inspiring the next gen of makers.
orecambe has long been famous for its fishing heritage and in particular potted shrimps, but the town looks like it could become renowned for an entirely different kind of crustacean. This particular Shrimp is slightly less edible and of the electronic variety as its a breadboard (which still doesnt make it anymore edible). Ifyou look closely at the Arduino Uno protoyping board youll discover that its actually an Atmel Atmega microcontroller with bootloader, a power regulator, UART and thats about it. This is where http://shrimping.it and the Shrimp kit swims helpfully offering a low cost, no-nonsense, look-you-can-see-how-it-connects-and-works, Arduinocompatible board. The Shrimp also enables you to add in a CP2102 USB to UART bridge for connecting to your computer to start programming it, and manages to do this without raising the cost through the roof. Better yet, you only need one or two CP2102s to program a whole workshop full of Shrimps, soeverybody can walk away with a working Shrimp project for less than the cost of a coffee. This isnt all about the cost, however certainly the low price makes it a great enabler for educational projects, but its the natural learning that kids or adults will experience in making their project thats the real product of the whole process. We admire theArduino Uno but it is a little obscure in its workings its quite hard to even see the pin connections across the board. Add in pre-made Arduino shields, and while its great for those familiar with how microcontrollers work and what to do with them, theres too much thats hidden for a beginner to easily pick up whats going on. The Shrimp is different it arrives as a handful of components for you to assemble.
Richard Smedley
Start shrimping
Just as medieval recipes started with first catch your swan , so you need to first assemble your Shrimp . The component cost of the most basic Shrimp, especially if you can buy the components in bulk, is close to trivial as you can see from the list below (see http://shrimping.it/blog/bill-of-materials): 1 ATMEGA328-PU .................................................................. 1.17 2 2x22pF capacitor .............................................................. 0.02 3 4x100nF capacitor ........................................................... 0.04 4 1x10F capacitor ............................................................... 0.02 5 1x10K OHM resistor ..........................................................0.01 6 16MHz quartz crystal ...................................................... 0.07 7 6mm tactile switch .......................................................... 0.04 8 Various coloured wire or jumpers ............................... 0.05 9 One LED and matching resistor for testing ............. 0.02 10 9-pin male header strip .................................................. 0.02 Total cost (ex-VAT and P&P):................................................1.46 But for a one-off purchase, its cheaper to get a kit from http://shrimping.it/blog/kits where a barebones kit costs 4, and the breadboard is available separately, or included in the expansion packs. You may find that your first challenge will be getting the microcontroller into the breadboard itself we corrected our lightly splayed pins by gently squeezing between table and the breadboard back after which plugging in the components is a fairly straightforward process. If you head to the official Shrimping blog (http://shrimping.it/blog/blink) this has full step-by-step instructions on assembly. You can see from the picture (left) how its meant to go, and at the other end youll need to plug the wires into your CP2102 USB to UART bridge in the following combinations:
10
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 29
CP2102 UART
30 30
A B C D E F G H I J
104 104
GND
RXD
DTR
TXD
CTS
ATMEGA328
104 104
5V
11
14 16MHz 15
10
11
12
13
16
17
18
19
20
21
22
23
24
25
26
27
With the Shrimp, you have to start by handling and assembling components yourself, which means learning circuitry is pretty much guaranteed.
www.linuxformat.com
28
Embedded.electronics Tutorial
Red into 5V, Orange into RXD, Yellow goes into TXD, Green to GND and, finally, Brown into DTR. Now you are all ready to install the Arduino IDE, and run your first program or sketch as its called in Arduino-speak. Theres so much you can do with your lovely new Shrimp. Obviously, Arduino Uno compatibility gives you access to thousands of sketches and circuits, and there are some great circuits and kits that are beginning to appear on the official
Shrimping.it website. TheThings to do with your Shrimp below, includes a clone of the 1970s favourite, Simon Says. To keep the kids interested, its great to be able to control a Shrimps inputs and outputs directly from the console, without writing a program. The PyFirmata library lets you do this, and also can make a bridge to Scratch, the language youngsters are learning at Code Clubs around the country. Happy Shrimping! LXF
The Shrimp crew use the Blink build at the start of workshops to prove that everything works before adding more challenging modules or behaviours. If you buy a kit itll add a few more capacitors and resistors to what we show here (http://bit.ly/1cPehqz).
Fully compatible with the Arduino Uno, youll just need to install the IDE from Arduino.cc. From the menu load: File > Open -> Examples -> Basics -> Blink and click the horizontal arrow on the toolbar to send the code to your Shrimp. A flashing LED indicates success.
Adding Arduino
In the pre-ZX81 1970s we may not have had home computers, but we did have Simon. Think Boppit, without the voice and motion. You press the buttons in the order that they were flashed. Each round adds an extra step until you fail (http://bit.ly/1ejWl8J).
Simon says
Reminiscent of writing letters in the air with a sparkler, the Persistence of Vision kit replicates this trick with a circuit. A column of LEDs is flashed in a timed sequence to mimic several consecutive columns and build characters or shapes. (http://bit.ly/1fC5x3I).
Optical fun
Soldering the basic Shrimp to a strip board will free up your breadboards for more circuits. This uses a 28-pin DIP IC socket adaptor, which means that you can still share the same Atmel microcontroller between your circuits (http://bit.ly/1bLRT2X).
We hope youll get the Shrimping bug, but the best source of inspiration is working with other people. The @ShrimpingIt Twitter feed announces workshops, plus you can take your board to Arduino events at your local MakerSpace or HackSpace.
Shrimp together
www.tuxradar.com
Tutorial Home Xxxx Dedicated Hosting Web server Set up a home hosting
LAMP: Harden
Want to learn how to administer a web server? Kent Elchuk shows you how to set up a fast-loading, resiliant home web server for testing and training.
uilding a home web server can be very advantageous to beginner or skilled web developers. For the beginner, it enables you to practice without security risks or having to pay any fees, and test your scripts and web pages prior to going live. In addition to testing web pages, a home setup will help you to get to know and experiment with the LAMP stack, or host a low-traffic website. The LAMP stack consists of Linux, Apache, MySQL and PHP. However, there are options to replace the Apache server with a different one like Lighttpd or Nginx. For the experienced user, it can be a playground to experiment with new packages, server setups and to integrate with other hosted server setups. An example of integration is running video from one or more webcams and having them viewable from a hosted website located on another machine. A Linux package like Motion would be sufficient to make this happen. Another example is to test a package like Varnish (an HTTP accelerator) before doing the same thing on your dedicated server. This article will detail various methods to host a website at home on devices such as the Raspberry Pi, a cheap PC and even USB sticks.
Our expert
Kent Elchuk is a fulltime lead web developer for two colleges in Vancouver. When he has private moments around 4am, he likes to program scrapers and toy with his Raspberry Pis.
Writing the statement echo phpinfo() in a PHP file can provide you with a lot of useful information about your current PHP configuration.
many people get rid of them when the hard drive begins to fail but as we mention in the boxout (See Hosting Setup Options, p83) that may not matter. Finally, for less than $100 the Raspberry Pi and a few accessories can be a reliable unit since it has no moving parts and can fit almost anywhere. Raspberry Pis consume very little power and make an excellent device for experimenting with since the hard drive can be an SD card or USB stick. If you decide to use a Raspberry Pi, there are various Linux distros you could install. However, the Raspbian distro has many forums and good online help and its recommended for beginners [See Master the Amazing Raspberry Pi, p34, LXF181]. For newbies, theres also the NOOBS installer, which you just need to add to a FAT-formatted SD card (thats over 4GB) and run to choose from a number of distros [see NOOBS review, p21, LXF181]. If you do plan to use a Raspberry Pi, an easy install setup is an HDMI cable connected from your Pi to a hi-def TV, along with a compatible keyboard, mouse and Ethernet cable. After you have the NOOBS folder on a USB card, you simply boot the Pi and follow the instructions on the telly. The Apache tutorial (See p72, LXF180), which covers a LAMP home server setup will help you get the server up and running. If you dont have access to that issue, a basic LAMP server Linux, Apache, MySQL and PHP can be installed with the commands below: sudo apt-get update sudo apt-get install apache2 sudo apt-get install mysql-server mysql-client apt-get install php5 libapache2-mod-php5 sudo apt-get install curl libcurl3 libcurl3-dev php5-curl sudo /etc/init.d/apache2 restart After you have successfully installed the packages and everything seems to be working properly, you can move on and test a few new setups, such as Varnish, and add additional port forwarding on your router to manage the website from anywhere with SSH. If you are building the website at home you can access it through the IP, network IP, or domain name using SSH. However, if you plan to access your Linux shell through SSH from a foreign computer, you will need to enable port forwarding in the router to accept such connections. For simplicity, port 22 is the default SSH port and you can add that to the routers port forwarding, along with the IP of the Linux machine that will host the website. Well continue with port 22, but you can change the port number in the file /etc/ssh/sshd_config. Since port 22 is the default, its often targeted for attacks with the root username. If you change the port and PermitRootLogin yes to PermitRootLogin no and login with a super user, youll find the log files much less cluttered with failed attempts. If you dont allow SSH port forwarding, you can still control the machine through SSH on your own home network since
www.linuxformat.com
both computers are using the same router. If you make that foreign connection and use port forwarding, you can access it via IP or the website domain name. When you build the website, youll need to place all of your files within the /var/www folder. If you plan to host more than one website, you can do that too with some minor adjustments to the apache2.conf file and custom entries. The following line needs to be added to apache2.conf. Include conf.d/*.conf This line above enables you to make a .conf file for your domain name and you need to add your domain name in front of the .conf extension: eg, the file for the website example.com would be example.com.conf. The files for the website example.com will be located in the /var/www/ example.com folder, so vi /etc/apache2/conf.d/example. com.conf <VirtualHost *:80> ServerName www.example.com ServerAlias example.com*.example.com DocumentRoot /var/www/example.com <Directory /var/www/example.com> Order allow,deny Allow from all </Directory> </VirtualHost> Now that you have the basics to set up the website, youll want a solid plan so that its built to run effectively. Although server type (Apache, Lighttpd, Nginx, etc) plays a part in handling the requests, the actual file system and programming of the website is something to consider carefully. If you plan to use Wordpress, Joomla, Drupal, Magento or one of many other popular PHP scripts, you may find that loading is slow and very undesirable. If you want some style and good performance, a nice CSS template with small file-sized images can produce desirable results. If you want to add on 15 Javascripts and heavy slide shows you can
expect slow loading from your viewers. If you plan to use PHP/MySQL, you can create lean coded, custom pages that still load very quickly. Also, keep in mind that your web pages will load much faster when your website is on your own network. Away from home, retrieval will be a lot slower, unless you make very quick loading pages. Now that weve covered the basic server setup and some website construction concepts, there are still a few more simple procedures you can follow to make a faster viewing experience. Two simple things you can do are: First, add an Apache module, which enables you to setup image and file caching on the web surfers browser. Second, you could install and enable mod_expires or mod_headers and set up custom caching with a .htaccess file located in the /var/www directory (or your custom website folder). For those who plan to create dynamic websites built with PHP and MySQL, you can install and configure Varnish. Varnish is popular on many hosted websites since it stores dynamic content in a cache in the memory and keeps loading cached dynamic web pages until the page content changes.
Quick tip
When you set a static IP for your hosting and reserve a static IP on your router you will save yourself many headaches. You can change DHCP to static IP in your /etc/network/ interfaces file.
Setting up Varnish
To you install, setup and run Varnish, youll need to change the port on Apache to something other than 80 (like 8080 or 81) since Varnish will use port 80. Note: Varnish will easily install on the likes of Ubuntu, but you will have to install it from source on the Raspberry Pi. The steps to get Varnish up and running on a Raspberry Pi are to download Varnish, extract the TAR file, install dependencies, install from source code and edit a couple of files. As a word of caution, you may want to setup Varnish after your home web server is working perfectly without it. This way, you only have to change the port number in the apache2.conf file if Varnish fails to work properly. First, youll need to become a sudoer to execute root commands using sudo -s and navigate to the /var/tmp
If you missed last issue Call 0844 848 2852 or +44 1604 251045
www.tuxradar.com May 2014 LXF183 81
Setting up Heartbeat
Heartbeat is a package that enables you to have another computer take over if one server fails. The main website (http://bit.ly/1oIvtAc) can be used to answer some of your questions, but here well show you how to create a two-node cluster. The devices in this example are two Raspberry Pis with two different hostnames. The hostname is defined in the /etc/hostname file and its critical that the two names are different. In this example, our main node is called raspberrypi and our second is raspberrypi2. In addition to the two distinct hostnames, both devices need their own static IP address. In this example, the main node has an IP of 192.168.0.106 and the second 192.168.0.107. To summarise the entire IP fallover process: An IP address is created thats not used by another device and this is used for port forwarded in the router. In our example thats 192.168.0.120. The Apache server will display the website from the main node 192.168.0.106 under the alias of 192.168.0.120. But, if Apache fails on raspberrypi, raspberrypi2 with the IP of 192.168.0.107 takes over. The files which we will need to edit are /etc/network/ interfaces, /etc/hosts and /etc/hostname. Additionally, the files which will need to add on both machines are /etc/ha.d, /etc/ha.d/haresources, /etc/ ha.d/ha.cd and /etc/ha.d/authkeys. First lets set those static IPs on both nodes. Both files will be the same on each Pi except for the IP address. The example below shows the IP from the main node. vi /etc/network/interfaces auto eth0 iface eth0 inet static address 192.168.0.106 netmask 255.255.255.0 gateway 192.168.0.1
Never miss another issue Subscribe to the #1 source for Linux on page 30.
82 LXF183 May 2014
www.linuxformat.com
you use a static IP and your router reserves the IP of your device, you wont have issues. If, however, you use DHCP, a router reboot will create an IP for the home server device (and any other devices on your network using DHCP) and you could quite easily end up with the wrong IP. The whole idea is that you always want the same local IP no matter what. Once you have set up the server, youll want to implement a backup method too. Your backup could be a tarball you create every so often, an rsync cron job that backs up all website files to another hard disk, or a backup disk that is a cloned version of the hard disk thats created with the dd (data description) command. With dd, you can set the boot to use the USB stick as the root directory. This method makes it very fast and easy to replace the malfunctioning disk with a new, identical copy. If you follow the USB route to host the website, you could use a tool like Clonezilla to make identical copies. After going through the possible setups and our little guides for Heartbeat and Varnish etc, you should have the knowhow to serve files quickly from your home web server to the internet and keep it up and running smoothly. Although a home server is a cheap and relatively easy to setup, it doesnt offer the fast hardware and download/upload speeds of hosted packages. Once you feel youve outgrown a home hosting setup, you can always find a dedicated web hosting package that has the resources you need. Speed and reliability can be achieved through efficient coding, adequate hosting setups and powerful hardware. If you use hosted solutions, youll also be able to get acquitted with software like Cpanel and Plesk, which can make website administration simpler. Although these may well lack all the tools you need, you can always use your command line skills acquired from using a home server to create custom reporting. Ultimately, if you get comfortable with command-lining, FTP and SSH on your own server, youll have all the tools necessary to build and manage small and large amounts of content from anywhere. LXF
Yslow helps increase page loading performance by showing weaknesses in your front-end code and your .htaccess file.
www.tuxradar.com
HTML5
I
Our expert
Ian Devlin wishes he could travel back in time. Not so he can make a killing on the stock market, but to tell Tim Berners-Lee to patent the World Wide Web and its content so he could ensure that everything remained free foreveryone.
ts common knowledge that HTML5 enables you to play audio and video files directly in the browser without the need for third-party plug-ins, via the <audio> and <video> elements. But since the specification doesnt define how the controls for audio and video files should look, each browser vendor has designed its own interface for its player, which of course provides a different user experience for each browser. But if you want to provide a consistent interface to your media files, you can build your own player, via a combination of HTML, CSS and the HTML5 media API. If you arent familiar with this API, Ive included an introduction to some of the relevant features of the API in the accompanying download for this tutorial on the LXFDVD.
<source src=parrots.webm type=video/webm> </video> <div id=media-controls></div> </div> </body> </html> As you can see, were including a CSS file, which will contain the styling for our media player, and a JavaScript file, which will include the code controlling the player. Note: we wont be going into the CSS for the player in this article. Theres also a video element, defined via two initial source elements: the test video is in MP4 and WebM formats. Notice we have set the controls attribute for the video element, even though we want to define our own control set. Its better to switch off the controls via JavaScript in case the user has JavaScript disabled. The div with the id=media-controls will contain exactly what it says. First, we need to initialise our player, which we do via JavaScript. Moving to our JavaScript file, well define a function called initialiseMediaPlayer() which we need to call when the document is loaded. To do this we add a listener for the DOMContentLoaded event: document.addEventListener(DOMContentLoaded, function() { initialiseMediaPlayer(); }, false); In addition, well need to define a global variable to store a handle to our media player: var mediaPlayer; Our initialiseMediaPlayer() function will simply obtain a handle to our media player, and then hide the controls: function initialiseMediaPlayer() { mediaPlayer = document. getElementById(media-video); mediaPlayer.controls = false; } Note: were using the Boolean controls attribute from the
The stop button pauses the media and rests it to its start position.
www.linuxformat.com
HTML5
Browser support
One thing that sometimes catches people out is which browsers support what media types, and how they can go about encoding their media files so that they will work with HTML5 native audio and video: Video Firefox: Theora and WebM Chrome: Theora, MP4 and WebM Opera: Theora and WebM Safari: MP4 IE9+: MP4 and WebM (via a plug-in) To ensure that your content is seen by as many visitors using different browser, youll need to provide your video files in MP4, as well as both the open formats: Theora and WebM. Audio Firefox: Ogg Vorbis and WAV Chrome: Ogg Vorbis, MP3, MP4 and AAC Opera: Ogg Vorbis and WAV Safari: MP3, AAC and MP4 IE9+: MP3, AAC and MP4 To cover the latest browsers, it is recommended to provide your audio files in both Ogg Vorbis and MP3 formats. Encoding Usually you will only have your media files in one format, and it may even be one that none of the browsers support. So how do you go about converting them? There are a number of free tools out there that make this task incredibly simple. The Miro Video Converter (www.mirovideoconverter. com) is one of the best, and you can also use Online Convert (www.online-convert.com) to convert files online, oddly enough. Additionally, if your MP4 file doesnt start playing until its completely downloaded, its probably due to the fact that the file information (which is contained in the file index) is at the end of the file rather than at the start, and the browser is waiting to read this before allowing the file to be played. This can easily be moved to the start of the file using QTIndexSwapper (http://bit.ly/MyvXwk).
API to hide the browsers default media player control set. Now were going to start adding buttons: most importantly, the Play button. Since many media players use one button to alternate between play and pause functionality, well do the same. To define the button, add this code: <div id=media-controls> <button id=play-pause-button class=play title=play onclick=togglePlayPause();>Play</button> </div>
pause() method to pause the media itself. Since were going to want to change the title, innerHTML and className values of various buttons throughout the code, it makes sense to define a function that does that for us: changeButtonType(). We will use it from now on: function changeButtonType(btn, value) { btn.title = value; btn.innerHTML = value; btn.className = value; } Were also going to need a Stop button: <button id=stop-button class=stop title=stop onclick=stopPlayer();>Stop</ button> The media API doesnt provide a specific stop method, because theres no real difference between pausing and stopping a video or audio file. Instead, our stopPlayer() function will simply pause the media and also reset the currentTime attribute to 0, which effectively moves the media back to the start position: function stopPlayer() { mediaPlayer.pause(); mediaPlayer.currentTime = 0; } Next, well add separate buttons for increasing and decreasing volume: <button id=volume-inc-button class=volume-plus title=increase volume
The custom player, complete with progress bar and now we have replay control.
www.tuxradar.com
HTML5
onclick=changeVolume(+);>Increase volume</button> <button id=volume-dec-button class=volume-minus title=decrease volume onclick=changeVolume(-);>Decrease volume</button> </div> When each button is clicked, we call the changeVolume() function with a parameter that indicates the direction (we use a plus and minus sign here): function changeVolume(direction) { if (direction === +) mediaPlayer.volume += mediaPlayer. volume == 1 ? 0 : 0.1; else mediaPlayer.volume -= (mediaPlayer.volume == 0 ? 0 : 0.1); mediaPlayer.volume = parseFloat(mediaPlayer.volume). toFixed(1); } This function checks the parameter and modifies the value of the media players volume attribute. The attribute has a range between 0 and 1, so increments or decrements are made in steps of 0.1, checking for adherence to min and max values. We use parseFloat() and toFixed() to set the value to one decimal place. In addition, we should add a Mute button: <button id=mute-button class=mute title=mute onclick=toggleMute();>Mute</button> And also a toggleMute() function: function toggleMute() { var btn = document.getElementById(mute-button); if (mediaPlayer.muted) { changeButtonType(btn, mute); mediaPlayer.muted = false; } else { changeButtonType(btn, unmute); mediaPlayer.muted = true; } } This function is similar to togglePlayPause() in that we check one of the media players attributes, in this case muted. If it is set, the button needs to become a mute button and the media player unmuted; if not, the button needs to become an unmute button and the media player muted. Finally, well add a replay button to replay the media file currently loaded. Well make this button the first one in the control set: <button id=replay-button class=replay title=replay onclick=replayMedia();>Replay</button> The JavaScript for replayMedia() is quite straightforward: function replayMedia() { resetPlayer(); mediaPlayer.play(); } All we need to do is reset the player and then call the play() method on our player. Our resetPlayer() method looks like this: function resetPlayer() { mediaPlayer.currentTime = 0; changeButtonType(playPauseBtn, play); } This function resets the medias play position via the currentTime attribute and ensures that the Play/ Pause button is set to play. Well add to this function later. Media players usually provide a progress bar that indicates how much of the video has been played. For this, were going to take advantage of the HTML5 progress element, which is supported in the latest versions of all browsers and so its a perfect candidate to display this information. <progress id=progress-bar min=0 max=100 value=0>0% played</progress> To track the video as its playing and update the progress bar, we listen out for the timeupdate event, which is raised as the media is playing. Every time this event is raised, we can update our progress bar. So within initialiseMediaPlayer() function we need to wait and act on this event: mediaPlayer.addEventListener(timeupdate, updateProgressBar, false); Now when the timeupdate event is raised, the updateProgressBar() function will be called, which we define as follows: function updateProgressBar() { var progressBar = document.getElementById(progressbar); var percentage = Math.floor((100 / mediaPlayer.duration) * mediaPlayer.currentTime); progressBar.value = percentage; progressBar.innerHTML = percentage + % played; } Here, we get a handle to the progress bar, work out how much of the media has played using the duration and currentTime attributes, and set the progress bar value to that amount. We also update the elements HTML text for browsers that dont support the progress element. We must also reset the progress bar in resetPlayer(), which becomes: function resetPlayer() { progressBar.value = 0; mediaPlayer.currentTime = 0; changeButtonType(playPauseBtn, play); } Our player now successfully displays the progress of the media as it is played.
Ian Devlins book which hes plugging here, the cheeky pup is a more detailed intro to in-browser multimedia (http://bit. ly/1pCtTDh)
www.linuxformat.com
Mute buttons text: mediaPlayer.addEventListener(volumechange, function(e) { var btn = document.getElementById(mute-button); if (mediaPlayer.muted) changeButtonType(btn, unmute); else changeButtonType(btn, mute); }, false); Now our custom controls will remain in sync if a user chooses to use the browsers default control set rather than our lovely custom-built ones.
Our finished media player, complete with a playlist of video files available.
Implementing a playlist
To complete our media player, well add a playlist. To start, we need an actual list of items that we want to add to our playlist: <div id=media-play-list> <h2>Play list</h2> <ul id=play-list> <li> <span class=play-item onclick=loadVideo(parrots. webm, parrots.mp4);>Parrots</span> </li> <li> <span class=play-item onclick=loadVideo(paddlewheel.webm, paddle-wheel.mp4);>Paddle Steamer Wheel</span> </li> <li> <span class=play-item onclick=loadVideo(grass. webm, grass.mp4);>Grass</span> </li> </ul> </div> As with our initial video elements, we provide our video files in both MP4 and WebM formats. When a user clicks on an item, these are passed to a loadVideo() function, which of course we must define: function loadVideo() { for (var i = 0; i < arguments.length; i++) { var file = arguments[i].split(.); var ext = file[file.length - 1]; if (canPlayVideo(ext)) { resetMediaPlayer(); mediaPlayer.src = arguments[i]; mediaPlayer.load(); break; } } } First, we retrieve the functions variable arguments (wemay have only provided one video source file, or perhaps more than two). For each video file, we obtain the files extension. We need to check if the web browser can actually play this type of file, so we define another function,
canPlayVideo(), which will do just that: function canPlayVideo(ext) { var ableToPlay = mediaPlayer.canPlayType(video/ + ext); if (ableToPlay == ) return false; else return true; } This function simply calls the canPlayType() method of the media API. You can find more information about this in the supporting material for the tutorial on the LXFDVD. If an empty string is returned, we assume that the browser cannot play this file; otherwise, we assume that it can. If the canPlayVideo() function informs us that this particular video file can indeed be played, we need to reset the media player, which we do via the resetPlayer() function we added earlier. Finally, we need to load the new video file into the player by setting its src, then calling the load() method on the player itself. The new video is now ready to play and enjoy. You can see what it will look like with the demo weve made of the end result at http://bit.ly/LXFhtml5vid. This tutorial on HTML5s excellent built-in multimedia features has only covered the basics of what you can achieve using the media API. Theres so much more that you can do than just providing a custom control set for a HTML5 media player. While weve concentrated on video, the code weve used can be very easily adapted to support HTML5 audio instead of or as well as video. We could also have added extra controls, such as timed displays for the media, buttons for skipping to the beginning and the end of the media, or the ability to skip forward and back within the media via the progress bar. Theres plenty of great information out there so why not explore the online documentation for the API (www.w3.org/TR/html5) and see if you can add these features to the player yourself? LXF
www.tuxradar.com
JavaScript
he day-to-day workflow for most web developers has remained largely unchanged for a number of years as a manual process of managing assets, writing code and then testing that code in browsers. Tools have existed for checking code quality and simplifying certain tasks, but these have been run manually and, as such, tend to get forgotten. Programmers, however, are used to running a build process of some kind when they want to release code. As well as compiling their code for output, they typically check code quality against a predefined benchmark, run unit tests for each of their functions, and run other automated tasks as needed for their solution. Not everyone has that programming background and web development may be something youve just been learning in your spare time, but well show you how to simplify your workflow and improve code quality by applying this same principle to our work using Grunt (http://gruntjs.com), the JavaScript task runner. Grunt is for anyone developing for the web who wants to run tasks automatically on their code base, such as JavaScript file linting (checking for syntax errors and inefficient code), unit testing (See Grunt Unit Testing, p89) and minification (removing unnecessary characters from source code), Sass compilation to CSS, or integration tasks with other systems. If youre working in a team, you can store your Grunt project configuration with the rest of your code, allowing everyone to share the same set of tasks. In fact, Grunt is used by many companies and project teams globally, including Adobe, Twitter and jQuery. We use Grunt on almost every project we run at AKQA (www.akqa.com). We first need to install Grunts only dependency, Node.js (http://nodejs.org). Node is a platform for running
JavaScript applications on a server or command line, which, as you may have figured, means that Grunt is written entirely in JavaScript. Packages are installed for Node using the Node Package Manager (NPM) (https://npmjs.org) command-line tool. Grunt is one such package, as are its tasks. Before we start using Grunt itself, we need to install the Grunt Command Line Interface, which provides access to the Grunt command line tool globally across your system. Open up Terminal youll need to install the NPM first and then install the Grunt CLI by executing the following commands at the prompt: sudo apt-get install npm sudo npm install -g grunt-cli
Theres a wealth of resources to help you get started running tasks on the Grunt official site (http://gruntjs.com).
The Node.js application platform is built upon Googles V8 JavaScript engine (https://code.google.com/p/v8/).
www.linuxformat.com
JavaScript
will be Grunt in our case. Naming this file package.json and using properties defined in the npm package file specification (https://npmjs.org/doc/json.html) means that the associated project can be installed together with its dependencies in a similar way to other node packages. Create a new text file in the project root, name it package. json and initialise it with the following JSON-formatted properties. If youre using a source code control system, such as GitHub, ensure you commit this file as it will be required by all developers working on your project. { title: My project, name: my-project, version: 0.1.0 } Here we assign a human-friendly title for this Node package, a machine-friendly internal name and a version number according to the Semantic Versioning format (http://semver.org). The latter two properties are essential for any Node package so make sure that you dont leave them out. Whats missing now are the Node package dependencies required for our project. The most important of these to us is Grunt. The simplest way to define a dependency and download it at the same time is to execute the following on the command line in your project directory, replacing <package> with the name of the dependency. The --savedev option indicates that the package file should be updated as well as the dependency being installed locally. npm install <package> --save-dev We want to define Grunt as a dependency for our little project, so lets do that by executing the following from the command line. npm install grunt --save-dev Youll see all the files downloading within a new node_ modules folder created within your project folder. If you open the package file again, youll notice the following section has been added automatically to its JSON structure. devDependencies: { grunt: ~0.4.1 } This specifies a version number for Grunt in the project package file, so you can use different versions of Grunt for different projects. Now weve created our package file, if you have a new developer to introduce to your project, ask them
to download Node, Grunt CLI as well as the project folder onto their machine. Next, tell the new contributor to navigate to the project folder on the command line. Execute the following: npm install Node will then download all the dependencies automatically according to the specific version numbers listed in the package file, and placing them within a node_ modules folder. Simple as that! A word of advice: avoid committing this folder to source code control; let each developer download the files locally to their machine using npm and the package file.
NPM lists over 61,000 public modules for you to use with Node.
Installing JSHint
All Grunt tasks are Node packages, just like Grunt itself, so we need to specify each task as a dependency in the same way to make it available to our project. Lets assume we want to use JSHint (www.jshint.com) to perform static JavaScript code analysis on our project, checking for possible errors and enforcing a consistent set of coding conventions across all the JavaScript files in our project for all developers working on it. This is a task perfect for Grunt, and a task called grunt-contrib-jshint exists as a Node package for us to use that does just this. As a tip, we found a simple web search for Grunt JSHint will locate this task for you with better certainty than the package search within the npm registry itself.
www.tuxradar.com
JavaScript
Installing this task and adding it as a dependency to your package file is as simple as executing the following command: npm install grunt-contrib-jshint --save-dev The package files will download and were ready to move on to configure the task. With our package file created, lets move on to the create the second of the two files we need get tasks running with our project: the Grunt configuration file. Create a new file in the project root folder and name it GruntFile.js. This is the specific JavaScript file name that Grunt seeks out to discover which tasks to run and how. The configuration file follows the same basic structure for every project. Add the following wrapper function to your new file, which will contain all the Grunt task settings and configuration. module.exports = function(grunt) { // Configuration // Plugins // Tasks }; This functions assignment to the module.exports property denotes that this file is in the CommonJS module format (http://wiki.commonjs.org/wiki/Modules) adopted by Node. Dont worry too much about that. However, do observe the Grunt parameter passed to the function, which is an object representing the Grunt API (http://gruntjs.com/api/grunt) and contains methods and properties for working with Grunt throughout the three distinct sections of code in the rest of the file: the configuration, plug-ins and the tasks. API call to the tasks section of the file. Extra tasks can be combined with this at a later stage by adding their internal names to the array. grunt.registerTask(default, [jshint]); Jumping back into the file, the configuration section represents the individual settings required to tailor each task to perform the way we want in our project. Add the following code to the configuration section of the file, which configures the JSHint task using a call to the Grunt API. grunt.initConfig({ pkg: grunt.file.readJSON(package.json), jshint: { options: { strict: false }, all: [GruntFile.js, js/<%= pkg.name %>.js] } }); We begin the configuration by defining a property named pkg into which weve loaded the properties from the package file as a JavaScript object. This gives us access to the projects internal name and version number, together with its other properties without having to duplicate them across both files. We then add the configuration for the JSHint task within a property named after that tasks internal name. This configuration consists of a set of options, matching those of JSHint itself, allowing the specific rules for code compliance to be set in one place for use across any specified file or files in the whole project. Here we override JSHints strict option, enforcing all checked functions to adhere to ECMAScript 5s strict mode (http://mzl.la/1c0roHf). The remaining property, all, denotes the target of the task (the files to run JSHint against). Were choosing to check two files for compliance when the task runs: the configuration file itself and another file whose name is generated at runtime using the code delimited by the template strings <%= and %>. This code uses the internal project name from the package file, which we stored in the pkg property to generate the filename dynamically as my-project.js. Many Grunt tasks are built as multi-tasks , which means they can have multiple configurations, known as targets, for use in different circumstances. This adds a lot of power, and means that you could have a different set of rules for development on your local machine compared to those used before deployment to a live production server, for example.
Somebodys watching me
Once you become a seasoned Grunt user, and have managed to streamline your workflow right down, youll find yourself looking to save time elsewhere. The time it takes to save your code, open your command prompt to run Grunt, and then jump back to your code editor once its completed may start to feel like an eternity. Enter the grunt-contrib-watch plug-in (http://bit.ly/1pU2BZ8) and its watch task. This allows us to run other tasks whenever a specific file, or any one of a group of files, is added, saved, or deleted. For example, lets imagine you have a folder full of JavaScript files and you want to run JSHint on them as soon as a change is saved to any one of them, rather than jumping to the command prompt to run Grunt each time. Youinstall the plug-in as normal and configure the watch task to achieve your aim, as follows: grunt.initConfig({ watch: { files: [js/*.js], tasks: [jshint] } }); Now, by executing Grunt on the command prompt, it will run just the watch task, which will sit and listen for changes to any of the JavaScript files. As soon as a change is made, or a file added, it will trigger JSHint to run. Configuration can become more advanced, with different sets of tasks for different types of file. For example, a Smush.it (www.smushit.com) task could be called automatically whenever a file is changed within a folder containing image files. The Smush.it tool squeeze out any unnecessary data from each image file type for to ensure they are as web optimised as possible. Or Sass files could be compiled down to CSS when any file with a SCSS extension is altered. The watch task also features integration with LiveReload (http://livereload.com) to really streamline your development flow. Once the watch task observes a change and runs its assigned tasks, it can trigger LiveReload to refresh the open page associated with your code within your browser. All of this, and all you need do is press Save!
www.linuxformat.com
JavaScript
In our target, we list two files for JSHint to run against using the specified options. We could replace this list with an object containing that file list along with a new set of JSHint options to override the initial set. Depending on our intentions, we could then add a further target with a different set of options altogether, which may or may not act against the same files. The flexibility provided by automating tasks and using multiple targets is what makes Grunt so powerful.
in (https://github.com/heldr/grunt-smushit). Download the plug-ins and save them as project dependencies: npm install grunt-contrib-uglify --save-dev npm install grunt-smushit --save-dev Next, we register the tasks, whose internal names are uglify and smushit, respectively, with Grunt within the configuration file. grunt.loadNpmTasks(grunt-contrib-uglify); grunt.loadNpmTasks(grunt-smushit); Then we add the tasks to our custom task list. grunt.registerTask(default, [jshint, uglify , smushit]); Finally, we add the task settings inside the configuration object in the same file. The Uglify task configuration maps the JavaScript project file to a new output file named my-project. min.js, and the Smush.it configuration points to the folder containing the images to compress. uglify: { all: { files: { js/<%= pkg.name %>.min.js: js/<%= pkg.name %>.js } } }, smushit: { path: { src: img/ } } Et voil! If we run Grunt again then it will now enforce JavaScript code compliance, produce a minified output JavaScript file (which can be used instead of the original), while also compressing any unnecessary bytes out of the images, saving us some time and ensuring better code with smaller file sizes. Grunt feels like a grown-up tool for working with webbased projects. We hope you can see the reasons why this author and his team at AKQA use it daily to streamline workflow, save time and ensure they build the best code they can in order to produce the best experiences for users. We encourage you to do some digging and investigate more for yourself. This will help you to better understand how to automate your repetitive tasks and improve your code quality for yourself and your team with Grunt and its vast library of tasks. Best of luck! LXF
www.tuxradar.com
Got a question about open source? Whatever your level, email it to lxf.answers@futurenet.com for a solution.
I have bought myself a new laptop and it has no DVD drive. That is fine because I dont use my computer to watch DVDs. However, it does make installing distros difficult. Some distros provide a IMG file that I can copy to a USB stick with the dd command, but most only have ISO files. I have tried UNetbootin but only with partial success. Is there a reliable way of putting an ISO image onto a USB stick, and what about my existing discs? Terry Jarvis
The last two lines of this fdisk output show that ISO image can be booted from a USB stick.
The situation these days is much simpler when it comes to using CD/ DVD images on USB sticks. Many distros now create hybrid ISO images, and these work well when written to a DVD or a USB stick. There is an easy way to tell if an
Win!
Because were nice chaps as well as Linux gurus, and because our offices have very little storage space, were giving one lucky reader each issue the chance to win some of the books that get sent to us for review. Theyre mostly reference books that will give your shelves an air of computational gravitas. For a chance to win, email your question to lxf.answers@ futurenet.co.uk, or post it to www. linuxformat.com/forums to seek help from our lively community of readers.
See page 94 for our star question.
image file is a hybrid, by using fdisk. sudo fdisk -l lxfdvd182.iso this command includes this output Device Boot Start End Blocks Id System lxfdvd182.iso1 1 9102763 4551381+ ee GPT A hybrid image always contains a partition, which fdisk reports as the name of the image file with a number usually 1 added to it. If the image is not a hybrid, you will not see either of these lines. In that case, you can convert it with the isohybrid command, which is part of the Syslinux package. This is not normally installed by default, but is available in the software repositories of just about every distro, so install it in the usual way. Then you can convert any bootable ISO image that uses isolinux (most of them do) with this command isohybrid /path/to/image.iso If the image does not use the isolinux bootloader, it will use Grub2. Grub2 creates hybrid images by default so it will pass the fdisk test. If you want to convert an existing disc, you will first need to convert it to an ISO image and then perform the above steps (naturally, you will need a computer with a DVD drive for this). If the DVD drive is /dev/sr0, this command will create an ISO image from it: cat /dev/sr0 >somedistro.iso Writing an isolinux image to a disc removes some of the information necessary for hybrid booting, so you will always need to run isohybrid on it before writing it to a USB stick.
www.linuxformat.com
Answers
Terminals and superusers
We often give a solution as commands to type in a terminal. While it is usually possible to do the same with a distros graphical tools, the differences between these mean that such solutions are very specific. The terminal commands are more flexible and, most importantly, can be used with all distributions. System configuration commands often have to be run as the superuser, often called root. There are two main ways of doing this, depending on your distro. Many, especially Ubuntu and its derivatives, prefix the command with sudo, which asks for the user password and sets up root privileges for the duration of the command only. Other distros use su, which requires the root password and gives full root access until you type logout. If your distro uses su, run this once and then run any given commands without the preceding sudo.
Grub booting discs do not suffer this limitation, so you can copy directly from the DVD to a USB stick. This has been the case with LXF DVDs since issue number 178, so you can use dd if=/dev/sr0 of=/dev/sdb bs=4k to copy the disc to a USB stick at /dev/sdb. If you are working with an ISO image file, the syntax for dd is dd if=/path/to/image.iso of=/dev/sdb bs=4k This command will overwrite the output device without warning, so make sure you have this right. The bs option is necessary or it will take forever. Even with a bs setting the copy will take a while, especially when copying directly from a disc. If you install dcfldd (http://dcfldd. sourceforge.net) you can use that instead of dd; this uses the same syntax, but has some extra options. It is more intelligent in setting the block size, making bs unnecessary, even undesirable. If it knows the size of the input file which it will if you use an ISO file it will display its progress. This doesnt make the copy work any faster, but at least you will know what is happening.
I have a USB easycap video capture thingy plugged into my Raspberry Pi. After a bit of faffing Ive managed to get it to work. This command will show me the video live mplayer tv:// -tv driver=v4l2:norm=PAL_ BGHIN:width=640: height=480:outfmt=uyvy:device=/dev/ video0:input=1:fps=10 -vo sdl -hardframedrop Now, I would like to use it to record. However I cant work out how to do it. bobthebob1234 From the forums The normal way of recording anything you play with Mplayer is to use the -dumpstream option. This outputs to a file called stream.dump in the current directory, or any other file specified by the -dumpfile option. However, this doesnt always work with capture devices and webcams. You could try fiddling with the gazillion options in MEncoder, or alternatively, switch to the FFmpeg software that MEncoder often uses for recording and transcoding, . ffmpeg -f video4linux2 -i /dev/video0 out.mp4 The -f option tells FFmpeg the video format it can guess this from input files and output file extensions, but a stream from /dev/video0 needs this to be explicitly set. The input source is set with -i and the output goes to the file given at the end of the command line. Its important to get the ffmpeg command line right, as anything that affects video formats applies to whatever follows it. The -f here appears before -i, but if you put it after -i it would apply to the output file. This is useful if you want to output to a stream or a file with a non-standard extension ffmpeg -f video4linux2 -i /dev/video0 -f mp4 out.txt
Raspberry capture
will produce a valid MPEG-4 file. There are plenty of options to fiddle with in FFmpeg, but it does use sane defaults and the above command worked well with my webcam. Some options you may want to explore are: -b:v and -b:a to set the video and audio bitrates respectively, -t to set the duration of a recording, either as a number of seconds or as a HH:MM:SS time string, and -r to force a particular frame rate. To alter the resolution, use the -s option. How this works depends on where you use it. As part of the input specification, it sets the device to capture at that resolution (assuming the devices support it). If you place -s in the output portion of the command line, it scales whatever resolution the capture device sends to your specifications. This may take more CPU power than the Pi can handle in real time. Here is an example that uses all these options to record a 10 second HD clip at 10fps with a bitrate of 1000kbps. ffmpeg -f video4linux2 -s 1280x720 -i /dev/ video0 -t 10 -r 10 -b:v 1000k out.mp4
My old-ish desktop PC is showing a SMART: Secondary Master Hard Status Bad error on booting. The BIOS was updated a few months ago, but I am unaware if SMART was even configured previously to that. It has only one hard drive, configured as cable select. Googling the error message gives me everything from disable in BIOS and ignore to the world as we know it is doomed . The computer seems to be running pretty normally when I hit [F1] to continue the booting process. Im more frequently backing up essential data though. GregS From the forums
MD5
When you have downloaded ISO images of various distros, you will certainly have seen files with names such as cooldistro1.0.iso. md5 along with the ISO files, and may have wondered what exactly they are. An MD5 sum is a 128-bit cryptographic hash of a files contents. The same file always generates the same sum, but alter just one bit of the original and it will have a completely different sum. MD5 was designed for security. By checking the MD5 sum, you can ensure a file has not been tampered with. MD5 is now used just as much for checking against accidental corruption during transfer. When you download an ISO
image, make sure you get the MD5 file as well. It can be annoying if you waste time writing a file to a CD or trying to boot from it, only to find it has been corrupted. To prevent this happening, use this command md5sum cooldistro-1.0.iso This should result in the same string of hex digits as in the cooldistro1.0.iso.md5 file. Checking a bunch of 128-bit hex numbers against each other is probably not your idea of fun or ours, we hasten to add. This would be particularly tedious if you had downloaded a lot of files. Therefore, you can let the software check the numbers for you with this command md5sum --check cooldistro-1.0.iso.md5 This will let you know whether or not the
checksum matches. The MD5 file can contain checksums for several files. For example, the Gnome sources come in a lot of files, but the MD5 sums are in a single file. By convention, this file is often named MD5SUMS. So you can download all the files you need, then check them in one go with md5sum -c MD5SUMS Similarly, you can also generate an MD5SUMS file with ms5sum *.iso >MD5SUMS SHA1 and SHA256 files work in a similar way, but with a somewhat higher level of security. The principle is the same, as is the syntax, but use the sha1sum and sha256sum programs instead.
www.tuxradar.com
Answers
Wed say theres more than a touch of ish about it being old if it is still using IDE drives. To be on the safe side, replace the cable, and configure as either master or slave rather than relying on cable select, which can be a bit unreliable. This is unlikely to be the cause, but cables cost a lot less than new hard drives. SMART, or Self-Monitoring, Analysis and Reporting Technology to give it its full name, is self-diagnostic software built into modern hard drives. A SMART error doesnt necessarily mean your drive has failed, it means the
A short self-test in the Smartmontools package can help with booting issues.
SMART tests indicate a problem that may lead to failure. The advice to disable SMART in the BIOS is akin to fixing low oil pressure on your car by disconnecting the warning light youll feel better right up until the moment that disaster inevitably strikes! To get more information on the situation, install the Smartmontools package for your distro, open a terminal and run sudo smartctl -i /dev/sda to check that your drive is recognised. Then run the short self-test with sudo smartctl --test=short /dev/sda There are a number of tests you can run, with increasing detail, time taken and impact on system usage. The short test completes in a few minutes and can be run while the system is in use. The command returns immediately, you can see the progress and results with this command sudo smartctl -c /dev/sda Look for the lines reporting Self execution status as this shows how much of the test remains and, once the test is complete, the outcome. If you see an error here, start backing up immediately. You usually see the last five errors with sudo smartctl --log=error /dev/sda In addition to smartctl, the Smartmontools package contain smartd, which is a daemon that runs in the background and keeps an eye on your disks. It will send you an email when it finds a potential problem. You will need to edit /etc/smartd.conf to set it up; the file contains
comments explaining what to do. If you find all this command line activity a little intimidating, there is a graphical front end, called GSmartControl, but it does not give quite the same level of control.
When running Mint 16 MATE Live from issue 181 of Linux Format, I cant log in to the LXDE or Cinnamon desktops once Ive logged out. While the desktops can be selected, they dont work. They are shown at the login selection between the language and power buttons. Am I missing something? petlon From the forums The live Mint environment is set to auto-login to the MATE desktop. If you want to use a different one, you need to log out, select a different desktop from the login screen and then log in again. The last step is probably the one you are missing. After selecting your choice of desktop, you have to log in again, but the details to use are not obvious because auto-login was enabled in the first place. We did mention this on the DVD pages of the magazine, but with an unfortunate typographical error. Select your desktop of choice, and then type mint without the quotes into the login box. There is no password for the mint user, so after typing the name just hit [Enter] twice to load the desktop that you chose.
Q A
Misty MINT
Star Question
Winner!
This months winner is John Yates. Get in touch with us to claim your glittering prize!
I have been using the LTS version of Linux Mint 13, together with Thunderbird for my email requirements. I have had virtually no problems, but recently an Add Security Exception window keeps popping up in Thunderbird, as it tries to connect to http:// pop3.tesco.net. It does no apparent harm, but it is irritating because I keep having to delete it by either confirming or cancelling. It inevitably pops up again, but the time interval when it recurs shows no regular pattern. I have searched the internet and the forums for a solution but to no avail. I have tried the advice from the Mozilla site on adding exceptions, but it does not help. Have you come across this problem and, more importantly to me, can you offer a solution to hide it permanently? John Yates SSL certificates perform two important functions. Firstly, they enable all data to be encrypted before transfer, otherwise your emails (or banking
details if you use an online commerce site) could be read in transit. The second, equally important, function is to identify the site. A certificate is issued for a specific domain or list of domains, and signed by a trusted certificate authority (CA). This means that you know you are connecting to the site to which the certificate belongs. Any attempt to use the certificate with another site, or modify it to include that site, will throw up a security warning like you are seeing. The short answer to this question is that, as the message at the top of the window states, you should not be trying to add a security exception for such a site. In this case, the warning states that both the certificate belongs to a different site and that it is not signed, so you really should not be trusting it at all. Tesco uses Synacor to provide their services and it is Synacor who have the incorrect certificate. As you have found, even adding Synacors details to the exception does not work. In general, adding an exception to Thunderbird should work and can be used to accept the self-signed certificate on mail servers. The repeated failure that youre
experiencing is probably caused by Synacor running a cluster of servers on one incorrectly configured certificate, so this means that each time you hit a different server or IP address, you get the Add Security Exception message. Tesco refuses to accept any degree of responsibility for the problem, claiming it is a fault with Thunderbird. (Thunderbirds only fault here is checking that an SSL certificate is valid before trusting it.) You have a number of options, but none of them ideal. You can use Tescos webmail service, which is the only form of access they support. You can try setting Thunderbirds SSL settings for the account to None. This will do everything in plain text, but isnt really recommended. Alternatively, you could switch email providers to be perfectly honest, we think wed rather have Google reading all our messages than trust a provider that potentially lets anyone read them. None of these solutions are anywhere near ideal, but it appears that trying to get Tesco to get their provider to fix their certificate is an exercise in futility.
www.linuxformat.com
Answers
Help us to help you
We receive several questions each month that we are unable to answer, because they give insufficient detail about the problem. In order to give the best answers to your questions, we need to know as much as possible. If you get an error message, please tell us the exact message and precisely what you did to invoke it. If you have a hardware problem, let us know about the hardware. If Linux is already running, you can use the excellent Hardinfo program (http://hardinfo.berlios. de) that gives a full report on your hardware and system for us to scrutinise. The report is an HTML file which you can attach to your mail. Alternatively, the output from lshw (http://ezix.org/project/wiki/HardwareLiSter) is just as useful. One or both of these should be in your distributions repositories. If you are unwilling, or unable, to install these, run the following commands in a root terminal and attach the system.txt file to your email. This will still be a great help in diagnosing your problem.
Firefox OS comes with a simulator, which you run from the Firefox browser.
How do I get Firefox OS emulation and run it under any Linux (like for Android OS emulation)? Mohee Jarada The Firefox OS emulator (or simulator as they prefer to call it) is run within Firefox as an extension. The exact procedure for doing this depends on the version of Firefox you use and the version of
Q A
Firefox OS emulation
Firefox OS you are emulating. With Firefox 26 and newer, you use the App Manager, found in the Tools > Web Developer menu. Click on the Start Simulator button at the bottom of the window and it will tell you that the simulator is not installed, with a button to install it. Click on this and it will take you to a webpage with an install button. Press this and choose the Firefox OS 1.2 simulator . There is also an option to install the ADB Helper add-on. This is
used to control a real Firefox OS phone, connected by USB cable, from within Firefox. When it is installed, return to the App Manager tab, where you will find a Start Firefox OS button, which does what it says on the tin. For earlier versions of Firefox, go to Add-ons to search for and install Firefox OS 1.1 Simulator. However, you will have to switch to the App Manager method when you upgrade to a newer version, so it may be advisable to upgrade to at least Firefox 26 before you do anything else. LXF
Remote desktops
Is it possible to connect to my home computer from work and run a graphical program? Yes it is. There are two basic ways of doing this. What are the different options? The first is X forwarding, which is best when both computers run Linux. This works over an SSH connection. You run a program in the remote shell and it is displayed on your local desktop. For example ssh -X me@my.home.computer kmail The -X tells SSH to use X forwarding. Is that all I need to do to run the program on my local computer? It is actually running on the remote one, but displaying its window on the local system. You may need to edit /etc/ssh/sshd_config to set X11Forwarding to yes . What if I want to display the whole desktop? X forwarding can open a new desktop session that displays on your local computer. But if I left a program running and want to get at its window, this wont let me, will it? No, you need a remote desktop program for that, as you would if your local computer is running Windows. The most common option here is VNC (Virtual Network Computer). This is a server/client system. In this case, you have a VNC server running on your remote computer, and are running the client on your local system. Go to www.realvnc.com to find packages for all popular operating systems. These will allow you to access your Linux desktop from a Windows or Mac system, and vice versa.
That sounds more like it. What software do I need? If you run KDE, you already have all you need as KDE has built in RFB (Remote Frame Buffer) software. RFB is the protocol used by VNC and compatible systems. With other desktops, install the VNC or TightVNC package from your distros repositories. Whats the difference between VNC and TightVNC? VNC is the original, whereas TightVNC (www.tightvnc.com) is a version that was developed to make better use of lower bandwidth connections, by using increased compression. Is bandwidth important? Can I use this over a modem link?
A modem link is not suitable. A broadband connection is feasible, but even with fast downstream ADSL speeds, upstream is unlikely to be more than 384kbps, so TightVNC is the better option. Any other alternatives? NX (www.nomachine.com) is a proprietary system that manages good speed improvements. It is not open source and does not run on all Linux supported hardware.
www.tuxradar.com
On the disc
Distros, apps, games, podcasts, miscellany and more
The best of the internet, crammed into a massive 4GB of quality DVD.
Enhance
ome people are really into genealogy but I dont care whether my great great grandfather was a postman or pirate. However, I find the genealogy of Linux distros more appealing. Three of the early distros are still going: Debian, Slackware and Red Hat. While none of those are on this months DVD, each of the distros we do have is a descendant of one of those. Ubuntu is the closest relation, being still based on Debian. They still use software from Debian packages and feed back to Debian. SUSE, or one of the spelling varieties it has gone through, was originally a repackaging of Slackware. They did make the break at some point when they started using their own RPM packages. They are no longer related but its fair to say that without Slackware there would be no OpenSUSE now. Mageia has gone through the most changes, being a fork of the Mandriva project, thats still going. Mandriva itself was the result of the merging of Mandrake and the Brazilian Connectiva distro. Mandrake started life as a fork of Red Hat using KDE, at a time when KDEs licencing was unacceptable to Red Hat. So there we have it, children, grandchildren and distant cousins, all on the DVD.
Mageia 4
Linux distribution
While it may have a name that sends my spell checker into apoplexy, Mageia is a rather good distribution with a fine pedigree. I, like many other long-time Linux users, started with its grandfather, Mandrake Linux. Like its forebears, Mageia is a KDE based distro, other desktops are available for it but
KDE is its true calling. However, unlike some other KDE versions of distros, Mageia is not content with the default appearance. The distro has taken the trouble to create a highly pleasing KDE desktop, which you can try for yourselves simply by booting this months cover disc.
Linux distribution
OpenSUSE 13.1
On the face of it, Mageia and OpenSUSE have many similarities. They have both been around for many years with several changes of owner and name, both choose KDE as their preferred desktop
Important
Defective discs
NoTiCE!
In the unlikely event of your Linux Format coverdisc being in any way defective, please visit our support site at www.linuxformat.com/dvdsupport for further assistance. If you would prefer to talk to a member of our reader support team, email us at support@futurenet.com or telephone +44 (0) 1225 822743.
and both have a central administration centre. However, they are very different to use which can only be a good thing, it shows the choices that can be made. As with other distros on the DVD this month, this is a bootable live distro. You can run it from the DVD without it touching your hard drive, the perfect way to try a new Linux distro, or your first. If you are new to Linux, Ubuntu, the third distro weve supplied, has a long track record of working well for new users. The latest version 13.10 has been out for a few months now, and has received several updates, so were giving you a remastered version with all those updates included.
www.linuxformat.com
What is Linux? How do I install it? Is there an equivalent of MS Ofce? Whats this command line all about? Are you reading this on a tablet? How do I install software?
Download your DVD from www.linuxformat.com
3D printing
Try the software side of 3D printing with Blender.
Tutorial code
Grab all your source code for this months tutorials.
And more!
System tools
Essentials
Checkinstall Install tarballs with your package manager. GNU Core Utils The basic utilities that should exist on every operating system. Hardinfo A system benchmarking tool. Kernel The source code to the latest kernel release. Memtest86+ Check your RAM for faults or errors. Plop A simple boot manager to start operating systems. RaWrite Create bootable floppy disks inWindows. SBM An OS-independent boot manager with an easy-to-use interface. WvDial Connect to the internet with a dial-up modem.
Ack
Ack is source code search tool written in Perl 5. Its like grep, and optimised for programmers.
Haveged
An easy-to-use, unpredictable random number generator, using the Haveged algorithm.
Tk-yupana
A simple program that emulates the ancient Incan abacus.
Codemisc
Functional Shell Development Made fun.
IPCop
A Linux firewall distribution geared towards home and SOHO users.
VMS-empire
A simulation of a full-scale war between two emperors.
Di
Get more detail disk information than the df command in whatever format you prefer.
Xnee
Record, replay and distribute user actions under X11.
KeePass
An open source password manager for locking all your passwords in one database.
Reading matter
Bookshelf
The Cathedral and the Bazaar Eric S Raymonds classic text explaining the advantages of open development. Intro to Linux A beginners guide. Linux Kernel in a Nutshell An introduction to the kernel written by master-hacker Greg Kroah-Hartman. Debian Administrators Handbook An essential guide for sysadmins. Linux Dictionary The A-Z of everything to do with Linux. Dive Into Python A masterclass in this popular language. Bourne Shell Scripting Guide Get started with shell scripting. Advance Bash Scripting Guide With more for power users. System Administrators Guide The basics of running your system.
Fuego
A Go player and a collection of libraries for developing software for the game.
LibreOffice
A comprehensive, professionalquality productivity suite.
Podcasts
Season 6 Episode 1
TuxRadar
Tune in to the second instalment from the LXF team, whove been locked in a cupboard by maniac piano player who wont. Stop. Playing! ARRGGGHH! News Red Hat joins forces with CentOS, the brilliance of Ye Olde SteamOS, the less brilliant Steam Machines so far, why Steam VR is becoming scarily good, hacked fridges sending your spam and End of Life dates for Ubuntu releases. Discoveries of the week Distros for the visually impaired, NHS data sharing (which has been delayed) isit good or bad thing? BlackBlaze hard drive study, which has some surprising results.
www.tuxradar.com
Future Publishing Ltd, 30 Monmouth Street, Bath BA1 2BW Tel 01225 442244 Email linuxformat@futurenet.com 21,784 January December 2012
A member of the Audited Bureau of Circulations.
EDITORIAL
Editor Neil Mohr neil.mohr@futurenet.com Deputy editor Matthew Hanson matthew.hanson@futurenet.com Operations editor Chris Thornett chris.thornett@futurenet.com Art editor Efrain Hernandez-Mendoza efrain.hernandez-mendoza@futurenet.com Editorial contributors Neil Bothwick, Chris Brown, Kent Elchuk, Carl Fletcher, David Hayward, John Lane, Les Pounder, Mayank Sharma, Shashank Sharma, Richard Smedley, Gary Walker, Henry Winchester Art assistance Nick Aspell Illustrations Shane Collinge, iStock Photo
AdVertiSinG SaleS
Advertising sales director Nick Weatherall 020 7042 4155 nick.weatherall@futurenet.com Account sales manager Ricardo Sidoli 020 7042 4124 ricardo.sidoli@futurenet.co.uk
LXF 18 4 wi
Campaign manager Sam Book Head of Computing Group Ian Robson UK chief operating officer Mark Wood
ll be on Thursdasale y 2
4 April 2014
Production co-ordinator Ian Wardle Production manager Mark Constance Trade marketing manager Colin Hornby Distributed by Seymour Distribution Ltd, 2 East Poultry Avenue, London EC1A 9PT Tel 020 7429 4000 Overseas distribution by Future Publishing Ltd Tel +44 (0)1225 442244
LiCenSinG
Licensing & syndication manager Regina Erak regina.erak@futurenet.co.uk Tel +44 (0)1225 732359
CirCUlation
UK readers order line 0844 848 2852 General UK enquiries 0844 848 1602 Overseas readers +44 (0)1604 251045 Online enquiries www.myfavouritemagazines.co.uk Email linuxformatdvd1@subscription.co.uk
Make Linux work the way you want it to. We reveal how to set up, conguring and tweak the best desktop options to be perfect for your individual needs.
Additional manaGement
Editorial director Jim Douglas Creative director Bob Abbott Group art editor Steve Gotobed
LINUX is a trademark of Linus Torvalds, GNU/Linux is abbreviated to Linux throughout for brevity. All other trademarks are the property of their respective owners. Where applicable code printed in this magazine is licensed under the GNU GPL v2 or later. See www.gnu.org/copyleft/gpl.html. Copyright No part of this publication may be reproduced without written permission from our publisher. We assume all letters sent by email, fax or post are for publication unless otherwise stated, and reserve the right to edit contributions. All contributions to Linux Format are submitted and accepted on the basis of nonexclusive worldwide licence to publish or license others to do so unless otherwise agreed in advance in writing. Linux Format recognises all copyrights in this issue. Where possible, we have acknowledged the copyright holder. Contact us if we havent credited your copyright and we will always correct any oversight. We cannot be held responsible for mistakes or misprints. All DVD demos and reader submissions are supplied to us on the assumption they can be incorporated into a future covermounted DVD, unless stated to the contrary. Disclaimer All tips in this magazine are used at your own risk. We accept no liability for any loss of data or damage to your computer, peripherals or software through the use of any tips or advice. Printed in the UK by William Gibbons. Future Publishing Ltd 2014
How Free and Open Source Software is helping children to learn, no matter what their background is.
Keep an eye on how your system is performing, and catch any problems before they become catastrophic.
Future produces high-quality multimedia products which reach our audiences online, on mobile and in print. Future attracts over 50 million consumers to its brands every month across five core sectors: Technology, Entertainment, Music, Creative and Sports & Auto. We export and license our publications to 89 countries around the world. Future plc is a public company quoted on the London Stock Exchange (symbol: FUTR). www.futureplc.com Chief executive Mark Wood Non-executive chairman Peter Allen Chief financial officer Graham Harding Tel +44 (0)207 042 4000 (London) Tel +44 (0)1225 442 244 (Bath)
Theres a new init daemon in town that will make Linux boot up faster than ever before. We check it out.
We are committed to only using magazine paper which is derived from well-managed, certified forestry and chlorine-free manufacture. Future Publishing and its paper suppliers have been independently certified in accordance with the rules of the FSC (Forest Stewardship Council).
www.linuxformat.com
Concepts
Python
Arduino
PHP
Android
Coding Academy
99p /99
Only
each