Learning A New Programming Language per Year in the Age of AIPeople don’t really learn new programming languages every year anymore thanks to AI, so why do I stick with this activity? Call me old fashioned, but I still like to dive into a new programming language every year, no matter what, and thus here comes yet another update in my lifelong obsession to learn more and more programming languages.
The Clock PWAReaders of this humble blog on desktop environments or on tablets are aware of the clock that decorates the left hand side of the screen; well, now everyone can have that nice artsy clock on their mobile devices… and no, it’s not an app.
A Famous Swiss Clock in JavaScriptIf you visited Switzerland, you will have noticed the beautiful SBB clocks on every single station in the country; they all behave similarly, and have been a staple of Swiss design during the past 80 years.
Filling the Timesheet with HTAsIf you are currently employed or have worked in the past in a Swiss company, you know how important the all-powerful timesheet is to your employer. Every company comes up with their own version of it, particularly those who are cheap enough not to pay a monthly SaaS subscription to one of those gazillion timesheet services online. Most of those home-made contraptions use Excel, because why not.
The New Clock and the Evolution of JavaScriptThe attentive readers among you might have noticed that the artsy clock that appears on every page of this blog (except on mobile devices) behaves slightly different now. In fact, I’ve removed its dependency to the old and unsupported Raphael.js library, and migrated it to new and modern JavaScript features.
GaMMADigging in my archives I found a backup of my personal home page from 2000 to 2003, and through a little work of archeology and restoration, I made it work in our modern world of 2023.
BootstrapI love Bootstrap. No matter which web frontend framework I try, I always end up returning to it.
Yup, Still Learning a New Programming Language Every YearI gave an update on this lifetime activity of mine in 2006, 2007, 2011, and 2013, and here we go for 2023.
Server Side Rendering FTWI am, I have been, and forever will be a big advocate of server-side rendering. I think it is an essential way to build dynamic web content. I believe in this adamantly, feverishly, strongly, and relentlessly.
Javascript AnimationsAround 1998, Macromedia Dreamweaver allowed developers to create animated web pages using 100% generated JavaScript code. This was before we were told about the good parts of JavaScript, before script.aculo.us, and without the need for Flash players or Java applets of any kind.
Containers and DLL HellBack in the 1990s, shared libraries were all the rage. Instead of having to ship a 20 MB *.exe file to your customer in various floppy disks, you could cut some code out, put it in a set of *.dll files, and reuse that code across all your products. Every vendor would then install lots of DLL files in your system, and they would be reused by other apps from the same vendor.
Killer AppsThe D programming language lacked a “killer app” to break through. Another brilliant language suffered from this situation, objectively deserving a much better fate than the one it had; Smalltalk.
Reusing Apps Between Teams and Environments Through ContainersThis was my speech for the WeAreDevelopers Container Day on February 3rd, 2021. The talk will feature a live demo showing how to build, optimize, and distribute containers to be reused in as many environments as possible, 100% based on the experience of the VSHN team.
The New MicrosoftMicrosoft is a big, big, big name in our industry. No matter what they do, everybody notices. Whether it’s good or bad, useful or ridiculous, big or small, it never goes by unnoticed.
Fortune AppsAs part of my work in VSHN, I lately prepared a set of demo applications ready to be containerized and deployed in our new product APPUiO Cloud.
Cross Platform Node.js AppsNode.js projects are very much cross-platform, allowing your team to use any operating system they want to work on them. Well, yes, to a large degree they are; but as always, there are some caveats that can bring some headaches if you have Windows developers in your team.
Polyglot ConwayMy personal project during the pandemic was Conway, a project providing implementations of Conway’s Game of Life in as many programming languages as possible.
Ham Is to HamstersI published my first web page in the server of my university. It was at the end of August, 1996. It will be 25 years soon. I was about to turn 23, and I had taught myself HTML with Liz Castro’s excellent book “HTML for the World Wide Web”.
Douglas CrockfordAround 2002 I found a small website created by a certain Douglas Crockford, in which he claimed that JavaScript was the World’s Most Misunderstood Programming Language. It was intriguing, so I read, and I discovered that there was much more to the language than I thought at first glance.
AJAX Before TimeIn 2002 I moved back to Switzerland, and found a first job as a developer in a company making a super expensive product nobody needed. It tanked one year later for well known reasons, but in the meantime I got to see the most complex codebase I had ever met, in this case in JScript.
Server-Side JavaScript in 1997Back in 1997 I was earning some cash writing Active Server Pages in that mutant programming language called VBScript. On the other hand, Microsoft had reverse-engineered the JavaScript compiler inside Netscape Navigator (there was no spec, after all), and they created a dialect of it called JScript (they could not name it JavaScript because lawyers) and made it compatible with their COM+ runtime model.
Starting a Typescript CLI Project from ScratchThe JavaScript ecosystem has grown dramatically in the past decade. It has become so complex, that I’ve seen many new developers interested in the subject struggle to find out where to start.
Debugging Javascript in WebviewsFollowing this Stack Overflow answer do the following to debug JavaScript in your UWP web views.
The Developer Guide to Migrate Across GalaxiesThis is the presentation I gave at the second App Builders Conference in Lausanne, Switzerland, April 25th, 2017.
Still Learning One Language per YearQuick update about my “one language per year” lifelong initiative:
Announcing my second book: "Sencha Touch 2 Up and Running"This is the official announcement of my second book, “Sencha Touch 2 Up and Running”, available for sale in print and in DRM-free electronic formats (PDF, ePub, Kindle, etc.). This book is my humble attempt to provide an easy path to learn the basics of Sencha Touch 2.1.
Announcing my first book: "Mobile JavaScript Application Development"Today I’m announcing my first book, “Mobile JavaScript Application Development”, available for sale in print and in DRM-free electronic formats (PDF, ePub, Kindle, etc.). The book is adapted from the mobile web app trainings I’ve been giving in Zurich and South Africa, about JavaScript, HTML5, jQuery Mobile, Sencha Touch and PhoneGap.
Introducing the Teaching EditorWe are very happy to introduce our latest open source project: the Teaching Editor. This project provides an online editor that automatically reloads the contents of an iPhone-sized frame. It also provides students with a read-only mode, allowing them to follow in real time whatever code is written in the screen of the teacher, and they can also download the current state of the code at any moment.
Learning One New Language Every YearHere’s an update of the current status of my “one language per year” lifelong initiative:
Dezeen Watchstore Web AppAnother day of announcements at akosma software: this time, a fruitful and fun collaboration with Zerofee to create a dynamic visual identity for the Dezeen Watchstore, and their Dezeen Watchstore iPhone & iPad Web Application (best viewed with Safari on iOS, iPhone & iPad!).
iPhone Apps without Objective-CYes, it’s possible. Even if Objective-C is one of my preferred programming languages, in any case I think it’s worth mentioning that, 2 years after the official iPhone SDK has been announced, the iPhone development landscape has really grown up, and many, many different options are available today. This article provides a very high-level enumeration of some options I’ve found on the web, but I’m sure there are even more alternatives around.
Playing With HTTP LibrariesIt’s fun to find out how to tackle the same task in different programming languages; in this case, it’s all about doing HTTP requests over a network: fortunately, there are networking libraries in virtually all major programming languages. In my current project, I’m generating wrappers easing the access to the core of the project itself, a RESTful API. This way, developers interested in using the API can just take a wrapper, include it in their projects, and start coding right away. No need to know this (relatively low-level) stuff; just use the API. The wrappers themselves are auto-generated from the API definition itself, but that’s another story ;)
Javascript Tips and Tricks (4)For the last article of this series, I’ll let Douglas Crockford do the talk :) This is an amazing video about the good and the bad parts of JavaScript, as seen by a guy that seriously, seriously knows his stuff: Douglas works in the YUI team at Yahoo!, and has written a lot about JavaScript: he coined the phrase about JavaScript being the world’s most misunderstood language, and wrote the amazing JSLint tool.
Javascript Tips and Tricks (3)How to organize code in “namespaces” When you use lots of libraries in your code, you can easily pick up a function name that corresponds to a pre-existing name in some library that you might have included. To avoid that, you should create namespaces that encapsulate the code of your application:
Javascript Tips and Tricks (2)Object-Oriented Programming in JavaScript Functions are also used to represent classes when doing object-oriented JavaScript. There are several possible ways to write object-oriented JavaScript code, but they all turn around the concept of the Function class:
Javascript Tips and Tricks (1)As I said yesterday, JavaScript is the world’s most misunderstood language, which means that you must unlearn what you have learned. However complicated it might seem at first, it is quite easy to write and understand the most complex of JavaScript codes with just some examples.
ExtShould you ever have to work on a web application again, just don’t think about it twice; Ext is an amazing piece of free software, light-years away from anything you’ve seen before.
Preferred Programming LanguagesThere are basically 5 languages that I really like. For several reasons. 2 of them are proprietary, while 3 are open-source. 2 are statically typed, and 3 are dynamically typed. All are fully object-oriented. 3 can be used for web development, 4 for desktop apps. And none is Java.
A New Programming Language Every YearSomewhere I read that it was a good thing to learn at least one new programming language every year; I think I have kept up that trend since 1992: