HN user

dbieber

406 karma

davidbieber.com, author of Python Fire. @Bieber on Twitter. Researcher on Google Brain.

Posts60
Comments75
View on HN
davidbieber.com 1y ago

Amazon Cloud Kitchen (2021)

dbieber
2pts0
davidbieber.com 1y ago

Date and Time Browser History Queries

dbieber
2pts0
davidbieber.com 2y ago

Conversational Spaced Repetition

dbieber
4pts0
davidbieber.com 2y ago

Shh Shell: A shell for drifting off to sleep

dbieber
3pts0
davidbieber.com 2y ago

Facebook Messenger SQL Queries

dbieber
2pts0
davidbieber.com 2y ago

More Browser History Queries (2020)

dbieber
2pts0
davidbieber.com 3y ago

Potential Improvements to Spaced Repetition

dbieber
2pts0
davidbieber.com 3y ago

Personal Newsletter (Just for me) with GPT-4

dbieber
4pts0
davidbieber.com 3y ago

Writing a Tampermonkey Script with GPT-4

dbieber
2pts0
davidbieber.com 3y ago

Understanding OAuth2 (2020)

dbieber
1pts0
davidbieber.com 3y ago

A Bit of Browser History Analysis (2020)

dbieber
2pts0
davidbieber.com 3y ago

Fastbook: Listen to audiobooks faster (2020)

dbieber
81pts90
davidbieber.com 3y ago

A Complete and Concise List of Go Note Go's Features

dbieber
2pts0
davidbieber.com 3y ago

Sleeping with GPT

dbieber
4pts0
davidbieber.com 3y ago

My strategies for keeping my attention

dbieber
46pts3
davidbieber.com 3y ago

The Go Note Go Story: Note-Taking Without a Monitor

dbieber
1pts0
experimentalhistory.substack.com 3y ago

Dance of the naked emperors: A followup to “The rise and fall of peer review”

dbieber
20pts0
davidbieber.com 3y ago

Show HN: Ask Me Anywhere

dbieber
3pts1
davidbieber.com 3y ago

Explicit Ontologies in a World Without

dbieber
41pts8
davidbieber.com 3y ago

Say One Thing Well

dbieber
2pts1
davidbieber.com 3y ago

Spicing Up Your Conversations: The Power of Salt, Acid, Fat, and Heat

dbieber
3pts0
davidbieber.com 3y ago

Writing Assistant Tool Idea

dbieber
3pts1
davidbieber.com 3y ago

Keyboards, keyboards, everywhere, and not a spot to think

dbieber
3pts0
davidbieber.com 3y ago

Learning by Teaching in Online Education (2020)

dbieber
2pts0
davidbieber.com 3y ago

What does “Ordinary” mean in Ordinary Least Squares? (2020)

dbieber
1pts0
davidbieber.com 3y ago

What to Do in Moments of Internet Addiction

dbieber
2pts0
google.github.io 3y ago

The Python Fire Guide (2017)

dbieber
1pts0
davidbieber.com 3y ago

Planning to Analyze My Browsing History (2019)

dbieber
32pts4
davidbieber.com 3y ago

Writing for No Audience

dbieber
3pts0
davidbieber.com 3y ago

Today I Learned the Word Feedingstuffs

dbieber
2pts0

I review them frequently -- opportunistically only, but frequently nevertheless. I gather I'm unusual in this regard; most people I talk to about note taking seem to be "write only".

For myself, I write notes on Go Note Go without seeing them, but I also use Roam at a computer where I do see my notes. When there, I'm often curious to read for the first time what I wrote blindly the day before. I also go back through my notes looking for ideas to expand on (tagged e.g. #[[Snippet Ideas]]), or for TODOs for projects.

I made a list of my strategies for this: https://davidbieber.com/snippets/2022-03-18-attention-strate...

So you don't have to click through, here they are: * Using an outliner like Roam Research

* Working with another person (e.g. pair programming)

* Working with another person present (e.g. independent coworking)

* Running a “distraction detection” program

* Mentally noting the distraction-kind and returning my attention

* Keeping my phone in my kitchen

* Writing on Go Note Go, my headless keyboard

* Attending meetings/talks in “clamshell mode” (laptop closed, no keyboard or mouse available)

* Making TODO lists

* And explicitly writing down the ^^active TODO^^

* Going to sleep at a specific time (e.g. 10:10pm)

* Exercising regularly (or at least aiming to)

* Stopping watching TV in the middle of an episode (ends of episodes are more addicting)

* 50 minute working sessions (e.g. focusmate.com)

* Stretching

* Taking short deliberate breaks

* Using Pomodoro timers for working sessions

* Using the “Intention” Chrome extension by DK

* Keeping all notifications on my phone turned off

* Asking the people I live with to get my attention first before starting a conversation with me

* Announcing my current active goal publicly (e.g. in a chat room)

* “Hide feed” Chrome extension, also by DK

This is all in addition to what I call the "Nike strategy". i.e. "Just do it". aka pure will power. But you don't need to rely completely on the Nike strategy -- the rest of the list can be useful too!

In this snippet I introduce a work-in-progress comment system I'm calling "Ask Me Anywhere". Ask Me Anywhere lets you ask a question at any point in the post.

Give it a try. Simply click between two paragraphs or double click on a paragraph to open a comment box.

I put this together in Jan 2020. Since then, I've actually introduced a second comment system on my website: Discord!

You can give that one a try too. Scroll to the bottom of the post, and click Discussion. That will open a topic-specific Discord channel inline on the post. You can use it to discuss the snippets or any of my other snippets on the same topic.

I think it's surprising and cool that you can embed Discord discussions in a website like this. And as a bonus, you can leave comments anonymously / without logging it. If someone replies to your comment, it's updated immediately (like chat), rather than requiring a refresh (like a naive comments implementation.)

The "Ask Me Anywhere" comments are private, whereas the Discord comment section is public, as is more typical of web comments.

My goal with these comments threads is just to make it super easy to get discussions started. I suppose part of me prefers 1:1 discussions, but the private vs public distinction isn't so critical. Just looking to connect!

Google Apps Script and Browserflow are two of my favorites. Getting a GCP or AWS VM is a solid approach too; both have reasonable free-tiers. And as an alternative to cron, the Python `schedule` library is nice too. Finally if you don't mind some down time, running it on your laptop might be fine. Supervisord is a solid tool for keeping jobs running / restarting them on error.

I'm actively using all of the above approaches.

Say One Thing Well 4 years ago

Here's the tl;dr:

* The best blog posts are narrowly scoped and focused on a single point

* Trying to do too much in a blog post can distract from the main point and weaken the argument

* Having a clear, well-defined main point improves the clarity and persuasiveness of your writing

* It also increases the shareability and reference-ability of your piece

* Respect your readers' time by making the main point clear upfront

* There are exceptions to this rule, such as educational pieces or literary works

This is a snippet I wrote back in Jan 2020, an idea for a writing assistant tool. Since then, conversational agents have come a long way. I think a modernized version of this idea would probably be writing while simultaneously chatting with an AI assistant helping your brainstorm and stay on task.

The original idea is still interesting to consider though, 1) because it's simple and doesn't require AI, and 2) because it informs what the conversational agent could do to be most effective (for me at least).

The high-level core of the idea is that 1) you're writing and brainstorming simultaneously, 2) an external force is using timers and prompts to keep you on track.

The details are important too. Accountability-buddies make for great external forces, but they aren't generally patient and supportive enough to listen to intermittent brainstorming punctuated by many minutes of quiet writing.

The implementation that I suggest in the post ensures you can both write and make changes without losing old versions.

It allows for low-friction brainstorming during writing, and makes sure ideas don't get lost.

Or at least that's the intent. I tried (a low-tech version of) it out at the time and there's definitely room for improvement.

I guess this snippet was from before I wrote Go Note Go, so I reference shh shell (my older headless writing system), not Go Note Go. It's weird to me; GNG feels like its been with me forever but it hasn't even been two years yet. My whole apartment is arranged around GNGs already!

Anyway... 2-year old idea that I'm sharing now, but like many of my old snippets that I've revisited 2 years later, I'm still intrigued by the idea and topic, and glad I wrote it down when I did.

I keep a Go Note Go by my desk. If I have something to write down, I simply type it in and hit enter.

Go Note Go is a note-taking system for when you're on the go, with a focus on driving and camping. It's just a headless keyboard (Raspberry Pi 400) -- no monitor, no display at all -- that you can type on (or speak to; it has a microphone). Anything you type will get uploaded to your notes, and if you speak it will get transcribed automatically and uploaded to your notes, all as soon as the device gets an internet connection (so you can use it offline, e.g. when camping).

Being single-purpose is really nice -- no time lost switching apps or waiting for something to load before you can type. And being screenless is nice too: it feels really freeing to not think about typos or wording etc, and to just keep moving forward.

For me, the notes are uploaded to Roam Research, but it supports other note-taking systems too (e.g. email, Notion, RemNote, Ideaflow, Mem, ...).

Links: https://davidbieber.com/projects/go-note-go/ https://github.com/dbieber/GoNoteGo

This looks super useful. Tempted to go and add CI-maintained gifs to a whole bunch of existing projects now.

Some ideas for new features:

* If the prefix of the tape file is unchanged, reuse the intermediate updates through that prefix from a cache (edit: hmm, upon further thought this seems more difficult than I initially imagined, since the state would need to be cached to save time, not just the images)

* Allow an option for using real-time delays in the gif or user-selected delays (I think currently delays are constant unless user-selected, but I don't see a way to use the real runtime delay in the gif)

Very exciting to see the field progressing so quickly. I wonder how quickly it's going to move forward from here. Will we be generating coherent audio to accompany these videos soon? Will we have multi-scene videos in the next year? Ones with coherent plot? Can we get there just by scaling up, or are other advances needed? Excited to see what comes next!

Thanks for the pointer. One advantage of the approach I ended up taking is it works for mobile browsing too if you’re logged in to Chrome. Then the open tabs sync and you can programmatically monitor and react to mobile browsing usage.

This has been a multiyear journey -- and this "sending messages" piece is new in just the last few days. The main thrust of this effort started with being able to get thoughts out of my head so I could sleep easier back in 2014.

The original project was just for sleep typing, called Shh Shell: https://davidbieber.com/projects/shh-shell/ https://github.com/dbieber/shh-shell

When I moved out west, I expanded Shh Shell to shower typing too, so I could capture those precious shower thoughts, otherwise fleeting.

A few months ago I rebooted the project as Go Note Go, this time with a focus on driving and camping, rather than showering and sleeping. New hardware (Raspberry Pi 400) in the project lets me use it on the go. https://davidbieber.com/projects/go-note-go/ https://github.com/dbieber/GoNoteGo Lots of improvements over the original project, noted in the post linked here^.

Even though I designed GNG for driving and camping, the old sleeping use-case is still useful for me, and I've continued to delight in keeping the headless keyboard at the bedside. Being able to queue up messages in this state (as well as just from my daily note-taking workspace) has only added to the delight.

Hey Scott, I like how you're generalizing PhoneToNote to support multiple note-taking services. I have a project Go Note Go where I also aim to support whatever note-taking service the user uses as the backend. We currently support Roam, RemNote, Mem, Notion, and IdeaFlow. https://davidbieber.com/projects/go-note-go/

It'd be great to standardize the interop with note-taking services so people like us can write applications once and easily have them work with all the note-taking platforms out there. E.g. I'd love for someone to be able to write a spaced repetition app once, and immediately have it support any of the dozens of note-taking apps without needing special handling for each one.

Go Note Go 5 years ago

Hi, I'm the author of Go Note Go. Thanks for posting to HN!

I've been using the system quite a bit these last two months since I started building it, and still getting lots of value from it. The whole thing is open source and for the hacker-type there are enough instructions to build your own: https://github.com/dbieber/GoNoteGo, so hopefully someone here can get some value out of it as well :)

I'll probably post this again as a Show HN a bit later once I reach a good point for sharing (although tbh I think it's pretty good for sharing as is).

Happy to take questions; I'll try to monitor the discussion for a bit. Looking forward to seeing what ideas folks have here!

Go Note Go 5 years ago

Author of Go Note Go here.

I've shared the project with a small group who then each built their own Go Note Go, and one of the folks in this group is doing exactly what you suggest: adding a small display and hacking around with it. Don't think it's added yet, but looking forward to seeing what he does with it.

I use my Pi 400 for headless note-taking while driving and camping.

I've written up the details here: https://davidbieber.com/projects/go-note-go/

"Headless note-taking" means there's no monitor. I just type my notes or speak them (I've attached a beautiful handheld button I can push to start an audio recording). The notes are stored on-device until an internet connection becomes available. At that point, the notes are automatically transcribed and uploaded to my central note-taking system. For me that's Roam Research, but Go Note Go also supports RemNote, IdeaFlow, Notion, and Mem, and adding others is easy.

I find this super useful for jotting down thoughts about audiobooks while driving, and for capturing those late-night thoughts when camping or drifting off to sleep.

Have a look at Sal Khan's latest project, https://schoolhouse.world/ It's focused specifically on math at the moment, and takes a model similar to what you're proposing. Volunteer tutors give lessons, and students are encouraged to pay-it-forward and become tutors themselves once they master the material. They've had thousands of students already and are working on scaling up a few orders of magnitude right now.

Here's my take: Don't use "import-star" in library code. Like you say, it obscures where elements of the namespace came from.

When using Python interactively, esp. if the interactive session is to be thrown away at the end, then import-star can be fine and can be a good time-saver. Video editing is a great example of when this is appropriate. See also manim. Other examples might be one-off html parsing or one-off data manipulation tasks.

Similar to "import-star" is multiple inheritance. Just like import-star, multiple inheritance can make it ambiguous where methods come from, and imo it should similarly be avoided by default unless there's a compelling reason to use it.

Chatmosphere 6 years ago

Don't forget igloo.chat Afaik its the only one that lets you be a crab in the office from The Office :).

Here's one possibility. Creating a quoteback could: 1. tell archive.org to create a snapshot of the page 2. store a link both to the human-friendly version of the page and the archive snapshot 3. then the reader's browser (rather than the webpage hosting the quoteback) could verify that the quote is present either at the linked source or at the snapshot of the linked source.

In the happy path (where the quoteback is genuine) the browser could indicate to the user that the quoteback is genuine and the link would take the user to the normal website if it still has the quote, otherwise to the archive snapshot.

In the unhappy path (where the quoteback is disingenuous) the browser could notify the user that the quoteback is disingenuous.

This is fantastic -- I will certainly turn to this instead of awk/sed in many instances. I expect I'll use this in place of particularly tricky greps too. Really nice that you can seamless interleave standard bash commands with pyp commands, if e.g. an existing bash tool can get a piece of the job done more simply.

I already turn to Python in place of Bash whenever any nontrivial amount of complexity is needed or if any reuse is expected in the script I'm writing (I do this with Python Fire). Now I think I'll be making that Bash->Python switch at even lower levels of complexity, and even when no reuse is expected at all.