Live data from Hacker News

Ask HN: What are some tools / libraries you built yourself?

news.ycombinator.com

331–340 of 617 posts

Re: Ask HN: What are some tools / libraries you built yourself?

#331
I publish an open-source android library called fore: https://github.com/erdo/android-fore A big part of the motivation was so that I didn't have to continually explain the same concepts to new android teams like: the observable pattern, how/why to remove code from the view layer, how/why to write reactive UIs, support rotation and avoid memory leaks (these things were not widely understood 8 or 9 years ago in android land).

Took me a few years to get round to publishing it, but although it never really took off (I am not exactly a natural promoter) - it's still the best way I know of to write capable, easy to maintain android apps - and nowadays the concepts are much more widely understood by your typical android developer.

I still keep it up to date almost 5 years later. It's 20% code: 80% sample apps and docs explaining why it works

Re: Ask HN: What are some tools / libraries you built yourself?

#332
Not sure if it counts, but I made two Roslyn analyzers for C# code. A Roslyn analyzer is basically a C# compiler plugin which can emit additional diagnostics if it encounters a certain pattern in the code being compiled.

One of them lets a developer mark a C# method such that the method must be invoked with named args [1], calling it with positional args is a compile time error then.

And the other makes it a compile time error to discard a marked method's return value [2]. Kind of like it is in functional languages.

Was learning/practicing F# along the way, so the code is probably not so good. But it works :)

[1]: https://github.com/mykolav/require-named-args-fs

[2]: https://github.com/mykolav/must-use-ret-val-fs

Re: Ask HN: What are some tools / libraries you built yourself?

#333
There's ærialbot – while nominally a Twitter bot I created because I wanted to follow it and it didn't quite exist in this form yet, it can be used to download arbitrarily large satellite maps from various services: https://github.com/doersino/aerialbot

Also: UnicodeMathML, a more-or-less-standard-compliant UnicodeMath (a linear encoding of mathematics that leverages Unicode for brevity and plain-text readability that's built into MS Office) to MathML translator – it's the only reasonably feature-complete, web-based UnicodeMath-to-anything compiler I'm aware of: https://github.com/doersino/UnicodeMathML

And various tools around Morgan McGuire's web-based Markdown renderer Markdeep – for creating presentations (see https://github.com/doersino/markdeep-slides), undergraduate theses (see https://github.com/doersino/markdeep-thesis), and drawing diagrams (see https://github.com/doersino/markdeep-diagram-drafting-board).

Re: Ask HN: What are some tools / libraries you built yourself?

#334
I built Backtest[0], the backtesting tool for European index investors, as a way to analyze the historical performance of my portfolio of index funds. US investors can use a tool called Portfolio Visualizer[1], which is really powerful and has tons of different analyses you can run on portfolios. But the funds and indexes that Europeans such as myself have access to are different. And then there's the currency you hold your investments in (USD vs EUR), which has a non-negligible effect on the historical performance.

So I built Backtest to scratch my own itch. It's been growing more or less organically for the past 1.5 years though and currently sees about 500 visitors per day.

I'm thinking about open-sourcing it but I've yet to thoroughly analyze the pros and cons, and decide on important things such as the license.

[0]: https://backtest.curvo.eu [1]: https://www.portfoliovisualizer.com/

Re: Ask HN: What are some tools / libraries you built yourself?

#335
I built lots of tools in the past, and most of them are open sourced and/or available as an archived snapshot via my website [1]

One of the projects I failed to make money with but that I'm still proud of is lychee.js [2] - it used game engine concepts to build a generic graph/scene for "normal" applications.

But the twist is that every state and property can be serialized, deserialized, and reconstructed over the timeline even with differential analysis (e.g. in error cases) or even predictions via tesselation and extrapolation over the multidimensional timeline. It uses techniques similar to flow based programming, but only to be able to vectorize the data in order to make it learnable by neural networks.

I got to a point where backpropagated ES/HyperNEAT was able to understand composite pattern based programming, whereas the entity/components were the adapters for the multi-agent based simulation layer and it could learn all kinds of cool things from layouting up to combinatory things of state management, where the neural networks could iteratively progress up until the final (defined outcome/goal state) was reached. Something like "animate this to that position" or "resort the grid layout based on user interaction" was automatically done within seconds.

The biggest project I built with it was a simulation that was learning the RAPID programming language, and was able to redesign a complete car manufacturer virtual factory, including all variables on the robot cell's code.

Then decided to take this into the cybersec sector, by letting it learn the combinations of exploits and definition/generation of payloads similar to how metasploit does it in a manual manner. Won a DARPA contest by writing an adapter for it, got classified and had to delete at least the AI parts behind it after a long legal battle that I, as a private person, could not sustain.

Suffice it to say I'm not allowed to work on it anymore, so these days I'm trying to fix the peer to peer web with compositional game theory ideas I have in mind for a while now. [3]

[1] https://cookie.engineer

[2] https://github.com/cookiengineer/lycheejs

[3] https://tholian.network

Re: Ask HN: What are some tools / libraries you built yourself?

#336
i often am annoyed with the generality and complexity of existing solutions, and seek something simpler. additionally, that which i cannot build, i do not understand. to summarize: building things, for fun and profit.

agr: https://github.com/nathants/agr

like ag or ack, but with the ability to replace matches or delete lines.

tinysnitch: https://github.com/nathants/tinysnitch

a minimal system firewall for inbound/outbound connections with visual prompts on connections without an existing rule. fails closed.

cli-aws: https://github.com/nathants/cli-aws

a cli for working with aws, particularly ec2 and lambda, that dramatically simplify operations. currently exploring a go port.

bsv: https://github.com/nathants/bsv

a binary data format and composable tools for maximum performance data processing. several tools have triplicate implementations in go and rust for performance experiments. generative testing with small and varying buffer sizes ensure correctness. prototype with pipes, optimize with a single binary (see related posts in readme).

s4: https://github.com/nathants/s4

maximum performance distributed object storage with adhoc distributed computation and data shuffle. duplicate implementations in go and python, for fine grained objects prefer go, for medium and coarse grained, use either. use with ephemeral data and instance local storage (i3en). prefer vendor object storage for durability.

Re: Ask HN: What are some tools / libraries you built yourself?

#337
I have built a few tools for developers:

- Mockit - A tool to quickly create mocked APIs.

- awsicons.dev - Quickly find AWS icons

- EventBridge Atlas - Discover and document your AWS EventBridge schemas

I'm currently building a tool that will hopefully help all open source engineers in the world.

I want to give open source engineers the ability to quickly create landing pages for their GitHub projects.

I think README.md files can only go so far, but (for me anyway) nothing beats a nice landing page selling your open source project.

Not all of us have the time or skills needed to create landing pages so I built https://gitpages.app that can help everyone.

https://gitpages.app is a tool that hopefully can inspire and help open source engineers. It's still in development but if people are interested let me know.

Cheers!

Re: Ask HN: What are some tools / libraries you built yourself?

#338
Some tools I built at my last job:

1. Pronto [0]: An "ORM" that mapped a protobuf to an object in MongoDB. The idea was to extend it to other storage backends (RocksDB, sstable, sqlite, etc) to make it easy for a service owner to decide what access pattern they needed and easily and efficiently map a proto to it. It wasn't too slow and was very intuitive for people to use since it only exposed a LevelDB-like API (Get(key), Set(key, value), List(filter)) and it made use of some of the newer features of MongoDB's libraries to do sorts and streaming on the client side. Really lowered latency and DB size requirements.

2. bazel_compose [1]: A tool to wrap Bazel, rules_docker, ibazel, and docker-compose to give developers a fast, hermetic, and automatically rebuilding/restarting local environment for development. You could essentially go to `http://frontent-a.localhost` in your browser and get routed to the right frontend.

3. branchpoke [2]: When I joined we had ~300 open branches per developer. People would hack something, push it to git, and forget about it. Some branches had critical fixes that were deployed before getting into master. Lovely startup things ;). I wrote this to send everyone a slack message once a week about 10 branches they had open that were over a month old in our monorepo. Over a few months we deleted most of the old branches.

Stuff I built at college:

1. Parking Analysis [3]: My college had an awful parking situation. I setup a cron to hit an undocumented API grab the number of spots open in the parking lots. I graphed those with a heatmap to find when our parking lot filled up around different holidays.

2. Butcher School [4]: A website used to "study" (memorize) the ARRL exam question set. It used some regex to parse the .doc file that is published by ARRL into it's json so anyone can create an updated set of questions. It also ran in local storage so you could study without internet on your laptop (like in the car on your way to Dayton). I built this for students who were having a tough time joining the Amateur Radio Club at NJIT (I was the treasurer). It's not the best tool by any means. It's just the most free (price and libre).

[0] - https://github.com/CaperAi/pronto/

[1] - https://github.com/CaperAi/bazel_compose

[2] - https://github.com/CaperAi/branchpoke

[3] - https://github.com/gravypod/NJITParking/

[4] - https://github.com/gravypod/ButcherSchool

Re: Ask HN: What are some tools / libraries you built yourself?

#339

I created Lua with C/C++/Java/Javascript syntax https://github.com/mingodad/ljs Also forked a scripting language https://github.com/mingodad/squilu and extended it to accept a pseudo C++/Java/CSharp/Typescript syntax to make easy to reuse code and have fast iteration when creating new functions (with it and minor changes I could get https://ssw.jku.at/Research/Projects/Coco/ parser to work for easy grammar developmen…

What in the world does with C/C++/Java/Javascript syntax mean? Four different languages with four different syntaxes.

An attempt to allow code reuse for a subset of all of then.

Re: Ask HN: What are some tools / libraries you built yourself?

#340

I created Lua with C/C++/Java/Javascript syntax https://github.com/mingodad/ljs Also forked a scripting language https://github.com/mingodad/squilu and extended it to accept a pseudo C++/Java/CSharp/Typescript syntax to make easy to reuse code and have fast iteration when creating new functions (with it and minor changes I could get https://ssw.jku.at/Research/Projects/Coco/ parser to work for easy grammar developmen…

Here I'm showing something I did some time ago https://meimporta.eu/htmleditor/ it's a crude WYSIWYG html editor for people that already knows HTML/CSS and uses basically the browser contenteditable capabilities. It was inpired by Webflow (https://webflow.com/) but very simple and basic, it has 4 main sections: editor shortcuts, wysiwyg editor, html editor, tree view. Some things are easy done in the wysiwyg editor but sometimes the raw html editor is better, we can edit in both of then and get instant result.

Don't bother comment on the UI/UX it's an personal naive tool straight to the point I needed. Anyway any feedback to improve is welcome.

Post reply on HN