<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: JTenerife</title><link>https://news.ycombinator.com/user?id=JTenerife</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 03:55:58 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=JTenerife" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by JTenerife in "Rust concurrency: the archetype of a message-passing bug"]]></title><description><![CDATA[
<p>"Therefore, rather than making you spend lots of time trying to reproduce the exact circumstances under which a runtime concurrency bug occurs, incorrect code will refuse to compile and present an error explaining the problem. As a result, you can fix your code while you’re working on it rather than potentially after it has been shipped to production. We’ve nicknamed this aspect of Rust fearless concurrency. Fearless concurrency allows you to write code that is free of subtle bugs and is easy to refactor without introducing new bugs."<p><a href="https://doc.rust-lang.org/1.30.0/book/second-edition/ch16-00-concurrency.html" rel="nofollow">https://doc.rust-lang.org/1.30.0/book/second-edition/ch16-00...</a><p>These sound like quite bold claims to me.</p>
]]></description><pubDate>Mon, 22 Jun 2020 13:33:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=23599966</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=23599966</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23599966</guid></item><item><title><![CDATA[New comment by JTenerife in "The Go Compiler Needs to Be Smarter"]]></title><description><![CDATA[
<p>No benchmarks or any other numbers. I wonder how much faster some typical Go code (some CLIs, Hugo or webservices) will run? Around 1%, 5% or 10%?<p>The Go compiler doesn't <i></i>need<i></i> to be smarter for Go's usecase. If it can be made smarter, fine. For best possible performance look at C/C++ or Rust.</p>
]]></description><pubDate>Fri, 05 Jun 2020 11:08:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=23427217</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=23427217</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23427217</guid></item><item><title><![CDATA[New comment by JTenerife in "Guitar – Git GUI Client"]]></title><description><![CDATA[
<p>What issues are there with the privacy policies? Did I miss something?</p>
]]></description><pubDate>Wed, 22 Apr 2020 16:10:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=22947091</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=22947091</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22947091</guid></item><item><title><![CDATA[New comment by JTenerife in "Go Developer Survey 2019 Results"]]></title><description><![CDATA[
<p>You could apply for a free license for open source.<p><a href="https://www.jetbrains.com/go/buy/#discounts?billing=yearly" rel="nofollow">https://www.jetbrains.com/go/buy/#discounts?billing=yearly</a></p>
]]></description><pubDate>Tue, 21 Apr 2020 03:25:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=22931543</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=22931543</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22931543</guid></item><item><title><![CDATA[New comment by JTenerife in "Go Developer Survey 2019 Results"]]></title><description><![CDATA[
<p>For individuals only $89:<p><a href="https://www.jetbrains.com/go/buy/#personal?billing=yearly" rel="nofollow">https://www.jetbrains.com/go/buy/#personal?billing=yearly</a></p>
]]></description><pubDate>Tue, 21 Apr 2020 03:24:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=22931536</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=22931536</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22931536</guid></item><item><title><![CDATA[New comment by JTenerife in "Web Development Simplified with Svelte"]]></title><description><![CDATA[
<p>Does anyone know what's the status of Typescript support in Svelte is? This thread is understandably locked:<p><a href="https://github.com/sveltejs/svelte/issues/1639" rel="nofollow">https://github.com/sveltejs/svelte/issues/1639</a><p>Still I'm curious.<p>Typescript and RxJS (or MobX) with Svelte as the afterthought (<a href="https://michel.codes/blogs/ui-as-an-afterthought" rel="nofollow">https://michel.codes/blogs/ui-as-an-afterthought</a>) would be a nice combo.</p>
]]></description><pubDate>Fri, 27 Sep 2019 13:06:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=21091470</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=21091470</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21091470</guid></item><item><title><![CDATA[New comment by JTenerife in "Go 1.13 Release Notes"]]></title><description><![CDATA[
<p>Rust needs to settle down to reach broader adaption, because the ecosystem must stabelize. No business oriented project manager would choose Rust as an alterative to Go or Java while Rust has "only" a community http lib on version 0.12.<p>Sure, async needs to be shipped and polished, but then Rust needs to tell the world: "We have all you need and as stable as you need."</p>
]]></description><pubDate>Wed, 04 Sep 2019 05:52:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=20874379</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=20874379</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20874379</guid></item><item><title><![CDATA[New comment by JTenerife in "Google just deleted my nearly 10-year-old free and open-source Android app"]]></title><description><![CDATA[
<p>> Google's impact on the world is strongly positive.<p>I couldn't disagree more. Google doesn't make bazillions of dollars because they provide us with live traffic on maps. Google has significantly enabled and actively driven the mindless consume-everything-all-the-time culture with all the horrible consequences for our mental-health and the environment.<p>The world would be a much better place without the ones like Google, Facebook and Amazon.</p>
]]></description><pubDate>Thu, 29 Aug 2019 11:01:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=20828390</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=20828390</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20828390</guid></item><item><title><![CDATA[New comment by JTenerife in "New React DevTools"]]></title><description><![CDATA[
<p>As if the improvements of the dev tools weren't enough, they've created a sweet interactive tutorial (<a href="https://react-devtools-tutorial.now.sh" rel="nofollow">https://react-devtools-tutorial.now.sh</a>)! Don't know it it's new, but I'am very impressed.</p>
]]></description><pubDate>Fri, 16 Aug 2019 06:04:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=20712548</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=20712548</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20712548</guid></item><item><title><![CDATA[New comment by JTenerife in "Hooks-Based WebGL Library for React"]]></title><description><![CDATA[
<p>Agreed that this is trivial model.<p>Regarding React: In many webgl use-cases UI-framework overhead can be neglected as the user interacts either with the scene or the UI rendered by the framework. The browser doesn't usually need to update the DOM and the scene in one frame.</p>
]]></description><pubDate>Sun, 26 May 2019 04:01:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=20013037</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=20013037</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20013037</guid></item><item><title><![CDATA[New comment by JTenerife in "Flutter desktop shells"]]></title><description><![CDATA[
<p>I've used PyQt some years ago and loved it. I can't remember any bigger issues at all. Super productive and fun.</p>
]]></description><pubDate>Thu, 25 Apr 2019 17:06:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=19750185</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=19750185</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19750185</guid></item><item><title><![CDATA[New comment by JTenerife in "Observables, Side-Effects, and Subscriptions: Some Reactive Best Practices"]]></title><description><![CDATA[
<p>This does a good job: <a href="https://gist.github.com/staltz/868e7e9bc2a7b8c1f754" rel="nofollow">https://gist.github.com/staltz/868e7e9bc2a7b8c1f754</a><p>We are using reactive programming basically everywhere. Example (Angular):<p>The Angular Router has an Observable "paramMap". We <i></i>don't<i></i> subscribe to it but are creating another Observable for the data that should be loaded.<p><pre><code>  getData$ = (
    paramMap$: Observable<ParamMap>
  ): Observable<MyData> => {
    return paramMap$.pipe(
      // Create a query string
      map(paramMap => {
        // some pure function - business logic
        return getSomeQueryBasedOnTheRouteParams(
          paramMap 
        );
      }),
      // get the data
      // select$ is a method on the customStore that wraps the http client and does some more stuff
      // The switchMap is actually one of the concepts that I found initially not the easiest to understand 
      switchMap(someQuery=> {
        return this.customStore.select$({
          query: someQuery
        });
      }),
      map(rawData => {
        // pure function with business logic
        return modifyData(rawData);
      }),
      shareReplay()
    );
  };
</code></pre>
Then it goes on with filtering, etc.<p><pre><code>   getFilteredData$ = (
     // filter:$ is in our case a simple Subject we're calling next(newFilterValue)
     // NGRX, NGXS or Akita are popular state management libraries to manage this kind of state
     filter$: BehaviourSubject<string>,
     data$: Observable<MyData>): Observable<MyData> => {
        combineLatest(filter$, data$).pipe(
          // Do the filtering using pure functions
          map( ...
            return myFilterFuntion(filter, data);
          )
        )
   };
</code></pre>
The filteredData$ Observable can be consumed via async pipe in a component.<p>The business logic is the same as in imperative-pull code. But using the abstraction of RxJS a lot of boilerplate and indirection vanishes. RxJS is not the easiest abstraction to learn (for me), but as with all, once you're comfortable a lot of the likely intimidating code above will become familiar. You just focus on writing business-logic in pure functions and combine it with RxJS.</p>
]]></description><pubDate>Fri, 29 Mar 2019 07:22:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=19519771</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=19519771</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19519771</guid></item><item><title><![CDATA[New comment by JTenerife in "Observables, Side-Effects, and Subscriptions: Some Reactive Best Practices"]]></title><description><![CDATA[
<p>>> because of the side effects that get caused from subscriptions.<p>Hmmmm, I wonder how a subscription can cause side effects? I can only think of mutating the data in the subscription. But that should not be done.<p>We are using RxJS with great success but you should go all the way with Observables: All computations/combination/etc. should be done in pipe()s. If you need to combine some plain data with Observables create a subject for the plain data and pipe(combineLatest(),map(), ...). Don't mix it into subscriptions. Subscribe at the very end of the chain. No modification in subscribtions.</p>
]]></description><pubDate>Fri, 29 Mar 2019 06:36:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=19519605</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=19519605</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19519605</guid></item><item><title><![CDATA[New comment by JTenerife in "Rocket v0.4: Typed URIs, Database Support, Revamped Queries"]]></title><description><![CDATA[
<p>Very efficient usage of CPU and RAM. Regarding cloud functions like AWS lambda: Fast startup.</p>
]]></description><pubDate>Sun, 09 Dec 2018 06:49:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=18639747</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=18639747</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18639747</guid></item><item><title><![CDATA[New comment by JTenerife in "Rust 2018 survey results"]]></title><description><![CDATA[
<p>How are you wrapping your Rust code? Lambda doesn't support it yet, does it?</p>
]]></description><pubDate>Wed, 28 Nov 2018 18:47:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=18554366</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=18554366</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18554366</guid></item><item><title><![CDATA[New comment by JTenerife in "How I’ve Attracted the First 500 Paid Users for My SaaS"]]></title><description><![CDATA[
<p>I wonder what would be a good approach to scale support. It seems that the creator is currently handling all inqueries by himself.
@Takuya: How many support requests do you get per day?</p>
]]></description><pubDate>Mon, 15 Oct 2018 06:02:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=18217708</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=18217708</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18217708</guid></item><item><title><![CDATA[NGXS Quickstart Tutorial (Angular State Management)]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=9P5DTlg9oLc">https://www.youtube.com/watch?v=9P5DTlg9oLc</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=16801973">https://news.ycombinator.com/item?id=16801973</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 10 Apr 2018 15:18:58 +0000</pubDate><link>https://www.youtube.com/watch?v=9P5DTlg9oLc</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=16801973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16801973</guid></item><item><title><![CDATA[New comment by JTenerife in "History of Spring Framework and Spring Boot"]]></title><description><![CDATA[
<p>Spring is a very powerful but complex framework. It's very easy to get started (Spring Boot). I especially love JPA as I just need the persistence to be getting done. The architecture is clean and standardized.<p>However, you have to be prepared for a serious learning curve when needing customizing (e.g. attribute based authorization with Spring Security and AOP). It's a jump in the cold water after the pain- and effortless start using Spring Boot.<p>I haven't mastered Spring yet (in depth understanding of DI, AOP and the configuration), but I feel that when mastered, Spring is the ultimate framework to build concise and clean applications.</p>
]]></description><pubDate>Mon, 02 Apr 2018 05:45:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=16732581</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=16732581</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16732581</guid></item><item><title><![CDATA[New comment by JTenerife in "Germany's Wolf Population on the Rise"]]></title><description><![CDATA[
<p>That's not what I've said. And I'm not suggesting this. Your comment is a bit hostile.</p>
]]></description><pubDate>Mon, 18 Dec 2017 14:57:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=15952023</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=15952023</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15952023</guid></item><item><title><![CDATA[New comment by JTenerife in "Germany's Wolf Population on the Rise"]]></title><description><![CDATA[
<p>Wolves are preditors. There's a reason why our ancesters have evicted them.</p>
]]></description><pubDate>Mon, 18 Dec 2017 03:57:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=15949285</link><dc:creator>JTenerife</dc:creator><comments>https://news.ycombinator.com/item?id=15949285</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15949285</guid></item></channel></rss>