30 December 2025
Working on Are.na canvas to refresh my brain on concepts on how to make a draggable + canvas based tools. Going to make the interface for the publication tool a node based interface. So this is sort of the first draft/testing space for that.
I do wanna do a writeup for this... we'll see how that goes based on how much time I have in the coming days.
I need to add a search for channels, authentication and saving canvas data to channel to finish and publish this. Maybe clean up the UI and add some info too.
See more28 December 2025
As this year is coming to an end, I'm sowing seeds for the next year. I started writing.a-p.space, this is mostly going to be a space akin to this feed where I can document, and formulate ideas. So I can look back on these, reflect and iterate.
Found this excerpt from Tom Macwright's recent blog post
28 December 2025
Will make use of the open file format spec'd by Obsidian. This should potentially have interoperability with obsidian.
Making a post about this also over at research.if-m
See more16 December 2025
Some way to know when people visit this page. I don't want to do tracking of any kind, just some kind of acknowledgement or something that there is a presence in this space. Maybe its a button that viewers can click to be like, "Yo"
A comment system of some kind perhaps?
Link to other posts on the feed as references. This should be easy to implement as all the images and videos are already block references. For here I could link another block that probably talks about how this feed works on are.na or smth
Also wanna do a recap of this year. Things from this feed, things not on this feed, general reflection of tying things up and where to go as the new year approaches.
16 December 2025
I've been working on this for a month. but essentially this was the problem:
27 November 2025
Added project pages, you can probably see this on the right here ->
There's also some new view options. There's a list option which will display only the first line of each block. And if you click it you can visit the block as a page. The block pages don't have any css as of yet but will add these soon.
Hopefully this will be useful if I wanna link specific posts...
Something I wanna add here is a way for people to let me know they were here :) See more
27 November 2025
As you may or may not know, this feed runs on
are.na
... another thing you may or may not know is that I have a self imposed constraint to have no javascript on this feed. So how do I add categories?
See more
21 November 2025
About 8000+ words incoming and some images.
Thinking names for the tool.
Pagemaker (already taken,,, adobe will sue) See more
20 November 2025
I've been off instagram for almost the past 3 years. And I'm extremely happy with that decision and it has brought nothing but joy to me. However I think I need to interact with it for professional reasons.
So I've been thinking of alternative ways I could use it. One approach was Amir mentioning how he would have a system to only check and update it on one day in a month. So all stuff would get posted then. That I thought was interesting.
The one I just thought of was maybe, all the content and posts point outside of instagram. So for instance all of them are screenshots of my feed.a-p.space or website sketches. Or links to other peoples websites, etc. The whole point would be that these would all point outside of instagram. A link in bio interface that could open like instagram feed view and have links mentioned in each of the posts for easy access, so it is easy to get out of instagram as you enter it instead of being trapped in it.
This is an idea for an experiment. Perhaps I'll try it out.
See more20 November 2025
Presented a breakdown of the parts that constitute this publication tool I've been working on. So presented it as a library of functions written down as an interrogation of a typographic vocabulary.
It was super fun. Made some new friends who I'm hoping to work with and excited to talk to :)
The presentation site is visible here:
See more
3 August 2025
Was working on this tool last semester, and recently need it for another project where I need to make a publication (a menu) where pages are offset vertically and horizontally.
Finally got it all to work together nicely and have a live feedback/ui to change these offsets and quickly test out different possible layouts.
See more29 May 2025
Essentially the website is static site generated, same as jekyll or something. There is three parts to this process. HTML is written in input.html, the HTML in that file is embeded with javascript. Essentially this file is parsed and generates an output.js file that generates the index.html.
The syntax of input.html is as such:
29 May 2025
Playing around with static site generation. Here is a basic draft I made for a static site generator which basically compiles to a js file.
Trying out a programming paradigm where I try to think of the most simple raw solutions, like just putting js inside html, that makes a js file that accumalates a string and performs conditionals and for loops. The cool part is I don't have to implement any of that, I can leverage javascript as it is into this. So I get functions, loops, conditionals, all of it for free!
+-> Templating also allows to template over js code :)
Also trying to do more things with css rather than js... here is a toggle that changes grid size based on html attribute, the js code here only toggles the attribute, everything else is css... Thought this was cool :)
See more23 May 2025
Playing around with emacs in preparation; planning to do the SICP course in summer.
See more14 May 2025
So here is what I came up with in the last 24 hours...
Pretty neat right?
See more13 May 2025
The eventual goal is also to write a CMS + Static site generator in C that will be the backend for this feed.
Will be adding tags and stuff to organize it better.
And perhaps if it goes well will fork it to make a blog for myself!
See more13 May 2025
2 weeks later, I have more free time now, so will be doing some stuff to learn how these computer thingies work.
Hoping to learn more about computers by playing with low-level languages (C for now).
Today's challenge is to make a snake game using ncurses (c library that lets you work with the terminal).
So essentially you have a Col(x)Row space and a concept of windows. And then you draw to this virtual window and call refresh to draw on the screen. So yeah, will be using ncurses and try make a snake game in a day? maybe 2... Lets see. Will update here on the progress.
See more23 April 2024
ok back at it. let see what I can finish in the next 3 hours. Crit in 12 hours.
See more22 April 2025
I was supposed to make a series of these, to explain the grid-structure, hyphenation, drawing line, overflow, imposition, etc but its 1am and I'm only 3 pages into the first one :)
I guess it's not gonna work out...
See more21 April 2025
The typsetter now export imposed spreads (print booklet). If I know which page will be on which sheet, I can consider alt bindings, for instance printing one of the sheets on blue paper and stitching it with an offset of an inch.
I introduced a viewport into the program so it can render this offset page. It handles coloring it and offsetting it while designing. When exported to print, the printer will switch out paper color for the given sheet.
Here is an example comparison of digital view and the printed counterpart.
See more11 April 2025
As book spreads in the typesetting tool I've been working on. The text and title is derived from are.na blocks and I have a function that turns the blocks into book spreads.
I update the current index and refresh to go next or prev.
Live edit mode:
See more22 March 2025
Wondering if I could implement a paragraph styles, text overflow etc stuff and make a basic indesign clone...
See more5 March 2025
Until now if you wanted to load a file in the editor, you used the loader-object. Where you would enter the file path and press enter.
I added url based file loading today. It would have been super easy if the editor had a base url. Currently I have multiple versions of the editor as files that I can open and run them through /fs-run/* endpoint.
Anyways, so if I want to run editor five I go to: (url)/fs-run/editor/five.json
See more3 March 2025
The feed is also a workshop.
If I port the feed to the editor, I can workshop blog pages. For instance I can start with combining feed posts, or writing one long feed post and exporting it as a webpage. And I can edit and refine the blocks on feed.a-p.space. Sanchari used a term called "soft-studio" I'm wondering if I can think of Feed as a "soft-studio".
See moreNotes.
what kind of things do you notice making your own tools. When you're building entireity of functionality and tweaking each single detail, what kind of thoughts cross by:
Eg. Oh I really wanna be able to click this block to be active
which would be a note on me expecting -> (mouse and keyboard to work in coherence)
The thing come out of this would be 1. just an archive of ui/ux research kind of notes, but framed as my personal inclinations and how I incorporate them + 2.it would also be documentation for anyone else to learn and lastly the presentation of this documentation would be awesome to do in the editor, as -> editor views.
See more1 March 2025
This is any interesting pattern:
setContext and getContext • Svelte Tutorial
I wonder if I can implement something like JSX now that I have a render list. Also need to see if I can write a Lezer grammar for that.
I also need to make a trello board for these tasks. I think I should do color library and this trello board thing next in my editor.
See more1 March 2025
Also would like to implement something like this in the editor.
Theatre.js - animation toolbox for the web
I thinking looking into the architecture of theatre.js would be really nice because it seems to have very similar workflows as I have been working with the editor, namely these:
Editor edits state
State can be used independently
1 March 2025
##########################
drafting/inprogress
##########################
So I got the editor to See more
28 February 2025
I love this guy's editor (towards the end)
Basically made his own touch designer but writes assembly + gui components? Pretty rad. Also references Uxn and the 100 rabbits stack. Dance stuff in the beginning was interesting too, how he thinks of composing through directed graph functions .
See more13 February 2025
This was nice to see, she talks about masculinity in the tech... Made me rethink some ways I have been thinking about programming.
See more12 February 2025
The goal today was to get LSP/intellisense/autcomplete working. So I can get tooling over the code. Tsserver is a package maintained by microsoft that lets you create a virtual filesystem in the browser and get diagnostics, completions, linting, refernce trees and basically tooling over your code. I had seen this was possible before but it is a whole task to set this up. So I started by getting this tsserver connected to the editor. This took much longer than I would have wanted it to.
The main issue with connecting the tsserver to the editor was reconciling the splitting of the file. The main function of the editor is to give you components that add up to the file. So a file is split up into smaller self contained chunks. This works all and good till the tsserver returns a {from, to} position for the diagnostics.
See more12 February 2025
(B)it
^
|
See more
10 February 2025
See more9 February 2025
I implemented saving and outputing html files and a mechanism to traverse levels. Just have to make it a little smoother to work. Right now its very jaggedy, mostly because I don't know how it should work.
The current implementation outputs the html file with a SOURCE_PATH variable which can be used to navigate back to the source files. I think this is the way to do it.
Also re-watched Nada Amin's See more
31 January 2025
was a little loose, so I got the gears to be tighter together. They're still a little loose than what I would have wanted it to be but they work pretty well.
using one hand for one direction, and vice versa — if for instance this was controlling animation, one hand would be reverse and the other would be forward...
See more8 February 2025
This was already in theory possible, but rewrote the editor for it to be a much simpler implementation and then ran the editor in the editor
Have a way to output a new editor from the editor
3 February 2025
I started the crafting interpreters book yesterday. It takes you through writing a compiler+interpreter in first Java and then C. I'm going to be following the book with Typescript and Zig.
Wrote the implementation of a REPL and a Lexer yesterday that reads through the text and produces a Token stream:
See more28 January 2025
Yesterday I fell into a rabbit hole. I was going through permacomputing writings and there was a section on programming See more
25 January 2025
As some of you may know I have been working on an Editor. I won't go in depth to explain exactly what it is, but essentially its a code editor that outputs to an iframe, and the idea is to be able to make it modular and interoperable and be able to edit the editor itself as you work in it.
I've been struggling to figure out what to name it, but after careful consideration, I have decided to name it editor.
I think the non specificity of what kind of editor it is, is interesting. It can be a code editor, but it can also be a photo editor or a vector editor or a json editor or a pdf editor, etc etc.
Also thinking, as a designer I think it would be cool if we could have a basic engine kind of thing for graphics and then we could just design our own tools. For instance game (engines) design tools are just gui based programming that make it super easy to make a game. So what if we had software that were graphic engines in this sense and you tinker it to fit your needs project to project and have some barebones versions for getting started as well.
See more25 January 2025
Calendar systems are so intriguing and complicated. I've been researching these different systems with all these different variations and the crux of most of them have been:
Using celestial bodies (Sun, Moon and Constellations) as markers of time
In order to anticipate and predict seasons for festivals and agriculture (festivals heavily linked to agriculture).
Reconciling the inconsistencies between orbitting of moon around earth and earth around sun. (Leap years and such)
Its also really cool to see how advanced these time keeping technologies were so early on (2000 years ago they had an accurate estimate of earths orbit time down to seconds).
See more24 January 2025
I've been intrigued by gears and other forms of tangible mechanics and I'm hoping to start exploring these for my Independent study this semester.
Laser cutting at the Xfab studio is super cheap so I'm thinking just finding wooden scraps and cutting out various sizes of gears so I can modular-ly use them and make interchangeble mechanics that can be used with arduino/computer-vision/sound.
I did a first attempt at making a wooden slider today:
See more25 January 2025
This is fuckin cool
2 things
it is a mechanical-digital calculator
yes, mechanical and digital. Digital being all computation is binary, the values in the gears cannot be between 1 and 2 or 7 and 8 etc, it can only be 1 or 2. The discrete nature makes it digital. He talks about certainty mechanisms like using ball bearings and springs to make sure there are no middle values, etc.
22 January 2025
Added Link styles to feed & added a no javascript checkbox! -> that changes size of the divs.
Its a trick where you can use checkbox :checked psuedoclass and use the sibling selector : ~ to select neighbouring elements and change their css. No js required :)
21 January 2025
Wanted to do this as an exercise+practice in static site generation. Maybe even an opportunity to make a static site generator.
While making this, as you can see above on the right, I highlighted comments all of which start with SECTION mark. Wondering about a Neovim shortcut which will jumpstart a regex search See more
20 January 2025
The colors on the sliders are misleading because it isn't really reading the color, but the grayscale values, so in theory all of them can be grayscale and it would still work.
TODO: abrupt progression instead of smooth gradient. Gradients with stops and what not.
Questions: See more