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
    A

    Alvin Alexander

    alvinalexander.com · Personal blog · on HN since 2012

    Alvin Alexander, a programmer, writes tutorials and notes on Scala, functional programming, GIMP, macOS, and Android.

    Visit blogRSSHN submissions
    ProgrammingLanguages & CompilersOpen Source & Linux
    What HN says

    HN links it for a GIMP circle-drawing tutorial (in complaints about basic GIMP tasks) and a post arguing the IO monad is not pure.

    Stats for nerds
    35HN people shared it
    10linked in comments
    119story points
    Nov 2024last shared
    2012people per year2024

    Top posts on HN

    1. 1
      Head asleep, body awake
      1 person · 95 points · first shared 2020 · 97 comments on HN
    2. 2
      OS X's launchd, demystified
      2 people · 8 points · first shared 2013 · Discussion on HN
    3. 3
      What is Android doing when it says “optimizing apps” after a system upgrade?
      1 person · 4 points · first shared 2015 · 2 comments on HN
    4. 4
      GraalVM apps run faster than Scala/Java/JVM apps, with less memory consumption
      2 people · 3 points · first shared 2020 · Discussion on HN
    5. 5
      SARAH, a Mac OS X speech interaction app
      1 person · 3 points · first shared 2016 · Discussion on HN
    6. 6
      MLB.TV hidef not supported on Mavericks (OS X 10.9)
      1 person · 2 points · first shared 2014 · 1 comments on HN
    7. 7
      Recursion – See Recursion
      1 person · 2 points · first shared 2022 · Discussion on HN
    8. 8
      Learning Recursion: A free booklet, by Alvin Alexander
      1 person · 1 points · first shared 2023 · Discussion on HN
    9. 9
      Introduction to Scala 3 (video course)
      1 person · 1 points · first shared 2023 · Discussion on HN
    10. 10
      Gimp how to create draw circle in gimp tutorial
      3 people · first shared 2020

    What HN people wrote when they linked it

    • vsyncApr 2013

      For feature implementation speed, function point analysis (http://alvinalexander.com/FunctionPoints/) is a good start. There are tables available that give rough industry-wide figures for hours per function point. However keep in mind these will change quite a bit depending on the size of the project, the competence of the team as a whole, unique constraints on the particular software, and the tools in use; we're talking a range of 1/2hr to 20hrs per function point, so you need to factor those items in. Also you have to be willing to break down the requirements in ways that are a little odd sometimes when dealing with more interactive applications (say, games versus spreadsheets) or that have long-running processes (daemons versus batch).

      Speed of learning is much harder to quantify because people aren't uniform in the experience they already bring to the table. So you'd have to administer tests of some sort across a wide variety of things to encompass things they do and don't already know.

      But the talk of "objective metrics" for the "quality of developers" sounds a little bit leading, making this whole question seem a bit off-putting. You might be well-served by reading "Zen and the Art of Motorcycle Maintenance", especially the parts where Pirsig describes the difficulty of assessing Quality without already being an expert in the subject.

    • coldteaMar 2016

      Well, how involved are you? Did you see much good work this last 5-6 years from the part of Oracle? Could there be anything more they could do to downplay Java and alienate the community?

      http://www.infoworld.com/article/2987529/java/insider-oracle-lost-interest-in-java.html

      https://jaxenter.com/oracle-and-javas-planned-obsolescence-121144.html

      http://fortune.com/2015/09/07/oracle-cuts-java-execs/

      http://www.zdnet.com/article/a-close-look-at-how-oracle-installs-deceptive-software-with-java-updates/

      http://www.infoq.com/news/2015/09/oracle-purges-java-evangelists

      http://www.computerworld.com/article/2469593/open-source-tools/it-s-not-apache-vs--oracle--it-s-oracle-vs--open-source.html

      http://arstechnica.com/information-technology/2010/11/apache-foundation-to-vote-down-java-7-protesting-oracle-abuses/

      https://dzone.com/articles/oracle-announces-jigsaw-delays-push-java-9-launch

      https://jaxenter.com/even-if-oracle-is-losing-interest-in-java-should-you-worry-122390.html

      http://alvinalexander.com/java/doug-lea-leaving-java-community-process-jcp

    • logicalleeOct 2018

      That's true. Until it was discovered, Troy was considered to be mythical. Now most people think we have Homeric Troy.¹

      But how far do we go? We practically have the specifications for Noah's ark ² - so do you expect us to find it, large enough to house every animal except dinosaurs, cruelly left out? ³

      So at first I thought you made a pretty good case, but I don't know, man. There's a lot of weird stories that are super specific, like the one I just quoted.

      --

      ¹ https://en.wikipedia.org/wiki/Troy

      ² https://www.biblegateway.com/passage/?search=Genesis+6&version=KJV - "The length of the ark shall be three hundred cubits, the breadth of it fifty cubits, and the height of it thirty cubits. A window shalt thou make to the ark, and in a cubit shalt thou finish it above; and the door of the ark shalt thou set in the side thereof; with lower, second, and third stories shalt thou make it..." etc.

      ³ https://alvinalexander.com/sites/default/files/styles/preview/public/photos/dinosaurs-noahs-ark-oh-crap-today.jpg?itok=RJaPveZ5

    • yareallyNov 2013

      Scala does something similarly neat with using #| for piping system commands.

      Slash for Scala is not used by default though for path joining, but it can be by adding an implicit function:

      implicit def slash(str: String) = new { def /(joinStr: String) = str + java.io.File.separatorChar + joinStr}

      val joinedStr = "abc"/"def"/"ghi"
      > joinedStr : java.lang.String = abc/def/ghi

      Shell friendly syntax can be used for stdin/stdout in Scala as well (already in the stdlib with no implicits required):

      #< Redirect STDIN

      #> Redirect STDOUT

      #>> Append to STDOUT

      #&& Create an AND list

      #!! Create an OR list

      http://stackoverflow.com/questions/12772605/scala-shell-commands-with-pipe/12772628

      http://alvinalexander.com/scala/scala-execute-exec-external-system-commands-in-scala

    • gus_massaJan 2016

      I saw this video that you linked in HN. I think you should add it to your page too.

      I found these screenshots: http://www.exeone.com/vintager-gallery .

      I still would like to see more/bigger examples. Something like http://alvinalexander.com/design/gimp-catalog-filters-effects-examples-cheat-sheet (130 is too much, pick the best 10 or 20 of your effects) (I'm totally unrelated to this site, it's the second link in https://www.google.com/?q=gimp+filters+examples+galery )

      Don't worry about the inconvenience. Here is usual to try to give feedback. Most users go to the site and if they don't find what they want, they just go away. Here we try to provide some advice (sometimes it's good advice, sometimes it's bad advice). I hope these comments help you. Welcome to HN!

    • bjourneDec 2019

      Because the documentation seldom is good and almost never really good. Long and "complete" documentation isn't the same thing as good documentation.

      I have a piece of software and a task I want to accomplish. For example, list files ordered by size in ascending order. ls' man page tells me how to do that, but I have to piece the information together because it is arranged option by option. Thus, I'm forced to read more than what I'd like.

      Or I can google "ls sort files by size" click on the first link https://alvinalexander.com/photos/linux-ls-command-how-sort-by-filesize-reversed and voila.

      Most people writing docs don't get that people learn by example. Thus the docs they write lacks examples and therefore are not very useful.

    Related

    GNOME Blogsblogs.gnome.org490 people

    AirPods fast connect security vulnerability

    GNOME Blogs
    Company · last shared 2026
    Better Programmingbetterprogramming.pub319 people

    Three programmers got fired, including me, due to a single app crash

    Better Programming
    Publication · last shared 2025
    David Givencowlark.com94 people

    Live coding a vi for CP/M from scratch

    David Given
    Personal · last shared 2026
    Herb Suttergotw.ca84 people

    Ritchie, Stroustrup, and Gosling interview

    Herb Sutter
    Personal · last shared 2026
    Genodiansgenodians.org19 people

    Re-Stacking the GUI Stack

    Genodians
    Publication · last shared 2026
    Avdi Grimmdevblog.avdi.org132 people

    Your Code is My Hell

    Avdi Grimm
    Personal · last shared 2025
    Let It Crashletitcrash.com20 people

    Akka 2.2.0 released – distributed, concurrent applications on the JVM

    Let It Crash
    Company · last shared 2019
    Alex Russellinfrequently.org165 people

    If not React, then what?

    Alex Russell
    Personal · last shared 2026