10 interesting stories served every morning and every evening.

OpenTools / OpenPrinter

www.opentools.studio

is a re­pairable, com­pact, and ro­bust printer de­signed to last.

Fully re­pairable and equipped with a re­fill­able ink sys­tem, it adapts to your needs while re­duc­ing your print­ing costs.

Easy to main­tain, it of­fers a sus­tain­able, eco­nom­i­cal, and eco-friendly al­ter­na­tive to tra­di­tional print­ers.

With Openprinter, eas­ily re­fill your car­tridges.

Reduce your costs and limit the waste of con­sum­ables.

Take con­trol of your ink con­sump­tion

Master your ink con­sump­tion in a few steps.

Freedom to use your car­tridges

Use your black and/​or colour car­tridges in­de­pen­dently : print in black for es­sen­tials or in colour for your cre­ations.

No more frus­trat­ing block­ages like: Cannot print in black be­cause the yel­low is empty.”

1. Just the black car­tridge

Print a rich and deep black

2. Just the color car­tridge

Print vi­brant col­ors and a light black

3. Cartridges black & color

You have both op­tions

Free pa­per for­mat

With Openprinter, you are free to choose be­tween stan­dard sheets or a roll of ver­sa­tile pa­per.

Print not only in stan­dard

for­mats

, but also in

ban­ners

, strips

and com­pletely cus­tomized

for­mats.

Thanks to the in­te­grated cut­ter, un­leash your cre­ativ­ity.

Print also on sheets A4 and A3

Remove the roller eas­ily

to place pa­per’s sheets (A4, A3, Tabloid, Letter)

Flexible con­fig­u­ra­tions

To place on a desk or mount on a wall — you choose. Openprinter fits any­where.

Create a new work space that makes your ex­changes smoother and more mod­ern.

Compact

The most com­pact printer/​plot­ter on the mar­ket. Easy to move, it fits any­where and can be stored in an in­stant.

Robust. Repairable. Open. Durable.

Composed of stan­dard and open source com­po­nents, Openprinter is easy to as­sem­ble, main­tain, and re­pair, en­sur­ing longevity.

Keep your ma­chine and con­sum­ables for as long as pos­si­ble and help re­duce elec­tronic waste.

A self-as­sem­bly kit or al­ready as­sem­bled and ready to use.

Independent of op­er­at­ing sys­tems

Equipped with an open source print server (CUPS), Open Printer works with Windows, MacOS, Linux, Android, iOS.

It han­dles all your print­ing, both lo­cally and over the net­work, for a sim­ple, flex­i­ble, and dri­ver-free ex­pe­ri­ence.

Customize it

Choose the coloured ver­sion that re­sem­bles you. Thanks to open source, you can also print your own 3D parts to cre­ate a unique printer.

Technical spec­i­fi­ca­tions

Black and white : 600 dpi

Color : 1200 dpi

Speed : to be de­fined

European for­mats

Sheet : A4, A3

Paper roll : 29.7 cm (wide) 18 m or 37.5 m (long)

North American for­mats

Letter, Tabloid

Paper roll : 11 inch (wide)

Compatible car­tridges

HP 63 and HP 63 XL (US)

HP 302 and HP 302 XL (Europe)

HP 803 and HP 803 XL (Asia)

Rechargeable ink car­tridges (with the Inkit)

100ml ink bot­tles (Black, Magenta, Cyan, Yellow)

Vials

Modes of car­tridge use

sin­gle car­tridge (black or color)

or both (black and color)

USB Type-C (computer)

USB Type-A (USB flash drive / stor­age de­vice)

Wi-Fi 802.11ac (AirPrint)

Bluetooth 4.1

Main board : Raspberry Pi Zero W

Cartridge board : STM32 mi­cro­con­troller

Computer : Windows, ma­cOS, Linux,

Phone : iOS, Android

497 × 233 × 111 mm

19,5 × 9,2 × 4,4 in

On a desk

Mural (with the wall kit)

24 V DC, 2.1 mm con­nec­tor

TFT LCD 1.47 inch, 172 x 320 px

Pre-order cam­paign

To re­serve your ma­chine, fol­low our crowd­fund­ing cam­paign on Crowd­sup­ply.

Frequently Asked Questions

Cartridges

The car­tridges can be found in usual re­tail out­lets and on­line. This model is sold world­wide and widely dis­trib­uted.

Europe : HP 302, HP 302 XL

US : HP 63, HP 63XL

Asia : HP 803, HP 803XL

You can also find them at our sup­pli­ers: Printerre.

Paper roll

Paper roll (29.7 cm x 18 m) or (29.7 cm x 37.5 m) are eas­ily found on­line.

Ink

Open Tools will sell the Inkit :  4 x bot­tles (black, ma­genta, cyan, yel­low) and re­fill tools.

Two el­e­ments will help you save money :

Machine durable :

de­signed to be ro­bust and last a long time, all com­po­nents are re­pairable, and re­place­ment parts are avail­able in full for a long time.

By keep­ing your ma­chine over time, you save money.

Low ink and con­sum­able costs :

the car­tridges are re­fill­able with ink and with­out block­ing (no DRM).

Moreover, the ink sold by Open Tools al­lows you to achieve an eco­nom­i­cal cost per page.

With your phone

, you can scan all your doc­u­ments in high de­f­i­n­i­tion. The

has_not_been_viewed_much — Will W.

iamwillwang.com

The

Art Institute of Chicago’s API in­cludes a has_not_been_viewed_­much field on art­work. It’s a boolean that de­scribes whether an art piece has­n’t been vis­ited on their web­site very much.

More specif­i­cally, per the

source code , has_not_been_viewed_­much means the art piece has been viewed fewer than 200 times on the web­site since January 1, 2010.

Of course, that still begs the ques­tion: what are these art­works? Why aren’t they be­ing viewed? I can’t an­swer the lat­ter, but, if you have a mo­ment for the for­mer, please take some time to browse.

The Future of Flipper Zero Development

blog.flipper.net

We’ve seen the strong re­ac­tion from the com­mu­nity over the idea that we’ve stopped de­vel­op­ing the Flipper Zero firmware. We want to ad­dress this and let you know that we’ve heard all your feed­back and have de­cided to re­think our ap­proach to main­tain­ing the pro­ject and en­gag­ing with the com­mu­nity.

TL;DR: We’ve al­lo­cated re­sources to main­tain Flipper Zero firmware and sup­port com­mu­nity con­tri­bu­tions. From now on, com­mu­nity re­quests and con­tri­bu­tions will be re­viewed un­der new rules: vot­ing for fea­ture re­quests in GitHub Discussions, clearer pull re­quest guide­lines, and manda­tory in­te­gra­tion test­ing.

How it all started — Kickstarter 2020

When Flipper Zero launched on Kickstarter, we were over­whelmed by the com­mu­ni­ty’s sup­port. That sup­port came with a re­spon­si­bil­ity to de­liver what we had promised. At the same time, we faced a wave of skep­ti­cism. We were called scam­mers and told the pro­ject would never ship.

A year and a half later, our en­tire team worked with the fear of let­ting our back­ers down and be­com­ing an­other crowd­fund­ing pro­ject re­mem­bered for tak­ing $5 mil­lion and never de­liv­er­ing. We were hit by post-COVID com­po­nent short­ages, soar­ing sup­ply chain costs, and po­lit­i­cal tur­moil. On top of that, we were still deal­ing with thou­sands of ac­cu­sa­tions, in­sults, and threats.

We worked as hard as we could while try­ing to ig­nore the con­stant storm of crit­i­cism around us. But we have to ad­mit that it was in­cred­i­bly dif­fi­cult. Today, we can look back and say that we made the right de­ci­sions: we planned our re­sources care­fully, took risks, and worked re­ally hard.

In the end, we made it through every chal­lenge: from hard­ware and man­u­fac­tur­ing to sup­ply chains, lo­gis­tics, firmware, and soft­ware de­vel­op­ment. We feel em­pa­thy for the teams be­hind crowd­fund­ing pro­jects that tried to copy Flipper Zero, but ended up ship­ping noth­ing. We could eas­ily have been one of them, but to­day we can say with con­fi­dence:

We de­liv­ered on all Kickstarter promises — every backer re­ceived the Flipper Zero they paid for, even if it took much longer than any­one had ex­pected.

All fea­tures were im­ple­mented — every­thing we stated in our Kickstarter cam­paign works as promised. This took us years of de­vel­op­ment.

We built a plat­form and in­fra­struc­ture — we’re proud that Flipper Zero has be­come a hard­ware plat­form with soft­ware tools, APIs, and an SDK that de­vel­op­ers gen­uinely en­joy us­ing. That’s ex­actly why there are so many com­mu­nity-dri­ven pro­jects around Flipper Zero: al­ter­na­tive firmware, apps, and scripts.

Flipper Zero is avail­able world­wide (almost) — it may not be the most vis­i­ble achieve­ment, but we in­vested an enor­mous amount of ef­fort into get­ting reg­u­la­tory cer­ti­fi­ca­tions, cus­toms ap­provals, and all the pa­per­work re­quired to of­fi­cially im­port Flipper Zero into most coun­tries. That’s why there are now so many de­vices in peo­ple’s hands.

Thanks to every­one who sup­ports us

We are deeply grate­ful to every­one who has sup­ported us since the Kickstarter cam­paign and be­lieved in our team. Without your sup­port back in 2020, Flipper Zero would prob­a­bly never have hap­pened. Together with you, we built some­thing far big­ger than we ever imag­ined.

Stable firmware 1.0

It’s im­por­tant to un­der­stand that Flipper Zero has only 700 KB of flash mem­ory avail­able for firmware. And we ran into this limit very quickly, mak­ing it im­pos­si­ble to add new fea­tures. To work around it, we came up with dy­namic apps load­ing from the mi­croSD card — it al­lowed us to move de­vice func­tions (including core fea­tures) out­side the firmware into apps.

This ar­chi­tec­ture be­came the foun­da­tion of the sta­ble firmware 1.0, which was re­leased in 2024 fol­low­ing the Apps Catalog launch. We pol­ished the user in­ter­face and doc­u­men­ta­tion. We also sta­bi­lized the firmware API and SDK for app de­vel­op­ers, so they no longer had to re­build their apps every month due to some API changes.

Since the firmware no longer re­quired ma­jor changes, we de­cided to limit our work to main­tain­ing the in­fra­struc­ture and fix­ing crit­i­cal bugs, while shift­ing our fo­cus to build­ing new de­vices (after all, we’re called Flipper Devices).

By that point, an en­tire ecosys­tem of al­ter­na­tive firmware pro­jects and com­mu­ni­ties had al­ready ex­isted, with peo­ple im­ple­ment­ing every fea­ture they could think of — even the weird­est ones. We con­sider our mis­sion ac­com­plished: we built an ac­ces­si­ble de­vel­op­ment plat­form, and com­mu­ni­ties can now shape it into what­ever they want.

We did­n’t ex­pect so many peo­ple to care so deeply about the de­vel­op­ment of the of­fi­cial Flipper Zero firmware. It’s gen­uinely mov­ing that this pro­ject and every­thing we’ve built to­gether mat­ters to you. That’s why we’re ready to re­visit some of our past de­ci­sions. We de­cided to al­lo­cate re­sources to con­tinue sup­port­ing com­mu­nity con­tri­bu­tions, but with a new ap­proach.

What this means in prac­tice:

Limited team re­sources — our team is still small, and all our at­ten­tion right now is on build­ing new DEVICES. We can no longer hang out in chats, jump on calls, and talk in real time the way we used to. From the out­side, it might look like we’re ig­nor­ing the com­mu­nity, but in re­al­ity, it’s just fo­cused work.

Async com­mu­ni­ca­tion only — from now on, all com­mu­ni­ca­tion with the de­vel­op­ment team will hap­pen through re­quests in GitHub Discussions. You can vote on top­ics, and we com­mit to re­view­ing the re­quests that get the most votes. But these have to be con­crete fea­ture re­quests, for­mat­ted ac­cord­ing to the rules. Abstract ques­tions, gen­eral dis­cus­sion, and help re­quests stay on Discord, Reddit, and so­cial me­dia.

New con­tri­bu­tion rules — we’ll now eval­u­ate pull re­quests more strictly, as re­flected in our up­dated con­tri­bu­tion guide. This ap­plies es­pe­cially to AI-generated code that touches low-level li­braries that is hard to ver­ify, as well as changes that af­fect the de­vice’s UI and re­quire ed­its in the doc­u­men­ta­tion.

Integration and re­gres­sion test­ing — it’s im­por­tant that code changes don’t break ex­ist­ing fea­tures. That’s why we’re mak­ing pub­lic the in­te­gra­tion test cases that our QA team used to test the firmware. These tests will need to be run for every change to the firmware code, and we’ll bring the com­mu­nity in to help with part of the re­gres­sion test­ing.

Feature re­quests now only via GitHub Discussions

Once the to­tal num­ber of Flipper Zero users passed one mil­lion, di­rect real-time com­mu­ni­ca­tion with the com­mu­nity be­came im­pos­si­ble. We re­ceive a huge num­ber of re­quests across every com­mu­ni­ca­tion chan­nel, to the point where we even­tu­ally had to dis­able di­rect mes­sages on our so­cial me­dia ac­counts.

At the same time, in all this noise, it be­came im­pos­si­ble to sep­a­rate what ac­tu­ally mat­ters. You can’t re­ally dis­tin­guish be­tween re­quests that re­flect real com­mu­nity needs and a sin­gle per­son’s niche re­quest — every­thing just blends into the same white noise.

Vote for what re­ally mat­ters

We’re mov­ing all re­quests from the Flipper Zero com­mu­nity to GitHub Discussions. Now you can 🤚 vote for fea­ture re­quests that re­ally mat­ter, so we can see what the com­mu­nity ac­tu­ally wants and pri­or­i­tize them.

Please stay on topic

We’d re­ally ask you to keep this space for gen­uinely im­por­tant re­quests — ones that can re­al­is­ti­cally be im­ple­mented and that you’re sure aren’t just some­thing you per­son­ally want, but some­thing oth­ers ac­tu­ally need too. Otherwise, it just turns into noise, spam, and end­less back-and-forth.

For dis­cus­sions that aren’t suit­able as fea­ture re­quests, there’s Discord, Reddit, Twitter, and our other so­cial chan­nels.

Summary

We’re al­lo­cat­ing re­sources to main­tain­ing the Flipper Zero firmware. Our team will go through com­mu­nity re­quests weekly.

Communication with the de­vel­op­ment team will now hap­pen only through GitHub Discussions. We’ll work on the fea­ture re­quests with the most votes.

Accepting PRs in the Apps Catalog will work as be­fore.

AMA with Flipper team

reuters.com

www.reuters.com

Please en­able JS and dis­able any ad blocker

Live Train Map

www.map.signalbox.io

Castro Podcasts — Things I got wrong: Support

www.uncommonapps.nyc

I had an idea when I bought Castro that hu­man sup­port based around ac­tual user ex­pe­ri­ence was an easy dif­fer­en­tia­tor. I’ve rarely got­ten use­ful an­swers from sup­port from ser­vices I use. I thought if I used my own prod­uct every day, read every email and an­swered it thought­fully, peo­ple would ap­pre­ci­ate this, and it would build some de­gree of loy­alty and ap­pre­ci­a­tion. This way, cus­tomers would feel their sub­scrip­tion dol­lars were ac­tu­ally go­ing to­ward some­thing. When emails over­whelmed me, I asked a thought­ful user who emailed fre­quently and seemed to know as much about the prod­uct as I did if he’d help an­swer the emails, so I paid him to do that. And he did a great job, es­pe­cially in terms of di­rectly solv­ing user prob­lems.

However, what I found is this whole thing did­n’t work as I thought it would. Sure some­times we were able to wow cus­tomers, par­tic­u­larly when we re­sponded right away with an ex­act fix for them. But the vast ma­jor­ity of our hon­est, thought­ful an­swers were deeply un­sat­is­fac­tory to users, and it of­ten an­noyed them more than any­thing else.

Here are my un­sci­en­tific cat­e­gories of sup­port re­quests/​emails we get and why the ap­proach is flawed.

Complaints about sub­scrip­tions and pric­ing

I have al­ready thought about this a great deal. I am not chang­ing any­thing based on your email. I can of course try to jus­tify why we charge what we do, and I’m happy to ex­plain why an es­sen­tial app is worth your money, and why soft­ware lends it­self to sub­scrip­tion so well. But in re­al­ity the user is not sat­is­fied with this. I can think of ex­actly one cus­tomer in two years who was sur­prised that soft­ware costs money and we’re ac­tu­ally do­ing work every day, thus charg­ing a sub­scrip­tion makes sense. 99% of the time, no mat­ter how care­fully or kindly it’s ex­plained, the re­ply will be more neg­a­tive than the ini­tial email. I tried just of­fer­ing an ad­di­tional 30-day trial to any­one who asked, but this did­n’t change the sen­ti­ment of the emails, and those tri­als had a sub­stan­tially lower hit rate than our typ­i­cal free tri­als. I could fill sev­eral blog posts with thoughts on sub­scrip­tions, but suf­fice it to say, emails about pric­ing are not help­ful in terms of build­ing rap­port.

Bugs

These emails are gen­uinely use­ful to me, the re­ceiver. I want to know about the bugs peo­ple are ex­pe­ri­enc­ing on a daily ba­sis. In the best case, I can say we know about this and are ac­tively work­ing on a fix or have al­ready fixed it. Due to the way ship­ping works in the App Store, it’s com­mon for a bug to be fixed but not dis­trib­uted yet. Those are great emails to an­swer and we can sat­isfy the cus­tomer.

But there’s a long tail of bugs that are not like this:

We have heard this be­fore, but we can­not see it or repli­cate it. The user gets to do work for us and/​or get no res­o­lu­tion. Bad ex­pe­ri­ence for them, bad ex­pe­ri­ence for us, mostly a waste of every­one’s time. Very, very oc­ca­sion­ally a user will send a de­tailed re­port with steps to re­pro­duce or a mean­ing­ful fac­tor. Still we need to get these emails to know what peo­ple are see­ing.

We have heard this be­fore, but we can­not see it or repli­cate it. The user gets to do work for us and/​or get no res­o­lu­tion. Bad ex­pe­ri­ence for them, bad ex­pe­ri­ence for us, mostly a waste of every­one’s time. Very, very oc­ca­sion­ally a user will send a de­tailed re­port with steps to re­pro­duce or a mean­ing­ful fac­tor. Still we need to get these emails to know what peo­ple are see­ing.

We have never heard this be­fore. User can pro­vide de­tails for us, but if oth­ers aren’t ex­pe­ri­enc­ing it, it’s un­likely to be pri­or­i­tized. Still, use­ful sig­nal for us.

We have never heard this be­fore. User can pro­vide de­tails for us, but if oth­ers aren’t ex­pe­ri­enc­ing it, it’s un­likely to be pri­or­i­tized. Still, use­ful sig­nal for us.

We get no in­for­ma­tion. It does­n’t work” is the whole email. Not much I can do with­out the user do­ing more work, which they un­der­stand­ably aren’t in­ter­ested in do­ing.

We get no in­for­ma­tion. It does­n’t work” is the whole email. Not much I can do with­out the user do­ing more work, which they un­der­stand­ably aren’t in­ter­ested in do­ing.

We know about this, but fix­ing it is a de­cent amount of work or low-pri­or­ity be­cause it’s not a big deal or few users see it.

We know about this, but fix­ing it is a de­cent amount of work or low-pri­or­ity be­cause it’s not a big deal or few users see it.

None of these cat­e­gories seem to build any mean­ing­ful rap­port. Any hon­est an­swer I give is deeply un­sat­is­fy­ing to both par­ties, and we typ­i­cally have bet­ter data from teleme­try or crash logs than the emails pro­vide. It’s cer­tainly use­ful for us to re­ceive them, but there’s not a help­ful re­sponse I can give. In ret­ro­spect, this seems ob­vi­ous, but be­fore own­ing Castro it was not ob­vi­ous to me that a hu­man re­sponse de­tail­ing why I am un­able to solve your prob­lem to­day and am not even go­ing to try is about the worst thing a user can re­ceive!

Nuanced ques­tions / hu­man in­ter­ven­tion

Sometimes we get nu­anced ques­tions about App Store processes, store is­sues, spe­cific lo­cales, hy­per-spe­cific pod­cast ques­tions, etc. A user re­cently had a Castro sub­scrip­tion on two dif­fer­ent ac­counts at dif­fer­ent times and wanted to let one ex­pire while en­sur­ing they got the months they paid for. We were able to re­solve it for them quickly. People do gen­uinely ap­pre­ci­ate this kind of re­spon­sive­ness. So yeah, the idea prob­a­bly works here. Unfortunately, these are less than 1% of sup­port emails.

Customers gen­uinely con­fused / some­thing un­clear

This comes clos­est to build­ing the cus­tomer re­la­tion­ships I was hop­ing for, with the worst re­sults. Customers email us with con­fu­sion about how pod­casts work, how the App Store works, how their Mac works, and any num­ber of tan­gen­tial is­sues. What tends to hap­pen is the same users do this over and over, and once they find out we an­swer, the re­quests get more fre­quent and more bur­den­some. I think I heard Patrick McKenzie use the term pathological cus­tomers”. While in the­ory build­ing rap­port and loy­alty sounds nice, what you ac­tu­ally end up do­ing is spend­ing a lot of time on the peo­ple who ask the most of you, but their sub­scrip­tion dol­lars aren’t worth more, and they’re rarely sat­is­fied. You end up feel­ing taken ad­van­tage of.

Feature re­quests / gen­eral thoughts

Similar to the last cat­e­gory. Good in the­ory, some­times use­ful, but of­ten the same small, un­rep­re­sen­ta­tive seg­ment with strong thoughts. Woe to the team who im­ple­ments a sug­ges­tion based on an email, you are likely to get a full prod­uct roadmap soon!

Castro is an opin­ion­ated app and I’ve thought a lot about what we’re build­ing and what we’re go­ing to work on next. It’s un­likely I’m go­ing to im­ple­ment the re­quest. If I did, by cater­ing more to per­snick­ety power users, we run the risk of alien­at­ing newer users who don’t know how things work. But our power users prob­a­bly aren’t go­ing any­where, at least they’re a lit­tle harder to shake, and alien­at­ing new users is the death of the prod­uct.

To the user, any re­sponse aside from Okay, we’re go­ing to build that right now” is meh-to-neg­a­tive. Various hon­est re­sponses, such as I thought about this or tried it in the past and it un­for­tu­nately did­n’t work very well” are not go­ing to knock their socks off. These just don’t do much in terms of loy­alty and rap­port.

Conclusion

Ultimately, for us, putting too much time into sup­port is­n’t a dif­fer­en­tia­tor, and it’s of­ten counter-pro­duc­tive. The per­son who paid our sub­scrip­tion but would never think about email­ing us and ask­ing for some­thing for free de­serves a great app just as much as the per­son who emails us every week. If we have a spe­cific res­o­lu­tion or fix for their prob­lem, great. If not, we’ve had bet­ter re­sults by say­ing we ap­pre­ci­ate the email, we read them, and we are ac­tively work­ing on the prod­uct to im­prove the is­sues. Avoiding ex­pla­na­tions and specifics tends to get a neu­tral re­sponse and does­n’t suck any­one in or waste too much time. In other words, the best ap­proach for us is what most com­pa­nies do. Because build­ing loy­alty or rap­port at the mo­ment some­thing is­n’t work­ing and the user is frus­trated has­n’t worked. The real pos­i­tive ex­pe­ri­ence comes when you ac­tu­ally im­prove the prod­uct, so that’s where we’re spend­ing our time.

Starring the Computer

www.starringthecomputer.com

Acer

Acer Aspire 500LB

• Eraser (1996)

Acer Aspire 8930G

• Eu când vreau sa fluier, fluier (2010)

Acer Aspire R14

• Jessica Jones - Season 1 (2015)

Acer Aspire Z3 – 600

• Taken 3 (2014)

Acer Chromebook 11

• Knives Out (2019)

Acer Extensa 5620

• Bad Ass (2012)

Acer MPF-1

• Runaway (1984)

Acorn

Acorn A5000

• A Mind to Kill - Season 1, Episode 3, “Gameboys” (1994)

Acorn Archimedes

• Bergerac - Season 8, Episode 11, “There for the Picking” (1990) • Capital City - Season 1, Episode 2, “Insider Trading” (1989) • Dark Season - Season 1 (1991) • Doctor Who - Season 25, “Silver Nemesis” (1988) • Howard’s Way - Season 4, Episode 10, “Publish & Be Damned” (1988) • Howard’s Way - Season 4, Episode 11, “Screwdriver” (1988) • Minder - Season 9, Episode 7, “How to Succeed in Business Without Really Retiring” (1993) • Murder Story (1989) • Paddington (2014) • Rancid Aluminium (2000) • Strapless (1989) • Watt on Earth - Season 1, Episode 1 (1991)

Acorn Atom

• Micro Men (2009)

Acorn BBC Master

• Choose or Die (2022) • Code of a Killer - Season 1 (2015) • Micro Men (2009) • Only Fools and Horses - “The Frog’s Legacy” (1987) • Smart Money (1986)

Acorn BBC Micro

• Ashes to Ashes - Season 3, Episode 1 (2010) • Black Mirror: Bandersnatch (2018) • Clockwise (1986) • Code of a Killer - Season 1 (2015) • Damon and Debbie - Episode 1 (1987) • Dempsey and Makepeace - Season 2, Episode 1, “Silver Dollar” (1985) • Electric Dreams (1984) • The Fourth Protocol (1987) • Full House - Season 1, Episode 5, “Little Secrets” (1985) • Gabrielle and the Doodleman (1984) • Ghostbusters: Frozen Empire (2024) • Grange Hill - Season 11, Episode 5 (1988) • The IT Crowd - Season 1 (2006) • Loki - Season 2, Episode 5, “Science/Fiction” (2023) • Look Around You - Season 1 (2002) • Maths Counts - Season 1, Episode 3, “Orders is Orders” (1983) • Matt’s Millions - Season 1 (1996) • Micro Men (2009) • Out of This World - Season 1, Episode 5 (1995) • Secret Invasion - Season 1, Episode 6, “Home” (2023) • Supergirl (1984)

Acorn Communicator

• Bugs - Season 2, Episode 7, “Schrodinger’s Bomb” (1996)

Acorn Electron

• Bird of Prey 2 (1984) • Cruella (2021) • Girls on Top - Season 2, Episode 3, “Who’s Ya Uncle Shelley?” (1986) • Micro Men (2009)

Acorn Risc PC

• Black Mirror - Season 7, Episode 4, “Plaything” (2025)

Acorn System 1

• Blake’s 7 - Season 4 (1981)

Adage

Adage AGT/30

• Dark Star (1974)

Alienware

Alienware 13 R2

• A Murder at the End of the World - Episode 1, “Chapter 1: Homme Fatal” (2023)

Alienware 15

• Undercover Grandpa (2017)

Alienware 17 R5

• Devs - Season 1, Episode 2 (2020) • Hanna - Season 2, Episode 2, “The Trial” (2020)

Alienware Area 51 15mx

• Hot Tub Time Machine (2010)

Alienware Area 51-M

• Pursued (2004)

Alienware Area 51m 766

• Stay Alive (2006)

Amstrad

Amstrad ALT-286/386SX

• Inspector Morse - Season 5, Episode 4, “Greeks Bearing Gifts” (1991)

Amstrad CPC 464

• Bigbug (2022) • Doctor Who - “Wild Blue Yonder” (2023) • Dodger, Bonzo & the Rest - Season 2, Episode 5 (1986) • Eastenders - Season 1, Episode 194 (1986) • The IT Crowd - Season 3 (2008) • Micro Men (2009)

Amstrad CPC 6128

• According to Daisy (1988) • Commando Ninja (2018) • Damon and Debbie - Episode 2 (1987) • Dekalog - Season 1, Episode 1 (1988) • Dodger, Bonzo & the Rest - Season 2, Episode 5 (1986) • Eliminators (1986) • It’s Nice Up North (2006) • Krótki film o milosci (1988) • Only Fools and Horses - Season 6, Episode 1, “Yuppy Love” (1989) • Red Dwarf - Season 2, Episode 4, “Stasis Leak” (1988)

Amstrad PC 1512

• Jamon Jamon (1992) • Making Out - Season 1 (1989) • Out of This World - Season 1, Episode 5 (1995) • Press Gang - Season 1, Episode 6, “Interface” (1989)

Amstrad PC 2086

• The Full Monty (1997) • Press Gang - Season 3, Episode 5, “The Last Word: Part 2” (1991)

Amstrad PCW 8256

• Damon and Debbie - Episode 2 (1987) • Girls on Top - Season 2, Episode 3, “Who’s Ya Uncle Shelley?” (1986) • Good Omens (2019) • Grange Hill - Season 12, Episode 1 (1989) • Inspector Morse - Season 5, Episode 4, “Greeks Bearing Gifts” (1991) • Loki - Season 2, Episode 5, “Science/Fiction” (2023) • Micro Men (2009) • Pennyworth - Season 3, Episode 2, “Many Clouds” (2022)

Amstrad PCW 9512

• Colin’s Sandwich - Season 2 (1990) • Hetty Wainthropp Investigates - Season 1, Episode 5, “A High Profile” (1996) • Midsomer Murders - Season 14, Episode 8, “A Rare Bird” (2012) • Press Gang - Season 3, Episode 5, “The Last Word: Part 2” (1991) • The Steal (1995)

Amstrad PPC 512/640

• Atomic Blonde (2017) • Eternal Sunshine of the Spotless Mind (2004) • The Girl from Tomorrow - Season 1, Episode 7, “Stake-out” (1991) • Loki - Season 2, Episode 5, “Science/Fiction” (2023)

Apple

Apple 1 (Mimeo 1 re­pro­duc­tion)

• Jobs (2013)

Apple Aluminum iMac

• The 7th Dimension (2009) • Bedtime Stories (2008) • Boyhood (2014) • Chloe (2009) • The Descendants (2011) • Flickan som lekte med elden (2009) • Funny People (2009) • He’s Just Not That Into You (2009) • Luftslottet som sprängdes (2009) • Magpie Murders - Season 1, Episode 1 (2022) • The Mechanic (2011) • Over Kanten (2012) • The Proposal (2009) • The Rebound (2009) • The Spy Next Door (2010) • Stay Cool (2009) • The Stepfather (2009) • Tamara Drew (2010) • Trespass (2011)

Apple Clamshell iBook G3

• A Little Help (2010) • Big Fat Liar (2002) • Clockstoppers (2002) • Coyote Ugly (2000) • Crocodile Dundee in Los Angeles (2001) • Cubbyhouse (2001) • Domestic Disturbance (2001) • Femme Fatale (2002) • Friends - Season 9, Episode 2, “The One Where Emma Cries” (2002) • The Glass House (2001) • Good Advice (2001) • Jisatsu sâkuru (2001) • Just Married (2003) • Kill Daddy Goodnight (2009) • Legally Blonde (2001) • The Master of Disguise (2002) • Novocaine (2001) • The Princess Diaries (2001) • Sex and the City - Season 4, Episode 8, “My Motherboard, My Self” (2001) • Slap Her… She’s French (2002) • The Sleepover Club - Season 1 (2003) • Tadpole (2002) • The Tailor of Panama (2001) • Teknolust (2002) • Under the Tuscan Sun (2003) • Zac and Miri Make a Porno (2008)

Apple eMac

• Accepted (2006) • The Flash - Season 6, Episode 1, “Into the Void” (2019) • Freaky Friday (2003) • Halo - Season 2, Episode 4, “Reach” (2024) • Love and Other Impossible Pursuits (2009) • Mean Girls (2004) • Parallax - Season 1, Episode 3, “The Artful Dodger” (2004)

Apple eMate 300

• Batman and Robin (1997)

Apple iBook G3

• Catch That Kid (2004) • Confessions of a Teenage Drama Queen (2004) • It Runs in the Family (2003) • The Lizzie McGuire Movie (2003) • Old School (2003) • Picture This (2008) • Raising Helen (2004) • The Rules of Attraction (2002) • The Sopranos - Season 4, Episode 10, “The Strong, Silent Type” (2002) • Spy Kids 2: Island of Lost Dreams (2002)

Apple iBook G4

• Cake (2005) • Interview (2007) • John Tucker Must Die (2006) • Meet the Fockers (2004) • Miss Congeniality 2: Armed and Fabulous (2005) • Motherhood (2009) • One Day (2011) • Les poupées russes (2005)

Apple II

• 3 – 2-1 Contact (1980) • 3 – 2-1 Contact - Season 3, Episode 2 (1984) • Aces Go Places 5: The Terracotta Hit (1989) • Air (2023) • Armageddon Time (2002) • Bird of Prey (1982) • Bones and All (2022) • Creepshow (1982) • The Dead Zone (1983) • Der Stand der Dinge (1982) • Evilspeak (1981) • The Facts of Life - Season 5, Episode 10, “Store Games” (1983) • First Blood (1982) • Go For It (1983) • The Goldbergs - Season 2, Episode 4, “Shall We Play a Game?” (2014) • The Goldbergs - Season 4, Episode 4, “Crazy Calls” (2016) • Goremet, Zombie Chef from Hell (1986) • Hotel - Season 2, Episode 18, “Identities” (1985) • Iron Man (2008) • iSteve (2013) • Jobs (2013) • Klatwa doliny wezy (1987) • Knight Rider - Season 2, “Diamonds Aren’t a Girl’s Best Friend” (1984) • Knight Rider - Season 2, Episode 19, “Mouth of the Snake” (1984) • Las Vegas Weekend (1986) • Lost - Season 2 (2005) • Magnum, P.I. - Season 6, Episode 12, “Summer School” (1986) • The Man from U.N.C.L.E. (2015) • Miami Vice - Season 3, Episode 11, “Forgive Us Our Debts” (1986) • Micro Men (2009) • Mind Benders (1987) • Never Forget (1991) • Pirates of Silicon Valley (1999) • Quincy M.E. - Season 8, Episode 24, “The Cutting Edge” (1983) • Rock Jocks (2012) • The Royal Tenenbaums (2001) • The Russia House (1990) • Silver Spoons - Season 2, Episode 3, “A Fair to Remember” (1983) • Silver Spoons - Season 2, Episode 10, “Rick the Greek” (1984) • Simon and Simon - Season 1, Episode 3, “Trapdoors” (1981) • Smarkus and Company (1982) • Smiley’s People - Episode 1, “A Mother’s Assistance” (1982) • Spies Like Us (1985) • Take This Job and Shove It (1981) • Terminal Entry (1986) • Terminator Genisys (2015) • The Thing (1982) • TJ Hooker - Season 1, Episode 3, “God Bless the Child” (1982) • Today’s Special - Season 4, Episode 1, “Changes” (1984) • Vacation (1983) • Where the Buffalo Roam (1980) • White Noise (2022)

Apple IIc

• 2010: The Year We Made Contact (1984) • The Best of Times (1986) • Beyond - Season 1, Episode 4, “The Man in the Yellow Jacket” (2017) • Boyz n the Hood (1991) • Code of Silence (1985) • Explorers (1985) • Family Sins (1987) • Freeze Frame (1990) • Hot Tub Time Machine (2010) • iSteve (2013) • Lots of Luck (1985) • Miami Vice - Season 1, Episode 19, “The Home Invaders” (1985) • No (2012) • Real Genius (1985) • Scared Stiff (1987) • Tales from the Crypt - Season 2, Episode 7, “The Sacrifice” (1990) • A View to a Kill (1985) • Where Evil Lives (1991)

Apple IIe

• Aces Go Places 3 (1984) • Agents of S.H.I.E.L.D. - Season 4, Episode 9, “Broken Promises” (2017) • All the Money in the World (2017) • Batman Returns (1992) • Big Trouble (1986) • Bigbug (2022) • Black Fire (1985) • The Challenger Disaster (2019) • Chocky’s Children (1985) • Class of 1999 II: The Substitute (1994) • D.A.R.Y.L. (1985) • The Fall Guy - Season 4, Episode 20, “Spring Break” (1985) • Fraggle Rock - Season 1, Episode 14, “The Challenge” (1983) • Ghostbusters: Frozen Empire (2024) • Jobs (2013) • King of New York (1990) • Las Vegas Weekend (1986) • Love (2011) • Martyrs (2008) • Mr. Robot - Season 4, Episode 11, “eXit” (2019) • Not Quite Human (1987) • Patrik Pacard - Season 1 (1984) • Poltergeist III (1988) • The Protector (1985) • Small Wonder - Season 4, Episode 6, “Love at First Byte” (1988) • Young Sheldon - Season 3, Episode 7, “Pongo Pygmaeus and a Culture that Encourages Spitting” (2019) • Young Sheldon - Season 3, Episode 19, “A House for Sale and Serious Woman Stuff” (2020)

Apple IIGS

• Camp Nowhere (1994) • Desperate Hours (1990) • Hackers (1995) • Kindergarten Cop (1990) • The Laughing Dead (1989) • Trancers II (1991)

Apple III

• The Greatest American Hero - Season 2, Episode 2, “Operation Spoilsport” (1981) • Jobs (2013) • The Littlest Hobo - Season 5, Episode 13, “The Genesis Tapes” (1984) • Matt Houston - Season 1 (1982) • Night Shift (1982) • Pirates of Silicon Valley (1999) • Quincy M.E. - Season 8, Episode 24, “The Cutting Edge” (1983) • Remington Steele - Season 1 (1982) • Tron (1982) • Tron: Ares (2025)

Apple iMac G3

• 101 Reykjavík (2000) • 3rd Rock from the Sun - Season 6, Episode 12, “Dick’s Ark” (2001) • A Little Help (2010) • About A Boy (2002) • Absolutely Fabulous - Season 4 (2001) • Are We There Yet? (2005) • The Beach (2000) • Between Two Ferns: The Movie (2019) • The Big Short (2015) • Bigbug (2022) • Bounce (2000) • Boyhood (2014) • Boys and Girls (2000) • Bridget Jones’s Diary (2001) • The Cell (2000) • Clockstoppers (2002) • Crocodile Dundee in Los Angeles (2001) • Curb Your Enthusiasm - Season 1, Episode 4, “The Bracelet” (2000) • Der schöne Tag (2001) • Derailed (2006) • The Family Stone (2005) • Fast Food Nation (2006) • Freaky Friday (2003) • Friends - Season 7, Episode 13, “The One Where Rosita Dies” (2001) • Funny People (2009) • Get Carter (2000) • Ghost World (2001) • Glass (2019) • Godzilla 2000 (1999) • Groove (2000) • I Still Believe (2020) • Irresistible (2006) • It Runs in the Family (2003) • Jay and Silent Bob Strike Back (2001) • The Killer (2023) • Law & Order: Special Victims Unit - Season 6, Episode 1, “Birthright” (2004) • The Master of Disguise (2002) • Mean Girls (2004) • Men in Black II (2002) • The Midnight Club - Season 1, Episode 9, “The Eternal Enemy” (2022) • Mr. Robot - Season 4, Episode 12, “whoami” (2019) • My Family - Season 2, Episode 8, “Age of Romance” (2001) • Nerve (2017) • One More Time (2023) • Orange County (2002) • Les poupées russes (2005) • The Proposal (2009) • Quintuplets - Season 1 (2004) • Road Trip (2000) • Rosemary & Thyme - Season 2, Episode 1, “The Memory of Water” (2004) • Runaway Jury (2003) • Scream 3 (2000) • Slap Her… She’s French (2002) • The Sleepover Club - Season 1 (2003) • Steve Jobs (2015) • Training Day (2001) • Wasabi (2001) • The Wedding Planner (2001) • What Women Want (2000) • Women Talking Dirty (1999) • Zoolander (2001)

Apple iMac G4

• The Adventures of RoboRex (2014) • Cake (2005) • Catch That Kid (2004) • Clerks II (2006) • Cyborg She (2008) • Don’t Think Twice (2016) • Freaky Friday (2003) • Friends - Season 9, Episode 2, “The One Where Emma Cries” (2002) • Garfield (2004) • Good Boy! (2003) • How to Lose a Guy in 10 Days. (2003) • Hulk (2003) • Hustle - Season 1, Episode 5, “A Touch of Class” (2004) • King’s Ransom (2005) • Little Fockers (2010) • Love Actually (2003) • Meet the Fockers (2004) • Michael Clayton (2007) • Miss Congeniality 2: Armed and Fabulous (2005) • Never Back Down (2009) • Nim’s Island (2008) • One Day (2011) • The Pacifier (2005) • Raising Helen (2004) • School of Rock (2003) • Sex and the City - Season 6, Episode 15, “Catch-38” (2004) • Without a Paddle (2004)

Apple iMac G5

• Basic Instinct 2 (2006) • The Dead Zone - Season 2, Episode 4, “The Outsider” (2003) • The Dead Zone - Season 2, Episode 5, “Precipitate” (2003) • The Devil Wears Prada (2006) • Harold & Kumar Escape from Guantanamo Bay (2008) • Holiday in Handcuffs (2006) • Knives Out (2019) • The Last Kiss (2006) • The Last Mimzy (2007) • Man About Town (2006) • Modern Family - Season 2, Episode 14, “Bixby’s Back” (2011) • Night at the Museum (2006) • Revolution - Season 1, Episode 17, “The Longest Day” (2013) • Tomb Raider (2018) • Trust the Man (2005)

Apple Lisa

• Computer Ghosts (1988) • Jobs (2013) • The Littlest Hobo - Season 5, Episode 13, “The Genesis Tapes” (1984) • Meatballs III: Summer Job (1986) • Pirates of Silicon Valley (1999) • Steve Jobs (2015)

Completing A Computer Science Degree On Coursera

notesbylex.com

In September 2022, I im­pul­sively signed up for a Bachelor’s Degree in Computer Science af­ter see­ing an ad for it on Coursera. Getting a de­gree had been on my mind for quite some time, af­ter a long ca­reer with­out one, but I was­n’t sure how to go about it. And now, about 3 years and 9 months later (with the last 3 of those months spent wait­ing for my re­sults), I’ve fi­nally com­pleted my de­gree - en­tirely af­ter hours whilst work­ing full-time.

This ar­ti­cle is a brief write-up of my ex­pe­ri­ence.

My Background

My de­gree-less tech ca­reer spans nearly 21 years, with about 14 of those as a soft­ware de­vel­oper and MLE. I left high school early as a teenager; I was ready to en­ter the work­force and be­come in­de­pen­dent as early as pos­si­ble. I got into tech through cer­ti­fi­ca­tions like MCP, MCSA, and A+ (they were all the rage back then), which was enough to land a helpdesk job at 18. From there, I fol­lowed my in­ter­ests, which even­tu­ally led to soft­ware en­gi­neer­ing and, later, a fo­cus on ma­chine learn­ing.

So far, my lack of a de­gree has­n’t been a bar­rier to my ca­reer. I’ve heard from col­leagues that Australia tends to value ex­pe­ri­ence and at­ti­tude over for­mal ed­u­ca­tion, whereas the op­po­site can be true over­seas, so maybe I got lucky in that re­spect. I’d go as far as to say that be­ing self-taught” is typ­i­cally seen as a pos­i­tive by em­ploy­ers, pro­vided you ap­pear to have ac­tu­ally taught your­self the skills needed to do the job. That said, I’m not re­ally self-taught” - I think self-educated” is a bet­ter term. I’ve col­lected the skills I’ve needed for the jobs I wanted via MOOCs (shouts to David J. Malan’s CS50, Andrew Ng’s ML courses and Jeremy Howard’s fas­tai), cer­tifi­cates, books, and Kaggle. I’ve al­ways had some­thing to put in the Education sec­tion of my re­sume. I’ve writ­ten be­fore about my opin­ion that Software Development is a Trade, and that ed­u­ca­tion makes sense in­ter­spersed with work ex­pe­ri­ence. Of course, I ac­knowl­edge that my jour­ney makes me quite bi­ased here.

However, a lack of a de­gree has im­pacted my abil­ity to work over­seas. In my younger years, I made it to the fi­nal rounds of an in­ter­view with a US com­pany I was in­ter­ested in, only to learn that the E-3 visa, an Australia-US-specific agree­ment, re­quires at least a Bachelor’s Degree. Though I have no in­ten­tion of work­ing over­seas at the mo­ment, it’s nice to have the op­tion.

I also gen­uinely love learn­ing, and I was in­ter­ested in iden­ti­fy­ing my knowl­edge gaps. And it’s also an ex­cuse to test out the Zettelkasten Method on a real study prob­lem.

Finally, I’m not get­ting any younger. I some­times won­der if I should have got my de­gree in my 20s. Now, as I ap­proach my 40s, I don’t want to be say­ing the same thing about my 30s.

About The Degree

The de­gree is done 100% re­motely.

It’s hosted on Coursera - that’s where you watch the lec­tures, and where they host the class re­sources, such as lab note­books and quizzes. Coursera also pro­vides fo­rums to chat with teach­ing staff (which are rarely used), and this is how you up­load your as­sign­ments.

The pro­gram is run by the University of London Worldwide, its dis­tance-learn­ing arm. And Goldsmiths, University of London, marks the as­sign­ments and ex­ams.

The ex­ams them­selves are done re­motely us­ing Inspera proc­tor­ing soft­ware. I’ve heard from other stu­dents that be­fore COVID, peo­ple ac­tu­ally went to lo­cal teach­ing cen­tres for their ex­ams. There was also a short win­dow in 2022, where the ex­ams were un­proc­tored - you just had 4 hours to com­plete them once started, open web/​book. But I guess the suc­cess of LLMs forced their hand to add proc­tor­ing.

I’m sure there are sim­i­lar de­grees out there. I did­n’t shop around for al­ter­na­tives, I’ll be hon­est. But I was al­ready fa­mil­iar with the Coursera plat­form, and the of­fer­ing suited my lifestyle nicely.

Prerequisites and Performance-Based Admission

The course pre­req­ui­sites stip­u­late a high school diploma. However, they of­fer an al­ter­nate route called Performance-Based Admission (PBA). Basically, you sit two mod­ules (Introduction to Programming I, plus one of the math mod­ules), and if you pass them both, you’re al­lowed to en­ter the full de­gree. The mod­ules are counted to­wards your fi­nal grades, so it’s not wasted time, but you get a good sense of whether the pro­gram is for you.

Cost

Another thing that worked for me was pay­ing for the mod­ules as you go. For me in Australia, a mod­ule cur­rently costs £823 (about A$1,600), and the fi­nal pro­ject counts as a dou­ble mod­ule, with some small ex­tras.

The University pub­lishes the to­tal pro­gramme cost as rang­ing from £14,666 to £21,829, de­pend­ing on your coun­try of res­i­dence and pace of study. My to­tal comes to roughly £17,000, or around A$33,000, spread over 3.5 years. I was able to re­place 3 mod­ules with Coursera courses that re­quire only a sub­scrip­tion, fur­ther sav­ing money (see the Recognition of Prior Learning sec­tion be­low).

Since this is ed­u­ca­tion that’s di­rectly ap­plic­a­ble to my ca­reer, it’s also tax-de­ductible in my coun­try. The ATO al­lows you to claim self-ed­u­ca­tion ex­penses when the study maintains or im­proves the spe­cific skills or knowl­edge you re­quire for your cur­rent work ac­tiv­i­ties”. A Computer Science de­gree while work­ing as a soft­ware en­gi­neer clears that bar, at least ac­cord­ing to my ac­coun­tant.

Workload

Just be­cause it’s on­line does­n’t mean it’s easy. Even if you’re a soft­ware vet­eran, like my­self and many of the other stu­dents, fa­mil­iar­ity with the cor­pus helps, but you still have to do the work.

Each mod­ule has manda­tory midterm as­sign­ments, fol­lowed by ei­ther a fi­nal exam or a fi­nal as­sign­ment. The as­sign­ments are of­ten long and chal­leng­ing, and the ex­ams are pretty tough too.

They al­low you to take up to 4 mod­ules per ses­sion (or 2 plus the fi­nal pro­ject), plus a re­take, and you have to com­plete them in 6 years, which re­quires about 2 mod­ules per ses­sion. After com­plet­ing the PBA, I took an av­er­age of about 3 mod­ules per ses­sion, get­ting the RPL cer­tifi­cates (see be­low) in be­tween ses­sions. In the fi­nal ses­sions, I took on 4 mod­ules, which was a lot.

However, many stu­dents opt to com­plete 4 mod­ules straight through, and I think the fastest pos­si­ble time to com­plete the course is 3 years flat.

Generally, I found that dur­ing the weeks lead­ing up to midterms and ex­ams, the de­gree would con­sume most of my free time. The work­load ramped up sig­nif­i­cantly from the ear­lier to the later mod­ules, with the last 2 ses­sions eas­ily the hard­est. There were some re­ally in­tense pe­ri­ods of my life where I would wake up at 4am, com­plete a four-hour exam, work through the day, then work on an as­sign­ment at night.

Recognition of Prior Learning

The uni­ver­sity does of­fer Recognition of Prior Learning sub­sti­tutes if you’ve stud­ied equiv­a­lent mod­ules else­where. They also have a few Coursera cer­tifi­cates that can re­place en­tire mod­ules, which only re­quire a Coursera sub­scrip­tion. I re­placed three mod­ules this way:

How Computers Work, with the Google IT Support Professional Certificate

Data Science, with the IBM Data Science Professional Certificate

Machine Learning and Neural Networks, with the IBM AI Engineering Professional Certificate

I in­ter­spersed these with my reg­u­lar mod­ules. I fin­ished the Google cer­tifi­cate (about 3 months at 10 hours a week) in April 2023, just as my first ses­sion wrapped up. The two IBM cer­tifi­cates I com­pleted back-to-back in July 2024, in the lull af­ter midterms, while also tak­ing three reg­u­lar mod­ules. Together, they shaved a whole ses­sion off my de­gree. Note that the list of recog­nised qual­i­fi­ca­tions has changed since I did it, so check the cur­rent page.

Course Breakdown

The top­ics are pretty typ­i­cal of a Bachelor’s Degree in Computer Science, no sur­prises. Some math, al­though less than an en­gi­neer­ing de­gree, and most things are quite hands-on.

There were quite a few in­ter­est­ing pro­jects as course­work. Some high­lights in­clude some au­dio vi­su­alis­ers; a cou­ple of JavaScript games (including a pool sim­u­la­tion which you were en­cour­aged to put a twist on); a DJ sim­u­la­tor built with JUCE; an evo­lu­tion­ary al­go­rithms pro­ject in­spired by Karl Sims’ 1994 Evolving Virtual Creatures; an in­ter­est­ing col­lec­tion of sig­nal pro­cess­ing ex­er­cises; a few dif­fer­ent re­search pro­jects based around scrap­ing and analysing web data; and, fi­nally, the open-ended fi­nal pro­ject, where I built a breast-can­cer de­tec­tion mam­mog­ra­phy clas­si­fier that trains and runs end-to-end on Apple Silicon (see cm3070-fi­nal-pro­ject).

Here’s my vinyl DJ sim­u­la­tor in ac­tion:

And the pool table game with ro­dents that could be killed for bonus points (not some­thing I en­dorse in the real world):

Here’s the full path I took:

If you want to dig deeper into the mod­ules, the stu­dent com­mu­nity main­tains a cou­ple of great re­sources: world-class/​notes, a stu­dent-run repo where peo­ple post their course notes, and world-class/​REPL, a col­lec­tion of course ma­te­r­ial and re­sources. There’s also a spread­sheet some­one made that breaks down each mod­ule’s dif­fi­culty and other met­rics, as ranked by for­mer stu­dents.

The Best Parts

One of my favourite parts of the course was work­ing with the other stu­dents. Coursera in­vites you into a stu­dent Slack work­space, which is ba­si­cally a Lord of the Flies-style free-for-all, with no ap­par­ent of­fi­cial rep­re­sen­ta­tion of any kind.

Some stu­dents took it upon them­selves to run the Slack with an iron fist, rep­ri­mand­ing peo­ple for post­ing in the wrong chan­nel. Some alumni hang out on Slack, help­ing stu­dents and an­swer­ing ques­tions. Other for­mer stu­dents haunt the Slack chan­nels, post­ing in­ter­mit­tent trolls. It’s all pretty chaotic and hi­lar­i­ous.

On top of that, there’s a cul­ture of high-achiev­ing stu­dents shar­ing videos and screen­shots of their as­sign­ments, some of which were re­ally im­pres­sive, which would mo­ti­vate me to do my best work.

There are re­ally fas­ci­nat­ing peo­ple from all over the world, with in­ter­est­ing, round­about ca­reer sto­ries like mine. One fel­low stu­dent com­pleted her de­gree dur­ing the war in Ukraine. Another stu­dent taught her­self web de­vel­op­ment and ran her own stu­dio to self-fund her ed­u­ca­tion. Another stu­dent gave birth twice dur­ing the de­gree, man­aged to com­plete the BSc while work­ing a full-time job as a teacher, and some­how also com­pleted a mas­ter’s. And there’s my friend Django, who’s been com­plet­ing his de­gree from a refugee camp in Uganda, pow­er­ing his lap­top off a so­lar panel and study­ing on mo­bile data. His story turned into a saga of its own: Shipping a Laptop to a Refugee Camp in Uganda.

Whenever I felt like I was do­ing it tough, there were many peo­ple in much, much tougher cir­cum­stances to bring me down to earth.

The Worst Parts

My #1 com­plaint is how long it takes to get grades: about 3 months. So you’re usu­ally get­ting your midterm grades right around the time you’re about to sub­mit the fi­nals. Way too long to in­cor­po­rate the feed­back use­fully.

If you fail a mod­ule, you can re­sit just the part you failed. But be­cause fi­nal grades are re­leased well af­ter the next ses­sion has started, you might end up wait­ing an en­tire year be­fore you can re­sit. This has proved to be the biggest frus­tra­tion for course par­tic­i­pants.

Group pro­jects were also a com­mon source of com­plaints. You were ran­domly as­signed a group, but it was of­ten un­clear if the par­tic­i­pants were even do­ing the course - many peo­ple were in com­pletely ghost groups. I had a de­cent group for the one group pro­ject sub­ject I took. However, we did have the un­pleas­ant ex­pe­ri­ence of one of the mem­bers show­ing up in the last week, and we ba­si­cally had no choice but to cut him in with­out him do­ing any work. Although they’ve since changed the syl­labus, only one sub­ject has a manda­tory group pro­ject now, and it’s just the midterms - not too bad.

The Coursera plat­form could also use many qual­ity-of-life im­prove­ments. It’s of­ten out of sync with the ac­tual pro­gram and un­aware that ex­ams are com­pleted out­side Coursera. Submitting every­thing re­quires up­load­ing mul­ti­ple files, in­clud­ing videos, and there’s no way to edit your sub­mis­sion with­out re­u­pload­ing every­thing. So if you spend 30 min­utes up­load­ing a video and then find a typo in the re­port, you have to start again.

Inspera is also quite dif­fi­cult soft­ware, with many false pos­i­tives caus­ing it to sud­denly shut down mid­way through the exam. With only 4 hours to com­plete the exam and the threat of a one-year wait to try again, it’s a very anx­i­ety-in­duc­ing ex­pe­ri­ence.

They do have ex­tra sup­port peo­ple on dur­ing the exam, to help. But out­side of that, get­ting in touch with real peo­ple can be slow. I had a re­sult that did­n’t come through when every­one else’s did, and it took a few weeks to get re­solved. Not a ter­ri­ble turn­around, just one ex­tra thing to be anx­ious about.

Tips

A few things that worked for me:

Start early on your as­sign­ments, and sub­mit of­ten. I like to get a ver­sion of my as­sign­ment done end-to-end that could con­ceiv­ably be a pass, then just keep it­er­at­ing from there. As soon as I knew what the as­sign­ment was, I’d start mak­ing progress and sub­mit drafts as I went, which took a lot of the stress off the dead­line.

Check and triple-check your sub­mis­sions. A very com­mon mis­take peo­ple make is not to check that they sub­mit­ted every­thing cor­rectly. I would cre­ate a check­list for my pro­ject sub­mis­sions, take a screen­shot of the sub­mis­sion screen, and even log the S3 URLs for all up­loaded as­sets, just in case.

Find a study time that works for you and be con­sis­tent. For me, it’s the early morn­ing. I usu­ally had to work late, so I rarely found time to study af­ter work; in­stead, I’d go to bed early and get a few hours in be­fore the work­day started.

Do the blocker sub­jects first. Some sub­jects must be passed be­fore you can progress to the next level (at Level 5, the key ones are Object-Oriented Programming and Software Design and Development). You re­ally want to de-risk your stud­ies by get­ting these done early. If you’re forced to re­sit, it can re­ally block your progress and add wasted ses­sions to your de­gree.

Read the reg­u­la­tions closely. Especially the Admission Notice, which only comes via email: it in­cludes up­dated rules, exam dates and other im­por­tant in­for­ma­tion for each exam.

Read the pins in Slack. People have taken great care to share use­ful in­for­ma­tion, in­clud­ing a lot of guid­ance on what to do when some­thing goes wrong.

AI Policy and The Evolution of LLMs

I started my de­gree one month be­fore ChatGPT was launched, so it’s been quite in­ter­est­ing to watch the de­gree evolve as LLM ca­pa­bil­i­ties have changed. At the start of my de­gree, I wrote a lit­tle ar­ti­cle about Disputing a Parking Fine with ChatGPT, a few weeks into ChatGPT’s launch, which I thought was kind of cool at the time, but now it seems so pa­thet­i­cally triv­ial that it makes me laugh.

Firstly, they in­tro­duced exam proc­tor­ing and have pro­gres­sively locked it down, re­cently re­mov­ing cheat­sheets, pre­sum­ably to pre­vent peo­ple from gen­er­at­ing them with an LLM or smug­gling in a sec­ond screen. They used to al­low peo­ple to com­plete the exam at their con­ve­nience within a 24-hour win­dow, but re­cently changed that so that peo­ple in each hemi­sphere take the exam at the same time.

LLMs also had a no­tice­able ef­fect on the amount of con­ver­sa­tion in the course chan­nels. When I started, there was a lot of chat­ter, with peo­ple ask­ing ques­tions about the ma­te­r­ial and check­ing their un­der­stand­ing of top­ics, but that has no­tice­ably de­clined. It seems peo­ple pre­fer to ask their ques­tions to an LLM.

In Feb 2025, about 2.5 years into my de­gree, the uni launched an of­fi­cial AI pol­icy. Basically, sub­mit­ting LLM-generated work with­out ac­knowl­edge­ment is treated as con­tract cheat­ing, the same cat­e­gory as pay­ing some­one to write your es­say:

Submitting work which has been pro­duced by soft­ware, or as the re­sult of pro­vid­ing prompts or queries to any third-party ser­vice, ei­ther in full or in part and with­out ac­knowl­edge­ment, is a form of con­tract cheat­ing. This in­cludes the use of Large Language Model/AI chat­bots.” - General Regulation 7.9

Submitting work which has been pro­duced by soft­ware, or as the re­sult of pro­vid­ing prompts or queries to any third-party ser­vice, ei­ther in full or in part and with­out ac­knowl­edge­ment, is a form of con­tract cheat­ing. This in­cludes the use of Large Language Model/AI chat­bots.” - General Regulation 7.9

They also in­tro­duced a three-level frame­work for AI in as­sess­ment: Level Zero means no AI at all; Level One al­lows sup­port­ive use like brain­storm­ing and struc­tur­ing, as long as you de­clare it; and Level Two ac­tu­ally re­quires you to use AI, for ex­am­ple, gen­er­at­ing an out­put with it and then cri­tiquing the re­sult.

I can only imag­ine the dif­fi­culty of be­ing an ed­u­ca­tor in the age of AI - try­ing to strike a bal­ance be­tween pre­vent­ing stu­dents from out­sourc­ing their whole ed­u­ca­tion to an LLM, and the re­al­ity that AI is al­most cer­tainly go­ing to be part of their pro­fes­sional life.

Summary

While it’s been a hard 3 and a half years, par­tic­u­larly on my wife and friends, who were def­i­nitely ne­glected, it’s re­ally nice to fi­nally have a de­gree. Some of the top­ics, es­pe­cially the math sub­jects, I would never have stud­ied on my own. I’m glad I did. My other fel­low stu­dents were some of the most in­ter­est­ing peo­ple I’ve ever met, and I hope I’ve made some friends for life. Aside from a few mi­nor griev­ances (things that will hope­fully im­prove over time), I loved the ex­pe­ri­ence.

[PSA] Anthropic's Method to Losing Goodwill in a Few Easy Steps — Invidious Musings

raheeljunaid.com

Edit: This was a hit on HackerNews and I re­ceived a ton of valu­able feed­back. I’ve put mark­ers for the amend­ments I’ve made

Edit: This was a hit on HackerNews and I re­ceived a ton of valu­able feed­back. I’ve put mark­ers for the amend­ments I’ve made

Recently, I had the rare op­por­tu­nity to test sev­eral agent har­nesses, LLMs, and AI gate­ways in my daily tasks and green­field pro­jects. Each dis­cov­ery be­fud­dled me on the pop­u­lar sen­ti­ment for agen­tic de­vel­op­ment.

I learned that in the past two weeks, Anthropic has di­min­ished in value for cod­ing with their en­shit­ti­fi­ca­tion, ven­dor lock in, con­sumer mal­prac­tice, and price goug­ing, all while open source mod­els are more com­pet­i­tive than ever.

API Reliability

Claude’s API is no­to­ri­ously un­sta­ble, yet it’s the only API provider that is com­pat­i­ble with a Claude sub­scrip­tion.

Edit: When I be­gan writ­ing this ar­ti­cle, it was mid May which is why the screen­shot is out of date. As of July, Claude’s re­li­a­bil­ity has in­creased some­what

Edit: When I be­gan writ­ing this ar­ti­cle, it was mid May which is why the screen­shot is out of date. As of July, Claude’s re­li­a­bil­ity has in­creased some­what

Other API providers like Vertex AI, AWS Bedrock, and Azure only serve the pricier Anthropic API cred­its. If you want to sub­scribe to Claude, you’re stuck with Anthropic’s servers.

If you’re de­bug­ging an in­ci­dent at work and are us­ing Claude to help, pray that it stays up be­cause you’re only pro­duc­tive when Claude is on­line.

Claude Code

Claude Code is Anthropic’s pri­mary con­sumer-fac­ing en­gi­neer­ing in­ter­face, and once you’re in, you’re locked in. Your Claude sub­scrip­tion—which is a cheaper ver­sion of the Anthropic API—is re­stricted to use with the Claude Code CLI/Desktop, Claude CoWork, or @Claude in Slack.

Edit: You can also use the Agent SDK

Edit: You can also use the Agent SDK

But that is­n’t a bad thing! In fact, Claude Code is the most pop­u­lar and the best agent har­ness. It’s backed by a large com­pany at the fore­front of agen­tic soft­ware de­vel­op­ment. As of writ­ing, Claude Code CLI only has around 9100 open Github is­sues, with small un­re­solved is­sues like it com­pletely freez­ing for the last 6+ months or a screen flick­er­ing is­sue open for more than a year. Each changelog en­try has a bug fix in al­most every re­lease, which is a sign of re­li­able and sta­ble soft­ware!

For those who don’t get it, Anthropic is us­ing Claude Code to write it­self, and it shows in its qual­ity. Because they re­strict you to their ecosys­tem, it jus­ti­fies falling be­hind bet­ter cod­ing har­nesses.

For ref­er­ence, here is what the Claude Code CLI looks like:

And here is what the OpenCode CLI looks like:

I would take OpenCode’s in­ter­face any day over Anthropic’s, but I am pro­hib­ited from ap­ply­ing my Claude sub­scrip­tion to OpenCode.

There are FOSS pro­jects to cir­cum­vent Anthropic’s poli­cies, which al­low you to use your Claude sub­scrip­tion in­stead of an ex­pen­sive Anthropic API Key. A no­table ex­am­ple is the Pi Coding Agent, which comes with built-in sup­port for Claude OAuth.

However, you’ll no­tice this mes­sage at the bot­tom when you at­tempt to au­then­ti­cate with your Claude ac­count:

Warning: Anthropic sub­scrip­tion auth is ac­tive. Third-party har­ness us­age draws from ex­tra us­age and is billed per to­ken, not your Claude plan lim­its.

Manage ex­tra us­age at https://​claude.ai/​set­tings/​us­age.

Extra us­age” is Anthropic’s an­swer to their plan lim­its. When you ex­ceed your five hour ses­sion or weekly limit, you’re billed through the Anthropic API. This re­quires con­sent by the user on their plan and is good for those with long-run­ning AI ses­sions. When I au­then­ti­cate with Claude in Pi Coding Agent, it bills from Extra Usage, mean­ing my sub­scrip­tion does­n’t save me any money. Fine.

It’s a com­pletely dif­fer­ent thing when I’m us­ing the tool they force me to use, and they still re­tract ex­tra us­age be­fore I reach my rate limit.

Here is a con­fus­ing an­nounce­ment from Claude’s Twitter ac­count on May 13th. 2026:

For the con­fused, here is the no bull­shit sum­mary from Zed’s blog:

Starting June 15, Anthropic is split­ting Claude sub­scrip­tion billing into two pools: one for us­ing Claude through Anthropic’s first-party tools (such as chat, or the of­fi­cial Claude Code CLI), and an­other for third-party agent and SDK us­age (anything run­ning through ACP, claude -p, or other third-party tools). If you use Claude Code through ACP (in Zed or any­where else), that us­age will no longer draw from your Claude Pro or Max sub­scrip­tion lim­its. Instead, it draws from a new monthly Agent SDK credit” that Anthropic is adding to each plan: $20 for Pro, $100 for Max 5x, $200 for Max 20x. Once the credit runs out, con­tin­ued us­age bills at stan­dard API rates if you have ex­tra us­age en­abled. If you don’t, re­quests stop un­til your credit re­sets next billing cy­cle. What this means in prac­tice: For any­one us­ing agents heav­ily, this is a ma­jor cost in­crease. Claude sub­scrip­tions pre­vi­ously sub­si­dized agent us­age at roughly 15 – 30x com­pared to API pric­ing, and the new cred­its are billed at full API rates.

Starting June 15, Anthropic is split­ting Claude sub­scrip­tion billing into two pools: one for us­ing Claude through Anthropic’s first-party tools (such as chat, or the of­fi­cial Claude Code CLI), and an­other for third-party agent and SDK us­age (anything run­ning through ACP, claude -p, or other third-party tools). If you use Claude Code through ACP (in Zed or any­where else), that us­age will no longer draw from your Claude Pro or Max sub­scrip­tion lim­its. Instead, it draws from a new monthly Agent SDK credit” that Anthropic is adding to each plan: $20 for Pro, $100 for Max 5x, $200 for Max 20x.

Once the credit runs out, con­tin­ued us­age bills at stan­dard API rates if you have ex­tra us­age en­abled. If you don’t, re­quests stop un­til your credit re­sets next billing cy­cle.

What this means in prac­tice: For any­one us­ing agents heav­ily, this is a ma­jor cost in­crease. Claude sub­scrip­tions pre­vi­ously sub­si­dized agent us­age at roughly 15 – 30x com­pared to API pric­ing, and the new cred­its are billed at full API rates.

Side note: claude -p is a first party tool of­fered with the claude cli. If I wanted to use the Claude Code CLI and in­voke it in my au­toma­tions, I have to pay more out­side of my sub­scrip­tion. So the ex­tra us­age ISN’T ex­tra at all! Users did­n’t dis­cover this by hav­ing their claude -p in­vo­ca­tions stop work­ing, but by look­ing at their billing page and see­ing the charges!

Edit: It looks like they rolled this back from con­sumer back­lash Recommended view­ing: Louis Rossman has made a few videos on Anthropic’s preda­tory pric­ing changes.

Edit: It looks like they rolled this back from con­sumer back­lash

Recommended view­ing: Louis Rossman has made a few videos on Anthropic’s preda­tory pric­ing changes.

This is­n’t the first time Anthropic has dec­i­mated their good­will. They also charged ex­tra us­age when they thought” you might be us­ing a third-party tool, even if you weren’t. They did this by de­tect­ing if a file with a cer­tain name was pre­sent in your ses­sion di­rec­tory.

Anthropic then re­stricted their API con­tracts, and proxy tools that aim to re­store com­pat­i­bil­ity for Claude sub­scrip­tions with third-party har­nesses started charg­ing ex­tra us­age overnight, with no change to their own query mech­a­nisms.

Dario needs cap­i­tal, not be­cause in­fer­ence is ex­pen­sive, but be­cause model train­ing is. Once you stop train­ing mod­els, you lose the race to AGI. All this self-fla­gel­la­tion was­n’t even for the prod­uct, it was for train­ing the next one! That’s like if ma­jor­ity of your col­lege tu­ition went to the head coach of the foot­ball team (which it usu­ally does).

To put it bluntly, they have us by the balls.

To put it bluntly, they have us by the balls.

Vibe Coding

But why do they have us by the balls? Dario and Boris have us con­vinced that coding is solved” with their loops. But mi­crowaves did­n’t solve cook­ing.

The flood of AI hype through LinkedIn—preaching from ex­ec­u­tives with lots of money and power to automate away” en­gi­neers through vibecod­ing soft­ware—per­pet­u­ates the at­ti­tude that code and de­vel­op­ers are dis­pens­able and unim­por­tant. It makes us fo­cus on quan­tity—of what I would gen­er­ously call prototypes”—over qual­ity.

These lead­ers need ad­vanced mod­els so they can vibecode with less fric­tion, and Anthropic serves those mod­els for a cheap” $200 USD per month. (This sub­si­dized price will in­crease once prof­itabil­ity be­comes a pri­or­ity again.) So Claude is good for those who can’t or don’t code, and the more vibecoders, the more mar­ket share Anthropic gets, and the more peo­ple they have by the balls.

I leaned into vibecod­ing dur­ing the brief tokenmaxxing” era, but when Claude went down, I went down. My agent-driven de­vel­op­ment” led to skill degra­da­tion and a drift in un­der­stand­ing of my own code.

To re­gain my san­ity, I re­turned to what AI cod­ing used to be with Github Copilot: au­to­com­plete. That’s all an LLM is af­ter you strip away the tool calls, sub­agents, MCP servers, etc. I un­der­stand most of what I want to do, and for any gaps, I ask AI to autocomplete” my un­der­stand­ing/​plan/​code. That way, the AI can think/​plan/​code like me, mak­ing it easy to re­view changes. My work­flow is now agent-as­sisted de­vel­op­ment, not agent-dri­ven.

But are the al­ter­na­tives be­sides GPT or Gemini?

Open Source Models

To be clear, I’m not anti-AI. I’m only against un­eth­i­cal com­pa­nies with anti-con­sumer prac­tices, and the per­pe­tra­tors be­hind them.

If you want to au­to­com­plete, like I do, you don’t need Fable, or even Opus; Sonnet works fine. But if you want to use FOSS trusted tools like Zed, OpenCode, Pi, Nanocoder, etc. un­chained by a de­grad­ing and re­stric­tive ecosys­tem, you’re look­ing for other mod­els.

Ever since Ollama, open source mod­els have ranked far be­low pro­pri­etary mod­els re­leased by Google, OpenAI, and Anthropic. This is due to them hav­ing less cor­po­rate back­ing and train­ing pa­ra­me­ters. Only re­cently have we seen com­pe­ti­tion from for­eign mod­els like Deepseek, GLM, Kimi, Qwen, Minimax, Xiaomi, Stepfun, etc.

Coding com­par­i­son of Sonnet 5, GLM 5.2, and Qwen 3.7 Max on OpenRouter

I’ve used Qwen and GLM and both re­placed Sonnet in my OpenCode work­flow. With an AI Gateway like OpenRouter, Requesty, Portkey, or Vercel, I can choose any open source model, and it will route my re­quest to the cheap­est and most avail­able back­end API provider. I can also tweak the providers to op­ti­mize for zero data re­ten­tion, omit sen­si­tive data leaks from my prompts, and re­strict more ex­pen­sive mod­els.

Cost com­par­i­son of GLM 5.2, Qwen 3.7 Max, and Sonnet 5 on OpenRouter

Some mod­els are great for re­search, but hor­ri­ble for doc­u­men­ta­tion. Other mod­els are great for cod­ing, but hor­ri­ble for re­search.

With the right har­ness, sub­agents, and mod­els (chosen with ex­per­i­men­ta­tion), a de­vel­oper has the tools they need to de­velop high qual­ity soft­ware and not break the bank.1

In my head, this is what we should be striv­ing for: open, con­fig­urable, and re­pairable sys­tems. We should­n’t be us­ing se­cu­rity as an ex­cuse for re­strict­ing our mod­els and ig­nor­ing cus­tomer pro­tec­tions.

Conclusion

In my opin­ion (which may be in the mi­nor­ity), it’s un­eth­i­cal to:

lock in your cus­tomers to a closed sys­tem for max­i­mum mar­ket gain

put down the com­pe­ti­tion when they pose a risk to your prod­uct

make hyp­o­crit­i­cal claims on how your prod­uct in­creases qual­ity when your own soft­ware sucks

ar­ti­fi­cially re­strict one’s own prod­uct as a fear-mon­ger­ing mar­ket­ing stunt

test dy­namic pric­ing on your users to see how much more they’ll pay for less

change the terms of your prod­uct af­ter the sale with­out no­ti­fy­ing your user base

And this is just one of the three gi­ant AI labs. I could write an­other piece on OpenAI.

Anthropic is try­ing to match the cut­throat and anti-con­sumer prac­tices of big-tech be­cause the line must go up. Like I did for big-tech, I’ll be tak­ing my busi­ness else­where, and I en­cour­age you to do the same.

Today, I use Qwen and GLM for or­ches­tra­tion, Deepseek for search­ing, and Minimax for file edit­ing ↩

Today, I use Qwen and GLM for or­ches­tra­tion, Deepseek for search­ing, and Minimax for file edit­ing ↩

news/faster-builds

elm-lang.org

To add this web app to your iOS home screen tap the share button and select "Add to the Home Screen".

10HN is also available as an iOS App

If you visit 10HN only rarely, check out the the best articles from the past week.

Visit pancik.com for more.