HNHacker News
TopNewBestAskShowJobs

Androider

4,272 karma · joined November 3, 2013

submissionscomments
Androider··on Introducing Hooks
No sir, I don't like it :/ I don't see a simple API, I see a completely magic black box that is going to chew up my fingers if I decide to put my hand in it.

Don't fight the language! JS is a still an evolving language, class properties are at Stage 3 draft, and have effectively been usable for years already. I feel the verbosity argument against classes is complete bunk.

When you write "TLDR: There are no plans to remove classes from React... Crucially, Hooks work side-by-side with existing code so you can adopt them gradually... Finally, there is no rush to migrate to Hooks." it doesn't give me the warm and fuzzies, quite the opposite. I can feel the momentum is going to shift to the new hotness and a completely different way of doing things and I'm not sure I want to go where you're heading. Until the next shiny thing.

I wish React would stop adding to the core library. I strongly feel most of the innovation should be happening in libraries surrounding it, even if they're first party libraries, with the core being much slower to change. A good reason to change the core would be taking advantage of new standardized JS features in the future, or (minimally breaking) changes to support big ideas like async rendering. Changing the fundamental way you write React code because "classes are confusing" is just a terrible reason!

Androider··on Evergreen: a React UI Framework built by Segment
Material-UI is by far the most complete of the frameworks in my opinion having used a bunch of them, and constantly updated. It's a joy to work with.
Androider··on Zoho.com CEO says domain with 40M users suspended for abuse complaint
Sure they are, if you register a .com the registrar is "Amazon Registrar, Inc." since 2016 or so (https://www.icann.org/registrar-reports/accredited-list.html). For some other TLDs, they might outsource it.
Androider··on MacOS 10.14 Mojave Reviewed
It's faster, but still incredulously slow. For example, when you launch it it's just a black rectangle for 3-5 seconds (2018 Macbook Pro). And the UX is all over the place, with 3-4 different ways to go back/close whatever you're looking at. The way you navigate reviews with side-swipes might sense on a phone but makes no sense whatsoever on the Mac.

You can tell it's made to spec and with zero developer love softening the rough corners, because no developer who cares would make a full-screen screenshot view mode you cannot exit with Esc.

Androider··on Zoho.com CEO says domain with 40M users suspended for abuse complaint
AWS Route 53 provides full registrar services for a while now.
Androider··on Tell HN: Using Gmail? You will be force logged into Chrome
But my workflow! https://xkcd.com/1172/

That's a good suggestion, but I just don't need or want to maintain two sets of bookmarks, install each plugin twice, configure each setting in two places, etc. But I guess I'll have to... sigh.

Androider··on Tell HN: Using Gmail? You will be force logged into Chrome
Once again G Suite customers get the shaft.

I have a personal Gmail account, and a business G Suite account, and this change makes working with the two accounts a complete pain. All my years of Chrome bookmarks/settings/etc. are associated with my personal account, so I want the browser itself to always be logged in with that identity. But I want to be logged into my business G Suite email account "by default" when I hit gmail.com, when I open Google Analytics, Drive etc. so I don't have to use the account picker a hundred times a day. It just doesn't seem possible. Argh.

I wonder if Google employee accounts were to be considered business G Suite-like instead of consumer Gmail like, all these kinds of problems that constantly keep popping up for G Suite customers wouldn't be fixed overnight.

Androider··on Ending support for Dropbox syncing to drives with certain uncommon file systems
On the contrary, Ubuntu 18.04 dropped the home directory encryption entirely and now only supports full disk encryption.
Androider··on Ask HN: Were you happy moving your API from REST to GraphQL?
As a consumer of APIs I vastly prefer REST APIs.

In my opinion, GraphQL moves too much of the burden to the user of the API. It makes most sense if the data is highly dynamic, you have a mobile app and every call is expensive, or (and this seems more common) the backend and frontend teams don't like to talk to each other. As a user, I just want to GET /foo, with a good old API token I pasted from your dev docs, and move on to the next thing. I don't want to spend time figuring out your database schema. Or perhaps I've just yet to see single good public GraphQL API. I just recently had look at the Github GraphQL API and it's non-existent docs (no, I don't want introspect your data models at runtime), noped the hell out of that, and got the REST integration for the bit I needed done in an hour.

Androider··on The open-plan office is a terrible, horrible, no good, very bad idea
It's a penny wise, pound foolish decision though, considering engineering salaries. It's hard to quantify, and often an externalized cost to the facilities management and decision makers, but my own experience suggests open offices are incredibly expensive as a negative multiplier on the engineering output. The "actual work" starts getting done in the evenings, on planes, and on weekends, while the business hours are a circus of meetings and "grab-ass" as the top comment in this thread so eloquently put it.

I'm building my own company now, fully remote, and from an engineering output point of view I've never seen such productivity. No ass-in-seat supervision, no assigned hours, just straight throughput of engineering tasks being closed and features being shipped every day.

Androider··on The open-plan office is a terrible, horrible, no good, very bad idea
Just watch it in the breakroom or somewhere where it doesn't disturb others. At one previous employer, they reserved a big conference room / auditorium and got food, like a mini team building event. At another a bunch of people just went to a bar en masse. If you can't take 90 minutes out of your team's schedule, or if it's considered OK to just blast the game in an open-office, there's something wrong with the work culture IMO.
Androider··on Effectively using AWS Reserved Instances
KMS is a hardware security module, kind of like the secure enclave on an iPhone. The private key doesn't leave the hardware, your process requests that KMS should encrypt or decrypt something (which is probably another disposable key used for your session to the a DB or whatever, like in a browser TLS session). All of AWS's core services are neatly integrated with KMS: EBS, EFS, RDS, DynamoDB, etc.

I'd trust the AWS datacenter security and processes over your average big-corp datacenter any day, having seen quite a few.

Androider··on Restaurants are figuring out how to do without servers
I'd prefer a serverless restaurant even if the price was exactly the same as with the full-service.

It's like the difference between an old-style Taxi and an Uber, with the latter you just get up and go when you're done. The whole dance of flagging down the server to request the bill, get the bill, oops the server disappeared before you could pull out your card, wait for 10 minutes while they are off exploring Narnia in the kitchen cupboards. Finally they come to take the card and disappear again, what should have taken 30 seconds is now at 15 min+, hope you're not missing your show... ah, finally they're back! Now try to figure out the tip line, with the air of one who is trying to convert Fahrenheit to centigrade in your head while your house is burning down.

Waitstaff-less high-end restaurants expand the audience and frequency of visits of people who can now enjoy these better-than-Chipotle dining experiences. Much like Uber, which doesn't only cannibalize existing providers but actually creates a whole new category of short rides that you would never have previously considered using a Taxi for.

Androider··on Launch HN: Frey (YC S18) – Laundry and Clothing Care Products Tailored for Men
Frey detergent concentrate for men: Blended with essential oils, and comprised of over a dozen individual scents. [1]

BBC: More evidence essential oils 'make male breasts develop' [2]

I'll stick with my no-fragrance detergent, thanks!

[1] https://livefrey.com/shop/the-detergent/ [2] https://www.bbc.com/news/health-43429933

Androider··on How to Pay Remote Employees
No, such limitations would likely be illegal (without additional compensation, beyond the wages, also being stipulated for the period where the employee couldn't leave / couldn't be let go) in many states. I have never seen such a guarantee / requirement in an employment contract, such a "key man" provision would likely be reserved for someone who is in possession of some critical knowledge to the company and company is willing to pay for it.

It's a double edged sword. It's easy to be let go (basically, pack your stuff and get out while escorted by security, just like in the movies), but it also makes it much easier for companies to take a risk and hire you. In Europe, hiring someone is a big risk and companies are extremely careful to hire since they're taking on a big responsibility. As a result, permanently contracted positions are even more common in Europe than the US as a result in my experience.

Androider··on How to Pay Remote Employees
Works great in my experience. It comes out way cheaper than our business banking for paying our workers in Europe from the US.

It's also really easy and convenient, while setting up wire transfers with our Major Bank in the US was complicated and arcane. To date, Major Bank doesn't offer us online wire transfers, for a business account!

We also use TransferWise to accept customer bank payments in Europe, without having an actual presence there.

Androider··on AT&T Successfully Derails California's Tough New Net Neutrality Law
After six gigs it's free. It's great, my average bill is $30 because I'm on WiFi at both work and home.
Androider··on States Can Require Internet Tax Collection, Supreme Court Rules
It doesn't really work very well together at all unless you're using Stripe Orders for physical products. You can't make the Stripe checkout.js show taxes, and it's just a big pain to integrate the API. There's a big opportunity for Stripe here to make it really simple, I would be happy to pay extra to have them completely deal with it.
Androider··on The React Is “just” JavaScript Myth
It's absolutely fine to adopt React piece by piece, I disagree entirely that it's an all-or-nothing proposition. I've converted a heavily used in-production service from 0% to 100% React over the course of more than a year. And this is an SPA, so over that year there was literally jQuery and React rendering to the same DOM. It works just fine, it's all just JS.

You don't have to use Redux etc. (but you probably do if you have sufficiently complex state). Even then, you can do things like have multiple stores in the same app. It's fine! It's just JS objects being spliced, merged, propagated. You eventually converge on a single store as the various React parts merge.

You don't need to use react-router, or even a router lib. It's probably better if you don't, given how many times that shitshow of an API has been completely rewritten. I took one look at it, could tell that this lib wanted to be fully in charge, and noped out. It's fine to manage browser URL state yourself, it's just JS and the browser APIs are OK for that nowadays.

Now we're in the process of adopting Immutable.js. It's fine, it's just fancier collections, with some conveniences and being able to use React.PureComponent 99% of the time without worry. So your codebase is 50% fancy collections and 50% JS natives? That's fine, don't worry about it, just write new components using Immutable.js if that's the direction you're going. Don't worry about the top-level Redux container not being an Immutable instance, just use it for the leaves then.

Server side rendering? I retrofitted that in a weekend by compiling the app as a lib with Webpack (project started as Gulp way back), included that in Node.js as an import. Worked just fine, nothing to it. Now we're generating PDFs using the same frontend code with Puppeteer and SSR, it's awesome.

The app is in a better shape than ever, a real pleasure to work with. Jest tests for React stuff, Mocha tests for other parts. And that's fine, no need to get all religious about which one is the "one true" framework.

Androider··on Gmail Icons are Hard
To me this obviously looks like sticky notes you can add in books or on files to categorize content, a.k.a. quite literally tags.

They're supposed to be the old-school paper tags with a hole in the narrow end [0].

These tags, like floppy's and manila folders, will live on in our iconography even as someone born this decade is unlikely ever encounter the real thing. I was recently amused to explain to my kid what the dialer icon on the iPhone is: "well, a long, long time ago (it's getting close to 20 years now since the Nokia 3310 sold over a 100 million units and we got rid of our landline) we used to have stationary phones in our homes and you would talk into a wired handset that looked like this icon".

[0] https://www.amazon.com/Martha-Stewart-Crafts-Kraft-Tags/dp/B...

Androider··on What technical recruiters want from engineering candidates
As someone who has done a lot of hiring, I've observed a strong correlation between spelling/grammar and the best programmers I've worked with. Details matter, and by failing to even read over your own submission you're showing you don't care about such details. Your commit messages and code isn't likely to impress anyone either.

Being able to write really well can also make you stand out and do wonders for your career, especially if everyone else on the team is likewise a high performer (Jeff Dean style). The best people I've worked with have also all been really nice and kind to a fault.

Androider··on Man donated blood every week for 60 years and helped save 2.4M babies
...those who donated blood a minimum of once a year had an 88 percent lower risk of heart attacks than those who did not donate.

Donating blood is one of the easiest thing you can do to prevent all kinds of cardiovascular disease! Thanks for the reminder, I will be going to donate.

Androider··on The Senate has forced a vote to restore net neutrality
https://www.consumeraffairs.com/news/supplements-now-more-li...
Androider··on Google’s new conversational AI could eventually undermine our sense of identity
It doesn't have to pass the Turing test to masquerade as you.

The John Legend voice for Google Assistant was apparently made without hours of recordings. Companies like https://lyrebird.ai/ do a basic job of copying your voice with about a minute worth of samples (more obviously helps).

I think it's entirely inevitable that at some point you will be able to customize the Google Assistant to use your own voice thanks to WaveNet and it's successors. Instead of the recognizable assistant making calls, every assistant will be different.

Androider··on Using the Web for a Day with JavaScript Turned Off
It does make development easier, and at some point it just doesn't make sense to support any longer.

If the number of people who visit your site with JavaScript disabled is less than the number of people who visit using the Opera browser, does it really make sense to add [number of supported browsers] x [JS on | JS off] permutations to your testing workload? Is spending the time and resources on creating a non-JS site worth it, or would it better spent somewhere else (usability, accessibility, etc.)? Everything is a trade-off.

I personally feel the JS ship has long sailed. I'm more worried about the recent trend of sites not even working in Firefox anymore, just Chrome. That is definitely a bit sad.

Androider··on NYC Renters Paid Extra $616M Thanks to Airbnb, Study Says
Median rent was down ~4% in 2017 [1], some areas like UWS, Hell's Kitchen, LIC are down ~10%. Those are also incidentally the places with the most new construction. The whole Hunter's Point area in LIC has been completely transformed in just a few years from industrial to residental. 3K in Hunter's Point will now get you a new construction with all the bells and whistles and a few free months.

https://ny.curbed.com/2018/1/24/16925172/nyc-rent-2017-decre...

Androider··on NYC Renters Paid Extra $616M Thanks to Airbnb, Study Says
There's already a major building boom going on in NYC at the moment!

11+ super-talls (300m+) and 40+ talls (150m+) are under construction at the moment, and more than that has been completed in just the last few years. Massive amounts of rental units and co-ops are coming online in UWS (Riverside Center), Hudson Yards in Mid-Town etc [1]. And prices have come noticeably down as a result, you can also get more concessions than ever. I just recently received 3.5 months free on a 14 month contract in a brand new building.

[1] https://ny.curbed.com/maps/nyc-new-development-hudson-yards-...

Androider··on AWS Explained: The Basics
One thing I've noticed having worked with many clients, is that legacy architectures that get moved to AWS start by creating subnets, NACLs, etc. while for almost all AWS-first developed applications the Security Group is the smallest unit you tend to address.

So a legacy architecture will for instance specify the "frontend servers subnet" (and a unique SG, hopefully!), while a cloud-native architecture will only specify a SG. I think, asking which subnet some machine is in, is kind of like asking which core some process is running on at the moment: any one of the subnets for any one of the availability zones in that region, and the next one will automatically and on purpose be assigned to a different one by the ALB/ASG combination.

Androider··on React v16.3.0: New lifecycles and context API
I have 27 componentWillReceiveProps across 286 components, so not a whole lot. But in almost none of those do I update the component state, the most common thing is to compare the previous and new props and dispatch some Redux action that will start a load of some data, which will eventually update the props (of multiple components) via Redux. I guess I should start using componentDidUpdate instead?

The other case of componentWillReceiveProps usage I see is where there is computationally expensive derived state, but for some reason the asynchronous nature of setState prevented it from being used, and an instance variable "had" to be used instead. There are a few cases of these where after much hair pulling the instance variable "fixed" the issue.

Androider··on What America looked like before the EPA, in photos
EPA could do nothing but spend 100% of that 8 billion on https://en.wikipedia.org/wiki/List_of_Superfund_sites for the next 20 years and it wouldn't be enough to cover it.

That's just to cover previously made mistakes. Reducing enforcement is going to keep adding to that list, and reducing safety and quality of life for all Americans.

The vast majority (60-80%, Robert L. Glass) of costs for software is also in maintenance, as any of the classic software project management books will tell you.

← PreviousPage 10 of 14Next →