Minifeed is a curated blog reader and blog search engine. We collect humans-written blogs to make them discoverable and searchable. Sign up to subscribe to blogs, follow people, save favorites, or start your own blog.
About me
aarol.dev | 1 Jan 2001 | original ↗

👋 Hi, I’m Aaro # I’m a 20-year-old living in Finland, currently studying computer science at Aalto University. 🦀 Favorite programming languages # Go Rust Typescript C++ 🎮 Favorite games # Team Fortress 2 Monster Hunter: World Warframe Terraria 🖥️ Setup # AMD Ryzen 3600x with 16 GB RAM, RTX 3060 Ti Visual Studio Code Obsidian.md 📮...

About Me
ugur | 1 Jan 2001 | original ↗

Full-stack software developer with a B.Sc. in Mathematics from Bilkent University (2023). I’ve been building software since 2015 and working professionally since 2021. I am a developer with a hacker’s mindset. I dive deep into the technologies I use and study the philosophy behind them. I use Arch Linux NixOS as desktop OS, Vim to edit and write,...

Research

I obtained a PhD (2009 - 2011) in Artificial Intelligence & Computational Linguistics from the Middlesex University, London, under Dr. Christian Huyck. My thesis—“Modelling Emergent Phenomena in Associative Memory with Neural Cell Assemblies”—dealt (PDF) with the dynamics of associative memories modeled in in neural Cell Assemblies.

Personal projects

This page lists some of my personal projects. Projects on GitHub (Gitea mirror) Nov 2023 floatype.js A tiny, zero-dependency, floating autocomplete / autosuggestion widget for textareas. Aug 2023 autocomp.js A super tiny Javascript autocomplete / autosuggestions library.

Contact

I can be reached at kailash@nadh.in

Reading files can't be that hard, right?
nickb.dev | 1 Jan 2001 | original ↗

Let’s create a file input and chunk into 4MB chunks input type="file" onchange="processFile(...arguments)" /> script> const CHUNK_SIZE = 4 * 1024 * 1024; function processFile(e) { const file = e.currentTarget.files[0]; const start = performance.now(); const fileSize = file.size; for (let i = 0; i fileSize; i += CHUNK_SIZE)...

Top posts

These are some blog posts which have gotten a disproportionate amount of traffic (10,000+ page views): 2022 We are still early with the cloud: why software development is overdue for a change 2021 Storm in the stratosphere: how the cloud will be reshuffled Building a data team at a mid-stage startup: a short story Software infrastructure 2.

Open source

I like building software, and below are some open source projects I've built during my time at Better or Spotify, along with some things I built in my spare time. Most of it is not on my personal Github, so I've compiled it here: Annoy Annoy is a C++/Python library to index and retrieve vectors in...

Home

Introduction I am currently working on various startup ideas. Until recently, I was the Chief Technology Officer at Better where I managed a team of about 300 engineers. In the last 10+ years, I have focused on engineering management, recruiting, building consumer technology, machine learning, and math. My professional experience goes back to 1999, which was my first professional gig as a software...

Home

Contact information ️20 West Street, #23DE, New York NY 10014 917-‍940-‍8790 Swedish citizen, green card holder Introduction I am currently working on various startup ideas. Until recently, I was the Chief Technology Officer at Better where I managed a team of about 300 engineers. In the last 10+ years, I have focused on engineering...

Domains for sale

Contact me at mail at erik bern dot com!

About

I live in NYC and I am the founder and CEO of Modal Labs which is exploring ideas related to data and infrastructure. From Feb 2015 to Jan 2021, I ran the (300-person) tech team at Better.com – a company rethinking how mortgages are done. Before Better, I was at Spotify for 6 years. I spent 2.5 years in Stockholm...

Reminder
Jairo Jair | 1 Jan 2001 | original ↗

Be kind Drink water Take a break Make exercises Eat healthy Sleep well

About
Jairo Jair | 1 Jan 2001 | original ↗

I’m a software engineer with a keen understanding of the business dynamics ‘behind’ the code. Over the past 15 years, I’ve had the privilege of working on a diverse range of cutting-edge projects, each presenting unique challenges and opportunities for innovation. Github Bsky Linkedin

Resume
Gabe Venberg | 1 Jan 2001 | original ↗

Contact info Personal Git Server GitHub Email Professional Summary 2 years of experience as a software engineer 1 year of experience with embedded Linux. Bachelors of science in computer science. Contributor to Python programming language standard library. Experience working across 8+hr timezone differences. Skills Summary Programming Languages:...

About
Gabe Venberg | 1 Jan 2001 | original ↗

Hi There! I’m Gabe Venberg. Professionally, I’m a newly minted computer scientist, with interest in embedded software, OS development (and anything backend, really), and strongly typed languages (🦀). Unprofessionally, I’m a general nerd, ever tinkering on my 3d printer, learning embedded systems programming, building split keyboards, managing my...

About

This is my blog. I’m a software engineer that works in “data” (I believe they call that “Data Platform Engineer”) and I usually work on distributed data processing systems, mostly in Scala, Python, and some go. If you got here via the link on my CV, I naturally mean “I develop high-performance, enterprise-grade, world-scale distributed...

Archive

archive

2024

August 31 How to Be a Better Reader - NY Times To read more deeply, to do the kind of reading that stimulates your imagination, the single most important thing to do is take your time. You can’t read deeply if you’re skimming. As the writer Zadie Smith has said, “When you practice reading, and you work at a text, it can only give you what you put...

Blogroll

Anton Zhiyanov Brandon Rhodes Dan Luu Drew DeVault’s blog Fabien Sanglard’s website Harmful stuff Joel on software Julia Evans Preslav Rachev Simon Willison’s weblog

About

Self Ahoy, fellow daywalkers! I’m Redowan Delowar, also known as ‘rednafi’ on most platforms. Circa 2018, a glitch in the matrix slingshotted me from electrical engineering to data science, eventually catalyzing my osmosis into brick and mortar software work. I enjoy exploring system architecture, databases, data analysis, and API design. In my...

About Lane Wagner
Lane's Blog | 1 Jan 2001 | original ↗

I’ve been writing code since 2010, first in Python, then primarily in Go and JS/TS. I’ve spent most of my career as a backend developer and data engineer. After a couple of years leading teams of Go developers, I’m now working full-time on Boot.dev and host the Backend Banter podcast. Get in touch Twitter Linkedin GitHub Email: lane at boot.dev...

Newsletter Archives

I wrote a weekly newsletter from December 2013 until September 2015, and then intermittently until 2018. I shared links worth reading. Read the archives in the Newsletter topic or on TinyLetter.

Follow this blog

An easy way to stay updated on what I’m posting is to follow this blog using your RSS feed reader of choice, like Feedly. Choose the RSS feed that you want to follow. If you want to refine which posts you subscribe to, you can follow a more specific feed or create your own: Follow all posts. Follow only posts about tech writing. Follow only...

About Sarah

I’m a writer working in tech in the San Francisco Bay Area, California, USA. I’m endlessly curious about technical writing / documentation, music, data, ethics in tech and data analysis, a11y, inclusivity, and so much more. Follow me on Mastodon @smore@mstdn.social. Follow me on Github @smoreface. Check out my resume on LinkedIn. Follow me on...

I am looking for work.

My name is Saoirse; people also call me boats. I am an experienced systems developer, excited by complex problems and serious about building technology that is empowering to other people. I am available to work on new projects, full time or part time. I’m open to many different possible work arrangements; I am based in Berlin, Germany. I am happy...

404 Page Not Found

…In that Empire, the Art of Cartography attained such Perfection that the map of a single Province occupied the entirety of a City, and the map of the Empire, the entirety of a Province. In time, those Unconscionable Maps no longer satisfied, and the Cartographers Guilds struck a Map of the Empire whose size was that of the Empire, and which...

Cease & Desist: The Designers Republic
Get Info | 17 Jun 1997 | original ↗

A letter I received from The Designers Republic after creating a font inspired by their work. They chose to order a cease and desist, rather than fostering creativity. Matt Sephton created an original font called Blockout–a techno font that can still be found here. He had used Fontographer. It was, as he put it, influenced by the tDR font in...

FAQ: Micro Machines V3
Get Info | 8 Apr 1997 | original ↗

I wrote a video game FAQ and uploaded it to GameFAQs: gamefaqs.com/console/psx/file/micro_machines_v3.txt

FAQ: Wipeout XL/2097
Get Info | 21 Oct 1996 | original ↗

I wrote a video game FAQ and uploaded it to GameFAQs: gamefaqs.com/console/psx/file/wipeout_xl.txt

FAQ: Hermie Hopperhead - Scrap Panic
Get Info | 4 Sept 1996 | original ↗

I wrote a video game FAQ and uploaded it to GameFAQs: gamefaqs.com/console/psx/file/hermie_hopperhead.txt

FAQ: Choro Q Racing
Get Info | 28 Aug 1996 | original ↗

I wrote a video game FAQ and uploaded it to GameFAQs: gamefaqs.com/ps/572737-penny-racers/faqs

FAQ: Motor Toon Grand Prix
Get Info | 6 Aug 1996 | original ↗

This might be the first entry on this blog, but it’s not quite my oldest content on the internet. For that you’ll need to check out the archive linked to from the bottom of the about page. I wrote a video game FAQ and uploaded it to GameFAQs: gamefaqs.com/console/psx/file/motor_toon_gp_2.txt

Why case classes are better than variant types
baby steps | 1 Jan 1 | original ↗

One of the better features from functional programming languages are variant types (a.k.a. algebraic data types). Basically they are a way of enumerating a small set of possibilities and then making sure that you handle every possible case. However, in real world use variant types tend to run into a few annoying problems. While working on the...

Rust without implicit copies
baby steps | 1 Jan 1 | original ↗

I just posted a draft of a proposal for Rust that aims to eliminate implicit copies. At the moment, it is not the final version; there are some flaws I need to correct. For one thing, I need to address implicit capturing of variables by lambdas. From the introduction: This is a proposal for Rust whose purpose is to eliminate implicit copies of...

Statement-level parallelism
baby steps | 1 Jan 1 | original ↗

The primary means of parallel programming in Rust is tasks. Our task support is good: as good or better than any other language I’ve seen (good support for unique types and unique closures) but we have virtually no support for intra-task parallelism. The classic example is iterating over an array and processing each element in parallel. To be...

Coroutines for Rust
baby steps | 1 Jan 1 | original ↗

I have been thinking about unique closures, one of the last blocker items for the Rust 0.1 release. The original idea of a unique closure was that it should be a closure that can only access uniquely owned state, and which can therefore be sent to other tasks. However, I’ve come to have my doubts about this idea. In particular, a unique...

Rust usability problems
baby steps | 1 Jan 1 | original ↗

I recently implemented a new hashtable module for Rust. This was actually the first piece of code written in Rust which I started from scratch. I ran into some difficulties. Some of these are just things you have to get used to; some might be worth trying to correct. Just not entirely sure which problem falls into which category yet. Cyclic...

Why not modes?
baby steps | 1 Jan 1 | original ↗

Marijn asked me what it is that I dislike about parameter modes. I thought I might as well explain here. For background, today in Rust a function can declare each parameter in one of several modes: By value (++): No pointer is used but the value is not owned by the callee. Therefore, the callee does not need to free it, for example, or...

Sendable functions
baby steps | 1 Jan 1 | original ↗

One of the last remaining tasks for Rust 0.1 is to find a way to address issues #1128 and #1038. The key problem is that, right now, we can only spawn a task with a bare function, which is to say a function that carries no closure or environment. Due to the way that Rust is implemented, this even excludes generic functions. I have been wanting...

Pure blocks
baby steps | 1 Jan 1 | original ↗

I’ve been thinking a lot about “parallel blocks” recently and I am beginning to think they can be made to work very simply. The main thing that is needed is a type qualifier const that means “read-only”. This would be a type prefix with very low precedence, just like immutable and shared in D. The type const T would refer to an instance of T...

Challengines implementing unique closures
baby steps | 1 Jan 1 | original ↗

Update: See the recent post addressing the solution to this problem. I have been trying to implement unique closures—or sendable functions, as I prefer to call them—but I realized that there is a fundamental problem that I hadn’t thought of before. The problem stems from two contradictory design goals: Sendable functions should be movable to...

Partially ordered unique closures
baby steps | 1 Jan 1 | original ↗

On a call with other Rust developers, I realized that I was thinking about unique closures all wrong. I had in mind a total ordering: fn[send] but of course this is not necessary. What is desirable is a partial ordering: fn[send] just as ~ and @ pointers can both be aliased using a reference. Ironically, this is precisely what I proposed in...

Const vs Mutable
baby steps | 1 Jan 1 | original ↗

I keep thinking about parallel blocks although I know I probably shouldn’t; but so long as I write these notes while rustc builds, everybody wins, right? Anyhow, pcwalton and dherman yesterday pointed out to me that const is not exactly one of the most beloved features of C++: “const-ification” is no fun, and if we’re not careful, Rust could walk...

Implementing unique closures
baby steps | 1 Jan 1 | original ↗

I landed a preliminary version of unique closures (which I am currently calling sendable fns) on the trunk last night. I wanted to briefly document what I did to alter the design of closures to get this working (of course there is a comment in the code too, but who reads that?). Closures in Rust are represented as two words. The first is the...

Dynamic race detection
baby steps | 1 Jan 1 | original ↗

In the context of thinking about parallelism for Rust, I have been reminded of an older idea I had for a lightweight, predictable dynamic race detection monitoring system based around block-scoped parallelism. I should think this would be suitable for (an extended version of) a dynamic language like Python, JavaScript, or Lua. I will write in a...

Tone and criticism
baby steps | 1 Jan 1 | original ↗

So, I worry that my various posts about Rust give the impression that I’m dissatisfied with the language. It’s true that there are several things I’d like to change—and those are what I’ve focused on—but I want to clarify that I quite like Rust the way it is and I find the overall feel of the language to be very good. When it comes to the big...

Composing blocks
baby steps | 1 Jan 1 | original ↗

The original Rust design included iterators very similar to Python’s generators. As I understand it, these were stripped out in favor of Ruby-esque blocks, partially because nobody could agree on the best way to implement iterators. I like blocks, but it seems like it’s more natural to compose iterators, so I wanted to think a bit about how one...

Block sugar in expressions
baby steps | 1 Jan 1 | original ↗

UPDATE: I found some more complications. Updates inline. I have been working on and off on allowing block sugar to appear in Rust expressions and not only statements. For those who do not know what I am talking about, let me give a bit of context. At the moment, one can write the following in Rust: vec::iter(v) { |e| ... } which is sugar...

Parallel Javascript
baby steps | 1 Jan 1 | original ↗

Lately the ideas for a parallel, shared memory JavaScript have begun to take shape. I’ve been discussing with various JavaScript luminaries and it seems like a design is starting to emerge. This post serves as a documentation of the basic ideas; I’m sure the details will change as we go along. User Model The model is that a JavaScript worker...

Proposed JS parallelism vs actors
baby steps | 1 Jan 1 | original ↗

In one of the comments on yesterday’s post, Tushar Pokle asked why I would champion my model over an Erlang model of strict data separation. There are several answers to this question. The simplest answer is that Web Workers already provide an actors model, though they do not make tasks particularly cheap (it’s possible to work around this by...

Update
baby steps | 1 Jan 1 | original ↗

It’s been a while since I wrote anything on the blog! A lot has been going on in the meantime, both in Rust, parallel JavaScript, and personally…I hate to write a big update post but I gotta’ catch up somehow! Rust First, we made our 0.1 release, which is great. We are now planning for 0.2. The goal is to make frequent, relatively regular...

Cross-crate inlining
baby steps | 1 Jan 1 | original ↗

Cross-crate inlining (CCI) refers to the ability to inline a function across crate boundaries. In Rust, a “crate” is the unit of compilation, rather than an individual file as in C or C++. A crate basically corresponds to a single library or executable, but it may contain any number of modules and source files internally. CCI is important for...

Breaking out is hard to do
baby steps | 1 Jan 1 | original ↗

One of the things I’d like to do for the iteration library is settle on a convention for breaking and continuing within loops. There is a bug on this issue (#1619) and it seems like the general approach is clear but some of the particulars are less so. So I thought I’d try to enumerate how code will look under the various alternatives and then...

Auto-serialization in Rust
baby steps | 1 Jan 1 | original ↗

I’ve been working on implementing Cross-Crate Inlining. The major task here is to serialize the AST. This is conceptually trivial but in practice a major pain. It’s an interesting fact that the more tightly you type your data, the more of a pain it (generally) is to work with in a generic fashion. Of functional-ish languages that I’ve used,...

Task API
baby steps | 1 Jan 1 | original ↗

One of the thorny API problems I’ve been thinking about lately is the task API for Rust. I originally had in mind this fancy and very flexible aproach based on bind. When I spelled it out I found it was very powerful and flexible but also completely unworkable in practice. So here is a more limited proposal. There is a core task API that looks...

Using futures in the task API
baby steps | 1 Jan 1 | original ↗

Brian pointed out to me a nice solution to the Task API problem that I have overlooked, though it’s fairly obvious. Basically, I had rejected a “builder” style API for tasks because there is often a need for the child task to be able to send some data back to its parent after it has been spawned, and a builder API cannot easily accommodate...

Regions-lite...ish
baby steps | 1 Jan 1 | original ↗

I was talking to brson today about the possibility of moving Rust to a regions system. He pointed out that the complexity costs may be high. I was trying to make a slimmer version where explicit region names were never required. This is what I came up with. The truth is, it’s not that different from the original: adding back region names...

Returning refs
baby steps | 1 Jan 1 | original ↗

One commonly requested feature for regions is the ability to return references to the inside of structures. I did not allow that in the proposal in my previous post because I did not want to have any region annotations beyond a simple &. I think, however, that if you want to allow returning references to the interior of a parameter, you need a...

CCI and versioning
baby steps | 1 Jan 1 | original ↗

I’ve been busily implementing the Cross-Crate Inlining stuff, but one area I haven’t looked at much is versioning. In particular, if we are going to be serializing the AST, we need a plan for what to do when the AST changes. Actually, if inlining were only to be used for performance, we wouldn’t really need to have a plan: we could just not...

More...