Wednesday, February 18, 2015

The Sony PS4 as a browser based application and gaming platform

Can the Sony PlayStation 4 (PS4) be used for more than AAA computer game titles and playing music from a USB flash drive? In order to answer this question, I created a small website that tests the console's capabilities.

The first thing you may ask yourself is why would you want to use a console as a general application platform. The answer to that question lies in the evolution of the end-user IT market. Until about 2003, people mostly used desktop computers. At the time laptops where a somewhat expensive novelty for business users. I haven't really used a laptop until around 2006.

With the launch of the iPad, things started changing again: Now people no longer need a laptop or desktop computer, they can use an Android or Apple tablet. Tablets were initially a cheap laptop replacement. This is changing again with new low-cost laptops appearing on the market and exchange rates and import duties making tablets expensive, at least in the South African market.

Tablets are mainly content consumption devices. While most people are not content producers (ex. programmers, accountants and other creative professionals) this creates a problem: If you want to create a MS Word document, a program or do anything that requires a keyboard, you have to buy an extra device or use a tablet which is somewhat inadequate for the job.

This is where my initial question comes in: Why can't we use gaming consoles for normal applications? The latest generation of gaming consoles are in effect miniaturized desktop computers that are a year or so out of date. If you look at the specifications for current consoles (, these machines should be able to run an operating system like Ubuntu Linux or Windows. If these platforms were open for application developers, it may be possible to fulfill this need for a content creation device using existing hardware that many people already own.

If the XBox One gets Windows 10 with full access to the online Application Store (for say HTML applications) this need will be fulfilled, but what about the PS4?

First of all you may ask why not develop an application using the Sony supported development kit instead of a browser. The problem with this is the requirements laid out on this page: This is awkward for the rest of the world that do not live in North or South America.

In order to test the browser as it is, I created a small website to see what the browser capabilities are. From the start I already know that:
My browser test is here:

After testing the browser I made these observations:
  • The browser is mainly designed to be a content consumption device like a tablet.
  • Plugging in a mouse causes no inputs to be generated.
  • The canvas element is a viable alternative to develop simple games, however this is hampered by adequate input options.
  • The game-pad generates input events for L1, R1, and the up, down,left and right arrows. The rest of the buttons are mapped to navigation options. This rules out using the game controller as an input.
  • When using the keyboard on a non-text input field, no events are generated for non-navigation buttons. Therefore, there is no way to capture normal typing events for a computer game or application.
I guess Sony intended the browser to be only that: a content consumption device for browsing the web. Hopefully this will change in the future, especially if Microsoft turns the XBox One into a general computing device.

Saturday, January 10, 2015

A currency without a country

What would the benefits of an international currency without a country be? I can think of a few:
  • No central bank to limit what you can and can't do with it.
  • No external countries/large companies/speculative investors devaluating the value of your savings through their own agendas.
  • Easier international travel.
  • The value of the currency can be determined by what people are willing to pay for products. Therefore it has no intrinsic value like gold or oil which would allow one entity to monopolize it.
  • Some countries have currencies that are very weak. Generally this is not the fault of the people living there but due to historical or political reasons. A large international currency will give the citizens of these countries the opportunity to trade in other markets and at least a small amount of security.
There would be disadvantages as well though:
  • No regulatory protection. One large company can horde all of it making the rest of the world poor. In a way this is even worse than international market manipulation as we know it. On the flip side, because everyone are using the same currency there is no clear beneficiary nation.
  • How do you define it? Can it be hacked? Will advances in computing wipe it out? Who will print it?
For these reasons I think that Bitcoin had something. It is unfortunate (or fortunate?) that it did not go mainstream. Or, if we had an international currency, what it the next step? A world government?

See also:

Tuesday, January 6, 2015

The changing face of smaller scale web development projects in 2015

Trends I foresee for 2015: (we will see how these pan out by 2016 ...)

1. More HTML5 and JavaScript everywhere

It is now possible for me to do almost anything in HTML5 and JavaScript. This may not always be the optimal solution, however it is hard to argue against web technology when you look at things like Chrome apps for example.

2. A greater move towards open source software

Most client side web technologies are open source. If you currently build a website you will be looking at technologies like jQuery, Angular and Bootstrap. These technologies are all under some form of Open Source license. I do not see how new proprietary technologies can work in this environment. What about the server side though? This brings me to my next point.

3. The web server is getting thinner and thinner

You could ask yourself what the role of a web server is. Currently it serves web pages and hosts web applications. But the web server is really redundant in terms of business logic. One could argue that with a technology like Microsoft MVC or WebForms, some data is shipped to the server and that calculations are done there. But this is really a very inefficient method of implementing business logic when compared to stored procedures.

The reason for this is that most database invocations involves extra network transactions, increasing latencies and response times. It is more efficient to do calculations on the database server where the database management system has internal knowledge about data representation and where this can be used to optimize program flow.

Therefore, I expect that web servers will become little more than wrappers for database functionality in the future. But there is one further step to this which is quite scary if you are a C# or Java programmer.

4. Higher level languages like Java and C# will play a smaller and smaller role

So let's say that the web server only becomes a pass-through wrapper for database functionality. Where does this leave us in terms of languages like Java and C#? If most applications are implemented with stored procedures, HTML and client side JavaScript, then there are fewer applications for Java and C#, especially for CRUD style applications. So where would Java and C# still be used? The one application I can think of in the commercial world is integration projects. You still need C# or Java to integrate with other systems.

5. Workflow systems become more important

It should however be pointed out that integration and the related organizational workflow systems have their own automated design tools in technologies like Microsoft SQL Server's SSIS and Talend's Open Studio products, which reduces the amount of required programming. Therefore I expect that workflow systems will become more important.