TabFS, Regex, and Big Sur
EthicalAds is a new privacy-respecting developer-focused ad network. If you're looking to monetize your OSS projects while respecting your users privacy, or get in front of an audience of developers, check it out. Publishers & Advertisers wanted.
TabFS is a browser extension that mounts your browser tabs as a filesystem on your computer.
last commit: January 09, 2021, first commit: November 10, 2018
awesome-regex is a curated collection of awesome Regex libraries, tools, frameworks and software.
stars: 866, watchers: 46, forks: 118, issues: 16
last commit: October 14, 2020, first commit: May 21, 2015
stars: 2645, watchers: 179, forks: 773, issues: 4
last commit: January 06, 2021, first commit: January 02, 2021
Apple open-sourced the Big Sur modules this week. Their manager of Kernel engineering posted a walkthrough explaining how to build and run the kernel from the sources here.
If you’re interested in posting a help wanted ad for your project, send an email to firstname.lastname@example.org
How do you separate good project ideas from bad ones?
I’m interested in things that could only have come from my head, that grow out of some strange interest that I have a history with. That creates an emotional commitment that helps me to keep working on it; it shouldn’t be like I just picked the idea out of a hat. In the case of TabFS, I’d spent a while playing with Plan 9 and the Acme text editor, and I’d wanted to take some of these old radical computing ideas and apply them to a contemporary use case.
Also, I’m always interested in projects that have some sort of charismatic demo (both for me – so I’m compelled to keep working on it – and for the audience). A good sign is when people laugh when they see it, not because it’s funny exactly, but because it’s somehow surprising and clever… And I think people anchor onto a concrete demo in a way that they won’t if you just tell them about ideas or principles in the abstract. Demos can really sway people; they can be powerful arguments.
How did you hear about Plan 9 and the Acme text editor?
You know, I'm not sure! It comes on Hacker News and on Twitter from time to time, I guess. I've been vaguely aware of it for a few years, I've played with the 9front distro on a Raspberry Pi, I've used acme as my main editor for a few months before.
If you plan to continue developing TabFS, where do you see the project heading next?
I left some personal TODOs I had in mind on the Web page. I would say that there are 1. ‘frontier’ things that extend what TabFS can do / what synthetic files it presents: bookmark management, window management, live programming and inspection of Web page state, scraping tools, etc and 2. ‘implementation’ things that a lot of people have asked about: porting to Safari, to Windows, making the install process easier, fixing bugs, stuff like that.
I see TabFS as a platform where people can do lots of different things on top, so I also want to think in terms of how to enable more of that. I was excited to see the first example of this recently: Junho Yeo did a proof of concept on top of TabFS that can find what’s currently playing on YouTube Music.
Is TabFS intended to eventually be monetized if it isn’t monetized already?
I’m still thinking about this. I’ve been really happy with the public response, but it’s hard right now for me to justify investing more time to push it forward (respond to bug reports, merge pull requests, and especially do new creative work on it).
TabFS is interesting because, in a lot of ways, it doesn’t quite work yet, unlike most popular open source projects; it’s a proof of concept that people are excited about, not infrastructure that anyone can rely on yet. So I hope to have an update about this question soon.
Where do you see software development in-general heading next?
Hmm. To be honest, I don’t think all programming should be ‘software development’. I want to push for ways to program computers that aren’t necessarily about building ‘software’.
Spreadsheets, data science, end-user customization, scripting, prototyping, macros, scientific computing are all examples of programming that aren’t making ‘software’, the way I see it. When you’re working in these modes, you have different goals from an engineer in a team working on a software product.
And I think there should be more programming tools that cater to those goals: maybe you want to just splat everything in one file, so you can sketch out a program really quick. Maybe you want to use global variables everywhere so you don’t have to carefully wire everything up to communicate (and because the whole program fits in your head anyway). Maybe you don’t care about security, because the program will only ever run on your computer. Maybe you only plan to revisit your program every few years, and you want a stack that’s simple and stable that you won’t have to constantly keep up to date.
Where do you see open-source heading next?
One thing I want to do with TabFS is push for a much higher level of user comfort with the source code – a literate user base. I think that ‘open source’ often doesn’t really live up to its billing, where yes, the source is available, but users don’t actually feel comfortable looking at it, let alone modifying it themselves.
I’ve tried to keep the code simple and legible – it’s practically just two files, a thousand lines of code or so – and to explain upfront how it works, but I’d like to do more. For example, I want to look into making a custom UI to display the code according to its specific structure. (I talk a bit about this in a footnote on the site.)
My ideal is that someone using TabFS would know how it works to the point where when they’re using some feature (some synthetic file), they at least know exactly where it’s implemented in the source code. This is partly a philosophical thing for me, but I also think it could save a lot of effort on documentation (if you want to know what the system can do, you should just look at the code) and on configuration (if you want to change what it does, you should just change the code).
Do you have any suggestions for someone trying to make their first contribution to an open-source project?
I’m not sure. I do think ‘open-source project’ is sort of a weird catch-all term; there are a lot of different kinds of projects and different ways someone can contribute. Personally, I tend to start projects rather than contribute to existing ones, and I think that actually involves very different skills.
I will say that I think a surprising amount of it is about human relationships and culture. What is the aesthetic of the project? What are the unstated rules and goals? How do the maintainers want to relate to the community? Becoming a contributor to a project is sort of about trying to integrate with that project’s distinct culture, and you can follow all the rules on paper while still failing to really get it.
Like what you saw here? Why not share it?
Or, better yet, share Console!
Also, don’t forget to subscribe to get a list of new open-source projects curated by an Amazon software engineer directly in your email every week.