Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Tero Parviainen

    teropa.info · Personal blog · on HN since 2013

    Tero Parviainen, a software developer, writes tutorials on Redux, AngularJS internals, Web Audio, and generative music.

    Visit blogHN submissions
    Web DevelopmentProgramming
    What HN says

    HN commenters recommend his generative music work and browser-based music articles, and call his Build Your Own AngularJS book old but still worth reading.

    Stats for nerds
    80HN people shared it
    54linked in comments
    1.3Kstory points
    Dec 2025last shared
    2014people per year2025

    Top posts on HN

    1. 1
      Music Mouse
      7 people · 388 points · first shared 2017 · 57 comments on HN
    2. 2
      Harmonics Explorer
      1 person · 298 points · first shared 2024 · 52 comments on HN
    3. 3
      Learning Web Audio by Recreating the Works of Steve Reich and Brian Eno
      11 people · 218 points · first shared 2016 · 27 comments on HN
    4. 4
      How Generative Music Works
      12 people · 181 points · first shared 2017 · 33 comments on HN
    5. 5
      Full-Stack Redux Tutorial
      20 people · 127 points · first shared 2015 · 6 comments on HN
    6. 6
      Make Your Own AngularJS, Part 1: Scopes And Digest
      4 people · 18 points · first shared 2013 · 1 comments on HN
    7. 7
      Things that Excite Me about Angular 2
      4 people · 6 points · first shared 2016 · Discussion on HN
    8. 8
      Change and Its Detection in JavaScript Frameworks
      2 people · 5 points · first shared 2015 · Discussion on HN
    9. 9
      Build Your Own AngularJS
      10 people · 4 points · first shared 2014 · Discussion on HN
    10. 10
      A Guide to Transclusion in AngularJS
      1 person · 4 points · first shared 2015 · Discussion on HN

    What HN people wrote when they linked it

    • tomduncalfApr 2019

      Learning computer programming you mean? If you think creating something musical would motivate you, JavaScript using the WebAudio API isn’t a bad starting place, as it provides high level components such as oscillators and filters that you can plug together without needing to know the internals - for example, check out https://teropa.info/blog/2016/07/28/javascript-systems-music.html, which is aimed more or less at newcomers to programming. Another good starting point if you are using Mac (and iOS, if you like) is AudioKit, which has some great interactive “playgrounds” and similar high level “blocks” of code as WebAudio, which you can wire together to get quick results.

      If you want to write your own plugins or audio software you’ll need to learn C++ at some point, which I think is a fairly complex language to start with and likely to be frustrating in terms of getting quick results, but your mileage may vary!

      A colleague of mine learned C++ as his first “real” language (which is now his job) because he started out playing around in SuperCollider (a DSL for computer music stuff) and wanted to turn his ideas into real plugins, but it can get pretty complex pretty quickly so I’d say you’d have to be pretty motivated to do this!

      If you do want to go down this route I would probably start with the aforementioned SuperCollider or something similar (maybe Max/MSP) to get an idea of how the musical side of things works without having to master C++ at the same time, then when you…

    • mos_basikDec 2016

      You are On. The. Money.

      When I first started dabbling in web programming a few years ago, I quickly learned about jQuery from SO while looking up common patterns to create the behaviors I wanted in the browser. But even accounting for my unfamiliarity with the browser paradigm, jQuery always rubbed me the wrong way because of how loosely structured it allowed you to be and the amount of leaky scope it encouraged.

      I finally decided earlier this year it was probably worth my time learning a framework just to get some structure in my code, so I asked a webdev friend if he had any recommendations for a JS framework I should try; he pointed me towards Vue. I had never heard of it and was skeptical, but I started working through the quickstart guide (Vue docs are great, another +1 to Evan!) and I was hooked before I finished the third example. It was night and day from jQuery, but easy to learn. My experience so far is that Vue (in contrast to jQuery) is astoundingly flexible for how terse it is. My code was probably bad, but rewriting a jQuery page in Vue usually halved my linecount.

      >no transpilation

      This is huge to people who just want enough JS to get their proposed feature working and don't want their whole site to be JS, and to beginners. True, at this point I have started getting comfortable with the npm/webpack/babel/es6 stack and I enjoy the things it makes convenient - but at the beginning it's a pretty nontrivial learning curve and delayed benefit for a dev team…

    • larksimianMay 2016

      My suggestion is to go through some full-stack tutorials. Vary them up to learn how workflows with different library combinations/boilerplates feel for you.

      For React my quick and dirty intro a few months ago involved: http://jamesknelson.com/learn-raw-react-no-jsx-flux-es6-webpack/ and then following along with http://teropa.info/blog/2015/09/10/full-stack-redux-tutorial.html

      The first link is very light on dependencies and brief. The second link is basically a mini-ebook going from front-end to back-end but walks you through the choices very well.

      What you want to do is build apps, so look for tutorials that make you build an app from start to finish. Do a number of those, semi-rotely, and you'll develop familiarity with the tools and methods they use. That's when you want to deep dive on specific libraries and stacks.

      Imagine how complicated it would be to try to learn Rails by learning ActiveRecord and then ActiveSupport etc. The interesting work happens when all the dependencies are combined -- and the challenge/beauty of the framework is how it combines them -- not when they are taken as individual libraries. Boilerplates are shitty, immature frameworks but similar principles apply.

    • ronjouchDec 2015

      The author is indeed well aware of WebSockets limitations, and OP's "Examples of where it's acceptable/recommended to use WebSockets" seem sound.

      The problem is that the appeal of oooh-shiny is so strong that some (many?) developers and influencers do end up "using WebSockets for the wrong thing". Last case I met: a tutorial for a client+server js app using React & Redux [1], building... a CRUD voting application. Quoting the article on why choosing WebSockets for this, "This is an app that benefits from real-time communication, since it's fun for voters to see their own actions and those of others immediately when they occur. For that reason, we're going to use WebSockets to communicate."

      Well yes, WebSockets work here (modulo problems and missed benefits/tooling that are the whole point of this article), and socket.io seems like a nice library, but a good old long poll would have done just as well :)

      [1] http://teropa.info/blog/2015/09/10/full-stack-redux-tutorial.html

    • barryhoodlumSep 2016

      I was just reading a blog post where a guy had written about Steve Reich and Brian Eno's experiments and his attempts at replicating them. It was posted on HN a few days ago: http://teropa.info/blog/2016/07/28/javascript-systems-music.html

      There are embedded YouTube videos, MP3s, and code samples to illustrate what he's writing about. He's implemented their ideas using the Web Audio API and you can run the code from within the page and listen to the music being generated in real-time. It's a real testament to how great the web can be.

      I think being able to do things like that is worth all the annoying parts of the modern web, in the end. For the developer and the end user. I wouldn't want to go back to the old way. I think it's easy to focus on the annoying parts and take the good parts for granted.

    • SchizoDuckieFeb 2014

      First off, this article is 4 months old.
      Second, <everything else that's mentioned here>

      Third: You won't get the actual idea behind Angular without some good tutorials indeed.
      This one gave me the best insight and i've been churning out my own angular based chrome extension with behaviors, services and modules within a week.

      http://www.ng-newsletter.com/posts/chrome-apps-on-angular.html

      Fourth: There's a new book in progress (with some free chapters) that explains how to build Angular.js from scratch and explains everything in-depth (Something that was indeed lackin from angular.

      Site: http://teropa.info/build-your-own-angular/

      Sample:
      http://teropa.info/build-your-own-angular/build_your_own_angularjs_sample.pdf

    Related

    SurviveJSsurvivejs.com35 people

    Interview with the author of React-like Inferno about JavaScript optimisations

    SurviveJS
    Personal · last shared 2023
    Ryan Dahltinyclouds.org69 people

    Colorizing black and white photos with deep learning

    Ryan Dahl
    Personal · last shared 2026
    Bram.usbram.us47 people

    YAML: The Norway Problem (2022)

    Bram.us
    Personal · last shared 2026
    Peter-Paul Kochquirksmode.org266 people

    Web vs. native: let’s concede defeat

    Peter-Paul Koch
    Personal · last shared 2026
    Jake Archibaldjakearchibald.com191 people

    I discovered a browser bug

    Jake Archibald
    Personal · last shared 2026
    Niko Matsakissmallcultfollowing.com221 people

    Towards a Rust Foundation

    Niko Matsakis
    Personal · last shared 2026
    Timo Bingmannpanthema.net31 people

    The Sound of Sorting – "Audibilization" and Visualization of Algorithms (2013)

    Timo Bingmann
    Personal · last shared 2026
    buildo Blogblog.buildo.io15 people

    Data-driven Scala Programming

    buildo Blog
    Company · last shared 2021