Home / Ideas / Log for ideas edit
Try Documentalist, my app that offers fast, offline access to 190+ programmer API docs.


Port https://easyigloo.org/ to QuickJS and add UI.

Port libvips bindings from https://github.com/imgproxy/imgproxy to quickjs and Dart FFI to see how they compare.
Might end up with an article or two.

Build web versions of bintools (where it makes sense): https://opensource.com/article/19/10/gnu-binutils

A web and/or Chrome Extension version of https://github.com/sarthology/caligator

Port https://github.com/zodiacon/ProcMonX from C# to either Go / WebUI or quickjs.


A chrome extension to record http requests and pretty-print JSON responses.
There are a view but they all seem to just spy on headers.
Inspiration:
Call it HTTP Mata Hari

Hosted https://visidata.org/ : allow people to drop a file, run a session on the server, show it via xterm.js ui


This UI could be used for apps that present data as a stream of data that can be modified, where each modification creates a new stream, that can be inspected.
For example, a file manager-like utility:
dir "." norecur : returns a stream of files and directories, The schema is: name, type (dir or file), size, path (full path), relpath (path relative to staring dir), permissions, ext etc. norecur is optional and disables recursive listing
size > 1 mb : creates a new stream with only items that fullfulls this predicate
ext.lower == ".png" : creates a new stream where ext property is equal to .png. lower calls lower() JavaScript function.
sort relpath, -size : sorts by name and then reverse size (biggest first)
type == file : removes non-file entries
wc : adds wc.bytes, wc.words and wc.lines properties
select relpath, wc.lines : limits display to only relative path and wc.lines properties
Properties can be chained:
dir "." norecur; size > 1 mb; ext.lower == ".png"; sort relpath, -size; type == file; wc; select relpath, wc.lines


Improve on https://github.com/vjeux/soulver.js (maybe use lezer for the parser, fix bugs, add more features). Some inspiration: https://news.ycombinator.com/item?id=20403270, https://github.com/gabipurcaru/dedo

Implement a grammar with https://lezer.codemirror.net/. Maybe Go.



You can drop a file and we can show which parts of the file belong to a given structure.

File manager inspired by ranger https://github.com/ranger/ranger but made with web technologies. Can be desktop app or web-based.

Web version of https://github.com/gcla/termshark (a terminal ui for wireshark / pcap files, written in Go)

Make https://cloudcmd.io/ a hosted thing. Add more on-line serves, ability to add local drive via Go agent running on the computer.

Make nvAlt-like app on the web. See https://github.com/wincent/corpus (which is Electron-based local app)

Use https://zzz.dog/ to generate app icons. Instead of designing an app icon in vector program, write a JavaScript program that renders to canvas and save the canvas to .png.
This makes it easy to design icons that are made of simple, geometrical building blocs.

Improve on https://codepan.net. It's almost perfect but could use a few improvements:
  • add a /dashboard link which lists pens (local stored in browser and those stored in a gist). This is accessible via Home link at the top
  • improve how gists are stored (currently it's just a single json file; make it multiple files for each type)
  • rewrite in svelte (just for my education)
  • could remodel a bit so that github username and save button are lined with top
  • could then use that as a basis for anotepad site and code eval


Port as much of https://github.com/d2phap/ImageGlass to Go as possible to ensure coverage of Windows APIs.

Make a windows gui app that wraps cv2pdb. Re-use most of fast file finder. https://github.com/rainers/cv2pdb
Then write an article how to debug Go apps on Windows

Port https://processhacker.sourceforge.io/ to Go / walk. This is to make sure the w package is capable enough to do it.

Port one of the React libs to Svelte e.g. https://baseweb.design/

Windows UI for https://github.com/gcla/termshark (a terminal UI emulating wireshark, written in go).

Port the PE parsing logic to JavaScript and make it a web app.
Alternatively make the core operate on the server, return JSON and have the web UI use that to display information.

Write Windows equivalent of https://www.holdr.app/

https://astexplorer.net/ for Go. Could build a service that returns AST for Go program in JSON and gives it to astexplorer. Their other parsers always use JavaScript implementation of a parser.

Port https://gethead.info/ to use cheat-sheet navigation scheme

Port https://30secondsofcode.org/index and https://30-seconds.github.io/30-seconds-of-css/ to use the same navigation scheme as python cheat-sheet

Use either chakra (and only support Win 10) or one of the small JS engines (mujs, duktape).
Generate the bindings using winapigen.
Could also make it into more generic visualization tool for misc system resources like processes. A quick way to make system utilities.

This is an idea for a better code browsing tool.
Have you ever flip flopped between multiple files when trying to understand a large code base?
I did, many types. Even the most advanced code browsing tools, like SourceGraph, are very frustrating when trying to understand code. The issue is this: we're not trying to understand 100 thousand lines of code at once, because that's not humanly possible. We browse the code to understand a tiny portion of a large code base but the tools are not made for that. We can do full text search, maybe with semantic understanding but when the parts of the code needed to understand a given concept spans several files, we must jump between files and loose context.
The idea is rather simple: augment standard search capabilities with a scratch buffer and add ability to quickly add parts of the code that are interesting (either by one-click add of a function / type etc. or select the code and add).
This scratch buffer allows to gather all relevant code in one place.

#notion
Write a previewer for testing notion api requests by using cors proxy cors.io and others. Simple front-end where user can pick which API to call, provide arguments and see JSON result. Inspiration:

#go
Write a tool for visualizing Go binary size. Could be web based on windows / mac app. Or all of them and use web based version to let people try the app but for heavy use direct them to $29-$39 windows / mac app.
Inspiration:
Should also have an option to produce a linear list (or a tree view) or maybe flamegraph

From soundcloud, nice design for showing keyboard shortcuts. Useful e.g. for comic book reader.

Better godoc. Use https://github.com/Unknwon/gowalker bettergodoc, bgodoc

#essentialbooks
Add sorting for tables. Use e.g https://neil.fraser.name/software/tablesort/

mini: write the simplest comic book reader on the web. Use https://github.com/codedread/kthoom and https://github.com/workhorsy/comic_book_reader as a base. combine with pdfvuer for PDF viewing

#blog
mini: improve the article comparing comic book readers on my website https://windowsreport.com/comic-viewer-software/

#sumatraonline
For sumatra online: https://github.com/arkokoley/pdfvuer A good starting point for view UI. It's based on pdf.js.
Ideas for improvements:
  • navigation controls should be both at the top and bottom
  • navigation controls should stay hidden but show up when the mouse is over them or when scrolling or when the mouse is moving (need to experiment to find out the right balance of when to show / not show)
  • maybe a mini-status that shows e.g. current page number, always visible. They key is that it's small.
  • full-screen option
  • obviously needs more features (go to page, different kinds of layouts etc. Everything that Sumatra has
  • more formats

mini: command-line sql query with all the nice ui of numeracy https://www.snowflake.com/blog/numeracy-investing-in-our-query-ui/

#essentialbook
Nice design for showing binary structures or in sql essential book. From https://numeracy.co (now dead)
Other ideas:
  • maybe no need for select, if we have foo, bar and foo and bar are properties, then it knows it's select
  • make quries live i.e. if source changes, the pipeline gets recomputed (e.g. when source is ps
Other possible tools like wc:
  • ps : lists processes
  • windows : list of OS windows
  • allow calling functions e.g. isPE path where isPE is a JavaScript function that takes a path to a file and determines if the file is PE executable and returns a bool If a function returns bool, it's a filter. If it returns an object, it's additional, nested properties. E.g. image path returns dict with information of about an image (or empty if no information) and e.g. image.dx is width of the image etc.
  • various sys-admin-like tools like list of open tcp/ip connections, list of files opened by a given process etc.

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:

Share on        

Need fast, offline access to 190+ programmer API docs? Try my app Documentalist for Windows