diff --git a/netlify.toml b/netlify.toml index b5c75f99..f1757b62 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,4 +3,7 @@ [[redirects]] from = "/support" - to = "/contact" \ No newline at end of file + to = "/contact" +[[redirects]] + from = "/blog/2024/6-tools-running-windows-linus-macos/" + to = "/blog/2024/6-tools-running-windows-linux-macos/" \ No newline at end of file diff --git a/package.json b/package.json index 69eb1c90..32101aac 100644 --- a/package.json +++ b/package.json @@ -15,11 +15,11 @@ }, "dependencies": { "@astrojs/markdown-component": "1.0.5", - "@astrojs/react": "^3.6.2", - "@emotion/react": "^11.13.3", - "@emotion/styled": "^11.13.0", - "@mui/icons-material": "^6.1.2", - "@mui/material": "^6.1.2", + "@astrojs/react": "^4.0.0", + "@emotion/react": "^11.13.5", + "@emotion/styled": "^11.13.5", + "@mui/icons-material": "^6.1.10", + "@mui/material": "^6.1.10", "@netlify/functions": "^2.8.2", "fast-xml-parser": "^4.5.0", "markdown-truncate": "^1.1.1", @@ -27,41 +27,41 @@ "sharp": "^0.33.5" }, "devDependencies": { - "@astro-community/astro-embed-youtube": "^0.5.3", - "@astrojs/markdown-component": "1.0.5", - "@astrojs/mdx": "^3.1.7", + "@astro-community/astro-embed-youtube": "^0.5.6", + "@astrojs/mdx": "^4.0.1", "@astrojs/partytown": "^2.1.2", - "@astrojs/rss": "^4.0.7", - "@astrojs/sitemap": "^3.2.0", - "@astrojs/tailwind": "^5.1.1", + "@astrojs/rss": "^4.0.10", + "@astrojs/markdown-component": "1.0.5", + "@astrojs/sitemap": "^3.2.1", + "@astrojs/tailwind": "^5.1.3", "@astrolib/analytics": "^0.6.1", "@astrolib/seo": "^1.0.0-beta.8", "@fontsource/albert-sans": "^5.1.0", "@fontsource/bitter": "^5.1.0", - "@iconify-json/carbon": "^1.2.1", + "@iconify-json/carbon": "^1.2.4", "@iconify-json/fa": "^1.2.0", - "@iconify-json/fluent": "^1.2.2", - "@iconify-json/ph": "^1.2.0", - "@iconify-json/ri": "^1.2.0", - "@iconify-json/simple-icons": "^1.2.5", + "@iconify-json/fluent": "^1.2.8", "@iconify-json/simple-line-icons": "^1.2.0", - "@iconify-json/tabler": "^1.2.4", + "@iconify-json/ph": "^1.2.1", + "@iconify-json/ri": "^1.2.3", + "@iconify-json/simple-icons": "^1.2.14", + "@iconify-json/tabler": "^1.2.10", "@tailwindcss/typography": "^0.5.15", - "@typescript-eslint/eslint-plugin": "^8.8.0", - "@typescript-eslint/parser": "^8.8.0", - "accessible-astro-components": "^2.3.6", - "astro": "^4.15.11", - "astro-icon": "^1.1.1", - "eslint": "^9.12.0", - "eslint-plugin-astro": "^1.2.4", + "@typescript-eslint/eslint-plugin": "^8.14.0", + "@typescript-eslint/parser": "^8.14.0", + "accessible-astro-components": "^2.4.0", + "astro": "^4.16.13", + "astro-icon": "^1.1.4", + "eslint": "^9.16.0", + "eslint-plugin-astro": "^1.3.1", "limax": "4.1.0", "mdast-util-to-string": "^4.0.0", - "prettier": "^3.3.3", + "prettier": "^3.4.2", "prettier-plugin-astro": "^0.14.1", "reading-time": "^1.5.0", "svgo": "^3.3.2", - "tailwindcss": "^3.4.13", + "tailwindcss": "^3.4.15", "truncate-html": "^1.1.2", - "typescript": "^5.6.2" + "typescript": "^5.6.3" } } diff --git a/src/assets/images/articles/7-alternative-text-editors-and-IDEs-for-macOS.jpg b/src/assets/images/articles/7-alternative-text-editors-and-IDEs-for-macOS.jpg new file mode 100644 index 00000000..6f8755d1 Binary files /dev/null and b/src/assets/images/articles/7-alternative-text-editors-and-IDEs-for-macOS.jpg differ diff --git a/src/assets/images/articles/immutable.jpeg b/src/assets/images/articles/immutable.jpeg new file mode 100644 index 00000000..57477d72 Binary files /dev/null and b/src/assets/images/articles/immutable.jpeg differ diff --git a/src/components/Link.astro b/src/components/Link.astro index d10c908c..a41a69e3 100644 --- a/src/components/Link.astro +++ b/src/components/Link.astro @@ -4,12 +4,11 @@ import { Image } from 'astro:assets'; export interface Props { title: string; link: string; - excerpt: string; image: string; domain: string; note: string; } -const { title, link, excerpt, image, domain, note } = Astro.props; +const { title, link, image, domain, note } = Astro.props; // Default images var src = ''; @@ -35,5 +34,4 @@ if (image != null) { {domain}

-

diff --git a/src/content/events/2024-11-11-web-summit-2024.md b/src/content/events/2024-11-11-web-summit-2024.md new file mode 100644 index 00000000..49a38aff --- /dev/null +++ b/src/content/events/2024-11-11-web-summit-2024.md @@ -0,0 +1,12 @@ +--- +action: to hear about +layout: "../../layouts/Event.astro" +title: your projects and ideas +event: Web Summit +start_date: 2024-11-13T12:20:00.000Z +end_date: 2024-11-14T12:20:00.000Z +venue: 'MEO Arena, Lisbon' +pres_url: https://websummit.com +--- + +Chris is back at Europe's pre-eminent event for Startups and keen to meet interesting products, projects and people. diff --git a/src/content/events/2024-11-21-suaw-symposium.md b/src/content/events/2024-11-21-suaw-symposium.md new file mode 100644 index 00000000..111a81d6 --- /dev/null +++ b/src/content/events/2024-11-21-suaw-symposium.md @@ -0,0 +1,12 @@ +--- +action: to speak about +layout: "../../layouts/Event.astro" +title: The Berlin Meetup +event: SU&W Community symposium +start_date: 2024-11-21T12:20:00.000Z +end_date: 2024-11-21T12:20:00.000Z +venue: 'Cambridge, UK' +pres_url: https://suawsymposium2024.splashthat.com +--- + +TBD \ No newline at end of file diff --git a/src/content/events/2024-12-03-apidays-paris.md b/src/content/events/2024-12-03-apidays-paris.md new file mode 100644 index 00000000..2e6eeab0 --- /dev/null +++ b/src/content/events/2024-12-03-apidays-paris.md @@ -0,0 +1,12 @@ +--- +action: to speak about +layout: "../../layouts/Event.astro" +title: AIAPI +event: API Days +start_date: 2024-11-13T12:20:00.000Z +end_date: 2024-11-14T12:20:00.000Z +venue: 'CNIT Forest, Paris' +pres_url: https://www.apidays.global/paris/ +--- + +TBD \ No newline at end of file diff --git a/src/content/podcasts/accessible-quantum-computing-with-horizon.md b/src/content/podcasts/accessible-quantum-computing-with-horizon.md new file mode 100644 index 00000000..18ab6362 --- /dev/null +++ b/src/content/podcasts/accessible-quantum-computing-with-horizon.md @@ -0,0 +1,4 @@ +--- +player_embed: '45613a75-6e82-46cf-ad32-85f5d3557fb1' +descript_embed: 'c1t8Czbn8ml' +--- \ No newline at end of file diff --git a/src/content/podcasts/ai-powered-code-reuse-with-crowdbotics.md b/src/content/podcasts/ai-powered-code-reuse-with-crowdbotics.md new file mode 100644 index 00000000..3d4d4624 --- /dev/null +++ b/src/content/podcasts/ai-powered-code-reuse-with-crowdbotics.md @@ -0,0 +1,4 @@ +--- +player_embed: 'a09c02de-8ddc-4c46-aeea-b1032c2da69d' +descript_embed: 'HbrwNzUEEma' +--- diff --git a/src/content/podcasts/alternative-meats-and-what-actually-is-ai.md b/src/content/podcasts/alternative-meats-and-what-actually-is-ai.md new file mode 100644 index 00000000..4668ec86 --- /dev/null +++ b/src/content/podcasts/alternative-meats-and-what-actually-is-ai.md @@ -0,0 +1,4 @@ +--- +player_embed: 'd991f5b8-bafd-4918-b6a6-4df7212328e5' +descript_embed: 'Kh7p310zMrN' +--- diff --git a/src/content/podcasts/astro-version-5-with-elian-van-cutsem.md b/src/content/podcasts/astro-version-5-with-elian-van-cutsem.md new file mode 100644 index 00000000..eb34c4f0 --- /dev/null +++ b/src/content/podcasts/astro-version-5-with-elian-van-cutsem.md @@ -0,0 +1,4 @@ +--- +player_embed: '78a7d992-f677-470c-8920-72d06142d568' +descript_embed: '0XrxhNCLUMZ' +--- \ No newline at end of file diff --git a/src/content/podcasts/circularity-startups-and-alternatives-to-x.md b/src/content/podcasts/circularity-startups-and-alternatives-to-x.md new file mode 100644 index 00000000..f282a564 --- /dev/null +++ b/src/content/podcasts/circularity-startups-and-alternatives-to-x.md @@ -0,0 +1,4 @@ +--- +player_embed: '3d881903-5e33-4396-965b-fd351d5ac28b' +descript_embed: '7NlhgLv5oY6' +--- \ No newline at end of file diff --git a/src/content/podcasts/creating-an-open-source-ai-definition.md b/src/content/podcasts/creating-an-open-source-ai-definition.md new file mode 100644 index 00000000..6d5ff740 --- /dev/null +++ b/src/content/podcasts/creating-an-open-source-ai-definition.md @@ -0,0 +1,4 @@ +--- +player_embed: '328f7d5a-f2cf-444d-ac07-86070d8d1987' +descript_embed: 'NpBgUJy3ZSg' +--- \ No newline at end of file diff --git a/src/content/podcasts/government-bailouts-in-tech-and-tech-influence-in-government.md b/src/content/podcasts/government-bailouts-in-tech-and-tech-influence-in-government.md new file mode 100644 index 00000000..ace80849 --- /dev/null +++ b/src/content/podcasts/government-bailouts-in-tech-and-tech-influence-in-government.md @@ -0,0 +1,4 @@ +--- +player_embed: '85dc6872-93e8-42ef-969d-89558f2af398' +descript_embed: 'zJ74MVU6OKr' +--- \ No newline at end of file diff --git a/src/content/podcasts/tech-events.md b/src/content/podcasts/tech-events.md new file mode 100644 index 00000000..3afe64d5 --- /dev/null +++ b/src/content/podcasts/tech-events.md @@ -0,0 +1,4 @@ +--- +player_embed: 'dbad757f-2747-4438-a27a-c5f63889d36b' +descript_embed: 'gr3n3BdvYU9' +--- \ No newline at end of file diff --git a/src/content/podcasts/the-graph-renaissance-with-neo4j.md b/src/content/podcasts/the-graph-renaissance-with-neo4j.md new file mode 100644 index 00000000..ae28cb1e --- /dev/null +++ b/src/content/podcasts/the-graph-renaissance-with-neo4j.md @@ -0,0 +1,4 @@ +--- +player_embed: 'eb44c8f2-7b2d-4a53-9e91-aaa12b133077' +descript_embed: 'fpFOnpsEDxB' +--- \ No newline at end of file diff --git a/src/content/podcasts/wasm-at-kubecon-eu-2024.md b/src/content/podcasts/wasm-at-kubecon-eu-2024.md new file mode 100644 index 00000000..edac3f24 --- /dev/null +++ b/src/content/podcasts/wasm-at-kubecon-eu-2024.md @@ -0,0 +1,4 @@ +--- +player_embed: '7d2a6e7d-7537-4c9d-8104-1459566c9179' +descript_embed: '2xgP1Emkxb0Kh7p310zMrN' +--- diff --git a/src/content/podcasts/workbrew-turning-homebrew-into-a-business-with-mike-mcquaid.md b/src/content/podcasts/workbrew-turning-homebrew-into-a-business-with-mike-mcquaid.md new file mode 100644 index 00000000..2aea65ab --- /dev/null +++ b/src/content/podcasts/workbrew-turning-homebrew-into-a-business-with-mike-mcquaid.md @@ -0,0 +1,4 @@ +--- +player_embed: '878a697c-861b-412d-923e-1e1a32104b99' +descript_embed: 'lD0iL6yV0hw' +--- \ No newline at end of file diff --git a/src/content/posts/2024/6-tools-running-windows-linus-macos.mdx b/src/content/posts/2024/6-tools-running-windows-linux-macos.mdx similarity index 100% rename from src/content/posts/2024/6-tools-running-windows-linus-macos.mdx rename to src/content/posts/2024/6-tools-running-windows-linux-macos.mdx diff --git a/src/content/posts/2024/7-alternative-text-editors-and-IDEs-for-macOS.mdx b/src/content/posts/2024/7-alternative-text-editors-and-IDEs-for-macOS.mdx new file mode 100644 index 00000000..d39e85a3 --- /dev/null +++ b/src/content/posts/2024/7-alternative-text-editors-and-IDEs-for-macOS.mdx @@ -0,0 +1,178 @@ +--- +title: 7 alternative text editors and IDEs for macOS +publishDate: 2024-11-15 +author: 'Chris Ward' +categories: + - writing +tags: + - IDE + - Text Editor + - Writing tool + - Programming tool +image: '../../../assets/images/articles/7-alternative-text-editors-and-IDEs-for-macOS.jpg' +--- + +import { YouTube } from '@astro-community/astro-embed-youtube'; + +I've been a mostly happy [VSCode](https://code.visualstudio.com) user for a few years now. So much so that [I even maintain a couple of extensions for it](https://marketplace.visualstudio.com/publishers/ChrisChinchilla). Before VSCode, I loved [Atom](https://atom-editor.cc). And before that… I can't remember anymore. But every now and then, it's good to look into alternatives and see how they compare, what options you haven't considered they offer, and if they bring anything new to your productivity. + +In this post, I look at seven alternatives to VSCode that interest me. Some are old and some new, some are macOS-native, and some are cross-platform. Notable exceptions are [VSCodium](https://vscodium.com/), the fully open fork of VSCode, which is fairly similar. I also leave out perennial classics such as Vim, Emacs, and Nano. I have nothing against them, but they aren't for me, and I don't think anyone needs another blog about them. + +## Video version + + + +## IDE vs Text editor + +The line between a text editor and an integrated developer environment (IDE) has blurred over the years. Some options in this round-up are pure text editors and have no features to support programming languages. Others are mostly aimed at developers, and while they also handle text, that's not their only function. Others started out as text editors and have added features to support programming languages. + +I have grouped them all together in one list, but of course, this means that some fare better with certain of my criteria. + +## Evaluation criteria + +- **Configuration options**: Text editors and IDEs are deeply personal and places where you spend a lot of time, so it's important to get them suited to you. My eyesight is poor, so I need decent text formatting features. +- **Architecture and performance**: While Microsoft has done a good job optimising VSCode, it is still a cross-platform application that uses Electron. This means it could be more operating system-native and performant. + - **System Integration**: Related to the point above, I am a big fan of tools that connect with operating system APIs to allow for a more integrated experience across other tools. While native applications are more likely to support APIs, cross-platforms may too. +- Supported languages: +- **Cost**: Whether we like it or not, many users have gotten used to "free" applications, especially text editors and IDEs. If it's not free, is it worth it? +- **Extensions community**: While extensible text editors and IDEs are nothing new, they are more popular than ever, and often, a tool or ecosystem lives or dies because of its community contributions. + - **Language server support**: As a sub-criteria for the extensions community, the language server protocol was created for VSCode to define a more standard way of creating certain extensions. Other tools have now adopted it, and it can expand extension support without needing to create tool-specific extensions or make it possible to create them with less work. + +## Test content + +I wanted to try a mix of common file syntax and some more obscure formats to see if they were supported or if an extension would support them. + +- **My website**: Uses Astro, with markdown, JavaScript, and MDX. +- **Task Overboard**: Uses Flutter and React. +- **KILT docs**: Uses Docusaurus, mixing MDX and React. +- **Adoc studio manual**: Uses Asciidoc. + +### Code edit + +I've covered [CodeEdit](https://www.codeedit.app) before, back when the project first started. It aims to sit alongside XCode and TextEdit, looking and feeling familiar but adding support for other languages and toolchains. + +Because of this aim, it's macOS native but also open source, so it's a great repository of knowledge for learning how to write a macOS-native text editor. It has an active community, but I don't see much progress since I last looked. I guess building an extensible text editor that supports multiple languages is complicated! + +This means that, at the moment, it's mostly a text editor with some IDE-like features. It has a framework for extensions, but as far as I can tell, it's not implemented yet. As many tools and platforms have shown before, while creating an ecosystem is often essential, it's complicated from a technical and governance perspective. CodeEdit also has language server protocol support planned. + +Aside from those two large feature areas, how else does CodeEdit compare on my requirements list? + +- **Configuration options**: Comprehensive with excellent text handling settings. +- **Architecture and performance**: macOS-native + - **System Integration**: Adds a system-wide "open in CodeEdit" context menu item. +- **Supported languages**: I couldn't find a full list, but from my test list, it only recognised JavaScript, TypeScript, and Dart, but there's no way to set the language manually. +- **Cost**: Free +- **Extensions community**: In progress. + - **Language server support**: In progress. + + + +My opinion of CodeEdit hasn't changed much since I last reviewed it. It's a great-looking project, and the community is making slow progress. Keep an eye on it, but it may not be ready for daily use yet. + +Find out more: https://www.codeedit.app + +### Nova + +From macOS development stalwart Panic, [Nova](https://nova.app) reminds me a little of some of the text editors and IDEs I used to use back on older versions of macOS but brought up to date. It's a macOS-native and performant IDE but has some less familiar interface aspects, such as extra colours and iconography. However, it seems Panic have toned it down since I last looked. It has extensive configuration and a growing extensions ecosystem, even including a version of one of the VSCode extensions I maintain, and even has language server support. For those looking for something with many of the same features as VSCode but feels more optimised. The main question is if you think it's worth it. + +- **Configuration options**: Comprehensive and excellent text options. +- **Architecture and performance**: macOS-native + - **System Integration**: Adds a variety of system extensions, including Quicklook and a handful of others. +- **Supported languages**: Most popular options in-built, with community extensions to support many others. +- **Cost**: $99 plus yearly upgrade fee +- **Extensions community**: Yes, and growing. + - **Language server support**: Yes. + + + +Find out more: https://nova.app + +### Chime + +Largely developed by a lone developer, [Chime](https://www.chimehq.com) is a lean, macOS-native editor with a limited feature set. It supports language server protocol and has an extensions toolkit that extends Apple's own [ExtensionKit](https://developer.apple.com/documentation/extensionkit), which makes it the most native extensions ecosystem but likely sets limits on the community. My main negatives are that there are no options to change the text or set the file type manually. + +- **Configuration options**: Limited and no options for changing text. +- **Architecture and performance**: macOS-native + - **System Integration**: Uses Apple's ExtensionKit, which means you manage editor extensions in system preferences. I am not sure how I feel about this… +- **Supported languages**: Currently limited, but language server support makes support a matter of time. +- **Cost**: Free and open source +- **Extensions community**: Small. + - **Language server support**: Yes. + +Find out more: https://www.chimehq.com + +### CotEditor + +Very much in the text editor camp, [CotEditor](https://coteditor.com/) is another performant, open-source, macOS-native option with a handful of thoughtful features for working with text. Best of all, it uses MacOS's default font picker and renders text beautifully. CotEditor also lets you create snippets, customise all key bindings, toggle settings between code and non-code text usage, and more. + +- **Configuration options**: Comprehensive with excellent text-handling options. +- **Architecture and performance**: macOS-native + - **System Integration**: Nothing in addition to the above +- **Supported languages**: Reasonable but missing more obscure languages. +- **Cost**: Free and open source. +- **Extensions community**: None. + - **Language server support**: No. + +Find out more: https://coteditor.com + +### Cursor + +All the cool kids seem to love [Cursor](https://www.cursor.com/pricing) right now. It's based on VSCodium (the fully open version of VSCode) with a custom AI assistant extension. Its creators claim they did this for technical reasons, but I suspect it's more financial. The custom AI functionality aside, it's basically the same as VSCode, but I include it to prevent comments from people asking why I didn't include it 😁. + +- **Configuration options**: Comprehensive. +- **Architecture and performance**: Cross-platform. + - **System Integration**: None. +- **Supported languages**: Same as VSCodium. +- **Cost**: 0 - $40 per user per month. +- **Extensions community**: Same as VSCodium. + - **Language server support**: Yes. + +Find out more: https://cursor.sh + +### BBEdit + +Another macOS classic, I thought it was worth looking at [BBEdit](https://www.barebones.com/products/bbedit) and seeing how it compares to modern tools. There's been little better on macOS for a long time for text editing, processing, and manipulation. While it's not as optimised for more IDE-like functions, with a little tweaking and rethinking, thanks to its recent support for language server protocol, you can use it for some basic code work. I also particularly like its newer Jupyter notebook style worksheets feature for terminal command and AI experimentation, as you can then work with the output straight into a text file. + +- **Configuration options**: Comprehensive and plenty of text options. +- **Architecture and performance**: Cross-platform. + - **System Integration**: Applescript and more. +- **Supported languages**: I can't find a list, but lots. +- **Cost**: $59. +- **Extensions community**: Yes. + - **Language server support**: Yes. + +Find out more: https://www.barebones.com/products/bbedit/ + +### Fleet + +In my opinion, [JetBrains Fleet](https://www.jetbrains.com/fleet/) is the company's attempt to make a VSCode beater. Something lighter than the rest of their IntelliJ family but customisable and extensible. Fleet has been in beta for a while and still lacks some functionality, but if it ever becomes a full product, it could be a worthy competitor. It also bundles JetBrains' new AI and remote collaboration features. + +- **Configuration options**: Comprehensive and plenty of text options. +- **Architecture and performance**: Cross-platform, high resource usage (still beta). + - **System Integration**: None. +- **Supported languages**: Most popular and less popular options. +- **Cost**: Free during beta. +- **Extensions community**: Coming soon, I am unsure if Fleet will use the same as IntelliJ. + - **Language server support**: Yes. + +Find out more: https://www.jetbrains.com/fleet/ + +## Honourable mentions + +Here are a few I missed, either because I ran out of time, they were too single-purpose, or for some other reason. + +- **[Sublime](https://www.sublimetext.com)**: I plain forgot to include it! Again, I feel like maybe others have covered it enough in the past, and it hasn't changed enough in recent years to warrant inclusion. It still has many fans and users. +- **[Kakoune](https://kakoune.org)**: It looks interesting, but for me, it fits into the same world as emacs, vi, nano, etc. Feel free to pile on the criticism, but I don't like writing in the terminal. +- **[CudaText](https://cudatext.github.io)**: It's written in Pascal! CudaText also has many of the features I'm looking for but it didn't look OS-native enough for me. +- **[Helix](https://helix-editor.com)**: Similar to Kakoune, it looks great, but I don't want to write in the terminal. +- **[Adoc studio](https://www.adoc-studio.app)**: I've covered adoc before, and it's great, but it only works with Asciidoc, so if that's all you use, fantastic, check it out. + + + +## Would I switch? + +So the question at the end of every listicle is whether the writer would change what they use. For text manipulation, maybe. I really liked CotEditor and BBEdit. I especially liked some of the new features in BBEdit. For example, to use its language server support, you don't need an extension, you just run the plain language server, which, while complex, is tidy. Also, the worksheets features are particularly fun to experiment with. And the font rendering in CotEditor is amazing. + +When it comes to IDE-style tools, I am less sure. VSCode has many issues, but the extension community is more extensive than any other tool. Granted, many of the extensions are abandoned, and forking them is not always seamless, but it's a start. Ideally, I'd love a project that was more OS-native but supported VSCode's extensions API in a similar way to how the productivity tool Raycast runs as a native application, but you can create extensions with JavaScript that are fairly performant and sandboxed. This may be the approach Code Edit could take. + +Generally speaking, I will probably not switch my IDE quite yet, but I remain IDE-curious. You? diff --git a/src/content/posts/2024/immutable-operating-systems-future.md b/src/content/posts/2024/immutable-operating-systems-future.md new file mode 100644 index 00000000..e9dde510 --- /dev/null +++ b/src/content/posts/2024/immutable-operating-systems-future.md @@ -0,0 +1,17 @@ +--- +title: "Are the operating systems of the future immutable?" +publishDate: 2024-09-06 +author: "Chris Ward" +publication_url: "https://thenextweb.com/news/immutable-operating-systems-future" +categories: + - writing +tags: + - Operating systems + - Immutable + - NixOS +image: "../../../assets/images/articles/immutable.jpeg" +--- + +Developers talk a lot about “immutability.” Outside the technical world, it usually means something negative: unmoving, inflexible, and entrenched. However, in the technical field, these features become an advantage and mean that a system is reliable and reproducible. + +Like many concepts and trends in technology, it’s nothing new. NixOS (more on it later) has existed for over twenty years, and ChromeOS is probably the most widely used immutable operating system (OS). However, the widespread adoption of containers with Docker just over 10 years ago brought the concept to broader attention. \ No newline at end of file diff --git a/src/layouts/PodcastLayout.astro b/src/layouts/PodcastLayout.astro index 2968a00f..6649263e 100644 --- a/src/layouts/PodcastLayout.astro +++ b/src/layouts/PodcastLayout.astro @@ -7,7 +7,6 @@ import { Image } from 'astro:assets'; import { type CollectionEntry } from 'astro:content'; import truncateMarkdown from 'markdown-truncate'; import { MetaSEO } from '~/types'; -import { Debug } from 'astro:components'; export interface Props {} @@ -82,7 +81,8 @@ if (podcast.title.length === 2) {

-
+ +

Listen and download

{podcastID ? diff --git a/src/pages/cv.md b/src/pages/cv.md index 04077bf4..a01f0a5f 100644 --- a/src/pages/cv.md +++ b/src/pages/cv.md @@ -21,7 +21,7 @@ Long-form (technical) writing - Edited three books for Packt publishing. - Technical editor for four books with Manning. - "Technical Writing for Developers" for Packt publishing, released in March 2024. -- Working on a book on Ableton Live 12 for Packt publishing. +- Working on a book on Ableton Live 12 for Packt publishing. (Cancelled) - Working on a book on Sustainable computing for Apress. ### Courses @@ -37,7 +37,7 @@ Over the past 4-5 years, I have spoken at over 100 events on a wide variety of s ### Podcasts and Video -- My 8+ year-old podcast, "Chinchilla Squeaks". +- My 8+ year-old podcast, "Chinchilla Squeaks", recently renamed to "Tech Lounge". - My YouTube channel is also now monetised with regular sponsorships. Find links to all these at [chrischinchilla.com][2]. @@ -50,46 +50,20 @@ I have always been active in open source communities, including regular contribu - I run the Write the Docs meetup in Berlin and have organised other meetups in the past. - I was on the organising committee for the 2018, 2019, 2020, 2021 EU, and 2019 Australian Write the Docs conferences. -- I co-organised the "Tool the Docs" devroom at FOSDEM in 2018, 2019, 2021, and 2024. +- I co-organised the "Tool the Docs" devroom at FOSDEM in 2018, 2019, 2021, 2024, and 2025. - I was a judge for the Mozilla open source awards in 2020. -- I run the Berlin Shut Up & Write© meetup with over 3,500 members, and thanks to the co-organisers, we run meetups almost every day. +- I run the Berlin Shut Up & Write© meetup with over 3,500 members, and thanks to the co-organisers, we run meetups almost every day. It is the largets chapter in the world and I was recently invited to speak at the community symposium. ## Work Experience -### Docker, Staff Technical Writer - -_February 2023 - August 2023_ -Docker Inc is a major contributor to many container-related technologies and its own commercial offerings. I was a staff technical writer on the documentation team and was attached to working on a number of commercial products. My responsibilities included: - -- Working with product managers, engineers, and designers to create and maintain documentation for new and existing products -- Proposing and steering new improvement projects -- Editing and reviewing submissions from internal and external contributors -- Liaising and working with our developer relations and marketing teams for collaboration ideas -- Writing technical blog posts for products -- Providing guidance, mentorship, and feedback - -### Chronosphere, Senior Technical Writer - -_August 2020 - September 2022_ - -Chronosphere is the steward for M3, the highly available time series database, and its commercial offering. I was the sole tech writer for both projects, and my role included: - -- Overhauling documentation and documentation platforms -- Documenting new features as they developed -- Creating and maintaining a style guide and automated style-checking tools -- Creating and maintaining tests, screenshot generation, and other documentation tools -- Editing and reviewing submissions from internal and external contributors -- Liaising and working with our developer relations and marketing teams for collaboration ideas -- Responsibility for metrics, planning, and delivery of documentation -- I wrote a handful of technical blog posts and a monthly Observability newsletter -- I hosted several video series interviewing staff members and external experts - ### Freelance Technical Writer, Blogger and Developer Relations _March 2017 - Present_ -As a freelance writer and blogger, I have contributed to the blogs and documentation sets of multiple technical companies. These ranged from small cutting-edge startups to large enterprises. Clients and work include +When not working full time, I work as a freelance writer and blogger, I have contributed to the blogs and documentation sets of multiple technical companies. These ranged from small cutting-edge startups to large enterprises. Clients and work include +- **Parseable**: Technical blog posts and videos. +- **Aspect**: Documentation and documentation tooling. - **libcamera**: Documentation of an open-source camera stack and framework for Linux, Android, and ChromeOS. - **Dev Spotlight**: Technical blog posts for Salesforce, Kong, and others. - **ReveCom**: Technical blog post editing for high-profile clients. @@ -115,6 +89,34 @@ As a freelance writer and blogger, I have contributed to the blogs and documenta - **KILT**: Working on documentation for the decentralised identity platform. - **Slint**: Overhauling documentation for this cross-platform development tool. +### Docker, Staff Technical Writer + +_February 2023 - August 2023_ +Docker Inc is a major contributor to many container-related technologies and its own commercial offerings. I was a staff technical writer on the documentation team and was attached to working on a number of commercial products. My responsibilities included: + +- Working with product managers, engineers, and designers to create and maintain documentation for new and existing products +- Proposing and steering new improvement projects +- Editing and reviewing submissions from internal and external contributors +- Liaising and working with our developer relations and marketing teams for collaboration ideas +- Writing technical blog posts for products +- Providing guidance, mentorship, and feedback + +### Chronosphere, Senior Technical Writer + +_August 2020 - September 2022_ + +Chronosphere is the steward for M3, the highly available time series database, and its commercial offering. I was the sole tech writer for both projects, and my role included: + +- Overhauling documentation and documentation platforms +- Documenting new features as they developed +- Creating and maintaining a style guide and automated style-checking tools +- Creating and maintaining tests, screenshot generation, and other documentation tools +- Editing and reviewing submissions from internal and external contributors +- Liaising and working with our developer relations and marketing teams for collaboration ideas +- Responsibility for metrics, planning, and delivery of documentation +- I wrote a handful of technical blog posts and a monthly Observability newsletter +- I hosted several video series interviewing staff members and external experts + ### Ethereum Foundation, Technical Writer _August 2018 - August 2020_ diff --git a/src/pages/cv.pdf b/src/pages/cv.pdf index 3ce74bcc..75ab8f98 100644 Binary files a/src/pages/cv.pdf and b/src/pages/cv.pdf differ diff --git a/src/pages/links.astro b/src/pages/links.astro index abc8516b..c1359546 100644 --- a/src/pages/links.astro +++ b/src/pages/links.astro @@ -44,7 +44,6 @@ const links = await fetch(" https://api.raindrop.io/rest/v1/raindrops/45559645?s