Ask HN: What Are You Learning?
Hey Hacker News, what are you learning?
Personally I'm learning Elixir, and it's such a pleasant language. It feels great to write, and the packaging/build tools feel refreshing compared to the mess of Python.
Now, handing you the mic. Is there a new stack or language on your mind?
361 comments
[ 5.5 ms ] story [ 289 ms ] threadI have this pipeline where I take a youtube video, download it as an MP3, convert that to MIDI and then edit that midi to split left/right and to ensure it is all set to time and of the proper length so I can show it as sheet music.
I knew next to nothing about music theory when I started this beyond the very first basic stuff, but after watching many youtube videos on the subject and reading a lot of stuff it is starting to make sense. This is a subject that is overcomplicated to the point that it seems much harder than it really is, there are only very few good teachers out there to make that which looks complicated but it ultimately relatively simple simple again.
If you want I can do a write-up of all the resources that I've used over the last year and a half.
Currently practicing Ennio Morricone's "Chi Mai" arranged for piano.
Progress is still slow but if I compare my sightreading spead, accuracy and general quality of play with a year ago the difference is huge even if you can't see it day-by-day. Each new piece brings new challenges, and teaches me something that re-inforces the pieces that I already know how to play which then all get a little bit better.
Overall I'm having a ton of fun with this and the joy I get from playing a piece end-to-end without mistakes, at speed and in a way that is nice to listen is hard to describe.
It's obvious that an experienced pianist would probably laugh at the level of my accomplishments but that's fine with me, I'm enjoying this and that's what counts. It's also one of very few things in my life that I've done without any commercial goal, and which is just for myself. Overall if I could do this life over I'd tone down the business career in favor of making more music. And the programming skills came in handy while making pianojacq.com, so in a way this allowed me to combine two things I love.
Will absolutely do this :) I'm so down to see my progress as I go. Today I had my class and started working on some chords!
best!
My repository for this (code finished, just need to add photos and add a write up about how to use):
https://github.com/whyboris/Digital-Piano-LED
I added a feature that the left and middle pedal buttons navigate through sheet music (PDF left/right button). And I'm also running Pianoteq which makes any (even dinky) digital piano sound like a $100k grand piano (or any piano you pick for that matter) https://www.modartt.com/pianoteq
Still WIP, but easy to edit: https://github.com/whyboris/Digital-Piano-Visualization
I used Processing because of how easy it is to use and how performant it is for smooth animations.
Even so, you are right, it is definitely not a growth market by any stretch of the imagination, it takes a ton of effort to learn how to play and in a world full of distractions and ready made music more than you could ever listen to in a lifetime the enthusiasm for doing this is waning. There are exceptions to this though, for instance, in Asia where playing the piano is a status thing and still in its ascendancy phase.
I am using C/C++ to program the library while learning essential concepts.
https://venam.nixers.net/blog/unix/2021/06/23/pipewire-under...
BTW I use Fedora 34, and PipeWire works flawlessly for screen-sharing and Bluetooth audio :^)
Clojure is simple.
Nearly everything is just (function arg1 arg2 ...), even at a fundamental language level. It's actually our background experience in complex languages with all kinds of wacky syntax that makes Clojure seem hard at first. But it's very simple. So if you can't remember the syntax or why something is the way it is, step back and you'll realize it's just (function arg1 arg2 ...).
For example:
(defn add-these [x y] (+ x y))
is still just
(function arg1 arg2 arg3)
Where:
function = defn
arg1 = add-these (a symbol)
arg2 = [x y] (a vector)
arg3 = (+ x y) (an expression, which itself is just (function arg1 arg2))
You may already know all that, but regardless I hope it's encouraging because the bottom line is Clojure is easer than you think and you can do it! :-)
Clojure is actually simpler (and eventually way, way easier) than most mainstream languages. It's just a bit different from what most people are used to and what is commonly taught as "programming".
1. There are several fantastic books on Clojure. The Joy of Clojure and Elements of Clojure are some of my favorites.
2. Watching a professional using an editor/IDE with a REPL attached to it. Look for online videos. This is the biggest reason to why people are „addicted“ to it. The language and it’s ecosystem are made in a way that enables this „living in the code“ experience.
I am interested in the actual Clojure bits. I mean, I know Lisp syntax and functional programming basics. But one also needs language-specific things: standard libraries, namespaces, etc. What is a nice resource for these?
In most cases, it's just a big and elaborate grid search done manually.
And I see that you are learning to use Ray. How is your experience with it so far?
They cut weight, have good technique and power, and the stakes sometimes are very high. This is dangerous.
Cutting weight reduces the amount of water in the body => the brain bounces on the skull at a greater speed => more kinetic energy => major risk (hemorrhage...).
Many sports are much more dangerous than commonly thought. Each and every friend who practiced judo or BJJ developed serious joints problems, or even major hips-related ordeals. Comparing football and MMA leads to surprising observations: https://bleacherreport.com/articles/2830774-football-vs-mma-...
My take: do not compete (and do not aim at becoming a professional!), avoid any gym where hard sparring is mandatory, or where the trainers don't closely monitor the sparring sessions or don't immediately break anything getting out-of-hands. There is some residual risk, but IMHO probably no higher than walking down the streets, and the gains are worth it.
About dehydration: https://en.wikipedia.org/wiki/The_distance_(boxing)#Distance...
Then, 6 weeks ago someone stole my laptop from me while sitting in a cafe in San Francisco. Without thinking, I chased him down and was able to wrestle my laptop back from him. Without the BJJ, I probably would have just yelled at him. Anyway, I'm back at the BJJ studio!
But I have wanted to go through the whole of SICP for a while. I realized that that is a better thing to do (grow core, fundamental skills) during the pandemic where I can get uninterrupted time.
I can learn a language any time. But I was more focused towards learning the functional paradigm rather than the language itself. It's a fun language to code in, though.
[1] https://www.amazon.co.uk/dp/B004M3PS4O/ref=cm_sw_r_cp_apa_gl...
About 6 months ago, I switched to a split keyboard and it's made a big difference for me. Sitting with my arms shoulder width apart has taken a lot of the strain out of my neck and back.
Believe there's studies on amyloid plaque clearance differing b/n different positions. And I believe back sleeping has less of such than side.
Unfortunately for me I'm a coffin sleeper.
I would suggest finding a good chiropractor and describing the problem.
Shoulders are very flexible but also extremely weak and sensitive, they should rarely be used out of neutral position. I've taught martial arts for a long time and most issues I see with people's shoulders is due to (improper) overuse.
My point is that maybe the cause of the problem isn't in bed at all. My experience says that sleeping on the side makes everything easier, from breathing to offloading the spine.
Then later I may move around and find another position.
Front crawl really seems to be one of the most beautiful & rewarding processes to master.
Working in 3D has opened my eyes to new possibilities. I believe that having skills in 3D will become very important over the next five years with adoption of mixed reality hardware.
My current work flow is very hands on because I'm creating characters for a game and want an oil painted texture look. I'd like to find a way to copy the style from one character to the next.
It's been fun seeing the world in a new way again. I like the nostalgic feeling of looking around and seeing the material nuance in everyday objects, how light behaves, and the uniqueness of everything around us.
At home I'm looking at Common Lisp and APL (which are so far out of my frame of reference I can feel my brain hurting when I sit down to them).
https://twitter.com/FPresencia/status/1402267525262491658
On a more relaxed note, also learning more techniques about how to do proper gardening to grow more veggies and flowers.
Otherwise: Japanese for 2-3 hours a day (will hopefully pass the N2 exam in December), and have also been reading a lot of pedagogical theory lately, and will implement some of it in a curriculum that I'm proposing soon (My day job is teaching).
- French which has to be done but is quite hard.
- Some math because the more I work with computers there more I understand how it would be very useful.
- Combat sports because it keeps me fit and its good for your posture if you know how to throw a punch.
- Traveling. Never learned it, work too much and would like to see the world before being an old fuck.
- Basic EE digital circuits and microcontrollers. One should really have a grasp how computers work on a fundamental level.
- Cooking. Because it is social, full of culture and makes you independent.
- Duolingo(don't do it for more than a few months)
For beginners
- https://www.languagetransfer.org/free-courses-1#french
For all others, some sort of immersion approach is the only way if you don't live in the country. Figure out the general approach below and adapt for your target language.
- AJATT http://www.alljapaneseallthetime.com/blog/all-japanese-all-t...
- TMW https://learnjapanese.moe/
- Refold https://refold.la/
It's pretty good to learn basic vocabulary, but I felt you would need something before, just to get some grounding in the language. Like basic grammar, and a very high level overview of how the language "works". You can infer some of it from the example, but that's a lot more difficult than already having this context in my opinion.
I built a small site for myself to help in learning the 5000 most frequently used French words. It is, and always will be, free and with no account sign up needed.
Check it out, you might find it to be useful:
https://cinqmille.app
Given the decline of European culture, law is on really shaky philosophical foundations. I’d seriously like to figure out if Roman law concepts can be refounded upon something like Vedanta.