HNHacker News
TopNewBestAskShowJobs

wegs

1,911 karma · joined August 28, 2018

submissionscomments
wegs··on Do Not Follow JavaScript Trends
(1) I like generic code which I can use as I see fit later. In Scheme, I can write:

(lambda (x) (* x (+ 3 x)))

A half-decade later, someone can take that code, pass a pair of specially-crafted objects to it to introspect what it does, and take a symbolic derivative, pretty-print that derivative with LaTeX, combine it with a few other pieces, and compile it into native code (and yes, that does happen).

But a lot of my code is generic in a way where types get in the way.

(2) If I do have typing, the type should usually be specified manually, but it should have semantic meaning, not be based on inferring whatever types my programming language happens to have built-in. What's important isn't that something is an integer, but that it's a count-of-apples. I should be able to compare a count-of-apples to a count-of-oranges without first converting them to a count-of-fruit.

This is especially important for numerical code, and especially in education. A lot of Scratch tutorials have little kids add a velocity to a position, without first multiplying it by a time. That leads to deep-rooted misconceptions.

I don't mind type inference if it's designed to give me feedback. I've seen a few systems (designed for students) which do things like take JavaScript:

let x=5;

let y="hello";

let z=x+y;

And flag that in the IDE. That's kinda nice. And obviously, many systems do optimization at runtime based on inferred types. That's not a problem either.

So there's a fuzzy layer in between. But the discussion was about TypeScript, not that fuzzy layer.

wegs··on Do Not Follow JavaScript Trends
TypeScript? Erm... Not for me.

There were many such systems in the past. CoffeeScript was a big improvement over 2010 JavaScript. Before that was GWT, which was sooo much nicer than 2006-era JavaScript. I could list a bunch of others. If you used any of them, you're now stuck with a legacy system(+), and you'll find fewer and fewer people able to read/write your code, and otherwise.

I'm also not a big fan of static typing. And if you do static typing, you should at least do it properly, which is not what TypeScript does.

Types should be things like "This is an integer between 0 and 100," "Meters/second," or similar. We've known this for a long time. Ada is now 40 years old and was mandated for military work since if you added feet and inches without a conversion, that was a problem, and that resulted in more robust systems (TypeScript would make them both of type "number" and never catch the error). If you tried to have 120% of your fuel tank full, you'd violate an assertion as well. Those were turned on in dev and in your test suite (but generally turned off in your deployment system, which was running on a 33MHz CPU if you were lucky).

C++ templates let you define things like "This is a list of lengths, in meters." Duck types languages like Python won't do this statically, but it's easy enough to do dynamically; while you won't catch errors at compile-time, at run-time, you'll get a clear exception.

(+) Standard disclaimers apply.

wegs··on Do Not Follow JavaScript Trends
Rewrites only make sense if you get a multi-fold improvement. In the history of computing, that's rare. So they rarely make sense.

Well, JavaScript was really horrible when it came out. It was just about the worst major programming language ever made. It sort of reminds me of an interpreter I threw together for a programming language I invented when I was in high school, when I really didn't get any aspect of programming language design, and I based it on a misunderstanding of Lisp.

Given its central role, lots of people used JavaScript, and lots of smart people tried to fix it. Every few years, it'd get a lot better. It actually made sense to rewrite everything -- you got that multi-fold improvement in productivity going 1995 JS to 2000 JS, 2005 JS to 2010 JS, and so on. I mean, with each iteration, it was still obnoxiously bad, but it was that much less bad.

It looked like an exponential growth curve for a while, but you always knew it was an S-curve -- you hit an inflection point when you reach the level of competently-designed programming languages.

At some point in the past five years, JavaScript stopped being really bad. I mean, it's no Python, but it's at least within spitting range. Heck, it's better than Java. I won't even lose 2x productivity writing in JavaScript over best-of-breed languages, at least core language (ecosystem aside -- there is no numpy/scipy/pylab -- but that will come too).

With that, rewrites every five years no longer make sense. Unless there's some fundamental progress in computing, I expect JavaScript code I write today may still be used in 20 years. That's not something I would have said in 2010 or 2000.

wegs··on WD Red DM-SMR Update: 3 Vendors Bail and WD Knew of ZFS Issues
Well, no. SMR is not fine. What this debacle showed, very clearly, is that SMR collapses under some workloads. RAID rebuilds failed. Some took a week, but some just failed.

Will my hard drive's workload ever resemble that of a NAS RAID rebuild? Or will there be another workload which breaks SMR drives?

Key here is that workloads change, and weird issues like this one lead to compounding failures in emergencies. A system might have an SMR-friendly workload during it's normal operations, but during a cyberattack? When debugging an outage? It's impossible to predict what I'll be doing when the unexpected comes up.

Above all else, I want my storage medium to be reliable and to not have issues like this. It's clear SMR drives aren't there yet.

Yes, if there was a sufficiently advanced translation layer, or the right abstractions to the OS, SMR might be fine. But the present state-of-the-art of SMR technology is very obviously unsuitable for any application where you care about your data.

I'll mention early SSDs were in a similar state many years ago, with wear leveling algorithms. But there was a difference in the level of transparency there.

wegs··on Adobe to remove Flash Player from web site after December 2020
Nah. In 2000, you could do what you wanted with Java Applets. Plus, you had desktop apps and all sorts of other options too. Was Flash technically better for a lot of uses? Without a doubt. But that's a choice one makes. At the time, I chose open (or at least more open), and I'm glad I did.

And Adobe is still alive, as are others like IBM, Microsoft, and friends. On the other hand, SGI, DEC, Sybase, Novell, SCO, and tons of other companies are dead. And some companies, like HP, are technically alive, but all their product lines from that era are dead.

Getting burned once or twice is enough to understand that the organizational, political, and human sides tend to matter more than the technical. Older folks tend to chose stable, open solutions. Younger folks who haven't gone through that yet tend to chose technically glitzy solutions.

wegs··on Adobe to remove Flash Player from web site after December 2020
Proprietary is exactly the problem here. Your work can die at the whim of a corporation.

It gets even worse with product activation.

Even if something is proprietary but without activation, you can sort of preserve it. I can spin up an old version of WordStar in MS-DOS on my computer, and open up old WordStar documents. I can start up Windows 3.1 if I want in a VM. It's not as good as something open like LaTeX, but it's not completely useless.

If you use Adobe CS, and Adobe goes under, changes business models, or takes down its activation servers for any reasons, your life's work might be dead. Few corporations survive forever. Even fewer products do. That's why a lot of us avoid rights-managed or some types of cloud-based software for critical work (although a lot of cloud-based has very good export options, so I don't hesitate to use e.g. Google Docs).

wegs··on MIT Ends Elsevier Negotiations
That's what I do. If I want to say something obvious, I Google for the first citation which says that thing in a way which is readable, understandable, and correct.

Honestly, the problem isn't with whom I cite, so much as:

1) Academia deciding to use metrics inappropriately (as well as expecting citations on well-known obvious things). I'm not going to adjust my work style because academics decided to adopt dumb metrics and build massive, dumb incentive structures around those metrics.

2) Reviewers expecting citations for everything, and not caring about quality of those citations. "The sky is blue" doesn't work. "The sky is blue (Blitzerman, Tinkledorf 2012)" works fine, even if Blitzerman, Tinkledorf 2012 is complete nonsense.

wegs··on MIT Ends Elsevier Negotiations
Let's not get carried away here.

MIT administrators still use Swartz as an example to threaten potential whistleblowers. Faced with that, people back down. For all the public repentance, this was intentional and malicious by at least parts of the Central Admin.

MIT has good guys and bad guys. The good guys won here, rejecting Elsevier. The bad players on the Swartz front are still there, and still making decision similar to Swartz.

People back down much more quickly with that example held up as what happens if you don't play ball.

wegs··on Why ‘playing hard to get’ may actually work
It does. The bigger question is whether it's a good idea.

Dating up means the other party has more desirable alternatives. Dating down means they don't. That translates into different relationship dynamics.

Are you constantly trying to win them over, are they constantly trying to win you over, or is it equal?

wegs··on Potential organized fraud in ACM/IEEE computer architecture conferences
I think we're long past that point. We need to realign incentive structures and see wholesale change. You'll never see quality peer reviews on an honor system, with no incentives to do quality. The basic concept is broken. It's much better to let people publish as they do research, and have post-hoc reviews, revisions, and discussions.

And for transparency, I'm not going to trust any research out of MIT research until MIT openly gets rid of NDAs and non-disparage agreements. Just no. Yuck. And that includes the chains of corporate walls MIT has built up to hide stuff.

I won't trust MIT research until I can file a public records request, and get records. I should be able to discover conflicts-of-interest, financial arrangements, and all the other messes MIT gets itself into.

I won't trust MIT research until faculty meetings are subject to open meeting laws, and the public can sit in on them and understand how decisions get made.

I won't trust MIT research until data, source code, and papers are out in the sun for public review by anyone.

I won't trust MIT research until I see bad actors getting disciplined and these things publicly discussed.

Until then, unless I know something at MIT isn't corrupt, I'll just assume it might be. I won't trust Stanford either. Too much stuff is simply fabricated to tell a good story. Heck, I won't trust a lot of the elite academy, since I assume it's just as bad. Things get a little bit better one tier down, but the rot is starting to seep in.

MIT CSAIL just shut down its main mailing list -- thousands of people -- since people started discussing institutional corruption.

Footnote: I had no problem living on my similar stipend. I paid for one bedroom in a four-bedroom apartment, ate cheap food, and didn't spend much otherwise. My university

wegs··on Potential organized fraud in ACM/IEEE computer architecture conferences
Well, I had a great time in my Ph.D program. My advisor was the very model of caring about students and integrity. I did good research which I was proud of (but which had very little impact since at the time I didn't know how to sell / position it well) I see the upsides of a functioning academia.

My cynicism doesn't come from a lack of understanding of the academy or the good parts of the academy. To the contrary; it's based on:

1) Seeing the upper levels of the academy (which are often incredibly corrupt, although this is well-hidden from students).

2) Seeing enough cases handled to know that cover-ups are much more common than resolutions.

3) Seeing many students get abused, and seeing the impact fake research has on the real world.

The lack of transparency makes academia look bad for perfectly good reason: there are huge amounts of money flowing into pockets corruptly at elite schools, entire academic careers build on academic fraud (which is /not/ the same as legal fraud), and there's enough rot in the system that it's hard to reform. The higher you go, the more rot there is.

Appearances to the contrary, students are university customers, and faculty are employees. The power legally rests with the administration and the board. The rot persists since the people benefiting set the rules. If I'm the president of a school, and a reform would put me in jail, or even make me lose my million dollar salary, why would I listen to student protests? Faculty protests carry a little more weight, but not enough, and enough faculty are corrupt themselves that you can't build a united front for reform.

Regarding peer review, the system is entirely bankrupt. There are no incentives to do a good job. Anecdotally, most reviewers skim papers; no one reads them, and certainly no one checks the math or replicates the results. Less anecdotally, when people have looked at data, it's no different from a die roll (NIPS did a proper evaluation of peer review).

Regarding grad student stipends, the basic deal is good on paper: freedom to pursue intellectual interests, quality mentorship, and a quality education with basic living expenses covered (on the taxpayer dollar). This seems like exactly the right thing. It breaks when universities break their side of the bargain, with the taxpayer dollars and charitable donations go to faculty clubs, yachts, and vacation homes, internal power dynamics forcing graduate students to be treated as cheap labor rather than as students, and competition forcing widespread academic fraud.

wegs··on Amazon sues former AWS marketing VP Brian Hall after he takes Google Cloud job
I would never, ever, ever use Google Cloud for anything other than education (e.g. students working on the free tiers). Google's general culture is to randomly kill partners' businesses with automated algorithms, and then not do anything about it unless it explodes on social media.

That includes multi-million dollar partners sometimes.

I'd work for Google, but I wouldn't use their systems outside of Google. I wouldn't work for Amazon, but I definitely use AWS.

wegs··on Amazon sues former AWS marketing VP Brian Hall after he takes Google Cloud job
That's assuming the union represents the workers. In practice, many represent the union bosses, politically-savvy union members, and otherwise. The political cesspools can hurt everyone.

They don't have to hurt everyone -- there are definite good unions -- but there are bad ones too.

Example: Look at the police unions now.

wegs··on Amazon sues former AWS marketing VP Brian Hall after he takes Google Cloud job
After too. Almost every contract of this type explicitly says that it can only be changed in writing, signed by both sides.

Early-career, you'll likely get f-ed by "boilerplate" contracts, since you don't have the negotiating leverage to push back yet. Expect it.

Once you're established, push back or don't join.

These kinds of litigations don't make the news often (it's to no one's benefit they become public, and everyone signs an NDA at the end), but they're pretty common.

wegs··on Potential organized fraud in ACM/IEEE computer architecture conferences
This is the tip of the iceberg for SIGARCH.
wegs··on Potential organized fraud in ACM/IEEE computer architecture conferences
It's like police. Good ones do good, and bad ones do harm.

You'd expect the good ones to be pro-reform, but there apparently isn't enough pro-reform in academia to have reform.

With that, less and less good will happen, and more and more harm.

wegs··on Potential organized fraud in ACM/IEEE computer architecture conferences
It's more than 0.01% honest/hard-working people. You have:

* Grad students who will never make tenure.

* Lifelong adjuncts / post-docs who are staying there because they won't play the game.

* Older faculty from a different era.

* Etc.

It's enough that at this point, I find all research from my alma mater suspect unless I've personally reviewed it or know the PI personally. But there's a pretty large honest portion too.

wegs··on Potential organized fraud in ACM/IEEE computer architecture conferences
arxiv and letting good stuff bubble up after-the-fact.

Peer review in my field is a random process. It's not corrupt; it's just that reviewers give papers a 30 second skim. I've had one paper really reviewed in my whole career. What gets in and out is just random. NIPS did a nice study on this many years back.

On the flip side, academic discourse gets delayed. People aim for Science/Nature, and then down the line. Journals / conferences aim for the prestige of high reject rates. Research goes out sometimes years too late.

Peer review gives the impression of credibility, without the reality. It should be gone. Tiers of journals should be gone too.

wegs··on Potential organized fraud in ACM/IEEE computer architecture conferences
1) Reduce competition. Make jobs less desirable to where there might be able to win without cheating. More people at lower salaries would be good here. More research/teaching gets done, and you eliminate subclasses like adjuncts and lifelong postdocs.

2) Ban universities which take federal grants, federal student aid, 501(c)3 status, etc. from using NDA/non-disparage agreements.

3) Put in FOIA/public records-style transparency measures.

4) Open science / open data. Publications should be open too, as should source code. Anyone should be able to replicate scientific research unless it requires $$$ equipment or e.g. builds on personally-identifiable information.

5) Democratic governance processes within universities and salary caps (it doesn't get at this stuff, but it does at a lot of embezzlement).

6) Limit number of grad students per advisor.

Basically, let enough sunshine in that the bad stuff can't stick around.

wegs··on Potential organized fraud in ACM/IEEE computer architecture conferences
I can say, from first-hand knowledge, that this is not uncommon. MIT will do this and more against whistleblowers.

Most people back down very fast.

wegs··on Potential organized fraud in ACM/IEEE computer architecture conferences
1) Crime networks at universities are powerful. If you're at an elite school, whistle-blowing will almost certainly cost you your career, if not more.

2) Trusted sources with both clout and insider knowledge will generally advise you to get out with your hide in tact, and let sleeping dogs lie. That is the strategy I'd also advise to anyone who is not independently wealthy and has a powerful network of allies.

3) Even indication you /might/ whistle blow is enough to trigger blow-back. Be discreet. In particular, don't use university IT equipment for either personal use, or anything related to the situation. If things blow up, the university controls your data. That can give an incredible information asymmetry, as well as leverage.

... and be aware things will get better. At the time, it seems like the world. A few years later, it's old history.

These things won't change without systemic change. Unless universities adopt transparency measures, accountability measures, compensation limits, etc., we'll continue to see corrupt crooks in the admin. And universities shouldn't be able to use NDAs, non-disparage, etc. agreements to cover this stuff up. Simply no.

It's like standing up to a police officers. If you do it, you might get your head blown off. If we change the system, you might not need to worry about getting your head blown off.

wegs··on Google sued for secretly amassing vast trove of user data
With trespassing, if I cross your lawn, I'm probably okay. If I cross your lawn and there's a "no trespassing" sign or a fence, I'm probably not okay. It's vague.

There are equivalent laws for technology. For example, you have the confusingly vague CFAA. If I've indicated to you that I don't want you grabbing files from my computer, and you do, you've likely broken it. It's even called digital trespass. On the other hand, if you have a public FTP server up, I can grab files. If you have a public FTP server up, and you've told me I'm not permitted to access it in person, or in an automated banner, or in an automated banner which my browser never shows me, things get legally complex.

Pretending "private browsing" or "incognito mode" doesn't act like such a sign isn't very honest. Google disclaims this information might be visible to web sites, which is honest, but most indications are given that it's intended to help screen some of that. Intentionally working around incognito mode is almost certainly at least somewhat illegal.

wegs··on Show HN: Weylus – Use your tablet as graphic tablet/touch screen on Linux
Thank you!

On latency, the thing other tools used to really bring it down is a wired USB connection.

And yes: This is something in which there will be an almost desperate amount of interest in some communities. I think the bottleneck on how much attention it receives is, quite frankly, whether individuals in those communities find out about it.

I'm committed at about 160% capacity for the rest of the fiscal year, but if this were a more normal time, I'd probably hack on this myself.

wegs··on Show HN: Weylus – Use your tablet as graphic tablet/touch screen on Linux
I think it depends on the stylus and the software. This drove me batty for a long time. I now have a cheap Aliexpress drawing tablet (no display), Digimend, and MyPaint under Ubuntu.

It does as well as pencil and paper.

It's not as good as a fancy pen and nice paper, mind you, but it's good enough.

My major problem is straight lines. I haven't got that down yet (albeit with just a few hours practice). But writing has no lag, and comes out fine.

wegs··on America is giving up on the pandemic?
Cloth masks aren't trying to form a seal. They have a few roles:

1) They capture a lot of droplets coming out of your mouth. Do you sneeze in your elbow or in someone's face? A face mask does better than an elbow, and for every breath (not just a sneeze). So does a beard for that matter; if your sneeze goes around through a beard, it's catching big droplets too.

2) You know the six-foot-guideline? They effectively increase that distance. A person talking, yelling, sneezing, etc. can carry droplets 15+ feet in a straight line. If we're both wearing masks (or face shields), it's not going in a straight line. Beards disrupt linear airflow too.

3) You can't touch your face.

They don't stop virus aerosol. That's where you need a proper seal.

I'm not actually sure facial hair makes any difference with a cloth mask. Surgical mask would be in between. And an N95 probably becomes a surgical.

wegs··on Show HN: Weylus – Use your tablet as graphic tablet/touch screen on Linux
Thank you!

This is awesome.

This is important enough I'd donate right now, if (1) there were a donate button (2) it'd fund further development to the point where this was production-ready.

Bringing this from proof-of-concept to mass-market would be a huge amount of work:

1) From the video, latency would need to go way down.

2) Pressure support is important, if not critical.

3) Packaging. To be impactful, this would want to be distributed in Apple's store, and in Debian/Ubuntu repositories (or at least a .deb). Paid on the Apple side is fine (and not contrary to open source -- I'm paying for convenience, and that's a payment I'd gladly make).

Next step would be to go from mirroring to second display. This is less bad than it might seem on the surface; it doesn't involve a whole new X driver, so long as outputting from the current one to a phantom device, and mirroring the phantom display (same thing as if I unplugged one of my monitors; HDMI keeps going out, and I could continue to mirror it).

One possible way to get there is to get the architecture to a place where others can do that work (e.g. leave appropriate places for people to plug in, and appropriate breadcrumbs where others can finish the work).

Disclaimers: Of course, one donation isn't enough to fund further development. I'm not rich, so we're not talking massive donation. Aside from that, by the time you set something up, I'll likely be long gone from this discussion (you don't have my contact info to follow up). But that's also not an abstract comment; I donated to Digimend before, and this would address part of the same major gap. Take the offer more as an indication of the massive value this would provide to at least one person.

wegs··on Ask HN: How do I reach making $1-1.5k/mo in 13 months?
Good niche is intersection of two skills. For example, if you can do biology + programming, you can get jobs in bioinformatics. If you do education + programming, you're looking at ed-tech. Etc.

Being a domain-expert (even an armchair-level one) goes a really long ways.

Niche markets are less efficient. There aren't as many jobs, and when an employer needs you, they /really/ need you; if you go into narrow enough niches, there can be zero competitors qualified for the same position. That gives a lot of leverage. The flip side is there might be zero job openings for months. On the whole, I think that's an advantage, but it can go both ways.

wegs··on Google Domains blocking all Gitbook URLS: post-mortem
... Which is again why I would never use Google for any business application. These stories happen all the time.

"I built my business on Google Cloud / Android / Google Apps / Youtube / etc. I was flagged by an automated system. There was no human to speak to (at least one competent or empowered to do anything), and my business is now gone."

Some of these go viral on social media, and Google then fixes them. Some don't.

Support channels built on only having an impact if things go viral aren't what I'll build my business on.

wegs··on Study of the effect of Vitamin D, Magnesium and Vitamin B12 on Covid-19 patients
You're getting stuck on the abstraction of "knowing" something, treating it as if it were binary. We do an RCT with 95% confidence, and then we "know." Before that, we don't "know."

There isn't such a thing. We know nothing. We have different levels of confidence in facts.

Even very basic facts ("am I alive") I can only say with pretty high confidence (we might all be living in a computer simulation or somebody's dream). And even things with strong scientific evidence occasionally get disproven. Studies with just one RCT are wrong all the time -- most medical and social sciences studies are wrong (it turns out p=0.05 is nowhere near sufficient in established research fields).

You work through decisions with uncertainty by calculating an expected gain or expected loss:

https://en.wikipedia.org/wiki/Expected_return

The argument for taking hydroxychloroquine is not the same. There is weak evidence it might do something, but the drug also has a whole slew of negative effects (https://en.wikipedia.org/wiki/Hydroxychloroquine#Adverse_eff...). If you compute the expectations of taking hydroxychloroquine prophylactically, it's definitely a very, very, bad idea. The downsides obviously outweigh the upsides.

If you do have a serious case of COVID19, it depends on what assumptions you plug into the equations. Which is to say, I wouldn't recommend hydroxychloroquine based on the last data I've seen (although I haven't followed this closely in a while), but reasonable people looking at the same data (again, ignoring anything from the past month or so) might recommend it. It's not an insane decision.

On the other hand, the data strongly supported ramping up the production of hydroxychloroquine and stocking up on it in case it is eventually shown to work. Hydroxychloroquine costs maybe 30c per pill, and dropping a billion dollars ($1/person) to make sure we have 3 pills per person is an obviously good idea. That's less than 1/1000th the stimulus package. Likewise, we should have used face masks immediately (including a massive push to surge manufacturing) before we knew what effect they had. We have enough data from e.g. influenza to where they were an obviously good idea from day 1. We should have done likewise for manufacturing of ventilators (which are turning out to be less helpful than we though), and for a slew of other things which /might/ be helpful down the line.

For most meds and supplements, we have zero evidence. There's no reason to believe they do anything, and if they do, the odds of it being negative are the same as the odds of it being positive. Don't do it. I think the one exception is zinc, where based on very incomplete data, it seems like it makes sense if you're sick.

Military, financial, and business are domains where there are sophisticated models for how one makes rational decisions with incomplete information (before "knowing"). If you wait for complete information before moving, a competitor or adversary will crush you.

Coincidentally, a lot of people were bothered by shutdowns happening before we knew how serious COVID was or how it spread. Those were also an obviously good idea. But the confidence interval for CFR ranged from a slightly more serious flu all the way up to maybe 8% at the time we shut down here. The _expected_ CFR was 3.4-3.6%, and the shutdown was an obviously good idea based on that incomplete information. But news sources omitted how little we actually knew.

wegs··on Google sued for secretly amassing vast trove of user data
That's not a proposal for a law. I'm not arguing about how the law ought to work. For better or worse, that's a description of how the legal system in the US works RIGHT NOW.

And yes, it does enrich a lot of lawyers.

Look up the CFAA cases, for a great set of example of how these laws can explode in this exact domain -- people charged with digital trespass who bypassed no or minimal technical measures. And it doesn't feel good either in most of those cases.

To be frank, though, if this gets applied to Google, it will feel pretty good.

← PreviousPage 11 of 19Next →