Archive
Leaving Patreon: Developers be warned
As a person I’m quite optimistic. I like to think the glass is half-full rather than half-empty. I have spent over a decade building up a thriving Delphi and C++ builder community on social media, I have built up a rich creative community for node and JavaScript on the side — not to mention retro computing, embedded tech and IOT. For better or for worse I think most developers in the Embarcadero camp have heard my name or engage in one of the 12 groups I manage around the world on a daily basis. It’s been hard work but man, it’s been worth every minute. We have so much fun and I get to meet awesome coders on a daily basis. It’s become an intrinsic part of my life.
I have been extremely fortunate in that despite my disadvantage, a spine injury in 2012 – not to mention being situated in Norway rather than the united states; despite these obstacles to overcome I work for a great American company, and I get to socialize and have friends all over the planet.
The global village is the concept, or philosophy, that technology makes it possible no-matter where you live, to connect and be a part of something bigger. You don’t have to be a startup in the san-francisco area to work with the latest tech. Sure a commute from Burlingame to Redwood beats a 14 hour flight from Norway any day of the week — but that’s the whole idea: we have Skype now, and Slack and Github; you don’t have to physically be on location to be a part of a great company. The only requirement is that you make yourself relevant to your field of expertise.
Patreon, a digital talent agency
Patreon is a service that grew straight out of the global village. If the world is just one place, one great big family of human beings with great ideas, then where is the digital stage that helps nurturing these individuals? I mean, you can have a genius kid living in poverty in Timbuktu that could crack a mathematical problem on the other side of the globe. The next musical prodigy could be living in a loft in Germany, but his or her voice will never be heard unless it’s recognized and given positive feedback.
“The irony is that Patreon doesn’t even pass their own safety tests. That should make you think twice about their operation”
My examples are extremes I agree, most people on Patreon are like me, creative but absolutely not cracking math problems for Nasa; nor am I singing a duet with Bono any time soon. But that’s the fun thing about the world – namely that all things have value when put in the correct context. Life is about combinations, and you just have to find one that works for you.

The global village, the idea of unity through diversity
The global village is this wonderful idea that we can use technology to transcend the limitations the world oppose on us, be they nationality, color, gender or location. Good solutions know no bounds and manifests wherever a mind welcomes it. Perhaps a somewhat romantic idea, if not naive, but it seems the only reasonable solution given the rapid changes we face as a species.
In my case, I love to make software components in my spare time. My day job is packed and I couldn’t squeeze in more work during the weekdays if I wanted to, so I only have a couple of hours after-work and the weekends to “do my thing”. So being a total geek I relax by making components. Some play chess, the guitar or whatever — I relax by coding something useful.
Obviously “code components” are completely useless to anyone who is not a software developer. The relevance is further clipped by the programming-language they are written for, and ultimately the functionality they provide. Patreon for me was a way to finance the evolution of these components. A way of self motivating myself to keep them up to date and available.
I also put a larger project on Patreon, namely the cloud desktop system people know as “Amibian.js” or “Quartex Web OS”. Amibian being the nickname, or codename.
Patreon seemed like the perfect match. I could take these seemingly unrelated topics, Delphi and C++ builder specific components and a cloud architecture, and assign each component and project to separate “tiers” that the audience could pick from. This was great! People could now subscribe to the tier’s they wanted, and would be notified whenever there was an update or new features. And I could respond to service messages in one place.
The Tier System
The thing about software is that it’s not maintained on infinite repeat. You don’t fix a component that is working. And you don’t issue updates unless you have fixed bugs or added new functionality. A software subscription secures a customer access to all and any updates, with a guarantee of X number of updates a year. And equally important, that they can get help if they are stuck.
“when you are shut down without so much as an explanation, with nothing but positive feedback, zero refunds and over 1682 people actively following the progress — that is utterly unacceptable behavior”
I set a relatively low number of guaranteed updates per year for the components (4). The things that would see the most updates were the Rage Libraries (PixelRage and ByteRage) and Amibian.js, but not until Q3 when all the modules would come together as a greater whole — something my backers are aware of and have never had a problem with.

Amibian.js running on ODroid XU4, a $45 single board computer
The tiers I ended up with was:
- $5 – “high-five”, im not a coder but I support the cause
- $10 – Tweening animation library
- $25 – License management and serial minting components
- $35 – Rage libraries: 2 libraries for fast graphics and memory management
- $45 – LDef assembler, virtual machine and debugger
- $50 – Amibian.js (pre compiled) and Ragnarok client / server library
- $100 – Amibian.js binaries, source and setup
- $100+ All the above and pre-made disk images for ODroid XU4 and x86 on completion of the Amibian.js project (12 month timeline).
Note: Each tier covers everything before them. So if you pick the $35 tier, that also includes access to the license management system and the animation library.
As you can see, the tier-system that is intrinsic to Patreon, solves the software subscription model elegantly. After all, it would be unreasonable to demand $100 a month for a small component like the Tweening library. A programmer that just needs that library and nothing else shouldnt have to pay for anything else.
Here is a visual representation, showing graphically why my tiers are organized as they are, and how they all fit into a greater whole:
The server-side aspect of the architecture would take days to document, but a general overview of the micro-service architecture is fairly easy to understand:
Each of the tiers were picked because they represent key aspects of what we need to create a visually pleasing, fast and reliable, distributed (each part running on separate machines or boards) cloud eco-system. Supporters can just get the parts they need, or support the bigger project. Everyone get’s what they want – all is well.
The thing some people don’t grasp, is that you are not getting something to just put on Amazon or Azure, you are getting your own Amazon or Azure – with source code! You are not getting services, you are getting the actual code that allows YOU to set up your own services. Anyone with a server can become a service provider and offer both hosting and software access. And they can expand on this without having to ask permission or pay through the nose.
So it’s a little bit bigger than first meets the eye.
I Move In Mysterious Ways ..
Roughly 3 weeks ago I was busy preparing the monthly updates.
Since each tier is separate but also covers everything before it (like explained above) I have to prepare a set of inclusive updates. The good news is that I only have to do this once and then add it as an attachment to my posts. Once added I can check of all the backers in that tier. I don’t have to manually email each backer, physically copy my songs or creations onto CD and send it – we live in the digital age as members of the global village. Or so i thought.
So I published two of the minor cases first: the full HTML5 assembly program, that can be run both inside Amibian.js as a hosted application — or as a solo program directly in the browser. So here people can write machine-code in the browser, assemble it to bytecodes, run the code, inspect registers, disassemble the bytecodes and all the normal stuff you expect from an assembler.
This update was special because the program contained the IPC (inter process communication) layer that developers use to make their programs talk to the desktop. So for developers looking to make their own web programs access the filesystem, open dialogs (normal system features), that code was quite important to get!
The second post was a free addition, the QTX library which is an open-source RTL (run time library) compatible with the Smart Pascal Compiler. While not critical at this juncture, several of my backers use Smart Mobile Studio, and for them to get access to a whole new RTL that can be used for open-source, is very valuable indeed.
I was just about to compress the Amibian.js source-code and binaries when I got a message on Facebook by a backer:
“Dude, your Patreon is shut down, what is happening?”
What? hang on let me check i replied, and rushed into Patreon where the following header greeted me:
What the hell Patreon? I figured there must be some misunderstanding and that perhaps I missed an email or something that needed attention. I get close to 50 emails a day (literally) so it does happen that I miss one. I also check my spam folder regularly in case my google filters have been careless and flagged a serious email as spam. But there was nothing. Not a word.
Ok, so let’s check the page feedback, has there been any complaints? Perhaps a backer has misunderstood something and I need to clear that up? But nope. I had nothing but positive feedback and not even a single refund request. In fact the Amibian.js group on Facebook has grown to 1,662 members. Which shows that the project itself holds considerable interest outside software development circles.
Well, let’s get on this quickly I thought, so I rushed off an email asking why Patreon would do such a thing? My entire Patreon page was visibly marked with the above banner, so my backers never even saw the updates I had issued.
Instead, the impression people would get, was that I was involved in something so devious that it demanded my account to be suspended. Talk about shooting first and asking later. I have never in my life seen such behavior from a company anywhere, especially not in the united states; Americans don’t take kindly to companies behaving like bullies.
Just Contact Support, If You Can Find Them
To make a long story short it took over a week before Patreon replied to my emails. I sent a total of 3 emails asking what on earth would have prompted them to shut down a successful campaign. And how they found it necessary to slander the project without even informing me of the problem. Surely a phone call could have sorted this up in minutes? Where I come from you pick up the phone or get in contact with people before you flag them in public.

Sounds great, sadly it’s pure fiction
The response I got was that “some mysterious activity had been reported on my page”, and that they wanted my name, address, phone number and credit card (4 last digits). Which I found funny because with the exception of credit-card details, I always put my name, address, phone numbers and email etc. at the head of my letters.
I’m not a 16-year-old kid working out of a garage, im a 46-year-old established software developer that have worked as a professional for close to 3 decades. Unlike the present generation I moved into my first apartment when I was 16, and was working as an author for various tech magazines by the time I was 17.
But what really piss me off, was that they never even bothered to explain what this “mysterious behavior” actually was? I write about code, clustering, Delphi, JavaScript and bytecodes for christ sake. I might have published updates and code wearing a hoodie at one point, in a darken room, listening to Enigma.. but honestly: there is not enough mystery in my life to cover an episode of Scooby-Doo.
Either way, I provided the information they wanted and expected the problem to be resolved asap. Two days at themost. Maybe three, but that was pushing it.
It’s now close to 3 weeks since this ridiculous temporary suspension occurred, and neither have I been given any explanation to what I have done, nor have they removed the ban on the content. I must have read their guidelines 100 times by now, but given the nature of their ruling (which are more than reasonable), I can’t see that I have violated a single one:
- No pornography and adult content
- No hate speech against minorities or forms of religious extremism
- No piracy or spreading copyrighted material
- No stealing from backers
Let’s go over them one by one shall we?
Pornography and adult content
Seriously? I don’t have time to loaf around glaring at naked women (i’m a geek, I look weird enough as it is), and after 46 years on this planet I know what a woman looks like nude from every possible angle; I don’t need to run around like a retard posting pictures of body parts. And if you are talking about me — good lord is there a marked for hobbits? Surely the world has enough on it’s plate. Sorry, never been huge on porn.
And for the record, porn is for teenagers and singles. The moment you love someone deeply, the moment you have children together — it changes you profoundly. You get a bond to your wife or girlfriend that makes you not want to be with others. Not all men are into smut, some of us are invested more deeply in a relationship.
Hate speech and religious extremism
Hm, that’s a tough one (sigh). Did you know that one of my best friends is so gay – that he began to speculated that he actually was a liquid? He makes me laugh so bad and he’s probably the best human being I have ever met. I actually went with him on Pride last year, not because i’m gay but because he needed someone to hold the other side of the banner. That’s what friends do. Besides, I looked awesome, what can I say.
As for religion I am a registered Tibetan Buddhist. I believe in fluffy pillows, comfy robes, mother nature and quite frankly I find the world inside us far more interesting than the mess outside. You cant be extreme in Buddhism: “Be kind now, or ill hug you until you weep the tears of compassion!”. Buddhism sucks as an extreme doctrine.
So I’m going to go out on a limb and say nuuuu to both.
Piracy and copyrighted material
Eh, I’m kinda writing the software from scratch before your eyes (including the run-time-library for the compiler), so as far as worthy challenges go, piracy would be the opposite. I am a huge fan of classical operating-systems though, like the Amiga; But unlike most people I actually took the time to ask permission to use a OS4 inspired CSS theme-file.

The Amibian.js project is well organized and I have worked systematically through a well planned architecture. This is not some slap-dash project made for a quick buck
Most people just create a theme-file and don’t bother to ask. I did, and Trevor Dickinson was totally cool about it. And not a single byte has been taken or stolen from anyone. The default theme file is inspired by Amiga OS 4.1, but the thing is: the icons are all freeware. Mason, the guy that did the OS icons, have released large sets of icons into GPL. There is also a website called OS4Depot where people publish icons and backdrops that are free for all.
So if this “mysterious activity” is me posting a picture of a picture (not a typo) of an obscure yet loved operating-system, rest assured that it’s not violating anyone.
Stealing from backers
That they even include this as a point is just monumental. Patreon is a service established to make that impossible (sigh); meaning that the time-frame where you deliver updates or whatever – and the time when the payout is delivered, that is the window where backers can file a complaint or demand a refund.
And yes, complaints on fraud would indeed (and should!) flag the account as potentially dubious — but again, I have not a single complaint. Not even a refund request, which I believe is pretty uncommon.
And even if this was the case, shutting down an account without so much as a dialog in 2019? Who the hell becomes a thief for 600 dollars? Im not some kid in a garage, I make twice that a day as a consultant in Oslo, why the heck would I setup a public account in the US, only to run off with 600 bucks! I have standing offers for projects continuously, I havent applied for a job since the 90s – so if I needed some extra money I would have taken a side project.
I even posted to let my backers know I had a cold last month just to make sure everyone knew in case I was unavailable for a couple of days. Truly the tell-tell sign of a criminal mastermind if I ever saw one ..
Sorry Patreon, but your behavior is unacceptable
Hopefully your experience with Patreon has not been like mine. They spent somewhere in the range of 5 weeks just to register me, while friends of mine in the US was up and running in less than 2 days.
We are now 3 weeks into a temporary suspension, which means that most of my backers will run out of patience and just leave. It sends a signal of being whimsical about other people’s trust, and that people take a risk if they back my project.
At this point it doesn’t matter that none of these thoughts are true, because they are thoughts that anyone would think when a project remains flagged for so long.
What should scare you as a creator with Patreon though, is that they can do this to anyone. There is nothing you can do, neither to prove your innocence or sort out a misunderstanding — because you are not even told what you allegedly have done wrong. I also find it alarming that Patreon actually doesn’t have a phone-number listed, nor do they have offices you can call or reach out to.
The irony is that Patreon doesn’t even pass their own safety tests. That should make you think twice about their operation. I had heard the rumors about them, but I honestly did not believe a company could operate like this in our day and age. Especially not in the united states. It undermines the whole spirit of US as a technological hub. No wonder people are setting up shop in China instead, if this is how they are treated in the valley.
After this long, and the damage they have caused, I have no option than to inform my backers to terminate their pledges. I will have to relocate my project to a host that has more experience with software development, and who treats human beings with common decency and respect.
If I by accident had violated any of their guidelines, although I cannot see how I could have, I have no problem taking responsibility. But when you are shut down without so much as an explanation, with nothing but positive feedback, zero refunds and over 1682 people actively following the progress — that is utterly unacceptable.
It is a great shame. Patreon symbolized, for a short time, that the global village had matured into more than an idea. But I categorically refuse to be treated like this and find their modus-operandi insulting.
Stay Well Clear
If you as a developer have a chance to set up shop elsewhere, then I urge you to do so. And make sure your host have common infrastructure such as a phone number. Patreon have taken the art of avoiding direct contact to a whole new level. It is absolutely mind-boggling.
I honestly don’t think Patreon understands software development at all. Many have voiced more sinister motives for my shutdown, since the project obviously is a threat to various companies. But I don’t believe in conspiracies. Although, if Patreon does this to enough creators on interval, the interest rates from holding the assets would be substantial.
It could be that the popularity of the project grew so fast that it was picked up as a statistical anomaly, but surely that should be a good thing? Not to mention a potential case study Patreon could have used as a success story? I mean, Amibian.js didn’t get up and running until october, so stopping a project 5 months into a 12 month timeline makes absolutely no sense. Unless someone did this on purpose.
Either way, this has been a terrible experience and I truly hope Patreon get’s their act together. They could have resolved this with a phone-call, yet chose to let it fester for almost a month.
Their loss.
Mirroring groups on the MeWe network
Following my Administrator woes on Facebook post I have had a look at alternative places to run a forum. I realized that Facebook is getting pretty intrinsic in society around the world, so I know everyone won’t be interested in a new venue. But honestly, MeWe is very simple to use and have an UI experience very close to the Facebook app.

This picture was flagged as “hateful” on Facebook, which has rendered my account frozen for the next 30 days. While I agree to the strict rules that FB advocates, they really must deploy more human beings if they intend to have success in this endeavour. And that means really investigating what is flagged, reading threads in all languages etc. Because the risk of flagging the wrong guy is just too high. Admins get flagged all the time for kicking out bullies, and the use of reporting tools as a revenge strategy *must* carry a penalty.
MeWe is thankfully not like G+ which (in my personal opinion) was counter-intuitive and damn right intrusive. We all remember the G+ auto-upload feature, where some 3 million users had their family photos, vacation photos and .. ehrm, “explicitly personal” photos uploaded without consent.
Well, the MeWe app is very simple, and registration is as easy as it should be. You make a user name, a password, and type in your email; then you verify your email and that’s it!
Besides, my main use for Facebook or MeWe is to run the groups – I spend very little of my time socializing anyways. With the amount of groups and media i push on a daily basis it’s quite frankly their loss.

The MeWe group functionality is very good, and almost identical to Facebook
The alternative to MeWe is to setup a proper web forum instead. I have bought 6 domains that are now collecting dust so yes, I will look into that – but the whole purpose of a social platform is that you don’t have to do maintenance beyond daily management – so MeWe saves us some time.
So head over to MeWe and register! Here are the two main groups I manage these days. The main groups are on facebook, but i have now registered the same groups on MeWe.
MeWe doesn’t cost anything and takes less than 5 minutes to join. Just like G+ and Facebook, MeWe can be installed as an app for your phone (both iOS and Android). So as far as alternatives go, it’s a good alternative. One more app wont do much harm I imagine.
Note: I will naturally keep my Facebook account for the sake of the groups, but having experienced this 4 times in 9 years, my tolerance of Mr. Suckerberg is quickly reaching its limits. If I have blurted something out I have no problems standing for that and taking the penalty, but posting a picture of software development? In a group dedicated to software development? That takes some impressive mental acrobatics to accept.
HexLicense, Patreon and all that
Apparently using modern service like Patreon to maintain components has become a point of annoyance and confusion. I realize that I formulated the initial HexLicense post somewhat vague and confusing, in retrospect I will admit that and also take critique for not spending a little more time on preparations.
Having said that, I also corrected the mistake quickly and clarified the situation. I feel some of the comments have been excessively critical for something that, ultimately, is a service to the community. But I’ll roll with the punches and let’s just put this issue to bed.
From the top please
I have several products and frameworks that naturally takes time to maintain and evolve. And having to maintain websites, pay for tax and invoicing services, pay for hosting (and so on), well it consumes a lot of hours. Hours that I can no longer afford to spend (my work at Embarcadero must come first, I have a family to support). So Patreon is a great way to optimize a very busy schedule.
Today developers solve a lot of the business strain by using Patreon. They make their products open source, but give those that support and help fund the development special perks, such as early access, special builds and a more direct line of control over where the different projects and sub-projects are heading.
The public repository that everyone has access to is maintained by pushing the code on interval, meaning that the public “free stuff” (LGPL v3 license) will be some months behind the early-access that patrons enjoy. This is common and the same approach both large and small teams go about things in 2018. Quite radical compared to what we “old-timers” are used to, but that’s how things work now. I just go with flow and try to do the most amount of good on the journey.
Benefits of Patreon
The benefits are many, but first and foremost it has to do with time. Developer don’t have to maintain 3-4 websites, pay for invoicing services on said products, pay hosting fees and rent support forums — instead focus is on getting things done. So instead of an hour here and there, you can (based on the level of support) allocate X hours within a week or weekend that are continuous.

Patreon solves two things: time and cost
Everyone wins. Those that support and help fund the projects enjoy early access and special builds. The community at large wins because the public repository is likewise maintained, albeit somewhat behind the cutting edge code patrons enjoy. And the developers wins because he or she doesn’t have to run around like a mad chicken maintaining X number of websites -wasting more time doing maintenance than building cool new features.
And above all, pricing goes down. By spreading the cost over a larger base of interest, people get access to code that used to cost $200 for $35. The more people that helps out, the more the cost can be reduced per tier.
To make it crystal clear what the status of my frameworks and component packages are, here is a carbon copy from HexLicense.com
For immediate release
Effective immediately HexLicense is open-source, released under the GNU Lesser General Public License v3. You can read the details of that license by clicking here.
Patreon model
In order to consolidate the various projects I maintain, I have established a Patreon account. This means that people can help fund further development on HexLicense, LDEF, Amibian and various Delphi libraries as a whole. This greatly simplifies things for everyone.
I will be able to allocate time based on a broader picture, I also don’t need to pay for invoicing services, web hosting and more. This allows me to continue to evolve the components and code, but without so many separate product identities to maintain.
Patreon supporters will receive updates before anyone else and have direct access to the latest code at all times. The public bitbucket repository will be updated on interval, but will by consequence be behind the Patreon updates.
Further security
One of the core goals on Patreon is the evolution of a bytecode compiler. This should be of special interest to HexLicense users. Being able to compile modules that hackers will be unable to debug gives you a huge advantage. The engine is designed so that the instruction-set can be randomized for a particular build. Making it unique for your application.

The LDEF assembler prototype running under Smart Mobile Studio
Well, I want to thank everyone involved. It has been a great journey to produce so many components, libraries and solutions over the years – but now it’s time for me to cut down on the number of projects and focus on core technology.
HexLicense with the update license files will be uploaded to BitBucket shortly.
Sincerly
Jon Lennart Aasenden
Power for pennies, getting a server rack and preparing my ultimate coding environment
One of the benefits of doing repairs on your house, is that during the cleanup process you come over stuff you had completely forgot about. Like two very powerful Apple blade servers (x86) I received as a present three years ago. I never got around to using them because I there was literally no room in my house for a rack cabinet.
Sure, a medium model rack cabinet isn’t that big (the size of a cabin refrigerator), but you also have to factor in that servers are a lot more noisy than desktop PCs; the older they are the more noise they make. So unless you have a good spot to place the cabinet, where the noise wont make it unbearable to be around, I suggest you just rent a virtual instance at Amazon or something. It really depends on how much service coding you do, if you need to do dedicated server and protocol stress testing (the list goes on).
Power for pennies

Sellers photo. It needs a good clean, but this kit would have set you back $5000 a decade ago; so picking this up for $400 is almost ridicules.
The price of such cabinets (when buying new ones) can be anything from $800 to $5000 depending on the capacity, features and materials. My needs for a personal server farm are more than covered by a medium cabinet. If it wasnt for my VMWare needs I would say it was overkill. But some of my work, especially with node.js and Delphi system services that should handle terabytes of raw data reliably 24/7, that demands a hard-core testing environment.
Having stumbled upon my blade servers I decided to check the local second-hand online forum; and I was lucky enough to find (drumroll) a second-hand cabinet holding a total of 10 blades for $400. So I’ll be picking up this beauty next weekend. It will be so good to finally get my blades organized. Not to mention all my SBC / Node.js cluster experiments centralized in one physical location. Far away from my home office space (!)
Interestingly, it comes fitted with 3 older servers. There are two Dell web and file servers, and then a third, unmarked mystery box (i3 cpu + sata caddies so that sounds good).
It really is amazing how much cpu fire-power you can pick up for practically nothing these days. $50 buys you a SBC (single board computer) that will rival a Pentium. $400 buys you a 10 blade cabinet and 3 servers that once powered a national newspaper (!).
VMWare delights
All the blades I have mentioned so far are older models. They are still powerful machines, way more than $400 livingroom NAS would get you. So my node.js clustering will run like a dream and I will be able to host all my Delphi development environments via VMware. Which brings us neatly to the blade I am really looking forward to get into the rack.
I bought an empty server blade case back in 2015. It takes a PSU, motherboard, fans and everything else is there (even the six caddies for disks). Into this seemingly worthless metal box I put a second generation Intel i7 monster (Asus motherboard), with 32 gigabyte ram – and fitted it with a sexy NVidia GEFORCE GTX 1080 TI.

All my Delphi work, Smart work and various legacy projects I maintain, all in one neat rack
This little monster (actually it takes up 2 blade-spots) allows me to run VMWare server, which gives me at least 10 instances of Windows (or Linux, or OSX) at the same time. It will also be able to host and manage roughly 1000 active Smart Desktop users (the bottleneck will be the disk and network more than actual computation).
Being a coder in 2018 is just fantastic!
Things we could only dream about a decade ago can now be picked up for close to nothing (compared to the original cost). Just awesome!
Paypal, enough is enough
I used to love PayPal. Really, it was a brilliant solution to a global problem.
As a software developer living in Norway, where I spend most of my time with people who live and work in the United States, India or the Arab Emirates – commerce can sometimes be a challenge. It’s a strange situation to be in, where you have lunch with people thousands of miles away. You call up your friends in NYC after work just like you would a friend down the street; and in the weekend you share a cold beer over video chat, or team up on Playstation to enjoy a game together.
I have become, for all means and purposes, an american by proxy.
As a software developer part of what I do is to produce software components. These are intricate blocks of code that can be injected into programs, thus saving other developers the time it takes to implement the functionality from scratch. This is a fantastic thing because one person cannot possibly cope with “everything”. Buying components and libraries is a fundamental part of what a software manager does when prototyping a new product. It is a billion dollar industry and it’s not going away any time soon.
The reason is simple: if you hire someone to research, implement and test something you need in your product, the wages you pay will be 10-100 times higher than if you just buy a pre-fabricated module. I mean, allocating 2 developers to work full-time for a month to make a PDF rendering component (as an example of a complex component) will cost you two months salary. This also leaves you with the responsibility for bugs, updates – the whole nine yards.
“PayPal has a policy where it completely ignores the voice of merchants. They automatically side with the customer and will thus remove funds from your account as they please”
Lets say you have two junior developers making $6000 a month each, coupled with an estimate of 8 weeks to finish the functionality (which is always wrong, so add a couple of weeks for Q&A), that brings us to $12000 + $6000 = $18000. OR — you can just buy a ready to use component for $500 and have PDF support up and running in a day. This also delegates bug-fixing, documentation and updates onto the vendor.
When I wanted to set up shop, I figured that PayPal would be an excellent platform to use. I mean, it’s been around for so long that it’s become intrinsic to international, online economics. It’s available everywhere, and their percentage of sales is reasonable.
Well, that turned out to be a mistake. PayPal is not cool at all when you move from consumer to merchant. Which takes weeks by the way if you live outside the US. You have to send in photocopies of your passport, credit card receipts and social security information; which is illegal in Norway and a serious breach of privacy.
It’s only your money if we allow it
We live in a world where there are a lot of terrible people. People that sell broken goods, that lie, steal and is willing to do just about anything if it benefits them. Honesty is almost regarded as a burden in online business, which I detest and refuse to take part in.
“The second and third calls [to PayPal] resulted in 45 and 90 minutes of “please hold”. They literally exhausted their own merchant to make the case go away.”

UPS is on my door more than the average American household. This is the new reality.
Lord knows I have been victim to some extremely unjust sales representative in my time (havent we all). And the experience has often been that you are helpless once you have received a product. It doesn’t matter if the product you received was faulty, the wrong size – or even the wrong bloody product! As a consumer you often have to calculate how much it will cost you to fight back. And more often than not, fighting back costs more than just accepting that you have been ripped off. I mean, nobody is stupid enough to return the wrong goods to China (for example), because you will never hear from them again.
Well, once I switched from being just a consumer to selling goods and becoming a PayPal merchant – I was shocked to discover that it’s the same situation on the other side! But not from small, semi anonymous scam artists; no it turned out to be PayPal.
PayPal has a policy where it completely ignores the voice of merchants. They automatically side with the customer and will thus remove funds from your account as they please. This happens without a dialog with you as a merchant first. They just waltz in and help themselves to your funds. It’s like something out of a 12th century trial where you are guilty by default and thus there is no room for documentation or evidence to the contrary.
“PayPal didn’t even bother to contact me for verification or comments. They just helped themselves to my registered credit card – which in Norway would have landed them in jail for theft.”
In my case where I sell software components, which by nature is digital and delivered via e-mail, that leaves me as a vendor completely without a voice.
Just weeks ago I got a strange e-mail from a customer who claimed he had not received my software. I naturally took that very seriously so I checked, double checked and triple checked that the software had been sent. I also checked the log on my server to see if the download ticket had been activated (it is marked as active when a full download has been completed. It remains open for 12 months which is the duration of the license).
Well the ticket was active, so there was no doubt that the customer had indeed downloaded the product. And it was downloaded in full. The server picks up on partial downloads so it doesn’t activate should the customer have network problems.
But hey, accident can happen, maybe the customer managed to delete the file or his hard disk was damaged. I gave him the benefit of the doubt and informed him that the ticket has been activated, but he can download as many times as he wants for the duration of 12 months.
In return I got an email saying: “He he, its all good. Thx!“
Well, it sure was all good for him, but not for me. Not only had this man downloaded and made use of my product, he sent a false claim to PayPal stating that he never received the software. And since PayPal can’t deal with packages that are not shipped through their explicit channels (which is made for physical goods, not digital), that was that.
PayPal didn’t even bother to contact me for verification or comments. They just helped themselves to my registered credit card – which in Norway would have landed them in jail for theft.
“A parallel is of a man entering a store, buying an ice-cream, slowly removing the wrapping and starting to eat – while walking over to the store manager claiming, he never got an ice-cream to begin with.”
Had PayPal bothered to contact me, which both Norwegian and European law demands, I could easily document that the customer had indeed downloaded and activated the product. I have both the e-mails between the customer and myself, as well as the ticket logs from the hosting company I use.
There is no doubt that this ticket has been spent, only hours before this scam artist sent his false claim to PayPal.
International vs. national law
Norwegian law gives a merchant 3 chances to rectify a situation. This law applies where the customer has not received what they ordered, where they have received a broken item – or where there has been problems with delivery.
When you sell software however, there are two types with very different rules attached to them. The second method is rarely used outside the world of engineering:
- Compiled proprietary software, which doesn’t avail how the product is made and the customer does not have access to the source code.
- Source code for proprietary software, where the customer receives the actual source code for the product and are allowed to adapt the code. But there are strict rules for not sharing or re-selling this – since it’s very much intellectual property and once shared, cannot be un-shared.
The latter, source code packages (which is what my customer bought), also falls under “spoilables”, meaning that once the customer has received the package, they cannot return it. This applies to other goods too, such as underwear. Since the merchant cannot know if the product has been used (or copied in the case of source-code) – there is never any return policy on such goods once delivered. If the product has not been delivered however, normal return policies apply.
Since PayPal is an American company, I can understand there is some aversion for adapting their services to every known framework of law known to mankind. But I cannot imagine that American legislation on this topic can differ much from Norwegian law. Selling compiled code vs. source-code are two very different things. Comparable to frozen goods and fresh goods. You dont have a 3 week return policy on fruit for obvious reasons.
A parallel is of a man entering a store, buying an ice-cream, slowly removing the wrapping and starting to eat – while walking over to the store manager claiming, he never got an ice-cream to begin with.
There is no way in hell that this would fly with an american store manager. A friend of mine in San-Diego was so upset on my behalf that he called Paypal directly, but they refused to comment without written consent from me. Which I then sent, only to magically disappear.
The second and third calls resulted in 45 and 90 minutes of “please hold”. They literally exhausted their own merchant to make the case go away.
PayPal, trust is a two way street
This episode has shocked me. In fact it has forced me to close my PayPal merchant account permanently. And I will avoid using PayPal as much as possible until they can show normal, human decency for law-abiding citizen, regardless of what country they come from.
Would you run a business with a third-party that can just help themselves to your accounts? I can’t imagine anyone would.
I have no problem giving a customer his money back, provided the delivery ticket is un-spent. Had the customer been unable to download or somehow gain access to the product – then of course normal money back rules apply. I’m not out to cheat anyone, nor am I hard to talk with.
But when there is no dialog at all – and your “bank” ignores the fact that some people are willing to do anything to cheat his fellow-man, that’s when I pack up and leave.
Amibian + Smart pascal = A new beginning
In the Amiga community there is a sub-group of people with an agenda. They hoard and collect every piece of hardware they can get their hand on – then sell them at absurd prices on ebay to enrich themselves. This is not only ruining the community at large, ensuring that ordinary users cannot get their hands on a plain, vanilla Amiga without having to fork out enough dough to buy a good car.
“We also have a working Facebook clone – but we’re not
going into competition with Mark Zuckerberg either”
Thankfully not everyone is like that. There are some very respected, very good people who buy old machines, restore them – and sell them at affordable prices. People that do this as a hobby or to make a little on the side. Nothing wrong with that. No, its people that try to sell you an A2000 for $3000, or that pimp out Vampire accelerator cards at 700€ a piece thats the problem.
As for the price sharks, well – this has to stop. And Gunnar’s Amibian distro has already given the Amiga scalpers a serious uppercut. Why buy an old Amiga when you can get a high-end A4000 experience with 4 times as much power for around $35? This is what Gunnar has made a reality – and he deserves a medal for his work!
And myself, Thomas and the others in our little band of brothers will pick up the fight and stand by Gunnar in his battle. A battle to make the Amiga affordable for ordinary human beings that love the platform.
Amiga as a service
Yesterday I did a little experiment. You know how Citrix and VMWare services work? In short, they are virtualization application servers. That means that they can create as many instances of Windows or Linux as they want – run your applications on it – and you can connect to your instance and use it. This is a big part of how cloud computing works.
While my little experiment is very humble, I am now streaming a WinUAE instance display from my basement server pc, just some old bucket of chips I use for debugging, directly into Amibian.js (!). It worked! I just created the world’s first Amiga application server. And it took me less than 30 minutes in Delphi !
Amibian, Amibian.js, appserver, what gives?
Let’s clear this up so you dont mix them:
Amibian. This is the original Linux distro made by Gunnar Kristjansson. It boots straight into UAE in full-screen. All it needs is a Raspberry PI, the Amiga rom files and your workbench or hard disk image. This is a purely native (machine code) solution.
Amibian.js – this is a JavaScript remake of AmigaOS that I’m building, with the look and feel of OS 4. It uses uae.js (also called SAE) to run 68k software directly in the browser. It is not a commercial product, but one of many demos that ship with Smart Mobile Studio. “Smart” is a compiler, editor and run-time library sold by The Smart Company AS. So Amibian.js is just a demo, just like Amos shipped with a ton of demo’s and Blitzbasic came with a whole disk full of examples.
Amiga application server (what I mentioned above) was just a 30 minute experiment I did yesterday after work. Again, just for fun.
I hope that clears up any confusion. Amibian.js is a purely JavaScript based desktop made in the spirit of the Amiga – it must not be confused with Amibian the Linux distro, which boots into UAE on a Raspberry PI. Nor is it an appserver – but rather, it can connect to an appserver if I want to.

Generation Amiga post on Amibian.js earlier when I added some look & feel
With a bit of work, and if everything works as expected (I don’t see why not), I will upload both source and binaries to github together with Amibian.js.
There is only one clause: It cannot be used, recreated, included or distributed by Cloanto. Sorry guys, but the ROMS belong to the people, and until you release those into public domain, you wont get access to anything we make. Nothing personal, but pimping out roms and even having audacity to fork UAE and sell it as your own? You should be ashamed of yourself.
Are you in competition with FriendOS?
This question has popped up a couple of times the past two weeks. So I want to address that head on.
I make a product called Smart Mobile Studio. I do that with a group of well-known developers, and we have done so for many years now. The preliminary ideas were presented on my blog during the winter 2009, early 2010 and we started working (and blogging) after that. Smart Mobile Studio and it’s language, Smart Pascal (see Wikipedia article), takes object pascal (like freepascal or Delphi) and compiles to JavaScript rather than machine code.

The Smart compiler is due for OS4 once i get the A1222 in my hands
One of the examples that has shipped with Smart Mobile Studio, and also been available through a library called QTX, is something called Quartex Media Desktop. Which is an example of a NAS server front-end, a kiosk front-end (ticket ordering, cash machines etc) or just an intranet desktop where you centralize media and files. It is also node.js powered to deal with the back-end filesystem. This is now called amibian.js.
In other words – it has nothing to do with Friend software labs at all. In fact, I didn’t even know Friend existed until they approached me a few weeks ago.

The Quartex Media desktop has been around for ages
Amibian.js is just an update of the Quartex Media Desktop example. It is not a commercial venture at all, but an example of how productive you can be with Smart pascal.
And it’s just one example out of more than a hundred that showcase different aspects of our run-time library. This example has been available since version 1.2 or 1.3 of Smart, so no, this is not me trying to reverse engineer FriendOS. Because I was doing this long before FriendOS even was presented. I have just added a windowing manager and made it look like OS4, which also happened before I had any contact with my buddies over at Friend Software Labs (why do you think they were interested in me).

Early 2017 Linux bootloader by Gunnar
So, am I in competition with Friend? NO! I have absolutely no ambition, aspiration or intent for anything of the sorts. And should you be in doubt then let me break it down for you:
- Hogne, Arne, David, Thomas, Francois and everyone at Friend Software Labs are friends of mine. I talk almost daily with David Pleasence who is a wonderful person and an inspiration for everyone who knows him.
- Normal people don’t sneak around stabbing friends in the back. Plain and simple. That is not how I was raised, and such behavior is completely unacceptable.
- Amibian.js is 110% pure Amiga oriented. The core of it has been a part of Smart for years now, and it has been freely available for anyone on google code and github.
- For every change we have made to the Smart RTL, the media desktop example has been updated to reflect this. But ultimately it’s just one out of countless examples. We also have a working Facebook clone – but we’re not going into competition with Mark Zuckerberg for that matter.
- People can invent the same things at the same time. Thats how reality works. There is a natural evolution of ideas, and great minds often think alike.
Why did you call it Amibian.js, it’s so confusing?
Well it’s a long story but to make it short. The first “boot into uae” thing was initially outlined by me (with the help of chips, the UAE4Arm maintainer). But I didn’t do it right because Linux has never really been my thing. So I just posted it on my retro-gaming blog and forgot all about it.
Gunnar picked this up and perfected it. He has worked weeks and months making Amibian into what it is today – together with Thomas, our spanish superhero /slash/ part-time dictator /slash/ minister of propaganda 🙂
We then started talking about making a new system. Not a new UAE, but something new and ground breaking. I proposed Smart Pascal, and we wondered how the Raspberry PI would run JavaScript performance wise. I then spent a couple of hours adding the icon layout grid and the windowing manager to our existing media desktop – and then fired up some HTML5 demos. Gunnar tested them under Chrome on the Raspberry PI — and voila, Amibian.js was born.
And that is all there is to it. No drama, no hidden agendas – and no conspiracy.
I should also add that I do not work at Friend Software Labs, but we have excellent communication and I’m sure we will combine our forces on more than one software title in the future.
On a personal note I have more than a few titles I would like to port to FriendOS. One of my best sellers of all time is an invoice and credit application – which will be re-written in Smart Pascal (its presently a mix of Delphi and C++ builder code). The same program is also due to Amiga OS 4.1 whenever I get my A1222 (looking at you Trevor *smile*).
Well, I hope that clears up any misunderstanding regarding these very separate but superficially related topics. Amibian.js will remain 100% Amiga focused – that has been and remains our goal.
Ode to our childhood
Amibian is and will always be, an ode to the people who gave us such a great childhood. People like David Pleasence who was the face of Commodore in europe. A man who embody the friendliness of the Amiga with his very being. Probably one of the warmest and kindest people I can think of.
Francois Lionet, author of Amos Basic. The man who made me a programmer and that I cannot thank enough. And I know I’m not alone about learning from him.
Mark Sibly, the author of BlitzBasic, the man who taught me all those assembler tricks. A man that deserves to go down in the history books as one of the best programmers in history.
And above all – the people who made the Amiga itself; giants like Jay Miner, Dave Haynie, Carl Sassenrath, Dave Needle, RJ Michal (forgive me for not listing all of you. Your contributions will never be forgotten).
That is what Amibian.js is all about.
Patents and greed may have killed the actual code. But we are free to implement whatever we like from scratch. And when I’m done – your patents will be worthless..
Overclocking Raspberry PI 3, part 2
If you havent read my first installment then head back and read it here.
Right. Overclocking is not something that should be taken lightly. I have seen people get cpu-burn and basically kill their brand new Intel i7 CPU’s – effectively throwing well over a thousand dollars worth of gear straight out the window.
My idea of overclocking is not to push the cpu to the bleeding edge. Moderation is the keyword here. Its like when we were kids and bought trim-set’s for our mopeds and dirt-bikes. Filing down the intake on the cylinder and pumping more gasoline in could get that 50cc engine yielding 70 KPM rather than the default 50. But if you filed even 5mm too much, you could pretty much throw the whole cylinder in the thrash. And if you didn’t get a dedicated cylinder with better cooling — the whole engine would burn out.
The test
You can get some heavy-duty performance test-kits for Linux, but for moderate overclocking I find that practical, hands on testing works just as well. In my case I have used a simple JavaScript demo (actually a port of a JS68k demo to Smart Pascal) that I compiled on my PC and dumped on my server.
On my Raspberry PI I just start Chromium and let the demo run.
Without overclocking I get the following performance factors:
- 1-2 frames per second
- 46-57% CPU usage in task-manager
Preparing the hardware
I bought a simple, cheap set of 3 heat-sinks for around $2. So first order of the day is to get that attached to the 3 chips that more or less make up the Raspberry PI 3b.
My son managed to play a cheap graphics card to death earlier, which just happened to have a small fan. So I took that fan and attached it to the heat-sink with a double-sided tape pad, then connected the power cords to the GPIO pins. This ensures a reasonable degree of cooling. Not top of the line liquid stuff – but a lot better than just heatsinks alone. And hey, it’s a $35 SoC, so heat sink pluss fan is pretty much giving it the royal treatment.

That’s one pimped up Amiga 500! 🙂
The settings
Next is to adjust the config file to perform the actual overclocking. Again, I stick to safe values. You could probably push this further by adjusting sdram read and write frequencies — but you may end up burning the whole thing to pieces. Also, the keyword here is “safe”. To much overclocking and the amount of computational errors actually renders the whole thing useless.

Not running out of SD card slots any time soon!
Start a command-line prompt and do:
cd .. cd .. cd boot sudo nano config.txt
Now scroll down until you find
#uncomment to overclock the arm. 700 MHz is the default.
Replace the values there with:
#uncomment to overclock the arm. 700 MHz is the default. arm_freq=1350 over_voltage=5 sdram_freq=500 gpu_freq=500 core_freq=575
Next, hit CTRL+X, press Y, then enter to save the file. Now type:
reboot
Performance test
Now simply start Chromium again and run the demo. The performance have now gone up quite considerably:
- 8-9 frames per second
- 42% CPU usage in task-manager
Now let’s check the temp. From what I read, the core will blow at around 80 degrees, so no matter what you decide to do – make sure it stays well below that.
Open up a command-line prompt and type the following:
/opt/vc/bin/vcgencmd measure_temp
Let’s do some maths
Since the JavaScript demo is a “per-pixel demo”, meaning that it uses the canvas to draw stuff, with a secondary callback cycle applying an alpha clear to give the impression of fading pixels out ( fillrect(0,0,width,height, rgba(0,0,0,0.3)) ) running out of sync — the demo is actually processing millions of bytes per frame.
Just for sake of argument, lets say the chrome window is “1024 x 1024” in 32 bit mode (which is an understatement, but let’s go with that). We then get:
- 1024 * 4 (four bytes per 32 bit pixel) = 4096 bytes per scanline
- 4096 * 1024 = 4,194304 million bytes per frame
There is also a stride offset, but I will ignore that since it probably amounts to about 1kb or less. Right, since we are now drawing 9 frames instead of 2, this gives us:
7 * 4194304 = 29360128 – a boost of 29.3 million bytes per second
Final words
Im sure you can overclock the shit out of this if you really want, but honestly — I would rather have a piece of kit I can trust, that is stable, that dont renders the device useless in six months time – and that gives me that little extra I need for my embedded work (or Amiga emulation for that matter).
Well, that’s it for now — Remember to practise safe hex!
Geek, Wish and Banggood – Scam alert!

Got ripped off? Where is a GIF of wonderwoman to make you feel better
When shopping electronics in our day and age, with our global economy, it’s super important that you can actually trust the companies involved. No matter if they reside in the US, Norway, France or in the far east – trust is a bond that is the basis of commerce.
One of the most read articles on this blog, and that should say something considering I have been blogging on a weekly basis for years now – is my post about the Assassins Creed hoodie scam. If you read the comments you will notice how many have fallen for this scam and that they keep changing name whenever they get too much heat. Thankfully my blog has pretty good coverage, so I have helped save a lot of people out of getting ripped off — which I consider my duty regardless of where you live.
I therefore feel its my duty to warn you about these online vendors as well, namely: Geek, Wish and Banggood. Because having used their services for the past year, they represent probably the worst experiences I have ever had when ordering goods abroad.
Geek and Wish
These two are actually one and the same. It doesn’t matter if you download the Wish app or the Geek app — it’s the same asian online mall, and where you get the impression that you are ordering from a single store (or at least someone who ensures a reasonable degree of responsibility), its actually hundreds of individual stores all cooked together into a single, massive catalog.
In short, asian retailers can register and get their goods included in the single webshop, but they can reside in completely different regions (even nations).
And the rating system that is supposed to protect you is a complete scam as well. I spent the better part of an afternoon looking up electronics, and I found the same comments with different names on completely different products. In some cases they havent even bothered to clean up the text, but had a review for bath-robes on super-nintendo compatible handheld consoles, bicycle lights on green laser products (and so on). So you essentially had a few hundred comments that were utterly fake, rotated and adapted to different products. Some comments were real ofcourse, but you dont exactly trust a store that you know includes fake feedback comments and ratings.
Sadly I noticed this after I had aleady ordered and paid.
As for getting what you actually ordered, well – I am still waiting for my two touch screens to use with my Raspberry PI. It’s now been almost two months since I first ordered, and my email’s to the shop is not even replied to. And the tracking ID for the packages I got in my order-confirmation email are invalid (I tried to use them and they dont work) — so this was me throwing money out the window.
When it comes to what you order and what you get, that is rarely the case. I ordered 2 handheld consoles which was advertised as being SNES and Mame compatible. Quad Core CPU, 1 gigabyte of ram and support for normal TF cards. What I got was a useless handheld that just barely supported Gameboy roms – and it struggled to even start them (!) The menu system was sluggish. So sluggish it was almost impossible to navigate the games that were built into the device. When trying to return this and launch a complaint, the store-salesman replied in chinese to everything. On purpuse, because when I first contacted them they replied in english. It was only when I brought up the complaint that they switched to chinese to brush me off. Basically he just did not care that what I received was not what I ordered. And he made no effort to clean up his mess. In other words: a scam.
When I contacted wish, that has a european contact number – rather than being helpful they just argued against what I had to say. It is by far the worst experience I have ever had with regards to online ordering.
Banggod
This is another, similar concept as wish and geek. The sneaky part is that they have translated webpages that gives the impression that you are ordering from a local branch -or at least within the EU. But on closer examination it is yet another asian mall front. Stores can register and there is no system in place to kick stores out based on feedback – or give them negative feedback that actually sticks.
Here I paid with my credit card, yet they managed to send me a bill via a Norwegian invoice company. And just like wish and geek – they have no interest in your case, they just want to get rid of you.
Stay away
I don’t base my warning on a single case. In all cases I have ordered multiple products, and I have also given each system a second chance. In which they all failed and was useless to me as a customer. As for customer service they exclusively took the store’s side (which is absurd when you have ordered a quad-core cpu based product, and you get something running of a cpu that couldn’t even control a dish-washer).
So you should stay away from these, because you will be ripped off one way or another.
Use AliExpress instead
The only asian store-front I have good experiences with is AliExpress. They have a real comment system in place, and they also have a working feedback system. If a store get’s to many negative responses they are actually kicked out. As such the emphasis is on positive feedback and being honest. A negative score is enough to lose hundreds of sales so naturally they work very hard to make sure things work.
When ordering via AliExpress I have never once gotten something else, I have always gotten exactly what I ordered – and there is also a refund system that will refund you should a store try to cheat you. In fact, money is held in escrow until the package has been tracked to your address and is marked as delivered.
You then have 14 days to demand a refund, in which you have to send the package back and give AliExpress the new tracking number. Once the package has been verified as delivered, you get your money back.
For components I suggest RC electronics. I just dont order that much from china any more because (and I am sad to say this) they have to many scams and you cant trust them. But when I order from asia, its via AliExpress. I have yet to have a bad experience there.
Apparently I am the devil
This has been quite a week for me. Apparently my post on C# hit a nerve and I have so far gotten around 34 hate-mails. That’s a first even for me. I have been out a rainy day before as we say in Norway, but hate mail over programming? If facts hurt you that much then please seek professional help. With great haste I might add.
Jon is the devil
But the biggest shock was getting a phone-call today. From a friend of mine who runs a Delphi company. They have recently started to use Smart Mobile Studio for some light mobile clients, projects where Delphi would be overkill or to demanding.
A while back he hired a guy from the FPC / Lazarus team (both products that I love by the way!). When this coder, who shall remain anonymous, found out I was a personal friend on Facebook — he bloody went and quit his job!

Just way to go! Group-hug, starbucks on the house and pat on the back
Apparently he could not find it in his heart to work for a company that regarded me as a friend. Because, in his words, I was lucifer himself. Why? Because I pose (in this deranged individual’s mind) a threat to Freepascal and all the work they had done.
I’m not sure what to even respond to this. My natural instinct is to lay down on the floor and laugh until I cant feel my legs, but at the same time I feel a bit sad. Sad that grown men, adults, people who probably pretend to be role models for their kids, can even do shit like this.
That FPC forum again
The freepascal community is widely known as the most unfriendly community in the history of mankind, but this particular case really is the mother-load of insanity. We are bordering on fundamentalism here. You are one AK-47 away from being the first hands on pascal terrorist. With a manifest written in pascal of course. Death to the JavaScript infidels! Node.js must die! Did you see the fangs when Jon smiled? He’s a witch!
Sadly, my involvement with Freepascal and Lazarus is insignificant at best. But they dont like people who hit back when bullied, and this has festered into the conspiracy nutters they represent today.
I once had plans to help freepascal by writing an alternative IDE. Something roughly 100+ other developers also wanted by the way. I also helped out by submitting code to get special folders on Windows, Linux and Unix through a common set of functions. And that’s about the extent to my involvement with their codebase.

Quartex IDE uses both smsc and fpc as its compiler. I never finished it because the fpc guys were utter nutballs about it. But it works, and it works very well!
I also warned them, together with two others, both respected members of the Delphi community, that a popular fork of Lazarus was breaking every possible GPL rule known to mankind (!) — And I did this in order to protect Lazarus/fpc from getting caught in the middle of a potential lawsuit.
If protecting Lazarus from harm is a diabolical, hellish act of evil – then I guess am guilty as charged. And I would do it again because Freepascal and Lazarus deserves to be protected. It is a cornerstone of the pascal community. It’s only so damn sad that many of its representatives (especially the self-proclaimed ones who couldn’t code a compiler if their life depended on it) practically molest and insult new users for no good reason. So much so that people avoid FPC and Lazarus because of it.

I heard he said that she said that maybe he meant that .. oh for the love of god pick up the phone and get the facts!
But people quitting their job because I supposedly am Lucifer incarnate, that’s a new high. Or low, or whatever comes natural. Coming face to face with mental illness on this scale is new to me, so I need some time to digest this.
But dude, seek help. Professional help. Call your doctor and get a huge glass of Valium, take two pills and contemplate every possible meaning of the phrase “social refactoring“.
You need to set some serious break points in your reasoning. Because quitting your day job over a misunderstanding on a web-forum, that my friend is reason in ruin.
You see, if I was full of shit; If I produced crap code, or indeed – if my predictions and analysis of trends were wrong (which they rarely are) – then you could sink me quite easily. But when that is not the case, when in fact I write pretty good code, when I share my knowledge and help people the best I can, when I keep up to date and invest back in the community I love so much; then the situation is very different.
You will discover that I can bite back and be just as nasty as you. But I choose not to, because you don’t treat people like that. If growing up has a perk it’s that you understand the value of kindness and companionship, of community and helping each other.
So why not solve this like a civilized, normal human being? just ask. Give me a call, get the facts. Dont sit there like a 14-year-old girl and base your assumptions on rumors. If in doubt, just call me up and ask. Then we can put whatever misunderstanding there may be to rest. You might even discover that I’m actually a nice guy!
Now back to the Delphi community where people are friendly, positive, creative and easy going!
The case for Raspberry PI, FPGA and AmigaOS 4.1
First, thanks for so many good comments on the whole Amiga retro-emulation concepts. I think there is a sort of resurgence today of the whole retro gear thing. On Facebook the Amiga forums and groups are growing, and there is really a sense of community there. Something I havent experienced with the Amiga for well over a decade (or was it two?).
To those that grew up without an Amiga we “old timers” must seem nuts. But that is to be expected by generations growing up with 24/7 internet connections. I’m not dizzing young programmers in any way, absolutely not; but I will make a case that you are missing out on something very valuable in terms of learning and evolving your skill.
“It’s just that it’s based on pre-existing hardware, not an imaginary instruction-set that
assaults the stack while raping the instruction cache”
The term “personal computer” (PC) doesnt really have any meaning today. I see that with my son as well. He has no personal relationship with his computer at all. The computer is a means to an end for him and his friends – a portal if you like, to the reality on the internet. Be it steam, Photoshop express, chatting or whatever. Young coders sort of have a split reality, where their friends online that they have never meet plays a bigger role in their lives than, well, their best friend across the street.

Classic Amiga Workbench running under Amibian
People who grew up without the internet had only their computer to deal with. It was the center of music, demos, games and creativity. Be it coding, graphics, sound or whatever was the interest. The result was naturally that you created bonds to that computer that, to other people, could seem odd or silly. But the phrase “personal computer” is not just a throwback to the time when you no longer needed a campus mainframe or terminal. It also hints to a more personal approach to technology. Which is easy to forget in an age where you switch mobile phones once a year, and the average phone has more computing power than was on the planet in the 1970’s.
Amiga emulation; why it’s a good thing
If we forget the visual aspects of the grey “classical” Amiga OS for a moment and put the looks on the backburner — why on earth should a modern programmer or computing enthusiast even consider Amiga OS? What could a 30-year-old tech bring to a modern world of high-powered CPU and GPU driven monsters?
In a word: efficiency.
AmigaOS thrives with just one megabyte of memory. Stop and think about that for a moment. The core operating system itself resides in a 512kb (half a megabyte) ROM – and the rest fits nicely on a couple of 720kb disks. So if we say that a full desktop experience can fit in 4-5 megabytes (if we include the programs, accessories and extras), what does that tell you?
It should tell you something about how the code is written. But secondly it should tell you about how we write code today (!)
“You think Linux is a fast and efficient operating system? You don’t have a clue”
An average Microsoft Windows installation is what? 16 gigabytes? You can probably trim it down to 8 gigabytes by removing services, graphics and drivers you don’t use. There is also a huge difference in the size of executables and the amount of information stored in the binaries — but ultimately it comes down to a shift in mindset that occurred back in the late 90’s: rather than forcing coders to write efficient programs, the emphasis was placed on the hardware to deliver enough power to run crap and bloated code.
Now being a programmer myself I have no illusions that if AmigaOS, this time the modern and latest 4.x version, was ever re-compiled for x86 it would naturally result in bigger binaries. Depending on the amount of drivers, you would probably end up with at least 512 megabytes to 1 gigabyte of software. Add presentation and media to that and we are quickly breaching the 1.5 to 2 gigabyte boundary. But that in itself would be revolutionary compared to the size of Ubuntu or Windows. Yet the core of the operating system is so small that many young developers find it hard to believe.
And yes I know the Linux kernel and base packages can be squeezed down. But in all honesty, Amiga has much more interesting system. Some of the stuff you can do with shell scripting and Arexx on the Amiga, the lack of cryptic complexity, the ease of use and control you as an end-user had; im sorry but Linux is anything but user-friendly.
Why Raspberry PI
By any modern measure, the Raspberry PI is an embedded board at best, and a toy at worst. It exists there between the cusps of single-function boards and a modern computer. But is it really that bad? Actually, its bloody smashing. It’s just that people havent really been able to run anything written specifically for it yet.
Amibian, a debian based distro that boots straight into UAE (Unix Amiga emulator) and runs classical 16/32 bit Amiga OS, presently performs at 3.2 times the speed if an Amiga 4000\o60. So for $35 you will own the most powerful Amiga ever devised. If you take it one step further and overclock the PI (and add a heat-sink so you don’t burn out the SoC) it emulates the Amiga operating system roughly 4 times the speed of the flagship high-end Amiga of the late 90’s and early 2k’s. You also get 32bit graphics, HDMI output, USB device access through the Linux sub-layer, built-in tcp/ip (and WiFi built-in on the model 3b). And naturally: a hell of a lot more ram than the Amiga even needs (!)
Now remember, this is emulated on 68k instruction level (!) It is practically the same as running Java or CLR bytecodes (!) Which is a good parallell. People ask me why i bother with 68k; My reply is: why the hell do you bother with Java bytecodes if you don’t have a clue what a virtual machine is! An emulator is a virtual machine in the true sense of the phrase. It’s just that it’s based on pre-existing hardware, not an imaginary instruction-set that assaults the stack while raping the instruction cache (yeah I’m looking at you Java!).
Imagine then for a second what the situation would be if Amiga OS was compiled for Arm, running natively on the Raspberry PI with direct access to everything. You think Linux is a fast and efficient operating system? You don’t have a clue.
I mean, the PI was initially created to deliver cheap computing power to schools and educational centers, not to mention third-world countries. It made big waves as it blew the ridicules “$100 one PC per child” campagne out of the water (which was more an insult to the poor living in Africa than anything resembling help). Yet at the end of the day – what do these third world countries have to work with? Raspbian and Ubuntu are usable, but only superficially.
Try compiling something on the PI with a modern compiler. What would take less than a second to compile under Amiga OS can take up to 45 minutes to build under Linux on that SoC. If a kid in Africa starts learning C++ with Linux on a PI, he will be 59 years old before he can even apply for a job.
If AmigaOS 4 was ever compiled and setup to match the SoC firmware (which is also a benefit about the PI, the hardware is fixed and very few drivers would have to be made), it would revolutionize computing from the ground up. And I think people would be amazed at just how fast programs can be,when written to be efficient – rather than the onslaught of bloat coming out of Redmond (not to mention Ubuntu which is becoming more and more useless).
The benefit for Hyperion Entertainment, which has done a phenomenal job in upgrading AmigaOS to the modern age, are many:
- Increased sales of the operating system
- Sale of merchandize surrounding the AmigaOS brand
- Sale of SDK and associated development tools
- The establishment of a codebase for OS 4 that is modern
If we take it one step further and look at what would be the next natural step:
- Team up with case producers to deliver a more “normal size” case for the PI with keyboard
- Team up with Cloanto to ship the old ROM files for the built-in 68k emulation layer
The point of all this? To build up money. Enough money for Amiga Inc, Commodore or Hyperion to buy time. Time enough for the codebase to grow and become relevant in the marketplace. Once established, to further sale of a dedicated Amiga HW platform (preferably ARM or X86) and secure the investment the owners have made over the years.
FPGA, the beast of xmas future
FPGA (field programmable gate array) is the future. I don’t care how proud you are of your Intel i7 processor (I have a couple of those myself). Mark my words: 20 years from now you will be blazing behind your FPGA based computer. And I have no doubt that games and applications will adapt the hardware to their needs – with possibilities we can’t even dream about today; let alone define.

Mist. A low-cost FPGA computer capable of becoming an Amiga (and about 10 other platforms). The closest thing to new Amiga hardware to be created in 20 years.
Todays processors are fixed. They have a fixed architecture that is written silicon and copper. Once cooked they cannot be altered in any way. Nanotubes is just about to drop, but again the nature of fixed systems – is that they cannot be altered once cooked.
FPGA however is based on gate logic. Which means (simply put) that the relations that make up the internal architecture is fluid, like a million doors that can be opened or closed to create all manner of living space. In many ways its like a virus, capable of absorbing existing blueprints and becoming “that blueprint”. If we dip into sci-fi for a moment this is the computer variation of a xenomorph, a shape shifter. A creature that can adapt and alter itself to become any other thing.
As of writing this tech is in its infancy. It’s just getting out there and the prices and speed of these spectacular devices bears witness to its age and cost of production. If you want a FPGA with some kick in it, you better be prepared to take out a second mortgage your house.

The Vampire 2 accelerator for Amiga 600. This takes over and gives the Amiga so much power that it can play movies, modern music and 3d games faster than ever imagined. At the same time! In fact, I bought an A600 just to get this!
One of the cool things about this hardware is how it’s being used today. One of the first hardware platforms to be devised for FPGA was (drumroll) the Amiga. And you have to understand that we are not talking just the 68k cpu here – but the whole bloody thing: paula, agnus, deniese, fat agnus and the whole crew of chips that made the Amiga so popular in the first place. All of it coded in gate-logic and uploaded to a cpu that with a flick of a switch can turn right around and become an x86 pc, a PPC Mac, a Commodore 64, a Nintendo 64 or whatever tickles your fancy.
Lets stop and think about this.
Today we use virtual machines to mimic or translate bytecode (or pre-existing cpu instructions). We call these solutions by many names: virtual machine, emulator, runtime – but its all the same really. Even if you slap a JIT (just in time compilation) into the mix, which is the case of both emulators, Java and .NET compilers — it still boils down to running an imaginary (or pre-defined) platform under the umbrella of a fixed piece of kit.
Now what do you think would be the next logical step in that evolution?
The answer is naturally being able to sculpt virtual machines in hardware (read: fixed hardware that gives you a non-fixed field). Fixed processors is a costly process. Yet primitive when we really look at it. We may have shrunk the brilliance of the 1800’s and early 1900’s and made all the great inventions of the past fit on the head of a pin — but its all based on the same stuff: physical implementation. Someone has to sit there with a microscope and hammer the damn circuits out (although “hammer” is maybe the wrong word on particle level).
This is also the problem with western culture: the use and throw away mentality that creates mountains of technological garbage – and powers child labour and sickness beyond belief in poor parts of the world. You have six years old kids that work with melting out copper and quicksilver. A waste of life, tech and nature. So yeah, a bit of morality in this as well.
FPGA represents, really, the first actual breakthrough and paradigm shift since the invention of the first electric circuit. For the first time in history a medium has been created that is not fixed. It has to be created of course, and it’s not like its wet-wire technology or anything — but for the first time anyone with the skill to code the gates, can shape and adapt the hardware without the need to cook the chips first.
And they can be infinitely re-used, which is good for both people and nature.
Think about it.. then go “holy cow”.
And that my friend – is the thought of the day!
Booting into UAE on ARM/RPI2
I was just about to go to bed, but this info is to important to just leave hanging, so I have to scribble it down here for all to enjoy.
If you own a Raspberry PI and find Linux to be less than welcome, especially in the startup department, then you are not alone. And trying to get the linux gurus to shed some light on how the heck you can alter the boot process is like talking to wizards, pondering the mysteries of kernel callbacks or whatnot.

Ah! The awesomeness! Look at the bones, look at the bones!
But thankfully today, Chips, the author of UAE4All2 (Amiga emulator for ARM) helped me out and gave the full low-down on how to boot straight into UAE with no Linux desktop getting in the way! Meaning: You can now transform your PI into a dedicated Amiga emulator! Once that doesnt start the Linux desktop at all. How cool is that!
For systemd based distros
How to boot directly to uae4arm FOR RASPBIAN JESSIE (and other linux based on systemd). First if you boot to desktop, let’s disable this by entering following line in a terminal:
sudo systemctl set-default multi-user.target
Then reboot and check: you should autologin with pi user so without any authentication…
Now enter startx to continue customization:
We will add uae4arm at each bash launch (basically each time you enter command line mode):
Enter following line in a terminal in order to edit bashrc:
leafpad ~/.bashrc &
At the bottom add lines to execute uae4arm (update directory as your installation):
cd ~/uae4arm-rpi/
./uae4arm
Next reboot you should enter automatically uae4arm
Initd based systems
How to boot directly to uae4arm FOR RASPBIAN WHEEZY (and other linux based on init)!
Below instruction apply for pi user but you can subtitute for any other user you created.
I prefer to edit files under desktop but you can use any other way too…
First if you boot to desktop, let’s disable this by entering following line in a terminal (raspi-config could be used to… to be confirmed):
sudo update-rc.d lightdm disable 2
Now reboot and check: you should not go anymore to desktop but instead should be ask for login in text mode. So login as pi (user then password) then enter startx to continue customization.
Now open a terminal and edit /etc/inittab by entering following line:
sudo leafpad /etc/inittab &
And add a # at the beginning of the line that ask for login, as below
#1:2345:respawn:/sbin/getty 115200 tty1
And instead we will auto-login, to do this add the following line just below the commented line
1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1
Now save and reboot and check: we should autologin with pi user so without any authentication…
Now enter startx to continue customization:
We will add uae4arm at each bash launch (basically each time you enter command line mode):
Enter following line in a terminal in order to edit bashrc:
leafpad ~/.bashrc &
At the bottom add lines to execute uae4arm (update directory as your installation):
cd ~/uae4arm-rpi/
./uae4arm
Now reboot: you should enter automatically uae4arm
For Raspbian jessie, it is completly different since it use systemd instead of init during booting sequence…
Vacation over, let’s get cracking!
My blog has been silent for the past 2 months or so now. Not because I have secluded myself to a cave to ponder the mysteries of Delphi, but because I’ve moved into a cool new flat, been on holiday and spent time with my kids and friends. It’s been hectic, painful (slipped disc), fun, exciting and well worth every second!
As always is the case during the summer there is Norway Cup, which is an international soccer arrangement held up here. My son’s club was there and as expected they did exceptionally well (we have an ex pro player as coach). Very proud of my boy which scored 4 goals in a total of 5 games 🙂 It’s a great international event with soccer teams traveling from as far away as Korea, Brazil, Spain and the UK.
This year however they managed to put an amusement park right next to the soccer event, which may have been a good idea on the drawing board – but caused havoc for parents with more than one child. Trying to support my son’s games while keeping track of my daughter, who naturally wanted to visit the amusement park, turned out to be a full contact sport in itself. But I managed to make them both happy using every trick in dad’s book (yeah we went to the amusement park after the matches). And what better way to enjoy people scraming than a spot of sushi!
Since our landlord doesnt allow cats or dogs as pets, I came up with a novel solution. We are now the proud owners of to chickens. Yes, chickens. I grew up in the countryside with horses, cows and god knows what around me all day long, so a couple of chickens is a must. My daughter seem to enjoy petting them — and hey, free eggs in the morning 🙂
Oh and I now live 100 meters from the beach! Which reminds of a cliché programmer’s advert back in the 90’s, where you see a coder sunbathing while coding on his laptop. But at least we dont have to deflate the kid’s bathing toys when we go home, we just walk straight into our own garden and that’s it 🙂
And of-course, a visit to the sanatan dharma temple outside of Oslo was in order!
Well — it’s been a great summer! But now vacation is over — so back to work, back to Delphi and let’s get cracking!
QTX IDE for freepascal
It’s been a hectic couple of weeks that’s for sure. I’ve been called the death of freepascal, a devil with anterior motives, a civil war monger and much, much more. It’s quite dramatic don’t you think? I mean “civil war” (insert dark voice here) and all that. We are talking about programming languages, not the borders of Bosnia. Yet drama these guys spin like spiders on drugs.
And killing the guy that raises the red flag, when did that become popular? So when I go “yo — there is something wrong here, be careful”, they just respond “Why did you say that, I don’t want to know there are bad things in the world!”. Guess I should be glad we’re not in the army together huh? That could get messy.:”Me: Guys there are mines here, go around, seven o’clock!” — “FPC/Lazarus: Everyone into the minefield and twirk like mad! That’s an order!”.
So the entertainment is priceless. Just wonderful to watch people allergic to the words “im sorry i thrash talked you, my bad, you were right to tell us” squirm around like vipers being cooked alive on a chinese barbeque .. pride can be an ugly thing.

Be very careful when using CodeTyphon, wait until it’s clear of all GPL and copyright violations. I wouldnt go near it personally.
Well, despite all the bad news, the slandering and negativity – I remain cheerful through it all. Why? Because rather than stealing code from others or trying to bypass laws and regulations, I put my time into writing the Quartex IDE from scratch without the help on anyone. And I did that exactly to avoid the awful mess PilotLogic and freepascal now find itself in.
It’s really simple:
- If i need help, I ask politely
- If i want to use a component which is free, I ask politely
- If i want to use a full GPL piece of code, I still ask politely!
- I dont remove author names, but instead put them in the About box to respect the authors, thanking them for their work
- I try to solve things first myself before asking for help
- I use standard packages like SynEdit and Jedi exactly to avoid GPL/copyright problems
Incidentally I was trying to stop problems from happening, but everyone needs someone to blame so if blaming me for pointing out copyright theft and GPL violations — whatever makes you happy I guess. I honestly don’t care any more what happens to these systems. I should not have wasted my time trying to help FPC/Lazarus and CodeTyphon. I guess there is a reason these groups have a bad reputation – sadly I have them the benefit of the doubt.
The best comment on the FPC forum must have been “Who has given you the right to prosecute pilotlogic!” — well, in that case: who has give you the right to make FPC better? Because protecting FPC was what I was doing. So who the hell made you king and decided that you could fix bugs? Do you think you’re better than anyone else? Huh? — that’s the kind of insane thinking I’m faced with. It’s just unbelievable.
QTX for freepascal
That would be a no I think. Since people actually believe that I am a devil incarnate in all of this, it would only serve to make their insanity a self-fulfilling prophecy. And QTX will render Lazarus useless, so … dont think they would be to happu about that either. They would no doubt scream “I told you so, he was plotting this all along!”. Which is fun because I’m not that diabolical even on my best of days, I couldn’t because there is a limit to how much evil scheming I get done with 3 kids, homework, brownie baking and a full time day job as a C# programmer.

Freepascal is a great product, but the forum is full of “characters” which do more harm to the product then good.. All projects get’s nutcase “groupies” but usually the leaders have the sense to get rid of them. This has sadly not been the case here
So, I guess the plans to support freepascal has to be canceled. Which is really a shame because I truly believe in FPC/Lazarus as a universal platform. QTX would sort of be the icing on the cake. And even if you don’t like it – it would still be good to have it, because the more alternative we have the better.
But nope, I will not be supporting freepascal or lazarus after all. If people want it they can ask of course, I might change my mind in a couple of years; but right now I wont go near that copyright mess with a 10 foot pole. Nor would I support people who verbally abuse supporters when trying to help them (months in advance btw). They can blame themselves. A user group that hostile serves little or no purpose what so ever.
Alternatives
But there are always solutions for those that look; in heaps and buckets. QTX is designed to be a transcending platform, meaning that it compiles to an intermediate format (LDEF) which in turn can be represented in other languages through a code-generator API. A bit like .net but on source level rather than binary.
This means that I will be focusing on vanilla C++, shipping QTX with the free GNU C++ compiler, which is the fastest most widely developed and used compiler in the world. And I do believe it has the widest support for hardware out there as well, so it’s not bad news at all.
So to sum up:
- You write object pascal just like Delphi or FPC
- The compiler compiles to LDEF
- LDEF is compiled into C++
- C++ is compiled to machine code using the free GNU C++ compiler
- Voila, you have a free path on both Unix, Linux, Windows, OS X and pretty much every platform out there
What have you been doing lately?
That is a good question. I have been very busy with my day-job coding in C# so there has been limited time for personal projects. But last weekend I added a new cool feature to QTX, namely a second way of opening units by cursor.
You know that you can CTRL + Click on a unit-keyword and the IDE opens the file automatically for you right? Well, what if that unit is a part of a package? Wouldnt it be great if the IDE not just opened the file – but mapped the file to the treeview so you can see all the files? This is optionally of course, but it will save you a lot of time when writing packages yourself or porting packages from Delphi/FPC.
This is a humble change I agree, but sometimes making the ground-level functions rock solid is valuable. It’s exactly those functions that have been crashing Lazarus for ages. Lazarus is really only perfect on Linux, on Ubuntu for instance it’s just bloody brilliant and really hits the mark. But on OS X and Windows it’s often the small functions, those you take for granted that crash and burn.
So I’ll be spending a few extra months before alfa release just doing those functions really well. The advanced stuff can wait. I’m going for stable and rock solid over super-modern and unstable.
Is native outdated? Debate!
Life has its ups and downs, but this one is a case that really makes me stop and think. They say the moment you reach 30, you lose your immortality. In the sense that you no longer regard yourself as immortal, infallible and a list of other power-words. It’s the age when you realize that you are no longer in the front-seat of all things new and bright, and that in fact you are heading for death.
With that gloomy intro, here is the pickle that has made me really question what programming and being a “native” developer means: Is native code outdated? I write that because the more young programmers I meet, the less native code I encounter. And it’s really scary! I mean how do you build a custom server? Not just a server that does something different, but a truly custom, never before done, truly unique and brand new – without the speed power that native code provides?
But these kids have a completely different take on it, which makes me feel so very, very old. But it also makes me want to educate them about the differences, with limited success so far.
Once in a while I meet up with younger programmers, some at work and others through IRC or Facebook to check out the latest developments. It’s mostly open forum so everyone posts ideas, links, code, references – and we all bitch and moan about what we don’t like (or envy I guess, people do that as well online).
What throws me is that native code is taking up less and less space in the minds of young programmers. Programmers who, unlike our generation I presume, have primarily grown up with free development tools and open-source libraries. So in their mind paying for anything related to programming is just not where it’s at. Perhaps this is why Microsoft has suddenly transformed into the sugar daddy of high-tech? Time will tell perhaps.
But either way, the majority of these free tools must be running on what ultimately has be, it bloody has to be (!) native code. I accept that the platform itself can be script based, perhaps generating bytecodes or p-code. But native must by virtue of how the hardware is designed, remain relevant. Right?
The p-code thing
If you don’t know the difference between byte-codes and p-codes, they are essentially the same thing. But instead of representing your commands as bytes and small records, like say java or dot net does; P-codes have bytes which represents offset values into a runtime library. So instruction $0001 would execute command #1, and $000F would execute command number 15 (or 16 if you count from zero). The downside of p-code compilers is that they are extremely fragile. If you alter even a single byte the whole system can crash, so modern implementations use CRC and checksum validation before executing.
Since a p-code represents an offset into an array of pointers, they execute extremely fast. In many cases it can be hard to distinguish native programs from well written p-code programs. It depends wildly on the language at hand naturally, but all in all p-codes just pounds every ounce of clock cycles out of the processor.
The downside is that it’s fragile like hell. A single altered byte in a p-code program can crash the program with spectacular access-violations. Hence modern implementations are often cluttered with CRC checks and identifiers. But they are fast, much faster than translating byte-codes.
Right, now back to the topic at hand.
Is the future scripted?
A part of me want to say yes, because there is more than enough power in modern script-engines to create really powerful desktop applications, services and/or games. But a script engine can’t write itself. You can’t write a script engine in JavaScript because sooner or later someone has to write JavaScript, if you get what I mean. Somewhere along the line a programmer has to use a language which compiles to native, be it C / C++, object pascal or some other native language. I even remember a guy writing his own operating system in BlitzBasic, but he used like 70% inline assembler so I’m not sure he qualifies as a basic representative.
So while it’s tempting to say yes, considering the widespread adoption of languages like python, pearl, ruby and javascript – it just can’t be true. And that statement has launched an avalanche of well-meaning but ignorant feedback from my younger friends; who doesn’t know what native is all about and as such protect their faith in scripting to the death.
So no. You can’t get through to them.
The smart thing
Since myself and the group of programmers I work with are marketing object pascal as the best language for web and cloud development; and we have adapted object pascal to be more in-tune with how development in our day and age works, like anonymous procedures, records, properties and whatnot — i should be pro 100% script right?
Well I’m not. Smart Mobile Studio represents, in my view, one of the best solutions for writing cloud based software. Primarily because you have full access to nodeJS, which in turn mean you can write both the server and client from the same codebase.
But it’s only the best solution because the medium, namely the browser and JavaScript, is so fluid and flamboyant in nature. You can do some tricks in JavaScript that would be suicide under native languages, but in the padded room of JavaScript everything goes.
But does that mean I have become sort of “anti native code”? Absolutely not. In fact I love Delphi to pieces, and C# (native mono compilation) and I even have an off the record love affair with C++. First of all because it’s the only thing I know how to do, part from JavaScript which I’m very, very good at. But I also think it’s important for all of us to get our ducks in a row.
The view I have is that scripting is not really programming is it? I mean “really” programming. Scripting for me is a bit like sculpting. You sit down and sculpt data structures and setup boundaries using a language which, subjectively speaking, is the intellectual equivalent of putty rather than brick. So it’s a bit like carving a madonna out of a piece of soap versus a solid piece of engineering forged in steel.
Or how about this: native programming is a bit like coding a gene-pool, while scripting is the same as body-building. With scripts you carve out the form, the relations and setup the pathways between them. But without the underlying generic programming, there would be no intelligence or program to carry out the build-plans to begin with.
Native languages feel more edgy to me, more solid and concrete. You can’t cheat and get away with it under native object pascal or C, because it wont even compile. You are also closer to the hardware since the code you write is ultimately the binary pattern fed to the processor. While scripting languages are.. well, fed to a dispatcher after going through a lookup table.
A young solution
I really am amazed by how the younger generation solve things, because they are – without knowing it – doing a better job than we did 20 years ago. Instead of writing a server from scratch like we would probably do for a new piece of technology, they implement the “new” bit using the protocols already in place. So they get the job done, but in a way very different from ours.
So the new server is not a new server, it’s the same old HTTP server you have been using for 15 years, except now the URL’s are command and form-fields are parameters. Things like REST was not invented by a seasoned developer, it’s actually a perversion of the HTTP protocol if you like. But it works, and it’s even turned into a standard now.
Same with python. You dont setup a cluster with C or object pascal, no you use python and it will execute parts of the same program on different computers to spread the payload. And that makes sense, since native code would be much harder to disperse over X number of nodes. So suddenly scripting makes sense over native. At least in that particular scenario.
The only real problem with “young thinking” is that it doesn’t generate money the same way we are used to. When you use only free compilers, editors and server kits – how will a young developer approach systems like Delphi?
I really want Delphi to survive and I want the object pascal language, be it Smart Pascal, FPC or Delphi or Oxygene; I want it to thrive. I want young programmers to see and experience how rich and beautiful object pascal is and how much it can do for them; and also how much they can deliver through that language.
But how can you even hope to persuade a young man or woman who makes less than $800 a month to fork out $3000 for a development system all their friends call “old and outdated”?
AppMethod is cool. It’s cheap, its affordable and students and hobbyist programmers can pick it up. It’s still a bit pricey compared to Smart Mobile Studio, but I hope Embarcadero makes enough money to keep going.
Last pondering
Smart Mobile Studio is probably more in tune with the new reality, since the kids growing up now are in fact growing up with “the cloud” as their foundation. Remember we grew up with commodore 64, Atari and those kind of things. Our children are growing up with cloud servers, JavaScript powered phones (Mozilla phone), Linux and the open source movement.
Perhaps I should just forget trying to make sense of their thinking. Trying to enumerate all the technological changes I have gone through from childhood to now is exhausting. I tried to tell my son what a modem was and how we connected to the internet no longer than 15 years ago — he just looked at me with big eyes and went “Dad. Please. Its ancient history”. And my daughter found a cassette tape and could not imagine what it was. She thought it was scotch tape 🙂
It’s just so weird realizing that my kids have no idea what a cassette tape is and will never have first hand experience of a modem!
I guess we all play our part.
My part is to try to get object pascal kicking and screaming onto the cloud. I am content with that role and think it’s a privilege to even be mentioned in the history of object pascal. But a future based on scripting? I sure hope not!
What are the kids using?
When it comes to languages, I can honestly say that the official list is wrong. Dead wrong. One language may have more source online that others, but that doesnt mean it’s less used. It depends completely on what group of people use it and what it’s used for. A language used primarily for commercial applications will by nature have less code in the public domain than a language which is free, open-source and generally available.
This is the case we see with Delphi. There are probably hundreds of thousands of companies using Delphi in the world, but they use Delphi to produce closed-source products. As such their code never leaves the house (so to speak) and you wont find it on github, sourceforge or google code.
But having talking to probably hundreds of teenagers coding lately, here is my general impression, in order of magnitude
- JavaScript
- Php
- Python
- Ruby
- Swift
- C# and dot net
- C script
- Erlang and friends
Of native languages the list havent really changed that much over the years:
- C++
- C
- Objective C
- Object Pascal
The javascript thing is the one to watch. Not just because that’s where I’ve invested my time and money, but because no other language is seeing anything near the amount of attention JS is getting. Not even close. And the two basic platforms is the browser, which for kids is regarded as the operative system itself (conceptually, not factually ofcourse). The browser IS where you experience computing and connect to the world.
The second aspect and one I find very exciting myself, is the nodeJS side of things. Here we are seeing a tremendous growth compared to other technology. And the reason is exactly because it’s connected to the first-hand experience people have. Those who master the browser and the DOM will eventually be able to reach customers and create systems which are platform independent, international and dynamic.
Do we have anything to learn from this? Bucket loads! But we should never lose sight of the fact that we also have much to teach.
And with that my pondering stops for today 🙂
In defense of Howard Scott Warshaw
Howard Scott Warshaw was one of the lead programmers for Atari back in the eighties. While I can’t say I have followed his early career, at least not as closely as my generations’ heroes like Peter Molyneux or Sid Meyer, I knew like most people that Howard was responsible for the so-called “worst game ever”. Of that was the rumor anyways, which I first heard back in the nineties or something.
The myth goes that the 1982 E.T game was so bad, that Atari actually dumped millions of returned cartridges out in the dessert somewhere in an attempt to cover up the failure. It’s turned into an X-Files type operation where the game sucked so much, that the financial losses ended up killing the once mighty entertainment giant Atari.
Being a programmer myself I know how much it can hurt when you have worked for months on something, only to have 2-3 individuals tear it apart publicly (which in this case represents a tiny forum, way out in the suburbs of cyberspace). I can only imagine what it would be like to not only get an impossible project like the E.T game dumped in your lap, with a deadline of five weeks. And please remember guys, this is hand-written 8 bit machine code running on a now ancient piece of hardware.
The urban legend from hell
There are variations to the myth of course, like with all urban legends. In later years Howard is said to have gone to Commodore shortly after, implying that he was actually a spy of sorts, destined to kill Atari so that Commodore could make its way into the market. Which is utter rubbish because these companies were, at that time, galaxies apart. Commodore was never a big hit in the US, it struck root primarily in England and Europe. Particularly in scandinavia. In the US Amiga machines were primarily used for video production and television. It never really caught the public eye. So a programmer would be less likely to want to work for Commodore than Atari.
Add to this the fact that Howard was actually never again able to get a job as a programmer due to the myth, should be enough to dismiss this rumor as pure urban legend.
I mean, just imagine it: How would you feel if every single person on the planet was told that your code was the worst ever written or published? Not on some minuscule forum where you at least can defend yourself or just fix the bugs as they are reported. No, we are talking universally across the globe for thirty years !
It just makes me so angry and sad for what truly is one of the best programmers Atari ever had.
Was E.T really that bad?
I have never played the game myself, but I have seen plenty of you-tube reviews and gameplay. And having been an avid technologist since I was in high-school I can honestly say that this is not the worst game of all time. Far from it. I have played thousands of games in my time, from the green-mesh that was ZX-Spectrum, through Commodore VIC-20, 64, 128 and all the way up to Amiga, PC and lately, an overpriced iMac, iPhone and iPad.
I also own nearly every console known to mankind, missing only the Nintendo Gamecube and the Philips 3DO in my collection. So as far as games go, I am fairly confident that I have enough experience and insight to make a fair judgement. And if E.T was the worst game, I for one would not lie about it.
But let’s look at the system we are dealing with here first.
The Atari game console that Howard worked on was the Atari-2600. This is a system which in terms of features is somewhere along the lines of a Commodore 64. Just to place the hardware and capabilities in some sort of context. All games were hand written in machine-code, a task which by today’s standards is applaudable in itself. There were no C compilers, no Turbo Pascal and certainly no Delphi, Smart Mobile Studio or SDL libraries.
Developers essentially had a primitive text-editor, less evolved than even the most low-level linux command-line variation (which I must admit that I detest), and that was it. You punched in machine code and compiled with a second program. And there was no multi-tasking remember, so you had to quit the editor to compile. Just imagine how fun it was when a typo was present in line 26000 or something. Back into the editor, fix, save, exit – and try to compile again.
This is just to place the work in some form of context, so the reader get’s an idea of what being a programmer in the late 70’s early 80’s was like.
Now back to E-T and the whole “worst game” thing.
First of all, turns out that Howard had only successes up until E.T came along. Most of his games, especially the smash hit “Yar’s revenge” sold millions of copies and were immensely popular; making truckloads of cash for Atari. So Howard is absolutely not a bad coder. Quite the opposite, he was a highly skilled computer engineer; top of his class.
The E.T project was essentially a task thrown in his lap by management, who for some reason had managed to muscle the rights to E.T from Steven Spielberg personally. So Howard got the great honor of writing a complete self-contained gaming world in just five weeks. That is insane by any standards, and no matter how good you are at coding – five weeks is just madness. Even a small title could not be completed in that time, let alone a ROM image trying to capture the essence of a movie success like E.T.
And E.T was huge. If you think Star-Wars is big and all the commercialism around it is awesome, well with E.T you can triple that. So if you released all 3 initial star-wars movies at the same time, then you will have a good idea of how big E.T actually was.
You could hardly walk into a mall or store without some piece of E.T merchandise being offered. From posters to puppets, pencil cases, nap-sacks, bed-sheets, lamps, T-shirts (I loved mine to death and actually sold my BB gun just to buy the T-Shirt), shoes — everything which could be stamped with an E.T image or name was branded and sold. It was a billion dollar orchestration on a global scale.
So. Can you imagine the pressure and commercial anticipation for the computer game? The world was in a E.T frenzy, and every child in the western hemisphere was counting down for christmas, hoping to find the game under the tree.
The blame game
I think it’s so sad for Howard that people still talk about E.T as “the worst game of all time”. It’s worse than sad, it’s almost heartbreaking – even though I have never met the man.
It’s simply not true. E.T is not the worst game at all. From what I’ve seen (and I watched two whole reviews of the game) it’s absolutely not deserving of such a title. And I know this because I lived with the alternatives. Hell I had a ton of C64 games on Turbo-Tape which just sucked the marrow from your bones every time. The way it worked back then was that you could get bootleg games on tape. Normal music cassettes. That was how games for the Commodore 64, Spectrum and all those early “home computer kits” were distributed and sold.
You had a tape recorder hooked up to your computer, and the analog sounds from the casettes were transformed into digital patterns (data). If you ever had a PC in the 90’s you most likely remember the strange sounds it made when connecting to the internet? Well, that sound is the analog version of digital data. And that technology has only recently been replaced by fiber-optics. In some parts of the world modems are still used, like south america, Africa and regions of the middle-east.
Anyways, hackers existed back then as well and you could get bootleg versions of games and programs in compressed form (a bit like winzip or rar in our age) using a packer called Turbo. Turbo allowed you to stuff 10 games into the space of a single, un-compressed game. So what we did was put as many as 50 games on a 60 minute tape. These tapes were called “Turbo Tape’s”.
You would not believe some of the games that were sold for these computers; computers which were en-par with and better than the Atari’s 2600. And judging by what I’ve seen of E.T’s gameplay, it’s a much higher quality production than the early Commodore offerings I enjoyed as a child growing up in the riches country in the world: Norway.
So whenever someone says that E.T is the worst game ever made — just tell them that it’s not true. It’s a stupid urban legend that has practically destroyed a very accomplished programmer’s career and haunted him for 30 years. It’s a total lie and any gamer or programmer with half a conscience intact should stamp the myth out utterly.
Atari as a company was massive, with thousands of employees and hundreds of programmers. So the myth that E.T sucked so much that it toppled an entire industry is a joke at best. And what a complete disaster for Howard which until recently have been carrying this label around, unable to get even a clerical job in the computer game industry because of it. People dont care that he was in fact one of the best coders at Atari and that all his games sold millions of copies. They all just remember him through the E.T myth. It has been a clear case of character assassination from day one.
From what my reading has availed, Howard had re-invented himself and is now a “silicon valley head doctor”. It makes sense to have a programmer who speaks geek fluently to also be a doctor. And considering what he’s been through thanks to this stupid myth, he no doubt have a lot of wisdom to share with stressed out programmers who need help to deal with the problems we all face in life. A lesser man would have thrown himself in front of the metro for carrying such a label, but not Howard. A testament to his character and ability to find solutions.
A global apology
The gaming community at large owes Howard an apology. Especially teenagers who have absolutely no insight into what software development is, nor would they have the skill or intelligence to produce anything like what Howard did back then. Even if they worked for years on it, they would not be able to re-produce what Howard did in just five weeks.
Nothing provokes me more than a 15-year-old kid thrashing stuff he doesn’t even know how works. He sits there with his X-Box or PSX4 and acts like he – based on his wast experience – had the right to thrash talk anything and everyone. Youth is wasted on the young plato once wrote, and no where is it more evident than in the mentality of spoiled western teenagers.
In all fairness the Kassar family and even Warner Bros themselves should write a huge check for Howard; for damages endured over a period of 30 odd years. It must have been practical to have a scape goat to blame the results of poor business decisions on; but eventually the truth comes out.
I also hope Howard one day receives the recognition he so deeply deserves, not for the five-week marathon that he incredibly enough delivered on — but for all the games he built prior to that, and for the fact that he was a pioneer. No one had done these things before. There were no books on coding games or courses you could take. These guys at Atari were the first to venture into a purely abstract science expressed through electronics; And they went in there armed only with their own ideas and ability to solve problems.
Well Howard, I can’t give you a huge check, nor can I give you an award — except to say that I will do my best to stamp out this lie which has haunted you for so many years. And I hope others who read this does the same.
Facts unearthed
Turns out that a movie about this was made a year or two back, called “Atari:Game over” which deals with the subject directly. In the movie they film as the graveyard where the so-claimed millions of games were burried, in fact contained very little E.T games. Instead some of the biggest Atari sellers were buried out there.
So what has been called a coverup and scandal, was nothing more than Atari cleaning out their storage space. No doubt to save money. Yet it ended up as a myth that killed the career of an excellent and innocent developer.
Here is a link to the movie “Atari: Game over” which can now be seen on NetFlix.