Wednesday, 9 December 2015

The Daily Life of a Game Programmer

This is the concluding part of my 1988 interview with Infocom’s Dave Lebling (See also Part 1 and Part 2).

I read a little while ago that you get problems from Christian fundamentalists who object to your stories?

It’s really a pretty minor problem. There is a certain antipathy on the part of a certain class of religious fundamentalists to any reference to magic. Most of our fantasy games have magic in them. I think the thing that caused the greatest number of complaints was when we ran an ad’ for Spellbreaker which showed a picture of a wizard. We ran it in Boy’s Life magazine which is the magazine of the Boy Scouts. Boy Scouting in America is very strong amongst the same class of people who are likely to be religious fundamentalists. So parents saw this ad’ and got annoyed. I must say we got more letters about that than we ever got about sex. We did get a few complaints about The Leather Goddesses of Phobos, but not as many as we’d feared. I think Leather Goddesses was sufficiently obviously packaged that most people who bought it were not surprised. It didn’t sneak up on them.

You got some other complaints too, didn’t you - about your newsletter, The New Zork Times. I gather you were obliged to change its name.

It depends on what you mean by ‘obliged’. We periodically got letters from lawyers of The New York Times complaining about the title of our newsletter.

And these complaints were in all seriousness?

Oh, they were quite serious. But we ignored them. Finally, about the same time we were merging with Activision, and their lawyers and our lawyers were poring over everything that might be a potential drawback or holdup to the merger, we got a particularly nasty complaint. Instead of saying ‘We object to your use of our trademark’, they said ‘Stop using our trademark or we’ll see you in court’. ' 

I find it almost incomprehensible that they could really be serious. What were they afraid of — that people were mistakenly going out to buy New Zork Times instead of the New York Times?

I don’t know. My understanding from talking to the legal people at Activision is that the real problem is that if you own a trade mark you are obliged to defend that trademark against infringement, otherwise your trademark can become a generic term as happened with Kleenex.

Maybe the newspaper’s lawyers were just in a bad mood because they hadn’t managed to solve the latest Infocom game?

Hmm, now that may be a possibility...

This interview originally appeared in Computer Shopper magazine #7 (September 1988).

How about you? Do you get around to playing the games written by all the other Infocom programmers?

Not as much as I’d like. But I try to play as many as I can.

Does the experience of writing so many games help you solve other people’s games?

No, it really doesn’t actually. Because different authors have a different style. The fact that I’ve written so many games doesn’t help when I play Steve Meretzky’s games because his style is so different. And Brian Moriarty’s is even more different. On the other hand, we play them on a version of our interpreter that allows you to escape into debugging, so I can always cheat.

Have you got a favourite game?

My favourite game of the ones I have written is Enchanter. Then after that I guess Spellbreaker and The Lurking Horror. Though maybe Zork II. Zork II was really our first game that really had anything remotely resembling a story in it. It’s hard to say. Of everyone else’s games I’ve always had a fondness for Planetfall. I like all my games but I always see the flaws in them.

How similar is the Zork Trilogy to the original Zork?

It’s quite similar in that all the puzzles in the original Zork are also in the Trilogy with the exception of two. What’s different is that the original Zork had one fairly compact, connected geography. In the Trilogy what happened was that I went in and chopped out the middle of that geography and it became Zork I. Then I made a new middle and added some of the periphery of the mainframe game to make Zork II. And then the remaining puzzles became Zork III. All the puzzles are there and the vast majority of the rooms too, but they’ve all been rearranged.

I have to tell you that one of the things that had me puzzled about Zork II was all the references to baseball which I didn’t understand at all.

Yes, since we’ve gotten more contacts from fans beyond the United States — Germany, Britain, Australia and so forth — it becomes more and more clear that references to things like baseball are not universally appreciated. It didn’t even occur to us that the games would have been distributed as widely as they are.

Which do you think is the most difficult Infocom game?

Spellbreaker. It was designed and written as a gift to rabid fans. It’s the third game in a trilogy and it’s intentionally more difficult because I was getting sick and tired of people writing to me saying the games were too easy. I thought, right, you’ve asked for it. Some of the easiest puzzles for some people can be insoluble and vice versa.

Do you get feedback from other people giving you alternative solutions to puzzles you never thought of?

Sometimes. Occasionally, people just alert us to things we hadn’t thought about. Like, it used to be that the inflatable boat in Zork I could be used to carry every object in the game once you’d deflated it. But the classic case of getting a new solution to a puzzle was when we were writing mainframe Zork. We had just implemented the clockwork canary inside the jewel-encrusted egg. Someone was playing the game and said ‘I’m really having trouble with this. And it’s frustrating because I know exactly what you’re meant to do once you get the canary.’ We said ‘Oh really?’ — because we had no idea what you were meant to do. He said, ‘You’re supposed to take it up to the forest and wind it to attract the bird.’ We said ‘Oh, of course. yes, that’s right... er, but be sure you don’t play any more of the game until tomorrow!’

Do you ever go back and alter games once they’ve been released?

When we make new disk masters we often release versions with bugs fixed. The only case I can think of where we’ve actually altered a puzzle was when we changed the Loud Room in Zork I. It was a more difficult puzzle on the mainframe Zork but it was also more illogical. We just got so annoyed with it. By today’s standards that puzzle was terrible. But when we wrote it we thought it was pretty good stuff.

Do you see a day when you’ll say ‘That’s it. I’m never doing another game in my life?’

I always say that about two weeks before my game ships. I suspect at some point I might conceivably run out of ideas.

Is it still fun or is it just a job?

Oh it’s still a lot of fun. If it wasn’t fun it wouldn’t be worth doing.



Infocom games can be downloaded, free, from several locations on the Internet such as http://www.infocom-if.org and http://www.abandonia.com – there are even versions for iOS: https://itunes.apple.com/gb/app/lost-treasures-of-infocom/id577626745 In some cases, you may need to add a DOS emulator such as DOSBox http://www.dosbox.com to run these games.

Tuesday, 8 December 2015

Back To The Future (of Computer Games)

In my 1988 interview Infocom’s Dave Lebling tries to guess where computer games are headed. But was he right…?

Once upon a time Infocom was just about the most famous games company on the planet. They made ‘interactive fiction’ - adventure games in which the game player moved around a huge world of linked locations (‘rooms’) breaking into buildings, taking treasures and killing monsters. In September 1988 I interviewed the co-founder of Infocom, Dave Lebling, for ‘Computer Shopper’ magazine. We talked about the history and the future of computer games. We talked about the massive resources needed to run good games (a huge 256K of memory), the languages used to program games (a variant of LISP) and pondered that most difficult of questions: would computer games one day use lots of graphics or would players be happy to carry on using text-based interaction to communicate with games with English-language commands?

Well, we know the answer to that! These days the sophisticated, fast-animation of the modern generation of games has largely driven the development of ever more powerful graphics hardware. Whereas Dave Lebling was worried about the number of kilobytes required by a game, these days we discuss game requirements in gigabytes! It’s a different world. And yet the foundation for modern games was laid by people such as Lebling. Even modern games often use the same sort of plots (exploring, gathering treasures, killing enemies) as the old Infocom text adventures. But, in spite of their slick graphics, not all of them have half the wit and imagination of those early games such as Zork.

If you are interested in games, game programming or simply the massive development in the processing power of desktop computers over the past few decades, I hope you enjoy this historic interview with one of computer gaming’s great innovators.

See also the introduction to this interview:  From Zork To Assassin’s Creed – three decades of computer gaming.


Just a few of the many games created by Infocom





When you first wrote the mainframe version of Zork did it occur to you that you might be able to make some money out of it?

Oh no. We had written Zork kind of as a lark back in 1976/7. There was quite a history of that sort of thing at MIT — lots of people did that kind of ‘midnight programming projects’ — you know, the kind of thing you just didn’t do during normal working hours. There were a lot of what would now be called video games and a lot of trivia games — lots of things to keep you entertained. And Zork was just one more...

So you are saying that you and Marc Blank just managed to jot it off in your free time when you were both still students?

No, not exactly. There were four of us involved. Some of us were students. Some of us were not. I was a staff member, a researcher. Marc Blank was a student, Tim Anderson was a graduate student and Bruce Daniels was a graduate student — they were the other three authors of the mainframe Zork.

What language was Zork written in originally?

It was written in a language called Muddle (MDL - an ‘AI’ language developed at MIT). It’s like LISP - it’s a recursive structure-oriented, user extensible language. People who know LISP can look at Muddle and sort of figure out what they’re doing.

If it’s so similar to LISP, why didn’t you just use LISP?

Because Muddle was the language that our research group used. When we moved to Infocom we wrote another language especially for implementing Zork - that was ZIL — very much like Muddle itself but adapted specially to deal with adventure games.

What’s the difference between ZIL and a more standard version of LISP such as Common LISP?

The most obvious difference is that instead of having parentheses it has angle brackets. That’s the first thing that would strike a LISP user as being strange. Other than that, ZIL has in it operations for doing the kind of things that are useful in Adventure games - moving one object from one place to another and very quickly checking to see if an object has a particular property. But there’s nothing in it that couldn’t easily be implemented in a good LISP system.

How has ZIL developed over the years? You’ve had several different versions as I understand it.

Oh, absolutely. In the first version the actual game size was 128K and there was a maximum of 256 objects - and that includes rooms as well as treasures and so on. In ZIL the rooms and the objects are represented in the same way. But at present the maximum game size is 256K and there is, in effect no limit to the number of rooms and objects. There are other changes too. Up till now our development system has been run on a DEC System 20 but now we’re moving it onto a Mac II. The Dec 20, although we love it dearly and wish it would stay around forever, is unfortunately obsolete. It’s a huge, expensive mainframe computer. It costs a lot to maintain. It even has to have its own air conditioner. It’s really quite a drain on resources and we think the Mac should be a lot more manageable.

When the games are released, what form are they in? You seem to have some kind of basic program which reads in the data. Is it interpreted in some way when we play them?

Yes, it is an interpreter. ZIL itself is a virtual machine. That means it is a computer program which simulates the behaviour of a particular non-existent computer. It’s a bit like the kind of thing IBM do. They are famous for simulating earlier models of their computers. And the way you do that is to write a piece of software that acts like a CPU. Ours isn’t emulating an existing machine, it’s simulating a machine that doesn’t exist in hardware. But theoretically it could. Another similar idea is languages like Pascal which are often compiled into what’s called a p-code. We call our thing the zee-system. It was done in this way to make it easy to convert from one computer to another. Now as we move into the uncharted waters of sound and colour, it’s becoming more and more difficult to maintain that portability.

Sound and colour! I thought they were an anathema to you. You’re not saying that Infocom is finally going to break with tradition and go into the sordid world of graphic adventures, are you?

Yes. We’re thinking of that.

After all those years when you’ve said you’d never have anything to do with graphics! What’s brought about this change of mind?

When people ask me about graphics, I have never said we will never put graphics in our games. What I have said is that we will never put graphics in our games until a) they enhance the game and b) they do not detract from the amount of game available to the player. I mean, graphics eat up disk space and memory. If you put in 20 pictures, it would be unconscionable to reduce the game to half its size.

So are you thinking of graphics you can look at every once in a while rather than fully animated graphics?

That is close to what we are thinking of. 

In other words, just like Magnetic Scrolls adventures.

I haven’t the slightest idea what you’re talking about! Oh well, OK, to be honest, we are very closely affiliated with Magnetic Scrolls, we like them a lot and I think they like us. I’ve heard that they have even put in quite a few references to us in their games.

Is this an admission that you consider Magnetic Scrolls’ games like The Pawn and Guild Of Thieves to be your main competition?

I would not go further than to say that we consider ourselves to be friendly rivals.

Magnetic Scrolls was a British company that broke with convention by adding graphics (static  images) to their adventure games and also improved the ‘parser’ to interpret more complex English-language commands.


One of the things Magnetic Scrolls pride themselves on is their parser. The ‘in thing’ seems to be to allow users to type in an ever more varied range of grammatical constructions. But I wonder how many people ever get around to exploring the possible things you can say to an Infocom or a Magnetic Scrolls game? Most people end up just saying ‘Read scroll’ or ‘Kill troll’, don ’t they? So is it really worth developing parsers beyond a certain point?

I think it is. It’s a controversial opinion, but I think the advantage of a better parser is that the player can say more things to the game and be understood. The disadvantage of a better parser is that the player can say many more things that will be superficially understood but not actually understood. You can’t just blithely go off and say: Oh, sure, I’m going to have a parser with ellipses and questions and statements and so forth and so on. You have to do it fairly carefully. Magnetic Scrolls have done a fairly good job of extending the basic three-word parser and adding on a few more bells and whistles.

And you are going to respond to that challenge, I presume.

We’re certainly hoping to carry on improving our parser. Over the last few months we rewrote the parser from scratch. The games that we’ll be producing later this year will have that new parser. It will have all the capabilities of the old one plus a few new ones.

Good parsers obviously need good programmers. But I gather that some of the people who write Infocom adventures are not programmers at all. Does that mean that just anybody can be given your system and a manual, put in front of a computer and start writing an adventure?

Not exactly. I think a better way of saying it is that some of our writers are not professional programmers. You could not take an author off the street and just let them get on with it. You can take someone who’s technically sophisticated, like, say, Douglas Adams, with Hitchhikers. He can comprehend what’s going on, though in actuality Steve Meretzky did all the programming. Many of our writers have not previously been professional programmers so it’s not an inherently difficult system to learn. Part of the reason for moving onto the Mac is to make it more usable to non-programmers.

Where do you find new games writers?

All kinds of places. Usually they approach us. The vast majority of writers have come from promotions in-house - people we knew already, who we’ve tried out on small projects. That’s basically how Steve Meretzky came in — he was a tester. Brian Moriarty was in our Systems Group - the expert on 6502 chips. Amy Briggs was another one who came in from testing. And occasionally we’ve hired people from outside.

What kind of organisation is there in Infocom? You’ve talked about testers and so on. Is there a kind of elite of games writers and millions of people just testing for bugs?

There’s what’s called the Software Development Group. That’s divided into three parts. One part is familiarly known as the Imps, that's the games writers, the second is the Testers. Then the third group is called the Systems Group. These are the people who maintain ZIL and various computers. I have to say that the Imps are a sort of elite.

What's an average day for an Infocom programmer? Do you just come in as though it was an ordinary job and get on with your work? Or are there times when your mind is just a total blank and you can’t produce anything?

What it really depends on is what stage you are in writing the games. If you are still in the design process you may well come in and scratch your head a lot. Later, once the game is largely complete, you spend a lot of time reading the scripts of testers playing the games, seeing what they tried and modifying the game appropriately. And just fixing bugs.

What exactly do the testers do? Do they just spot bugs or do they suggest new puzzles?

They do everything from just beating on the program to see if they can break it to making, in effect, literary criticism. Everything from nit-picking about whether a particular word should have a hyphen to a deep analysis of what is going on in a program as regards the story.

Is it a big problem now finding ever-new ideas for games? There are so many Infocom games and you’ve covered so much ground...

Well, I don’t have any difficulty coming up with ideas. If you view the spectrum of what we put out - we have sci-fi, fantasy, mystery and romance - when you do a new thing you aim it at one of those points. You have an audience in mind. You want to satisfy those fans. The avid fans are always calling for more difficult puzzles. They complain if it only took two weeks to finish such and such a game. On the other hand, you don’t want to make them inaccessible to people who haven’t got so much experience at playing games.

The Lurking Horror was one of the games written by Lebling.

When you're stuck for ideas where do you go? Do you go to a library to ransack books, do you play other games or do you just ask one another?

All of those things. For his current game, Steve Meretzky has been collecting books of logic puzzles. In general we all get ideas from books. I have a very large library. Lurking Horror was quite obviously the result of reading too much H.P Lovecraft.

These days you are putting on-screen hints for people who do get stuck. Will these appear in all future releases?

At the moment, that’s our plan. We’ve had mixed reaction to it. Some people love the idea, some people hate it. We may even go so far as to put on-line maps later. That’s still under consideration. We tried out the idea with Beyond Zork. But Beyond Zork shows you a fairly small section of the total map. It would be nice if you could see a bit more of it.

[To be continued...]

Saturday, 5 December 2015

From Zork To Assassin’s Creed – three decades of computer gaming

In 1988 I spoke to one of the great figures in computer gaming about “the future of games”. Dave Lebling was a founder of the Infocom games company, which created games ranging from the famous Zork trilogy to an adaptation of Douglas Adams's The Hitchhiker’s Guide To The Galaxy. Of course, neither of us back then had any real idea of how the games industry would develop over the next 25 or 30 years. Back then I played Zork – a text-only game which ran nicely on my PC with just 512K of memory. Today I am playing the photo-realistic, fast-action Assassin’s Creed Syndicate on a PC whose graphics card alone boasts 6 Gigabytes of memory in addition to the 16 Gigabytes of the PC’s system memory. In 1988, mere megabytes of memory seemed like a futuristic dream. The idea that anyone would ever have gigabytes on their graphics card would have seemed ridiculous.


So what future for gaming did Lebling envisage back then? As you’ll discover when I publish the interview in full, Lebling had only recently begun to take seriously the idea of games with static graphics – and he wasn’t at all sure that animated graphics were the way forward: “We will never put graphics in our games until a) they enhance the game and b) they do not detract from the amount of game available to the player,” he told me,  “I mean, graphics eat up disk space and memory. If you put in 20 pictures, it would be unconscionable to reduce the game to half its size.”

Here is the introduction to my 1988 interview with Lebling. The interview itself will follow shortly.



The Man Behind Zork

Dave Lebling, co-founder of Infocom, the ‘interactive fiction’ specialists, speaks to Huw Collingbourne of Zork and the futures of games


FOR ME one of the best things about Infocom games is that most of them are written primarily for adults. As such they are complicated, difficult and often surprisingly serious in tone (the people at Infocom like to call them ‘interactive fiction’ rather than mere ‘adventure games’).

Anybody who has yet to experience one of them should be warned - unlike some games you may have played, these are not to be treated lightly. They are dangerously addictive and their effects can be highly unsettling. I’ve seen intelligent and level-headed people transformed into gibbering idiots after sleepless nights wandering through the Great Underground Empire or the outer reaches of the Galaxy. Confirmed addicts may experience weeks of gloom and depression because they can’t get over the rainbow or catch a babel fish to stuff into their ears.

Oddly enough, although it is now one of the most successful entertainment software companies in the world, it was only by chance that Infocom did not become a business software company instead. Indeed, it did once launch a database called Cornerstone but, for some reason, people seemed to find this a lot less entertaining than their other products such as The Hitchhiker’s Guide To The Galaxy.

Set up in 1979 by a team of eight programmers, the company initially had no clear idea of the kind of product it should develop. It just happened that some of the Infocom programmers had previously written a text adventure game which was circulating on mainframes in the universities and was already becoming something of a cult. And they wondered whether it was possible actually to sell such a game.

In the event, two programmers, Dave Lebling and Marc Blank, decided to have a go at converting that mainframe adventure to run on the less powerful personal computers which were then starting to be manufactured. That game was Zork. And when I spoke to Dave Lebling recently, I started by asking him about the genesis of that immensely successful adventure.



A short history of text adventures


Interview to follow…

Wednesday, 28 October 2015

PowerDirector 14 - review



This new edition of the popular video editor includes slow motion editing and screen recording

PowerDirector is a powerful, inexpensive video production suite for Windows which, in this new edition, provides a formidable set of recording and editing tools for creating videos from both camera and screen recordings. Whether you are a professional video-maker or just a hobbyist who wants to add some pizzazz to home videos, PowerDirector is well worth serious consideration. There are various editions ranging from Deluxe at a modest $69.99 (£59.99), right up to the feature-packed PowertDirector Suite, which also includes dedicated colour grading, plus image and audio editing packages at a cost of $299.99 (£249.99).

PowerDirector 14
PowerDirector is a very capable video editing package that provides many professional-grade features without the professional price-tag. While the entry-level ‘Deluxe’ product is ideal for editing your home videos, it could also handle commercial-grade videos such as company promotions, online eLearning courses or YouTube movies. Serious video producers may want to consider one of the higher-level editions such as ‘Ultra’ or ‘Ultimate’ which provide additional features such as automated audio-sync to attach an audio track to separately recorded video and support for high frame-rates (120/240 fps) for slow motion editing. For an overview  of the essential features ofg PowerDirector, refer to my review of the previous release, PowerDirector 13.

Here I want to concentrate on a few of the more striking new features of PowerDirector 14. Bear in mind that most of these features are only found in the Ultra and Ultimate editions. If in doubt, refer to the comparative chart of PowerDirector editions here: www.cyberlink.com/products/powerdirector-deluxe/compare_en_US.html

Small body-mounted cameras are given their own editing environment in PowerDirector’s new ‘Action Camera Centre’. This groups together a set of tools aimed at dealing with fast action sequences such as sports or chases. Here you can remove camera shake, apply slow motion to videos recorded with high frame rates and add other effects such as freeze-frame or reverse. You can also remove the wide-angle distortion that is typical of cameras such as GoPro to remove the ‘fisheye’ effects of their lenses.

Motion tracking is another handy new feature. This lets you select an object or a person and add some text, an image, video or an effect which moves in synchronicity with the object’s movements in the scene. While this is useful, the trackable effects are limited to just two – a spotlight that highlights the trackable object inside an ellipse and darkens the rest of the video or a mosaic to ‘pixelate’ the trackable object if, for example, you want to obscure someone’s face. In fact, you can select and track multiple objects in a video. Cyberlink showed me an impressive demo video in which several American football players are each tagged with their name and tracked as they move about.

Various small but useful improvements have been made throughout the software. A For example, you can now add transitions in storyboard mode. When you switch to storyboard view, the clips in a movie are shown as adjacent images rather than as tracks on the timeline. I must admit that I never use the storyboard but I am told that many people do and they are no longer obliged to switch back to the timeline when adding fades or animations between to the joins between one clip and another.

Here I am using AudioDirector to replace the poor quality audio on my video clip with a re-recorded audio track. The software matches the new audio with the clip to synchronize it with my lip movements.
The high-end suites also include an audio package which, in addition to all the sound editing and effects that you’d expect from such a program, has one standout new feature that can be enormously useful for videos. It lets you record a new audio track and automatically synchronize it with your existing video. So if, for example, your video was recorded in a noisy environment, you can subsequently record a voice track from a script and then tell AudioDirector to sync it with the video clip. This is like lip-sync in reverse. Instead of recording video by miming to an audio track, you record the audio and it synchronises itself with the video. In my experiments I found that this can be surprisingly effective. You do need to have a really accurate script though (with any ums and aws from the original) and you need to try to read it at approximately the same pace as the original otherwise the synchronised sound may be slowed down at certain points, making it sound as though your speech is slurred. Even so, with a bit of practice this auto-dubbing feature can be immensely useful. Instead of rerecording an entire video on location just to fix bad audio, you can simply record the audio track and let the software sort it out.

One other new tool that deserves special mention is the screen recorder. If you ever need to include videos of software being used on your PC, you can just start the recording utility, select the whole screen or a rectangular area and record the screen complete with mouse movements and (optionally) a simultaneously recorded narration. So no longer are you obliged to buy a separate ‘screen-casting’ suite such as Camtasia. PowerDirector gives you a screencast recorder as standard, even in its low-cost Deluxe edition.


Watch my review for a quick overview of some of the most interesting new features

Overall, I am tremendously impressed with this new release of PowerDirector. Although it is still at the ‘budget’ end of the video editing market it supplies many of the high-level features of its more expensive rivals. If you need to create high quality videos without spending a fortune, PowerDirector 14 would be an excellent choice.

Monday, 19 October 2015

Portrait Professional 15 - review


(available for Windows or Mac)

http://www.portraitprofessional.com/

So you’ve taken some photos of the family but when you look at them you see that you’ve accidentally highlighted granny’s wrinkles, Aunty Bertha’s skin is as shiny as a ripe tomato, Cousin Alfred’s still suffering from acne and Sister Annie is still looking pale from the effects of too many sweet sherries the night before.

No problem. Load up Portrait Professional 15 and within a matter of minutes granny’s wrinkles are smoothed away, Aunty Bertha’s skin is given muted satin-like sheen, Cousin Alfred’s pimples disappear and Sister Annie’s pale flesh is brightened up with a dab of blusher and lipstick.

Of course, this software isn’t limited for use with your home photos. If you happen to be designing a fashion magazine cover and the photographer’s model is looking a little less than perfect, you could either spend a few hours tweaking the photo pixel by pixel in PhotoShop or you could let Portrait Professional automate the process in a fraction of the time.



This is how it works. You start by loading up a photo. Portrait Professional takes a few seconds to identify the face and draw lines over the principal elements – eyes, eyebrows, nose, lips, chin. Now you click a button to tell the program to treat this face as a male or female, adult or child. It applies some standard enhancements to the photo and shows the original in one half of the screen and the enhanced image in the other. If the standard enhancement looks OK, that’s it – you can save the new image to disk as  JPG, TIFF or PNG file. But the chances are that you’ll want to make a few adjustments to optimise the image processing first. If the image elements were not perfectly identified you can drag the lines to reshape the eyes, chin and so on. Then again, maybe the standard options don’t make your model look glamorous enough. You can apply a different set of parameters just by picking a different ‘preset’ from a panel – ‘Female Glamorous’, for instance, may make a few more adjustments to the shape and proportions of the face than ‘Female Standard’. There are presets for women and men, girls and boys.

And if that still doesn’t give quite the effect you are searching for, you can go on to set individual parameters one by one, using a set of ‘portrait improving’ sliders which give you a finer level of control over things such as the amount of skin smoothing, how wide the eyes are (are they fully open or partially shut?), how plump the lips are and so on. Using these controls you can substantially change the appearance of a face and you may need to exercise some self-control. After all, you probably still want Cousin Alfred to be able to recognise Aunty Bertha! Smooth out too many wrinkles, narrow the nose too much, make the neck too long and add a bit too much blusher and she might not even recognise herself!

The plain truth of the matter is that Portrait Professional lets you make adjustments that range from the subtle to the grotesque. Most of the time, you will probably aiming for the subtle end of the spectrum but, ultimately, the choice is yours.



The changes you can make can either be very subtle or (as here) fairly bold. In the processed image, on the right, not only has the skin been toned and reflections softened, but I’ve even changed the colour of the lipstick and added some eyeshadow and blusher!
I last reviewed Portrait Professional (version 11) over two years ago (read my review here http://www.bitwisemag.com/2/Portrait-Professional-11.html). The latest version of the software has been improved by a number of additions, such as the ability to add digital ‘makeup’ and finer control over skin colouring. It comes in three editions – Standard, Studio and Studio Max (I reviewed Studio Max) and the Studio and Max versions can both be used either in standalone mode or as a plugin for PhotoShop (including PhotoShop Elements), Aperture and Lightroom. You can find the full feature lists of these editions here: http://www.portraitprofessional.com/editions/ .

This is a great program that really makes light work of doing everything from removing small imperfections and skin blemishes to transforming rather mundane portraits into magazine-ready ‘glamour’ shots. The three editions are priced at £59.90, £99.95 and £199.90 respectively. However, there are fairly often discounted offers so you may want to check if there are any special deals available on the developers’ web site.

Wednesday, 7 October 2015

Learn to Program Java - The Easy Way!

Java Programming – the Master Course is a multimedia course that teaches you Java from the ground up. With over 9 hours of video tuition, plus a an eBook and lots of ready-to-run source code, this is a premium course that normally costs $149. But this month I have a special offer that will get you the entire course for just $29!

Even if you are a complete beginner, this course will explain all the topics you need to know in order to become a proficient Java developer. It starts with the basics and moves on step-by-step to explain advanced topics such as generics, enumerated types, file-handling and streaming. You can follow the course on a Mac or on a PC. And all the software you need is free.


This is what you get with this course….
  • 88 lectures and over 9.5 hours of content
  • All the source code ready-to-run 
  • A 125-page eBook, The Little Book Of Java
  • 10 quizzes to test your understanding
  • Lifetime access to the course

Java Programming - the Master Course is available on Udemy for $149. But, using this special link, you can get this complete Java course at a massive 81% discount.

CLICK THIS LINK to get lifetime access to this $149 course for just $29:
https://www.udemy.com/java-programming-the-master-course/?couponCode=BWJAVAOCT

Good programming!

Wednesday, 9 September 2015

How to Scan Your Old Films and Slides


I have literally thousands of them. They lie mouldering in boxes and envelopes, at the back of cupboards and in the bottom of drawers. Memories from the forgotten world of my youth. People, pets and places who are long gone or changed almost beyond recognition: colour transparencies so old they look like scenes from somebody else’s life.

I haven’t looked  at them for years. And when I look at them now, I see that many of them are sadly faded and decayed. On some, the colours are washed out.  Others are covered with dust and fluff. Many even have tiny spidery webs of mould growing upon them. That is what happens to old pictures taken in a non-digital world. If I were to have any chance of saving them I realised I would have to do it soon. And so I set about searching for some means of scanning these fragile memories onto hard discs and DVDs.

First A Scanner


At first I planned to use my flatbed scanner, an Epson V550, which not only comes with a slide-holding frame to let me scan several slides at once, but also has a ‘Digital ICE’ capability to assist in removing surface blemishes during the scanning process. My first attempts were reasonably successful but I soon discovered that fitting the slides into their holder and then scanning them was a slow and laborious process. I simply would never get around to scanning the huge numbers of slides in my collection. I decided therefore that a dedicated slide scanner was what I needed. These come in all shapes, sizes and prices. After much research I decided that the Reflecta ProScan 10T (https://reflecta.de) (branded as Pacific Image PrimeFilm XE in the USA) provided all the features I needed at a price I could afford (549 Euros but available discounted if you shop around).

My Reflecta ProScan 10T film scanner.


This scanner has slot in the side into which either a section of file-strip (colour, black and white, positive or negative) may be fed up to a maximum of 6 frames at a time; or else up to four mounted slides at a time – there are two dedicated holders for mounted and unmounted film. After each slide is scanned you just push the holder along to position the next slide for scanning. It’s mostly pretty simple and effective. My main grouse is that it is quite difficult to fit unmounted film into its dedicated holder because the holder has nothing to hold them firm, flat and properly aligned. The mounted slide-holder is much easier to use.

Next Some Software


While the scanner comes with its own scanning software (CyberViewX) I soon discovered that most people prefer to use one of two third-party programs: either Silverfast  (http://www.silverfast.com/) or VueScan (http://www.hamrick.com/). The former comes in various versions starting at 49 Euros for Silverfast SE but its fully-featured versions are quite expensive (Silverfast Ai Studio costs 299 Euros) and each licence only supports one brand of scanner.  If you want to use it with two scanners you have to buy two licences. VueScan, by contrast, is quite modestly priced $39.95 for the Standard edition, $89.95 for the Professional Edition) and it has a very generous licence which lets you use it with any mix of supported scanners (so I can use it with both my Epson and my Reflecta at no additional cost) and it can even be installed on up to four computers which may include both PCs and Macs. The software provides a free trial which is functionally equivalent to the full version but which places a watermark over scans. I tried this for a few days, was very satisfied, and then upgraded to the full professional version which, as an added bonus, even includes all updates free and forever!

VueScan in action

The VueScan software lets you tweak your scans in all sorts of cunning and clever ways. You can set the white balance, make adjustments for photos taken under fluorescent or tungsten, make corrections for fading and colour-loss and much, much more. For me, though, having such a large number of dirty and degraded slides, the single most useful feature is the InfraRed scanning support. Your scanner hardware has to provide this (it may be called ‘Digital ICE’ as in my Epson flatbed or ‘MagicTouch’ which is the name used by the Reflecta).

VueScan lets me apply three levels of IR scanning – light, medium and heavy. Mostly I used the medium option which does a remarkably good job of removing dirt and fluff from my pictures.  Occasionally, for example when a transparency has acquired fungal growths (a common problem with old film) I switch to heavy IR scanning. This deals with all but the most degraded of my slides and it usually means I don’t have to clean them by hand (as explained here: http://www.kodak.com/global/en/consumer/products/techInfo/cis145/cis145.shtml).

Here you part of a slide (a) before any IR processing has been done – look closely and you will see various black blobs especialy at the lower right-hand corner; (b) VueScan’s InfraRed processing to show the blobs it will remove from the slide and (c) the same slide with the blobs removed.

The only slides I’ve had real problems with are the ones whose emulsions (the physical layers of colour) have themselves degraded. Some of these seem to have developed little bumps that make the entire slide look spotty. Interestingly when I scan these with CyberView and VueScan the software’s ‘solution’ to the problem are quite different. CyberScan removes the worst of the bumps but that has the effect of leaving chunks taken out of picture elements – for example, giving people in my photos ‘serrated edges’. VueScan does a less aggressive removal which generally fades the dots to make them look less obvious than before but visible nonetheless. Fortunately, I have only a small percentage of slides that have degrade to this extent.

Here is the slide I processed earlier, now with all the nasty blobs removed!

So, on the whole, I am pretty satisfied with this slide-scanning solution. If you have old transparencies or films lying forgotten in cupboards and drawers, don’t let them decay beyond repair. Scan them while you still have the chance!

Tuesday, 16 June 2015

C Programming Top 10 Tips

I just published an article for C programmers over on the Udemy eLearning site. This gives ten programming tips as follows:
  1. Function pointers
  2. Variable-length argument lists
  3. Bit-manipulation
  4. Short-circuit operators
  5. Ternary operators
  6. Stacks (pushing and popping)
  7. Fast data-copying 
  8. Testing for header inclusion
  9. Correct use of parentheses
  10. Using arrays as addresses

Learn C Online

If you want to learn C programming you may also be interested in my course (8 hours of teaching plus all source code and an eBook). Hint: If you are quick and you click THIS LINK you can enrol on my course for a very big discount. But this deal ends at the end of June, so don't hang around!

The C program code for all the tips can be downloaded from Udemy. Here it's loaded into NetBeans

More C - coming soon...

Wednesday, 13 May 2015

Yoga Apps for iOS

There are heaps of yoga apps competing for your iPad and iPhone dollars so where do you begin if you want to perfect your Sun Salutation or tame your Downward Dog?

The first fitness-related app I ever bought for my iPad - and the one that I still consider to be far and away the best - was You Are Your Own Gym (YAYOG). This is a bodyweight or ‘calisthenics’ program aimed at improving your strength, endurance and, to some degree, flexibility. But, of course, where flexibility is concerned, it is hard to beat yoga. At any rate, I thought that a good yoga app would complement the YAYOG workouts. And, after much research, I couldn’t help notice that two iOS yoga apps were getting lots of good reviews. They are Yoga Studio and Yoga.com, so those are the ones I decided to try.

Yoga Studio $3.99

http://yogastudioapp.com/
https://itunes.apple.com/us/app/yoga-studio/id567767430

Yoga Studio shows poses that are seamlessly linked by animated transitions
This is a slick-looking app that shows a woman teacher demonstrating sequences of poses while a female voice describes the basics of each pose. There are over 280 poses and these are arranged into ‘classes’ graded for beginner, intermediate or advanced students. The length of each class varies from 15 minutes to 30 minutes or a full hour. You can also create custom classes by selecting different poses and saving them for later viewing.

Here I am previewing the poses in a class. Pressing the Play button gets things started.
The app cleverly inserts ‘transitions’ between poses to give the impression that the onscreen teacher is moving seamlessly from one pose to another. Meanwhile the narrator describes the key elements of each pose. Optionally you may also have some music or sound-effects (ocean waves is my favourite) tootling away in the background. This is all well done, but I must admit that I am not really terribly keen on the slightly soporific narration that exhorts me to let my shoulders “melt over” my knees and “bring this lovely after-yoga feeling” into the rest of my day.

My main reservation, however, is that the actual nitty-gritty instructions on how to do the yoga poses with good form are often a bit vague. You can revise elements of proper form when not taking a class by browsing through a database of poses and reading some text-based instructions. However, I would have preferred a much more detailed narration to explain exactly how to perform each pose, how much of a stretch to aim for, how to achieve correct alignment and so on. The app recommends that students should use it in addition to a regular yoga class rather than as a replacement for one. I have studied yoga before so I have some pre-existing knowledge. However, I suspect that some people will try to use this app to learn yoga from the ground up. I honestly don’t think it is technically thorough enough to be used in that way. If you already know some yoga, and you want an app to help you structure your own practice at home, however, this might fit the bill. It is certainly a nice, professional-looking program even though I do find the narration a bit sleep-inducing.

Yoga.Com $3.99

http://sport.com/all_in_yoga.html
https://itunes.apple.com/us/app/yoga.com-300-poses-video-classes/id653453499

The core of Yoga.com (which is confusingly labelled as ‘All In Yoga’ once the app is installed) are the 45 Yoga Programs. A ‘program’ is a ‘yoga class’ comprising a predefined set of poses. The programs are grouped  in various ways – some for Beginners,  some for balance, others for strength, breathing, digestion and so on – and they vary in length from about 13 or 14 minutes to well over an hour.  Just like Yoga Studio, this app also lets you create your own programs by picking sets of poses and saving them for later use.

Yoga.com does not fully animate the poses in a class. But you can watch a video of each pose in a popup window - which is what I am doing here.
To perfect your technique, there is a pose database that lets you pick a pose (from around 300) by name and watch a video of the instructor showing the correct form. Each pose also comes with written instructions and optional narration.  And you can even view a diagrams of the muscles being exercised.

For the more anatomically-minded student, Yoga.com even has diagrams to show the muscles exercised by each pose.
The programs themselves are, by default, shown as static photographs rather than moving videos. There is an option to display the short videos from the pose database at the start of each now pose in a class but these are shown in a popup window rather than as a seamless sequence (as in Yoga Studio). A brief description of each pose can be narrated if you choose.

An annoying feature of Yoga.com is that on completing a program, you are prompted to share your progress on Twitter or Facebook (apparently this is supposed to ‘inspire’ people and not, as the cynic in me supposes, advertise the app). Sharing my progress is something I never, ever want to do but I can’t find any way of disabling the extremely irritating nag screen.  The setup options, incidentally, are arranged rather oddly. The main menu, available from the home screen, provides access to features such as the calendar, to schedule your practice and the language in which both the text and the narrations are delivered (English, French, German, Italian, Russian and Spanish are provided). But if you want to configure things such as the teacher’s voice (on or off), the animated videos (show or not show) or background music (a choice of 15 tracks or none at all) you have to start a class in order to access a new set of options available from an icon at the top-right of the screen. As to why these global options are not all available from the global settings menu – well, your guess is as good as mine.

In Summary

So which of these two apps would I recommend? This really depends on what you are looking for and your existing yoga experience. Both apps mainly function as ‘prompters’ to guide you through a sequence of poses at home. They provide pictures and videos of an instructor showing the correct poses form but neither provide really detailed information, during a class, on the finer points of that form. This means that unless you have already studied all the yoga poses at a conventional class, there is a risk that you will do them incorrectly which may do more harm than good. Each app does, however, provide a pose database to let you view the poses one by one along with some slightly more advice on good form. Neither app specialises in a particular style of yoga but they do describe a large number of poses (asanas) common to most yoga schools.

Personally, I slightly prefer the more ‘down to earth’ descriptions in Yoga.com rather than the somewhat ‘dreamy’ sounding narrations of Yoga Studio. But Yoga Studio looks a bit slicker due to the transitions between poses (the closest Yoga.com has are its popup videos which are not properly integrated into the main class). So personally I would marginally favour Yoga Studio. However, if your native language is not English, the multi-lingual option of Yoga.com might be the deciding factor.

For my own purposes, I would have liked a greater range of short (10 to 15 minute) yoga sessions since my main interest is to add some yoga stretches to my other exercise workouts. And while I can construct custom classes using both apps, it would have been better if they had provide a greater range of pre-defined ‘targeted’ classes (10 minute stretches for runners; 15 minute warmups and cooldowns etc.). Even so, if you are mainly interested in following a fairly traditional yoga class at home, either of these apps would be a good investment – and both are excellent value giving you a lot of content for a very low cost. I don’t think either of them has enough detailed information and guidance to teach good yoga form from the ground up, however. So if you’ve never done any yoga before, join a conventional yoga class before using one of these apps.


Tuesday, 12 May 2015

Jailbreak my iPad? Is Apple forcing me to do it?

I had never had any intention of 'jailbreaking' my iPad. Jailbreaking ia a way of removing all kinds of built-in security restrictions. It's not recommended by Apple. In fact, I had assumed it was something only done by reckless users with nefarious intent. So there was simply no way I would even consider jailbreaking my iPad!

But with the latest update to iOS, Apple has forced me to rethink that resolve. Why? Because silently, without prior warning, the latest update to the iOS operating system (8.3) has screwed up my ability to find and transfer my data files from my iPad to my PC. Apple wants to force me to use its hideous iTunes or store my data files somewhere halfway across the world on an unknown storage device which I imagine to lurk malignly in a concrete warehouse which goes by the deceptively friendly-sounding name of 'The Cloud'. Thanks, but no thanks. I have written some Word documents on my iPad. I now want to browse for them using a File Manager and transfer them to my PC. Should be simple, huh? Up to now I've been able to do this perfectly easily using the free iBrowse utility. But when I launched iBrowse today it showed empty folders on my iPad with no sign of the documents they contained.

iBrowse pops up this error. They say an update will resolve the issue. I can only hope they are right...
It turns out that iBrowse is not the only file management tool that's been screwed over by iOS 8.3. Other people have reported the same problems with other file browsers. Apple has deliberately (it seems to me, maliciously) prevented access to files using third-party tools. What? They are my blasted files, for Heaven's sake. I created them myself and I expect to be able to do with them exactly what I damn' well want to!

But there is a way around this. It's called jailbreaking. It's something I really didn't want to do. But Apple may be forcing me to consider doing it anyway. Why the heck would Apple go out of its way to encourage iOS users to jailbreak their pads and phones? Because, as far as I can see, that is exactly what this update does. All I can say is that Apple moves in mysterious ways...

Thursday, 30 April 2015

Free Cross-Platform Editor - Visual Studio Code

There was some very interesting news from Microsoft yesterday. The company is releasing a cross-platform (Windows, Linux, OS X) code editing and debugging environment called Visual Studio Code. This supports multiple programming languages including C++, PHP, Java, Objective-C, C#, JavaScript and Python. You can download Visual Studio Code from: https://code.visualstudio.com/

Monday, 20 April 2015

Learn Smalltalk With Pharo

Longtime readers of Bitwise will know that I am wildly enthusiastic about Smalltalk. This is quite simply one of the most influential programming languages ever created. But, even so, while other languages and IDEs have ruthlessly ripped off Smalltalk’s best ideas, the language itself has dwindled to such an extent that hardly any modern programmers have even used it. Which is a gigantic shame.

Pharo - bringing Smalltalk up to date
Pharo might change that. Built as a fork of the open-source Squeak Smalltalk, Pharo’s stated aim is “to deliver a clean, robust, innovative, free open-source Smalltalk inspired environment. We want to provide a stable and small core system, excellent development tools, maintained libraries and releases, and to continue making Pharo an attractive platform to build and deploy mission critical Smalltalk applications.”

I have only just started using Pharo so I can’t yet comment on how well it meets these aims. What I can say is that at first sight it seems to be a nice Smalltalk variant with a good programming environment. The system is quite small (about 120Mb to download), cross-platform, and free. It has an active community and there are some interesting ‘side projects’ such as some robotic-control systems. There is also excellent documentation to help you learn Pharo programming, notably the two free eBooks Pharo By Example and Deep Into Pharo. Unfortunately the revision of the documentation is some way behind the development of the software itself. So, for example, you will find numerous differences between the tools of the current Pharo IDE and the tools described in the books. At a trivial level, this involves things such as renamed windows (the dull-sounding ‘Workspace’ has now been renamed as the more fun-sounding ‘Playground’).

A more serious deficiency of the documentation is that the demo programs described in Pharo By Example are no longer supplied as standard with the software. You can easily fix this, however, by downloading the demo projects from an online repository. This is how to do that.

Left-click in Pharo to pop up a menu and select Playground. In the Playground window enter this code:

Gofer it 
     url: 'http://smalltalkhub.com/mc/PharoExtras/MorphExamplesAndDemos/main';
     package: 'MorphExamplesAndDemos';
     load.

Select all the code, right-mouse-click and choose Do it. This will install the demo code. Now you can run the demos. For example, to run the ‘bouncing atoms demo, enter this into the Playground, then select it, right-click and Do it.

BouncingAtomsMorph new openInWorld.

Pharo looks like a lot of fun. I’ll have more to say later…


Tuesday, 14 April 2015

​Static methods in Java

Static methods cause a lot of unnecessary confusion to programmers learning Java. Part of the problem is that static means different things in different programming languages. Here I explain what it means in Java…

Java program using static methods, shown in the NetBeans IDE
Usually, when you want to use a method provided by some class in Java, you have to create a new object based on that class. Then you can call the method from that object. So, for example, if you want to get the Northern exit of a Room object in a game you would first need to create a new Room object and then call an accessor method such as  getN()from that Room object like this:

Room goldRoom;
int exit;
goldRoom = new Room("room2", "Gold room", 0, 4, Direction.NOEXIT, 3)
exit = goldRoom.getN();

Sometimes, however, it may be useful call a method without having to create an object in order to do so. For example, let’s suppose you want to convert a string such as "200" to its integer representation 200. You could do that by first creating a new Integer object and then calling the valueOf() method with the string as an argument, like this:

Integer intOb;
int anInt;
intOb = new Integer(0);
anInt = intOb.valueOf(s);

This is pretty ugly and inefficient code, however. I have created an Integer object which I never really need simply in order to call the conversion method, valueOf()which is defined inside the Integer class. It would be much neater if I could just call valueOf() without having to create an Integer object first. Well, I can do that. Instead of creating an object from the Integer class, I just call valueOf() from the class itself, like this:

Integer.valueOf(s);

Let’s suppose a string variable s has the value "200" (in a real-world program this value might have been entered into a text field by the user or it might have been read from a file on disk). When I want use this value in a calculation I simply call Integer.valueOf(s) to return an integer value:

int x;
int total;
String s;
s = "200";
x = 5;      
total = x * Integer.valueOf(s);

Many other standard Java classes provide methods that can be called in this way. For example, the String class provides the format() method which lets you create a string by embedding values at points marked by ‘format specifiers’ (just like those used with the printf() function):

String.format("%d * %s = %d", x, s, total)

But you can’t just call any method in this way. In order to be called directly from the class rather than from an object, a method has to be declared as static. These are the declarations of the String.format() and Integer.valueOf() methods:

public static String format(String string, Object[] os)
public static Integer valueOf(String string)

Class methods & instance methods

You can think of static methods as being ‘class methods’ – they ‘belong’ to the class itself. This contrasts with other methods which you can think of an ‘instance methods’ – they ‘belong’ to instances of the class. An ‘instance’ of a class is an object created from the class ‘blueprint’.
If you want methods to be callable from your own classes, you need to add the keyword static to their declarations. Let’s take a look at a class that includes a static method.


Consider this method:

public static String numberOfObjects() {
        return "There are " + obcount + " objects.\n";
}

This displays a string that includes the value of the int variable obcount. You will see that this variable has been declared to be static and it has been initialized with a value of 0:

private static int obcount = 0;

static variable, like a static method, ‘belongs’ to the class rather than to individual objects created from that class. In my code, the MyObject constructor, which is called whenever a new object (a new ‘instance’ of the MyObject class) is created, adds 1 to the value of obcount.

obcount = obcount + 1;

Since a static variable belongs to the class, there is only ever one copy of that variable so it can only ever have one value, no matter how many objects based on that class have been created.
In the C language, the static keyword has a different effect. A static function is in C is private within the file in which it occurs. A static variable which is declared inside a function is one that retains its value between function calls.
The MyClass class also has an instance (non-static) variable, obnumber:

private int obnumber;

Each time a new object is created the constructor assigns the current value of obcount to this variable:

obnumber = obcount;

This means that each time a new object is created the static variable obcount is incremented and so it will be set to the total number of objects that have been created. There is only one copy of this static variable. So even if there are many objects, at any given moment this static variable will always have a single value. The instance variable obnumber is also incremented each time a new object is created. However, each object has its own copy of this instance variable so each object will have a different value for obnumber.

Let’s suppose you were to create three objects, ob1, ob2 and ob3. The obnumber of ob1 would be the original value of the variable (0) + 1; so for ob1, its value would be 1; for ob2 its value would be 2 and for ob3 its value would be 3. But the obcount variable, which belongs to the class rather than to any individual object, would be the same for all three objects – namely 3.

In brief then, instance variables store different values for each object. Static or ‘class’ variables store a single value which is accessible by all objects created from that class. Instance methods are called from an object but class methods are (usually) called from a class.


Learn Java - 73% Discount

This article is adapted from my eBook, The Little Book Of Java, which is provided with Java – The Master Course, a step-by-step interactive video tutorial to the Java language.


This is what you get with Java – The Master Course ….

  • 87 lectures and over 9 hours of content
  • All the source code ready-to-run
  • A 125-page eBook, The Little Book Of Java
  • Lifetime access to the course

The regular cost of this course is $149. But for a limited period, you can get the course for just $39. Just click this link: https://www.udemy.com/java-programming-the-master-course/?couponCode=JAVABWDEAL

Monday, 16 March 2015

Learn To Program Java the easy way – and save $110!

Get my new $149 Java programming course for just $39

This is what you get with this course….
  • 87 lectures and 9.5 hours of content
  • All the source code ready-to-run
  • A 125-page eBook, The Little Book Of Java
  • Lifetime access to the course

Java Programming – the Master Course covers all the topics you need to become a  proficient Java developer. It starts with the basics and moves on step-by-step to explain advanced topics such as generics, enumerated types, file-handling and streaming. You can follow the course on a Mac or on a PC. And all the software you need including the excellent NetBeans IDE is free.

For more information, read this interview which I did with Geertjan Wielenga, Principal Product Manager in the Oracle Developer Tools group: http://netbeans.dzone.com/interview-huw-collingbourne-udemy


GET THIS DEAL NOW: Click here to get Java Programming – the Master Course for just $39: https://www.udemy.com/java-programming-the-master-course/?couponCode=JAVABWDEAL

Monday, 9 March 2015

Free Fitness Apps for iOS

I recently wrote about an excellent iOS app called ‘You Are Your Own Gym’ which can guide you through graded programs to improve your fitness by exercising a few times a week using your own bodyweight and a few simple accessories such as tables and chairs (no ‘gym equipment’ required).  I’ve been using this app for ten weeks now and, in terms both of content and presentation, I rank it very highly. When not working with computers, I teach the Japanese martial art of Aikido and the ‘You Are Your Own Gym’ app was recommended to be my a fellow martial artist.

But, of course, it is not the only fitness app for iOS. Far from it! There are hundreds of competing apps aimed at getting you fit. Some of them are free. Others have a free introductory or ‘lite’ edition to let you evaluate the software before investing in the full commercial version. Here I take a look at a few free apps that I’ve been trying out over the past few weeks.

Sworkit Lite

https://itunes.apple.com/us/app/sworkit-lite-personal-trainer/id527219710


This is one of the most popular fitness training apps for iPhone and iPad. It lets you pick from four different types of workout: Strength, Cardio, Yoga and Stretching. Once you’ve selected an exercise type you can pick from a list of pre-defined workouts such as (for example) Light Warmup Cardio, Full Intensity Cardio or Plyometrics Jump Cardio. You are then presented with a video of a figure (variously a man or a woman) doing sets of exercises for a predefined, user-selectable, period between 5 and 60 minutes.  You can also download extra custom workouts and install one of these at a time. If you upgrade to the Pro version ($1.99), you can install or create an unlimited number of custom workouts. While this is a nice looking piece of software which may motivate users to follow along with the videos, I find it lacking in detail. There are no instructions on the correct ‘form’ of each exercise. It is really just a case of ‘watch and do’. So, in spite of its popularity, I am slightly underwhelmed by Sworkit Lite and have no plans to upgrade to the Pro edition.


Daily Workouts Free

https://itunes.apple.com/us/app/daily-workouts-free-personal/id469068059


This is another extremely popular fitness app – which is not surprising given the fact that it provides in a huge number of exercises which are selectable by category: ab, arm, butt, cardio and leg workouts.  Some of these workouts are pure bodyweight exercises, requiring no equipment; others, such as the arm exercises, require small dumbbell weights. The exercises are accompanied by videos and there are also text descriptions of the correct form for each exercise though annoyingly these are only visible in portrait mode (I generally use my iPad in landscape orientation).  This is not one of the best-looking apps I’ve ever seen. The user interface is a bit clunky-looking and the videos seem to have been recorded in the corner of someone’s living room rather than in front of the ever-fashionable white screen or in a proper ‘set’. Even so, it’s a pretty decent app with some fairly challenging exercises. The free version is definitely worth a try. The full version, which costs a reasonable $3.99, has more routines , operates in landscape mode and removes the advertising that pops up across the bottom of the screen in the free edition.

Abs Workout: Get Your Six Pack

https://itunes.apple.com/us/app/abs-workout-get-your-six-pack/id426364250


But maybe your main goal is to transform your flabby tummy into a rippling ‘six-pack’. Well,  there are plenty of apps that claim to do that and this is one of the top-rated ones. This shows computer-generated images of virtual men or women (the models are user selectable) performing sets of exercises with, optionally some music and a synthesised voice counting out “one…two” as you do each exercise. You can set yourself a workout schedule and you can pick various workout types – such as ‘Classic 8 Minute Abs’, ‘Super Fast 3 Minute workout’, ‘Chest and Abs Mixed workout’ and so on. Only the Classic 8 Minute workout is completely free. However, you can in fact follow all the other workouts for free too as long as you allow a short full-screen advertisement to be shown before it loads. If you want to remove the advert you can buy the additional workouts generally for between $1.99 and $2.99. This is great value and the workouts are solid. I must say, though, that I would prefer videos of a real-person instructor plus more information on the correct ‘form’ of each exercise.

The Johnson & Johnson Official 7 Minute Workout App

https://itunes.apple.com/us/app/johnson-johnson-official-7/id784797900


There are lots of “7 Minute Workout” apps available but this claims to be the ‘official one’ since the workouts are planned and presented by Chris Jordan, the man who created the original 7 Minute Workout plan. Produced by  Johnson & Johnson (the people who make the baby shampoos and health products), the app is completely free and it is almost, but not quite, perfect. On the plus side, it looks great and the teacher gives clear verbal instructions on correct form and he demonstrates each exercise in videos that include a second-by-second countdown on an onscreen clock. You can follow groups of exercises for 7 minutes - or longer if you want a greater challenge. There is also a ‘learn’ mode that lets you select an individual exercises  to study. So what’s  the downside? Well, unlike the apps reviewed previously, the content is not fully downloaded for offline use. It requires Wi-Fi access to download some elements as you go along. If you haven’t got Wi-Fi access or if (like me) your broadband connection is slow and of variable quality you might have problems. I find, for example, that the videos sometimes freeze as the downloads progress. A great shame. This is so very nearly a wonderful app. But it needs to have an option for complete ‘offline’ usage. If that is added, I will be happy to withdraw my criticism.

Workout Series

https://itunes.apple.com/us/app/workout-series/id962512623


This is a brand new app (released on February 17th, 2015) but its content was already familiar to me from the web-based workouts at http://workoutseries.com. In fact, the app is really a stand-alone interface to the materials on the web site so, just like the Official 7 Minute Workout App, it requires a Wi-Fi connection in order to use it. Once again, that requirement earns it a few negative points from me. Even so, assuming you have a good internet connection, the actual workouts are first rate. There are workouts of many different types, some that include equipment such as dumbbells and kettlebells, others (and these are the ones I’m interested in) are pure bodyweight workouts. There are two instructors – a man and a woman – and they often show alternative forms of each exercise so that you can switch between an easy and a difficult form according to your ability. There are lots of workout variants – 7 minute workouts, abs workouts, warmups, cooldowns and much more. This is a really good resource, which I strongly recommend. But bear in mind that the app version is not really much different from the standard web-based version so you are not getting anything significantly different on your iPad or iPhone than you would get if you logged onto the web site using a desktop computer.

Conclusion

So do any of the free apps mentioned here rival the You Are Your Own Gym app that I’ve been using for the past ten weeks? In some respects both the Workout Series and The Johnson & Johnson Official 7 Minute Workout App cover much of the same ground and do a pretty good job of it. If you have a fast and reliable internet connection, I’m sure you could make excellent progress by following either of these. Daily Workouts Free is good too and doesn’t need a Wi-Fi connection. It doesn’t look as slick as some of the other apps though and its descriptions of the correct exercise form are somewhat limited. Abs Workout: Get Your Six Pack is great value if you want to concentrate exclusively on your mid-section but I’m not really all that keen on the animated ‘virtual people’ and you will need to buy the commercial edition if you want to get rid of the advertising. Sworkit Lite looks really nice and would work well as a ‘motivational’ tool if you have already studied the correct form of each exercise, but I would be reluctant to rely upon it as the sole source of good workout information. After trying all these, however, I am more than ever convinced that You Are Your Own Gym is the most satisfactory app (that I have yet discovered) for anyone who needs a serious bodyweight fitness routine that teaches both good exercise form and also leads you through a sequence of progressively graded workouts.