News for hackers. Stuff that matters.

_hardwaregeek

I appreciate the correction, but frankly this isn't what I hoped people would take away from my comment. My point was that race/gender/appearance plays a large role in gaining access to normally stratified resources
This article is bugging me for some reason. I don't disagree with it. It's certainly easier to make a language now, even more so than in 2016 when this article was published. But it feels like saying "it's easier to make a bridge than ever". That statement isn't wrong. I'd much rather make a bridge with modern technology. But it's still a damn hard task.

And citing parsing isn't a great example. Parser generators have been around for ages. And they're usually not the hard part anyways. Defining a simple grammar and parsing it, even manually, isn't that terrible of a task. Getting decent error messages and figuring out recovery? That's trickier.

Code generation has certainly gotten easier. But you still need to go through the process of figuring out how to lower your abstractions. My language is still extremely basic but I've still had to map my high level types and control structures down to WebAssembly. LLVM won't do that for you.

There's also more that your average user expects if you want a language that people use. Decent tooling is important, so a language server and some syntax highlighting packages in different editors. Good error messages. Decent type inference. Most of these you can eschew in the first few iterations of your language but eventually you'll need them.

I feel bad criticizing this post because writing a language has been one of the most instructive experiences I've had. I've learned so much about code generation, typechecking, the WASM spec, etc. But it's still a lot of tough work to get to something people can use. I'm not sure parser generators and LLVM make it that much easier.

Re:No More Coffee on Wednesday July 01, 2020 @08:09PM (#23708386)
Key point here is that you probably fixed your sleep schedule sometime after high school. Coffee dependency is a pretty common hotfix for a poor sleep schedule. Once you take away the poor sleep schedule, coffee becomes less necessary and more a nice to have.

It'd be interesting seeing the long term effects high school sleep schedules have on people. I wouldn't be surprised if poor sleep patterns in adolescence lead to insomnia and other issues later in life. I definitely felt like my high school sleeping patterns were damaging to my mental and physical health.

Re:Tell candidates what to expect from your job interviews on Wednesday July 01, 2020 @03:55PM (#23705779)
I agree and sympathize with what you're saying. Coding screens are a necessary evil. But perhaps they can be omitted in certain situations. I know I completed the Google foobar challenge far enough to alert a recruiter, only for the recruiter to send me a snapshot test. Like c'mon, I just solved a whole slew of harder problems than this.

I wonder if companies like TripleByte are actually successful in solving this issue. I've avoided them because I'm skeptical of recruiting companies, but it might be a good idea to have people take one coding screen and have it apply to multiple companies.

Re:Tell candidates what to expect from your job interviews on Wednesday July 01, 2020 @03:48PM (#23705685)
Agreed that it's tricky, but there needs to be some feedback loop. Otherwise you end up with seriously broken processes that never get fixed. Companies tend to care about false positives more than false negatives, but there's a decent possibility that some companies have an extremely high false negative rate.
Re:Quora goes permanently remote-first on Thursday June 25, 2020 @08:53PM (#23647599)
Is it just me or does Quora straight up not work on Firefox? Whenever I click the Continue Reading button, it fails to load more and gives me a generic "Something Went Wrong" error. Do people just not test on Firefox anymore?
Re:Eastern European Movies on Thursday June 25, 2020 @12:51PM (#23642700)
So happy to see the Dekalog here. It's hard to find it streaming. Dekalog 1 is a particularly relevant film for HN since it deals with a programmer and his idolization of technology. There's a small moment at a shrine with wax that is immensely beautiful. Kieslowski has such a great eye for the small details and poetry within the scene.
Re:Functional Language Features: Iterators and Closures on Wednesday June 24, 2020 @11:48AM (#23629326)
I've tried to use iterators and closures in my code, but it's not as easy with error handling and lifetimes. Like I could figure out the magic incantation that lets me map over an iterator with a function that returns a result. Or I could write a for loop that pushes to a Vec.

Or I could chain an ok_or_else on an Option but ugh now Rust is complaining that I'm capturing a reference to self. Screw it, I'll rewrite it to be an if let with a return. Part of the problem there is that we know an ok_or_else with try! will execute the closure and return if the value is None, but Rust's borrow check doesn't know that.

None of this is Rust's fault. It's just that it's hard to combine ergonomic closures and borrow checking.

Re:We’ve decided to rename Riot on Tuesday June 23, 2020 @12:48PM (#23616503)
Could use some linear algebra terms. Pivot? Eigen? Nullspace? Kernel? Determinant? Trace?
Re:macOS Big Sur Preview on Monday June 22, 2020 @03:55PM (#23605540)
It’s a little too early to see the effects of Jony Ive’s departure. He left less than a year ago. He probably had a decent role in designing Big Sur. Plus all the remaining designers were probably hired by Jony. I doubt we’ll see big change until a few years out.
Re:A little bit of plain JavaScript can do a lot on Sunday June 21, 2020 @12:11AM (#23589681)
This is super super minor but it's JavaScript not Javascript. IMO the camel case makes it look so much better :D
Re:How I Make Yogurt (2019) on Wednesday June 17, 2020 @12:51PM (#23553591)
I use a sous vide machine to keep the yogurt at a consistent temperature. If you're working with non dairy milks, that extra time can help a lot.

If you're looking for another good fermentation, kimchi is a great one. There's nothing better than making kimchi fried rice or kimchijjigae with homemade kimchi.

Re:Why are there so few black people in STEM? on Sunday June 14, 2020 @03:14PM (#23520465)
I wonder how many people on HN have experienced being the only person of their race in the room. In my case I was put into a French public school where I was the only Asian student. It took me a bit to realize why I found that experience so shitty. The language and culture barrier was definitely a factor. But also it just sucks standing out. Sometimes this difference manifests as racism. Sometimes it manifests as simpering. Either way the manifestation reinforces your otherness, your difference.

There are certainly people who can surmount these obstacles and fit in. Who have the charm and charisma to ingratiate themselves into any group in any place. I'm not one of those people. I'm not obligated to be one of those people. Those people are quite rare.

Another point: Perhaps there are fewer Black people in STEM because Black people have more pressing issues. If I were Black and intelligent, I'd probably be interesting in combating larger social issues and not biochemistry. But that's just me.

Re:Math-as-Code (2015) on Saturday June 13, 2020 @06:31PM (#23513388)
I highly recommend reading The Little Typer if you want a great book that bridges math and code. It starts out describing Pi, a Lisp with some interesting restrictions (limited recursion, types can have values, etc.). They build up some cool stuff like vectors with the size encoded in the type. All of a sudden, they explain that equality is a type, and any value of said type is a proof! Turns out you can think of many proofs as manipulating data structures to get a value of a certain type.

I wonder how long until we get a somewhat mainstream language with pi types. I know Rust considered adding them. And I recently learned that Rust does allow for quantification over lifetimes^[1]. I could certainly see a language that implements dependently typed arrays. Midori for instance looked into eliding bounds checks with compiler proofs^[2].

[1]: https://doc.rust-lang.org/beta/nomicon/hrtb.html [2]: http://joeduffyblog.com/2016/02/07/the-error-model/

Re:Most tech content is bullshit on Sunday June 07, 2020 @11:55PM (#23453427)
Yeah you're quite similar to people I know, especially in your view of performance and choice of sources. I definitely agree that bottom line, seeking out info is a net benefit.

I have a fair amount of respect for game developers. However at the same time I feel they can make the assumption that all development should follow their practices. That everybody should be writing in C++/Zig/Jai/Rust, using data oriented programming and avoiding objects like the plague. That if other developers were just smart enough they'd make everything ridiculously fast and awesome. Not every game developer thinks this way, obviously, but there is a subset.

The problem with this line of thinking is that it assumes all developers have the same priorities. In actuality game development is an extremely rare area where there are close-to real time requirements. Not painting the screen every 1/24th of a second is a disaster in game dev. Meanwhile GitHub uses Rails in all of its object oriented, garbage collected, interpreted horror. And nobody cares!

I suspect if a troop of elite game developers were dropped into your average web development job, they'd spend an unreasonable amount of time optimizing perf, only to have their lunch eaten by someone who focused on user facing issues. Not that web development is hard or anything. It's just a different set of requirements.

Watching jblow et al is definitely great! But there might be a point where you're put on a team using OOP and asking them to refactor to DOP with bulk allocation because you gotta get that cache utilization will just earn you stares and no buy-in. Or you might be running a startup and realize that all the time you spent getting all requests under 100ms could have been spent writing features.

Re:Most tech content is bullshit on Sunday June 07, 2020 @09:51PM (#23452820)
It's definitely not the worst to be overly well read in programming literature. But oh man does it get old arguing with someone who is taking advice from a very niche, very particular field such as game development and applying it to general software development.
Re:Most tech content is bullshit on Sunday June 07, 2020 @05:21PM (#23450942)
There's a particular brand of young developer where every opinion comes from a blog post, talk or HN comment. They have strong views on many different topics and believe that they're knowledgeable and smarter than the average developer^[1].

The only issue? They don't have actual experience to back this up. Because not only is most tech content bullshit, the small percentage that isn't BS may not apply to their situation. You may not be working on soft real time systems. You may not be working with big data. You may not be running a company.

I should know—I'm certainly guilty of assuming that because I read about software development, I'm a better software developer. When really there's a big big big difference between reading about development and actually practicing the craft. Especially if you've only been programming casually. There's a massive difference between writing code for fun and writing code that needs to be a value-add for the company.

[1]: https://en.wikipedia.org/wiki/Yogi_Bear

Re:Choose Boring Technology (2015) on Sunday June 07, 2020 @10:26AM (#23447556)
> YouTube was (and still largely is) written in Python, way before it was cool and well-known

That's a good point. I wonder how many successful apps used tech that only appeared boring after the fact. Rails is a fairly boring stack today but back when GitHub started, it probably wasn't.

Re:JavaScript: The First 20 Years on Saturday June 06, 2020 @02:29AM (#23437259)
Yeah maybe "JS is best language ever!!!" is a better example. Or "JS is perfect!!!"
Re:JavaScript: The First 20 Years on Saturday June 06, 2020 @02:26AM (#23437249)
That's true, but JavaScript is something especially controversial :D. I've yet to find a programmer who doesn't have some sort of stance on JS

Also yeah it is fine to say "I don't care for JS" sans explanation. But if someone were to ask why, it'd be reasonable to expect a list of justifications that had some nuance.

Re:JavaScript: The First 20 Years on Saturday June 06, 2020 @12:37AM (#23436868)
I'm starting to develop a theory that a person's stance on JavaScript reflects their ability to critique reasonably and therefore their maturity as a developer (to an extent).

JavaScript undeniably has some problems. It's also undeniably useful and eating the world. If you can hold both of these stances in your head and reconcile them into a nuanced opinion, then that's a great sign. If your viewpoint collapses into "JS sucks!!!" or "JS rules!!!" then you're not providing an opinion as much as a dogma, often one that is regurgitated from some other source.

I'm not saying that one should find JavaScript good or bad by the way. Someone who abjectly dislikes JavaScript but also understands its utility is quite useful. The creators of TypeScript, ReasonML, etc. all had to dislike JavaScript in some form. But they had to dislike it in a productive, nuanced manner.

Re:Akira Kurosawa’s hand-painted storyboards on Friday June 05, 2020 @04:05PM (#23433300)
More modern example, Bong Joon Ho apparently storyboards the entire film before shooting.

Parasite's storyboards: https://www.indiewire.com/2020/05/parasite-bong-joon-ho-stor...

On the flip side, Terence Malick gives you an index card with an aphorism and lets you improvise: https://www.businessinsider.com/thomas-lennon-terrence-malic...

Re:Akira Kurosawa’s Record of a Living Being on Thursday June 04, 2020 @04:23PM (#23421306)
I recently watched Tarkovsky's The Sacrifice which also deals with the threat of nuclear destruction. The main character is having a birthday dinner when the news informs everybody about the nuclear threat. The simplicity in which this information is revealed and the transition from the mundane to abject fear connected really well to modern times.

It's interesting seeing film ideas repeat and be interpreted by multiple directors. It's almost like some ideas need to bounce from director to director before they find the right outlet. I Live In Fear begets Dr Strangelove begets The Sacrifice.

Re:SoftBank launches $100m minorities startup fund on Thursday June 04, 2020 @03:34AM (#23413733)
People in all countries get measles. Should we help every country equally? If, gasp, there's a rich kid in Pakistan who may get a free measles vaccine, is that evidence to stop fighting measles in Pakistan?

White families have ten times the average wealth versus black families. Putting aside the significant mountain of evidence racial bias in hiring, in tech, in basically every facet of life, that single statistic should be evidence enough that more funding is necessary for minorities.

And what hypocrisy? You can say that black people are not inherently different but face different circumstances due to societal problems. That's not hypocrisy. That's simply acknowledging that race plays a factor in nurture but maybe not nature.

Re:Eugène Atget's Paris, 100 years later on Monday June 01, 2020 @04:07AM (#23376278)
Atget, and Abbot after, were one of the great photographers who documented cities in flux. Paris for Atget and New York for Berenice Abbot.

Another artist who I've been thinking about is Michelangelo Antonioni. There's something about his juxtaposition of the characters' alienation with the spaces they inhabit that resonates with the pandemic. The phrase "social distancing" beautifully sums up so many of his films.

Oh yeah we're on the same page that taking classes in a different, specific topic is a great way to amplify your existing CS skills. I'm mostly making the point that going into college with the mindset of double major or bust can be counterproductive. The difference between a minor and a major can be a few extraneous courses, a lot more stress and a little less time to pursue your main interest.

I know I came into college determined to do a double major only to realize that I probably should have made that decision after taking a few courses and evaluating my level of interest in the two subjects.

Agreed. Taking non-CS classes? Definitely worth it. Getting the arbitrary extra words on your diploma? Less worth it
Re:The rise of React on Sunday May 31, 2020 @08:26PM (#23374405)
Did Flux really bring one way data flow? Because that's a pretty essential part of React. Even if React adopted it later, it's a core part of React's appeal.

Do you legitimately see no difference in websites from 2012 and 2020? I'm honestly baffled if that's true. Payments are a massive difference that I've noticed. Every decent ecommerce site these days uses quite a lot of slick tricks to make the purchase flow really easy. Whether it's autocomplete based on Google Maps address data or being able to do everything without any obvious page refreshes, payments are significantly slicker. React definitely facilitates this.

> There is no 'round trip' for server render

Uhh there is a round trip. You click on a link, the new page does a request, loads new HTML, new CSS and paints the new page. Sure, an SPA takes longer to load up front, but you can now ensure that everything past that point is seamless. On a site like Facebook where the initial load won't kill conversions (because people are already addicted), you can take a 500ms hit so that stuff like infinite scroll and seamless notifications keep people on the site.

Re:The rise of React on Sunday May 31, 2020 @05:49PM (#23373091)
Meh, React is great for more reasons than modularity. One way data flow combined with automatic updating and rendering is really really nice. I just wrote a simple UI for a terminal and having to manually call a function to paint to the screen felt rather...quaint. We've had modular templates for years. It's only recently that we've had the ability to think of UI elements as functions that automatically get called when their arguments update.

This article also doesn't delve into why Facebook supports React so much. Or why Twitter, Reddit and the rest are switching to React. The answer being that React lets developers make really smooth, really addictive websites. I wouldn't be surprised if there was some studies showing that any flash of unstyled content, i.e. a server render round trip, lowers conversions by x%. Therefore having a client side app is imperative if you care about having your users on your site. Multiply it by Facebook's revenue and paying the few million to fund a team of developers is a really good deal.

I've written a lot about this. If you want a job, start applying early. But don't feel like you have to get one immediately. If you're sufficiently motivated, consider taking time off to work on your own projects.

1. Don't take all CS classes. Try other subjects and diversify your knowledge. 2. Get good at sending emails. It can help you get a job, get contacts or just gather information. 3. Even though you should take non-CS courses, that doesn't mean you should get a double major. It's not always worth it. 4. Make sure you like CS. Having experience is a good sign, but people can be advanced or good at a subject they don't like. Make sure you like it even when it gets tough.

[1]: https://blog.torchnyu.com/2020/03/04/take-fewer-cs-classes.h... [2]: https://blog.torchnyu.com/2019/12/19/sent-from-my-iphone.htm... [3]: https://blog.torchnyu.com/2020/05/15/the-case-against-double... [4]: https://blog.torchnyu.com/2020/05/14/do-you-like-it.html

Older »