News for hackers. Stuff that matters.
Re:Today’s Top Tech Skills by MatekCopatek on Sunday November 24, 2019 @12:07PM (#21621691)
What would you say is the special thing about this particular bit of knowledge that made you point it out? To be perfectly honest, it seems quite arbitrary to me.

I could say I'm surprised to see how many people don't know anything about the browser rendering pipeline and consequently produce badly performing interfaces. Someone else would complain about people's inability to do even the most basic Linux administration tasks.

But at the end of the day any single bit of knowledge doesn't say much about your general ability to be a developer. The term "web development" covers an extremely wide array of topics. Luckily, there are many wonderful pieces of software out there that abstract things away and allow you to produce a finished product even if you aren't an expert in everything involved.

Re:Today’s Top Tech Skills by yowlingcat on Sunday November 24, 2019 @12:20PM (#21621792)
It's not arbitrary because screwing up your data integrity is far and away one of the most painful and business critical mistakes you can make as an engineer. Your product isn't finished if it looks like it works, but is either storing data improperly at rest or doing the wrong thing with it.
Re:Today’s Top Tech Skills by jackcodes on Sunday November 24, 2019 @12:29PM (#21621865)
I think the point to be made was that if you screw up your browser rending to the point of it being unusable on old devices, that could be just as business critical as the data integrity issue.

Making either of those your line in the sand for what a developer should and shouldn’t know is arbitrary. I don’t know a ‘Scala’ full-stack developer that could do advanced optimisation on React render times, or a ‘React’ developer that knows transaction isolation.

Not knowing either of these does not make you an unworthy developer and unless you have a specific need for these skills it probably does more harm than good expecting everyone to know them.

Re:Today’s Top Tech Skills by yowlingcat on Sunday November 24, 2019 @12:37PM (#21621914)
The difference is that if you screw up your browser rendering, you're not messing up your data integrity at rest and creating compound technical and potential business debt. If anything in the critical path from pricing to payments that talks to your data store makes a mistake, you can risk anything from not recording your transactions properly to charging the wrong amount or not enough at all.

It's very expensive to acquire customers. It gets even more expensive when you have dirty data from incomplete domain modeling.

Re:Today’s Top Tech Skills by littlecranky67 on Sunday November 24, 2019 @12:56PM (#21622044)
Again, you just pick data as the "one" core business critical technology. I guess you are an SQL export? There are dozens of critical points of failure. Losing your HA gateway during an expensive ad campaign, designing your network/data center wrong such that your SQL cluster goes down etc. etc. Even JavaScript that hides the "checkout" feature. I didn't even go into security (think your domain gets hijacked, or XSS injection on your site etc.).
Re:Today’s Top Tech Skills by yowlingcat on Sunday November 24, 2019 @01:10PM (#21622157)
I never said there was only "one" core part of business critical technical competency. What I'd say is that there are several of them in high priority that have an out-sized effect on long term project success. One of them (security) probably has a similarly outsize effect, but everything else you're describing is operations. It doesn't have an effect on how you design your software, and whether it exhibits correct behavior.

At the most basic conceptual level, the business of software rests on reading inputs correctly, processing them, and writing the right outputs with strong guarantees. SQL is historically the most sophisticated, powerful, common and cross platform way to do that in a structured manner that is easy to reason about for a vast majority of use cases. You can layer an application on top of the foundation of an appropriate data model, but the appropriate data model is a root requirement to even get to a passable prototype. That is why gradual mastery of it yields such outsize payoffs compared to mastering other skills.

Re:Today’s Top Tech Skills by arcticfox on Sunday November 24, 2019 @01:03PM (#21622090)
This argument is entirely arbitrary.

What about security? Your business won't succeed if you're hacked daily.

What about monitoring? If you're losing data and don't even know it, you're creating compound technical and potential business debt.

What about performance? Once you have a perfect data model, no amount of trying to optimize it will improve your business further. Optimizing other parts of the application can.

Basically everything is important, saying that just because someone isn't an expert in one phase that they're not as good of a developer is myopic.

Re:Today’s Top Tech Skills by yowlingcat on Sunday November 24, 2019 @01:16PM (#21622202)
I get the sense that you and other commentators are putting a certain binary in place, and I'm not sure it's in good faith. Nobody ever said that you have to pick one particular place to be an expert in, and if you're not an expert there, you're not a good engineer. That's an absurd argument, but it's also not what is being said.

The truth is, you need to be good enough at all of the high priority parts of technical competency. Security, monitoring, performance -- sure, all of those are also extremely important. They're all places where unforced errors can be introduced that can and do hurt the business -- sometimes catastrophically or fatally.

With that said, to not recognize the evergreen utility of domain design skills is ignorant. You will never get the luxury to worry about security, monitoring, or performance if you don't build the state machine that makes the right outputs out of the right inputs because you will either never sell it to a customer, or lose that customer when they choose a competing solution which actually does what it's supposed to do.

It's not true that everything is equally important. I think that's a myopic way to look at software development without considering the business impact of key crucial areas where software design and maintenance intersect with stakeholders.

Re:Today’s Top Tech Skills by taffer on Sunday November 24, 2019 @06:48PM (#21624357)
> Your business won't succeed if you're hacked daily.

Which can be the consequence of setting the wrong isolation level: http://www.bailis.org/papers/acidrain-sigmod2017.pdf

Re:Today’s Top Tech Skills by scarface74 on Sunday November 24, 2019 @03:13PM (#21623014)
Even if you are using an RDMS it doesn’t help to protect you against many business rule violations. Your data may be relationally correct, but that’s about it.
Re:Today’s Top Tech Skills by wehrkeoruw on Sunday November 24, 2019 @01:05PM (#21622108)
We're having this conversation as if everyone making SQL queries is one fat finger away from irrevocable data loss. I know very little about SQL but have managed to build literally dozens of systems on top of Postgres without ever causing a data loss event as a result of my poor SQL skills...
Re:Today’s Top Tech Skills by arbie on Sunday November 24, 2019 @01:18PM (#21622214)
I think we are seeing the difference between software development and software engineering laid bare.

The distinction is similar to a property developer and a civil engineer. Both create buildings, but one does it at scale by offloading functions to known entities and prepackaged solutions, while the other understands one domain in depth.

Both are needed in any team or organization, because not every solution needs to be "engineered" (a Dockerized Redis instance without SSL or auth behind a corporate firewall may survive untouched for a decade), but sometimes you have to engineer something that withstands gale-force winds at 1000 ft height.

Re:Today’s Top Tech Skills by littlecranky67 on Sunday November 24, 2019 @12:30PM (#21621866)
Again, arbitrary. You could also argue a JavaScript bug on your site preventing a shop checkout is the worst, because you lose Cash by the minutes.
Re:Today’s Top Tech Skills by bathtub365 on Sunday November 24, 2019 @12:57PM (#21622056)
While a front end bug that gets in the way of sales is bad for a business, a poorly designed or buggy data layer can cause issues throughout the rest of the application. It can lead to things like lack of isolation between users, loss of data, data inconsistency, and scalability issues.
Re:Today’s Top Tech Skills by ThrowawayR2 on Sunday November 24, 2019 @12:48PM (#21622004)
You have got to be kidding. Corrupting data for a sale already made is far worse than losing a sale because of an outage.
Re:Today’s Top Tech Skills by arcticfox on Sunday November 24, 2019 @01:05PM (#21622115)
> Corrupting data for a sale already made is far worse than losing a sale because of an outage.

I mean, this is still arbitrary. There are millions of small businesses worldwide that do fine with terrible records, but making on-going sales.

If you don't make any sales because of constant outages, you could argue that's worse than trying to deal with corrupted data, especially if you have log files or some other method to recover corrupted data anyways.

Re:Today’s Top Tech Skills by yowlingcat on Sunday November 24, 2019 @01:29PM (#21622272)
You're getting to the crux of the issue now. If you don't have log files to recover corrupted data anyways, or that is you never saved it in the first place -- you CANNOT recover it. If you risk irreparably corrupting old data and new data, what is the value of your software system in the first place? Why not use google forms and google spreadsheets, data entry analysts and a call center and be done with the whole thing anyways?

My point is that the very root of what gives software value is something deeply industrial -- it is a machine that can do something over and over correctly, reliably and without regressions. If you take away that reliability to be depended upon by a business, you are no longer building an industrial strength solution -- you're building a toy.

Re:Today’s Top Tech Skills by jackcodes on Sunday November 24, 2019 @12:58PM (#21622059)
Not when you’re corrupting only a handful of sales, but losing all of them. It still feels arbitrary to say one is more important for developers to be aware of than the other here.

As long as you have both covered to a reasonable degree within your company/team it’s a waste of time arguing who’s got the most important info in their brains.

Re:Today’s Top Tech Skills by joyeuse6701 on Sunday November 24, 2019 @01:07PM (#21622137)
One is more important because presumably one is harder and thus more expensive to recover from. Typically the deeper the rot in the foundation, the more expensive the repair.
Re:Today’s Top Tech Skills by stefano on Sunday November 24, 2019 @01:58PM (#21622462)
A data corruption might be also impossible to recover from. You could even only notice it after months of it happening, e.g. if your users spend months collecting data which is only analysed at the end of the year.
Re:Today’s Top Tech Skills by darkerside on Sunday November 24, 2019 @01:16PM (#21622197)
You are potentially corrupting ALL of your data, not just a handful. Sure, in the two scenarios you chose to provide (speaking of arbitrary), the JS error is clearly worse. If you take the worst case scenario in both cases, one is much more likely to cause an existential threat to your business.
Re:Today’s Top Tech Skills by LaGrange on Sunday November 24, 2019 @01:03PM (#21622089)
...that's assuming there's some sort of meaningful liability in corrupting the data, either legal or from PR backlash, but sometimes it feels like many companies have discovered that's not really the case.
Re:Today’s Top Tech Skills by yowlingcat on Sunday November 24, 2019 @12:33PM (#21621887)
I think you're proving exactly my point.

SQL is intrinsically very close to the metal of your business logic, especially when it comes to general business logic. General business logic is typically most critical and risky around the surface of payments. A JavaScript bug on your site around your shop preventing checkouts is very bad because you are indeed losing cash by the minutes. A poor domain model that doesn't properly associate active promotions to cart order lines could result in an incorrect charge amount and an irate customer.

Re:Today’s Top Tech Skills by itronitron on Sunday November 24, 2019 @12:29PM (#21621863)
>> many people don't know anything about the browser rendering pipeline

if you can recommend a good source for learning the browser rendering pipeline please post it here, everyone I have asked just shrugs it off and says that no one really knows.

Re:Today’s Top Tech Skills by greenyouse on Sunday November 24, 2019 @01:50PM (#21622406)
I'd be interested in other resources for this too. The best I can think of is Udacity's Web Performance Optimization class[0]. It's by Ilya Grigorik, chair of the W3C Web Performance working group.

Other than that there are some older docs for the Blink engine which drives Chromium. It's much more low level and hard to follow though[1][2].

The Navigation Timing spec is good for building an understanding of the major events that go into a page loading and creating HTML elements[3]. It's not the whole picture but gives the timings for navigation and DOM element events.

[0] https://www.udacity.com/course/website-performance-optimizat...

[1] https://www.chromium.org/developers/the-rendering-critical-p...

[2] https://docs.google.com/document/d/1wYNK2q_8vQuhVSWyUHZMVPGE...

[3] https://www.w3.org/TR/navigation-timing/#processing-model

Re:Today’s Top Tech Skills by simoncarter on Sunday November 24, 2019 @01:22PM (#21622246)
Re:Today’s Top Tech Skills by davidjnelson on Sunday November 24, 2019 @01:15PM (#21622193)
This one is quite good. I posted it to Hn 6 years or so ago but it didn’t get upvotes:

https://www.html5rocks.com/en/tutorials/internals/howbrowser...

Re:Today’s Top Tech Skills by gdy on Sunday November 24, 2019 @01:41PM (#21622343)
How much of it is relevant 8 years later?
Re:Today’s Top Tech Skills by debaserab2 on Sunday November 24, 2019 @01:59PM (#21622475)
Nearly all of it
Re:Today’s Top Tech Skills by davidjnelson on Sunday November 24, 2019 @01:29PM (#21622273)
This series is also quite good, a bit more modern:

https://developers.google.com/web/updates/2018/09/inside-bro...

Re:Today’s Top Tech Skills by LaGrange on Sunday November 24, 2019 @01:04PM (#21622104)
> I could say I'm surprised to see how many people don't know anything about the browser rendering pipeline and consequently produce badly performing interfaces.

I mean, if you're supposed to be a senior front-end dev then that wouldn't be an unreasonable expectation. Meanwhile there's plenty of senior back-end developers out there working on SQL-backed applications who don't know SQL and refuse to learn it.

Re:Today’s Top Tech Skills by liveoneggs on Sunday November 24, 2019 @01:16PM (#21622203)
by this reasoning all knowledge is arbitrary so this comment provides no value beyond arbitrarily shitting on someone
Re:Today’s Top Tech Skills by goatinaboat on Sunday November 24, 2019 @04:11PM (#21623446)
many people don't know anything about the browser rendering pipeline and consequently produce badly performing interfaces

No one cares about that because the website will be redone in the hottest new framework every few months anyway. Whereas serious databases are around for decades.