<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: shadowmint</title><link>https://news.ycombinator.com/user?id=shadowmint</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 18 Jun 2026 09:40:46 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=shadowmint" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by shadowmint in "An understanding of AI’s limitations is starting to sink in"]]></title><description><![CDATA[
<p>If the business wanted to track the rate of failures and create predictive models about when things fail, or detect anomalous behaviour, that's what they would have set out with as the goal, and, perhaps, some ML model might have helped, but probably, it would've been too unreliable and any number of standard predictive models with well known characteristics would have been used instead.<p>That's not what they wanted.<p>What people are being sold is AI/ML as a magic bullet that will do something useful <i>regardless of the situation</i>,
and it lets business people avoid making decisions about what they actually want, because AI/ML can be anything,
so they just signup for it and expect to get 20 things they didn't know they wanted handed to them on a plate.<p>Turn out, it's not enough to just collect a bunch of data and wave your magic wand at it. It wasn't with web analytics 10 years ago, it's still not.<p>What you actually need is someone who has a bunch of tricks up their sleeve, and has done this before, and can suggest a bunch of Business Insights the business might need <i>before they start building anything</i>, people that actually <i>decide</i> what to do, and actions taken to investigate, and solve those problems.<p>I mean, to some degree you're right; perhaps ML models could be useful for tracking hardware failures, but that's not what the parent post is talking about. The previous post was talking about just collecting the data and expecting the predictive failure models to just jump out magically.<p>That doesn't happen; it needs a <i>person</i> to have the insight that the data could be used for such a thing, and that needs to happen before you go and randomly collect all the wrong frigging metrics.<p>...but hiring experts is expensive, and making decisions is hard. So ML/AI is sold like snake-oil to managers who want to avoid both of those things. :)</p>
]]></description><pubDate>Mon, 15 Jun 2020 12:59:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=23526808</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=23526808</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23526808</guid></item><item><title><![CDATA[New comment by shadowmint in "Angular v8.0"]]></title><description><![CDATA[
<p>Why does having a different opinion to you mean someone has no idea what they’re talking about, or has never used a thing “seriously“?<p>I used to love angular, then I got a job which was a “| async” dumpster fire and spent a year watching a team of smart c# developers wallow in a mire of disaster so bad it became a two week regression to change a text field on a form. So full of amazing functional statement no one, even the original authors, could touch it without breaking something in the process.<p>so.<p>Your milage may vary. I no longer particularly like angular, personally, because I find it a chore to herd inexperienced FactoryInjectorConstructorFactoryPattern angular developers into not screwing things up.<p>...but talented team can do well with it too, and I’ve seen people screw up react projects too.<p>It really is more about good practice and experience than framework, your personal preference is probably, like mine, basically irrelevant.</p>
]]></description><pubDate>Wed, 29 May 2019 13:41:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=20040000</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=20040000</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20040000</guid></item><item><title><![CDATA[New comment by shadowmint in "Negotiations Failed: How Oracle Killed Java EE"]]></title><description><![CDATA[
<p>I spent 4 years as a professional python developer.<p>We certainly shipped (using django) and it was certainly slow, and remains a painfully slow very successful enterprise app.<p>I’m not arguing that the slowness is <i>deal breaking</i>, but it <i>is</i> slow, and it does, routinely, break the SLAs its supposed to meet.<p>So... unusably slow? no.<p>...but slow? yes, it really is.<p>imo. your milage may vary. /shrug</p>
]]></description><pubDate>Sat, 04 May 2019 16:32:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=19827463</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=19827463</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19827463</guid></item><item><title><![CDATA[New comment by shadowmint in "Negotiations Failed: How Oracle Killed Java EE"]]></title><description><![CDATA[
<p>Lovely theory, but in practice it works more like this:<p>1) write everything in python because its easy and quick to do so.<p>2) its slow as.<p>3) abandon software and write it in something else, or, live on with slow ass software and blame python for being slow and rubbish forever more.<p><i>re-writing</i> python in c is a hideously painful process, and its proven to be very unsuccessful practically.<p>Writing <i>new code</i> in c/c++/whatever and exposing a python api is where successful projects like numpy and tensorflow live.<p>python is very good at what it is, but no one is ever going to go and rewrite your python code in c to make it faster; its just going to be slow forever.</p>
]]></description><pubDate>Sat, 04 May 2019 09:44:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=19825449</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=19825449</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19825449</guid></item><item><title><![CDATA[New comment by shadowmint in "Asynchronous Programming in Rust"]]></title><description><![CDATA[
<p>Sure, but it sucks to be left with code <i>you</i> have to rewrite because you're donating your time to the cause to find problems and smooth the path for <i>other people</i> in the future.<p>Maybe some people are in to that for fun, but the for the majority of people, the message should be:<p>stick with stable folks.</p>
]]></description><pubDate>Sun, 21 Apr 2019 06:08:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=19710764</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=19710764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19710764</guid></item><item><title><![CDATA[New comment by shadowmint in "Ask HN: How do I improve our data infrastructure?"]]></title><description><![CDATA[
<p>> sql to write etl in will drastically reduce the amount of work needed to write etl.<p>:)<p>My experience with writing an ETL in SQL is that it is almost never, quick, easy, correct or easy to test, and also almost always denormalized, or unconstrained  (dimensonal keys which aren't 'real' foreign keys, just numbers so you can parallelize the data inserts and updates without constraint errors).<p>So... your milage may vary with that.<p>It's most certainly <i>not true</i> that writing any kind of ETL that uses SQL saves time in all cases.</p>
]]></description><pubDate>Sat, 20 Apr 2019 13:34:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=19706444</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=19706444</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19706444</guid></item><item><title><![CDATA[New comment by shadowmint in "Ask HN: How do I improve our data infrastructure?"]]></title><description><![CDATA[
<p>It sounds like you already have an idea of what you want to do, but I think you should pause and think more deeply about what you have, vs. what you want.<p>What <i>I would want</i> in your situation is:<p><pre><code>    - All the data in one place.
    - An easy way to explore the data. 
    - A single source of truth for transformed data.
    - Metadata to explain the data model (ie. documentation).
</code></pre>
What you're proposing does some of those things, but it also:<p><pre><code>    - Adds yet another maintain-forever technology to your stack.
    - Adds yet another pipeline (or set of pipelines) that does the same thing.
    - Moves from an architecture that is clustered for scale (ie. spark) to one that only scales vertically (postgres). 
    - Potentially introduces *yet more* sources of truth for some data.</code></pre>
> I was thinking that in a first iteration, data scientists would explore their denormalized, aggregated data and create their own feature with code.<p>^ Moving data into postgres doesn't make this somehow trivial, it just enables people to use a different SQL dialect. The spark API is, for anyone competent to be writing code, not meaningfully less complicated than using the postgres API.<p>I appreciate the naive attractiveness of having a traditional "data warehouse" in a SQL database, but there is actually a reason why people are moving away from that model:<p><pre><code>    - it doesn't scale
    - SQL is terrible language to write transformations in (its a *query* language, not an ETL pipeline)
    - it's only vaguely better when you have many denormalised tables, vs. s3 parquet blobs
    - you have to invent data for schema changes (ie. new table schema, old data in the table) (ie. migrations are hard)
</code></pre>
More tangibly, I know people who have done exactly what you're talking about, and regretted it. Unless you can very clearly demonstrate that what you're making is meaningfully better, it won't be adopted by the other team members and you'll have to either live forever in your silo, or eventually abandon it and go back to the old system. :/<p>So... I don't recommend it.<p>The points you're making are all valid, and for a small scale like this, if you were doing it from scratch it would be a pretty compelling option... but <i>migrating</i> entirely will be prohibitively expensive, and migrating partially will be a disaster.<p>Could you perhaps find better way to orchestrate your spark tasks, eg. with airflow or ADF or AWS Glue or whatever?<p>Personally I think that databricks offers a very attractive way to allow data exploration without a significant architecture change.<p>The architecture you're using isn't fundamentally bad, it just needs strong across the board data management... but that's something very difficult to drive from the bottom up.</p>
]]></description><pubDate>Sat, 20 Apr 2019 13:21:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=19706391</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=19706391</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19706391</guid></item><item><title><![CDATA[New comment by shadowmint in "Please be more careful when interpreting the Stack Overflow Developer Survey"]]></title><description><![CDATA[
<p>That seems fair; but they have a whole methodology section.<p>If you want to argue with it, surely the onus is on <i>you</i> to do it concretely?<p>> Because of your methodology, we must assume a biased sample.<p>^ I find this quote problematic.<p>Why must we assume that? If you want to distribution comparisons and point out there survey results are skewed by X compared to some other survey Y... ok.<p>...but that’s not whats happening right? Its just a flat out arbitrary assumption.<p>I don’t like arbitrary assumptions when I’m doing maths.<p>Its <i>easy</i> to say something is wrong, but if you can’t quanitfy <i>how</i> its wrong, I’m struggling to see why I should accept the assumption being raised here.<p>The js survey was very similar; it was arbitrarily asserted it went to more react developers... but no one actually proved that. They just... assumed it.</p>
]]></description><pubDate>Sat, 13 Apr 2019 15:17:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=19653476</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=19653476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19653476</guid></item><item><title><![CDATA[New comment by shadowmint in "Please be more careful when interpreting the Stack Overflow Developer Survey"]]></title><description><![CDATA[
<p>> you cannot generalize from a non-random sample<p>So, honest question:<p>If any survey of any size can be ignored on the basis that the sample is not random, then how is any survey meaningful?<p>Isn’t this a self defeating argue?<p>You can’t prove the sample is random, all you can do is show differences between samples and suggest its not <i>consistent</i>... but how do we go away and prove that some other survey we’re comparing it to is from a random sample?<p>ie. Isnt this just a convenient excuse to deny that a survey is meaningful?<p>Statistically, how do you <i>mathemtaically quantify</i> the effect of selection bias?<p>...because, it seems to me, unless you can actually do that, you’re just doing some arm chairmhand waving because you don’t like the results youre seeing.<p>This has come up several times (eg. js survey about react vs angular), and no one has ever given me a meaningful and mathematical response.<p>Its always just.. “it must be sample bias”, regardless of the 90000 people they surveyed.<p>I don’t accept you can survey 90000 developers and cannot offer any generalisation from those results <i>without quanatitively proving</i> there is an overwhelming sample bias, and <i>specifically</i> quantifying the degree of that bias.<p>Am I missing something here? Everyone seems thoughorly convinced that this is perfectly normal.<p>(I’m not proud, I’ll take your down votes, but please answer and explain what I’m missing)</p>
]]></description><pubDate>Sat, 13 Apr 2019 14:51:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=19653305</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=19653305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19653305</guid></item><item><title><![CDATA[New comment by shadowmint in "On Learning Rust and Go: Migrating Away from Python"]]></title><description><![CDATA[
<p>Oh please, go read the source code for tensorflow and then come back and we can have a real conversation.</p>
]]></description><pubDate>Sun, 24 Mar 2019 12:47:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=19476033</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=19476033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19476033</guid></item><item><title><![CDATA[New comment by shadowmint in "On Learning Rust and Go: Migrating Away from Python"]]></title><description><![CDATA[
<p>no, the trivial frontend is built in python; the real code is usually c++ or c.<p>Ignore that reality if you want to, but it is a fact.<p>Big complicated python projects are seldom pure python, they are usually a friendly python frontend to a serious application written in something else.<p>It seems in no way remarkable that someone wanting to build a serious backend type piece of functionality would pick another language that was, just for example, multithreaded.</p>
]]></description><pubDate>Sun, 24 Mar 2019 12:41:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=19475999</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=19475999</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19475999</guid></item><item><title><![CDATA[New comment by shadowmint in "Data Science Teams Need Generalists, Not Specialists"]]></title><description><![CDATA[
<p>> “one person sources the data, another models it, a third implements it, a fourth measures it”<p>Call it whatever you like, it is what it is.</p>
]]></description><pubDate>Fri, 22 Mar 2019 14:35:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=19462879</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=19462879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19462879</guid></item><item><title><![CDATA[New comment by shadowmint in "Python Developer Survey 2018 Results"]]></title><description><![CDATA[
<p>oh come on. 18000 responses.<p>This is the js survey results all over again: no. Unless you can <i>statistically prove</i> the results are biased, you don’t get to ignore the results because you dont like them.<p>Finding data points with <i>no methodology</i> that contract the survey result <i></i>does not invalidate the survey results<i></i>.<p>Thats. not. how statistics work.<p>A great deal of effort was put into this survey, and the stats you’re looking at are more likely biased than the ones in this survey.<p>The stats and the methodology here are clearly documented; if you want to argue with them, be specific and provide concrete statistical proof for your assertions.<p><i>Specifically</i>, why do the stats you have prove anything, and what confidence do you have that <i>they</i> are representative?</p>
]]></description><pubDate>Thu, 07 Feb 2019 15:11:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=19105631</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=19105631</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19105631</guid></item><item><title><![CDATA[New comment by shadowmint in "Asynchronous Programming in Rust book"]]></title><description><![CDATA[
<p>I know, but I still struggle to get a handle on the state of it really.<p>What <i>is</i> going on with futures 0.3? Why is everyone still using 0.1?<p>How does that relate to these issues?<p>It superficially appears like the whole async story is still in a concept stage...</p>
]]></description><pubDate>Tue, 22 Jan 2019 13:21:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=18968028</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=18968028</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18968028</guid></item><item><title><![CDATA[New comment by shadowmint in "Asynchronous Programming in Rust book"]]></title><description><![CDATA[
<p>Is it just me, or is the fact that the most important part:<p><a href="https://rust-lang.github.io/async-book/getting_started/state_of_async_rust.html" rel="nofollow">https://rust-lang.github.io/async-book/getting_started/state...</a><p>Is missing, somewhat ironic?<p>Feels very much like the state of async matches the state of the guide. :P<p>What <i>is</i> the state of async? Is it close? Is it still changing with the futures 0.3-beta not finalized?<p>Are we six months away? A year?</p>
]]></description><pubDate>Tue, 22 Jan 2019 13:09:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=18967953</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=18967953</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18967953</guid></item><item><title><![CDATA[New comment by shadowmint in "Ask HN: Go-to web stack today?"]]></title><description><![CDATA[
<p>> but I am not going to elaborate on this one because lots of people already pointed it out...<p>If there’s any meaningful reason use JWT, it would probably be helpful to articulate it for people.<p>(I would myself, but I consider JWT to be actively harmful to scaling and security in most implementations (specifically global server side refresh token stores which act as a single point of failure), poorly understood and generally speaking inferior to cookies in almost every respect... but necessary, in <i>some, limited</i> circumstances... but if you have any actual, non hand wavey reason why they’re useful for a general, single domain site, I’d be interested to hear why)</p>
]]></description><pubDate>Sat, 05 Jan 2019 15:19:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=18832025</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=18832025</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18832025</guid></item><item><title><![CDATA[New comment by shadowmint in "Ask HN: Go-to web stack today?"]]></title><description><![CDATA[
<p>This.<p>JWT is a pain in the ass for a lot of reason people don’t appear to understand until they actually try to use it; and the majority of the proponents for it appear to have never actually used it seriously and had to deal with issues like, oh wow, redis is now the bottleneck for my ‘stateless’ authentication.<p>Unless you need it and can articulate why, with no magic hand waving... just. use. cookies.<p>...and ffs, <i>dont</i> just put your jwt in a cookie, thats stupid...and if you don’t understand why, you shouldn’t be using jwt.</p>
]]></description><pubDate>Sat, 05 Jan 2019 15:12:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=18831990</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=18831990</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18831990</guid></item><item><title><![CDATA[New comment by shadowmint in "Clojure is Capable"]]></title><description><![CDATA[
<p>Obviously, but that's not the point I was making.<p>...but how does that (what you wrote) == "think of programming in Clojure like playing a difficult video game based on trial and error with emulator save states"?</p>
]]></description><pubDate>Fri, 28 Dec 2018 14:06:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=18776748</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=18776748</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18776748</guid></item><item><title><![CDATA[New comment by shadowmint in "Clojure is Capable"]]></title><description><![CDATA[
<p>> Interactive REPL based workflow (think of programming in Clojure like playing a difficult video game based on trial and error with emulator save states vs without).<p>What?<p>I'm not sure I understand what that's even trying to say?<p>Is it <i>trying</i> to say, think of <i>programming</i> as playing a difficult computer game, and using a REPL like having save states?<p>...because it sounds like you are saying programming in Clojure is like playing a difficult video game based on trial and error, which is a really rubbish endorsement.<p>> To touch on the video game analogy - imagine playing one of the old Mega Man games, Dark Souls, or Battletoads. Now, imagine that instead of getting feedback (a death) that results in a hard restart at the beginning, you instead just get taken back one action / event that caused an error (a single failed function call in REPL). That's like loading a save state, and if you like easy mode, you'll love the Clojure REPL.<p>?<p>mmm... but if your analogy is 'this is like doing something <i>really hard</i>, but you can timestep back to save state so it's not so bad', then you're still basically saying writing Clojure is really hard.<p>I don't think that's really a fair thing to say about Clojure, it's just a terrible analogy.<p>Expressing things in Clojure is what it excels at; if you want an anology the REPL is more like a minecraft sandbox that you just continually keep building in, rather, than planning out your structure on paper before you start playing.</p>
]]></description><pubDate>Fri, 28 Dec 2018 06:47:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=18775230</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=18775230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18775230</guid></item><item><title><![CDATA[New comment by shadowmint in "Microsoft is Dead (2007)"]]></title><description><![CDATA[
<p>It's easy to laugh now, but in 2007 this was spot on.<p>It was 10 years before Microsoft managed to drag itself up and do something useful with itself.<p>It's really remarkable that Microsoft managed such a big turn around after such epic failures (like mobile); others (like IBM...) are still struggling to do it.<p>Just goes to show, competitive pressure is a good thing. :)</p>
]]></description><pubDate>Sun, 02 Dec 2018 03:08:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=18580564</link><dc:creator>shadowmint</dc:creator><comments>https://news.ycombinator.com/item?id=18580564</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18580564</guid></item></channel></rss>