Tim Bray: Year-end View of the Mobile Market - <AUTHOR> http://www.tbray.org/ongoing/When/201x/2010/12/28/Mobile-Market

<comment><USER2> _An unencumbered high-end handset at around $500 is cheaper than the same device at $199 with a contract. I wonder if someone will notice this and offer conventional financing packages like you can get for fridges and TVs._

T-mobile appears to be doing exactly that. You can get a contract with a subsidy, you can get financing on the phone and cheaper monthly service, or you can buy the phone outright and get cheaper monthly service.

<comment><USER3> unfortunately, AFAIK, T-Mobile is the only major US carrier to offer such no- contract/unsubsidized discounts

<comment><USER4> I would hope, and hope is a strong word, that having multiple carriers (plus MVNOs) on the interchangeable LTE bands will encourage some competition that is sorely lacking due to incompatible frequency allocations.

Every spot in the US will be covered by 4 (5 is they ever find a buyer for the D block) licenses. In some locations, one carrier already has 2 of the licenses (e.g. VZW). I still see room for competitive behavior.

</comment></comment></comment><comment><USER5> _... there's nothing fundamental in Android that would get in the way of a industrial-design and user-experience rock-star team, whether at Google or one of the handset makers, testing the hypothesis that these things are central to Apple's success.

Which is to say, it would be sort of surprising, but not that much, if this time next year, dirt-cheap iPhones were competing against Androids that push the user-experience lever farther than Apple or anyone else ever has._

I keep hearing this argument that Google simply has to assemble a crack team of UI experts and they'll inevitably match or surpass Apple's offerings.

Presumably Apple will equally at some point assemble a search rock-star team and push the search level farther than Google or anyone else ever has.

<comment><USER6> I agree, there are obviously elements of the iPhone OS user experience that no other high tech company has a chance of ever matching.

</comment></comment><comment><USER7> WP7 will become a major player in 2011.</comment>


How I Read Programming Books - <AUTHOR> http://www.simplyahmazing.com/2013/01/how-i-read-programming-books.html <comment><USER2> <rant>

For reasons unknown to me, intro-level books for programming languages stopped including exercises. K&R had exercises, SICP had exercises, Dragon Book had exercises. Clojure in Action, Clojure programming, Joy of Clojure, Programming Erlang — none of those have any. What happened? Are they trying to conserve space?

</rant>

<comment><USER3> > Are they trying to conserve space?

While I haven't read the four you mention not having examples, in my experience, "conserving space" is the _last_ thing most programming books do.

Reading this post, my first thought was "How do you read a programming book 3 times? They're _so long_?"

I actually feel like most programming-related books are _artificially padded_ with unneeded content, just for the sake of making them longer. Perhaps so they'll seem more like they're worth their price?

In my opinion, _too-long_ technical books are a problem. If you've only got an hour or two a day to read, it can take a week or two to get through a decent- sized technical book. Add in xentronium's point about lack of exercises, and I don't know how anyone is supposed to retain much knowledge from these books.

<comment><USER4> I understand that at least one publisher prefers thick books because that makes the spine wider and therefore the book is more visible on the shelf in the bookstore.

Maybe now that so many books are purchased online this isn't as much of a concern.

</comment></comment></comment><comment><USER5> The "typing code out" is important. A lot of us learned just this way in the early 80s, because that was the only way we could get the source: buy a magazine or a book that taught, say, game programming in BASIC, and then type in code. The inevitable syntax errors made you spend time going back through to figure out what you did wrong, not to mention the time you spent actually looking at each line.

Downloading the code from a book's web site has nowhere near the same effect, even if it "feels" more efficient.

<comment><USER6> I try to do the same thing in lectures. Unless I'm late or the lecturer is a particularly fast talker, I can usually process the information to the point where I'm writing my current understanding in my own words. Much better for me than taking dictation for an hour.

<comment><USER7> > I can usually process the information to the point where I'm writing my > current understanding in my own words.

Can you explain what you mean by this?

<comment><USER8> He means he's taking notes.

Rather than painstaikingly writing down _everything_ the lecturer says. Which would be stupid anyway, that's what audio recorders are for.

<comment><USER9> You can't skim over audio recordings

<comment><USER10> I ran through my audio recordings in 1.5x speed the week before finals when I was studying. It's kinda like skimming.

</comment></comment></comment></comment></comment></comment><comment><USER11> I think I'm too ADD for this. Here's how I read programming books:

1\. Open Table of Contents and find topic I'm interested in. 2\. Open page of topic. Read about it. Start coding along. 3\. Close book.

I feel like I can't really read them any other way. I haven't read one cover to cover in years, and that was when I was doing tech editing for publishers and I had to read the whole thing.

Am I alone? Do most of you read the whole thing like a novel?

<comment><USER12> I pretty much do what you do, although it often leads to a rabbit trail of backtracking to pick up prerequisite concepts.

<comment><USER4> I do the same, and it drives me crazy. This is one habit I've been trying really hard to break in the last few years.

<comment><USER13> Interestingly, if you try to force yourself to read the book from cover to cover, and you find it painful and dreary and you have to FORCE yourself to read every single page, that's a pretty good simulation of what ADHD feels like when doing an uninteresting task.

So, perhaps you could try checking out some of the advice for ADHD peeps and seeing if some of the non-illegal strategies work for you.

</comment></comment></comment></comment><comment><USER14> I'm more or less the opposite of the author: I find a problem first, pick the language that seems most suitable or I think I can code fastest in, and have at it. Advantages:

\- Write interesting code right away, which helps me focus \- No need for a monolithic resource like a book, just Google the specific problem to be solved \- Solve a problem while learning

The biggest downside is that I don't tend to write idiomatic code: when you hack away at your own projects, they all look like your style, regardless of the source language. It took me several months to pick up good C practices at my new job, and I'm still not proficient at Ruby, Python or Java, despite having written plenty of code.

To try and combat this problem, I've started reading more advanced documents and talks in languages where I think I've got an OK base understanding. These tend to be more interesting, and better demonstrate the strengths of a given language.

<comment><USER15> If you never learned it, how do you know if a language is good for solving a problem?

I often choose a random language for solving a small problem, so that I can learn it. It's often not the best language for the problem, but it shows what the language is good for.

For me a monolithic resource is great for getting started in a language, but most books are too deep, so I normaly don't finish them.

<comment><USER14> I find from reading blog posts, HN, etc. I have a pretty good idea of a language's capabilities. Plus, if the idea is based on a particular API where some languages are documented better or have a library already built, that reduces development time a lot. That said, you're right that I do go outside of my comfort zone intentionally when all things appear to be equal. Otherwise I never would have gotten away from PHP for web apps.

</comment></comment></comment><comment><USER16> For anyone reading to acquire knowledge, or to learn new things, may I recommend How To Read A Book by Charles Van Doren, Mortimer Adler.

<comment><USER17> So I actually need to read that book twice ?

I'm only half-joking here... It's a semi-serious question!

<comment><USER18> In developing the skills of reading, initially one may need to read stuff twice. With skill and practice, one reading may accomplish several kinds of goals at once.

</comment></comment></comment><comment><USER19> At this late stage in the game, learning a new language for me is a matter of deciding on a project and building it while keeping some appropriate reference at hand. If I read a book linearly at all it's to read just enough to get the "Hello, World" going.

BTW, it doesn't take very long to become usefully productive in a language. When I hire developers who've never worked with a language before I budget 6 weeks for them to start being productive and 6 months until they're truly proficient.

Because of that, I place a higher premium on their raw talent and level of interest in the platform and type of work we have than on the particular stack they're already familiar with.

</comment><comment><USER20> This approach really depends on the brevity of the programming books you are reading. I can't see someone leafing through CLRS, then again, then once more shortly afterwards. Or other algorithm books like Algorithms in C, or e.g. SICP or How To Design Programs. I read programming books at a glacial pace, and sometimes I find it very tough going. So tough that I would not be in a hurry to repeat the process, so I take notes. Also I find the desire to read another different book much greater than the desire to retread the same material.

</comment><comment><USER21> 3 full reads of a book? That's highly inefficient, and it probably becomes very boring (at least for me -- but that might be my ADHD).

<comment><USER22> It depends on your learning style. If you know any trained psychologists, they may have more to say on this, but I found a decent little article on it [1]. Reading a book 3 times and processing it differently each time probably is engaging a number of different memorization tips.

[1] [http://psychcentral.com/blog/archives/2010/09/03/8-tips- for-...](http://psychcentral.com/blog/archives/2010/09/03/8-tips-for- improving-your-memory/)

<comment><USER21> I'm not gonna argue that repeating something is going to aid memorization, but in my experience, the best way to learn a programming language is to read a book and then actually use it. If you forget things you can always look them up, but re-reading the book 2 more times is useless.

</comment></comment></comment><comment><USER23> That's very interesting. I usually read once, sometimes don't even write code but I fully understand and ready to use the language. Maybe it's about the programming expertise level you already have. Of course, when reading stuff like Haskell, Scala you need to practice but when reading Python, Java... not for me.

</comment><comment><USER24> My programming II professor would always tell us to step away from the keyboard/monitor, and physically write out a source file x times to help learn a language. There is definitely something to this process that helps language syntax piece itself together in the brain. Probably because it's similar to the process we use to practice writing and reading our human languages.

</comment><comment><USER25> I strongly agree with the author.

The first read is like a novel. You want to know the plot, the main events, and not much else.

The second read is as though you're going to write a report. Paying specific attention to detail, noting unique and important bits.

The last read through is the nitty gritty. You have notes and the flow in perspective. Now you're putting it to real use.

</comment><comment><USER26> "Do the exercises" is only something you can do if you have the book. Learning from blog tutorials don't usually have that benefit. You could still use this person's approach but you'd have to substitute in something for step 3. I'd say some kind of "mini-project" makes an acceptable substitute in most cases.

</comment><comment><USER27> This is pretty much how I use them as well, but I also intersperse personal projects in between using what I've learnt and trying to acquire new information as well. It's effective for me, I seem to retain more information this way rather than going for one pass through a book.

</comment><comment><USER28> The strategy that works for me is:

\- read the book and write down the key points (usually a full book will be reduced to around 10 pages)

\- read the notes, and try to do the examples

\- rework the examples a second time, refer book and notes

</comment><comment><USER29> Nice that the author has read so many programming books so that creating an algorithm for reading such books is cost-effective.

</comment><comment><USER30> One thing I've learned: do the excercises. Just do them.

</comment><comment><USER31> Been reading in <http://antijingoist.github.com/AlphaSymbolic/>.

I'm not exactly sure what the best strategy is for applying AS to programming languages since it has no "uppercase" glyphs.</comment>


Supercharging the Atom Editor for Go Development - <AUTHOR> http://marcio.io/2015/07/supercharging-atom-editor-for-go-development/

<comment><USER2> > Making it a little more similar to VIM

I dont understand why they change the text editor just to emulate vim and emacs...

As an emacs power user, I don't even feel the need to change to another editor.. (I only program in python/go/javascript/r/sql)</comment>


Firefox to Chrome: We'll See Your 70 Million Users And Raise You 300 Million - <AUTHOR> http://techcrunch.com/2010/05/19/chrome-firefox-growth/

<comment><USER2> Interesting perspective from Mozilla's Dotzler in his linked blog comments:

 _you cannot compare users to usage. Browser vendors like Mozilla and Google can measure active users by seeing how many installs of Firefox or Chrome are running on any given day or month. Web stats vendors like Net Applications and StatCounter measure browser usage in terms of page views. The two are very different.

In Firefox's early days (as in Chrome's early days) most of our early adopters were "power users" who browsed a lot, dozens, maybe hundreds, or thousands of pages/sites a day. But today we have many more mainstream users than early adopter power users. Regular folks don't browse that much. A good family friend of mine, for example, spends about 20 minutes a day on the Web checking email and reading a story or two in a major online news site. It takes scores, or even hundreds of people like him to generate the _usage_ of one person like me. I spend about 14-16 hours a day on the Web and visit literally hundreds of sites and thousands of pages._</comment>


De-Anonymizing Web Browsing Data with Social Networks [pdf] - <AUTHOR> http://randomwalker.info/publications/browsing-history-deanonymization.pdf <comment><USER2> At the 33c3 I showed how you can often uniquely identify a single anonymized user from a dataset containing three million people by using publicly posted links from his/her Twitter timeline. I also showed that this is possible with other types of public information as well, such as YouTube video ratings or reviews on Google Maps.

The math behind it is quite simple and very reliable for many datasets, which makes it very easy to build robust fingerprints based on browsing / location / behavior data. In my opinion, this is what most big companies rely on today for identifying users, as this is more robust than cookie-based mechanisms, which become more ineffective as the use of multiple devices and blockers increases.

Here's the link to the video (you can choose the language in the menu, by default it's German but the talk is also available in English and French):

[https://media.ccc.de/v/33c3-8034-build_your_own_nsa](https://media.ccc.de/v/33c3-8034-build_your_own_nsa)

<comment><USER3> I encountered something similar the other day. I was on a moving website to schedule a move across town. I put in my info, and they gave me a quote, but the process was weird. It wouldn't let me back out of the quote completely, and if I returned to the main page of the site, it still showed my quote.

So I opened an incognito window and went through the process, no problems. Closed all incognito windows. Opened another, went to the site, and my quote was up, in a new incognito tab.

It was jarring because it meant that they were tracking me somehow, obviously not through the standard mechanisms as I was incognito.

<comment><USER4> This sounds to me like they were tracking your IP.

</comment></comment></comment><comment><USER5> This is why I use isolated sessions when browsing. I compartment my surfing these days because of this exact type of attack (identities and other browsing artifacts spilling over into serendipitous/casual/random browsing). Mozilla are even going to ship this strategy in Firefox soon[1]. Another strategy to lessen the amount of data collected on you is to outright disable Facebook like buttons and Twitter share buttons, because these widgets track you as you navigate around the web. This can be done in uBlock origin[2] under the '3rd party filters' tab and selecting _Fanboy 's annoyance_ filter list alongside _Anti-ThirdpartySocial_ filter list.

[1]: [https://wiki.mozilla.org/Security/Contextual_Identity_Projec...](https://wiki.mozilla.org/Security/Contextual_Identity_Project/Containers)

> _Individuals behave differently in the world when they are in different > contexts. The way they act at work may differ from how they act with their > family. Similarly, users have different contexts when they browse the web. > They may not want to mix their social network context with their work > context. The goal of this project is to allow users to separate these > different contexts while browsing the web on Firefox. Each context will have > its own local state which is separated from the state of other contexts_

[2] [https://github.com/gorhill/uBlock](https://github.com/gorhill/uBlock)

<comment><USER6> yes, 'firefox -no-remote -P' is your friend, been doing this for quite some time.

Google is a firefox profile, facebook / whatsapp is another, main browser is another profile

<comment><USER5> What does the -no-remote switch do?

I looked here: [https://developer.mozilla.org/en- US/docs/Mozilla/Command_Lin...](https://developer.mozilla.org/en- US/docs/Mozilla/Command_Line_Options#-no-remote)

It says

        Do not accept or send remote commands; implies -new-instance.

But what are _remote commands_?

</comment></comment></comment><comment><USER7> As I keep reminding here, there's no such thing as "anonymized data" \- there's only "anonymized until combined with other data sets". Thanks for a demonstration, and thanks 'MaruizioP for posting this.

<comment><USER8> Isn't that the main point of differential privacy?

<comment><USER7> From cursory reading of the Wikipedia article on differential privacy, I understand this is about limiting _access_ to data to a set of queries that are designed to make it difficult to use the query results to infer data the provider wants to protect. That doesn't seem to help in any way though, if the malicious actor _owns_ the dataset and can run whatever queries they like on it. I'm also not sure how this addresses the problem of including additional datasets to help correlate out identities.

<comment><USER9> (From memory, so possibly miss some details)

Differential Privacy uses the concept of adding 'noise' to a dataset to make it statistically provable, that, if queries are supposed to only be A, B, C... then the adversary can only tell the target from noise with some probability - The point of restricting access to a subset of queries isn't really the main point of how DP improves privacy, but rather, restricting access to a subset of queries makes the formal proofs of things doable.

</comment></comment></comment></comment><comment><USER10> Related reading, Paul Ohm, Broken promises of privacy:

[http://paulohm.com/classes/infopriv13/files/week8/ExcerptOhm...](http://paulohm.com/classes/infopriv13/files/week8/ExcerptOhmBrokenPromises.pdf)

It is extremely hard not leak personally identifying information and combining datasets it is fairly easy to identify unique individual.

</comment><comment><USER11> At the launch of G+ I tested a way to assign search terms that people used to get to my page to G+ users - if they clicked on an +1 G+ button (which had some nifty callbacks then). Kinda worked. I could assign the search term to a set of users which I narrowed down with manual review.

Think Google must have been aware of the issue of intermingling Search with Social as a pretty short time later they scrapped the search query referers from (organic) Google Search.

Note: It was just a proof of concept to see if I could. Also: Nobody used G+ anyway.

<comment><USER12> Search query referers were dropped due to adoption of HTTPS/TLS. When a url is visited from an HTTPS site the browser does not sends reffer url only the host.

Its still possible to get "aggregate" information about keywords via Google Webmaster tools.

[https://webmasters.googleblog.com/2012/03/upcoming- changes-i...](https://webmasters.googleblog.com/2012/03/upcoming-changes-in- googles-http.html?m=1)

<comment><USER11> Yeah default-for-logged-in-users-https-with-stripping-part-of-the-referrer started in 2011, besides being a good idea -after the launch of G+ profiles as there was now a public "real name" piece of information that connected search queries to G+ users.

Google Search Console data doesnt let you connect google search queries to sessions.

</comment></comment></comment><comment><USER13> > Our approach is based on a simple observation: each person has a distinctive > social network, and thus the set of links appearing in one's feed is unique.

Compartmentalization mitigates that threat. I have multiple online personas, and Mirimir is the only one who goes on about privacy, anonymity, etc. The only one who visits HN, Wilders, etc. Mirimir and other online personas also share no contacts. However, Mirimir does use pseudonyms ;)

<comment><USER14> Couldn't you also be identified to a certain probability based on your writing style (stylometry)? I remember reading something about that years ago.

Makes me think someone should make a Chrome extension that will re-write everything someone posts based on the concepts they are trying to get across. To avoid being identified via stylometry.

<comment><USER15> I find that stylometry is one of the easier barriers to overcome. For example, one pseudonym can persistently make a grammatical error ( e.g. failing to capitalise proper nouns ) and another can use UK English spellings.

And then there's the general 'vibe' of the forum which shapes how a pseduonym writes. If I were to write the same thing on HN versus IRC I would hope that the styles would be very different.

What's really difficult is comparmentalising information, so that even on the same website two pseudonyms don't demonstrate that they have the same knowledge.

Is it worth the bother? Possibly not, but I find it also makes me concentrate on what I'm writing.

<comment><USER13> I never use multiple personas on the same site. It's just too hard to avoid linkage. And, on principle, I don't use sockpuppets.

</comment></comment></comment></comment><comment><USER16> Do ISPs sell our browsing data?

</comment><comment><USER17> It shouldn't be too hard to find someone's identify if you have either their browsing history or twitter profile, or in this case both !?

<comment><USER18> If you have one browsing history and one Twitter profile, it is easy to compare them. However, the main technical challenge is that we have to find some way to compare a given browsing history to every single profile on Twitter, which in theory is hundreds of millions of comparisons, plus we would have to find some way to get hundreds of millions of news feeds. Solving this took us several months. Of course in the paper we explained how we reduced the search space so we only have to consider a limited set of candidates, and only have to crawl part of the news feed in real time.

Of course if a couple of grad students could do this in a few months with only publicly available data (plus donated browsing history), then I'm sure ad networks could easily do this too, and given how many ad networks have parts of your browsing history I would say that it's scary that it's so "easy."

</comment></comment><comment><USER19> How much does it help to selectively block third party scripts/frames/plugins with something like uMatrix?

<comment><USER18> This is useful in that it limits the set of people who have access to your browsing history. But first party tracking will still be a thing (i.e. if you are visiting a website, the owners of that website will know you are visiting it). Actually there is a paper that says that if you only use the New York Times links that people click on from Twitter, it still makes you uniquely identifiable in many cases, so a company like the NYT could (theoretically) track people without using any third party tracking at all.

[http://cosn.acm.org/2014/files/cosn012s-chaintreauAemb.pdf](http://cosn.acm.org/2014/files/cosn012s-chaintreauAemb.pdf)</comment></comment>


An Ode to Driving in America - <AUTHOR> https://www.theatlantic.com/magazine/archive/2020/05/an-ode-to-driving-in-america/609109/ <comment><USER2> Driving anywhere in the world is probably my favourite thing to do while on vacation. Spend a few days in the city, then grab a rental car and start driving. You can take the smaller roads, stop at random villages for coffee, stop by the side of the road next to a fruit tree, an overlook, a plaque or just some scenery you like. There's a dizzying array of things you can see and do which are completely inaccessible to users of mass transit.

The vastness of North America certainly has it's own charm and driving the vast distances can put you in a very relaxed, calm, meditative state, which is very different than say, slowly winding your way through the narrow dirt roads Costa Rica's Nicoya Peninsula. But they're both great and a great way to really understand a place.

<comment> core-questions The anti-car crowd has missed this, somehow, in their lust to convert all of us to lemmings that can only get around with mass transport. There's an incredible sense of freedom that comes with a car: you can go where you choose, when you choose, without filing a flight plan or getting a ticket or anything other than fueling the thing up.

When you're dealing with something on the scale of North America, it's hard to imagine going without. As a Canadian, there are places here that mass transit can never dream of taking me. Am I to never go to these places?

<comment><USER3> As a member of that anti-car crowd, I think most of us would be happy with just banishing cars from city and most residential centers. We want to make cars an option, not a requirement.

Having too many cars also starts to encroach on other peoples freedoms via noise pollution, smog, less open space, etc.

Also, keep in mind we are talking about something that kills and injures a large number of people a year.

<comment><USER4> As someone who switched sides from the car to the anti-car crowd, I believe that in most ways you're _less_ free with vehicle ownership, as you wind up more locked into "the system" than as a public transportation user.

The system being insurance, parking tickets, revenue grabbing speeding tickets and tolls, fluctuating gas prices, frivolous lawsuits, fender benders and body shops, and so on. People behave at their worst given the psychological distance that their metal box provides them. Not to mention just having to drive the damn thing when you could spend your time focused on something else!

The one big exception that I see is - dun dun dun - global pandemic time. Temporarily, I appreciate the barrier between myself and my fellow citizen. But I just went out and rented a cheap one, and will rid myself of it once the risk of contagion subsides.

<comment><USER4> Re-reading the end of the "Lemmings" guy's comment more closely, there's one other point that I would like to speak to - After traveling around the world extensively for 100% of the last two years, I definitely prefer public transit in almost every form over driving.

However, one good thing about the U.S. that is true of few other places, is the ability to go on super long road trips, seeing tons of the countryside, and getting far away from other people. This is truly a benefit and a joy.

However, it also comprises 5% of the driving that I wind up doing, the other 95% being shitty commutes and errands fees and tolls and road rage. And finding parking! No need to find parking when using public transit.

</comment></comment></comment></comment></comment><comment><USER5> <rant> My biggest complaint with driving on highways in the US is that people generally tend to arrange themselves in a checkerboard pattern, taking up all the lanes, despite all the signs that say that the left lane is for passing. I think it's because everyone wants their own lane, so they can cruise. It's not a case of 'a few bad apples'. Anecdotally, about 1/3 of the cars actually let you pass, the others don't give a rat's ass, slowing down the traffic for no reason.

Speaking of cruising, my second complaint is how most don't use cruise control. It's painfully obvious, because the other cars slow down significantly when going up the hill and accelerate downhill. I see the same cars passing me, downhill, then ending up behind me uphill. It's so annoyingly unnecessary. If your car doesn't have adaptive CC, that means you have to turn on/off the CC frequently. The traffic ends up stretching and compressing like a rubber band. It doesn't have to be that bad - just use cruise control.

To contrast this experience, I had the pleasure of driving in Portugal (from Porto to Sagres). They have by far the most respectful drivers I've ever seen anywhere (and I drove in Western and Eastern Europe, Middle East and North America). Good job Portugal, the rest of the world's drivers could learn a thing or two from you.

</rant>

<comment><USER6> I agree with you that Americans don't know how to use lanes, but I want to push back on the cruise control comment. Many cars have cruise control set differently, and "keep the speedometer at exactly X" is not the algorithm generally in play. I was once part of a caravan with a sedan, pickup truck, and 15 passenger van where we all yelled at each other for not using cruise control until we realized that we all were using cruise control the whole time, but needed to adjust it to not interfere with each other on hilly roads.

If you want the best highway fuel efficiency, programming a cruise control to slow down uphill and go a bit faster downhill is the right way to go. How much faster or slower depends on the engine and current weight of the automobile, which is why the three examples were so wildly different.

<comment><USER7> on very hilly roads, I like to hit the crest of the hill at least 10 mph below my target speed so I don't have to ride the brakes all the way down. imo, this is fine as long as you don't do it in the left lane.

my car has a standard transmission so cruise control isn't super useful in this situation anyway, as I tend to change gears a lot.

</comment></comment></comment><comment><USER8> For all the faults our driving culture has created, there's definitely something calming for me about the whole thing (once you're outside the crush of big-city traffic).

Kinda related to what the author says in the article, there's just something about hitting the road, either alone or with a friend, playing some classic rock, and just driving (whether or not there's a destination) that gives me space to think and is soothing. Not sure why or if anyone else has the same experience.

<comment><USER9> I'd always heard that, and so growing up I tried the whole "go for a drive" thing many times. I found it felt good in the moment, but when I got home I was just as wrapped around the axle as when I left. I came to think of it as something like trying to drown your problems in ̶a̶l̶c̶o̶h̶o̶l̶ petrol.

I've found moderate exercise has a more lasting effect.

</comment></comment><comment><USER10> TFA mentions "open road" in subtitle, then proceeds with anecdotes of city driving on the coasts sipping chain coffee. That's a very small representation of driving in America.

<comment><USER11> This bears repeating. Driving in major cities is, to me, one of the most miserable experiences to be found on the face of the earth.

<comment><USER3> Not just that, living (or just being in) a city with cars is also terrible. Its lose lose for everyone.

<comment><USER12> Well, it's a win for the suburban dwellers whose weekend visits to the city are subsidized and accommodated by the people who live there full time.

<comment><USER11> Subsidized in what way? Cities still have to have roads for buses and delivery trucks and the vast majority of road wear comes from semi-trucks so it isn't the roads themselves. Are you saying the visits are subsidized on the basis of the increased traffic costing the city more money than it receives from the tourist dollars spent by the visitors?

<comment><USER3> Buses and delivery truck don't need giant parking lots, which can't be used for anything else.

<comment><USER11> Do you know a lot of major cities with large amounts of free parking?

When city land becomes valuable enough that people in parking lots don't generate more wealth than they would if there wasn't a parking lot, the parking lots get sold and buildings are put there instead.

<comment><USER3> I wish that were the case but there are minimum parking laws in place in a lot of place that prevents that.

And yes most cities I've been to tend not to charge for parking at night or on the weekends.

<comment><USER11> Such a bizarre practice. Demand on the weekends is highest and logically the parking fees should be highest, not zero.

I'm not one from whom to take advice on the subject, though. I think roads are for driving and parking on them is perverse and I refuse to live anywhere crowded enough to have a bus system.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Ah yes. This article does resonate. I've been living in Europe for 40 years but I learned to drive in the US. I loved the wide open of the country and the fact that everything is setup with cars in mind. Classic rock radio: that's the ultimate when on a holiday in a rented car in the US. I can fully understand the sentiment of the author.

</comment><comment><USER14> as problematic as cars are in america (for suburban sprawl, environmental reasons, and equal access to opportunities) there is a uniquely enjoyable element of americana to it. the final fantasy 15 game captured this really well.

</comment><comment><USER15> _Here in my car, I feel safest of all. I can lock all my doors It 's the only way to live In cars!_

</comment><comment><USER16> I have a second home in the mountains surrounding LA, and it's such a joy to go out there for a few days. I love driving the curvy mountain roads. It's just exhilarating. Nowadays, with the Covid-19 quarantine, I'm taking circuitous path to go grocery shopping, just to get a little extra "me time" on the road.

</comment><comment><USER17> Anecdote from the old country. I used to live in a relatively small city in the old country ( 50K maybe ). As a kid, I was able to walk just about anywhere. And I did. As most of my friends, I did what I could to get my DL equivalent and as soon as I got it, I drove everywhere I could.

I think this is the point that occasionally is forgotten in these conversations. It is not just that the infrastructure forces behavior ( in US, in most areas it does ), but the convenience factor makes it a very hard proposition to just ban cars from cities ( in a way similar to France's ).

But it is hard to argue against convenience and established routines. People do not like change.

<comment><USER18> The convenience factor is also engineered. It's not convenient to drive unless there is ample parking at every destination, and policies in the US and many other countries has basically banned building new places without ample parking. Providing this parking requires a large amount of land, which makes walking slow, unpleasant, and dangerous.

<comment><USER19> Policies dictate required parking? Seems like something developers would naturally do anyways. If you build commercial space without ample parking you're going to have trouble finding tenants...

<comment><USER20> This is true for an isolated rural business.

In other cases, a business benefits from having customers park at neighboring businesses. If parking is provided, it will be taken by customers of other businesses.

</comment></comment></comment></comment><comment><USER21> What about an Ode to the MTA? Or an Ode to Amtrak? Or an Ode to MUNI? An ode to the bike lane!

I think the last thing the United States needs is more people glorifying the horrendous car culture that has been built up in this country.

<comment><USER22> Ode to needles on Bart?

But seriously. You cannot ignore the the importance that cars have played in America. Ya ya ya, cars are terrible, Europe is better but also much smaller. I am definitely looking to the future and hope we design smarter cities but we cannot ignore the past. None of the options you listed are part of Americana imo.

<comment><USER23> > we cannot ignore the past. None of the options you listed are part of > Americana imo.

To the contrary, commuter rail transit systems, primarily streetcars, were very much a feature of American cities from Cincinnati to San Francisco in the period from the late 1800s through the mid-century. Ignoring them is, as you yourself say, ignoring the past.

[https://en.wikipedia.org/wiki/Streetcars_in_North_America](https://en.wikipedia.org/wiki/Streetcars_in_North_America)

<comment><USER22> But for better or worse I would argue anything before 1900 is not really Americana, probably earlier. I think it holds true across the world. We are talking about nostalgia from childhood or your grandparents, popular media that you consumed. I am not saying to ignore the past but I have never heard of street cars romanticized like car driving in America is. Hell, tourists will come and rent a motorcycle or a car and drive across America. Sorry I confused you.

</comment></comment></comment></comment><comment><USER24> I love driving, and thought I'd never give it up until my car died. Now that I've been without one in Vancouver for over a year, it's just not financially sensible to get one for the occasional fun I'd have. Certainly, the sense of freedom is great, but good public transport for $100/month is way better. Renting a car fills the gaps I think so far. It's also super not worth the hassle to maintain and park.

</comment><comment><USER25> I understand why people like driving. I drive plenty and have two cars and live in the USA. There is no option but to drive in most of the US, so people do and it can even be enjoyable. It really is a tragedy of the commons situation though. Great and horrible at the same time.</comment>


The missing link: explaining ELF static linking, semantically (2016) [pdf] - <AUTHOR> https://www.researchgate.net/publication/311466566_The_missing_link_explaining_ELF_static_linking_semantically <comment><USER2> Despite all the complexity that goes into _creating_ a statically linked ELF executable as the PDF describes, I was reminded exactly how easy it is to unwrap and load a static ELF binary into memory when I was writing a static ELF loader the other week.

You literally end up with a table ("section header table") in your executable with sections of type "SHT_PROGBITS" and "SHT_NOBITS". You copy <n> bytes from the offset in the ELF image for the former to the address specified, and zero <n> bytes at the address specified for the latter.

Obviously in a system with virtual memory, you need to account for page table mappings, and for a multiprocessing system you need to setup a process vector with initial instruction pointer, address of the page tables etc. so that you can task switch.

But for the most basic case (ie. a DOS or CP/M workalike) you can pretty much wallop the program into memory and jump or call to the entry point.

<comment> nils-m-holm Even creating ELF executables is not particularly hard. As the article says, the complexity is in the linker. If you keep track of depedencies yourself, creating an ELF binary boils down to writing a header and aligning the text and data segments properly.

Here is a _full_ compiler that emits ELF in about 1600 lines of code (the ELF emitter is about 50 lines in size, most which deals with generating the header):

[https://www.t3x.org/t3x/t.t.html](https://www.t3x.org/t3x/t.t.html)

<comment><USER2> That is a fascinating project, thanks for sharing.

</comment></comment></comment><comment><AUTHOR> this ([https://www.youtube.com/watch?v=dOfucXtyEsU](https://www.youtube.com/watch?v=dOfucXtyEsU)) is also pretty good.</comment>


Print a Shipping Label from Your Browser - <AUTHOR> https://www.printashippinglablel.com/

<comment><AUTHOR> Hi there. We just launched the PrintAShippingLabel.com web app! The goal is to avoid annoying and costly trips the Post Office, UPS, or FedEx stores and offer customers an easy way to print a shipping label right fromt their web browser.</comment>


Apple Events – WWDC Keynote, June 2017 [video] - <AUTHOR> https://www.apple.com/apple-events/june-2017/ <comment><USER2> I know that opening commercial was intended to show how much we depend on apple and its services - but its kinda a great argument against centralized services... kinda weird really.

<comment><USER3> I'd love to see the "1984" commercial played right before that one to contrast how much Apple has changed. From a message of empowering people with technology to "You're stupid without us" condescension...

<comment><USER4> Hard to go from underdog to the most valuable public company in the world and stay subversive

<comment><USER5> I remember this one guy at Apple who made it seem possible by saying no a lot.

</comment></comment></comment></comment><comment><USER6> Some might found this to be much more usable: [https://www.youtube.com/watch?v=O9u0d4uZQyM](https://www.youtube.com/watch?v=O9u0d4uZQyM)

</comment><comment><USER7> Watching this kinda makes me miss Steve Jobs. I feel like he was one of the only people who could get up on stage and act enthusiastic about their products without seeming fake.

<comment><USER8> It's hard to not sound fake when your main announcement is about adding a Toy Story watchface to a watch.

<comment><USER9> They're really pushing this Disney partnership in our faces here... Mickey, Toy Story, and that Star Wars VR thing.

Edit: They just did a Pirates of the Caribbean demo on the iPad...

</comment></comment></comment><comment><USER10> You can use VLC — MPlayer — or the much better — MPV to watch the stream without Safari.

[https://p-events- delivery.akamaized.net/17qopibbefvoiuhbsefv...](https://p-events- delivery.akamaized.net/17qopibbefvoiuhbsefvbsefvopihb06/m3u8/hls_mvp.m3u8)

</comment><comment><USER11> I remember when watching these was a big deal. Now, I didn't even realize they were having one.

</comment><comment><USER12> Oh yes, the modern version of Javascript: ECMAScript 5. I'm impressed that Safari is so modern that it finally supports this.

<comment><USER13> yus true.

</comment></comment><comment><USER14> Did Apple really not learn any lessons from the trashcan Mac Pro? Anyone who purchases that is going to be stuck with the inability to upgrade just like the old Mac Pro. The peripheral upgrade route never materialized with the trashcan and I have no faith it will materialize with this iMac version. And even if it does, wouldn't a Macbook Pro user have the exact same upgrade routes with the added benefit of portability?

</comment><comment><USER15> Apple File System coming to mac as the default!

</comment><comment><USER16> Apple is so lost. Who in the world needs that much processing power? 18 core xeon processor ? Really? 4999 for the entry level 8 core xeon processor? Apple who exactly are you targeting? You say you want users who want to do cutting edge stuff with your hardware but are they really going to shell out 5 grande for this, when a custom made pc priced at half that will do the job? Come on here.

With the economy in the tank and wages being stagnant, this is simply unacceptable.

<comment><USER17> Um, professionals? (scientists, graphic designers, architects, analysts). Custom PCs are generally a poor choice in institutional contexts because of high TCO (crappy drivers and nonexistent long-term support).

That said, it seems weird that there hasn't been a reasonable way to have an OS X machine in a data center since the Xserves.

<comment><USER18> High-end workstations from other manufacturers aren't "custom PCs" in any way, but still upgradable and _serviceable_. It's an interesting question if that is necessary or not, MacBooks don't come with really good support packages either and still are immensely popular with professional users. (It's certainly less important than it is with server systems)

</comment></comment></comment><comment><USER19> I can't wait until Apple demos their own A-series based mac or macbook. I think apple could scale the ARM architecture to make it wide and Out-of-Order. They have the money, the cozy relationship with SoftBank (who owns ARM), and we all know they like to vertically integrate. They're even bringing graphics in house so why not roll your own graphics, cpu, etc?

</comment><comment><USER20> x265 makes me the _most_ excited. The faster it goes mainstream the smaller my Plex library will get. Thank you Apple for pushing things forward again.

</comment><comment><USER21> I wonder how Venmo is going to react after the WWDC announcement of native iOS person-to-person payments via Apple Pay. Native functionality is tough to beat unless Venmo and other p2p payment apps have large enough networks to fight the momentum.

<comment><USER22> Unless Apple Pay works for p2p with Android devices, Venmo and others will be just fine. Android has a major share of the market, and heterogeneous p2p cash transfers will be needed.

</comment></comment><comment><USER23> As always, if you want to watch the stream, you need to use Safari.

Can the title reflect this somehow?

<comment><USER24> Edge works on Win 10, not sure why other comment was downvoted.

</comment></comment><comment><USER25> [https://www.engadget.com/2017/06/05/apple- wwdc-2017-liveblog...](https://www.engadget.com/2017/06/05/apple- wwdc-2017-liveblog/)

</comment><comment><USER2> When speaking of music in the home - "I can't think of anything that matters more to so many of us". The hyperbole is just too much for me anymore I think.

<comment><USER26> I cringed at that too.

</comment></comment><comment><USER27> No USB-C?

edit: ah, techcrunch called them 'lightning ports'. The Apple press release calls them Thunderbolt 3 ports which are USB-C.

[https://www.apple.com/newsroom/2017/06/imac-pro-most- powerfu...](https://www.apple.com/newsroom/2017/06/imac-pro-most-powerful-mac- arrives-december/)

<comment><USER28> Where did you get that? I am pretty sure all those Thunderbolt ports are USB-C compatible.

</comment></comment><comment><USER29> They added kaleidoscopes to the watch. ಠ_ಠ

</comment><comment><USER30> No touchbarless 15inch macbook pro after all? :(

</comment><comment><USER19> wait is the mac not getting 32GB ram options?

<comment><USER17> Nope. At least there's a $5k iMac!

IIRC this is because they need LPDDR to reduce power needs, but no one is near making LPDDR4 in sizes like that yet.

<comment><USER19> Even with such a low volume product like the iMac pro - they could buy out all the EPYC or Threadripper chips from AMD for the next mac. But I bet Intel is likely selling their CPUs to Apple for a loss just to maintain that relationship.

</comment></comment></comment><comment><USER7> I was kinda hoping for a better battery and discrete graphics on Macbooks in addition to Kaby Lake. Oh well.

</comment><comment><USER19> I am absolutely preordering the HomePod.

</comment><comment><USER19> ok the available-at-the-end-of-the-year imac Pro - looks awesome. Too bad it'll be wicked expensive.

</comment><comment><USER31> There's a distinctive "Woo" guy in one of the front rows that's quite annoying.

</comment><comment><USER32> Something just feels so off when their closing announcement is a glorified speaker.

There's an underwhelming feeling to this that is accentuated by the fact that isn't a novel breakthrough in the slightest. Literally introducing a speaker that does, more or less, what Amazon's echo has done for over a year.

</comment><comment><USER24> In the screenshot for iOS 11 there was "WebRTC support"

</comment><comment><USER33> mplayer "[http://appleliveevents-i.akamaihd.net/hls/live/222436-b/17qo...](http://appleliveevents-i.akamaihd.net/hls/live/222436-b/17qopibbefvoiuhbsefvbsefvopihb06/master/4500/4500.m3u8")

<comment><USER34> Current stream can be viewed with mpv at [https://p-events- delivery.akamaized.net/17qopibbefvoiuhbsefv...](https://p-events- delivery.akamaized.net/17qopibbefvoiuhbsefvbsefvopihb06/m3u8/hls_mvp.m3u8)

        mpv "https://p-events-delivery.akamaized.net/17qopibbefvoiuhbsefvbsefvopihb06/m3u8/hls_mvp.m3u8"

<comment><USER20> Man MPV is just terrific. I didn't know it could play these type of streams.

</comment></comment></comment><comment><USER35> "Your browser doesn't support live streaming of the event."

Running latest Firefox.

<comment><USER5> Also latest Chrome.

Few companies could get away with this UX, but Apple is one of them.

<comment><USER36> HLS is an open standard (and a very simple one); Firefox and Chrome have just avoided implementing it for some reason.

<comment><USER5> From my reading, it appears off of any standards track it might have had -- it remains something Apple made up and can change however they like.

Which would be a great reason for not implementing it in an open browser.

</comment></comment></comment></comment><comment><USER19> amazon to the tv app! w00t

</comment><comment><USER37> Doesn't work on latest Chrome on the latest Mac. Sigh.

Going to watch anyway.</comment>


Show HN: Time Machine – Re-discover the Best Products from Product Hunt - <AUTHOR> http://thomasmeagher.com/ProductHuntTimeMachine/

<comment><USER2> Excellent work bro. It is awesome for any product hunter like us. PH community is such an awesome community with mature level of understanding for the products. Keep supporting the community by creating awesome hacks around the platform. Give try to PH APIs sometime. You can do better with PH anayltics for the product.

<comment><AUTHOR> Thanks :) I appreciate the feedback! I love the PH community.

</comment></comment><comment><AUTHOR> Quickly jump back to any day in PH's history and view the products.

Built using Swift and the PH API. GitHub repo: [https://github.com/thomasmeagher/ProductHuntTimeMachine](https://github.com/thomasmeagher/ProductHuntTimeMachine)</comment>


Bird's new Platform program and the rise of the "business in a box" - <AUTHOR> https://medium.com/@justinemoore_85088/birds-new-platform-program-and-the-rise-of-the-business-in-a-box-899f7ac58abb <comment><USER2> Anyone who wants to set up their own business with Bird they are going to find their scooters comfortably living in people's garages where they store them until they are worth $20 to capture.

I signed up to be a charger dreaming I could just cruse around and pick up a few birds to charge but I spent 45 minutes to find 2 birds (in San Diego) a few days ago and sometimes I find none regardless of how many are on the map.

I hope Bird changes their policy to make scooter charging to just in the range of $5 to $8 to prevent hording.</comment>


Google's Media Barons - <AUTHOR> http://harpers.org/blog/2013/01/googles-media-barons/

<comment><USER2> Didn't notice this link, but after seeing another [1] HN link about it I couldn't believe it got missed. And yet, here it is. Take my upvote.

 _It's no coincidence that Google, Yahoo!, Bing, and Yelp sound like toddler gibberish from the Teletubbies.

Whenever I hear these silly corporate names invoked with sanctimonious awe, I imagine Dipsy, Laa-Laa, Po, and Tinky-Winky singing their hit single "Teletubbies say 'Eh-oh' " as they shake the change out of some two-year-old's pocket._

My god this is pure gold!

[1] <http://news.ycombinator.com/item?id=5081822></comment>


The WWII-Era Plane Giving the F-35 a Run for Its Money - <AUTHOR> https://motherboard.vice.com/en_us/article/low-and-slow <comment><USER2> Calling the super tucano a WW2 plane is rather disingenuous.

[https://en.wikipedia.org/wiki/Embraer_EMB_314_Super_Tucano](https://en.wikipedia.org/wiki/Embraer_EMB_314_Super_Tucano)

<comment><USER3> Agreed. A better title would be "$4M turboprop provides unique value in Afghanistan combat."</comment></comment>


The Product Manager's Lament - <AUTHOR> http://www.linkedin.com/today/post/article/20121211155158-2157554-the-product-manager-s-lament <comment><USER2> All too typical of a tale. Too many people working on too many things, where the only person who has ownership is the guy not building any of the things (the PM).

Simple solution: Small teams that own what they're working on, soup to nuts. This probably means 1-2 devs on a team, a designer spread across 1-2 teams (depending on the scope of the team), and the PM helping all of them, where necessary, but not giving them _exact specs_ of what to build. Product manager in an agile-ish organization is an extremely poorly named title, as their primary function is _not_ to manage, but to communicate and facilitate things that are otherwise difficult or inefficient for designers and engineers to get at.

If the PM is giving the designers and devs exact specs on the product to build, he or she is failing in their role. The PM should be focusing on communicating succinctly the business problems to solve, and the software solutions evolve naturally from the small teams. The product manager, as a member of a team that builds software, should be expected to have some insight as to the general design of the software (maybe in the form of wireframes or whatever). But providing exact specs for what to build is a battle-tested Recipe for Failure™.

<comment><USER3> _The PM should be focusing on communicating succinctly the business problems to solve, and the software solutions evolve naturally from the small teams_

This may work with top x% of programmers/designers but the fact remains, majority of the programmers and designers are _not_ equipped to take a business problem and come up with a solution. Their core job never was to think deeply about a problem in a niche domain. Now I understand at startups it is common for multiple of these roles to fall under one person but I am yet to see that system scale, especially at an enterprise level where the customer may have very peculiar requirements the product manager can really help think through before it even goes to the devs/designers.

<comment><USER4> > the product manager can really help think through before it even goes to the > devs/designers.

I'm not convinced it's more likely that the PM can think through the issues better than anyone else on the team.

In any decision, in any industry, in any profession, _the only way to make a good decision is to understand the cost and benefit at the same time_.

IMO, almost all corporate software disfunction comes from that failure. The decider understands the cost, but not the benefit, or the benefit, but not the cost. Sales teams that don't understand the product, developers that never talk to customers, managers that don't understand how to code are all trivial examples of this.

If the PM designs the feature incorrectly without understanding how to code or understanding the current codebase, there could easily be a 10x cost difference, in terms of implementation and QA. If the developer writes a feature that no customer will accept, all implementation time is wasted.

How to fix that failure depends on the relative costs for the PM to learn the codebase, vs. the developer learning the business domain. Though both are nearly essential to a successful company.

<comment><USER3> Sure, and thus the rise of the developer-product manager. I'd consider myself to be one and I know plenty of others out there. My primary focus is to make sure what we build is what the clients want but when communicating with the developer, I will talk in terms of primary key and other technical concepts.

The same terminology would no make sense to the client and a client's terminology("I just want feature x") leaves out bunch of implementation details which a good product person should be able to clarify and fill in instead of leaving it up to the developer to guess.

</comment></comment></comment></comment><comment><USER5> I'm really surprised that he didn't just recommend that they do away with Product Managers altogether.

This is probably the best Product Management approach I've heard of for early startups: [http://www.quora.com/Stripe-company/Does-Stripe-have- product...](http://www.quora.com/Stripe-company/Does-Stripe-have-product- managers-or-do-engineers-manage-the-products-themselves/answer/Patrick- Collison/quote/201417)

<comment><USER6> I also like GitHub's approach <http://warpspire.com/posts/product-design/> (they refer to the role as product designer) but I wonder how long it's going to work for them.

<comment><USER7> Github is a very special company in that respect as the developers are building a product they are using for themselves. Github's model couldn't be replicated in a field where this wouldn't be the case.

</comment></comment></comment><comment><USER8> Feels like that PM is trying to micromanage and failing to keep his troops working in their box.

If you're going to make a spec that defines 'how' as a PM, then you need to make sure your designers, coders and QA do exactly what you tell them. This can actually work if you're an incredible genius and know the details of what you're trying to do incredibly well.

Most PMs don't fall anywhere near there, and so the solution is simple: spec the 'what' very broadly. Delegate protocol specs to the programmer(s) who will be dealing with that protocol the most. Make sure the programmers create a product that the designer can 'skin' afterwards - such as moving elements around the screen without programmer assistance. Have the QA work with the actual product and not a spec - the users will be using the product after all, not the spec.

Standard stuff...

<comment><USER9> What about spec the "why", then engage with the team to figure out the "what", then let the team figure out the "how" by themselves. Believe it or not, the PM is not the only one with problem-solving skills on the team to tackle the mapping between "why" into "what".

<comment><USER10> Sometimes this is true. It depends on the developers.

Sometimes the developers don't have product skills but _know_ they don't have product skills. This is also fine.

Sometimes the developers think they have product skills when they don't, and this is always a complete disaster.

I can't tell what situation the company described in the article is in. Perhaps the product manager is incompetent (there's lots of incompetent product managers out there), and the developers are correcting for this. Perhaps the developers have good product sense that the product manager is underutilizing.

But if the developers don't have the product skills they need, skills you get by spending lots and lots of time talking with customers instead of (or in addition to) writing code, no amount of process tweaking is going to fix the real problem - individuals assuming that their technical skill translates into product skills, and insisting on also doing something they're not good at.

I've often wondered why the subset of developers who lack product skills and/or the relevant domain knowledge frequently insist on getting involved with product anyway. After all, the head of human resources rarely insists on committing code.

</comment></comment></comment><comment><USER11> I'm slightly confused. Is LinkedIn pulling a Tumblr? Is Eric employed by LinkedIn now? Can anybody post posts on linkedin.com/today? Is a link at linkedin.com/today a stable URL or only good for today? Today when/where? What's going on?!

<comment><USER12> LinkedIn is allowing a few business leaders to write long form articles and have members follow them. Go to <http://www.linkedin.com/today/post/whoToFollow>

</comment></comment><comment><USER13> "So the product manager winds up actually having to use the software, by hand..."

maybe this is startup-land naivete speaking, but I pity the company whose product manager doesn't routinely use their own product.

<comment><USER11> <real-world-gripes>

What if your product is creating giant networked ovens for Nabisco assembly lines?

What if the product is an Enterprise Firewall Spam Detector IDS Bad Guy Defeater Gateway Proxy with more feature check boxes than atoms in the human body and the PM (who is a PMP, obviously) has a BA in English with a minor in interpretive dance?

What if the product is a series of experimental HIV vaccines?

Not every product in the world is a consumer webapp.

</real-world-gripes>

<comment><USER13> Good points. You definitely got me on the HIV vaccines, although that would be one quality-conscious product manager!

The number one skill a good product manager should have is being able to understand what the users need (not always the same as what the user wants, of course). Using the product, when possible, is a great shortcut. When it isn't possible, customer understanding is going to require phenomenal communication and imagination. That said, I would still be very wary of putting someone without some domain knowledge in charge of speccing out a super complicated product.

</comment></comment></comment><comment><USER14> I was a PM at a bigger company (~350) before jumping into startup land. After being the CTO and de-facto PM for a couple startups, I've had an idea that probably needs some vetting:

I think when you're still small, most typical PM functions should be distributed instead of centralized, with a manager getting in the mindset of managing people who are 10-20% PM / 80-90% engineer or designer.

While the overall product/business strategy and business requirements should be owned by one or a few founders/officers, I think as many people as possible in an early stage web/mobile product company should have most of the general skillset of a PM. Highly specialized talent might be an exception if you're creating a sophisticated product or have unique interface goals. But the general PM skills -- mockups, basic design principles, writing stories, writing requirements, managing a story/requirement from creation to deployment -- should be universal while you're small.

The inflection point goal at web/mobile startups is getting MVP after MVP out the door until you've pivoted or iterated your way to a good-enough product for a good-enough market. (Or good-enough product for a specific customer.) It's an all-hands-on-product affair.

With this in mind, I think the early CTO should be a hybrid of engineering talent and director of product management. Or perhaps depending on skillset a separate person (another co-founder or the person you thought should be the first PM) is that director of PM and the CTO is more like a lead architect. The point is that rather than doing all the product management or all the VP Engineering stuff, this person (or two) manages a team of hybrid engineers/PMs, retaining some important overall product and architecture decision-making responsibilities, but empowering and helping designers and engineers employ basic PM skills individually or split among a small group such that the person or small group owns more process for a feature.

<comment><USER15> This makes sense to me, but at a startup assuming that the CEO is the lifeblood of the idea for the company (as s/he should be) aren't they essentially the PM manager that you describe here? I guess this is a moot point, but we're obviously only focusing on a startup that is heavily technology focused.

What about one where the pudding is actually a process or physical commodity and the technology portion is merely an extension of this?

</comment></comment><comment><USER16> Having designers develop wireframes and designs without the input of software engineers is like having a product designer design the dashboard of a car without the input of automotive engineers.

Wireframes should be signed off on by engineers before design starts, and design should be signed off on by engineers before it is approved.

</comment><comment><USER17> Sounds like this is the root of the problem:

"When the programmers get it (the specs), they often start negotiating with him about what's going to be built. They exchange countless emails, and he's being constantly interrupted and being asked to clarify exactly what the spec means. "

A simple solution is: speaking about the project/product feature with your developers first. Understand what will take long, what won't, what can be stripped out in the first iteration. Once this is done, work with designers to push something out.

Another super simple solution is videos.

Writing takes time. Wherever possible I try to make videos for the designers or even better have live calls.

In terms of idle time, there should be always a backlog of specced out work or bug fixes that the developers can focus on. Failing that, they can work on optimising past projects, refactoring or reading about new things.

<comment><USER18> Writing takes more time than producing videos? Are these videos largely unedited? And if so, how do you measure the time lost in the inefficiency of interpreting the video?

<comment><USER17> Unedited videos, remember, this is for design briefs. For developers, videos may not be the best form.

I can imagine on some very complex projects videos being a difficult medium. But for me it's great: I just record the things I want to get done, bring up examples from other websites, use the mouse as a pointer to direct the viewers focus. I summarise what I want to be done at the end.

Usually I send over the video and checklist of things to do.

</comment></comment></comment><comment><USER19> I have been working both as a product manager and as a lead developer. I think both roles are designs of companies where hierarchy are more important than the outcome. A healthy company probably lacks Product Managers, Lead Developers and System Architects and those roles are filled by loosely formed teams based on interest in the problems and products people are solving/building. Where I come from, it is called taking responsibility.

</comment><comment><USER20> I think the article shows correctly the common problems at most organizations today. Many organizations don't have engineers who really care about usability over functionality, so simply "handing off high level wants" just doesn't work outside of a couple of rehabbed buildings in Frisco.

It's easy to have a reference to the Stripe article, where there are no PMs. But, this environment is the exception rather than the rule. After working in a few medium sized places, the ratio of engineers who place an equal level of detail on usability & functionality vs those that place a higher value on functionality/architecture is easily 1:6. And you can guess which ones are usually the Sr members. To their line of thinking, usability isn't something they have ever had to worry about.

I do agree with a previous poster that this is something that the startup culture is starting to change, but I would bet that this change won't be visible at most organizations until at least 5 - 8 years out as the engineer talent changes.

Now, I would say this problem is something that can be changed with some UX standards. The PM creates flowcharts and/or wireframes of the proposed solution > hands it over to the agile team > dev + ux discuss any flows that fall outside of established standards. As a PM myself, I would love this. To be required to only provide more end user/market requirements as needed would be ideal.

One issue with this is that usually with organizations that have these issues, the investment just isn't there in the area of UX (I sit here reflecting on my current situation).

I will bet that the product team disfunction mentioned in the article is directly reflected in said team's products. :)

</comment><comment><USER21> In the early stage startup a Founder/CEO should also play a PM role.

It might be not obvious, but the main problem having a dedicated PM on the team, is that unless PM has very strong engineering or business experience [and in this case that person should either code or bring in money], the _PM would fill very insecure_ , surrounded by highly experienced people, who can actually do things. Cost of somebody on the team, feeling very insecure and trying to bullshit/manoeuvre/bully his way around outweighs any potential benefit to the team.

From my personal experience, I've seen projects fail solely because of PMs protecting their turf.

</comment><comment><USER22> That's what happens when you don't involve engineers in the project spec part of the process, they need to be consulted much earlier and be partners in helping define the feature-set and timeline, not impose it from above with an arbitrary set of features.</comment>