I’ve just came back from FOSDEM 2020 full of ideas and impressions. I think I’d rather do a quick post now than forget all the stuff.
A month ago I posted about my impressions after my first week with the Surface Pro X and promised a post about my former machine which is a Surface Go, a tiny marvel with which I’ve spent the past part of 2019, well, this is that post. Read on for some commentary about using the Surface Go as a main machine both as a developer and as a writer.
I’ve posted about my initial week with the Surface Pro X not long ago, now a month later I want to address an important topic which I see as crucial for Windows on ARM to get traction: Developer Support. At the moment it is really hard to develop GUI apps for Windows on ARM outside of the “Visual Studio ecosystem”.
As of this writing there is no native Windows on ARM versions of: Python, Ruby, Go, Rust, Pascal/Lazarus, D, Nim, Zig, Racket, Clojure, Java.
Right now, I have Visual Studio 2019 running on my Surface Pro X and I’m trying to use it to port other languages to Windows on ARM.
In this brief post, I’m going to explain why I see this as a problem; what I tried to do to solve this for my own personal usage; what challenges I faced; and some approaches that Microsoft could (and should) do to solve this.
Disclaimer: I am not a senior native developer. I am a curious tinkerer. I can build native, mobile, and web apps, but I’m not experienced with Visual Studio, or with all the plumbing and low level requirements for lots of the things I’ll be talking about here. This is a personal account of how I tried to handle the lack of developer tools familiar to me in this platform. I may be wrong on many occasions and will welcome fixes and pointers to help me solve the challenges explained below.
In this post I demystify what makes a high performance developer. Read on to grokk all the secrets.
I think that many people on threads related to the recent Chrome 79 bug are completely missing the important points and are instead doing the “place the blame on developers who should known better” game which is a bad approach to talking about what has happened.
LocalStorage, webSQL, IndexedDB have been rock solid solutions for hybrid apps for probably close to a decade. Data eviction seldom happens for hybrid apps. These are stable APIs and have been working reliably for many years. It is not as if the developers have flocked to a new shiny unstable thing and then got burned by it not failing to work as advertised. This bug completely breaks the way the web platform stores data. It doesn’t matter if these APIs should only be used for caching purposes, that is not how the spec puts it and not how people been developing hybrid apps for years. Google owns Android and Chrome, they know that those hybrid apps are storing data in localStorage. They’ve broken something that was stable. I wonder if people would be placing the blame on third-party developers if Apple or Microsoft made shipped an update to windows or iOS that destroyed the sandbox filesystem.
There is massive damage happening in the real world because of this. From vet hospitals losing animal vaccination data, a process that can’t be repeated. To small business losing their financial data. Users faced with an app with zero data, begun been trying to reinstall the apps in hopes to fix this, which only caused further damage as the data is now unrecoverable. Planting the blame in “developers who should known better” is a complete lack of empathy to both the users and the developers who’ve been affected by something completely out of their control. There are developers pulling their apps out of the Google Play store because the onslaught of bad reviews will kill them or because they can’t provide a solution for a bug that happens in layers beyond their control. The bug is not fixable by the app developers. If you have an app that was affected by this, there is nothing you can do.
And for the “developers should use it only as cache” people out there, this affects this use case as well. Using localStorage as a temporary location for data while you’re offline and pushing this data later has been a best practice for a long time. This bug will erase this temporary data. All those field workers, all the remote data collection, goes poof as soon as the phone goes back into mobile coverage and auto-updates chrome before the app have the chance to sync it up.
Lastly the chrome team is not, in my own personal opinion, having the correct approach here. They failed. Their automated test should have flagged this. There should have never been a release with this bug. Treating responsibility like a hot potato and saying “you developers should have tested the beta and reported back” is acting like they don’t have ownership over their own project.
I just made a new add-on that I believe you people might like. It is an add-on to help remember to check back on a page at a different date. Have you ever been in one of those situations reading a web page and thought that you needed to check back there in 15 days or next year, and totally forgot to do it? Well, this add-on is for you.
Today I want to share with you all something that is very dear to me. Something that is not related to programming or anything computer related. Today we’re going to talk more about board games. We’re going to talk about one specific board game that has captured my imagination for the past 15+ years. It is called Piecepack and it is not really a board game at all.
This is a quick post just to tell people that wxWidgets compiles well on Windows on ARM.
I’ve spent a bit more than a week with my new Surface Pro X. What follows is review of my experiences with it as a try to set it all up for it to become my main machine. Be aware dear reader that this is not a review with benchmarks, graphs, and comparisons with alternative machines. This is a personal account and ecosystem commentary of how it has been working for a single person and what this person (me!) is feeling about it. That being said, read on for the nitty and gritty details. I’m providing you with a handy table of contents in case you want to go directly to topics that you’re curious about.
Added a new chapter called Extras: Using Libraries to my book about LiveCode Advanced Application Architecture. In it I detail how and why to use third-party libraries and how to build your own.