<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: hhandoko</title><link>https://news.ycombinator.com/user?id=hhandoko</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 19 Jun 2026 13:17:20 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=hhandoko" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by hhandoko in "BYD to offer Tesla-like self-driving tech in all models for free"]]></title><description><![CDATA[
<p>Nope... US$120k is most likely the base price (car + taxes). The Certificate of Enrolment (CoE) is market rate, and right now it's an additional SG$85k to SG$111k depending on the vehicle category (on top of the base price).<p><a href="https://www.motorist.sg/coe-results" rel="nofollow">https://www.motorist.sg/coe-results</a>
<a href="https://bydcars.sg/wp-content/uploads/2025/01/BYD-Pricelist-8-Jan-–-12-Jan-2025-.pdf" rel="nofollow">https://bydcars.sg/wp-content/uploads/2025/01/BYD-Pricelist-...</a></p>
]]></description><pubDate>Wed, 12 Feb 2025 04:26:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=43021886</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=43021886</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43021886</guid></item><item><title><![CDATA[New comment by hhandoko in "Vue.js and Brunch: Webpack Alternative"]]></title><description><![CDATA[
<p>I looked into Vue + Webpack vs Vue + Brunch on my last project. I ended up with Brunch because the requirements are fairly basic and Brunch are easier to grok. Had the requirements be a little bit more complex, I could have easily gone for Webpack.<p>IMO, there are a few key things lacking with the Vue + Brunch combo:<p>- The `vue-brunch` plugin seems to be no longer in active development? (<a href="https://github.com/theocodes/vue-brunch" rel="nofollow">https://github.com/theocodes/vue-brunch</a>)<p>- The `sass-loader` plugin allows me to use Sass dialect in SFC-style Vue (Single File Component). I'm using plain CSS with Vue + Brunch SFC as I cannot find a Brunch plugin offering similar functionality.<p>- There are some Brunch idiosyncracies. For one, the processing pipeline is executed as per `package.json` (dev)Dependencies ordering. I spent quite a bit of time before figuring this out.</p>
]]></description><pubDate>Mon, 21 Aug 2017 13:51:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=15064592</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=15064592</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15064592</guid></item><item><title><![CDATA[New comment by hhandoko in "Phoenix 1.3.0 Released"]]></title><description><![CDATA[
<p>The Scala example, yes... The Elixir one? Is it actually a Monad? I figure it's simply destructuring + pattern matching (against the value of the first tuple value, :ok or :error atom).<p>To expand a bit more, it's not like Scala's `Either[T, U]` where we're limited to a pair of types, I think you can return other atom values (but use :ok and :error) as a convention.<p>Also, there is an Elixir library I'm using that's a closer in spirit to Scala's for-comprehension called `monadex`. Example below:<p><pre><code>    result = success(comment_params)
             ~>> fn p  -> link_reply_to_id(p)  end
             ~>> fn p  -> create_changeset(p)  end
             ~>> fn cs -> assert_changeset(cs) end
             ~>> fn cs -> insert_changeset(cs) end</code></pre></p>
]]></description><pubDate>Mon, 31 Jul 2017 00:48:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=14888771</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14888771</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14888771</guid></item><item><title><![CDATA[New comment by hhandoko in "Phoenix 1.3.0 Released"]]></title><description><![CDATA[
<p>I believe these are referred to Railway-Oriented Programming. I've seen several other examples for Elixir (incl. ones using macros), but by far this is the 'cleanest' syntax :)<p>Here's a similar construct in Scala:<p><pre><code>    (for {
      user   <- currentUser(...)
      group  <- groups.fetchForUser(...)
      friend <- friendships.fetchFriend(...)
      member <- groups.addMember(...)
    } yield {
      render(...)
    }).recover {
      case e: Exception -> ...
    }</code></pre></p>
]]></description><pubDate>Sat, 29 Jul 2017 03:06:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=14879280</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14879280</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14879280</guid></item><item><title><![CDATA[New comment by hhandoko in "Scaling Scala"]]></title><description><![CDATA[
<p>IMO the ProcessBuilder class is not a very good example, as the operators are designed to match the existing shell / bash ones (e.g. `#>>` is similar in behaviour to bash's `>>`).</p>
]]></description><pubDate>Sun, 28 May 2017 10:00:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=14433746</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14433746</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14433746</guid></item><item><title><![CDATA[New comment by hhandoko in "Scaling Scala"]]></title><description><![CDATA[
<p>> Scala core library is littered with :: +: and other nonsensical operators.<p>They are very useful. With the two you mentioned (:: and +:) they can be used for pattern matching in addition to concatenation (of a list / sequence), for example:<p><pre><code>    scala> val list = 1 :: 2 :: Nil
    list: List[Int] = List(1, 2)


    scala> val x = list match {
         |   case head :: _ => head
         |   case _         => 0
         | }
    x: Int = 1

    scala> val seq = 1 +: Seq(2, 3) :+ 4
    seq: Seq[Int] = List(1, 2, 3, 4)

    scala> val y = seq match {
         |   case a +: _ :+ b => a + b
         |   case _           => 0
         | }
    y: Int = 5
</code></pre>
It can be a bit confusing at first, especially for mutable vs immutable collection operators. But you end up remembering some, if not most of it, after using them a number of times.</p>
]]></description><pubDate>Sun, 28 May 2017 01:49:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=14432768</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14432768</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14432768</guid></item><item><title><![CDATA[New comment by hhandoko in "Building a Reddit-like site after 3-4 months learning Elixir"]]></title><description><![CDATA[
<p>I'm currently working with Scala and recently dabbling with Elixir and Phoenix. It's a good language and great platform, however, I still prefer static typing.<p>I'm still getting used to dynamic typing in Elixir. Most of the time I feel like just matching against Map data structure or records.<p>While Dialyzer is great, writing the typespecs is a bit of a maintenance overhead. I suppose it's a tradeoff...<p>> I came to Elixir from Scala, [..] now I don't have to deal with the half of the Scala community that tries to make Scala into Haskell.<p>IMO Scala will continue to be a multi-paradigm lang. On pure-FP and libs, it's a choice and really depends on the problem domain. It might not be a good solution to everyone, but I'm glad it exists.</p>
]]></description><pubDate>Tue, 23 May 2017 05:40:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=14399043</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14399043</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14399043</guid></item><item><title><![CDATA[New comment by hhandoko in "Kotlin is the hero Android needs"]]></title><description><![CDATA[
<p>> Nothing really changed, you could write Android apps on Kotlin before, as well as on any other JVM language. But now "Kotlin is the hero".<p>The announcement shows Google making a commitment to make Kotlin successful in Android, rather than leaving the effort all to the community and JetBrains.<p>> I suspect that Google's adoption of Kotlin is just politics: [...] Google could acknowledge Scala years ago, but didn't [...]<p>I think this post explains it best: <a href="https://medium.com/@ScalaWilliam/why-scala-didnt-miss-the-android-opportunity-92eaaf63c339" rel="nofollow">https://medium.com/@ScalaWilliam/why-scala-didnt-miss-the-an...</a> .<p>In regards with the Scala evolution, there's a lot of things to be excited about. In the near term, 2.13 should see various optimisation to core libraries and faster compilation.<p>> Also, I don't understand the point of Kotlin. [...] Kotlin is just a subset of Scala. [...]<p>Kotlin is a better Java, whereas Scala is much, much more.<p>Scala is still my go-to JVM languages, but one Kotlin use case for me is to write libraries that will be called from Java [1]. Its biggest advantage is that it's succinct, has useful functional features (e.g. Scala-like collections), while producing code signatures that's very close to Java.<p>Notes:<p>[1] - <a href="https://github.com/builtamont-oss/cassandra-migration" rel="nofollow">https://github.com/builtamont-oss/cassandra-migration</a></p>
]]></description><pubDate>Fri, 19 May 2017 14:06:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=14375751</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14375751</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14375751</guid></item><item><title><![CDATA[New comment by hhandoko in "New JIT optimizer in the Zing JVM"]]></title><description><![CDATA[
<p>Faster CPU does not eliminate GC pauses if your workload consumes a large amount of RAM. This is one of the other benefits which Zing provides.</p>
]]></description><pubDate>Thu, 04 May 2017 00:33:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=14261505</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14261505</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14261505</guid></item><item><title><![CDATA[New comment by hhandoko in "New JIT optimizer in the Zing JVM"]]></title><description><![CDATA[
<p>VMs adds a noticeable overhead / performance hit.<p>Besides the benefits the new JIT provides, Zing will help you  if your workload runs with / consumes over 8GB of RAM. At this point, HotSpot GC pauses [1] starts becoming noticeable (i.e. jitter).<p>Notes:<p>[1] - <a href="http://www.azul.com/resources/azul-technology/zing-consistent-low-latency-performance/" rel="nofollow">http://www.azul.com/resources/azul-technology/zing-consisten...</a></p>
]]></description><pubDate>Thu, 04 May 2017 00:31:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=14261494</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14261494</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14261494</guid></item><item><title><![CDATA[New comment by hhandoko in "Ryzen is for Programmers"]]></title><description><![CDATA[
<p>Yeah, this is another problem that I had. Plenty of full-tower cases these days support EATX, but SSI-EEB  not so much (at least, the ones that can support it out-of-the-box).<p>In the end, I went with one of the Phanteks Enthoo [1] cases. Decent quality without breaking the bank :)<p>Notes:<p>[1] - <a href="http://www.phanteks.com/enthoo-pro.html" rel="nofollow">http://www.phanteks.com/enthoo-pro.html</a></p>
]]></description><pubDate>Tue, 02 May 2017 09:33:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=14245124</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14245124</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14245124</guid></item><item><title><![CDATA[New comment by hhandoko in "Ryzen is for Programmers"]]></title><description><![CDATA[
<p>For me it brings a lot of benefits: easier to find parts, consumer-level parts pricing, and lower TDP.<p>I'm running a dual Xeon as you mentioned, through buying ex-fleet parts at less than half price of new ones. Several issues I experienced:<p>- Lack of motherboard options. I had to purchase new motherboard at a high price since the ones that support dual Xeons are either in an incompatible form factor or simply out-of-stock. I settled with Asus Z9PE-D8 WS with an SSI-EEB form factor.<p>- Outdated BIOS. I had to order a new, pre-flashed, BIOS chip since the BIOS that came with the motherboard refused to boot with the CPU and memory combo.<p>- Hard to find suitable ECC RAM. The motherboard only supports limited RAM (speed + latency) configs, and finding those is becoming harder. Availability looks seasonal at times.<p>- Needs capable power supply. One thing that people often look past is the need of a proper PSU. I had to upgrade to one which support two CPU power connectors.</p>
]]></description><pubDate>Tue, 02 May 2017 04:39:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=14244000</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14244000</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14244000</guid></item><item><title><![CDATA[New comment by hhandoko in "Buku v3.0 – Command Line Bookmark Manager"]]></title><description><![CDATA[
<p>> Hence, Buku (after my son's nickname, meaning close to the heart in my language).<p>Coincidentally, `Buku` translates to `Book` in Indonesian...</p>
]]></description><pubDate>Thu, 27 Apr 2017 08:21:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=14210012</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14210012</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14210012</guid></item><item><title><![CDATA[New comment by hhandoko in "Why functional programming matters"]]></title><description><![CDATA[
<p>> Functional programming has nothing to do with declarative/imperative programming styles.<p>> The "functional" part determines the architecture by which the code is structured opposed to the style (vanity) by which the structure comes together.<p>I think it means a code can be functional but looks imperative. One example is the for-comprehension in Scala:<p><pre><code>    val aFuture = future(a)
    val bFuture = future(b)

    (for {
      a <- aFuture
      b <- bFuture
      c <- futureC(a, b)
    } yield c)
</code></pre>
This is just a contrived example for working with `Future[T]`, but it can be applied to other monadic types.<p>For an example library that can be used with a few different styles, have a look at this: <a href="http://jsuereth.com/scala-arm/usage.html" rel="nofollow">http://jsuereth.com/scala-arm/usage.html</a></p>
]]></description><pubDate>Thu, 20 Apr 2017 07:45:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=14154710</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14154710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14154710</guid></item><item><title><![CDATA[New comment by hhandoko in "Drupal Confessions – An Open Letter"]]></title><description><![CDATA[
<p>Yes, certainly not a normal nor common view, but as you said, a lot of people seems to share it.</p>
]]></description><pubDate>Fri, 14 Apr 2017 08:38:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=14113305</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14113305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14113305</guid></item><item><title><![CDATA[New comment by hhandoko in "Drupal Confessions – An Open Letter"]]></title><description><![CDATA[
<p><i>> Marvel Comics recently fired an illustrator for hiding Islamist, anti-Semitic and anti-Christian references in his art. His ideas were "normal" in his country - should that have been ignored? Reprimanded as long as he kept his politics out of his art?</i><p>Indonesian here, I'm not sure to what you attribute it to a normal view by Indonesians?</p>
]]></description><pubDate>Thu, 13 Apr 2017 03:10:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=14103843</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=14103843</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14103843</guid></item><item><title><![CDATA[New comment by hhandoko in "Why .NET Core Made C# Your Next Programming Language to Learn"]]></title><description><![CDATA[
<p>I think the JVM is a really good runtime, and somehow its poor reputation came from Java applet security holes and the verbosity of the Java language.<p>And no, I don't think you are crazy. I had a really bad experience trying out Spring for the first time (with ant task, etc.). I was pulling my hair out and it turned me off Java for a few years before discovering Play Framework v1 (the original Java version).<p>How long ago was your experience with the build system? These days you can bootstrap a new project with Gradle, Leiningen, or SBT pretty easily.</p>
]]></description><pubDate>Thu, 30 Mar 2017 05:17:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=13993102</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=13993102</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13993102</guid></item><item><title><![CDATA[New comment by hhandoko in "Why .NET Core Made C# Your Next Programming Language to Learn"]]></title><description><![CDATA[
<p>In terms of language: yes, you are correct.<p>I had seriously contemplated switching to F# before Scala, and attended a full-day workshop for it, however the dealbreaker for me was the poor tooling support (this was around 2011). After switching to Scala, there was very little reason for me to come back to the .NET ecosystem.</p>
]]></description><pubDate>Thu, 30 Mar 2017 05:07:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=13993064</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=13993064</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13993064</guid></item><item><title><![CDATA[New comment by hhandoko in "Why .NET Core Made C# Your Next Programming Language to Learn"]]></title><description><![CDATA[
<p>I had been working in the Windows / .NET ecosystem for almost a decade prior to my current role. I always thought C# was a nice language to work in, CLR is a really capable runtime, and Visual Studio is one of the best IDE out there. But my observations is that C# in .NET core seemed to appeal only to existing C# / .NET devs.<p>I am excited for the new functional features coming in C# 7, but to be honest, these days it would not be my first choice of language when starting a new project. That choice falls to Scala due to its versatility:<p>- Blending of OO and FP.<p>- Works in backend, frontend (ScalaJS), or compile to native.<p>- Multi-discipline applications, e.g. web apps, data science, scientific computing, etc.<p>One of the biggest benefit as well, is that it leverages the JVM ecosystem. Big, mature community and choice is abundant. This is actually one of the things that really struck me when first working in it (JVM). It seems like you always have at least three choice for anything, that to most extent works well with each other:<p>- Alternative languages: Scala, Kotlin, Clojure, etc.<p>- Build system: Maven, Gradle, SBT, etc.<p>- GC: HotSpot, Zulu / Zing, Shenandoah, etc.</p>
]]></description><pubDate>Wed, 29 Mar 2017 02:22:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=13982791</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=13982791</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13982791</guid></item><item><title><![CDATA[New comment by hhandoko in "De-Muslimization: Flying while Muslim after the travel ban"]]></title><description><![CDATA[
<p>I'm not sure why you attribute this to self-importance. It's a real risk and a fair concern. USA border and immigration officers sounds hostile and antagonising from the stories I heard on Twitter (over the course of the past week).<p>It will take me close to 24 hours to reach American soil. Depending on my luck, I might either:<p>a) pass without issue, or<p>b) hand over my phone and passwords and/or complete CS puzzles (which may also include period of detainment)<p>They can turn me back for any reasons and I would have lost thousands of dollars: if my answers were unsatisfactory, if there were some prejudice against my look, or even if the officer(s) were having a bad day.</p>
]]></description><pubDate>Fri, 03 Mar 2017 06:02:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=13781050</link><dc:creator>hhandoko</dc:creator><comments>https://news.ycombinator.com/item?id=13781050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13781050</guid></item></channel></rss>