HNHacker News
TopNewBestAskShowJobs

badtuple

205 karma · joined January 25, 2017

Projects focused on event streams, conformance checking, and database implementation.

Communication encouraged! I enjoy talking to people. Feel free to send me an email.

  email: badtuple@the.sarl
  everything else: badtuple
submissionscomments
badtuple··on Show HN: I made a site where you practice typing by retyping entire novels
I have a similar workflow, but for a different reason. BJ Novak described in an interview how the ideation part of the process is totally different from the productive part. This spoke to me, and I've been approaching them separately ever since. When they get too inflated I either get writers/coders block or absolute spaghetti, so it's easy to see when I've grown less disciplined with the division.
badtuple··on How to Run a Live Coding Stream on Twitch Using OBS
It really depends on what I'm doing. If it's something I fundamentally don't know how to do and it requires all my concentration, I don't really do it on stream. But there's plenty that I know how to do but others don't. For example writing a parser/lexer can be interesting, but I generally only have to solve fairly local problems and not large structural ones.

Really hard things I _could_ do on stream...but I start to feel like it's too much of me staring really hard silently. I have to wonder how much of that is true and how much of that is personal anxiety. I do enjoy streaming though and should do it more.

badtuple··on Weird Keyboards, Programmable Keyboards
This JS snippet brute forces everything to have a white background and black text. Should be able to paste it into your browser's dev console.

    var el = document.querySelectorAll('*');
    for(var i=0;i<el.length;i++){
      el[i].style.backgroundColor = '#FFF';
      el[i].style.color = '#000';
    }
If you don't mind sharing, why does it make you physically ill? I've heard of people not liking it, but this is the first I've heard of an actual medical issue and I'd like to be aware of it when designing things.
badtuple··on Ask HN: If you could work remote where would you live?
Agreed that Portland isn't a great place for cars. However I think if we grow healthily as a city we can maximize public transportation, expand the MAX and street car, have dedicated bus lanes, and make it so that it isn't a problem.

The suburbs can't escape cars, but I bet we can make Portland proper a utopia for pedestrians.

I already barely use cars. It's wonderful compared to Orlando (where I happened to grow up).

badtuple··on Ask HN: If you could work remote where would you live?
Not entirely. When nomading about I did hit Portland and Seattle, but I also lived in Lisbon, Porto, London, Budapest, Marrakech, Vienna, New York for about 3 months each and a bunch of other places for much smaller periods of time just passing through seeing friends.
badtuple··on Ask HN: If you could work remote where would you live?
I'm dismissive of it for sure. Portland and the PNW in general is so gorgeous and full of great creative people who know how to be themselves. I'm not going to avoid it and live life in fear of something that may or may not happen.

When the big one does hit though, there's definitely a long list of people who are going to be totally entitled to a good "I told you so".

badtuple··on Ask HN: If you could work remote where would you live?
Either Seattle or stay in Portland. I'm happily employed in Portland and not looking to change gigs, but if my current job went 100% remote I'd probably move to Seattle. I love the PNW, and Portland's just a bit too small of a city for me.

I did the nomad thing for a couple years and loved it, but I sort of got it out of my system. The lifestyle can be lonely. And at this point in my life I'd rather cultivate a life of my own instead of running around enjoying little bits of life elsewhere. Not that I wouldn't take advantage of the ability to travel much more freely!

badtuple··on Ask HN: Production Prolog in 2020?
Kind of offtopic, but does anyone know a good resource around implementing a simple prolog/similar language? My previous attempts at learning logic programming have failed, and it just _feels_ like a thing that becomes clear after you've seen how it works under the hood.
badtuple··on Ennui: How to Overcome Chronic Boredom
Don't forget the opposite. Some people have the opposite problem. If all you do is produce/create then you're going to burnout and feel like you don't care anymore.

Consuming gives you new ideas on what to produce and enthusiasm about what you could create. You can't produce without consuming, and you likely won't be satisfied just consuming indefinitely.

badtuple··on “C is how the computer works” is a dangerous mindset for C programmers
Does anyone code directly in LLVM IR? I've had the thought of toying with it as a better portable assembly with a crazy optimizer behind it...but since the LLVM folk want it to be an implementation detail they warn against it due to how volatile it is across versions.

I'd be really interested to hear experiences of people who have done it though, even as a toy.

badtuple··on Ask HN: Mobile devs who added Apple Sign In, what conversion changes?
This seems like a nice user experience, but I'd be worried about leaking which email address has an account with us.
badtuple··on Ask HN: What projects are you working on now?
I'm building a lightweight timeseries database/log abstraction called Remits. Remits stands for "Remote Iterator Server".

The concept is that you can push Messages to an append only log, but can only query them back out via Iterators. An Iterator is a map, filter, or reduce function that iterates over either a Log or another Iterator.

Iterators can be composed and optionally persisted. So the data can be transformed at query time, or persisted and just read from disk. Iterators allow you to start at an arbitrary message, so it can be used as a persisted message queue or similar.

I'm only a few commits in, and there isn't much to see yet. I'm really excited by the power and simplicity of the idea, and to have a lightweight Kafka alternative. Feel free to follow along if interested: https://github.com/badtuple/remits . If you feel like working on something in Rust, feel free to reach out on Github issues or email. It's always fun working with other people.

badtuple··on Ask HN: What has your work taught you that other people don't realize?
Not only that, but the incredible depth of pretty much every field. Not every practitioner dives deep, but the masters of any job leave me speechless.
badtuple··on Announcing your plans makes you less motivated to accomplish them (2009)
> Basically you're warning the master/manager that your story is gonna slip if they don't start managing.

This. But it doesn't have to be accusatory like that. It's a way to have opportunity for feedback without having to be pressed for feedback.

The best manager I ever had was great because he totally trusted his people. Standups were a non-intrusive way to keep the overall pulse and make himself available if he was needed...that way he didn't need to vulture around to make sure he could insert himself if needed.

I'll take planned and well used 5 minutes of direct management over compulsive and nervous micromanaging anyday.

badtuple··on Building a Raspberry Pi 3B+ full keyboard handheld
I have a GPD Pocket 2 and I want to like it _so much_, but I just can't get used to the keyboard layout. Everything about it is perfect except for that, but since I just program directly from the framebuffer a keyboard that I can't get used to and use intuitively is pretty much a deal breaker :(
badtuple··on Show HN: Ji Language – Looking for Feedback
Do you, or does anyone you know, regularly use unicode input like that in your day to day programming? It sounds like you might.

I'm super interested in symbols as a way of increasing expressivity, but the ctrl+cmd+space route just seems like it'd be too much overhead for the tradeoff to be worth it.

I'd love to hear what people who have gotten over the learning curve think about it as a language feature.

badtuple··on Racket2 Possibilities
Serious question: Why do parens matter so much?

I read the post and all the comments here, where people are very adamant about their opinions on parens. It seems to me that while syntax is important, parens in this context is about as close to "just syntax" as we can get. Racket-sans-parens would still be Racket.

Am I missing something fundamental?

badtuple··on Declined Proposal: A built-in Go error check function, “try”
That surprises me. I have to manipulate slices all the time! Popping an item from a slice, reversing one, or clearing one without allocation in a hotspot is super common for me.

I've used Go professionally for 6 years and love it, so the patterns are ingrained in my head and don't bother me. But it seems pretty clear that it's much more arcane than alternatives.

badtuple··on Show HN: I made an interactive hex calculator in ncurses
Same. This is so much better.

The number of times I redo the same thing in a repl or with weird scripts saved in /tmp or ~/ is kind of nuts....but generalizing them into something like this takes tons of work. Kudos!

badtuple··on Jsonnet – A data templating language
It is easy to get confused whether a brace is part of the json or part of the mustache/handlebars/etc.

  {
    "hello": {"{{place}}":{{{#items}}"{{thing}}":{{n}},{{/items}}}},  
    "urls": [{{#items}}"{{url}}",{{/items}}]
  }

It's unambigious and can be reasoned through, but it's certainly hard to tell what structure the template is building at a glance. This is not a complex or contrived example.

Syntax highlighting, linters, proper indentation, etc. all help...but when talking about non-programmers who aren't used to this it's an incredible hurdle. People are also lazy and error prone, so you can't rely on indentation to make things clear, especially since it's not always clear how you should indent nesting of the template vs nesting of the json datastructure you're trying to build.

Most modern templating languages have a config option for changing the delimeter. Setting it to something like (( or << might help differentiate things a bit, but then you're throwing away easy use of examples, documentation, stack overflow questions, and so much more that already exists for that language. That documentation and copy-pastable community help is not something to throw away lightly if you're designing a tool for this audience.

It's also worth pointing out that the above template generates subtly incorrect json with trailing commas. In pure mustache it's not possible to get rid of that trailing comma. You have to either change your data (add a "last":true key to the last element of any arrays), or have some kind of post-processing step.

All of the existing solutions are workable, they just aren't ideal.

badtuple··on Jsonnet – A data templating language
There's a real need for JSON templating languages not targeting developers.

Tools like Zapier, Customer.io's webhooks, etc. allow integration with arbitrary APIs and have become a standard part of many marketing/sales stacks. These apps use things like Jinja, Mustache, or Liquid which are great for text but not JSON templates.

Curly braces as primary delimiters, not allowing trailing commas on final elements, and other features of JSON make generating it a real hassle.

Jsonnet is too complex to be that tool, but I'm glad people are working in the space.

badtuple··on Show HN: A Website for HTTP Status Codes
Nice! It looks like it reduces your steps to:

- Encounter a status code in some code

- Go to https://statuses.now.sh/

- Type in the status code

- Read the explanation

That's 66% of the steps. It's harder to remember that URL than wikipedia though. You could remove a step if you could easily put the number in the url without having to remember the "code" query param. Just go directly to https://statuses.now.sh/418.

I live in the terminal. If I'm investigating a status code then I have a terminal open. That's not true for everyone, but it'd be super cool if I could `curl https://statuses.now.sh/418` and get plaintext information about the status right from my terminal! You could implement that by checking the user agent to see if it's curl/postman/etc.. or requiring a .json or .txt extension at the end. Either way, it'd cut my workflow down to three steps:

- Encounter a status code in some code

- `curl https://statuses.now.sh/418`

- Read the explanation.

It also allows me to set an alias/function in my bashrc so that I don't have to remember the url.

As for the svelte part, I haven't used it and don't really do frontend dev very often...but I bet you'd get more specific feedback on the code itself if you listed a git repo people could use to check things out.

badtuple··on Show HN: Visualize Your Rails App to ER Diagram Automatically
This is really nice!

To those trying it out: if the diagram seems inaccurate, try dragging tables around.

I uploaded a very simple schema, but seemingly unrelated tables looked connected. Turns out it's 100% accurate, but relationships can run behind other tables and make it look like things are connected that aren't. Detangling is easy with a few drags/drops and you get a really nice diagram out of it.

badtuple··on Show HN: A list of programmers coding live
Heya! I just wanted to say thanks for your streams. I haven't been watching streams in general lately due to life being much busier, but yours in particular were super interesting and I learned a ton!
badtuple··on Ask HN: What was the best decision you made in your career?
Did you feel like you had agency when you first started? I'm talking to a Global 500 for a senior engineering role and I'm super torn. The role seems cool, but I like my agency and have alot of it currently. It's a hard thing to risk giving up.
badtuple··on Introducing the Librem Key
Don't know how possible this is to answer, but how likely is it that a device like this would fail?
badtuple··on Ask HN: “Write your own” or “Build your own” software projects
Always a good idea! Another thing is to CONSTANTLY question what the article is having you do. Try to disprove rationale given and think of alternative paths. Almost in a playful devil's advocate way.

As the project progresses you'll get more context on why things are what they are than is explicitly written. Eventually you'll hit on something that actually is better and now you're a what-the-article-teaches developer!

badtuple··on Language Learning for the Dispassionate
Can you go into any detail around how you curate the Portuguese content? The icon has both the Brazilian and Portuguese flag. One thing I've had difficulty with is that there's just enough differences between the two that mixing them can be confusing while learning. Lack of European Portuguese is why I basically dropped Duolingo and settled on just reading books/listening to music. The dialects are super similar to those who already know the language, but when even basic nouns differ it can get hard!

Just downloaded the app and it's awesome. Thanks for making it!

badtuple··on Upcoming Go protobuf release
Pardon my ignorance, but is there any functional change by it being a method vs a func? All I can think of is not having to type in the package name to call it and possibly the ability to memoize parts within the struct itself but not sure if you'd even want that in a general solution. If the argument is one of those or aesthetic then awesome, but I'm wondering if I'm missing some difference in how Go handles them.
badtuple··on Ask HN: 5 months and counting waiting for Coinbase customer support. Advice?
I support it in this extreme case. But as someone who does tons of all-hands support at companies with _really_ good support, please start with normal channels. Starting out publicly paints you as really aggressive and hard to work with. To diagnose anything complex, and for your own privacy, you'll need to move to email anyway. You'll get good support either way because we're professionals, but there's no need to start any interaction with a middle finger.
← PreviousPage 2 of 3Next →