While I am not as much of an active developer/porter as I would like to be, I do keep on eye on what’s happening on the repo, and since 2013, I have noticed that there was some guy who started to port stuff that was certainly different from what people usually expect in the community. His first few ports were not so extraordinary in themselves, but then came Jstock, CASPack and R. Wow. I then realized this MarkW was not your standard Pandora user. And not your usual porter either.
While a lot of us came to the Pandora for its wonders regarding emulation, MarkW was always more interested in the “general purpose computer” aspect of it. And it’s not like he started with the Pandora:
MarkW: I’ve always had a “portable computer” – starting with, wait for it, a Psion Organiser II back in the late 80’s. I just think they are immensely practical. I currently work as a postman in rural South West Scotland. Essentially, I’m paid to take exercise and drive around iconic country-side (and get cold and very wet – but that’s the price). I got sick of working in offices, and generally enjoy being outside far more than inside. I’ve lurked stealthily on the Pandora scene for years – quietly observing. I missed the batch 1 pre-order cut off by a couple of days, so I ended up in the second batch of pre-orders. After a few iterations of “two months”, I gave up and got a refund from Craig. Both of my Pandoras are recent acquisitions, from ebay. The rebirth has just been re-cased and upgraded to 1Ghz, so I now have two 1Ghz machines. One will become a purely development platform, the other my daily driver.
MarkW: The Pandora is an amazing Netbook replacement. I don’t think it is a laptop replacement, but it is an excellent device for doing stuff pretty well anywhere. And best bit of all? I haven’t paid a penny for the software on it and I have a lot installed. A lot of people have been sucked into the world of “apps” – not realizing they are effectively been had. Too few people have woken up to the fact that everything offered by Google has only one purpose, and that is to profile them, their habits and their behaviour. Apple are little better, although I am typing this on an ageing Macbook!
Just like PtitSeb has had a strong development experience before his Pandora days, MarkW is not new to hacking, and used to be an aspiring commercial pilot.
MarkW: My development experience started way back in the early 90’s – with the Organiser II, when I wrote a flight planning suite (I had aspirations of becoming a commercial pilot). I had never written any software up until that point, so I had to learn everything from scratch (including spherical trigonometry). The flight planning suite was quite sophisticated, calculating pretty well everything (including trans-polar great circle routes – which are tricky because they reciprocate at the point of crossing a critical line of longitude). Sadly, the pilot hiring boom ended before I had built the requisite hours and that was the end of that!
I have commercial development experience in my past, first through very early web development in the late nineties. In those days, dynamic database reporting was cutting edge stuff and the browser wars were still in full swing. More recently, I worked as a Technical Architect for a consultancy. That generally involved the physical and logical design of server architectures, server sizing and ensuring technical project development was on track – even if that meant me taking over chunks of it. I was generally developing using proprietary languages (PeopleCode, SQR) and tuning SQL queries and statements with client DBAs. My claim to fame was designing and building the bonus calculation module for a large Japanese Investment bank and being responsible for rolling out a financial application in over 150 countries with a huge big bang go-live. That project went live with about about 150 servers and two large dedicated storage arrays (this was the late nineties). Fun times! My Unix experience generally came from having to manage several development servers on the projects in which I worked (sun solaris, HP UX, and AIX). We generally didn’t have the financial resources for a dedicated Sysadmin, so we looked after our own servers – very much book in hand! There was a great “can do” attitude in the teams, so we were generally game for anything and never had any serious issues. Our starting point was always “how can we do this?” – not “can we do this?”.
MarkW tends to port stuff that nobody else has ever ported or maybe thought of porting before. One of my favorites is R, but let’s not forget Lyx or Graphviz.
The truth is, he does not port them just because he can, but also because he has a strong desire to use them! Which is why he also spends quite some time updating and optimizing his ports. But he does not limit his work on this scope only.
MarkW: As my personal list of wants is reduced (only a few to go now), I’m quite happy to have a stab at some other applications (no, they are not apps) for others. For me, what is essential to the future of the Pandora is a wide choice of software. Even apparently dull pieces of software help present an image of a complete platform – which can only ever be good news. We already have shed-loads of people working on games (either from scratch or porting existing titles), and I have no experience with games – so the choice was pretty straightforward. I was also quite surprised at how few obviously useful pieces of “productivity” software had been ported.
And let’s face it, some productivity software ports are actually quite difficult, sometimes because of their long list of dependencies. You may remember that even PtitSeb had a hard time porting LibreOffice for Pandora, and some of the applications that MarkW took care of have a very similar breadth of complexity. R was one of them:
MarkW: R was challenging for not the most obvious reasons. The general approach was sound, and virtually everything built very easily. R was more of a problem because the authors almost demand you do “stuff” their way. All of their scripts assume this. Step outside the norm and the scripts/code fails and you are generally directed to do it “the right way” next time round! My two main issues were caused by our cut-down OS and by R being too clever for its own good. It could find all the libraries in /lib – but couldn’t find its own – even though it installed them! In the end, the font issue was trivial to fix and was really caused by our stripped down OS and the R developers assuming that the standard X11 fonts “will always be available”.
But it’s not all that bad. Lyx looks like a difficult port at first, however…
MarkW: At the other end of the spectrum, the easiest large application has been LyX, by a wide margin. Even the Tex Support – largely because I could just hook into somebody else’s pnd for that. Adding in the spell checking engine and thesauri was also a lesson in triviality. It is testament to the developers of that software that it is such an easy compile in comparison to what it offers.
And there are the applications where MarkW is still struggling, too:
MarkW: However, two pieces of software have become a personal battle for me. CLISP which I need for Maxima, and which was a breeze to compile on the Zaurus is proving a nightmare on the Pandora. The initial compile completes – but then LISP takes over and starts rebuilding itself and it all goes to rats! I know it can be done (I think its already available on slackware and/or pandebian), so its something I’m (not) doing. The other fighter is KDEPIM for HMC. This requires an older version of QT. I’ve never built a toolkit before, and am still somewhat bamboozled by the large list of possible options I can select/deselect. There is no guidance on whether for example, I should use their zlib or ours! However, I will continue to fight both of these beasts – and I will through sheer effort if need be – win! Neither will be quick victories, but can out-stubborn a stone!
I think he captures exactly the key quality of a good porter: never giving up. PtitSeb is also known to keep working on applications until they compile and they work perfectly, and very few resist. So, if you are a new porter out there, just consider that your best ally to make something run is to keep at it, and keep trying until it works. Of course, this implies learning more and more as you go, but that’s the fun part of it. You may be wondering what are the tools of the trade for MarkW? Well, here is what he uses, and there’s no huge surprise:
MarkW: I only use that most excellent pnd: Codeblocks. And of that, I only ever use the command line!!!! It has virtually everything. A few things are missing (motif for example), but the missing bits are generally easy enough to build and have kicking around my development card. I’m amazed that it has a functioning Fortran compiler, and I cannot believe we are still using code written 50 years ago (in some cases). All compiling is done natively – I greatly distrust cross compilers and would only use one if absolutely necessary. Most compilations only take a few hours (or minutes). If I’m compiling something I think will take a while, I leaving it churning away over night and see what I’ve got in the morning.
There are definitely two schools for porting. A number of well known porters (I may be wrong but I think Sebt3 is one of them) play a lot with cross-compilers, while PtitSeb and MarkW are all for native compilation. One thing is true, though, setting up a cross-compiler is not an easy task in the first place (at least I don’t find it THAT easy, while there are now a couple of tutorials on the boards) and going for code::blocks is a good way to get started quickly.
Since MarkW is a rather “serious” user, I took the liberty to ask him what would make a Pandora successor good in his eyes. Note that this was before the Pyra was announced.
MarkW: I think fundamentally (for me at least), the Pandora is more or less right. It needs to continue to concentrate on offering a platform for customization and expansion. It cannot compete with the purchasing power of the corporates – but it can and does dominate a space where the corporates don’t see a margin. I think internal WiFi should be binned, a second USB port added (recessed, so it can take a USB WiFi dongle without the dongle sticking out), and we need to do better – a lot better – on the screen. That would satisfy me. On a wider scale, we should also look to “sex up” the device. If the Pandora is ever going to go big time, it needs to appeal to a far wider audience than it presently does. Whilst we are generally OK with the industrial look and feel – it is pretty ugly and a little bulky. I like that quirkiness, but its not much of a strap line! Natural progressions for the CPU/RAM/GPU etc go without saying. Offering different colour cases has worked well for other platforms as well – so this may be an option that needs to be explored. Finally, we need to be far more savvy about its marketing. As a single simple example, I came across a great review from an audiophile site the other week – and yet there is no reference to it that I can find within the official Pandora site. Another good example, we now have an example of a post-doc researcher, using the Pandora to help in a research project. Lots of positive mileage can be made out of stories like this, and if we dig hard enough, there would probably be plenty more. All of these markets and many more are waiting to be tapped….
Well, it does look like the Pyra is going in this direction in terms of design improvement. As for the marketing aspects, it can only improve over time. At least stuff has started happening around the Pyra before it’s even out, so I’m confident it will be a little more successful to say the least. In the meantime, I’ll be expecting more releases from MarkW on the Pandora 🙂 Talking about his upcoming releases… this is what he has been working on recently:
Can you guess what it is? 🙂
Many thanks to MarkW for all his ports on the Pandora and for his availability !