Much regrets to all my loyal fans

It’s come to that point where I’m basically forced to either step up and do a patreon and beg for money, or go the other way and passively shill for ads.

I’ve gone for plan b.

It’s annoying and yeah I know. It sucks.

This trip has… been a challenge, and I have a stack of unfinished crap I need to push out, but frankly i’ve been too lazy to do it.

Maybe I’ll call it depression as it’s more dressed up and sexy.

Anyways I now have far too much kit where I wanted 3 max, and now I have like far too many. Time to get busy with my Chinese soldering iron, patch up some stuff, and get some of this out of the door.

Anyways yeah, people not using blockers will see the ads.

Also today was frought with additional money stress so yeah.. let’s hope this meets in the middle passively.

Cloud Functions Bucket File Editor

(This is a guest post by Antoni Sawicki aka Tenox)

The title is little complicated so let me explain! Ever since dawn of the web I been running some web server to host various websites. In the beginning it was a physical machine under my desk, then a colocated server, then a VPS Virtual Machine, then a container. Eventually all the websites that I look after or host for friends/family ended up in “the cloud”. Storage buckets to be precise, as they offer a super cheap and simple way of hosting static websites. I no longer have to maintain machines, look after updates, security or configuration. Just upload HTML and done.

However here lies a problem. You can’t just “edit” a file in a bucket, you can only download it, edit locally and re-upload. This typically is done via Storage Browser UI or gsutil cli utility (in case of GCP). Or some sophisticated IDE with storage API support or sometimes a FUSE client. In any case it’s hard and cumbersome. Why can’t there be a simple Edit function in the UI?

Why isn’t there a File Edit Option????

I have recently discovered that there even is a brand new Cloud Shell Editor which is a VScode instance bound to your “cloud shell instance”. It allows you to virtually edit files “in the cloud” but of course not in storage buckets! WHY NOT?

While this been bothering me for a while I also got interested in so called “cloud functions” which are small pieces of code that you can run “in the cloud” without need for a VM or even a container (although surely they run in one behind the scenes). Just paste the code and run… somewhere. Cloud Functions or AWS Lambdas have been notoriously abused by crypto miners. I wanted to play with these for legitimate reasons and finally decided to create a simple web based text editor that would allow to edit text files in storage buckets. So CFEdit was born.

The editor is super simple, no frills, just a file selector and textarea for editing files. You deploy it by creating a new function, either via the UI or CLI. You can restrict it just to a single bucket or allow editing in any bucket within a project. It doesn’t use IAM and thus doesn’t require Google accounts. I specifically wanted to avoid complexity of that and just went with own user database and HTTP Basic Auth.

Now I can create account for family members or friends and allow them to edit their web pages via simple web based editor rather than asking for uploading files or resorting to ftp/sftp GCS gateways or stuff like that.

In future I’m planning to add other function like create blank file, directory, upload/download etc. Let me know what’s needed.

CFEdit can be downloaded from, the readme describes in steps on how to deploy it.

lsblk for Windows released

(This is a guest post by Antoni Sawicki aka Tenox)

Pleased to announce that lsblk utility for Windows is finally released. This is not entirely new, the original code was on github for a few years now, but it was lacking major features of printing drive letters, mount points and filesystem types.

Why would anyone even want lsblk for Windows? There are many other “native” ways of displaying disks and volumes. For example in PowerShell: Get-Disk or Get-PhysicalDisk or in cmd: wmic diskdrive list brief. Not to mention diskpart or disk management UI. There are a few answers to this.

Firstly the output format of lsblk on Linux is rather intuitive and useful, which can’t be said about previously mentioned utilities. People with Linux background find it more like at home.

PowerShell and wmic lack ability to combine disk and volume information, unless you want to write a larger script. This is now part of lsblk.

Lastly lsblk uses low level function to list objects directly from the kernel (think WinObj), rather than going through various high level services, management interfaces and relying on VDS (Virtual Disk Service). As such it’s super fast and you can use it even with VDS stopped or inoperable. Finally it’s yet another of these native Linux tools now also available on Windows.

Finally, some of the column names may sound cryptic, so here is an explanation:

ST – Status 1=healthy 0=unhealthy
TR – Trim / Unmap / Discard Capability
RM – Removable Media
MD – Media changed (for removable media)
RO – Read only

Virtualization Challenge IV – Act II – QNX 1.2 HDD Boot ($2000 prize)

(This is a guest post by Antoni Sawicki aka Tenox)

A couple of months ago we hosted VIrtualization Challenge for QNX v1.2. I expected that the hard part would be to circumvent the copy protection and the rest would be easy. It turned out to be quite the opposite! The copy protection was worked around in no time by several people independently. What turned out to be impossible is to install the OS on a hard disk.

QNX 1.2 does have several drivers for different hdd controllers including BIOS mode. It has fdisk, can create partitions, install MBR, format fs, mount hard disk volumes… but it cannot install boot code. Apparently this functionality has been added only in QNX 2.x. After a long debate we settled for a solution where you boot kernel from a floppy disk and use the rest of the os from a hard disk. This was implemented by Forty who won the challenge which was outlined in this post.

In a rather unexpected turn of events Dan Dodge, co-creator and CEO of QNX Software Systems himself reached out to us and offered to extend the contest to finish the process properly. Dan is offering $2000 prize for making QNX 1.2 boot from hard disk without use of the boot floppy disk. I have confirmed the details in an email exchange.

Rules: As always the winner will be the first person who provides a working image in the comments. Any emulator/hypervisor is allowed. You can use boot loader from QNX 2.x, or write your own or anything else you come up with. There are some tips in Dan’s comment. Ask away for more details. The QNX repository is here. Good luck! 🙂

Update: The challenge has been completed! The winner is Mihai Gaitos and this is the winning entry also a post on this blog. I will work with Mihai to get a more detailed blog post of what has been done and Dan to hand out the $2000 prize. Congratulations!!!

Update: You can try QNX 1.2 straight in your browser with PCjs!

Internet archive to fully open up during “Covid19/SARS 2/武汉肺炎”

To address our unprecedented global and immediate need for access to reading and research materials, as of today, March 24, 2020, the Internet Archive will suspend waitlists for the 1.4 million (and growing) books in our lending library by creating a National Emergency Library to serve the nation’s displaced learners. This suspension will run through June 30, 2020, or the end of the US national emergency, whichever is later. 

During the waitlist suspension, users will be able to borrow books from the National Emergency Library without joining a waitlist, ensuring that students will have access to assigned readings and library materials that the Internet Archive has digitized for the remainder of the US academic calendar, and that people who cannot physically access their local libraries because of closure or self-quarantine can continue to read and thrive during this time of crisis, keeping themselves and others safe.  

This library brings together all the books from Phillips Academy Andover and Marygrove College, and much of Trent University’s collections, along with over a million other books donated from other libraries to readers worldwide that are locked out of their libraries.

This is a response to the scores of inquiries from educators about the capacity of our lending system and the scale needed to meet classroom demands because of the closures. Working with librarians in Boston area, led by Tom Blake of Boston Public Library, who gathered course reserves and reading lists from college and school libraries, we determined which of those books the Internet Archive had already digitized.  Through that work we quickly realized that our lending library wasn’t going to scale to meet the needs of a global community of displaced learners. To make a real difference for the nation and the world, we would have to take a bigger step.

“The library system, because of our national emergency, is coming to aid those that are forced to learn at home, ” said Brewster Kahle, Digital Librarian of the Internet Archive. “This was our dream for the original Internet coming to life: the Library at everyone’s fingertips.”

Public support for this emergency measure has come from over 100 individuals, libraries and universities across the world, including the Massachusetts Institute of Technology (MIT).  “Ubiquitous access to open digital content has long been an important goal for MIT and MIT Libraries. Learning and research depend on it,” said Chris Bourg, Director of MIT Libraries. “In a global pandemic, robust digital lending options are key to a library’s ability to care for staff and the community, by allowing all of us to work remotely and maintain the recommended social distancing.”

We understand that we’re not going to be able to meet everyone’s needs; our collection, at 1.4 million modern books, is a fraction of the size of a large metropolitan library system or a great academic library. The books that we’ve digitized have been acquired with a focus on materials published during the 20th century, the vast majority of which do not have a commercially available ebook.  This means that while readers and students are able to access latest best sellers and popular titles through services like OverDrive and Hoopla, they don’t have access to the books that only exist in paper, sitting inaccessible on their library shelves. That’s where our collection fits in—we offer digital access to books, many of which are otherwise unavailable to the public while our schools and libraries are closed. In addition to the National Emergency Library, the Internet Archive also offers free public access to 2.5 million fully downloadable public domain books, which do not require waitlists to view.

We recognize that authors and publishers are going to be impacted by this global pandemic as well. We encourage all readers who are in a position to buy books to do so, ideally while also supporting your local bookstore. If they don’t have the book you need, then Amazon or Better World Books may have copies in print or digital formats. We hope that authors will support our effort to ensure temporary access to their work in this time of crisis. We are empowering authors to explicitly opt in and donate books to the National Emergency Library if we don’t have a copy. We are also making it easy for authors to contact us to take a book out of the library. Learn more in our FAQ.

A final note on calling this a “National Emergency” Library.  We lend to the world, including these books. We chose that language deliberately because we are pegging the suspension of the waitlists to the duration of the US national emergency.  Users all over the world have equal access to the books now available, regardless of their location.

How you can help:

  1. Read books, recommend books, and teach using books from the National Emergency Library
  2. Sponsor a book to be digitized and preserved
  3. Endorse this effort institutionally or individually
  4. Share news about the National Emergency Library with your social media followers using #NationalEmergencyLibrary
  5. Donate to the Internet Archive

If you have additional questions, please check out our FAQ or contact Chris Freeland, Director of Open Libraries

Random fun with video cards

So that 3d Mark 11 bench tool was on sale, and I thought it’d be interesting to judge various machines.

NVIDIA GeForce RTX 2070(1x) and Intel Core i7-9700K ProcessorNVIDIA GeForce GTX 980(1x) and Intel Xeon Processor E5-2678 v3AMD Radeon R9 290X(1x) and Intel Xeon Processor E5-2620 v2
3DMark Score239801635113534
Graphics Score290581758518872
Physics Score15672132897876
Combined Score15824138556623
Graphics Test 1 fps1146.83182.54180.92
Graphics Test 2 fps2145.84282.38290.27
Graphics Test 3 fps3173.273111.73124.86
Graphics Test 4 fps481.82452.33457.79
Physics Test (fps)49.7642.1925
Combined Test (fps)73.664.4430.81

One glaring thing is that the old AMD (new ones too??) don’t have any PhysX acceleration so the weak processors shine through. And honestly the 980 is still a really solid card. Assuming yours hasn’t been mined to death.

Going from memory here is roughly what I paid (Yes I bought the RTX 2070 before the announcement of the Supers, and basically it’s too high for right now, but this is what happens in tech, value slides way down).

RTX 2070GTX 980R9 290x
price in HKD$3,739$800$350
3DMark Score239801635113534
3DMark per HKD6.4120.4438.67

So the biggest bang for the buck is the used stuff. Like it’s not even close. I should probably add in MSRP’s for the old cards. But here we are.

My old GPU was an GTX 460, before I tried out the 1030 & 1050 before making the leap to the 2070. But lately I’ve been looking for old gen cards as they seem to perform pretty well. Also for AutoCad I picked up a P2000. It’s insane how much those cards can go for, and I should bench that one to show how terrible it is at gaming. But wow what a speed difference in CAD.