Stack Overflow's new Gaming site is in public beta - <AUTHOR> http://gaming.stackexchange.com/

<comment><USER2> We'll see how many gamers actually jump through the hoops and confusion that is openid. It's one thing to get programmers or IT to use it and adopt it. It's a whole different story to get an average gamer to use it. These are the same distrustful stubborn people who have been getting hacked for decades by giving up too much personal information. In addition many gamers don't want their game identity anywhere near their real identity. This is compounded by those same gamers being the most active participants and most ardent in their attempt to separate game and real identities.

Now - even though technically they should prefer openid over normal login - that doesn't mean they'll roll with it. There is a lot more involved in making a decision when it breaks convention like their login.

Clearly I prefer the direction that HN and most other startups are going - away from openid. I don't like or agree with limiting users to openid for years old 'industry politicking' reasons. But in the end I use the content and don't give back, so the loss is on the community and site not me. On most stackexchange sites that don't have critical mass, simple decisions like this can still cause a huge problem.

EDIT: Grammar Syntax ...

<comment><USER3> The UI surrounding OpenID has gotten better in the last year. In the vast majority of cases it's not you pasting some URL, you just pick the provider you are already using to login with and go.

Jeff has posted some stats (kinda dated now) about the utter dominance of people using their existing Google ID to log in with:

[http://meta.stackoverflow.com/questions/31021/what-openid- pr...](http://meta.stackoverflow.com/questions/31021/what-openid-providers- should-we-feature-on-the-login-page)

<comment><USER4> in such case, from usability standpoint, why not design login screen with Google ID in epicenter and other login options as secondary. would be less confusing to average non-techie

</comment></comment></comment><comment><USER5> The best part about this site is that people coming to it will understand that they aren't getting access to the developers (unless they come to visit.) That should rule out half the trolls. The other half will be down-voted.

<comment><USER2> Excellent point. Nothing is more frustrating than forum posts that are clearly trolling for dev responses or to make statements they hope devs will see.

Ironically most of these questions should be directed at producers and designers not developers. Yet the catch-all name sticks.

</comment></comment><comment><USER6> Very cool. I was just wondering where to post a game design job opening.

<comment><USER7> If I'm not mistaken, you'll want to wait for the Game Dev version instead:

[http://area51.stackexchange.com/proposals/2825/game- developm...](http://area51.stackexchange.com/proposals/2825/game-development)

<comment><USER8> Private Beta is underway <http://gamedev.stackexchange.com/> Will open for business on July 21st.

</comment></comment></comment><comment><USER9> Funny how about 1 out of 10 posts is about dwarf fortress.

<comment><USER3> If ever there was a game that could really benefit from a strong and vibrant question and answer community it would be DF.

</comment></comment><comment><USER4> the niche has potential, but what's the deal with domain name? it could use some imagination and 24 characters is just little too much

</comment><comment><USER10> Great CSS design.

</comment><comment><USER11> It's incredible how he keeps expanding into viable markets. Has he opened any "stack" sites that didn't get immediate traction?

<comment><USER12> it's not incredible, it's by design :) We only open the sites that we know will get traction (through the "Area51" process, see <http://area51.stackexchange.com>). Right now it looks like we've got about 10 sites that are pretty much guaranteed to work, then we'll probably take a couple of weeks to study the data in detail to see what the real success factors are.

<comment><USER13> As someone also working on building a community site, I hope you or Jeff could one day write down some thoughts on creating a community from scratch. Considering your IMO truly amazing successes, I'm sure you have a lot to offer people like me.

<comment><USER14> Step 1: Get popular. Step 2: Turn followers into early adopters. Step 3: Profit.

<comment><USER13> I was hoping for something a mere mortal like me might have a chance at. If the first step is "Get popular"... :)</comment></comment></comment></comment></comment>


Scalable Bayesian Optimization Using Deep Neural Networks - <AUTHOR> http://arxiv.org/abs/1502.05700

<comment><USER2> In short, these guys are using deep neural nets to find good hyperparameters for training other deep neural nets, and this works as well as a Gaussian Process[1] but is more scalable and can be parallelized, allowing for faster optimization of hyperparameters.

\--

[1] For example, like Spearmint: [https://github.com/JasperSnoek/spearmint](https://github.com/JasperSnoek/spearmint)

</comment><comment><USER3> I haven't read the paper, just skimmed through it, but isn't this a sort of unreasonable comparison? Full GPs are O(N^3) because they do inverse on a covariance matrix that basically allows every datapoint to be related to every other datapoint. There exists a bunch of literature on sparse approximate Gaussian processes which iirc are basically O(N*M) where N is the data and M is basically the size of some set of active points (which is tunable). That seems like the natural point of comparison to their neural net approach. Broadly, in their deep net, they've chosen some architecture which determines the number of parameters. It seems like either the neural net or the sparse GP approach can claim to have runtime which is linear with the data size, and is doing less work than the full GP for basically the same reasons.

</comment><comment><USER4> As a completely trival point, one of the co-authors only has one name, Prabhat. Google, to its credit, has his work page as the first result.</comment>


Programming is a Super Power - <AUTHOR> http://programmingzen.com/2011/03/21/programming-is-a-super-power/ <comment><USER2> This week, I'm using my super power to replace a sign-up sheet in a clipboard that once hung on an office door. Is there any menial task I cannot defeat? I am Invincible!

<comment><USER3> That's along the lines of what most programmers do, and each defeat is chipping away at inefficiency. You're doing your part in the greatest productivity revolution in history :)

<comment><USER4> So something that could be done by anyone with a paper, pen, and the technical know-how to operate a ruler, is now replaced by someone with a specialized domain knowledge that is creating something that will need to be maintained and likely obsolete in a few years. And they call this progress.

<comment><USER5> Perhaps I could interest in you in a sales position with my company, <http://73primenumbers.com> ?:-)

<comment><USER6> Are Enron, Bernie Madoff and Worldcom really your clients? Might need a fix up there :)

<comment><USER5> I guess I should update that and add Bear Stearns.

</comment></comment></comment></comment></comment></comment><comment><USER7> It really isn't. Can we please stop the 'superhero' meme?

I'm not a superhero. I'm just a person who knows a few programming languages and can hack things together. It's not a great feat: it's just typing bits of logic into a computer. If you can think logically and with a reasonable degree of abstraction, you can do it too!

We should be shouting from the rooftop that it's fun and easy and giving children lessons in Python or whatever, not turning ourselves in to a priesthood just to boost our own egos.

The best sort of superheros are modest and work quietly in the background rather than shouting about how awesome they are. Can we try that?

<comment><AUTHOR> I think that I may not have made my point clear. The point is not that we are superheroes for knowing how to program, but rather than learning to program is so cool that it's like having a super power, for what it enables you to build and do. If you read the article, you'll see that I mention how even "product guys" should learn how to program. In my next post, for example, I'll talk about how to learn programming as an absolute beginner. When it comes to programming I try to take a stance as far as possible from elitism.

<comment><USER8> Carpentry is a Super Power. The point is not that we are superheros for knowing how to build, but rather that learning to build is so cool that its like having a super power, for what it enables you to build and do.

<comment><USER9> Carpentry _is_ a super power. Just about every girlfriend I've had has been very turned on by guys who can build things with their hands; my brother made a (successful) engagement ring out of 5 different kinds of Amazonian hardwoods that looked amazing. I think people like _why would agree that learning to create things, regardless of the medium, is so cool that it's like having a super power.

<comment><USER8> By this standard, pretty much anything that doesn't involve trivial desk job paper pushing is a super power. Bricklaying? Check. Welding? Check. Mech eng? Check. Digging ditches? Check. Everyone's special, Dash.

<comment><USER9> I see a fairly natural superpower line with welding and mechanical engineering (alongside machining or some rapid prototyping ability) on one side, and bricklaying, ditch digging, etc. on the other side.

Bricklayers and ditch diggers don't often think of something cool and then make it happen with those particular skills.

<comment><USER10> I've been learning to weld (using the TIG process) and it does have that cool mixture of being able to produce amazing, strong physical objects and also being Dark Magick for the average person. The TIG process in particular is a mixture of science and art that makes you feel like a wizard when you start getting good at it.

Watching a professional bricklayer work is pretty mesmerizing. The really good ones achieve this rhythmic action where they seem to manage to quickly and accurately place and set every brick while taking advantage of inertia of the moving bricks to expend the minimum physical energy possible.

I don't think there are any ditchdiggers left in the united states though, only bobcat or backhoe operators.

<comment><USER11> I've seen robotic welders, but I've yet to see robotic bricklayers.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> What does it mean to be superhuman?

We always think of superman or spiderman, people with the strength and powers of minor deities. But really, somebody who is a mere 1% faster at something than every other human on the planet is "superhuman".

Imagine a person who was 5% smarter, stronger, faster, etc. than any other human on the planet...would they not be a kind of "superman"?

My day job has very little to do with development, it's much more a regular old office type job (one of the reasons I'm so into working on my startup with my wife, a chance to dust off and regularly use long dormant skills). What's funny is on occasion I'll pull out a nerd tool, perhaps write a little Perl script to automate some mind-numbing task, and for that moment my co-workers think I'm a superhuman. What's even better is when I can teach them something that punches up their abilities a bit.

Really simple things, like navigating Excel better, or teaching them simple regular expressions. I taught a colleague some regex and he has payed it forward by single handedly rewriting the process model where he works, turning a grueling multi-week process of copy-and-paste (by hand) into a 30 minute regex exercise. He freed up 30 people to do other stuff because now that excruciating part of their business process has simply _poof_ gone away and now they deliver 3-4 weeks earlier.

(I asked him why they didn't just use a technical solution earlier. He said his management listened to the complaints from the staff about the problem and brought in a bunch of consultants who recommended a very expensive IT effort, complete with 230 page slide deck. He fixed it with a $27 TextPad license and a day going over regex with me. Now he passes along this little sliver of golden knowledge, infecting everyone he can with it. But alas, most of his co- workers mere accept that _he's_ made it faster, and think they couldn't possible do that themselves.)

It's not something intrinsic in developers that makes us superhuman, it's merely a willingness to learn and sweat through all the mental work. A person can improve 5% from where they are simply by a bit of effort, 5% isn't all that much -- does that not make them superhuman with respect to themselves? Can superhumanity be earned?

</comment><comment><USER13> I like the spirit of what's being said. It's close to something I've been telling a few folks recently which is this...

Being a software developer in this day and age is like being a magician (wizard?). Sure those of us that know this voodoo magic find it commonplace but to those outside it really is magical. I mean to be able interact with people around the world with technology and have so much automated in finance, retail, search, manufacturing, etc. is truly amazing if you stop and think what we can do today that we couldn't do 20 or even 10 years ago.

I don't feel like a super hero, more like a accomplished wizard with some tricks up his sleeves, but willing to help others learn the ways to control information. Maybe a little corny, but I hope you all get the general understanding.

</comment><comment><USER14> As per some of the other comments,I would prefer that we don't take the "super hero" meme too far, especially since the barriers to entry are decreasing every day as new, even easier to use tools, are rolled out. (For example, back in the 90's, anyone with solid power point skills was a "Super Hero" to those who needed presentations put together quickly and cheaply.) Being a really good miner/gold panner in the 1840's would have also given a person "super hero" like powers to the extent they could participate in the gold rush.

However, one thing that still stands out to me about programming is something the Paul G. said in one of his essays. I don't remember which one and don't have time to look for the exact wording, but it was something along the lines that programming/IT was one of the last areas where someone, through their own hard work, ingenuity and innovation, working in a "garage" could create phenomenal wealth. Although very few will ever achieve Gates/Zuckerberg type wealth (or even any kind of wealth at all), the very fact that it is _possible_ is appealing to many. Plus, it's fun along the way...

</comment><comment><USER15> To paraphrase Erasmus: In the land of the blind, the one eyed man is a super- hero.

<comment><USER16> Or, paraphrasing Saramago: In the land of the blind, the one eyed man is a monster.

</comment></comment><comment><USER17> A long time ago I heard someone say that software programming is the biggest kick this side of black magic, and I still agree.

It still blows my mind to think that I can manipulate information by manipulating the states of very small switches.

It _is_ black magic.

</comment><comment><USER18> When you put it that way, _The Social Network_ seems a lot like Spider-Man with computers.

</comment><comment><USER19> "Today we are standing on the shoulders of giants, and are able to access amazing development tools, frameworks, and libraries "

Being able to make an impact mostly depends on how many other people have the skills you have. So while I am still optimistic, I still like programming, etc... I think making an impact today as a programmer is not easy. Me, who has been programming for more than 20 years from now (I started at 12) I think my business and product design knowledge is what is to be developed further to be able to have a more balanced knowledge. It is not easy, I am better and better, but my ideas are still too technical. I have to concentrate not to be too technical. Of course for a business guy the other direction makes sense (to develop technical knowledge besides business knowledge to be more balanced.)

</comment><comment><USER20> Almost got it right: good programming skills _and_ the ability to get your head into different problem areas of business and/or science is the super power.

</comment><comment><USER21> It's a lot more like being able to read and write in medieval Europe.

</comment><comment><USER22> I totally agree with this. We good skills we could do unlimited things. Good ideas are a dime a dozen, but implementation is priceless. We have the power to implement them.

</comment><comment><USER23> Go us!</comment>


The World Is Embracing S.U.V.s. That's Bad News for the Climate - <AUTHOR> https://www.nytimes.com/2018/03/03/climate/suv-sales-global-climate.html?rref=collection%2Fsectioncollection%2Fscience&action=click&contentCollection=science&region=stream&module=stream_unit&version=latest&contentPlacement=1&pgtype=sectionfront <comment><USER2> I've noticed a growing number of people at my work's parking lot seem to have giant trucks, the type that barely fit into the parking space. Given that they work in IT (as everyone in the building does), I wonder why they need such large vehicles.

When my kids get bigger, I'm getting a Fiat (or something small). Seems like it would be more fun and less hassle.

<comment><USER3> Living in the South, this is all too common. All time favorite was a lawyer, had a lifted F-250 such that the lower bar was about crotch height on my 6'3" frame. It's a "display of virility." The look at me, I'm a real man. I smoke Marlboro Reds and write C++.

Fun Fact: With the rear seat down, a Honda Civic can fit reams of 2x4s just fine, with the trunk closed. I've done it plenty.

<comment><USER4> Any chance you can fit a 4x8 sheet of plywood into a Honda Civic?

<comment><USER3> Based on the "barrier" between the trunk and rear seat, likely not. You could fit it about half of the way in, and tie it down. Alternatively, Thule racks make it easy to haul over-sized lumber with a sedan.

</comment></comment></comment></comment><comment><USER5> Conspicuously missing is any attempt to put a number on how much greenhouse emissions would be saved if people who bought SUVs had bought sedans instead.

Also: if SUVs are 30% less efficient, it's the same as someone who chooses to live 10 miles from work versus 13 miles. That's a difference that wouldn't even register in conversation much less warrant a New York Times article.

<comment><USER6> I thought driving distance and speed were both targets of the New Urbanism movement? I would certainly support efforts to reduce them.

<comment><USER5> Driving into the city from the exurbs versus taking public transit, maybe. But even New urbanization would find it hard to get worked up over someone driving in from a slightly further suburb versus a slightly closer suburb. SUVs engender disproportionate reaction because of visibility.

</comment></comment></comment><comment><USER7> As someone who moves a lot of computer equipment around, the sedan was painful to work with. So I'm definitely attached to the RAV4 if mostly for the hatchback trunk and fold down seats. I don't have one, but hybrid RAV4s are on the market now.

</comment><comment><USER8> About 20 or so years ago, the big knock on SUVs was how dangerous it supposedly was for a much heavier vehicle to crash with a "normal" vehicle, e.g. a compact car. Does that hold any weight?

<comment><USER9> I think it depends what you're crashing into. Anything robust and stationary you're probably worse off. Fatal roll-over crashes were _significantly_ worse for SUVs in the 90s, but I believe modern SUVs are now much safer.

Accord to this graph ([http://bestride.com/wp-content/uploads/2016/10/deaths- per-ve...](http://bestride.com/wp-content/uploads/2016/10/deaths-per-vehicle- type-graph.png)) the safest vehicles seem to be large cars and midsized SUVs. Pickups and large SUVs seem really dangerous. With that said, consider the role of each class of vehicle: Large cars (station wagons, vans) and mid-sized SUVs are all likely "family cars."

</comment></comment><comment><USER10> Why haven't SUVs fallen prey to the soccer Mom curse yet? Station wagons and minivans fell out of fashion because they were family vehicles. That's what SUVs are now, yet they're still cool.

<comment><USER11> They're cool among soccer moms doing school runs and javascript developers. "Chelsea tractor" is the common ephitet, I think. Give it another 5 years and they will go the way of the minivan in the US.

(Problem is China, where they love to warm up US trends from a decade ago, and amplify them hundredfold...)

<comment><USER10> I predicted the same thing about 10 years ago. I believe we'll both be right, eventually. But I'm afraid that your 5 year estimate is too optimistic.

</comment></comment></comment><comment><USER12> Or just buy a Model X. :p

<comment><USER13> Well, they're 2300-2500 kg. That's about the same as large SUVs, given the battery weight. Tesla Model 3 are 1600-1700 kg, vs 1200-1400 kg for compacts generally.

Maybe make a hardened Tesla compact. Add more batteries in the front, plus a serious steel space frame, and depleted uranium armor :)</comment></comment>


Basecamp: A Clear and Present Brand - <AUTHOR> http://www.myintervals.com/blog/2009/08/31/basecamp-a-clear-and-present-brand-of-project-management-software/

<comment><USER2> While it was interesting to read about the Basecamp transition (hadn't heard of it before), this is simply an advertising piece for their product.

</comment><comment><USER3> What do we have here? A company that clearly tries to be accessible and friendly, and instead comes across as sleazy and manipulative.

This kind of marketing can backfire -- I don't recommend it.

</comment><comment><USER4> This link is just a commentary on the real action - here's the official 37S announcement: <http://basecamphq.com/transition>

</comment><comment><USER5> Stick to the subject - changes to Basecamp. I don't care what your product does.</comment>


OpenBSD won't update Firefox, advises users to switch to ESR - <AUTHOR> https://undeadly.org/cgi?action=article;sid=20200109141600 <comment><USER2> I am arguing about this on FreeBSD forums - from an end user perspective. I think the benefits of saving disk space by sharing libraries do not justify the inconveniences we, desktop BSD and Linux users, obtain from being forced to disrupt and upgrade hundreds of installed software packages, just because one single desired upgrade requires to pull its dependencies. The whole ecosystem falls down like a card house - once in a while I have to say "screw it" and auto-update more than a thousand packages, praying my Python and other projects survive, just because I want a browser update or a security fix.

I wonder if there are others who support this opinion that desktop Unix has very complicated future unless complex apps will begin to bundle their own libraries.

<comment><USER3> RedHat's "streams" model will certainly do a much better job of handling this than the other distributions do today. I hope that the need for having multiple parallel versions of a dependency coexist is incorporated into the other distros, because I've lost a lot of sanity this past two decades to the assumption that "one installed version should be enough for anybody" on Linux and BSD servers.

<comment><USER4> AppStream does not allow installation of multiple versions of the same app AFAIK. I believe this is what they refer to in the clumsy sentence "The one disadvantage of Application Streams from SCLs is that no two streams can be installed at the same time in to the same userspace. However, in our experience, this is not a common use case and is better served using containerization or virtualization to provide a second userspace." in the linked article in the sibling comment.

<comment><USER3> Ugh, I did not understand that. I'm so sorry. If I could edit my post to retract it, I would. The NixOS comments from others should still be valid.

</comment></comment></comment></comment><comment><USER5> The title on this story makes it sound like OpenBSD stopped updating Firefox altogether. That's not the case, it just stopped backporting non-ESR Firefox updates to its -stable branch.

</comment><comment><USER6> > being too complicated to package (thanks to cbindgen and rust dependencies)

Can anyone explain what is behind? Is it symptomatic for any programs with those dependency? Especially curious about rust because it seems to be hyped very much lately (I have almost zero rust experience and even less bias about it, just being curious)

<comment><USER7> They don't want to need to update Rust in order to do a presumably small security patch on Firefox.

Which honestly sounds like a totally awesome and legit reason to use -esr. Keep -current current with upstream, stable branch gets patches from firefox- esr.

Keep in mind stable patches to the ports tree are pretty rare on OpenBSD. They didn't do them as binary packages until fairly recently, either.

<comment><USER8> "presumably small security patch"

The security patch is actually quite severe and has been reported to be in active use.

[https://www.mozilla.org/en- US/security/advisories/mfsa2020-0...](https://www.mozilla.org/en- US/security/advisories/mfsa2020-03/)

[https://www.cisecurity.org/advisory/vulnerability-in- mozilla...](https://www.cisecurity.org/advisory/vulnerability-in-mozilla- firefox-could-allow-for-arbitrary-code-execution_2020-004/)

<comment><USER7> I meant small as in code size.

In a stable branch you want the size of changes to be small and targeted despite how severe the issue is. You don't want to take on new bugs from patches that aren't related to issues you want to see fixed.

<comment><USER9> If the change is so small, I don't see why they wouldn't be able to backport the fix? Don't upgrade firefox (and any dependencies), just fix the bug.

It would be a lot harder if the actual fix was more complicated and a much more complicated diff. Possible that master has diverged sufficiently from their version that backporting the fix would be unreasonable.

<comment><USER10> _If the change is so small, I don 't see why they wouldn't be able to backport the fix? Don't upgrade firefox (and any dependencies), just fix the bug._

As far as I understand, you cannot call it Firefox anymore if you deviate from upstream (which is understandable, because upstream doesn't want to get bug reports for custom changes):

[https://www.mozilla.org/en- US/foundation/trademarks/distribu...](https://www.mozilla.org/en- US/foundation/trademarks/distribution-policy/)

</comment></comment></comment></comment></comment></comment><comment><USER11> > OpenBSD-current users are not affected, www/mozilla-firefox update is > already committed and will be available soon on the mirrors.

</comment><comment><USER12> OpenBSD-current users are not only NOT affected by this, actually they just got Pledge and Unveil support in Firefox 71. [https://marc.info/?l=openbsd- ports-cvs&m=157539245010077&w=2](https://marc.info/?l=openbsd-ports- cvs&m=157539245010077&w=2)

If you don't know about Pledge and Unveil you can think of it as similar to Firejail sandboxing from Linux but on steroids. It dynamically limits the types of kernel calls and filesystem addresses a process can make use of so if a rogue thread causes a process to perform an illegal operation under the Pledge rules OpenBSD will kill the process with SIGTERM. Whats more Pledge and Unveil allow the process to execute whatever calls are needed when the program initializes itself but it will relinquish the privilege to run those calls for the remainder of the program's runtime once it no longer needs them (after init).

</comment><comment><USER13> So basically:

\- Firefox is hard to package so they won't package it (on stable).

\- OpenBSD-current users are not affected as firefox has already been committed.

\- Firefox-ESR is still maintained.

> (thanks to cbindgen and rust dependencies) on the stable branch (as this > would require testing all rust consumers)

Can someone explain what they mean with this? What have other non firefox rust consumers to do with firefox being packaged?

The best guess I have is that to package firefox they need to package cbindgen and rust. And if they package cbindgen and rust officially all packages using it would now need to be tested as now (potentially) all their dependencies have been packaged?? But this seems strange TBH.

EDIT: So I guess they still will package Firefox-ESR on stable? Which will have (or maybe already has) all that dependencies, too? So it's just about having to do that packaging less often?

<comment><USER3> It appears that they are unwilling to update to the latest Rust-stable release due to the testing burden on the OpenBSD-stable team; which then conflicts with the Firefox Rust update policy of, as I read it, 'latest Firefox stable will use latest Rust stable'.

[https://wiki.mozilla.org/Rust_Update_Policy_for_Firefox](https://wiki.mozilla.org/Rust_Update_Policy_for_Firefox)

<comment><USER13> Ok thanks, I guess this is somewhat understandable.

Through I wonder a bit why they don't automate the tests (maybe the computation cost?). (E.g. rust automatically runs the tests of all libraries/programs published on crates.io to find regressions, through that takes a day or so to complete).

<comment><USER14> Okay, suppose someone backporting a Rust update runs a big batch of tests and finds, say, two dozen packages with regressions.

Now what?

Spend two weeks investigating all the test failures? Backporting updates to these packages as well, all while users are patiently waiting for their Firefox to have its zero‐day fixed? Are the tests even correct? Were they failing before and nobody noticed?

And all this to only get _automated_ tests passing. Any regressions in behavior not tested are not noticed (or more likely, noticed by users much later, requiring further investigation at that point in time to narrow down the Rust backport as the cause).

In the meantime, this packager's work on other OpenBSD packages in -current (what most OpenBSD developers actually use day‐to‐day) completely stops.

That's some insight into the mindset of a software packager. Non‐security backports to language runtimes are a serious maintenance burden.

<comment><USER15> > Okay, suppose someone backporting a Rust update runs a big batch of tests > and finds, say, two dozen packages with regressions.

> Now what?

> Spend two weeks investigating all the test failures? Backporting updates to > these packages as well, all while users are patiently waiting for their > Firefox to have its zero‐day fixed? Are the tests even correct? Were they > failing before and nobody noticed?

Yes, people do exactly that. It's part of running a "rolling" distro, see e.g. the Debian Testing transition tracker at [https://release.debian.org/transitions/](https://release.debian.org/transitions/) \- These transitions are running essentially all the time; they're only "put on hold" as a first step in the process of making a new stable release. And even then, newer versions of packages such as rust can still enter stable as part of an "unrelated" security update.

<comment><USER14> > Yes, people do exactly that. It's part of running a "rolling" distro

And we do that too—for OpenBSD -current. But we have neither the manpower nor the interest to do such work for _old releases_.

<comment><USER16> There are many options to solve that:

* switch to a shorter stable release cycle (4 weeks, 6 weeks, etc.) with dynamic releases (e.g. if a zero day happens, fix current, and do a new stable release)

* switch to only supporting -current

* switch to something like Nix to allow stable users to "switch" some packages from stable to current, without having to bump their whole system (this would have allowed stable users to update their Firefox-stable to Firefox-current)

A good packaging process should not assume that downstream packages can be trusted to have meaningful processes. Relying on Firefox having -esr releases is a temporary workaround.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> For anyone else that wasn't aware, ESR[0] stands for extended support release, so an older Firefox that still has security patches back ported (like Ubuntu LTE I guess)

[0] [https://support.mozilla.org/en-US/kb/switch-to-firefox- exten...](https://support.mozilla.org/en-US/kb/switch-to-firefox-extended- support-release-esr)

</comment><comment><USER18> Can't the required rust version be (temporarily) treated as part of firefox then, and not bother building everything else using rust with that version?

<comment><USER3> It seems likely the OpenBSD would consider such a patch if it were presented to them, but they might also reject it due to ideals they hold that outsiders can't predict.

</comment></comment><comment><USER19> Is there a better alternative to Firefox? Of all the browsers it seems like the "least bad" choice (above Chromium, and other proprietary browsers) and I use it, but is there something safer, simpler, and more secure?

<comment><USER20> _Waterfox_ (with Web Extensions) or _Pale Moon_ (with XUL/UXP extensions)

<comment><USER21> If security is something you're looking for, "Firefox plus some ancient, unmaintained legacy code and patches jammed in by random third parties" is not substantially more appealing than just Firefox by itself.

<comment><USER22> Your description does not apply to the two examples given. It's obvious you don't even know what they are even if you knew what they were 5 years ago. Look again.

Pale Moon and the like aren't just ancient Firefox code. And without all the 'features' Firefox keeps adding in that are irrelevant to a browser that renders html and executes JS they're just as secure.

</comment></comment></comment></comment><comment><USER23> The problem seems to be one of command line interface.

In the C/C++ world, you specify the language version using a flag passed to the compiler. e.g. -std=c++98

In most other programming languages, you specify language version by installing multiple copies of the compiler/interpreter and running the corresponding version.

The C/C++ way works fine if your language spec is updated once every 3 years. It does not work fine for anything much more frequent than that. Until recently C and C++ were popular enough that the other approach didn't need to be accommodated. Now it does.

<comment><USER24> It's similar in Rust, you specify the language edition with a line in Cargo.toml.

[https://doc.rust-lang.org/nightly/edition- guide/editions/cre...](https://doc.rust-lang.org/nightly/edition- guide/editions/creating-a-new-project.html)

<comment><USER25> Rust language editions are not similar to C++ standard versions.

Every new version of the Rust compiler brings changes to the language, so the language you're actually using depends on the tuple (compiler version, edition), not just on the edition.

<comment><USER24> Rust language editions are similar but not equivalent to C++ standard versions, because compiling code written for an old edition with a new edition is not guaranteed to work, due to breaking language changes like new keywords.

But you are correct to point out that old Rust editions will get new language features _if_ they do not break existing code.

[https://hacks.mozilla.org/2018/12/rust-2018-is- here/](https://hacks.mozilla.org/2018/12/rust-2018-is-here/)

The release process claims that the changes in new Rust releases are purely additive and backward compatible; the only exception is soundness fixes, which I'd expect affect a negligible amount of code.

<comment><USER25> > compiling code written for an old edition with a new edition is not > guaranteed to work, due to breaking language changes like new keywords.

This is not at all similar to C++ standards, and the specific case being discussed in this post demonstrates exactly why!

Barring bugs in implementations, developers could develop against whatever version of the compiler they like, and as long as it supports the same language version, distro or OS maintainers wouldn't have to update theirs, and everything would work.

I worked on an open-source project that targeted C++11. It could build on basically any Linux distro you can imagine, even ones with very old versions of GCC. (it didn't support BSD, but for unrelated reasons).

This is the point the Rust project seems to miss when harping on about backwards compatibility: forwards compatibility is just as important.

<comment><USER24> Okay, I see what you mean; I guess if I were a Rust programmer I'd solve that by using rustup to install a fixed Rust release for development.

However the Firefox project has decided to always require the latest stable Rust release. [https://news.ycombinator.com/item?id=22022834](https://news.ycombinator.com/item?id=22022834)

In practice for C++ I've found it expedient to whitelist some subset of functionality from newer standards, because there's often useful features that already work in the major 3 compilers, but it'll be another 3 years until the last of the compilers adds the last obscure bits for full support of the new standard.

</comment></comment></comment></comment></comment></comment><comment><USER26> This is why FreeBSD doesn't do "stable ports" tied to a system release version. Stable ports are a very bad idea.

</comment><comment><USER27> The whole modality of a single package in a single configuration at a single version is broken and dead dependency-hell of yesteryear. Still, ports and packages collections mechanically and unthinkingly continue this failed and broken modality of wasted effort. Packaging multiple versions and multiple configurations side-by-side similar to Habitat (hab) and Nix independent is the only way to go. This approach supersedes vendored dependencies because it allows garbage collection and sharing of identical dependencies rather than duplicating them. Furthermore, it allows real choices without an either-or and real real flexibility that single recipes that always attempt to track a rolling version can never possibly achieve.

Also broken is maintaining multiple packages that package multiple versions of the same package with combinations of external, frequently changing platform packages like rubygems that are packaged manually. Multiple versions of the same package should share common recipe declarations as much possible and be managed more cleanly. Native extensions should be built automatically in CI/CD using polling or notifications rather than manual methods that too often lead to outdated, vulnerable dependencies and create too much pointless, repetitious busywork.

</comment><comment><USER3> (nope! wrong! deleted)

<comment><USER28> No, Mozilla does not distribute Firefox binaries for OpenBSD.

<comment><USER3> Thanks, sorry :(

</comment></comment></comment><comment><USER29> they should make an effort, since this is Firefox...

</comment><comment><USER30> This is 100% is on mozilla, given:

\- it's much bigger and resourceful than openbsd maintainers.

\- it decided to adopt this fancy update policy, and instead of making it easy/seamless, left it up to the whole open source community to play catch up.

Well played.

<comment><USER31> The "fancy update policy" being 'latest FF stable uses latest rust stable', which seems like a pretty reasonable policy to me.

<comment><USER32> I disagree. The compiler is normally something that receives major updates in every new distribution release. That's why language specs exist for.

If you are maintaining a large number of machines in an enterprise environment, you're not keen on updating half of the installed system just because you update your browser, simply because the necessary testing and fixing of regressions costs a lot of time and money for no real gain for both users and administrators.

<comment><USER33> You can have multiple Rust toolchains side by side. This is a non-issue in that case. If there's some other usecase that this breaks, I'd like to know about it and see if we can do something to improve the scenario.

<comment><USER25> The point is that, despite it being possible theoretically, the OpenBSD project does not want to take on the maintenance burden and additional clutter of having 40 (!) separate versions of the compiler toolchain in the ports tree with a new one landing every 6 weeks.</comment></comment></comment></comment></comment>


"Wimpy cores" are coming to Facebook - <AUTHOR> http://gigaom.com/cloud/wimpy-cores-are-coming-to-facebook-but-which-cores/ <comment><USER2> "Tilera has a the first non-x86 64-bit based server available in the market"

There must be some mistranslation here, because I'm pretty sure that 64-bit SPARC and PPC servers have been around for a while.

That said, after digging a little bit, Tilera's stuff looks really cool. Does anyone know if it's possible for ordinary mortals to get ahold of their hardware?

<comment><USER3> They mean low-power 64 bit processor. I think MIPS had embedded 64 bit CPU designs like forever (used in playstation and laser printers).

BTW: Tilera based on MIPS ISA.

I think Tilera is a great solution for IO-bounded applications (i.e. web servers, like in Facebook case), while Xeon Phi is great for CPU-bounded HPC applications.

<comment><USER4> I'd be interested to understand why you would classify web servers as generally I/O bound, rather than CPU (or memory) bound.

<comment><USER3> What web application server will usually do is to accept HTTP request via TCP, fetch/update data in database server, render a web page and send HTTP response back via TCP. So essentially it just waiting, either for TCP stack or for database driver. IO-bound.

Facebook photos application for example, can be CPU-bound, because image processing applications had to process millions of pixels efficiently.

<comment><USER5> (FB employee, tangentially related to this stuff) Everyone, including myself, casually uses the term "CPU-bound", "I/O bound", "Memory-bound" for convenience but the truth is usually more complex. You might actually be CPU- instruction-cache-bound or memory-latency-bound. One app I worked on a long time ago turned out to be random-numbers-bound. :)

In this context boundedness means roughly "the thing that would increase throughput if we had relatively more of it". A pizza shop is going to be fundamentally "oven-bound", because everything else from employees to counter space can be increased more easily than the size of the oven.

Waiting on outside I/O (databases) does not mean that a webserver is I/O bound. The _system as a whole_ might be I/O bound, but not the web layer. Threads stuck waiting for dataz are just put to sleep and others take over the CPU.

<comment><USER6> Were you running out of entropy? If so, how did you solve it? (If you're allowed to divulge that)

<comment><USER5> With a Heisenberg Compensator! No. Like with any bottlenecked resource, you first measure how much you are using per "transaction", whatever that may be. Then you see whether you can use what you have more efficiently. Maybe you don't need it at all. Or maybe you can cut corners by using /dev/urandom or something.

But suppose you are generating tons of SSL certificates. You can't --or shouldn't-- cut corners. For example, see

[https://freedom-to-tinker.com/blog/nadiah/new-research- there...](https://freedom-to-tinker.com/blog/nadiah/new-research-theres-no- need-panic-over-factorable-keys-just-mind-your-ps-and-qs/)

So... what do you do? The problem, like almost any bottleneck problem, isn't that you don't have "enough" of the resource, it's that the resource is out of balance with the other resources like CPU or RAM. When you think about it that way a lot of possibilities open up, like installing special cards or dongles that generate entropy, or by buying lots of lower-powered devices that have more entropy relative to their CPU throughput.

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> Saying that Tilera has 10000 cores in production is the same as saying they have 100-300 chips in production (each Tilera CPU has 36 to 100 cores).

</comment><comment><USER7> It's hard for me to imagine anyone making the move to arm chips that don't have hardware virtualization support, which I think the cortex a15 will be the first mainstream one.

<comment><USER8> Does ARM really need explicit hardware virtualization support? As far as I know, it fits the Popek and Goldberg requirements without it.

<comment><USER9> Trap-and-emulate virtualization has to use slow shadow paging. Nested page tables are much faster.</comment></comment></comment>


Google Makes Web Pages Load Instantly - <AUTHOR> http://www.technologyreview.com/computing/37818/?p1=A4&a=f <comment><USER2> This is really bad news for website owners... We'll see increased (sometimes by order of magnitude) number of page views and bandwidth usage, without increase in the number of real visitors.

Same thing happened with DNS when Google enabled DNS pre-fetching in Chrome.

<comment><USER3> Seems like no major disaster came out of the dns thing. Anyway, this could be a benefit for many webmasters. Google has demonstrated in the past that faster load times mean more users stick with a result. Plus, I'd be really surprised if there were no way to disable it if it is really causing a problem.

<comment><USER2> Disaster? No. Unnecessary cost increase for people operating DNS servers? Yes.

Good example / explanation of the problem:

[http://www.pinkbike.com/news/DNS-Prefetching- Implications.ht...](http://www.pinkbike.com/news/DNS-Prefetching- Implications.html) (cached: [http://webcache.googleusercontent.com/search?q=cache:-3Lip30...](http://webcache.googleusercontent.com/search?q=cache:-3Lip30xln4J:www.pinkbike.com/news/DNS- Prefetching-Implications.html&cd=7&hl=en&ct=clnk&source=www.google.com))

</comment></comment></comment><comment><USER4> Seems like this would completely destroy any chance of using web server visit history for legal prosecution, since even visiting a site that links to another site could cause you to appear in the second site's logs. Perhaps this is a good thing.

<comment><USER5> My thoughts as well, but who uses for web server visit history for legal prosecution these days? What is that proof of or evidence used for?

<comment><USER6> "On November 26, 2008, officials released 700 pages of documents related to the Anthony investigation, which included evidence of Google searches of the terms "neck breaking," "how to make chloroform," and "death" on Casey Anthony's home computer."

<http://en.wikipedia.org/wiki/Death_of_Caylee_Anthony>

It doesn't seem too out of left field that investigators would use your browser history as well.

<comment><USER7> The searches themselves, already provided by Google, combined with actually continuing to some of the results, also logged by Google, are already incriminating enough. The only thing you could claim is that ISP traffic logs couldn't and wouldn't make a difference between you and Chrome loading pages, but that didn't even come into play in the case you quote.

<comment><USER8> As per recent news (amongst other things), links/linking are in the process of being criminalized in some contexts. Do you want to hit a page containing a link and become "guilty" for using/following that link, without ever clicking on it?

It may seem far-fetched at the moment, but I'm reminded of that East Coast teacher who was fired because the classroom computer was infected (apparently, not by her actions) and started popping porn up on the screen.

Common sense quickly demonstrated that she was not, in any personal sense, at fault. Still lost her job; was, IIRC correctly, at least considered for criminal prosecution, and had to spend months and probably lots of lawyer fees attempting to clear her name.

I am mindful to be very cautious about assuming a limit to the stupidity or maliciousness of people who will be making assumptions -- or, regardless of their own understanding of a situation, simply have an agenda to push -- in the future.

</comment></comment></comment></comment></comment><comment><USER7> I currently disable DNS prefetching and "using web services to improve my browsing experience". This is yet another feature that will go on my black list.

First and foremost, I think they are solving a problem nobody has, potentially for "my Chrome is faster than your Firefox" points. I do not mind waiting an extra _300ms_ for having a modicum of control over what my browser does. I don't know about others, but page loading is not usually something I even notice anymore.

Secondly, fully rendering sites I never visit, including script execution, seems like a seriously bad idea. This turns a mildly annoying while slightly beneficial feature (loading resources in the background) into a monster, especially when combined with abominations like ro.me on autoplay.

Thirdly, I could imagine scenarios in which my Google searches would be leaking this way to sites that have no business seeing my traffic.

I realize that what they are currently talking about is opt-in, but can only hope that in time this feature won't be picked up by the other browsers and become the silent default for everyone.

<comment><USER9> _I do not mind waiting an extra 300ms for having a modicum of control over what my browser does._

Your point is still legitimate, but the 1,100 ms (not 300 ms) in that photo which you refer to is the time to serve the search query results, _not_ time to load the page you then click on, which usually takes a number of seconds more.

<comment><USER7> Point taken, I was going for dramatic effect there.

Rendering the page, after selecting the result, does take a lot longer (6s for something like the BBC home page here) but I still maintain that it's largely invisible and not something most users would complain about or even notice.

<comment><USER9> Speed is invisible before you have it, and once you have it.

It's when it gets taken away again that you notice.

</comment></comment></comment></comment><comment><USER10> If, as is hinted, they restrict this to SERPs that carry one canonical result, such as 'facebook login' or -cough- 'html5 spec', it could be a great thing. If after some interval you do the same search and again click the top result, Chrome might even start redirecting you there straight from the omnibox. But if they apply this technique too broadly it's going to be a big drain on server resources and sites would probably start using visibilityState* to lazy load their stuff.

* Thanks for that link, abarth

</comment><comment><USER11> I'd be scared of it automatically downloading inappropriate or even worse illegal stuff from the search results. Try explaining to the boss you did not visit that nsfw site but it merely turned up in your search results.

<comment><USER12> This is a good point. It's not just the "used in a court of law" or "national security" instances where this is dangerous. Corporations don't have to follow any formal legal process. If you're using a proxy or they're otherwise monitoring outbound traffic and you have this feature turned on, it will look like you are visiting inappropriate sites.

</comment></comment><comment><USER13> What about tracking cookies? Sounds like this will silently announce my presence to more web site than I care for.

</comment><comment><USER14> I would think the security concerns would be front and foremost. When I hit up google for a list of sites, I want a list of sites. Whether my browser visits them or not is up to me - I don't want it happening automatically.

Now, personally, I can turn this off, I know, and I also understand the speed advantage for end user retention. People might say 300ms doesn't matter to them - maybe not consciously - but it certainly DOES matter when it comes to retention. People like faster sites automatically - it's a subconscious thing - very well proven by good studies. (amazon, etc) a 300ms savings on page load is a HUGE win from the site owner point of view.

Give the site owners some kind of passive control over this feature (a-la robots.txt for spiders) so those who are really concerned about bandwidth can opt out (though if you are top ranking for a google search term you probably WANT that traffic - that's money down the drain otherwise) and appropriate controls, and it's a good idea.

In fact, it's an inevitable idea. with it's ups and downs. It's going to happen - so let's roll with it.

</comment><comment><USER15> I first thought that this was something only implemented in Chrome for Google, but I then saw that this is somehow a HTML feature that they will also add to Google Search.

I don't like if Google uses its own browser to give their sites features, that could not be implemented without - website's features should only be made from source code on the server. In my opinion.

This is core innovation from Google - but I see the problem with incorrect website visitors. It think Chrome when prefetching the pages, should send some information with the request that the request is a prefetch.

</comment><comment><USER16> Hasn't Firefox supported this for years? <https://developer.mozilla.org/En/Link_prefetching_FAQ>

<comment><USER17> That is more friendly for web owners. Control over bandwidth.

Google's prefetching is instant search list with the most likely result being automatically be loaded in the background before the user clicks on it.

Web owner nightmare: Having a common irrelevant keyword that means most of the world downloads the content without viewing the page.

</comment></comment><comment><USER18> Remember, this makes it vitally important that your "delete" links in web apps aren't actually links, but forms. Load up a data grid and boom! All you resources are gone.

<comment><USER19> If I'm reading the design doc correctly it's only going to be triggered by <link rel="prerender"/> so it's not by default going to affect anyone.

<comment><USER20> The <link rel="prerender"/> will be on Google's search result pages instructing Chrome to prerender the most relevant search result. The control is in Google's hands, not the site owner, by default.

<comment><USER19> Right, but beyond that it's not going to go crazy prefetching every URL in your web apps as the user browses around triggering delete or other actions, unless you _also_ put that <link> in?

</comment></comment></comment></comment><comment><USER21> What about places where internet access is extremely expensive and comes with low usage limits?

There will probably be a switch, but non-techs usually don't flip switches

</comment><comment><USER8> I am annoyed at the "feature". I am fearful of the day I will not be able to disable it.

When the Chrome development team decides something should be a certain way, they are sometimes not at all accommodating of differing viewpoints.

</comment><comment><USER22> so now if I'm even on the same page as a link to a malicious script I'm fucked. If this is implemented I will never start up chrome again.

<comment><USER23> I doubt Chrome is going to start running the scripts for the pages that it's pre-fetching.

<comment><USER20> You haven't read the rest of the comments here, including the links to the specs for this feature. The entire page is loaded in a hidden tab and all scripts are executed.

</comment></comment></comment><comment><USER24> In order to be instant, it would have to download all images, scripts and stylesheets too - wouldn't that screw up everyone's web stats?

<comment><USER25> Here's the design document: [http://dev.chromium.org/developers/design- documents/prerende...](http://dev.chromium.org/developers/design- documents/prerender)

The browser does download subresources, including images, scripts, and stylesheets. The new page visibility API is intended to help folks keep accurate web stats:

<http://w3c-test.org/webperf/specs/PageVisibility/>

<comment><USER26> Does this mean analytics providers are scrambling to implement this API before the Chrome build goes stable?

</comment></comment></comment><comment><USER27> Umm, pretty much awesome I'd say.

<comment><USER28> I don't like the idea of the browser visiting pages before I've told it to.

<comment><USER5> It's not rendering it (I would image at least), I don't see this as a security concern, do you?

<comment><USER20> Actually, it _is_ rendering it, in a hidden tab. As far as the site will know, you visited. Last login times get updated, web stats record hits, stuff gets marked as read, etc.

<comment><USER5> So scripts execute too. Hm, that is a bit surprising. Well, I trust Chrome so much that I don't block scripts and I go to any site that pops up as a google search without any hesitation so I suppose I don't mind.

</comment></comment></comment></comment></comment><comment><USER29> Wouldn't this be a crazy bandwidth hog? If I typed in multiple search terms, and didn't load any of my results, it would have automatically downloaded everything for no reason.

<comment><USER30> In Google's own words they only preload the top result if they are confident it is what you are looking for. If they pull it off there will be negligible amount of unused preloaded pages.

<comment><USER31> Shouldn't the top result inherently represent what Google thinks is what I want? Or is there some secondary "confidence" component to the presumed efficacy of a top result?

<comment><USER32> I'd presume they could look at the difference between their confidence (relevance?) in the first and second results. If the difference is more than some threshold, _bam_ preload the first.

</comment></comment></comment></comment><comment><USER33> Ad services will love this (not).

</comment><comment><USER34> another really cool product of google that serves to make us more dependent on them...

<comment><USER35> They're releasing the source. From the third paragraph of the second page:

"Other Web browsers could also employ Instant Pages, because Google has released the necessary code for all to use. "We are opening up the code because we want other browsers to implement it—it is good for the users and for the Web," said Singhal."

Even if this weren't the case, as drivebyacct2 said, this doesn't do anything to make us dependent on them, especially when compared to gmail or google docs.

</comment></comment><comment><USER36> isn't it funny that someone has to always comment "X browser had it for a while..."? well, if X browser had it, it didn't care enough to let the populace know about it.</comment>


Ask HN: What Linux distro for a Rails app that needs to scale? - <AUTHOR>

Title says it all.  My startup has collected so many users that it's getting to be just ridiculous.  So, we bought a brand new server with really nice specs, and I'm debating what OS to use.
While I love OpenBSD, I'm more concerned with scalability than security, at this point.
As of right now, I'm going to use nginx over Apache, and probably use a 64-bit Ubuntu server.
What would you use? <comment><USER2> Linux distribution is probably the least important item in terms of scalability.

If you're talking about switching to nginx from Apache, that makes me think that you are still proxying to a collection of mongrels? I'd recommend switching to Phusion (aka mod_rails) as it seems to handle high loads much better.

</comment><comment><USER3> Debian. It's what Ubuntu is based on, but it's less crufty. I use Debian for everything I do, and I've never had a problem. Take my advice with a grain of salt however, as I've never really had to scale anything.

One other thing, make sure you build everything from the source. Get exactly what you want/need, and nothing more as well as the latest packages.

<comment><USER4> _One other thing, make sure you build everything from the source._

I was right there with you until this bit of crazy.

Do not build everything from source. You're just _asking_ for trouble when you do. You lose so many really important features of modern Linux distros when you do this, that I can't believe people are still suggesting it as a sane practice for production servers.

If you install from source you won't be able to update quickly and easily via apt-get or yum when a security update comes out...you'll have to rebuild. But, you probably won't even know a security update exists until it's too late. If you don't keep copious and specific notes about what your custom build does, and why you did it that way, you will forget a flag or overwrite or lose a config file, and it will break something next time you roll out a new version.

The performance benefits are probably negligible, and in my many years experience cleaning up amateur maintained systems, it is just as likely to be negative as it is positive. You probably know dramatically less about the package you're building than the maintainer of the OS package, and you're more likely to make mistakes than they are. Those mistakes could have security implications, performance implications, or stability implications.

Certainly, if you are the maintainer of some piece of software, you might want to replace it. I've never run a system without at least a few custom builds...but the custom pieces are usually software that I am one of the core maintainers of, and I know it better than just about anybody. And, when I do run custom software, I tend to build an RPM or deb of it, and setup a local yum or apt-get repo, so that when I need to replicate my production machine, I can do it quickly and consistently.

</comment></comment><comment><USER5> Time is probably your most important resource here. Shaving a few nanoseconds off a query because you compiled your kernel with one different option won't do you much good, whereas an easy to administer OS with readily available binaries will save you a lot of time and headache.

I'd say 64-bit Debian. I have already mentioned my qualms with Ubuntu elsewhere on HN (I don't like upgrading every 6 months, and I don't want to be stuck with old software in case I decide to skip an upgrade).

</comment><comment><USER6> The Linux distribution isn't the big bottleneck, but yes, I'd probably go with the 64-bit Ubuntu Server.

I think Engine Yard, which is where I'm hosting right now, uses Gentoo, it seems to work fine.

<comment><USER7> If you're scaling horizontally, is 64 bit a win? It eats up memory in Ruby processes. We switched our app (which does not need to scale; it's shrinkwrap) to 32 bit Ubuntu and that was a win for us.

(Gentoo? Blech. -funroll-loops.)

<comment><USER4> We've noticed that several VPS providers are _only_ offering 64-bit OS installs...which makes no sense. I kinda suspect it is simply a way to force people to pay for more memory down the road. The memory usage of dynamic languages (Ruby included) is dramatically higher in 64 bit builds...more than 50% in many cases.

If you don't have more than 4GB of RAM, it makes absolutely no sense to have a 64 bit OS install.

</comment></comment></comment><comment><USER8> More than the actual distro I'd say look into what kernel you are loading on there. Make sure you're running a nice tight kernel with any extra fluff turned off (or loading as modules).

I can't find the papers off hand but there has been some research into how kernel level cache tweaks will dramatically effect how web servers and DB servers will perform.

</comment><comment><USER9> Gentoo is based more for the tinkerer and full-time sysadmin. If you're prepared to spend time nursing the system, compiling everything, tweaking packages/the OS itself for every bit of performance possible, the Gentoo is a good solution. Until you're talking about really big scaling though, it's probably more time effective to use another distro.

As far as the rest goes, it would be better to use Debian before Ubuntu, but there's a lot of other distros as well. RHEL powers many of the webs servers as does SuSE and Debian and Gentoo. Once you get past that, it's mostly personal preference.

Also, big plugs for nginx. It's definitely a very impressive software package.

</comment><comment><USER10> I have no stats in front of me, but I have always been made to understand that BSD's (namely FreeBSD) handle high traffic better than linux.

I personally use Debian for everything. I can't imagine the distro making a huge difference really. I've used Debian as a desktop os for some time, so when I needed a server os, it was easy to get going quickly.

Switching from Apache to Nginx made more of a difference in my case than anything else I could have done I believe.

<comment><USER7> I don't know FreeBSD vs. Linux (and god do I ever not want to see that one hashed out), but let me assure you based on significant commercial experience in performance-critical apps that the other BSDs are _not_ the way to go here.

You're working against the grain if you go BSD instead of Linux with Rails, whether you like FreeBSD or not.

</comment></comment><comment><USER11> It's also worth noting that at least around christmas of last year, it was brought to light that the Ruby 1.8 package in apt-get on ubuntu is TWICE as slow as building 1.8 from source.

make sure you build from source.

[http://antoniocangiano.com/2008/12/09/the-great-ruby- shootou...](http://antoniocangiano.com/2008/12/09/the-great-ruby-shootout- december-2008/)

</comment><comment><USER12> Gentoo if you have a lot of time to customize everything and don't mind rehacking on the kernel configuration with every release. Ubuntu if you want something that just works and has available commercial support if you need it down the road. Debian if you like Ubuntu but somehow feel that Debian is more "pure". I wouldn't use anything else.

<comment><USER13> Gentoo is cargo-cult Linux. Tweaking compiler options and use flags rarely produces any measurable benefit, but it guarantees that you're using a unique, untested configuration that may expose bugs other people have never seen.

<comment><USER4> Cannot upvote this enough. Gentoo is a fools game on servers. If you want to dick around several hours every time you update your system on your desktop machine, have at it. But, if you're inviting that kind of chaos into your life on your production server that provides your livelihood, you deserve no pity (and you're unlikely to get any from anyone who has enough experience to be managing a server).

I have a vested interest in being pretty much OS agnostic; our products support tons of systems and versions, and you can easily get me to say nice things about all sorts of operating systems. But, I simply can't have no opinion about Gentoo. It's just such a poor choice for a server that I'd feel guilty _not_ using the strongest possible language to discourage folks from using it.

</comment></comment></comment><comment><USER14> Whatever you're comfortable with. The distro really won't be the thing that limits scaling. In fact, I'd be surprised if there was a consistently measurable difference between them.

</comment><comment><USER15> good q. if you can, use the same thing on the server as you use on your desktop. i use 32 bit ubuntu (8.04). if it performs fine on your 2GB RAM thinkpad, it will probably do fine on an ec2 box, no? if the config works on my desktop, it will work on the server, etc. tremendous advantage in terms of sysadmin requirements in my book. your mileage may vary depending on how much you like os x :>)

</comment><comment><USER16> Definitely Red Hat for anything serious that's worth the support costs. Else you can settle for CentOS, which is Red Hat minus the support.

</comment><comment><USER17> Use whatever you know your way around best. If you're comfortable with openbsd and it can do everything you need, then go with that.

</comment><comment><USER18> what's wrong with openbsd? is your webapp currently running on it?

i'm curious because i use openbsd+lighttpd (soon will be nginx) in my colo (because no slice/vps offers openbsd afaik)</comment>


Even more new C++ features - <AUTHOR> http://ib-krajewski.blogspot.com/2009/12/even-more-new-c-features.html <comment><USER2> To provide a counter viewpoint, the new C++ features are a major reason why we choose to use/continue to use C++ for the game engine my friend and I are writing. As heavy users of C++, we consider the changes to be a welcome and useful modernization of the language. It has allowed me to write a powerful script binding library that I could not have done in old C++.

It's easy to sound smart when you're only detracting from something because you aren't providing a (complete) counterproposal that could be criticized. And it's easy to say "don't add features, remove them" if the feature being removed is not one you personally depend on. And if you're not an actual user of the C++ language it's especially easy to say "don't add features, remove them" because you aren't depending on ANY features!

There are minimalist languages; C++ is not one of them.

I think it is much more interesting and useful to explore how far you can go if you program entirely using the new syntax features. This may make it look and feel like completely a different language than old C++, but rather than put it up as a straw man and knock it down, recognize that this new language is an exciting undiscovered country.

</comment><comment><USER3> This just further confirms, for me, that there is no feature C++ is not willing to include. Seems like C++ is getting closer and closer to the day when any randomly typed string of characters has a decent chance of being syntactically valid C++.

</comment><comment><USER4> Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. -Antoine de Saint-Exupery

</comment><comment><USER5> As much as I love C++, it's getting a bit too hairy for my taste. Instead of making things more simple, it's just getting more complex.

I'd love a statically typed Ruby, for example. Duby looks interesting, but a bit young and incomplete to use.

<comment><USER6> Have you played with Scala? It reminds me in some ways of Ruby, you might find it to your liking.

<comment><USER7> I've also found Scala has a similar feel to Ruby, which is a bit surprising given Scala's static type system and Ruby's extreme dynamicness.

Here are a few similarities:

* concise syntax (Ruby via dynamic typing, Scala via type inference)

* hybrid OO-functional (Ruby isn't normally described this way, but it has a lot of functional idioms built in, and unlike in Python, they're often considered good style)

* dogmatic wrt the OO part (i.e. every value is an object, unlike Java or C++)

* TIMTOWTDI (should my Scala higher-order function take a function or a lazy value?)

* DSL fetishism

* very flexible and adaptable syntax, which (for both languages) is a two-edged sword - esp. things like Ruby's optional method invocation, and Scala's optional dot

* both allow adding methods to existing classes (Scala fakes this via implicit conversions, but I believe it's idiomatic)

<comment><USER5> I've had a look at Scala, but not so much as to actually start writing code. But it does look promising.

[http://macstrac.blogspot.com/2009/04/scala-as-long-term- repl...](http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement- for.html)

The thing which appeals about Duby is that it uses the underlying Java typesystem, and doesn't have a runtime library. If it ever gets finished, it can be as fast as any Java code, and there's been a lot of effort put into making Java code fast.

</comment></comment></comment></comment><comment><USER8> On the Stack Overflow podcast I believe Joel Spolsky said something along the lines of "C++ is the only language where every new feature turns out to be something everyone recommends you should never use."

</comment><comment><USER9> Damn, C++ is making Perl look readable.

Instead of adding features, they should be cutting them. C++ is 27 years old, yet there _still_ isn't a full production-quality implementation of the specification. And they carry on regardless, adding more and more features.

C++ could learn a lot from the way Python is managed. PEPs, a reference implementation, and an individual with the power to veto - to keep the language heading in a single direction.

<comment><USER10> Regarding "an individual with a power to veto," C++ has a dictator for life, whatever trappings of "democracy" surround him. Bjarne Stroustrup has the social and intellectual capital to drive C++ in whatever direction he likes. Unfortunately, not all dictators are created equal.

<comment><USER11> Yet he couldn't get concepts into upcoming standard. Far short of a dictator. There's also the significant fragmentation of the market (GCC vs. MSVC++) and the fact that both of these compilers pick and choose what to implement and when to do it (cf. partial template specialization.)

If Guido puts a feature in CPython, that's a iron-clad edict to all other would-be implementors, because CPython has a huge majority market share. Not implementing the same feature means you aren't implementing python. There is nothing equivalent in the C++ world so no one has power, either through standardization or implementation, to single-handedly steer the language.

</comment></comment></comment><comment><USER12> With an "improved" syntax like that, C++ programmers will never discover automated refactoring.

</comment><comment><USER13> Is it just my screen? I can barely read the code samples.

</comment><comment><USER14> ...can I have my 5 minutes back?</comment>


Arrogance Peaks in Silicon Valley - <AUTHOR> https://500ish.com/arrogance-peaks-in-silicon-valley-b3020f542e5e <comment><USER2> And yet they are building nothing of any real value. They could all disappear over night and the world would be a better place, not worse.

I see a lot of smart people be totally inside their bubble, specially bosses. When confronting them with reality, they seem unable to process the information. It's not even funny anymore.</comment>


CubeTree Launches As A Facebook + FriendFeed + Twitter For Enterprise - <AUTHOR> http://www.techcrunch.com/2009/05/10/cubetree-launches-as-a-facebook-friendfeed-twitter-for-enterprise/

<comment><USER2> Strangely enough, all employees consistently report what they're doing right now as "Working tirelessly to provide a world-class customer experience and maximize shareholder value!"

<comment><USER3> What!? That's not the kind of thing a startup should be doing! This is crazy- talk!

<comment><USER2> I meant, all employees of customers of the service. :)

</comment></comment></comment><comment><USER4> This seems like a little bit better yammer.com. Wonder how their business model works if everything is for free?!

<comment><USER5> As I read it, it's a bit more of a "portal" in which you can create wiki pages, share documents etc. as well. It certainly overlaps with Yammer a great deal but offers a bit more.

And actually, it's freemium: You pay for storage space and extra features like company branding.

</comment></comment><comment><USER6> Sounds like a very likely candidate for corporate firewall, like facebook and other time wasters.</comment>


Stage Presence - <AUTHOR> https://www.spresence.com/ <comment><USER2> I really love the idea of bringing a bit of high quality art/performance entertainment into the corporate day.</comment>


The Limits of Cost-Benefit Analysis in IT - Server Fault Blog - <AUTHOR> http://blog.serverfault.com/post/the-limits-of-cost-benefit-analysis-in-it/ <comment><USER2> I was hoping for a more numeric analysis of purchases and upgrades for IT/SysOps. The article is talking mostly about vague non/difficult to validate benefits that may or may not exist numerically.

Sure, "Pride", "Momentum", "Inspiration" are great benefits from making something 'awesome' but those metrics do not quantify well in a corporate, and even in a startup setting.

I think his second example "momentum" actually sums up the viewpoint about hardware purchases, ' IT tells them they can't push it to production until a new server gets approved, ordered, setup, tested, and then deployed, they will get discouraged. Eventually, they won't even think about new features. ' Is this a problem with IT's budget? or is it a problem with a dev who gets discouraged too easily? Why not simply the feature? why not nag at the IT?

It feels like the author was flippant about this issue, and in reality doesn't do any real cost-benefit analysis.

<comment><USER3> I quit my last job in very large part precisely because they didn't think of this aspect of decision making, and the cost of me leaving was a hell of a lot more than the hardware that would have made me happy enough to stay.

</comment></comment><comment><USER4> I think he was right - technical people apparently have a hard time explaining themselves.

I _think_ the point of the article is that you need to be able to include actual benefit information, which isn't necessarily straight forward to gather or develop, rather than just short term stuff. Benefits are not just inverted consequences, in other words.

What it comes off as saying, is that who cares, just buy what ever you want, I mean, a developer might get upset that it takes more time to purchase equipment than to write some code.

I can't imagine there being anything remotely close to a catch-all rule for this kind of thing - buying new hardware at a Fortune 50 vs. buying hardware at Facebook/Google vs. buying hardware at small, agile, cash-rich web startup are all going to be radically different, as they should be.

</comment><comment><USER5> In real life, cost-benefit analysis typically works similar to business plans.

First you decide what you want to do.

Then you write up a case supporting that. In doing so, you make lots of wild guesses and make sure that + ones use the high side of the guestimate range, and - ones use the low side of the range.

Remember, there was a business case and cost benefit analysis for pets.com and nearly every other internet failure that justified everything they did to investors.

This is the real limit of these analyses.</comment>


Show HN: CloudForecast.io – Daily email report to help you monitor your AWS cost - <AUTHOR> https://cloudforecast.io <comment><AUTHOR> Do you need a lightweight and affordable AWS cost monitoring tool? CloudForecast is a daily email report that breaks down your AWS spend, allowing you to understand where your money is going. View spend by Products, Tags, and Sub Accounts and quickly know which areas need your attention.

CloudForecast is a passion project designed to deliver the value of enterprise level AWS monitoring to startups and midsize companies. Between the three of us, we've managed annual AWS budgets of $10M+ and know how to help you save on cloud costs.

As longtime HN fans, we want to make this easy for HNers to try us out! Fill out a 3 question survey to double the length of your free trial. Email us at email@example.com for more information or if you have any questions!

<comment><USER2> Hello, I run a small DevOps consulting company. Can we create one single CloudForecast.io account with independent customers of ours each having multiple AWS accounts? Essentially a single login to view all customers grouped by AWS account?

<comment><USER3> Thanks for the question. That's a use case we haven't considered yet, great feedback! As of today, we are using the Organization concept in AWS so "One CloufForecast.io account" == "One Master billing account in AWS". Your use case seems to be slightly different since it's multiple accounts across multiple clients. I would love to discuss options with you and see if we can help. We recently started discussing options with consultant/agency to figure out how to best work together. Please reach out to us at email@example.com.

</comment></comment></comment><comment><USER4> We have been using this at Adzerk since an early beta and it's been just what we needed. We used to pay 2% to another cloud pricing company and we were able to cancel that since we started using CloudForecast.io, saving us thousands of dollars a month. If you find yourself not using all the fancy features of the bigger tools, save yourself some money and use this great tool instead.

<comment><USER5> I second the need for "simpler" solutions like this. At Perfect Audience (where I worked with the CloudForecast team!) we spent a lot on AWS and used vendors to help monitor the spend. Because these vendors were venture backed, they needed to charge a lot of money. To justify charging that much money they needed to build a lot of features...when all we really wanted was a good email each day to alert us if something was awry.

</comment></comment><comment><USER6> Some tips to improve the website (Last time I did this [https://news.ycombinator.com/item?id=16621584](https://news.ycombinator.com/item?id=16621584)):

Make the header's height larger. It's very, unusually small, compared to the vast majority of the internet. At least add some top/bottom padding.

Please work on the contrast of the "Start Free Trial" buttons, they are hard to read.

Use or configure your header/menu font better. On chrome, windows 10 it's ugly: [https://i.imgur.com/FpsHTkX.png](https://i.imgur.com/FpsHTkX.png)

Add some effect to the screenshot, so people it's a screenshot of the app and not some random image.

Add some color to the references slider's arrows. No contrast there.

The pricing buttons being different is weird: [https://i.imgur.com/qJI9cPw.png](https://i.imgur.com/qJI9cPw.png)

Fix the legends being blurry in this screenshot: [https://cloudforecast.io/images/CloudForecast-email---as- of-...](https://cloudforecast.io/images/CloudForecast-email---as- of-3-25-18-p-1600.png)

Change the "Contact Us" links to an actual page, showing the email, and a mailto handler there. I really dislike how it is right now (link with mailto handler), as I may not be interested to email right away. Maybe I'm looking for where you guys are HQ'd?

\--- on app.cloudforecast.io

2005 called, they want their button borders back: [https://i.imgur.com/eSitJwC.png](https://i.imgur.com/eSitJwC.png)

A text with "I accept the Terms" is not consent.

There is no Data Usage/GDPR info linked on the signup screen. How is my data used?

Maybe use some different typeface for these progress labels? They look bland, boring, and I only saw them at the third look. [https://i.imgur.com/qcoAuHs.png](https://i.imgur.com/qcoAuHs.png)

<comment><AUTHOR> Thanks! This is very useful feedback and definitely a lot of good points. I'll be sure to return those borders back to 2005! It definitely wasn't the intended design. I'll need to do some more testing on Windows. :)

<comment><USER7> I think the more important thing might be the consent part. Check out clickwrap or clickthrough consent. The technical bits of this can become extremely tricky and extremely important.

</comment></comment></comment><comment><USER8> This is definitely a problem worth solving, and this looks like a nice solution.

I like the use of weather as an at-a-glance shorthand. This is something I'd be looking at every day, and the faster I can glean the information the better. Can you share a little more about what might make things "stormy" vs. "clear"?

Also, just out of curiosity, what's your tech stack look like?

<comment><USER3> The "Sunny"/"Cloudy"/"Stormy" is based on the personalized threshold (E.g 10% increase compared to yesterday). The alerts can be set for your overall AWS spend but also at the Product (EC2, RDS), Region and Tags level.

For our tech stack, we are mostly using AWS Lambda with the Serverless.com framework. We were able to get off the ground quickly while keeping the cost down

</comment></comment><comment><USER9> We have been using this at Doximity for a while now it is excellent. The daily reports and clear indicators of increase/decrease are helpful to identify spikes at a glance.

<comment><USER10> You are also listed and quoted on their homepage. You must really, really like it I guess

</comment></comment><comment><USER11> We use this at the company I work for, Slingshot, and it has definitely been helpful for keeping an eye on things like huge dev environments that get spun up and not shut back down (I should note: I'm as often the guilty party as anyone else) as well as regular spending. We started using it because the pricing was a lot more small/medium business friendly than some of the other options out there. The team at CloudForecast has been really receptive to requests for new features and they seem to be committed to continuing to improve the product. For instance, the new cost savings report has a lot of potential, so looking forward to seeing where that goes. Saying that reminds me that I still need to respond to their request for feedback on that...

</comment><comment><USER12> Nice service. At the moment, I have set a couple of billing alarms which trigger at certain thresholds, so that I know if we are going to be over budget by the end of the month. But a daily report would be handy.

Our usage is fairly low (~$1K/mo), so even the lowest pricing tier is not within our subscription budget now, but I can see it being so as we grow.

One question (I haven't gone through the specs in detail) but does the daily email provide other hints on saving costs as well (i.e. alerts when a reserved instance expires etc.)?

<comment><AUTHOR> Hi! So it sounds like your company qualifies for our "startup lite" plan which is listed below our standard pricing on the website. Part of our mission is to empower companies like yours with the same tools that the big guys have. Do you mind sending me an email at firstname.lastname@example.com? I'm happy to share how that plan works. Thanks!

</comment></comment><comment><USER13> Looks great, would love and use something like this for GCP

<comment><USER2> Google Cloud actually has some good new graphs (they are under billing => reports). Additionally they offer a monthly billing overview e-mail which you should already be receiving.

</comment></comment><comment><USER14> I'm not sure why I would want to use this instead of Amazon's built in tools?

<comment><USER15> The short answer is alignment of incentives.

The longer answer is that, although Amazon does provide many tools, as I'm sure anyone who has attempted to use them for cost analysis and/or forecasting has found, they are, at best, difficult (i.e. require a remarkable amount of human labor to extract the desired information, if that's even possible). At worst, one discovers that it's impossible to find out what one truly wants from the tool, even after exerting the effort, although it might be a close approximation. Amazon has little incentive to spend money improving a tool that would help their customers send them _less_ revenue.

<comment><USER16> > The longer answer is that, although Amazon does provide many tools, as I'm > sure anyone who has attempted to use them for cost analysis and/or > forecasting has found, they are, at best, difficult (i.e. require a > remarkable amount of human labor to extract the desired information, if > that's even possible). At worst, one discovers that it's impossible to find > out what one truly wants from the tool, even after exerting the effort, > although it might be a close approximation. Amazon has little incentive to > spend money improving a tool that would help their customers send them less > revenue.

I __completely __agree.

I tried out that complicated as hell calculator, and found that for a lot of fields I was just inputting numbers, with no idea what I was doing.

I think the Cloud Formation price predictor thing is pretty useful for a Cloud Formation script. But I'm new to Cloud Formation and probably won't use it b/c it may be too complex for my needs and I don't know what I'm doing.

</comment></comment></comment><comment><USER17> Any plans to extend this to other cloud providers like Azure and GCS?

<comment><AUTHOR> We definitely plan to explore other cloud providers down the road, but we're trying to gauge viability in the market for AWS right now. For GCP, I encourage you to check out what they already offer for billing analytics. They do a great job at offering some of the stuff we do for all customers already.

</comment></comment><comment><USER18> Awesome job, Kacy!</comment>


E-commerce - is the next wave about to break? - <AUTHOR> http://uk.techcrunch.com/2009/05/26/e-commerce-is-the-next-wave-about-to-break/

<comment><AUTHOR> i think a discussion of the next wave of e-commerce is incomplete without talking about the role of social. amazon stands firm against in the rise of zappos because it is more social, more reviews deliver more relevant/engaging content that lead to sales.

one the other side you have threadless, offering a highly social and interactive buying experience that no other retailer can match.

additionally add in winelibrary.tv for a diff kind of social, where a daily interactive show and lots of personal brand set the tone for a fun buying experience.

e-commerce is in fact experiencing many new waves, partly due to the massive efforts by small software firms building free or cheap social apps, and smart e-commerce sites that are leveraging these platforms to connect with customers. while web 2.0 has monitization issues and an unhealthy reliance on boring Ads, e-commerce has a lot to gain from web 2.0 and a direct way to turn all that social activity in cash. exciting times indeed.</comment>


Ask HN: Why there is no more leaks/news from Wikileaks.org? - <AUTHOR> Latest leaks in wikileaks dated at 9 November 2017, and latest news dated at 8 November 2016. What happens to wikileaks? <comment><USER2> it was a russian intelligence operation aimed at affecting the 2016 election. after that goal was accomplished, its effectiveness waned and law enforcement started getting closer.

<comment><USER3> Are you claiming Wikileaks was founded in 2006 in order to throw the 2016 US Presidential election to Trump?

<comment><USER4> It was likely not founded with that intent, but it appears to have been compromised or manipulated by Russian intelligence in the months/year leading up to the 2016 election.

<comment><USER5> [https://en.wikipedia.org/wiki/WikiLeaks#Allegations_of_Russi...](https://en.wikipedia.org/wiki/WikiLeaks#Allegations_of_Russian_influence) lists some of the claims.</comment></comment></comment></comment>


Why A Low Calorie Diet Extends Lifespans: Critical Enzyme Pair Identified - <AUTHOR> http://www.sciencedaily.com/releases/2009/06/090624152811.htm <comment><USER2> How long until I can get that enzyme as a topping on a double-fudge sundae?

</comment><comment><USER3> Biology is the ultimate in reverse engineering.</comment>


From geek to business owner to multiple ventures in 2 years - our business model - <AUTHOR> http://www.mindscape.co.nz/staff/johndaniel/index.php/2009/03/our-business-model/

<comment><USER2> I always think its really interesting how libraries that would be open source on github if they were written in ruby are 300$ per license purchases when written in .net.

Its like the commercial for profit nature of .NET filters down to the people that write code for it too.

<comment><USER3> I think _if they were written_ deserves some emphasis there. $300 will buy you WPF Flow Diagrams. You can search github for the flowcharts written in Ruby. And, if there actually were any, they'd be free. Too bad there aren't.

Its like the commercial for profit nature of .NET filters down to the people that write code for it too.

<comment><USER2> Yea I agree, I was looking mainly at the .NET ORM they have for sale when I made my comment.

<comment><AUTHOR> Thanks for the comments.

The O/R Mapper product generates sales primarily because of the support and the domain modeling tools we build into Visual Studio. It does help that the core framework is very powerful too but that was something we picked up early on - the code is not as important as the whole delivery (support, integration, documentation, etc).

Visual controls such as the WPF controls we sell require much less effort to move than our ORM product. I think corporates will still happily spend on visual things but are moving away from non-visual elements of application development such as O/R Mappers due to the quality of some open source offerings.

</comment></comment></comment></comment><comment><USER4> As you point it, there are different paths to doing business and it is nice to share your story with us.

Your writing style is nice but you should remove those "ho no, don't leave my blog" or "please subscribe" sentences.

If your content is interesting and if you're staying focused, people will come back or subscribe.

<comment><AUTHOR> Point taken - thanks :-)

This was actually part of some experimentation on my behalf. An earlier post had a subscribe at the start, the second at the end and this one at both the start and the end. It did feel a bit over the top but I wanted to see how it went.

Thanks for the feedback.</comment></comment>


Show HN: High quality speech recognition - <AUTHOR> http://app.loverino.com/?hn <comment><USER2> You should also have a demo with existing file i.e. one that doesn't require uploading.

I doubt many people have a file with speech of 30sec or less laying around just to try your thing.

<comment><AUTHOR> Great point, thanks for pointing that out.

</comment></comment><comment><USER3> please don't delete and resubmit, that is against the rules.</comment>