HNHacker News
TopNewBestAskShowJobs

danek

370 karma · joined June 19, 2009

submissionscomments
danek··on Ursula K. Le Guin, “the emissary from Orsinia,” challenges expectations
I read LHOD just a few months ago. Great stuff!
danek··on Goodbye, Object Oriented Programming
It depends on how you use React. You can use it in a stateful, OO way. Or you can use it in a more functional way. A good example of how to use React in a functional manner is the Redux framework (basically you don't use the stateful parts of React and treat your components as a tree of pure render functions). http://redux.js.org/
danek··on Why I’m never buying HTC again
$[support costs] = [num customers] * [avg call duration]

So obviously you can save money by shortening call durations. This has a nice side effect of reducing the number of customers (over time), which also helps reduce support costs.

#metricsDrivenManagement

danek··on Stack Overflow Outage Postmortem
I wouldn't jump to any conclusion ;)

But I do know that tools often make it easy for people do incredibly stupid things by accident. Like the 'sudo remove file' command followed by '-rf' in the wrong place. I rimraf a lot; it's very useful. It's a miracle I haven't wiped out any computers doing so...

danek··on Ask HN: Why do we still use open floor plans?
The book "Peopleware" discusses this. https://www.amazon.com/Peopleware-Productive-Projects-Tom-De... Basically, open floor plans are cheap and you can maximize metrics like $/person-sqft.

Other factors:

* "everyone else does it"

* Open floor plans seem like a good idea when you first hear them; the downsides are not immediately obvious. Verbal reasoning, no matter how flawed, almost always wins.

* The decision makers tend to be blissfully unaware of the dynamics of knowledge work because their work is typically interrupt-driven. Thus, they don't see any problem putting 50 programmers in a cramped and echoey gymnasium.

* Even if the decision maker is fully aware, their boss might not agree to a higher-cost office plan. Actual dollars will almost always beat non-metrics like "compounded employee productivity" or "time and money not wasted due to mistakes caused by people operating in a distracting environment".

--Yes, in theory you could design an experiment, but that would delay the decision and probably require spending money. And the outcome would probably be misinterpreted: the open floor people will be louder and will appear to be working harder. (But are they actually more productive or are they just scrambling to fix all the bugs they created?)

danek··on Goldman Sachs Dumps Numerical-Ranking System for Employees
Wow, that's pretty bad. Metrics-driven management is one of those things that sounds like a smart thing to do but it ends up being counterproductive. It's really hard to measure the things that are important so we have to use proxies. Except optimizing a proxy is not the same thing as optimizing the thing you care about. And this is how we end up with production databases using rot13 for encryption :)
danek··on Goldman Sachs Dumps Numerical-Ranking System for Employees
The sad thing is that the managers participating in these sorts of activities are unable to connect cause & effect. For example, if you rank individual employees then you destroy teamwork and incentivise all sorts of behavior that's bad for the company. It hurts morale, lowers productivity, increases employee turnover, increases hiring costs, lowers product quality, etc. It's a vicious cycle. And for someone who thinks it's a good idea to rank employees, these effects will simply confirm their beliefs that they need to rank employees.

Why does this happen? In the best case, it's a misguided attempt at career development. Or it's a way to figure out who to give more money and who to fire. Usually there is an element of fear: "I'm afraid my employees will not work hard unless there is the threat of a bad performance review".

To be fair, ranking employees does sound like a good idea if you don't know anything about humans. Most management activities are really just things that sound like a good idea (but fall apart under scrutiny). To be more fair, bad management is the norm, so no one has good mentors and role models. "If everyone else does this, then it can't be wrong." It's another vicious cycle.

danek··on Missing the Point – GeoIP's, Points, Polygons, and a Precarious Farm in Kansas
I've lost track of how many times I've had to explain that "no, there is not a staggering amount of latent demand in the middle of Kansas" to people trying to do metrics :)
danek··on A Farewell to FRP
I was also confused by it. However I read the last sentence as the author making a meta-point by using purposefully incorrect grammar, a sort of reversal of the first sentence about c++ code compiling but leading to segfault--like an artistic statement. If it was an accident, then all the better!
danek··on The result would be a catastrophe (1985)
This is a good read. I do think the Tufte essay is excellent except for one detail. I don't think it's fair that he places blame on the the engineers for failing to convince NASA management to stop the launch. It is possible that better designed slides would have helped NASA management grasp the problem. But I think the fault is more so on them.

The premise of "failing to convince management" relies on the notion that "management can do no wrong". For example, if you tell your boss that we're about to drive the bus off a cliff, and he doesn't listen, it's your fault.

This is the way things work in many organizations, it's an old-school approach to management, but to me it is purely dysfunctional. When someone tells me I'm about to drive off a cliff, I say, "Wow, thanks! What did I fail to see that got us into this mess in the first place?"

Aside from Tufte's notion of blame, I think his essay is very instructive.

danek··on The result would be a catastrophe (1985)
I was wrong--he wasn't going be attend, but there (allegedly) were plans to have a televised conversation between him and Christa McAuliffe during his State of the Union address that night.

However this may not be true. While trying to find an e-source, I read that there were some politically-motivated rumors that the white house ordered the shuttle to launch for this reason. Feynman investigated that rumor and didn't find any evidence that the white house ordered the launch.

It's possible the detail about an on-air tv conversation between the president and a schoolteacher astronaut could have been fabricated as well to make Reagan look bad, or it could have been based on elements of truth. For example she was expected to broadcast 2 lessons to students from space, so the capability definitely existed. It doesn't seem too far out that they would have liked for this conversation to happen during the State of the Union, though that doesn't mean the white house ordered the launch.

I read this in Edward Tufte's essay Visual and Statistical Thinking (http://www.edwardtufte.com/tufte/books_textb), which discusses how better information displays might have convinced NASA management to postpone the launch. It also appears as a chapter in his book Visual Explanations.

I didn't have any luck finding sources on the internet (lots of keyword overlap). Tufte is much better informed than pretty much all of us, though it's possible he printed what amounts to an unsubstantiated rumor. FWIW he also served on the Columbia accident investigation board.

I think there were other pressures to launch as well. The launch date had been postponed 3 times already for various reasons. Cynical danek: I wouldn't be too surprised if some manager's performance review was based on how many launches took place on the scheduled date.

danek··on The result would be a catastrophe (1985)
There was pressure to ignore warnings because President Reagan was scheduled to be present for the launch. In higher levels of management, things get more political. Looking good and getting exposure count for a lot. No one wants to be the guy that made nasa look bad by slipping the launch date. In tech, most managers tend to be rated by how well their projects meet schedules and how much operating expense they can minimize, since that's the only thing their managers have any sense of control over. Your boss doesn't want to take the heat for delaying project "glitter unicorn" by a week so you can fix 2 major security holes in the service, one which allows customers to login without a password. And this is why your company won't spend $500 for a data backup system or why it takes 4 months to get your broken keyboard replaced. It's turtles all the way up.
danek··on Comets can't explain weird 'alien megastructure' star after all
Could this be explained by a black hole, slowly slowly siphoning matter from the star? Maybe it's behind the star and we're less likely to observe the radiation from it..
danek··on Comets can't explain weird 'alien megastructure' star after all
That's interesting. Perhaps there is some "natural" process that's producing dust clouds.
danek··on Why PowerPoint should be banned
By low-res, Tufte is referring to the concept of stacking information in time, rather than placing it adjacent in space. (this is all his insight, not mine) It's "low res" in the same way a phone voice-mail menu is low-res "press 1 for x, press 2 for y, press 3 for z, etc". You get bits of information sequentially, stacked in time. The onus is on you, the receiver, to piece the information together into some sort of mental matrix so you can make your decision. A high-res counter-example would be seeing all options together, like you would in a table of contents.

One way PPT is low-res is that there is not enough room on a slide to type full sentences. It wants you to dilute your thoughts into a bullet list or some similar fragmented format.

Often a presentation involves a series of slides, and ideally you'd want the audience to make comparisons between slides e.g. Before XXX, After XXX, & Therefore XXX is good. The sequentiality of slides is another example of it being low-res. This increases the cognitive effort needed to engage with your content, making it difficult for anyone to actually think critically about what you are saying. In other words, it's a great sales tool!

The paper handout is an excellent idea. You can fit the information of about 250 ppt slides onto a standard 11x17 sheet of paper.

PPT can be useful in other cases (I've used it for drawing seating charts), but it tends to be pretty terrible for presenting any sort of analytical content. I've seen a many PPT presentations from accomplished, smart people, and I can't recall a single one that wouldn't have been more effective as a paper handout.

danek··on Why PowerPoint should be banned
Edward Tufte argues that powerpoint is indeed the problem.

PowerPoint is a slideware operating system which forces the presenter to contort the content into its low-resolution format. This necessarily makes the content less understandable, unless the content happens to be photographs and your topic is something like art history. It's easy to say it's the fault of bad presenters, but other formats don't necessarily make your audience dumber; with PowerPoint it is the rule rather than the exception.

"The average number of numbers on a powerpoint slide is 12. This is slightly better than communist propaganda (Pravda 1982). For comparison, see the sports page." --me, poorly paraphrasing

Discussion of how slideware led to 2 space shuttle explosions: PowerPoint Does Rocket Science--and Better Techniques for Technical Reports http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0...

Tufte's textbooklet on powerpoint (an excerpt from his book Beautiful Evidence): The Cognitive Style of PowerPoint: Pitching Out Corrupts Within http://www.edwardtufte.com/tufte/powerpoint

danek··on F# 3.1 as C# 6.0 Strict Mode
Structural typing would be nice. My wish would be algebraic data types. I'm not sure how that would even work in c# but its what I want :)

I tend to avoid using out parameters. I've written extension methods to replace the typical out param framework methods.. For example, instead of int.parse(string s, out int i), we have "123".TryParse<int>(), which returns a nullable int. instead of TryGetValue on dictionary, we have GetOrDefault(key, optional default val) and GetOrDefaultAsNullable(key).

I think the new out parameter syntax is an improvement, but I'm still on the fence about whether out parameters are even a good idea when we can instead return a single type that encodes the same information.

I'd be interested in hearing other viewpoints on this.

danek··on O-notation considered harmful (use Analytic Combinatorics instead)
What is the origin of these articles that take the form "X Considered Harmful"?

What's wrong with adding the word "is" between "X" and "considered"?

Who is doing the considering?

What is X harmful towards?

Can anyone explain why this is a thing?

danek··on Why I Love Being A Programmer in Louisville
having lived in louisville, i can say it's extremely difficult to do things without a car. i lived there without a car for several years. it was do-able, but i was dependent on friends to drive me places every once in a while. also, it's the mid-west so when people find out you don't have a car, they treat you like a space-alien.
danek··on Your C# App on 66 Million Macs: Announcing Xamarin.Mac
scriptsharp: I saw it used/had to help maintain for a rather big project...never again... :(
danek··on Your C# App on 66 Million Macs: Announcing Xamarin.Mac
you could argue chromium is better for those same reasons ;) spotify is a good example of where this works well.
danek··on Your C# App on 66 Million Macs: Announcing Xamarin.Mac
Lately I've been using embedded chromium to solve the write once/run anywhere/look great everywhere problem. While java isn't going away anytime soon, it's nice to see it incrementally lose applicability.
danek··on Learning Haskell/Python makes you a worse C# programmer
lolwut?

Do you disagree that C# has similarities to other languages? C# is based on Java, which is somewhat based on C++. Basically anyone who does a CS course learns one of these. In comparison, I don't know any programs that use Haskell, oCaml, scala, or ML (I had a single class in which I had to use ML fora single project). What I mean to say is, functional programming is not widely taught. I don't think this is controversial.

Do you disagree that any person that is reasonably smart and that you'd want to hire could become productive in c# within a few days, given that they've used java or C++ before. This is a super-low risk gamble. I don't think this is controversial.

The only indicator that someone can become productive in F# is that they have experience in one of F#, Lisp, ML, Haskell, etc. I don't think this is controversial.

Hiring people is hard. Maybe you haven't been involved in the process, but you have to interview hundreds of people just to find that one person who is smart, is a culture fit in your company, and has enough self-discipline and a high-enough level of consciousness to go about their work in a pragmatic and intelligent manner.

Now imagine that you are CTO of a new company and you are deciding between c# and f#. If you startup becomes successful, you'll have to quickly ramp up in hiring engineers. If your startup doesn't become successful, you'll quickly have to ramp up in having someone else hire you.

Assuming we are a rational person, that is we are doing a startup in the hopes that it will be successful, then our plans will facilitate the hiring of many engineers.

Fast forward to when we need to hire many engineers. Also, remember you don't have loads of time to spend doing this, because you're the CTO of a startup and you have shit to do. Also, remember it's hard for startups to hire because 1) risk and 2) you aren't google.

Now imagine taking your pool of candidates and reducing it by 99%.

danek··on Peter Thiel’s Unorthodox Management Philosophy of Extreme Focus
I'm guessing you either had a really bad day and are venting on the internet, or peter thiel did something awful to you in your past?

In what ways in Thiel full of BS?

In what ways is this type of thinking myopic and detrimental?

In what situations would you advise someone not to spend their time working on the most important thing they could be doing?

danek··on Peter Thiel’s Unorthodox Management Philosophy of Extreme Focus
Followed to illogical conclusions, how could anything ever be good? ;)
danek··on Peter Thiel’s Unorthodox Management Philosophy of Extreme Focus
I think people are reading this too literally. The 'one thing' isn't your task, it's your goal. You engage in whatever tasks are necessary to achieve your goal in a way that is good for the business. This ensures that each business function is the best it can be.

For example, suppose the next most important thing for your business to do is to reduce marketing spend. you make that someone's goal, and that person focuses on reducing CPA for several weeks. obviously, you don't want this person to divert their time to answer support emails--you want them focused on saving your company boatloads of money.

danek··on D3, Conceptually - Lesson 1
this is also true of 99% of open source projects. i often find myself on a github project page, trying to figure out what problem the code is trying to solve. context: it's important.
danek··on Learning Haskell/Python makes you a worse C# programmer
Also consider that it is hard to hire people to work on your project if you use F#, whereas c# has enough similarities to other languages that it is easy for people to get up to speed. It's too bad, F# is a really great language.
danek··on X-editable: In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery
i'm on the same version of chrome (win7) and it works for me
danek··on 40% off The Pragmatic Bookshelf with the coupon 'turkey'
worked fine for me, I picked out 4 titles I've had on my reading list for a while.
← PreviousPage 4 of 7Next →