Giter VIP home page Giter VIP logo

Hii, I'm Daniel!

I like writing software! Web development, CLI tooling, libraries, it's all fun!

Knowing specs, protocols, and the problems that other tools solve lets you use them much more effectively, that's what I think anyway! Combing through docs, specs, RFCs, code, then making something with that knowledge, that's how I like to learn!

The way I see it: If I can replicate its functionality, I can probably use it quite well immediately after looking at the docs.

Repos!

The condensed patterns that I found after creating ~60 CLI tools, with list being the most influential of them. It introduces things like predicates, has a focus on array operations and pipe-like, data-flow approach to composition, and provides very useful functions for file system operations and string manipulation.

ls, but also like 12 other tools. It's effectively a stack based tacit left-to-right DSL for querying the file system. It's syntax allows for arbitrary number of operations to be specified. However, it remains performant, scaling well with queries as well as size of input. For example, list recurses, indexes, and sorts a directory of 20+ million files in under 30 seconds.

The experience I want to have with web development! Includes separate tools, all related to web development. Things like a simple, secure, easy to use reverse proxy (with ACME, automated DNS configuration, SNI, etc.), specifically for local-to-public hosting. A static site dev server that embeds a live reload script to html! A file server that accepts file paths from pipes, not fancy, but it works.

A single repo for many small tools. These tools build an ecosystem. They have the same semantics and are very interoperable. Many of them can be thought of as CLI wrappers for 🌸 blume libraries. Has many of the classic core utils, but they're friendlier this time!

Answers to questions no one has asked me :D

>Why do you use Go so much? Why not other languages?
<Go is nice and simple, it gives me what I need and then does everything automatically. I love JavaScript, and I use Python a lot too! But when it comes to smoothness of development, neither JS or Py have anything (that I know of) that's like Go workspaces. Go tooling is just so nice!

>Why try to reinvent the wheel so much? Not-Invented-Here syndrome?
<I feel that when you try to make things yourself you get to learn the lessons yourself. Besides, it's really fun! When the situation calls for the industry standards, those lessons learned pay dividends.

>Which tool you've made is your favorite?
list, and by a large margin. In fact, I have been using it as my ls for nearly a year at this point. It does what I want, the way I need it to, the way how I like it. No need for grep, find, head, tail, xargs, ... I can just say what I want, and it does it!

>Which library you've made is your favorite?
blume/clog! I always found that fmt.Println, log, etc., were awkward to use, put them where you need, remove once you don't, then do it all over again the next time a problem pops up. clog is a styled log/slog implementation, with normalizing width for rows, colored logging levels, max length for messages, etc. As it turns out, when you make good logging in a project from the start, it makes everything else easier as well!

Daniel Saury's Projects

blume icon blume

Declarative and composable libraries for Go.

cf icon cf

Cloudflare CA and DNS utility libraries and CLI tools.

copy icon copy

Ergonomic file copying program.

envi icon envi

Envi stores and loads encrypted .env files and uses them to run programs in subprocesses.

js icon js

Use JS arrow functions on the CLI with pipes.

list icon list

Directory traversal tool with searching, filtering, selection, and sorting functionalities.

media icon media

Media related utilities, thumbnails, perceptual hashing, etc.

meminfo icon meminfo

Cross-platform Go library for retrieving system memory information.

pakgit icon pakgit

a git tag based source code package manager

persist icon persist

Data persistence library for the Go type system

sorbet icon sorbet

Simple terminal based status bar

wand icon wand

Dynamically configured security focused OTP-link authorization reverse proxy.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.