Digital Ocean: Limited Public IPv6 Beta Release - <AUTHOR> https://assets.digitalocean.com/email/ipv6-grandfathered.html <comment><USER2> Now, _how_ long has this been "coming soon" with absolutely no word whatsoever?

[https://digitalocean.uservoice.com/forums/136585-digitalocea...](https://digitalocean.uservoice.com/forums/136585-digitalocean/suggestions/2639897-ipv6-addresses?page=4)

Oh, only _nine months_ having an entire customer base entirely forgotten. This does not good support make.

DO has a history of doing this; see Allow Custom Images [0], with over a year of no comment, and Give option to use the Droplet's own bootloader [1], with 14 months of no comments; not even a "we're working on this". The latter shows DO's utter lack of technical competence; if they cannot even properly prepare a system image [2] or actually _use their virtualization platform_ , what the hell can they do? Apparently, only marketing.

[0] [https://digitalocean.uservoice.com/forums/136585-digitalocea...](https://digitalocean.uservoice.com/forums/136585-digitalocean/suggestions/3276477-allow- custom-images?page=5)

[1] [https://digitalocean.uservoice.com/forums/136585-digitalocea...](https://digitalocean.uservoice.com/forums/136585-digitalocean/suggestions/2814988-give- option-to-use-the-droplet-s-own-bootloader?page=3)

[2] [https://missingm.co/2013/07/identical-droplets-in-the- digita...](https://missingm.co/2013/07/identical-droplets-in-the-digitalocean- regenerate-your-ubuntu-ssh-host-keys-now/)

<comment><USER3> That's a great point and we totally missed our roadmap in 2013, by about 9-12 months. This is something that Zach Holman at Github addresses in why Github doesn't really communicate about their roadmap:

[https://github.com/holman/feedback/issues/534](https://github.com/holman/feedback/issues/534)

In our case it was because we were basing all of our roadmap on how we operated in 2012 when we were a much smaller company, think 5 people, servicing a much smaller customer base, say 500 customers.

It was early 2013 that our growth really started and we tried to remain optimistic about our ability to launch features. This turned out to be completely unrealistic. We had to scale our customer support department which at that time was basically myself and Etel who is our community director from 0 full-time people to 17 today. Our engineering team was all cofounders which we have since scaled to 10, and we had no SRE team which we've since also built out and recently hired Mark Imbriaco from Github as our VP of Ops.

Our tremendous growth was very exciting but it stressed every single area of the business. We had to raise two rounds in 2013. Though we closed our Series A in 2014 we actually began that process in early November of 2013.

As the customer base grew and began we also started to encounter more scale issues which began to shift our engineering focus away from feature and product development to bug fixes, refactoring, and re-engineering.

We would have wished that we could move faster and pay down technical debt so that we could move into developing features sooner but given our tremendous growth last year of scaling from 500-1,000 customers at the start of the year to close to 100,000 by the end of the year it simply wasn't possible.

Along the way we completely broke a few promises about when we would release new updates and features. Now we are finally at the point that we feel confident that we are able to develop and roll out new features and we have begun doing so.

We've certainly learned some valuable lessons along the way such as being very careful about the public promises that we make. It's hard to say at the moment, but I don't think that we will follow Github's model of being secretive with our roadmap, but we will certainly be more cautious with our estimates given how we have seen so many different factors play into our ability to release features.

I think any startup that has scaled has gone through similar problems and so it's a story which I'm sure has been repeated many times in history. We could have done a better job of staying ahead of these changes and more pro-actively communicating that we would be falling behind our product roadmap as a result and that's a personal failure on my end as I lead product in the organization.

Much like a startup evolves, matures, and changes overtime, I too have had to go through a similar process of learning and re-learning my role both as a cofounder and also as a product lead.

It's been very dynamic and interesting and certainly has been a tremendous growing experience and I've finally been catching up with the rest of my work now that we've settled so many different problem areas in just scaling a company and a business.

One of the first things was to get back on top of UserVoice and begin to provide more updates and visibility into the things that we've been working on and what's coming up. For other items we are still in the process of hashing out the details and providing better estimates so in those cases we are holding off before we make another public statement so that we can ensure we set the correct expectations.

Believe me that there is nothing more troubling to us as a company than letting down our customers, it is never our intention, and it is never out of ill-will, often times it happens out of being too optimistic. Like any trait there is a negative and positive aspect to it. As a cofounder you need that boundless optimism because there will be hard times. We had hard times when we spent 18 months with zero to little traction, and I'm sure we'll need that optimism in the future as well when we hit hard times or when the landscape shifts. During these periods it is essential. However, like anything else in life there is a balance. And, as essential as this optimism is to a startup it can also lead to issues such as these. In cases like that its a matter of being open and honest and saying yes we messed up, here is why, and here is how we are thinking about this problem in the future.

Hopefully that sheds some clarity on this area, especially since I was the one who was personally responsible for this in our company.

Thanks, Moisey Cofounder DigitalOcean

<comment><USER4>
      > It's hard to say at the moment, but I don't think that
      > we will follow Github's model of being secretive with
      > our roadmap, but we will certainly be more cautious
      > with our estimates given how we have seen so many
      > different factors play into our ability to release
      > features.

Unless your customers have a really long budgeting process, or otherwise need time to prepare for coming features, don't bother publicizing your road map. In the best case you'll only "meet expectations", and in the worst you'll disappoint people when you're late.

</comment></comment></comment><comment><USER5> This sort of thing is a big problem with IPv6 adoption. There's a lot of churn in internet software, server software, and hosting providers, and often many of the new guys delay IPv6 support in favor of other features. That makes it very possible for IPv6 adoption to stall or even reverse depending on the success of different hosting providers and software. Imagine a worst case scenario of a next generation web server which becomes hugely popular but which doesn't support IPv6. Fortunately that's an unlikely scenario, but unfortunately it can't be entirely ruled out. IPv6 is still a "nice to have" feature, and has been since it's introduction, that's always been it's major weakness.

</comment><comment><USER6> Now if only they'd reconsider their decision not to deprecate Arch Linux images. I'm moving my stuff over to Linode because of it.

<comment><USER7> I run an Arch droplet and this is the first I've heard of this. Certainly makes me want to take my business elsewhere. Suddenly they don't have any bleeding edge distros.

Linode just seems to care more about their customers.

<comment><USER8> Well... If you really want, you could run Debian Sid or Fedora Rawhide, by creating a droplet form their stable version and upgrading.

It is still no excuse for not having a proper bleeding edge distro.

</comment></comment></comment><comment><USER9> What policy does "grandfathered customers" refer to?

<comment><USER3> Grandfathered users are our early adopter customers.

When we do large rollouts we usually release new features to them first in a limited public beta test so we can collect feedback. They have been extremely helpful in helping us to find and resolve bugs before we move a feature to general release.

Thanks, Moisey Cofounder DigitalOcean

<comment><USER9> In my opinion you need to use a better term than grandfathered. I think you have a different understanding of the term than the general population. Grandfathered is not used to distinguish early adopter, developer partner, platinum/double diamond customer loyalty card, etc from the general customer pool. As witnessed in the comment below grandfathered users are the population of users that do not get screwed by a new policy.

I think you should take a look at the wikipedia page for grandfather clauses and reassess if you think this is a word you want to associate with a new feature: [https://en.wikipedia.org/wiki/Grandfather_clause](https://en.wikipedia.org/wiki/Grandfather_clause)

Thanks, dfc. English speaking potential customer

<comment><USER10> Initially they had no bandwidth charges. Upon introducing them, the customer base was "grandfathered" in to free bandwidth. I assume this is the set of customers they are referring to, so it doesn't kind of make sense...but only if familiar with the history of DO.

<comment><USER9> Here is the deal: You cannot "grandfather" a newly created privilege to a select population--a population that never received the privilege before--if for no other reason than the privilege did not exist in the past. The grandfather bit is not only a connection to the origin of the term but also a hint about proper usage: people in the past (grandma could not vote) must have been able to and did enjoy the privilege at some point in the past.

I did not want to come off like a strict scrutiny word maven (synonym: dickhead) when I wrote my first comment because it would obscure the larger point: "grandfathered clauses" have negative connotations for new/potential customers. My goal was to be helpful and not to strut my lexicographic tail feathers.

<comment><USER11> pedantic might be a better synonym. ;)

</comment></comment></comment></comment></comment></comment><comment><USER12> Any details on exactly what you get with Digital Ocean IPv6? The page doesn't really go into much detail - and the implementation can make or break things.

Is this a single static IPv6 address with a /64 (or /56 or /48) subnet routed to it? Or is it something else?

<comment><USER3> We are rolling out IPv6 initially with a single IP address to see how the network side of things handles that since we have already a large deployment of IPv4 and then evaluate from there.

Thanks, Moisey Cofounder DigitalOcean

<comment><USER12> Is this a single IPv6 address sharing the same /64 with stateless auto- configuration, or static?

The implementation is important, over the years I've had annoying experiences with certain providers trying to do IPv6 - but not getting things quite right:

Hetzner - Gave customers a /64, but using additional IPv6 addresses required setting up proxy NDP - which at the time was annoying as only more recent Linux kernels supported it. I believe they've improved on this since though.

OVH - Requires setting up a default route outside of your normal netmask - this isn't fun. We don't do this with IPv4 - so why do some providers do it with IPv6?

Linode - Enables IPv6 auto-configuration, so many servers share the same /64 by default, and they give accounts "pools" of /116 allocations. Sites like Google considers all of them to be part of the same /64 network - so your server will probably have trouble accessing certain resources if another server is doing excessive queries.

<comment><USER13> Only tangentially related, but Linode gives each server a /128 by default, and gives out /56, /64, and /116 for free on request. I use a /56 to do my own subnetting and other fanciness.

<comment><USER12> Sorry, forgot to mention that Linode does give more options now.

</comment></comment></comment></comment></comment><comment><USER14> Received this email earlier, though I don't have any droplets running in their Singapore center. Wish I could test this out, but I usually keep my servers in the US.

</comment><comment><USER13> Can somebody who has a "grandfathered" account shed light on what makes an account "grandfathered" in this sense, and also what size allocations they're giving out?

(I'm aware what grandfathering is in a general sense, but unless they mean "we're releasing IPv6 as a beta to all users who were users before we made this announcement", it doesn't seem to fit here. And that would be strange)

<comment><USER3> Answered below, grandfathered users are our early adopters and we release features to them in a limited public beta test first to collect feedback before a general release.

There is no correlation to size allocation, it's just that they are first to be able to assign IPv6 to droplets in the Singapore region.

Thanks, Moisey Cofounder DigitalOcean

<comment><USER13> Thanks. I didn't think the type of account was linked to the allocation size, sorry for not being clear. I was just curious what allocation sizes were being given out at all.

Edit: and I see that in the interim that's been answered. Looking forward to seeing larger allocations appear as the beta progresses :)

</comment></comment></comment><comment><USER10> Fingers crossed custom kernels are next.

<comment><USER15> What do you mean?! You can't have a custom kernel on a DO VPS?

<comment><USER10> Correct, there's no current official support. You can kexec to your own kernel which is kind of ok as a workaround.

</comment></comment></comment><comment><USER16> General IPv6 question...is this a case where there is a benefit in being on of the early adopters? i.e. are there specific "good" addresses. Kinda like money.com is better than asoef.com.

<comment><USER17> No. The only benefit is that ipv6 is useful as you get addresses.

</comment></comment><comment><USER18> It seems to me bit crazy that a hosting provider launched in 2011 did not have full IPv6 support on day 0, especially when the provider in question was not some shoe-string garage operation.

<comment><USER19> Not really, the issue of deployment hasn't been lack of hardware support but lack of knowledge on the part of architects and engineers. A greenfield site has enough issues getting up and running without doubling the IP stack as well.

What's really surprising is the lack of mature service provider's who are not performing incremental roll outs.

</comment></comment><comment><USER20> Speedtest: [http://ipv6.speedtest- sgp1.digitalocean.com/](http://ipv6.speedtest-sgp1.digitalocean.com/)

Of course you need to be on IPv6 to reach that page :)

<comment><USER21> Is my v6 so slow or is it their site? I'm getting about 300-400KB/s (unstable).

Edit: Nevermind, their v4 goes at 100KB/s.

<comment><USER22> assuming that you're in .nl, I feel like 400KB/s from on the other side of the world is not terrible.

</comment></comment></comment><comment><USER23> I am actually interested in IPv6 - will you release 1 IP per Droplet? Do they cost similar to IPv4 for hosting company, they are cheaper or are they free?

<comment><USER24> I'd also like to know that, especially as there are lots and lots of hosters out there who don't grasp IPv6 and are already breaking it before it has really taken off by creating pointless bureaucratic overhead and thus incentive to create bad network setups that will hurt us all.

As for the cost for the hosting company: No, one major reason for IPv6 is that it has a huge address space with 128 instead of v4's 32 bit addresses, so they are a lot cheaper - as it should be, there is no point in artifically making addresses scarce. RIPE members, for example, are billed for an IPv6 /32 (about 4 billion /64 subnets) like for an IPv4 /21 (2048 addresses).

In short: You should generally avoid any hosting company that allocates anything smaller than a /56, they probably haven't understood the internet.

</comment></comment><comment><USER25> Can someone explain the meaning and value of IPv6 (and the hurdles for using it)?

<comment><USER25> Yes. I read the wiki page, but I was asking for a more conversational explanation. I really don't see why I was downvoted for asking a question.</comment></comment>


Ask HN: Karma Creep? - <AUTHOR>

I'm not a big HN karma watcher, but I've noticed a pretty strange phenomenon: Every so often I'll get a bump up of 1 or 2 points and, since it seems odd, I'll usually scan my first page of comments and find no noticeable change.<p>Anyone else experience this? Do people occasionally up-vote really old comments? Caching issue? <comment><USER2> I occasionally up-vote old comments.

It works like this: I'll read a comment that I find really intriguing for some reason (love or hate, usually). Curious about the poster, I'll go to their "about" page and scan through their old comments, which I'll upvote using the same criteria as for new posts.

Probably once a month or so, I end up giving 3-4 upvotes to one person this way.

<comment><USER3> And <http://news.ycombinator.com/item?id=2158116> probably made this effect stronger for a couple of days.

</comment></comment><comment><USER4> If someone re-posts a submission you made (same URL), your original is upvoted by 1 instead of posting a duplicate.

</comment><comment><USER5> Some old HN threads are linked in more recent threads or on blogs/websites. That could explain it.

</comment><comment><USER6> I've seen this a bit, and tracked most of it to an old comment in a post asking for what features you'd like to see added to HN thread.</comment>


Tech firms write to U.S. FCC to oppose 'net neutrality' plan - <AUTHOR> http://www.reuters.com/article/2014/05/07/us-netneutrality-companies-idUSBREA4615420140507 <comment><USER2> I think as has always been the case, money talks more then words ever could in a political system. If these 100+ tech companies each put in a few dollars, they would have enough lobbying money to swing the argument in the right direction. We are only at the current point in the anti-net neutrality argument because ISP's and telecommunication providers have been lobbying Washington rather successfully.

It's a sad fact he with the biggest cheque book wins, especially when it comes to reform. Look at the whole music/movies piracy argument, it extends as far back as the late nineties; publisher groups, the likes of the RIAA suing people and skewing the legal system by throwing money at the right people who have the power to vote and act upon such decisions. It's happening all over again, except this time the repercussions will be far worse then any anti- piracy bill.

I'm not saying lobbying is the only solution, but if the entities on the wrong side of the argument are doing it, does it matter if Google, Amazon, Facebook and other companies issue statements and express concerns to congress if it will only fall on deaf ears or be brushed off as a selfish act?

It kind of reminds me of when Labor were in power in Australia before the recent election and were in the process of rolling out the National Broadband Network (NBN) which was a fibre to the premises plan the current party has basically scrapped. Google Australia issued a statement saying the current Government needs to understand the value of such a network, but they were shrugged off. If they opened up their cheque book and started donating to particular Government interests and districts, would they have been taken more seriously? Maybe.

<comment><USER3> You don't think Google, Amazon, Facebook, etc, lobby?

This isn't just a matter of throwing money at the right people. Its part of a larger ideological debate about how to regulate the telecom industry. The trend over the last 20 years at the FCC has been rooted in conservative economic thinking. Deregulate the industry, use auctions to allocate spectrum, etc. The 1996 reforms didn't achieve everything it was billed to, but the fact is: 1) at the end of the day, Washington views it as largely successful; 2) the state of the internet in the U.S. is competitive with other large western countries: [https://news.ycombinator.com/item?id=7709948](https://news.ycombinator.com/item?id=7709948). The telcos certainly don't lack numbers to point to to show the competitiveness of the U.S. industry under the existing regime.

Net neutrality is a hard sell because it goes quite against the prevailing thought at the FCC. It has the support of many netopions, but not really among the mainstream/conservative economists that carry the most weight in these policy debates.

The internet companies need to lobby, sure, but they also need a "hook." And "openness" and "neutrality" which are words that resonate in Silicon Valley on their own are not ones that resonate in Washington.

To compare, look how the environmental movement has responded. Environmental groups don't talk about "conservation" and fuzzy ideas like that, not anymore, not in Washington. They talk about externalized costs and concrete economic phenomena that justify regulation. The tech industry needs to ground net neutrality in something like that.

Incidentally, this is part of a debate that has been raging for 30+ years. Telecom and wireless regulation has spawned thousands of journal articles and thesises. Politicians don't read these things, of course, but they're hugely influential to the technocrats that do the first draft proposals. At least to the extent they can back ideological viewpoints with a theory-based narrative.

<comment><USER4> > The internet companies need to lobby, sure, but they also need a "hook." And > "openness" and "neutrality" which are words that resonate in Silicon Valley > on their own are not ones that resonate in Washington.

What about 'unleash competition in the ISP industry'? This seems like a really easy sell--the infrastructure business is a natural monopoly, but there is no good reason to allow the infrastructure owner to control who can serve bits over it. Our current situation is like your power company getting to decide what devices you can plug into your outlets (and trying to shake down device manufacturers for permisson to use the outlets).

<comment><USER5> That is the best and clearest "anti" argument CI have heard in a long time

Lobby on this one folks

<comment><USER6> There is a faster way, use their own weapons against them:

[https://news.ycombinator.com/item?id=7714204](https://news.ycombinator.com/item?id=7714204)

</comment></comment></comment></comment></comment><comment><USER7> Hey, can someone rewrite Reuter's headline for them?

These companies don't oppose Net Neutrality. They oppose Wheeler's anti-net- neutrality plan.

<comment><USER8> I read the story twice and was none the wiser... Who was FOR net nutrality, and who was against? From previous knowledge I knew, but from the text it was impossible to say!

<comment><USER9> Everyone is for "net neutrality". The monopoly ISPs would like to redefine it as they don't mind who gives them money to avoid deliberately degraded connections.

</comment></comment></comment><comment><USER10> Apparently, Wheeler (the FCC chairman) used to work as a lobbyist for the cable and wireless industry ([https://en.wikipedia.org/wiki/Tom_Wheeler_(lobbyist)](https://en.wikipedia.org/wiki/Tom_Wheeler_\(lobbyist\))).

That seems as a bit of a conflict of interest.

<comment><USER11> For cable, he was president of a major industry trade group that did lobbying, but that was from 1979 to 1984, which I believe predates the existence of cable ISPs. The internet then was still for research and military use.

<comment><USER3> Right. He was a lobbyist for the NCTA up to the year I was born, back when cable networks were just basically coax wires carrying OTA signals.

Most recently, he was a managing director at Core Capital Partners, which is a VC firm that invests in a bunch of internet/cloud computing early-stage companies: [http://www.core-capital.com/portfolio.aspx](http://www.core- capital.com/portfolio.aspx).

Arguably, his strongest bias should be towards internet companies, not against them.

<comment><USER12> No, nobody can make that argument. And you're leaving out where he was CEO of the CTIA for 12 years until 2004. I encourage you to look at the patents for companies where he has a board seat. He's extremely biased to network operators.

</comment></comment></comment></comment><comment><USER13> Link to letter: [http://cdn1.vox- cdn.com/assets/4422119/letter_to_FCC.pdf](http://cdn1.vox- cdn.com/assets/4422119/letter_to_FCC.pdf)

Can anyone spot any big names that are absent, other than Apple?

<comment><USER14> Adobe, Valve, game companies in general, Akamai, Salesforce.

By all rights, Cisco, Juniper, Foundry, etc. should be on there, since neutrality means more business for them, but they can't piss off their biggest customers.

It's an impressive list, but there are a lot more big names in American tech than that.

<comment><USER15> I would imagine that an absence of neutrality is still well within Cisco's interests — its an opportunity to design and sell a whole new class of products and services specifically around throttling and limiting traffic.

<comment><USER16> Not necessarily. The current brand of neutrality violation seems to be an ISP allowing its peering connection(s) with transit providers to languish while charging large content providers like Netflix a fee to get a separate uncongested connection to their customers. That doesn't require a lick of packet inspection hardware and it involves the ISP buying _less_ Cisco gear because they no longer need to carry packets from all the smaller content providers who wouldn't/couldn't pay and either went bankrupt or saw less usage as a result of the degraded performance.

</comment></comment></comment></comment><comment><USER17> The letter stops short of asking the FCC to classify broadband and the internet with common carrier status. Bummer.

[http://cdn1.vox-cdn.com/assets/4422119/letter_to_FCC.pdf](http://cdn1.vox- cdn.com/assets/4422119/letter_to_FCC.pdf)

<comment><USER18> Easy fix - just let the anti-porn faction of the religious-right go after the carriers. If they don't want to be "common carrier", then they can be responsible for the content, too.

And no, I don't mean trivialities like copyright that they managed to get immunity from by passing the DMCA. IF they want demonstrate how strongly they control _what is allowed through their network_ , then they must be the responsible party. There is not shortage of stuff on the net that - in the eyes of paranoid parent - "obviously" fails the Miller Test.

If Comcast/etc really wants to play hardball, this idea can be extended to include all the child pornography they are surely trafficking. I'm sure they will the strict liability being used in such cases by some judges.

There are a lot of reasons to _want_ common carrier status, before you even get into the easy stuff like copyright and "streaming movies", and a giant line of people just waiting for just this kind of opportunity.

</comment></comment><comment><USER19> Can someone with a bit of knowledge help me get a grip on Mozilla's Net Neutrality plan? I'm reading through this:

[https://blog.mozilla.org/netpolicy/files/2014/05/Mozilla- Pet...](https://blog.mozilla.org/netpolicy/files/2014/05/Mozilla-Petition.pdf)

and the blog announcing it: [https://blog.mozilla.org/netpolicy/2014/05/05/protecting- net...](https://blog.mozilla.org/netpolicy/2014/05/05/protecting-net- neutrality-and-the-open-internet/)

Anybody think this is a bad idea? Seems to be a safer bet than the more dangerous brush strokes others are painting the issue with.

</comment><comment><USER6> If tech has balls, they can get net neutrality back fast (couple of days): [https://news.ycombinator.com/item?id=7714204](https://news.ycombinator.com/item?id=7714204)

</comment><comment><USER20> I'd like to see those 100 firms contribute to a co-op ISP which competes in the most profitable markets of Comcast and AT&T, etc.

</comment><comment><USER21> In case you want to spread the importance of this to the general public, there's a simple video from vihart: [https://www.youtube.com/watch?v=NAxMyTwmu_M](https://www.youtube.com/watch?v=NAxMyTwmu_M)

[https://news.ycombinator.com/item?id=7711635](https://news.ycombinator.com/item?id=7711635)

</comment><comment><USER22> It seems significant to mention that the tech firms are opposing _ineffectual_ net neutrality plans. Not opposing net neutrality.

edit: formatting

</comment><comment><USER23> You think the people in politics understand the idea of "net neutrality" LOL. I'd be surprised if most Senators/House members knew the difference between USPS and email. Now if you were to tell them that the internet would go away unless they contributed $100mil maybe they'd open an IE6 window to Wikipedia to understand whats going on.

</comment><comment><USER24> Since this has been dragging on for about a decade now, what has been the effects in the US? Also, will net neutrality force cable companies to unblock port 25?

</comment><comment><USER25> Would be better says to oppose the "fast track" plan.

</comment><comment><USER26> Dont know if this law is for or against, however the moment My isp starts charging both sides i would switch.

That is not what i pay for.

I would assume in the bigger picture this would not be very good for ISP's

<comment><USER27> While I'd do the same, due to the monopolistic nature of ISPs in the US they wouldn't have much choice beyond moving to a new location. As much as I'd like to think everyone else is like me and able to relocate easily I know that isn't the case for the _vast_ majority of people.

</comment></comment><comment><USER28> One set of corporate overlords is taking our side to enlarge their own coffers. Rejoice, peons !

</comment><comment><USER29> So is this really going to get Wheeler to stop the push? I don't think so the broadband provider have their hands up his ass up to his mouth.

Fuck you Wheeler.</comment>


Maker time and significant others - <AUTHOR>

There is a lot of conversation, analysis, and general agreement of the dichotomy of maker time va management time.  I occasionally find myself appling the same concept on top of maker time vs family time.  As a hacker who is soon to be married I often feel like my SO doesn't understand when I'm struck with inspiration or motivation and need near a full day to get something out of my head and into code.  I don't even have kids yet and I feel like its hard.<p>So here's my question to the makes who are also family men/women out there: how do you do it and do you think your SO understands?  Where so you strike your balance? <comment><USER2> This is what mostly works for me:

0) Ensure you're truly in love with your SO, and vice versa. I'm going to assume this evaluates to TRUE for what follows.

1) Have your SO read PG's essay on this topic; you know the one.

2) If their response is receptive and nurturing, then talk about concrete tactics that will support the long, uninterrupted stretches of time you need to thrive [tactics to follow, below].

If they get defensive after reading the essay, then you will know that indulging in maker time when you _could_ otherwise be spending time with them will need to happen A) in a separate, unshared space, and B) during hours and within contexts that the general population of non-makers would consider a socially acceptable time to be practicing your craft--i.e. 9-5, M-F.

If (ideally) your SO inquires as to how they can support your maker's schedule while you're cohabitating, then explain to them how the Pomodoro technique works, and on your breaks between Pomodoro's, give them your complete and undivided attention. This way, you're able to focus without stressing about possible interuptions, and your SO enjoys your full, undivided attention during breaks, with the nice side effect of you being in a great mood during these breaks.

3) Realize that your SO, and all the other relationships you have with friends and family, are at least as meaningful and valuable as anything you could be making. _Share_ the joy and purpose that making brings to your life with the people who love you--and just as importantly--take pride and great pleasure in the things that matter to them, too!

</comment><comment><USER3> The key is to talk with you SO and understand their point of view. Odds are they already feel that they've lost you to work for a significant portion of the week... so to then say that you need another night or weekend day can be a lot. It's all about communication and balance and no one answer is right for every couple.

My best advice: Talk to your SO and reevaluate your priorities. You might end up with the same priority list after you do so (which is fine) - but give it a hard look for yourself and your SO.</comment>


Filepicker un-grandfathers plan, cost goes up 5x - <AUTHOR>

The legacy $9/month "enhanced start" plan (Nov 2013) allowed 5000 uploads/month and 150,000 conversions/month.
According to Filepicker today they are "upgrading" such plans to their $49.95/mo startup plan, which allows 2000 uploads and 6,--- conversions, but they are increasing the uploads to 5,000.
So it looks like 5x more $ for 96% fewer monthly conversions.
The email does not say when it takes effect.
text of their email: I wanted to let you know about an update to filepicker's service.  To sustain our level of service and future upgrades, all legacy enchanced start plans will be upgraded to our standard starter plan at $49/month.
In addition we've rewarded our existing users with more than double the starter file allotment to 5000 pics/month.  We want to ensure you don't incur overages in the future.  Please confirm with me when you're available and thank you very much for using filepicker! <comment><AUTHOR> I did get a note back in response to my inquiry that they do not intend to reduce the conversions so dramatically, and indicated if I needed 150K (which I don't) they would allow that. Personally, the usual 3x or 4x more conversions than uploads seems fair.

</comment><comment><USER2> I am interested in "big data" sorts of things and I have to admit SaaS pricing schemes have me scratching my head all the time.

There is certain things where the cost of provisioning the service is high enough where the pricing really has to be cost-driven to some extent but on the other hand, the general principle is that your pricing should be value driven.

I think for instance of the dime-a-dozen machine learning services out there that have a "free tier" which won't let you run a large enough training set to get non-embarassing results, for instance.

</comment><comment><USER3> Time to look at the alternatives?

[https://uploadcare.com](https://uploadcare.com)

[https://developers.kloudless.com/](https://developers.kloudless.com/)

[http://filespin.io/](http://filespin.io/)</comment>


C++11/14 Idioms I Use Every Day - <AUTHOR> http://seshbot.com/blog/2014/08/16/modern-c-plus-plus-idioms-i-use-every-day/ <comment><USER2> Raarrggghrhghh. I couldn't possibly disagree with his proposed use of 'auto' more. Abundant use of auto is the opposite of readable! Nothing is more infurating than jumping into a new bit of the code base and having no idea what anything is or what it can do.

Auto is acceptable for iterators and, in some cases, references to complicated containers. Don't fucking type "auto pos" instead of "Vec2i pos", "Vec3f pos", or one of many other possible types that pos variable may represent.

<comment><USER3> Ah yes, the type inference argument. I give the onboarding here for new hires about C++ and so I get some form of this objection (and the subsequent argument) every two weeks like clockwork. Here's what I say (feedback welcome):

1\. Sometimes `auto` helps readability immensely. Sometimes it hurts immensely.

2\. All generalizations about when and where to use it are generalizations and likely to start an argument.

3\. Ultimately it's up to you and your diff reviewers to do the right thing. There will be people reading your code in the future and they will judge you and your decision, so choose wisely. Future-you included.

4\. `auto` can often improve correctness/generality, not just readability, e.g. "int sz = v.size(); //BAD". No one writes "vector<int>::size_type sz = v.size();" I dare you to search your code for it.

5\. The only controversial generalization I feel safe making, knowing saying it will get me into trouble, is that experienced non-C++11 (whether coming from C++03 or other languages) coders tend to be more apprehensive and cautious, using `auto` less than experienced C++11 programmers. Take it for what it's worth.

<comment><USER2> 1\. Agree

2\. Agree

3\. Agree

4\. I don't use vector<int>::size_type and I don't use decltype(sz) throughout the rest of the function. I use size_t and let the compiler give me an error if size() happens to return a different type or, if when making use of sz, types get mixed.

5\. That's a little too anecdotal and 'appeal to authority' for my liking.

The big question, I suppose, is defining guidelines for when auto helps readability and when it hurts it. My experience has been that it is best to default to no auto and only use auto after trying the non-auto way first. Iterators and template-heavy containers are great instances where auto helps. In our codebase I can't think of another situation in which auto would be useful.

We also don't have heavy template usage outside of containers. If your code has templates everywhere then I can imagine the number of times auto is an improvement in readability would be larger.

There have been exceptionally few times where I have jumped into someone else's code and said "wow, their heavy use of auto has made this easier to read and understand".

<comment><USER4> I've no dog in this fight, but narrowly with regard to

 _' There have been exceptionally few times where I have jumped into someone else's code and said "wow, their heavy use of auto has made this easier to read and understand".'_

I think it's far easier to notice when you hit unreadable code and what seems to be making it unreadable, than it is to notice when you hit readable code and what seems to be making it unusually readable. That's not to say your conclusions are necessarily wrong (or right), by any means - just that I'd view this particular argument with an added measure of skepticism.

</comment></comment></comment></comment><comment><USER5> Has anyone taken a look at the new versions of Bjarne Stroustrup's C++ Programming Language [1] or Scott Meyer's Effective Modern C++ [2]? The originals are classics, and I would be interested to know if the new versions hold up.

[1] [http://www.stroustrup.com/4th.html](http://www.stroustrup.com/4th.html) [2] [http://shop.oreilly.com/product/0636920033707.do](http://shop.oreilly.com/product/0636920033707.do)

<comment><USER6> I read his short A Tour of C++ and enjoyed it a lot. Much of it is taken from parts of his update to The C++ Programming Language. If you just want a short book to introduce the new parts of C++11, A Tour of C++ is the way to go.

</comment></comment><comment><USER7> Thanks for this blog post; it will help me to make the best use of C++11/14 features in day-to-day programming. One thing I've been wondering about for a while is how the auto keyword relates to type-safety. The blog post lists the point "auto type deduction everywhere" under "type-safety". But consider the line

      auto x = foo();

Suppose you refactor your code, and in the process, the return type of foo() changes. Without the use of auto, the compiler would produce an error message, alerting you that the above line of code may need your attention. As it is, with the use of auto, the above line will compile no matter what. In other words, that particular line now behaves as if C++ was an untyped language. Isn't that a step down as far as type-safety is concerned? Please note: I'm not asking here whether that's good or bad. I'm asking, "Assuming that we use the auto keyword throughout, can we still call C++ 'strongly typed'"?

<comment><USER8> It's going to be untyped in the same sense that the following Haskell code is untyped:

        foo = [1, 2, 3]
        x = foo

We didn't give a type to x, but the compiler will infer it anyway. If foo changes, x will change too. This does not make Haskell untyped, it just means it can add type annotations by itself in most cases (see Hindley-Milner type inference).

Note that that code won't "compile no matter what", because in C++ construction using "=" is already an operation that not all types have. So if foo returns an object which does not have a copy constructor or move constructor, then that line will fail to compile. In the more general case, you'll still not be able to use operations on x that x's type does not support, and that's what type safety means.

<comment><USER7> Ok, I got you. If type-safety means, as you say, "you can only use operations on x that x's type supports", then all is well. I must admit that I was under the impression that type-safety meant more: if I assign to a variable x of type A an object of type B, then that is an error even if the type B will work syntactically (i.e. has all the operations needed by my variable x), because it may not work semantically.

<comment> squeaky-clean >if I assign to a variable x of type A an object of type B

You're correct that this is unsafe, but this isn't what auto does. You'd be assigning a variable x of type A an object of type A. Then what that code theoretically changes, you're now assigning variable x of type B an object of type B. auto just handles all the boilerplate. It will be type safe, it's just logically incorrect.

For example

        public int foo()
        {
            return 1;
        }

        auto x = foo();
        //is the same as
        int x = foo();

And then you change it to this:

        public float foo()
        {
            return 1.0f;
        }

        auto x = foo();
        //is the same as
        float x = foo();

In either case you can go on to do stuff like 'float y = x / 10;' Because they're both valid operators. But there can be logical inconsistencies, like the integer division problem that will occur if x is an int. Then again, you probably shouldn't use auto for something as simple as int or float. But 'auto foobar = new vector<int>;' is a very clear statement, and if you replace vector with something else, odds are the compiler will throw a fit with any later methods you attempt to call.

I haven't written C++ in a while, so I hope I didn't butcher the examples too much. I simply typed them into the comment box.

The definition of type-safe could be extended to mean what you say, it's not really a term that is set in stone. But I've always used type safety to mean preventing type-based syntax errors, not semantic errors. If it's more common to do otherwise, I'd be happy to be corrected.

<comment><USER4> You shouldn't use auto for float and int not just because they're simple, but because they get happily coerced in ways that might break things. I've not written much C++11, but my intuition would suggest limiting auto to places where, upon a change, either 1) everything in the dependency chain will change and work correctly, or 2) anything that can't change correctly will loudly break at compile time.

</comment></comment></comment></comment></comment><comment><USER5> I'm loving the new pseudo-random number support. In a few lines one can crank out some Mersenne twister niceness. No more shipping around custom pseudo- random code, and no more calls to rand that give different results for the same seed on different platforms!

</comment><comment><USER9> The nice thing about C++11 is that the designers seem to have actually tried to increase usability, rather than just maximizing expressivity, which is usually the case. Features like range-based for and auto make programming much more pleasant. I program in a functional style in many other languages, but could never bear to in C++ before because it was so awkward.

<comment><USER10> I still wouldn't try to use too many functional idioms in C++ even now. It's just not a good language for that kind of programming style. For example, from the "New language features" section of the C++14 Wikipedia page[1], the first example is generic lambdas, which means we can now write:

        auto lambda = [](auto x, auto y) {return x + y;};

That's progress of a sort, but in Haskell, a language designed to support this style of programming, it looks like this:

        lambda = (+)

Obviously C++ is slowly being left behind by modern programming language design and the collective experience of the programming industry over several decades since C++ was invented. Eventually it will be superseded by other languages that do support more expressive language features and better designed standard libraries (which is easy to do with the wisdom of hindsight, of course -- this is not a criticism of the people who built C++ without the benefit of that hindsight).

But since we don't yet have any such alternatives that don't also have significant drawbacks and/or unacceptable run-time performance characteristics, for the near future C++ is still going to be the first choice for a lot of projects in the real world. In that respect, closing the loopholes and fixing the pain points is useful for a lot of people, and very wisely that seems to be what the standards committee are concentrating on doing.

[1] [http://en.wikipedia.org/wiki/C%2B%2B14#New_language_features](http://en.wikipedia.org/wiki/C%2B%2B14#New_language_features)

<comment><USER9> I agree with your example. But, for example, before C++11, if I wanted to do an even slightly non-trivial map or filter I'd probably do it by hand rather than write a (C++) "functor" or assemble some function in place with std::bind1st et al., whereas now I will happily write a simple lambda.

<comment><USER10> I agree, but in C++, I probably wouldn't try to wrap that kind of logic up in a functional programming style with the standard algorithms anyway.

I've read the advocacy and I've considered the arguments many times, and in a language designed to support those styles I would absolutely agree that using them is a huge improvement over a raw loop. But in those languages, the functional style has clear benefits for both readability and maintainability.

Unfortunately, C++ is not such a language and the benefits of trying to shoehorn that programming style into C++ projects are far from clear, even with the new lambdas. Therefore, for logic that isn't completely trivial, I usually still choose to write the loop.

I suspect we actually have quite similar preferences about programming style, and I don't like that favouring raw loops is the conclusion I've reached. However, as with some of the libraries using terribly clever template wizardry, I find sometimes in C++ the medicine is worse than the disease.

</comment></comment></comment></comment><comment><USER6> Looks like a great list of handy things from the latest versions of C++. I think it might have been a non-standard addition before C++11, but I really like the data() function on vector. It just gives you a pointer to the first element of the array of data in the vector. Obviously you can shoot yourself in the foot pretty badly with this, but it's great for interfacing with legacy C code, etc. that expects to get a pointer of things and length.

<comment><USER11> I think you could also have done something like "&(v[0])" to get the same thing.

<comment><USER12> Watch out! "&(v[0])" has undefined behavior if v is empty. "v.data()" always works, besides being more readable.

<comment><USER13> I looked this up:

"Returns pointer to the underlying array serving as element storage. The pointer is such that range [data(); data() + size()) is always a valid range, even if the container is empty."

Can someone explain the semantics? If the range is valid for an empty vector, what does that say about the validity of tge pointer returned? What value will it have for an empty vector?

<comment><USER12> On an empty vector, data() can either return a null pointer, or a pointer to some allocated memory with suitable alignment for that type, but there doesn't have to be a existing object.

What is the range [ data(), data() + size() ) anyway? It consists of n + 1 iterators. All but the last one can be dereferenced. You can take one iterator in the range and add or subtract to get another one, as long as you stay in the range. You can subtract iterators to get a signed integer. You can compare iterators with all six operators ==, !=, <, >, <= and >=.

For any valid pointer p, null or not, [p, p) is a valid range of length 0. It has one iterator, p, but you can't dereference it. You can add or subtract 0. You can subtract p from itself, getting 0. And you can compare it with itself.

</comment></comment></comment></comment></comment><comment><USER14> Thanks for this. I've been wanting to pick up a bit more new C++, but haven't found a lot of great resources.

<comment><USER15> Agreed.

Following [https://gobyexample.com](https://gobyexample.com) and [http://rustbyexample.com](http://rustbyexample.com), a [http://cppbyexample.com](http://cppbyexample.com) kind of site would be quite useful for people who are familiar with coding and just want to experience some practical use cases in idiomatic C++ (threading, json parsing, etc).</comment></comment>


Winamp for Mac - <AUTHOR> http://www.winamp.com/mac <comment><USER2> As far as I can tell, it's mostly just an ugly version of iTunes.

* Visuals aside, the UI is basically iTunes. It has the exact same elements in the exact same places, except Winamp looks like a tacky GTK+ theme.

* I couldn't figure out how to hide "Genre", which I strongly dislike, and "Year", which I don't care about.

* No fullscreen on Lion - this takes, literally, 5 minutes to add. I guess they would have to spend some time drawing a completely custom button.

* The largest UI element is the number of seconds that have elapsed in the current song. Is this really something that people care about?

* Sorting by artist seems to be broken - if I sort by artist, it should logically order each artist's albums alphabetically as well. I'm not sure what secondary ordering its actually using - it's not alphabetical by track or ordered by track number (all 1, all 2, ...). iTunes calls the manner of sorting that I suggest "album by artist".

* Scrolling is broken (not smooth). This is also an issue in Spotify.

* For some reason there is a prominent button to show the "About" dialog.

Good things:

* When the track changes, this list doesn't snap back to the new song. This is one of the most annoying features in iTunes.

* When the track changes, if you have searched for something, it doesn't just _stop_ like iTunes. In iTunes, if you start playing a Beatles song, then search for "The Clash", if that Beatles song ends, it will not go to the next Beatles song, because the original song is no longer visible.

* Watch folders, which, if it wasn't ugly, would be reason enough to use it.

<comment><USER3> Also:

\- The options for playlist viewing/filtering are limited. There's no equivalent to iTunes' "column browser", so the only way to (for instance) play a single album is to search for its name!

\- There is no tag editor at all. What.

\- While you _can_ create playlists, I can't find any way to add tracks to them or reorder them, making them pretty much useless.

\- The (light-gray-background) scrollbars look completely out of place on the black background. (This kind of falls under your point of "ugly", but it's sufficiently broken that it's worth calling out.)

<comment><USER2> I actually don't think the tag editor is a big deal. The only "tag editing" program I use is Picard, and it's just once for each file, which gets it perfectly tagged, renamed, and placed in the proper directory.

Oh, here is another one that I didn't notice at first. Bottom right corner resizing on Lion. Wrong.

</comment></comment></comment><comment><USER4> It's finally come full circle I guess:

WinAmp's UI(1) was copied by SoundJam MP for the Mac(2) circa 1999. Apple bought SoundJam and turned it into iTunes after overhauling the UI(3) leading to what we have today(4), only to be copied by WinAmp as we see in the OP.

1) [http://images.scripting.com/archiveScriptingCom/2005/04/16/w...](http://images.scripting.com/archiveScriptingCom/2005/04/16/winamp.gif)

2) <http://upload.wikimedia.org/wikipedia/en/e/e4/Soundjammp.jpg>

3) [http://www.blogcdn.com/www.tuaw.com/media/2006/09/itunes1.jp...](http://www.blogcdn.com/www.tuaw.com/media/2006/09/itunes1.jpg)

4) <http://cdn.macrumors.com/article-new/2011/06/itunes_10_5.jpg>

</comment><comment><USER5> OS X has been a ghetto for music players for some time. If you dont't like iTunes, you don't really have many good options. Hopefully this will ignite some more competition in that space.

<comment><USER6> VLC has a Mac version. I don't know how good it is, though.

<comment><USER7> VLC is great for watching video. It'll play anything. It's either that or quicktime+perian.

<comment><USER8> MPlayerX has fewer weird bugs and a nicer interface than VLC, and is free of the lag issues that Perian displays with certain formats.

</comment></comment></comment></comment><comment><USER9> Is there an equivalent of foobar2000 for Mac?

The only player I've used on a regular basis on Mac is Vox ( <http://www.voxapp.didgeroo.com/> ).

</comment><comment><USER10> Right now this seems to be depressingly sparse, for any music player. If this could get some of the old 2.x basic winamp functionality (shuffle/repeat, support OLD SCHOOL SKINS, and, most importantly, be able to queue up files(my biggest biggest biggest pet peeve against iTunes)) I would ecstatic. I'm gonna be honest, ever since leaving windows, I was able to say, half joking, but being completely serious, that the biggest thing I missed about windows was winamp (yeah, I"m an old school hold out, but it worked soooo good, and my skin looked sooooo good, and it didnt take up too much space). This player doesn't do it for me, but it shows there is potential. I hope.

</comment><comment><USER11> Three-second review: Wow, this would be really great if I was still a twelve- year-old boy who thinks that white text on a black background is the bee's knees.

Also that twelve-year-old boy would probably have to not be used to playing all of his music out of a few Smart Playlists. Not that I've downloaded and tried Winamp but I am guessing it doesn't do those because no "iTunes alternative" has ever had that.

But I guess the people who actually spend a lot of time looking at their music player will like this because it can import the awesome skin with a hot anime babe on it that they had to abandon when they switched to a Mac? I guess. I dunno, iTunes spends 99% of its time on my machine hidden, being controlled by Quicksilver hotkeys, and telling me what's playing via Growl alerts.

<comment><USER12> Just wanted to say, your comment is not very useful.

You admit that you haven't downloaded it, yet write a lengthy "review". If you had downloaded it, you would know it has no skin support.

<comment><USER11> You must live deep in the land of tl;dr if five sentences is "lengthy".

But thanks for correcting my speculation. Wow. No skin support? That seemed to be one of the killer features of Winamp judging from all the screenshots I used to see. I guess the "killer" feature is "moves music between iTunes and your Android phone", which I've been happily using Salling Media Sync for ever since I got a N1.

</comment></comment></comment><comment><USER13> This runs great. Unlike iTunes it doesn't check my entire damn music library on the NAS every single time or have tons of bloatware like Ping, iTunes Store, etc. iTunes took on average 3-5 minutes just to start. This starts quickly and immediately loads my music. If it gets updated with some decent features I'd use it exclusively. Another solution people might be interested in is Clementine.

<http://code.google.com/p/clementine-player/>

<comment><USER14> Something has to be timing out with your network share. I have a library tens of gigabytes in size and a three-year-old MacBook Pro, and it the app starts in about five seconds.

iTunes is bloated; I won't argue with that—but it's definitely not slow.

</comment></comment><comment><USER15> Shouldn't it be called Macamp?

<comment><USER16> Don't mess with an established brand. This lesson brought to you by Qwikster.

<comment><USER17> There used to be a version called MacAmp, back around the 2000s. Back then, it resembled the current windows version 2.7-something.

I haven't tried installing it, but here's the link for MacAmp. <http://www.macamplite.com/>

</comment></comment></comment><comment><USER18> Looks promising, but very basic so far. No shuffle/repeat, enqueueing, or really anything beyond play, pause, previous, and next. It did import my iTunes library in <2 seconds though, which seems impressive compared to iTunes', what, 15 minutes?

Excited to see a hopefully serious competitor to iTunes, it's actually great to see them starting simple. What's there works well.

<comment><USER2> Keep in mind that iTunes had already done the hard work for Winamp. iTunes has to walk your directory structure, open each file, and read the ID3 tags. That takes real, actual time, especially on a spinning disk. iTunes is probably slower than it has to be, but there is a limit on how fast that sort of thing can be. Parsing a single XML file takes a lot less time.

It took a lot longer than 2 seconds for me as well - about 16k songs.

</comment></comment><comment><USER19> I welcome Winamp on OSX , I first used Winamp in 1997-98 and it was liberating in many senses, mp3 could be ripped or downloaded and can build playlists, and later they brought plugins for visualization and DSP.

I am not a iTunes fan, it is more of a necessary evil, as I have many Mac and iOS devices.

</comment><comment><USER20> Ahhh Winamp... Brings back to the days of Napster. I like to call them, the glory days of music.

<comment><USER21> I remember using Winamp even before Napster! 1997, I think? The first version with the basic look. I remember my machine was so old that the mp3 I downloaded wouldn't play at the full bitrate. Instead, it played at 64kbps. I remembered thinking how "crappy" mp3s sounded and was lost why everyone thought they were so great. When I finally upgraded (shortly after), my music world completely changed. Ended up buying a Rio PMP300. Amazing how far we've come.

<comment><USER22> Rio was tad expensive... but it was _so_ light compared to a discman...

</comment></comment></comment><comment><USER23> Awesome; will download as soon as last.fm supports it. In my (albeit limited) search for a music player on OS X, iTunes is the best last.fm supported music player available, which is unfortunate because iTunes blows.

<comment><USER24> SongBird supports LastFM perfectly, doesn't take 15 minutes to boot, and doesn't come with annoying storefront, ping and other stuff I don't want to see. You should give it a try.

</comment></comment><comment><USER25> "Why Winamp for Mac Is the Media Media Player for Android" Did I miss something?

</comment><comment><USER26> I wish they'd sort out the Windows version before they moved on to sorting out other platforms, but I can understand why.

I wrote about my gripes with Winamp a couple of times: [http://s00techified.wordpress.com/2011/07/05/soo-what- happen...](http://s00techified.wordpress.com/2011/07/05/soo-what-happened-to- winamp/) [http://s00techified.wordpress.com/2011/07/11/soo- alternative...](http://s00techified.wordpress.com/2011/07/11/soo-alternatives- to-winamp-someone-mentioned-songbird/)

</comment><comment><USER27> Winamp with the Bento skin, and the 'Local media -> audio' pane open is far better than any player I've come across on the Mac.. I'm really hoping the Mac version gets as good as the Windows version.

The 'Local media -> audio' pane makes it really quick and easy to browse music by genre or artist, and if you rate your songs, your top songs, or top songs by genre or artist.

And the window-shade mode is nice for letting you see what's playing and controlling with minimal distraction and taking up minimal space.

I've really missed it since switching to a Mac.

</comment><comment><USER28> What is wrong with the piece of crap! I used to use winamp a long time ago. Now it just doesn't work.

I tried to play an avi. No. They're all greyed out.

I tried dragging an mp3 into it. No.

Tried dragging mp3 onto the dock icon. Looks like it's working but then nothing happens.

Tried Open File with the mp3 (cmd-L for some reason...) and it lets me pick the mp3 then nothing happens, it doesn't play it or show up on the playlist.

I give up.

On a related note, I saw some screenshots and the windows version now has a bloated, horrible UI, not at all how I remember it.

<comment><USER29> Here's how it looks for me on Windows XP. It's the classic Winamp skin, the one that has been there for ages.

<http://dl.dropbox.com/u/311095/Screenshots/winamp_1.png> Full version, when I turn on the playlist and equalizer. I turn equalizer on just for symmetry; I never actually use it because I'm sorta audiophile and Equalizer Never Helps.

<http://dl.dropbox.com/u/311095/Screenshots/winamp_2.png> This I see more often; just the main window without additional windows.

<http://dl.dropbox.com/u/311095/Screenshots/winamp_3.png> Often I minimize it to a slim bar like this.

<http://dl.dropbox.com/u/311095/Screenshots/winamp_3b.png> Or like this, if you turned on the playlist.

<http://dl.dropbox.com/u/311095/Screenshots/winamp_4.png> This I see even more; Winamp is minimized to a tray icon (the grey "play" icon)

</comment></comment><comment><USER30> I like you they underlined the Android part, why take on iPhone, that's dominated by iTunes when there's such a great market for Android.

</comment><comment><USER31> I'm gonna skin it to look like iTunes for Windows.

<comment><USER32> Is there a major difference between iTunes for Windows and iTunes for Mac? (Don't use Mac OS X, sorry)

<comment><USER33> iTunes for Mac is a great music player/jukebox. The Windows version is slower, buggier and less responsive. As a result, it's a pretty bad library based music player in Windows (although nowhere close to as bad as people make it out to be).

iOS device management is as flaky on Windows as it is on Mac OS X, which is what they have in common and one of the most frequent complaints. But to be fair, nothing besides iTunes even tries to do device management as comprehensively, so there is little to compare it to. Still, it can be buggy and slow and that is easy to judge even with nothing to directly compare it to.

IMO iTunes gets an excessive amount of over the top flak from techie types. As someone who has used it since version one in Mac OS 9, it's really not that bad. I'm quite picky about my applications and I've been using it every day for around 10 years now. I always check out alternatives when they come up for OS X and they are always much worse in very simple areas, like scrolling. Go ahead, grab almost any alternative music player for OS X and throw in a 20k song library. If it scrolls as smoothly as iTunes, I'll be amazed.

<comment><USER32> Good to know, but I was thinking more in the way of UI, as he said he wanted to skin it like the Windows version.

<comment><USER31> Sorry to have mislead - I was just making a dumb joke (against my better judgment) on the name... Winamp (which was famously skinnable and has "Win[dows]" right in the name) for Mac.

</comment></comment></comment></comment></comment><comment><USER34> Looks good. But all I want is a file system browser. Which I don't see? I'm using Clementine at the moment which has one.

</comment><comment><USER35> Back when I was on Windows I believe my progression was:

Real Jukebox > MusicMatch Jukebox > Winamp > Foobar2000

Remember the nosedive Winamp took after AOL bought them? But man, I loved how you could double click the Winamp title bar and it would collapse to this tiny little bar that you could snap to your taskbar.

<comment><USER36> MusicMatch had the best autotagger I've ever used. It's too bad Yahoo ruined a great player.

</comment></comment><comment><USER12> The major benefit of this for me is the syncing with winamp for Android, which I find a very good player.

</comment><comment><USER37> I love me some Winamp. Since switching to a Mac, it's one of only a few apps that I miss terribly.

But if it doesn't support the media controls on a Mac keyboard, it just cannot compete with iTunes. Period.

</comment><comment><USER38> I remember Winamp; haven't used it in probably 7-8 years. I gave it up for RealPlayer (which I couldn't stand) and eventually VLC.

Anyone here know the main advantages/disadvantages between Winamp and VLC?

<comment><USER39> VLC is great if you want to keep it lean, Winamp will give you better library management, upnp device support, Android support (wireless as well) and easier discovery.

<comment><USER40> If you want to keep it lean, remove the plugins you don't use from WinAmp, and use the classic skin. It basically becomes version 2.x, which is a fantastic player.

<comment><USER41> I still use Winamp 2.89. IMO, the greatest media player of all time.

</comment></comment></comment></comment><comment><USER42> Why do all these people talk about Winamp like if it was the best player for windows? Sonique was WAY better, back in the day. Winamp was for the kids who didn't know any better.

</comment><comment><USER43> The only reason I'd want Winamp on my Mac is for its ridiculously low resource usage. If they're going to make it look, act, and EAT like iTunes, why switch?

</comment><comment><USER44> Why couldn't they have just ported the Winamp core and its playback plugins over to Mac? What the hell is this crap?

</comment><comment><USER24> i'm using SongBird, and it's quite nice. It reads most formats, sorts songs correctly, sync (though not wirelessly) to about anything. It's more feature complete than this (shuffle, repeat, playlists, lastFM connection, video, etc) and it's open source (yes, that's quite important a feature to me).

</comment><comment><USER45> I'll be honest. I just downloaded it so I could hear that classic app intro - "it really whips the llama's ass"

</comment><comment><USER46> Win..Maybe the Windows version can improve and I can finally sync my music.

</comment><comment><USER10> OMG DREAMS DO COME TRUE!

</comment><comment><USER47> They got the basics right. It's a great start.

</comment><comment><USER48> Too bad they didn't port WinAmp 2.x to Mac :(

<comment><USER29> Are there any ways in which 5.x can't be just like 2.x ?

</comment></comment><comment><USER49> Winamp, it really whips the llama's ass

</comment><comment><USER50> All of these features are also available in Spotify. Oh, and streaming too!

</comment><comment><USER51> Why?

</comment><comment><USER52> Too little too late. I wish they had this when I got my first Mac. Winamp was the shit when I was a kid and I have a fondness for it out of nostalgia but I don't see anything special here unfortunately.

</comment><comment><USER53> wait what

I don't even

If you already have a Mac, why would you want to use ANYTHING besides iTunes?

Also, sync with Android? You've already got a Mac and an Android, you can't buy a bloody iPod?

<comment><USER54> iTunes is... amazingly bad. I was using foobar2000 in wine for a while, but the terrible interaction between X11 apps and spaces got me to switch back to iTunes. I'll probably opt for a CLI solution in the near future.

<comment><USER55> MPD with ncmpcpp is nice and straight to the point. MPD is available through homebrew.</comment></comment></comment>


Bill would end overtime pay requirement for many more IT workers - <AUTHOR> http://arstechnica.com/business/news/2011/12/bill-would-end-overtime-pay-requirement-for-many-more-it-workers.ars <comment><USER2> There are a lot of people out there who have it rougher than I do; I don't deserve any sympathy for not getting overtime. But there's something really strange in being treated differently _by law_ because I sit at a desk all day thinking about software rather than sitting at a desk all day thinking about amortization, metal fatigue, or Higgs bosons. How did this happen? Did a BOFH piss off a lobbyist?</comment>


Taxi drivers swarm downtown Toronto in protest of Uber - <AUTHOR> http://m.thestar.com/#/article/news/city_hall/2015/05/14/taxi-drivers-swarm-downtown-core-in-protest-of-uber.html

<comment><USER2> fuck them

<comment><AUTHOR> Seriously. Deal with it</comment></comment>


Why aren't we using SSH for everything? - <AUTHOR> https://medium.com/swlh/ssh-how-does-it-even-9e43586e4ffc#.mffr9l252 <comment><USER2> I have a hammer, why isn't everything nails?

</comment><comment><USER3> Oh boy, not again this nonsense.

[https://news.ycombinator.com/item?id=11516582](https://news.ycombinator.com/item?id=11516582)</comment>


Sept 24: World Day Against Software Patents - <AUTHOR> http://stopsoftwarepatents.org/ Didn't know this until just now, but apparently today is the day for protesting software patents.  Since there are lots of startup founders on here, who may have a different take than the average hacker, what are your thoughts on the software patent issue? <comment><AUTHOR> Didn't know this until just now, but apparently today is the day for protesting software patents. Since there are lots of startup founders on here, who may have a different take than the average hacker, what are your thoughts on the software patent issue?</comment>


Test your web design in different browsers - <AUTHOR> http://browsershots.org/ <comment><USER2> There are some nice examples of coding here. It covers a lot of bases, cross- platform, distributed. The bit I like the best is an encoding of PEP8 [0] ~ <http://svn.browsershots.org/trunk/devtools/pep8/pep8.py> Did find a trivial bug though. Try entering a non-existent domain name and it barfs a 500.

[0] PEP 8 is Style Guide for Python Code ~ <http://www.python.org/dev/peps/pep-0008/>

</comment><comment><USER3> Now that Safari also has a MS version you can test your website in all browsers pretty easily.

<comment><USER4> ...if you don't mind using Windows...</comment></comment>


Flip Clock Rendered Completely in CSS (No Images) - <AUTHOR> http://attasi.com/experiments/flip-clock/ <comment><USER2> Implement seconds please; I don't have the patience :)</comment>


ReDoS: Regular Expression Denial of Service - <AUTHOR> https://levelup.gitconnected.com/the-regular-expression-denial-of-service-redos-cheat-sheet-a78d0ed7d865 <comment><USER2> _" Your regex engine uses a slow regex matching algorithm. This is the case for the regex engines built into most programming language runtimes — this includes Java, JavaScript (various flavors) and Node.js, C#/.NET, Ruby, Python, Perl, and PHP. On the safe side, Go and Rust both use fast regex engines, and Google's RE2 library is fast as well."_

I don't feel like "slow" and "fast" are the right adjectives here. Perhaps some form of "backtracking capable" instead of "slow".

Edit: For example, the jit version of pcre2 is often faster than Rust's re engine. But it still supports backtracking and can be "dos-ed".

<comment> GuB-42 I don't know if it has a particular name, but it is a common problem: fast average case, slow worst case.

A common example is the quicksort algorithm. It is often considered the fastest sorting algorithm in the general case but it is still O(n²) in the worst case. According to statistics, it should never happen in practice, however, with cleverly ordered data, it can. That's why some libraries prefer to use a slightly slower algorithm (ex: heap sort) but with a O(n.log(n)) guarantee, so that it can't be DDoSed.

Unbalanced binary trees can have the same problem, on random data, they work fine, but improperly used, they degenerate into much slower linked lists. Hash tables can also be exploited if they don't used a cryptographically secure hash function, and these are rarely used because they can be so slow as to negate the advantage of using a hash table in the first place.

<comment><USER3> >cryptographically secure hash function

I doubt that would help you. Hash tables take the hash and mod it by the size of the array. That will lead to collisions after the mod even if it's essentially impossible to generate collisions before the mod.

What you actually need is a secret hash function, so attackers don't know what the values hash to. This is done using a keyed hash function with a secret key.

</comment></comment></comment><comment><USER4> [ disclosure: I designed Hyperscan and worked on it 2006-2017 ]

This is a rather old concept, but as long as people keep using backtracking regular expression matchers, I suppose it's relevant.

What would be intriguing would be ReDoS against robust matchers like RE2 and Hyperscan. Both have their own potential performance corners that could be exploited, especially when matching large numbers of patterns (more Hyperscan's bailiwick than RE2).

For a sufficiently large pattern (or, rather, one that builds a sufficiently large DFA), RE2 could be forced to stay in its slow path by an input that prioritizes trying to head for an unbuilt DFA state. An attacker could attempt to tune this to stay on the edge of RE2s heuristics to fall back to NFA matching.

Alternately, NFA matching in RE2 is quite slow, and there are presumably ways to ensure that the slowest paths (probably involving large numbers of states being on) are traversed.

Hyperscan has its own performance corners - the dumps produced by Hyperscan's compiler could be examined to discover which "literal factors" it's using, then inputs crafted to blast those literal factors. There's a good deal of trickery to try to avoid getting caught by these kind of "overly frequent literal factors" so it's probably harder than one might think - but I don't doubt an attacker could make life difficult for Hyperscan.

Once into the NFA/DFA engines in Hyperscan, an attacker could ensure that the engines can't ever use their fast acceleration paths.

Note these aren't exponential blowups in performance. However, hitting one of these systems (RE2 or Hyperscan) with a 'constant factor' of extra work could be quite significant.

</comment><comment><AUTHOR> This is a "technical two-pager" of my doctoral research about regex denial of service.

<comment><USER4> I looked through this. I'm curious as to how you managed to slot in a small reference to Hyperscan (my baby for many years) while writing a thesis about regular expression performance problems.

You cite us twice; once as a source on what "dominated" means in a graph theoretic sense (?) and once to falsely suggest that Hyperscan is somehow "domain specific". To the extent that Hyperscan is focused on scaling up to larger-scale pattern matching (unlike RE2) it is suitable for a domain that other regular expression matchers are not suitable for, but there's no reason that you can't use Hyperscan in a general purpose domain.

The fact of the matter is that large scale regular expression matching, where it occurs in domains that are highly performance-sensitive, is a extremely difficult problem that is largely solved - in a limited way. No-one sensible builds an IPS or a NGFW and expects to be able to do backreferences and the usual menagerie of backtracking-only features (recursive subpatterns!).

The various outages that have happened since - people tripping over performance problems that were widely understood in the industry in at least 2006, if not earlier - are examples of people wilfully using the wrong tools for the job and being surprised when they don't work.

There's a niche for faster backtracking matchers, but most of the usage of regular expressions where anyone cares about performance is already squarely in the "automata" world and is done by either Hyperscan, hand-rolled software at network shops or acceleration hardware like the cards from TitanIC (now Mellanox). The backtracking formulation is not only subject to all the superlinear guff, it's also incredibly poorly suited to matching large numbers of regular expressions at once.

<comment><AUTHOR> (This is a repetition of my replies to your thread on Twitter).

My goal was not to prove that super-linear behavior is possible, but rather to understand questions like:

1\. How common are such regexes in practice? (~10%)

2\. Do developers know it? (<50%)

3\. Do they use specialized regex engines like RE2 or HyperScan? (Not often)

These are not theoretical advances. But I believe that my work improved our understanding of practice, and that it will let us ground future decisions in large-scale data instead of opinion.

Are there other regex questions you think are worth a look? I'm all ears!

I apologize if my treatment of HyperScan was offensive to you. My understanding from surveys is that developers typically use the regex engine built into their programming languages. I therefore focused on those engines, not on standalones like RE2 and HyperScan.

Once RE2 and HyperScan reach widespread use (I hope my research moves folks in that direction!), understanding their weaknesses will be an interesting next step.

</comment></comment></comment><comment><USER5> In one place, you say that programmers should pre-validate that inputs are not long. I would suggest quantifying that somehow. I suspect some developers will not realize that a 30 character input is "long".

<comment><USER6> At the same time some sites/systems impose too strict size limits which makes impossible to enter e. g. a long name or a long address. And such problems are almost inevitable if a programmer makes assumptions about input data based on a limited personal experience.

[https://github.com/kdeldycke/awesome- falsehood](https://github.com/kdeldycke/awesome-falsehood) tries to address this.

</comment></comment><comment><USER7> The paper _Regular Expression Matching Can Be Simple And Fast_ [1] has a time complexity plot that clearly shows how backtracking engines are more exploitable than finite-automata engines.

[1]: [https://swtch.com/~rsc/regexp/regexp1.html](https://swtch.com/~rsc/regexp/regexp1.html)

<comment><AUTHOR> Interestingly, the backtracking engines can also be viewed as using automata. The trouble is actually in how they _simulate_ the automaton. They use backtracking -- like a depth-first search. Since they don't remember where they've been, this leads them to a lot of redundancy. Engines like RE2 use a lockstep approach instead -- like a breadth-first search. They work their way down the search tree level-by-level and so don't have to repeat themselves.

Practically speaking, the slow regex engines don't always build NFAs. Instead they may follow a grammar-directed approach. But the NFA is a valid model of that simulation.

</comment></comment><comment> steve-chavez I learned about ReDoS through a PostgreSQL bug. On an old pg version(9.4.5), the following regex expression made pg hang in an infinite loop.

      select 'anystring' ~ '($^)+';

Of course that was patched a long time ago, but since then I've avoided exposing regex functionality to end users.

</comment><comment><USER8> This isn't a cheat-sheet. I expected a PDF with one or two pages of very condensed key information, not a long web article.

<comment><USER9> Ok, we've de-cheat-sheeted the title above.

<comment><USER8> Great. Much better now.

<comment><AUTHOR> Thanks, folks!

</comment></comment></comment></comment><comment><USER10> It's great to see more introductory ReDoS material! I took a deep-dive on ReDoS myself recently and found the material available to be somewhat lacking, especially for beginners. Over the course of my investigation I found some interesting bugs in big name projects and created a few blog posts as an introduction to the bug class:

* [https://blog.r2c.dev/2020/finding-python-redos-bugs-at-scale...](https://blog.r2c.dev/2020/finding-python-redos-bugs-at-scale-using-dlint-and-r2c/)

* [https://blog.r2c.dev/2020/improving-redos-detection-with-dli...](https://blog.r2c.dev/2020/improving-redos-detection-with-dlint-and-r2c/)

The culmination of this work was a Python regex linter that could automatically detect ReDoS expressions with fairly high accuracy - Dlint's DUO138 rule: [https://github.com/dlint- py/dlint/blob/master/docs/linters/D...](https://github.com/dlint- py/dlint/blob/master/docs/linters/DUO138.md).

In my opinion, the best solution, as this article mentions, is to avoid the bug class altogether by using something like RE2 when possible. Nevertheless, I found ReDoS to be a really cool bug class at the intersection of computer science and software engineering.</comment>


Asciifi - an ASCII art converter for a more civilized age - <AUTHOR> http://asciifi.com/

<comment><USER2> Haha, nice — I'm the developer if anyone has any questions (it's using a canvas element to convert images/data URIs to ASCII art).

Also, here's a link to the Github repo: <https://github.com/zachwill/asciifi>

<comment><USER3> I wonder which algorithm you're using? From very quick testing, it looks like you're picking characters to represent various grayscale values, but I'm not sure that you're taking the shape of the characters into account like other converters do.

<comment><USER2> I used a combination of Tab Atkins' and the MooTools ASCII art (<https://github.com/khrome/MooAsciiArt.js>) algorithms. The four ASCII options came from those two libraries, as well (I played around with the values on various pictures until I found ones that I thought worked the best).

You can also take a look at the Asciify and AsciiCharacter classes in the CoffeeScript file ([https://github.com/zachwill/asciifi/blob/master/static/js/ap...](https://github.com/zachwill/asciifi/blob/master/static/js/application.coffee)).

<comment><USER3> OK, and it seems that those algorithms only take the grayscale into account.

Compare <http://paste.fulltxt.net/:gh> (your output) with <http://paste.fulltxt.net/h-,:wiS> (aalib's output). This probably isn't the best choice of image, but you can still see how aalib approximates the edges of the drawing with all sort of characters.

<comment><USER4> >you can still see how aalib approximates the edges of the drawing with all sort of characters.

Wonder if that makes any sense for video, though?

</comment></comment></comment></comment></comment><comment><USER5> I don't consider auto generated ASCII figures (from aalib or libcaca or similar) to be art. To me, art implies there is an artist behind the work of art or the technique used to generate it.

Real artists do their ASCII art 7 bits at a time.

<comment><USER6> In that case the developer of the converter (library) is the artist. I'm sure there's a lot of creative input involved in auto-converting a raster image into an ASCII figure.

</comment></comment><comment><USER7> Real artists work in ANSI

<http://sixteencolors.net/>

<http://artscene.textfiles.com/acid/>

<http://artscene.textfiles.com/ice/>

</comment><comment><USER8> It is not very often you hear that song out in the wild. Nice.

For anyone interested it is called "fetts vette"

<comment><USER9> I thought the opposite: ugh, it has some shitty (for my taste) music, lets just close it. :-/

</comment></comment><comment><USER10> The site declaims "crappy PHP scripts", yet it is broken for me (on Safari 5.1.1) :)

There are two copies of the video: [http://dl.dropbox.com/u/1237941/Screen%20Shot%202011-11-28%2...](http://dl.dropbox.com/u/1237941/Screen%20Shot%202011-11-28%20at%209.00.44%20PM.png)

<comment><USER2> Just pushed a change to the way the video is embedded — hopefully that takes care of the bug.

</comment></comment><comment><USER11> Uploaded my favorite photo of our 12 week old daughter in the hopes that I could stuff it into the repo of some new project. When attempting to adjust the line width, Chrome went "Aw, Snap!"

Would love to see this again when all the kinks are worked out.

<comment><USER12> Sometimes, as a web developer, you have no consistent way to diagnose these issues. We found an issue using drag and drop uploads on one of our sites where if you uploaded the same image in chrome, one after another, it would crash. So I wouldn't give all the flak to the developer, as it might be chrome.

</comment></comment><comment><USER13> Why the #eee on #fff color scheme? It took me a long time to realize that the white blur in the scroll area was changing, and that if I highlighted it it looked like an image.

Turn up the contrast so we can see it!

</comment><comment><USER14> I am having a hard time understanding the purpose of the video on that page...

<comment><USER15> Did you notice the contents of the text box change while the video is playing?

<comment><USER14> I did not, my browser window was not large enough to view both at once. Even so, this strikes me as a very strange use of a flash video.

<comment><USER16> It automatically scrolls down once you start playing the video.

<comment><USER14> Well, that much it does not do in my browser.

</comment></comment></comment></comment></comment><comment><USER17> Hmm, it would be interesting to try to use this to generate ascii heightmaps for games out of images.

</comment><comment><USER18> props on the mc chris!</comment>


Ask HN: How to get recognised by the recruiters of companies like Apple,Google? - <AUTHOR> How to get recognised by the recruiters of Big companies like Apple, Google? What they look in resume and what should you have done before applying? <comment><USER2> Not personal experience, but a ex coworker of mine is in the core team of a programming language and one of the top contributors there plus doing a lot of review work. He would get offers from all the relevant companies on a regular base just based on his Github activity.

</comment><comment><USER3> One person I know was from very good college and he got calls from recruiters from big companies.

</comment><comment><USER4> Make friends with people who work or worked there and get someone to refer or introduce you.</comment>


How robotic delivery will disrupt the grocery industry - <AUTHOR> http://venturebeat.com/2017/03/05/how-robotic-delivery-will-disrupt-the-grocery-industry/ <comment><USER2> If we really can crack automated delivery it will drastically change our economy, I think it would be hard to dispute that. The whole idea of a "retail store" makes less and less sense as delivery costs fall.

And I'm pretty sure we'll eventually crack automated delivery, but as they mention, the problem is that existing buildings are not configured for it and it will take a long time for them to get reconfigured, particularly since apartment entrances/roofs, etc are all shared resources.

The author's company, Savioke, seems to be targeting hotels, which certainly makes sense as a go to market strategy, but further reinforces how this would likely struggle in more typical settings for the foreseeable future.</comment>


Flowbox 1.7 – the most powerful video processing startup - <AUTHOR> https://flowbox.io/ <comment><AUTHOR> Hi guys! I'm Wojciech Danilo, one of the early Flowbox founders. I'm not actively working there right now (I'm working on [http://luna- lang.org](http://luna-lang.org)), but I truly love these guys. They are brilliant engineers, full of passion and they create an awesome software.

Flowbox is a node based VFX platform allowing for the fastest rotoscoping and image compositing on the market. If you like Houdini-like workflow, you should fell in love with the ideology here. Seriously, check out the video: [https://www.youtube.com/watch?v=hwLcevH1VH0](https://www.youtube.com/watch?v=hwLcevH1VH0)

There is a live webinar about Flowbox by Mikolaj Valencia (CEO) TOMORROW here: [https://web.facebook.com/events/666426783714447](https://web.facebook.com/events/666426783714447) , so please join us there!

We'd love to answer any questions here as well! Thank you for your support! :)</comment>


Startup Quote: Tony Hsieh, co-founder, Zappos - <AUTHOR> http://startupquote.com/post/6412363646

<comment><AUTHOR> Learn by doing. Theory is nice, but nothing replaces actual experience.

\- Tony Hsieh (@ZAPPOS)

<http://startupquote.com/post/6412363646></comment>


RIP 8 Bit? - <AUTHOR> http://www.drdobbs.com/blog/archives/2010/04/rip_8_bit.html <comment><USER2> Ugh, dislike sites that require an independent registration to post a single comment.

On topic, I doubt lower-power microprocessors will be going anywhere for a while. Sure, you can stick an ARM in there, but what about battery life? You might save money and effort, but if power consumption is an issue, you have to weigh your priorities.

</comment><comment><USER3> I don't get the author's point. It seems to be "because 8-bit micros are so cheap, don't design with discrete components". This is valid and has in fact been the goal since the MOS 6502 in 1975 ($25 vs. $300 for an Intel 8080 or Motorola 6800). But he goes on to say "thus, 8-bit micros are themselves going away".

The second part is just not true, nor does he offer any evidence for it. He points out this deficiency in his argument himself by noting that many 555s (mid-70's design) are still available.

I think a better point to make is to watch the applications for parts as they age. You could buy 8-bit home computer from about 1975-1991. You could buy a 16-bit workstation from about 1981-1995. You can't buy either of those new today. Even your home office router is 32-bit.

However, 8-bit CPUs are still almost everywhere today. I designed a new hobbyist device with an 8-bit AVR with built-in USB DMA engine. ([http://rdist.root.org/2009/01/21/introducing-xum1541-the- fas...](http://rdist.root.org/2009/01/21/introducing-xum1541-the- fast-c64-floppy-usb-adapter/))

The TI MSP430 series uses microamps and run off a small battery. The 8-bit CPU will always exist, it will just have more specialized onboard peripherals and be used for different applications.

One unit of measure I like to use is "word size vs. clock rate". For example, a Intel Core Solo running in 32-bit mode at 2.0 Ghz can represent ~2 seconds of clock cycles in a native word. A 16 Mhz AT90 can represent 0.004 seconds in its 16-bit word (actually 2 registers since it is 8-bit). So in general, the AT90 is a bit harder to program than the Intel CPU since you have to worry more about multi-byte arithmetic.

Another unit is clocks per byte of IO. With a gigabit ethernet adapter, the Intel machine has only 16 clocks/byte. Running at the full USB rate of 12 Mbit/s, the AT90 has 10.66 clocks/byte. So they both need hardware support to keep the pipe full.

It's fun to compare applications for various CPU types, but I don't think 8-bit is going to disappear even in the next 20 years.

</comment><comment><USER4> well... yes, hobbyists have more choices about what to use - a 555 or a PIC or a laptop - and there's more bang for the $ with the new arm cortex chips. But when it comes to products, there are some very serious constraints with pricing and power usage. you can run a 555 on a single AAA battery and draw microamps, costs pennies, have multiple suppliers and have less complexity too. there are plenty of times you'd want that over a microprocessor.

Interestingly, from discussions with toy designers (barbies and such, with talking or moving parts) they all use the same 4-bit processor core that has a crummy audio playback module, some i/o and sensors. 4 bit! but its dirt cheap and well understood.

</comment><comment><USER5> It's a little ridiculous that we can now get a microcontroller with a 50 MHz ARM Cortex-M0 core for $0.85 in bulk. Imagine how things will be in a few years (and a few more process nodes).

</comment><comment><USER6> NXP (<http://ics.nxp.com/products/mcus/cortex-m0/>) and Energy Micro (<http://energymicro.com/>) are actively trying to kill the 8-bit MCU with their ARM Cortex-M(3|0) offerings. Very low power consumption on these chips.

But, still, they require a lot more external circuitry than an MSP430 or (SiLabs)C8051.

</comment><comment><USER7> Off topic, but I thought Dr. Dobb's Journal was dead. Or was that just the print edition.

<comment><USER8> Dr. Dobb's is certainly closer to being dead than 8-bit microcontrollers are. It ceased publication as a standalone magazine in February 2009; it's now online and a monthly section in _InformationWeek_ called _Dr. Dobb's Report._</comment></comment>


NSA upgrades encryption recommendations to be quantum safe - <AUTHOR> https://www.iad.gov/iad/library/ia-guidance/ia-solutions-for-classified/algorithm-guidance/cnsa-suite-and-quantum-computing-faq.cfm <comment><USER2> ...and Chrome reports the HTTPS cert for that URL as unsafe. How ironic.

</comment><comment><USER3> Wow!! its great news</comment>