rss_feed

My New PowerMac G3 Blue and White: Part 1

April 17, 2024

A couple of weeks ago, I was browsing eBay when I made an impulse purchase: a PowerMac G3 Blue and White. The computer was in excellent condition and fully functional which is why I didn’t have to think long before clicking the “Buy Now” button. It cost me €150 (about USD 160) which I thought was a rather good deal considering how rare it is to find one at all, much less one in good, fully working condition.

This was one of the Macs that got me to switch to a Mac in the first place. I grew up with a friend whose dad had one and we always played games on it. We had beige Windows PCs at home so this colorful PowerMac G3 Blue and White was refreshing and I have wanted one ever since.

And now I have one. Well, two actually. I bought one a while ago, but it has a severely corroded motherboard due to an exploded clock battery which means it’s now going to be a parts doner in case I need them for my new PowerMac.

Here are the specs of my PowerMac G3 Blue and White as it came:

  • PowerPC G3 350 MHz single-core processor
  • 512 MB of RAM
  • 41 GB HDD
  • Mac OS 9.2.2

It came with an old Apple Pro Keyboard and the original “hockey puck” mouse that was and is so miserable to use. It didn’t come with much software, but that is fine because I have a fairly sizable collection of old Mac software and there is always Macintosh Garden in case I want something specific I don’t already have.

Now, let’s see some pictures:

Why? Just, why?

You might be wondering why I would spend money on a 25-year-old computer that by modern standards is so slow and out of date that it surely can’t do much. Well, other than the nostalgic reasons mentioned above, I happen to have a lot of software, including old games, from that era that I used back in the day and want to be able to run again.

Also, it’s just simply a fun project. It may not be for everyone, but I enjoy tinkering around with computers, and having an excuse to play around with a new (old) one is always a welcome pastime.

So what is there to tinker with? There is the aforementioned software, of course, but before I get to that, I’m going to start with the hardware. First, some routine maintenance needs to be performed to keep this old computer in good working order, and then we can upgrade some of the hardware to make this Mac perform at its best.

Routine Maintenance

Like with any old computer, the first order of business is some routine maintenance to ensure it continues to work for years to come. Computers from this era suffer from both exploding clock batteries as well as the Capacitor Plague which means those need to be addressed immediately.

The first thing I did was replace the clock battery. The one it came with was still the original and labeled as being from 1998. Luckily, it hadn’t exploded or leaked at all which means everything is still in perfect condition.

After that, I checked for bad capacitors. Fortunately, there aren’t any non-solid electrolytic capacitors on the PowerMac G3’s motherboard and a quick check of the power supply showed that they still look good. That means everything checks out and no recapping is necessary for now.

The last piece of maintenance I did was to clean it all out. I took the computer outside on a nice, dry day along with my canned air and blew as much of the dust, hair, and grime out as I could. I still need to take the blue and white case apart and give the plastic a good scrubbing and the keyboard needs some desperate attention (it is utterly filthy under the keys), but otherwise, the computer is clean enough to start with the fun part.

Upgrades

Some retro computer enthusiasts don’t like to replace old hardware with new alternatives so that they can authentically experience their old computer as it was back in the day. I am not one of those. I will definitely keep the original hardware around that I replace and will not make any permanent changes, but some simple upgrades will enhance the experience.

For now, the only change I’m going to make is to replace the old HDD with an SSD. With some of the noises the HDD makes, it is clearly failing which means it will have to be replaced sooner rather than later. I could use another HDD, but if I’m going to exchange it, I may as well use something faster.

I may upgrade the RAM at some point in the future because it only has 512 MB and the max the PowerMac G3 Blue and White supports is 1 GB, but 512 MB is more than enough for anything I want to do with it at the moment, so I’ll skip that for now.

So why am I using an SSD instead of Compact Flash? The answer is entirely pragmatic: I’ve had an extra one lying around for months and don’t know what to do with it. I would have to purchase a Compact Flash card plus an IDE adapter for it which would have cost significantly more than just purchasing a SATA-IDE adapter for the SSD.

The PowerMac G3 Blue and White is one of the first Macintoshes to use IDE controllers instead of SCSI for drives which gives me a little bit of a speed boost over the beige PowerMac G3s. That said, its Ultra ATA/33 bus still by far can’t make use of the full speed of the SSD and can only see up to 128 GB. The SSD is 240 GB, but since I wasn’t using it anyway, I don’t care that half of the space will go unused. It also means I get to take advantage of the full capabilities of the IDE bus and max out the hard drive space.

How the Upgrade Went

Well, it could have gone smoother if I had just turned my brain on before starting the upgrade. It’s certainly not the first time I have installed a new hard drive or SSD into a system, so the reason that it took a while for any of the Mac OS installers to actually see it was entirely asinine: I forgot to format it.

That cost me about an hour of extra time trying to diagnose what I thought was a hardware problem. I thought that maybe the adapter wasn’t working or the SSD was broken. I even installed it in an old project PC I have sitting around and sure enough, Windows could see it just fine. That, however, led me to realize I needed to format it first since I had to open Disk Management to see it. Oops.

In any case, it works now. Let’s see some more pictures:

  • The SSD and IDE-SATA Adapter for the PowerMac G3
  • The IDE-SATA Adapter
  • The IDE-SATA Adapter
  • The Original HDD
  • The SSD Install on top of the Original HDD
  • The SSD Install on top of the Original HDD
  • The Jaguar Installer Can't Find the SSD
  • My Hobby PC with the SSD Installed
  • The SSD in my Hobby PC Box
  • Trying to Partition the SSD in Windows 10
  • Disk Utility Could See the SSD
  • The Mac OS X Installer Found the SSD

Part 2

Originally, I was planning on making this a single post, but apparently, I have a lot more to write about than I thought so I’ve decided to break it up into multiple posts. There will probably be about three of them, but I can’t guarantee anything.

Now that the SSD is working, we’ll take a look at my adventures with trying to get Mac OS X 10.2 Jaguar installed on the system and why I chose that version of Mac OS. Getting it installed was more adventurous than it needed to be, but this time it wasn’t something I forgot to do.

You can find Part 2 on my personal blog here.

New CSS Function: light-dark()

April 12, 2024

A few days ago, I stumbled across a new function in CSS that is going to make my life a tremendous amount easier: light-dark(). This function will enable developers to define both light and dark colors for a property in a single line without media queries.

Most websites I have worked on in the past several years have supported both light and dark modes based on the user’s preference. So far, I’ve achieved this by using the prefers-color-scheme media condition like in this example:

.example {
  color: #000000;

  @media (prefers-color-scheme: dark) {
    color: #ffffff;
  }
}

This works but requires several extra lines of code. The new light-dark() function will turn this into one-liner:

.example {
  color: light-dark(#000000, #ffffff);
}

So much cleaner and easier to read! That is especially the case if you have a large CSS class with multiple properties. The only prerequisite is that you set the color scheme in :root so that the browser knows your website supports both light and dark modes.

Here is the complete example:

:root {
  color-scheme: light dark;
}

.example {
  color: light-dark(#000000, #ffffff);
}

Once you’ve set color-scheme, you can use the light-dark() function anywhere in your CSS code.

The function is still relatively new and is therefore not available yet in every browser. I suspect it won’t take long for the holdouts to support it though since Google Chrome already supports it and Edge and Opera are also based on Chromium. Firefox supports it already and it’s already in development for Safari. You can see the browser compatibility list from MDN here:

Browser compatibility for light-dark()
Browser compatibility for light-dark() as of this writing

I am certainly looking forward to being able to write clearer, more concise CSS in the future using light-dark(). If you would like to read more details about it, there are a couple of links below.

Links

My Problem with The Current State of Next.js

April 11, 2024

When I first discovered Next.js, I was extremely excited about its possibilities. It has, however, in my opinion become somewhat of a mess since I first discovered it which has led me to look at other frameworks to fulfill my SEO-friendly single-page application (SPA) needs.

When I first came across it, I was learning React and was looking for a way to create an SEO-friendly website using the library. By that time, I had done years of frontend (and backend) development but had only ever done traditional frontend work for multipage applications (MPA) with server-side rendering.

Since I was enjoying the new-to-me experience of developing using SPA technology, I decided to rewrite my online portfolio using React. In order to do that though, I needed it to be SEO-friendly which is why I chose Next.js.

What I Liked About Next.js

There were a lot of features about Next.js that I liked. Its file system-based routing was easy to use, it offered static page generation as well as incremental page regeneration which was and still is a key feature for me.

Most of my portfolio page is static and only needs to be rebuilt when the application is redeployed, but a few key pages such as my Blogs page need to be incrementally regenerated when external content is updated.

Generally, the project had the right feature set for me, it was easy to understand and implement, and it just worked well. And it still does as long as you ignore the new “app router“, but more about that later.

Once I realized that an SEO-friendly SPA framework existed, I thought I would look around to see what else was available. Originally, I looked at both Next.js and Nuxt.js. For those who don’t know Nuxt.js, it’s basically the Next.js-equivalent for Vue.

In the end, I decided on Next.js because I was already learning React, didn’t feel like learning Vue on top of it, and it seemed like Next.js was the more mature framework with more features. This was 2019, so things have obviously changed a lot. Nuxt.js has matured greatly since then, but that is beyond the scope of this post. For now, we’re going to focus on Next.js.

What Has Changed: The App Router

I already hinted about what I dislike about how Next.js has developed above: the new app router. That isn’t the only change I don’t like, but it’s the primary one. If you don’t know what I’m talking about, take a look at the documentation.

I understand that they conceptualized it to work with the new server component feature coming from React, but I don’t care much for that either. I have dug into the documentation and have experimented with them using both plain React and Next.js and I just can’t warm up to them.

The reason is simple: they introduce a new level of chaos to an already chaotic library. Even with years of professional experience working on React projects, hours and hours of training, and a pretty deep understanding of it, I can’t help but feel like React is chaotic. Every project I have worked on has had crippling problems with organization and convention that cannot be solved by pull requests, linting, or team agreements forgotten about buried somewhere on a Confluence page written after a meeting two years ago.

Next.js does try to reign in this chaos problem by forcing developers to use certain file conventions and structures, but the new app router takes it to such an extreme that it actually restricts what is technically possible to create with the framework. I will get to that in a little bit though.

The new app router works with file name conventions and each level deeper in the file system overrides the previous level. If you don’t know what I’m talking about, take a look at this list from the Next.js documentation page:

Next.js App Router File Conventions
Next.js App Router File Conventions

This may seem great at first because it forces naming conventions, but trying to find an elusive bug through several levels of this is a nightmare.

I know this is by design to compartmentalize and modularize routes so that you can have deeply-nested routes and only change subsections with their own custom loaders, etc when the route changes. I really do get the idea behind it and the concept itself really isn’t bad if that’s what you’re going for.

However, the way I work and plan application architecture just isn’t compatible with that kind of thinking. I have seriously tried, but it just won’t happen. I know that sounds like a personal problem, but it’s mainly due to the technical limitations this structure introduces.

Limitations

Using the new app router always ends in frustration for me because I keep running into its limitations and feel too constricted by it. It’s not the file structure and opinionated approach to React that makes me feel this way. In fact, I welcome that very much for React projects since, as mentioned above, most projects are utterly chaotic.

Instead, it’s the fact that it’s technically not possible to program certain features into the application with the app router. If this is the future of Next.js, then it feels like they are cutting themselves short and removing a lot of flexibility from their framework.

One such example is with route events. In the old page router, it is possible to subscribe to route events that allow you to perform an operation when, for example, a route change is triggered and another when a route change is over.

Among other things, this allows you to display a global loader for when new pages are loaded. This is important to be able to do because when a user’s internet connection isn’t particularly fast or flakey, the files for the page being navigated won’t be loaded instantaneously. If you don’t display some sort of loader, it will appear as though the application is unresponsive.

The convention for SPAs has become a loading bar across the top of the page and it’s what users are used to. UI/UX designers also like this convention so it is not uncommon to see when you get ready to implement a new design. The new app router, however, does not allow you to do this because you cannot subscribe to the route change events.

As of publication, there is a long, ongoing discussion about it on GitHub. Vercel (the company behind Next.js) may resolve this, but then again, they may not.

Of course, anyone familiar with the new app router will point out the “loading.{jsx,tsx}” file convention that can be seen in the screenshot above. This will indeed automatically show a loader when a new route is being loaded, but it replaces the router outlet’s entire contents before replacing it again with the new content. That means you can use it to show loading skeletons or maybe a spinning wheel which is fine for small components that need to load, but is a horrible user experience when changing entire pages.

The entire page disappears to show some sort of loader and then reappears which means the user sees two page changes rather than only one. In the best-case scenario, that’s a terrible user experience and in the worst-case scenario, it may lead to confusion about what the application is actually doing.

Essentially, it forces you into this design pattern whether you like it or not. The developer and/or UX/UI designer is no longer given the flexibility to design the user experience to their heart’s content. It is a heavy-handed, top-down approach that forces application developers and designers to conform to Next.js’s paradigm.

Another limitation that comes to mind by not being able to subscribe to routing events is that you are prevented from stopping navigation when, say, the user has unsaved changes and you want to warn him before he loses them by changing pages.

Conclusion

In the end, developers have to choose the framework and tools that work best for their project. There are certainly some valid use cases for the new app router in Next.js, but I find it way too restricting. I don’t like where the development is going.

You might mention that there is still the page router that takes care of all of my complaints above and you would be right. However, I am hesitant to start a new project with it because it is clear that the app router is the future, and who knows when the page router will be deprecated.

Some of what I’ve written may sound as though I’m against all progress in the SPA world. I can say with certainty that I am not. The problems that Next.js is trying to solve are very real issues that need to be addressed. I just don’t like the approach that Next.js has taken.

Since then, I have looked at other options such as Nuxt.js and Angular Server-Side Rendering (SSR). Angular SSR is a great option for completely static sites but lacks incremental regeneration. They made great progress with Angular 17 (the latest release) and I hope that Angular 18 will bring incremental regeneration.

So that leaves Nuxt.js, which, as of this writing is now my go-to SEO-friendly SPA framework. Since learning React, I have also learned and worked with Vue which means that is no longer a barrier. I have even written about it. It has all of the features I need and I haven’t run into any limitations as to what it can do yet.

That said, I am tired of the constant framework rollercoaster and am starting to think that a good, old-fashioned, stable-as-hell, boring, multipage application is the future of my projects. Maybe it’s age or perhaps I’m just ready to get more done rather than having to constantly battle the tools that should make my life easier.

What do you think about Next.js and its recent developments? What SPA frameworks do you use? How about MPA frameworks? Let me know in the comments!

Poll: Do you prefer monorepos or multiple repos?

April 10, 2024

Our second poll asks whether you prefer to work with monorepos or multiple repositories. I have certainly heard strong opinions about both sides, so let us know what your preference is!

Do you prefer monorepos or multiple repos?

Loading ... Loading ...

The Endless Quest to Replace WordPress

April 4, 2024

I have been using WordPress to run many of my websites since 2007 when I first started this blog. Back then, it was a lean piece of blogging software that was easy to use and contained all the features a person running a blog would need.

However, since then, it has exploded in popularity to power an enormous amount of the internet, and as its popularity has grown, so has its feature bloat. While it still works well for basic blogs, the sheer amount of CMS-like features that come with it nowadays are entirely useless to me.

The new block themes, for example, do absolutely nothing for me. As a developer, I create my own custom themes and if I need a specific layout for a page, I will program it myself. Block editing may be great for non-developers but is nothing but bloat for me.

Alternatives

Of course, feature bloat doesn’t happen overnight. This has been a long time coming and therefore I have been looking at alternatives for quite a while. Ghost would be my first choice as it solely focuses on content creation which is all I need. I can create my own themes much like with old-world WordPress and be done with it without much bloat.

I haven’t made the leap to Ghost yet though because, as a developer, I am constantly thinking about how I could just make my own blogging software. I don’t need an entire CMS and can simply redeploy the website every time I create a new post.

I have made attempts on and off over the years as can be seen by searching for “blog” in my GitHub account. Nothing has ever borne fruit, however, because I get distracted or have a new idea for it or I just give up because I want to focus more on content with the little free time I have. The list of reasons why I never get finished is as large as WordPress itself has become.

This endless quest to replace WordPress has been going on for at least eight years and will probably continue until I finally do replace it one day. The question is really just: When is that going to be?

Mac OS 8 as an Electron App

March 17, 2024

It really is amazing to consider how far technology has developed over the past few decades. What once required the use of an entire computer to run can now be run in a browser.

Macintosh.js is a fun open-source project that runs Mac OS 8 in Electron. It emulates a 1991 Macintosh Quadra and runs the full operating system. The emulator also comes with a number of programs pre-installed which makes it a full nostalgic experience.

Since it runs in Electron, it is available for macOS, Windows and Linux. You can download it from the project’s GitHub page.

Even if you aren’t an Electron fan, you have to admit that it’s pretty impressive that essentially an entire computer can run in a browser environment. It may not have anything to do with Electron specifically, but it really does just go to show how far technology has developed since Mac OS 8 was released three decades ago.

The project’s GitHub page: https://github.com/felixrieseberg/macintosh.js

How Windows 11 Has Convinced a Skeptic

March 8, 2024

Until about two years ago, I was exclusively a Mac user. I started using Apple computers when Mac OS 9 was the latest version and they were still plastic and colorful. Since then, I have used every version of Mac OS X (and subsequently macOS) as my daily driver.

Macs got me through college and I have had the privilege of using them at every job I have had, other than a brief stint with Windows 7 at one of the companies I worked for. That experience was miserable, so I never thought I would ever use Windows as a daily driver as long as I could feasibly avoid it.

But then things changed. I broke down and bought a refurbished desktop PC with Windows 10 out of sheer curiosity.

I thought it would be a fun project box to play around with Windows, but also with Linux distros which is why I wanted a desktop. I wanted to be able to install multiple SSDs to play around with the various operating systems.

The PC I had had at work with Windows 7 was locked down to the point that I couldn’t do my job and had to rely on a Linux virtual machine in VirtualBox to be able to actually do the job I was hired for. I knew Windows wasn’t normally that restrictive, so I wanted to give it a serious try at home for the first time since Windows 2000.

What I found surprised me. Windows 10 wasn’t as bad as I remembered Windows being. It quickly became clear to me that Microsoft had really polished Windows and fixed a lot of the issues that made me switch to Mac in the first place.

Soon afterward, Windows 11 was announced. My old, refurbished PC wouldn’t run it because it didn’t have a TPM 2.0 chip which was a controversial requirement for Windows 11. Between that and Google shutting down Stadia which is where I used to play my all-time favorite game: Red Dead Redemption II, I decided to invest in a new desktop PC.

I enjoy fiddling around with hardware, so I took my time and researched parts to build my own PC. A lot had changed since the last time had built a desktop PC which meant I had a lot to catch up on. A few days later and I had my parts list ready to order.

This is where PCs really shine. I didn’t have to order the parts all at once and was able to spread the cost of the new PC out over the course of several months. This made financial sense and made my wife more accepting of my choice to buy a new PC.

Once I got everything and put the PC together, I bought a new license for Windows 11 Pro. I installed it and was very pleasantly surprised. It was a lot more polished than Windows 10. Since I am picky about interfaces, Microsoft products have never particularly appealed to me, but I’ve found that I enjoy Windows 11’s interface and design.

The only drawback is that it’s Windows and web development on Windows is a marginally good experience at best. There is, of course, the Windows Subsystem for Linux which I think Microsoft has done a great job with, but in the end, you’re still working in a virtual machine and it’s noticeable when you work with it every day.

So I’ve compromised. I still have a 2019 MacBook Pro that I use for more of my development and most of everything else I do on my new desktop. That obviously includes gaming even though I’m not a huge gamer and can go for weeks without actually playing one.

I’m planning on installing Linux on a separate SSD to give that a shot on my new PC, but I haven’t gotten around to it. I tried out Ubuntu for quite a while on the old, refurbished PC, but I haven’t installed it on the new one yet. I did enjoy the experience, however.

What do you think about Windows 11? Do you think it’s an improvement over Windows 10 or other previous versions of Windows? Let me know in the comments below!

The Boring Stack

February 5, 2024

In the past decade or so, the number of programming languages, frameworks, libraries, and other technologies has exploded. As a developer starting a new project, you don’t always know where you should begin. Each new technology claims to be the solution for all your programming and architectural woes and yet they all have their weak points.

So where do you start? If you’re anything like me, then you’ve probably spent countless hours researching technologies and building prototypes trying to find the optimal solution for the project you are about the embark on.

There is, however, a better solution and it’s called The Boring Stack. It is not a specific set of technologies, but rather an umbrella term used to describe whatever stack you as the developer or team of developers are most competent in.

Microsoft Copilot describes it as the following:

The Boring Stack is a term used to describe a set of technologies that developers are already familiar with and can use to build projects without having to learn new languages or frameworks. The idea is to focus on the end result and ship great products quickly, rather than spending time learning new tools. The Boring Stack is not a specific technology stack, but rather a concept that can be applied to any stack that developers are already comfortable with.

The Boring Stack according to Microsoft Copilot

Of course, some languages and technologies are better than others at certain tasks, but unless you have an extremely specific use case, the idea of The Boring Stack is to just use whatever you’re most experienced in and can make the most progress with. Rather than spending precious time researching and building prototypes to test new technologies, you can instead spend that time actually building the product.

…read the rest of the article →

Subscription Fatigue and Software

November 26, 2023

Have you ever upgraded one of your favorite programs or apps that you bought a permanent license for, only to be confronted by the need to subscribe to use the newest version?

This happened to me recently for one of the apps I frequently use on my iPad: GoodNotes. I bought version 5 a couple of years ago, but starting with version 6, they require a subscription to use it. I would have paid a new one-time license fee for the upgrade, but that is no longer an option and therefore I have moved on to Apple Notes instead.

GoodNotes is not the first instance of this happening to me and I find it to be a rather disturbing trend in the software industry. From an economic standpoint, I can see why a subscription model is much better for software development companies than a one-time purchase model, but it most certainly isn’t better for their customers.

Why Companies Are Moving to Subscription Models

Ever more software companies are moving to a subscription model in order to generate a more consistent stream of revenue. Instead of having spikes of income when they release new major versions of a piece of software, subscriptions allow them to have a continuous cash flow.

When Microsoft, for example, moved Office to a subscription model, they claimed it would allow them to focus more on the development of the software rather than on marketing major new version releases. It also has the added business benefit of ensuring a constant revenue stream.

From a business perspective, both of those are no-brainers. After all, what company wouldn’t want to have continuous cash flow while lowering marketing and release costs? This is, however, an entirely selfish perspective that could backfire.

Subscription Fatigue

Something that these software companies seem to forget is that a large number of other companies are also doing the same thing. This means that users end up with subscription fatigue which may drive away potential customers.

It is not uncommon for users to be subscribed to many different pieces of software or services at the same time. The costs add up pretty quickly which means that users are likely to second-guess whether they really need to sign up for a new one.

If I, for example, have to pay $10 or even $5 a month for a piece of software, I am going to carefully consider whether I really need it badly enough to spend money on it every month. Part of that concerns the fact that I am already paying for other programs or services monthly or annually and at some point, I just don’t want to or can’t afford to spend any more money on software subscriptions.

I don’t have a problem paying for the software I use on a regular basis such as my Apple One subscription. I use iCloud Drive, Apple Music, Apple TV+ and the accompanying software almost every single day. The benefit I get from it therefore justifies the recurring cost.

However, most applications, such as GoodNotes or Microsoft Office, I only use sporadically. I may play with a free trial subscription, but most of the time, I cancel it before I have to start paying for it because I just can’t justify the recurring cost.

Applications I only use every once in a while are exactly the type that I would pay a one-time license fee for, but am not willing to pay for continuously.

Conclusion

To be fair to software subscribers, there are certainly some upsides to it. For example, you always have the latest version and most of the time you get a continuous stream of new features. There are even customers who can benefit from software subscriptions such as other companies.

By subscribing to a product such as Microsoft Office, they can continuously deploy small software updates with incremental changes instead of having to purchase brand-new licenses for major updates with vast changes. This reduces costs in that employees may have to be retrained to use new major versions of software and the process of deploying the major upgrade is also costly.

That said, the individual consumer is the one who loses out. Their pockets aren’t nearly as deep and the benefits, while real, are fewer. At some point, the cost simply exceeds the benefits for software you don’t use all the time.

With so many companies starting to require a subscription for their software, it has gotten to the point that if I see they require one, I am unlikely to even consider it. Anymore, I just skip over it and look for something else that is either free or I only have to pay for once.

This article originally appeared on Alex’s Notebook.

Linker: October 27, 2023

October 27, 2023

As always, there is a lot going on in the world of tech. This week’s “Linker” features experimental updates, new releases and a few tips and tricks.

Microsoft is testing new Windows 11 privacy controls in Europe. As most people in the tech world are aware, privacy laws are much stricter in Europe than in most other parts of the world. It looks like Microsoft is adding additional privacy controls in Windows 11 to better comply with local laws.

Report finds few open source projects actively maintained. A study done on open source projects shows open source maintenance is in decline and that 1 in 8 source downloads have a known risk. Only about 11% of open-source projects are actively maintained.

Turning a Node.js Monolith into a Monorepo without Disrupting the Team. The title pretty much says it all. It is a useful article about the best strategy for turning a monolith into a monorepo without too much disruption of development.

What I Learned as a Product Designer at Apple. An ex-designer from Apple gives insight into what she learned during her time at the company. It is an interesting read for anyone who wants to better understand how Apple sees design.

Microsoft .NET 8 nears the finish line. .NET 8 is getting closer to its final release. There are a number of improvements and changes and it will receive three years of support.

Node.js 21 brings WebSocket client. Node 21 was recently released and one of the features that were added was experimental support for a built-in WebSocket client.

Linker: October 20, 2023

October 20, 2023

This is the first of a regular series of posts featuring links of interest to developers and nerds. Enjoy them and if you have any suggestions, feel free to let us know by contacting us or in the comments below!

Angular users want better server-side rendering. A survey conducted in 2022 shows that developers not only want better server-side rendering in Angular, but they also want better debugging, profiling and testing.

30 Best Web Development Frameworks for 2023: A Comprehensive Guide. This is a great guide for anyone looking to start a new web project in 2023. It includes a comprehensive list of both frontend and backend frameworks in a variety of languages and weighs their pros and cons.

Green hills forever: Windows XP activation algorithm cracked after 21 years. This is probably entirely useless information, but could be amusing if, for example, you have an old PC lying around or want to run Windows XP in a virtual machine. The only real use-case I can think of for that would be to run old software such as games, but perhaps you have a better idea of what to do with it.

Node.js 21 is now available! The OpenJS Foundation announced the release of Node 21 this week. Following tradition, we can expect Node 20 to move into LTS later this month.

GNOME has a pull request to drop X11 support plus Ubuntu 13.10 is out. Linux & Open Source News:

Poll: What operating system is your favorite to use for programming?

October 17, 2023

The very first poll from Developer’s Notebook asks what your favorite operating system to use while programming. It could differ from your favorite to use in a server environment or your favorite to game in, etc.

Let us know in the comments below why it’s your favorite and what makes it so special to use!

What operating system is your favorite to use for programming?

Loading ... Loading ...