Also some guitar, synth, beer brewing and other random obsessions.
[ my public key: https://keybase.io/chthonicdaemon; my proof: https://keybase.io/chthonicdaemon/sigs/cv30E-O3iqFFk4iStynruy-GsTYQqXcpmvU8JrOtDqc ]
- 2 points
- Most people really cannot tell you what they want in any reasonable way. So expecting good specs for software without a very laborious interview and review process is pure wishful thinking. People "know what they like when they see it", so spend time rapid prototyping.
Smaller and more recent: iTerm has deep tmux support. Just do `tmux -CC` to start your session or `tmux -CC a` to attach to it and you don't have to memorise all the tmux commands.
- OP said they tried cursor and didn't experience a speedup over their vi macros.
- Logseq is block-based while Obsidian is more focused on pages. If you want to build something like Wikipedia, Obsidian fits that well. If you're more used to notion and you think more in bullets, Logseq could be a better fit.
- This still relies on being able to name the notes. My point was that you can play the music without knowing the names, so you need some other system like yours to get from the notated signature to the name (or other way around).
- It sounds like you expect the collaborator to have one jupyter installation that you would pollute with the kernel. In my projects that use jupyter, I always have jupyterlab as one of the dependencies. Not sure about the naming part, since I usually just put my project in a directory named for the project, and uv uses that name for the venv, so I literally have never had to "come up with some name for the kernel".
In my case, I usually cd to the project directory, activate the associated environment, then do one of the following to work on a notebook in one of my projects, `jupyter lab`, `pycharm .`, or `code .` and go from there. In all of these cases, I get the ability to open notebooks that make use of this environment, either in the actual Jupyter lab interface, or in the tool's notebook interface (pycharm or vs code). All of these options make it pretty effortless to use the kernel associated with the environment - it's either automatically selected or it's the default in the dropdown.
- I think there is true utility in choosing a unit scheme that matches your number scheme. So we use decimal numbers, makes sense to use decimal units. It seems you're arguing that the real mistake is using decimal numbers to begin with?
- I have considered lessons but I didn't like the prospect of searching for a teacher. This particular piece of practice is only one part of my larger music-making activity. I make mostly electronic music using Ableton Live and a Push 2. I play guitar with enough proficiency that I don't feel like I need lessons. I started this sight reading excercise to access the sheet music I have and I'm using that just fine to learn pieces. So I guess I don't feel any particular frustration in my learning right now that would push me to ask for help. The main challenge I face in my music making is finding longer stretches of time to work on my songs.
- I have found it immensely useful for quick GUI building on my phone.
- These charts are serving a few purposes. First of all, it is motivating to me to see improvement. I can see for instance learning curve dropout when I skip practice, and knowing what a gap will look like on the chart motivates me to keep going. I also use the key-specific curves to choose keys to focus on, so that I don't keep going on the ones I know well. I'm planning to add some more visualisation to understand if there is a pattern to perhaps sharps or flats being harder, or if there is a sharp to flat transition effect which I suspect at the moment - after playing a few days where all the keys are sharps, it feels weird to move to flats.
- This is amazing, thank you! I have indeed been looking for something like this.
- Thank you, I will look into it
- I have found this to be less boring than trying to plough through my copy of Hanon, since there is rapid feedback. It's a different kind of game. I struggle to get to 10 minutes of scales or Hanon stuff, but have no issue on the random notes.
- Yes, I guess this is what self-taught looks like. Although I have seen the use of mnemonics to remember the order of things in many contexts in music, including formal teaching. I thought some of these were universal: FACE and Every Good Boy Deserves Fudge for the note names on the staff, Father Charles Goes Down And Ends Battle, Battle Ends And Down Goes Charles' Father.
By this time I must admit that the random note playing is just an activity that I enjoy improving at independently, while I do think it's also making it easier for me to pick up new pieces quickly.
- I'm curious in both of these cases what you are using for feedback. Specifically in the rhythm case, how do you know if you nailed it or just played some other rhythm than was shown by your cards? Did you also generate the sound?
In the case of playing a random piece of music, if you don't know it, again, how do you know how well you've done? I've been contemplating a similar thing with my repertoire playing, choosing a random bar for revision or learning via Anki.
Another thing - it sounded like you already played your instrument well, but wanted sight read, when you were doing this learning. So perhaps you already had a lot of the phrases in your fingers so to speak and this was just allowing you to connect the notation to what you already knew how to play. Do you think this would have worked well in my case where I could play a different instrument but didn't have any mechanical memory of chord shapes, arpeggios and so on in my fingers?
- Yes the notes are in a random sequence. The "chords" appear to be chosen as major or minor triads, with random inversions or random "common intervals" like octaves, fifths and fourths, I don't think I've ever come across a tritone or "wierd" intervals.
I have gone through various phases in how it feels to play these random notes. Right at the beginning there is obviously the mechanical skill of just being able to put your fingers in the right place. This is less pronounced on piano than guitar, since single notes on the piano are obviously pretty easy for anyone. But when I switched to chords, I definitely felt the feeling I remember from learning the guitar, where the campfire chord shapes seemed to be just impossible to achieve with my fingers.
Keep in mind that this is not the only thing I'm doing to learn - I am also learning pieces, playing arpeggios and scales and studying music theory. Lately I've been gaining speed on the random notes by identifying runs and reading ahead a bit like you're describing.
I am quite proficient at guitar, played in a band and did a lot of pop music playing where you're handed a lyric sheet with chords and you have to just play. I can do that pretty much without prep. I can also "sight read" tablature for reasonably simple finger picking for novel songs quite a bit faster than I am able to do it on piano at the moment. I could never quite get there for traditional notation although I tried. I struggled to improve because once I knew the piece, I could play it without reading the music. So I would laboriously figure out the fingerings, then just play the piece from memory once I had done that. This was all happening in the early 1990s so I also didn't have the glut of music we would have now. Tablature was much more available for the pieces I wante to learn than traditional notation. I guess there is a mode where you force yourself to only learn new pieces all the time, but I found that pretty frustrating coming from zero.
I'm finding with piano, now that I have the notes in my fingers, that first step is much less frustrating and I can focus on building the mechanical dexterity to execute the phrases and remember the music.
- If you have an environment set up with a pyproject.toml, just select the Jupyter kernel you installed in the environment. That feels like the case that is well handled by current tooling.
I believe this is solving the common complaint that you can't just email a jupyter notebook, since it doesn't capture the dependencies.
- I was intrigued by your mention of custom keycaps, so for the first time since I bought the keyboard I pulled off one of the caps to find a kind of usable fader still left there with a little red mark for the center. Now I'm googling for custom keycap options. So much for avoiding GAS.
- I have found being able to sight read relatively easily to unlock a vast trove of music I'd like to be able to play which would have been harder to pick up purely by ear. It's definitely worth learning the things you're talking about. I found the surest way to get good at that kind of playing is to play with other people. The time dependence of having to keep up with everyone makes the feedback really tight.
Playing with other people also highlights other perhaps unexpected skills. I played in a band for a while and I still retain the skill of reading chords off other player's hands. You also need to be able to respond to someone just shouting "OK, let's go to C minor" in ways that only matter in that context. When you're listening or sight reading, you don't need names.
- I've been tracking my sight reading practice for four years using an iPad app, storing the results and plotting them. I am still seeing progress even after four years.
- 156 points
- macOS and iOS have a whole feature called Focus modes which allows you to choose a focus and do things based on this focus. Your current focus is shown in the menu bar.
- The idea that binary formats are the way because "you're going to use a program to interact with the format anyway" ignores the network effects of having things like text editors and unix commands that handle text as a universal intermediate, while having bespoke programs for every format dooms you to developing a full set of tooling for every format (or more likely, writing code that converts the binary format to text formats).
More recently though, consider that LLMs are terrible at emitting binary files, but amazing at emitting text. I can have a GPT spit out a nice diagram in Mermaid, or create calendar entries from a photo of an event program in ical format.
- I've had the best luck at getting it to produce diagrams-as-code like mermaid or plantuml.
- I notice you say "something" and not "someone". With humans, contribution varies. I could commission a piece and have a great deal of input on the final result, or I could just have exercised judgement to choose the piece. Many people descibe their clothing choices or home decor choices as "creative" or "creative expression".
- Do you also object to people paying money to have other people's art in their homes? Is the moral damage from getting an artwork in your home that you didn't create inversely proportional to your monetary investment?
- I feel like chat interfaces have terrible discoverability. You can ask for anything but you have no idea what the system can actually do. In the menu system the options were all spelled out - that's what discoverability means to me. If you spend enough time going through the menus and dialogs you will find all the options, and in a well-designed interface you might notice a function you didn't know about near the one you're using now.
What chat interfaces have over CLIs is good robustness. You can word your request in lots of different ways and get a useful answer.
- For quick lookups, I usually use pydoc[1], which displays roughly the same help string but without having to go into the repl. I think there are several *doc functions like this. Off the top of my head I can think of texdoc (which usually just opens the pdf of the package documentation) and perldoc.
pydoc -b is also very useful as a standard lib reference when you're not connected to the internet and you can live with the quite interesting default color scheme.
- It is not useless noise for something like `help(math.sin)`. The signature displayed by help is `sin(x, /)`, which tells you that `sin(x=1)` will fail. If the signature had just been `sin(x)` then `sin(x=1)` would work.
I think that in all the notebook solutions I've seen that allow this, a culture emerges where the "final result" is put at the top so that you can find it easily and interact with it as a user. The actual development process involves writing stuff top down and then re-ordering it for use.