Surface Pro 3 – some specs and pricing are revealed - <AUTHOR> http://www.wpcentral.com/surface-pro-3-real-specs-and-pricing-revealed <comment><USER2> The Yoga Pro, which I otherwise liked, was kind of unusable in practice as a tablet just due to weight and size. 13.3" was too big, too heavy.

I worry that a 12" Surface (up from 10.6") might have the same problems. They'll need to really reduce the bezels and keep the weight way down.

</comment><comment><USER3> This is quite interesting that Microsoft is rolling out new iterations so quickly. It was only a 8 month gap between the Surface Pro 1 and the Surface Pro 2. If a Surface Pro 3 makes a debut next week, that would be approximately 7-8 months since the last iteration yet again.

For comparison, it Apple refreshes the Macbook Air and iPad about every 12 months.

<comment><USER4> Do they really have a choice? For better or worse they aren't getting traction with the Surface family, so they need to keep trying new stuff in the hopes of finding a device that consumers want.

<comment><USER5> They are getting some traction, but they entered the race late.

<comment><USER6> What does "some traction" mean? Do you have any market share numbers?

<comment><USER5> [http://www.dailyfinance.com/on/microsoft-surface-sales- doubl...](http://www.dailyfinance.com/on/microsoft-surface-sales-double- irrelevant-tablet-market/)

They estimate a million units. While a very small piece of the market, a million units says they found traction to me.

<comment><USER6> Linux has a larger market share on the desktop. Did I miss the year of Linux on the desktop? Sounds like you are making that "one millllliiioooon" number sound bigger than it is.

<comment><USER7> You are comparing apples and oranges. Linux is a OS and more specifically a kernal and surface is a brand of tablet.

Yes million is pretty remarkable given most people wrote it off as DOA.

<comment><USER6> Microsoft is pushing really hard. I see commercials everywhere. In this other HN post, it says that Microsoft has lost $2 billion on the Surface.

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

They are certainly putting up a fight. Anything could happen in the future but I think getting excited about a million units shipped is a bit premature.

<comment><USER5> Nobody is getting excited. You are reading way too much into our comments.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> So far they've only lost money with Surface. And I remember they were saying to their partners initially "don't worry, this is just a reference product - it's like not like we're actually trying to compete with you or anything like that!" \- yet they're now at the third iteration.

<comment><USER9> I hope they succeed eventually.

Microsoft has the right product for those of us that would like rather have a laptop capabilities with the size and battery duration of a tablet.

iOS and Android ecosystems require a big brother computer for proper application development, whereas on the Surface I can change to desktop mode and run Visual Studio with the full SDK.

This is what has putted me off to buy a Android Asus Transform a few years ago and buy a Asus Netbook with Ubuntu instead.

<comment><USER10> how about using an android VM on windows desktop\laptop ?

I tried once but never did any app development

<comment><USER9> How does it have anything to do with using a tablet with laptop capabilities feature wise?

What you are suggesting is no different from using the Android SDK on a desktop/laptop, which by definition isn't a tablet.

<comment><USER10> no, i am not suggesting anything. I just had a question so I asked. Sorry, if i was not clear.

</comment></comment></comment></comment></comment><comment><USER11> Why isn't the link to the original story

[http://www.wpcentral.com/surface-pro-3-real-specs-and- pricin...](http://www.wpcentral.com/surface-pro-3-real-specs-and-pricing- revealed)

Is HN still autobanning wpcentral?

<comment><USER12> We unbanned it and changed the url to there from [http://www.cnet.com/news/next-microsoft-surface-pro-intel- sp...](http://www.cnet.com/news/next-microsoft-surface-pro-intel-specs-said- to-leak/).

Submitters: please don't post stories that just point to something else. Post the something else instead.

<comment><USER13> What if someone wants to re-post something that was posted 1+ year ago to see new opinions? I think at the moment it navigates back to old post without creating a new one.

<comment><USER12> I've posted about this a few times:

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

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

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

HN's duplicate detector is left weak on purpose so that people can repost interesting things, either because they haven't received significant attention or because more than a year has passed. You may need to change the URL slightly for the repost to work.

Because it's an honor system, we ask people not to abuse this. Examples of abuse are deleting posts that didn't get traction and resubmitting them; or reposts of the same material over and over. In general, we're more tolerant when people are reposting things because they're interesting and less tolerant when they're promoting something.

<comment><USER13> Thanks for taking time to reply!

</comment></comment></comment></comment></comment><comment><USER14> I was about to buy a Pro 2, might hold off on one of these.

For taking notes and digital art/illustration, these devices are amazing and I've been using my friends one a lot.

<comment><USER15> Came here to say pretty much this as well - since the Surface came out I was interested in it especially after trying it out with the pen + OneNote; being able to have one device that does the tablet stuff like touch/pen/note taking _and_ the C++/C#/Virtualbox cross-platform development stuff sounds like a dream to me (which makes me guess I'm probably in the target group for the device). Expecting MS to come with an update I was waiting a bit though and the Pro 2 came close already, but mainly due to coincidences I haven't gotten around to get one. Plus the specs were still not on par with my current laptop's it seems. Now this Pro 3 however: extremely tempting. While at the same time makes me wonder if I should wait another couple of months for yet another, faster update :]

<comment><USER16> It is really excellent if you will actually use the pen. I love pen input (I have a Note III and a Surface 2). I love using Hyper-V -- which seems much faster than VirtualBox (on Windows).

I went through like 7 devices prior to sticking with this one -- Macbook Air and Pro, Asus Transformer, X301, Pixel ... and others. None of them had all the things I wanted in one place... the Surface 2 is just about a perfect fit for me.

I doodle on it (pressure sensitive pen is AWESOME), I take hand written notes, I run Ubuntu and CentOS in Hyper-V for work stuff, I run Visual Studio, I play League of Legends (1080p mid-low settings) and it is just my go-to device when I am not on my desktop.

I purchased it on a complete lark -- just to have one, and it is quickly become my go to device when traveling. It is a machine of compromises... it has a "good" screen, it has "good" battery life, it has "good" performance, it has "good" pen input, it has a "good" weight. Not exceptional in any category, but if you want something that places in all of them -- it is perfect.

</comment></comment></comment><comment> fake-name Just make a model with a fucking 4:3 screen. PLEASE!

Not everyone uses tablets for watching movies. I use my Surface 2 RT pretty much exclusively for reading, in portrait mode. A 4:3 model would be a immediate buy for me.

</comment><comment><USER10> Surface keyboard design and the way screen gets docked into keyboard is plain terrible. MS need to get the right design clue from Acer where keyboard is still detachable but it remains firm like a normal laptop keyboard.

You can look at Acer surface tablet here - [http://www.amazon.com/Acer- Iconia-W510-1422-10-1-Inch-Keyboa...](http://www.amazon.com/Acer- Iconia-W510-1422-10-1-Inch- Keyboard/dp/B009P7JJEC/ref=sr_1_5?ie=UTF8&qid=1400483427&sr=8-5&keywords=acer+windows+8+tablet)

<comment><USER17> If this keyboard is as lightweight as others i've seen, I imagine this Acer solution to topple over if the screen is pushed back more than 90 degrees, no? What keeps it upright?

<comment><USER10> Sorry, hard to explain. This acer tablet is on display at MS store so if you have any nearby - please visit to experience it.</comment></comment></comment>


Show HN: GiftcardMate, a Mint.com for Giftcard Balances - <AUTHOR> http://giftcardmate.com

<comment><AUTHOR> Didn't get any feedback on my post late last night, hoping that someone can give me any comments/suggestions, won't post anymore..appreciate any feedback on the idea both positive and negative suggestions/comments welcome

Thanks!</comment>


Tech toys were funny-looking in 1998 - <AUTHOR> http://www.cio.com/special/slideshows/the90s/ Just one decade ago, the price of gas was less than $1.25, cell phones were clunky and technophiles got a new toy: the MP3 player. <comment><USER2> There were far, far better games on the market in 1998 than Doom (Half-Life, anybody?). And that Motorola cell phone is waay pre-1998, as well. At that point, they looked a lot more like this - <http://www.motorola.com/mot/image/15/15326_MotImage.jpg>

Some of that stuff was funny, but why pad the list?

<comment><USER3> If I remember correctly, the gaming / graphics wars started to heat up around '96, with the Nvidia / Rendition / 3dfx wars. I remember when games used to have Glide support separate from Direct3D / OpenGL. Interesting that ATI, who is Nvidia's only competition now, was really a non-player during all of the 90's.

<comment><USER4> ATI did embedded graphics throughout the 90s though, right? It's interesting that they were able to step up from there to gaming/professional graphics.

<comment><USER3> Well, they also made the Rage and FireGL gaming / workstation 3d cards, they just weren't very good. The FireGL did a little better because there wasn't as much competition in the professional graphics world, really just the Quadro and, to a lesser extent, Matrox's cards. Wow... until I just wrote that, I had completely forgotten that Matrox ever even existed.

</comment></comment></comment></comment><comment><USER5> I still have one of those Apples, though mine is now running Linux. I never thought they were all that funny-looking.

<comment><USER6> I found the iMac the least funny looking of the ten pictures.

</comment></comment><comment><USER7> I always thought that the one-piece-Mac looked stupid (including the original 68000 based). What happens if you want to upgrade the monitor? Or if you want to put CPU on the ground? Just seems like unnecessary miniaturization to me.

<comment><USER8> > What happens if you want to upgrade the monitor? Or if you want to put CPU > on the ground?

If you have it in your kitchen? If you give it to your ten-year-old daughter? I think that's where the majority of them ended up (also, I can recall the school systems in my area [of British Columbia] just getting iMacs as I was graduating). Think about places you'd use a laptop now, but don't really need to move it around all that much, because you have a single, set desk configuration.</comment></comment>


Ask HN: What blog service to use for software/electronic side-projects? - <AUTHOR>

Good day fellow HNers,
I've been looking at alternatives to increase my online presence a little (in ways other than a StackOverflow and GitHub account).  I have a number of small side projects that I'd like to write about (on various topics, but mostly electronic and software).  I don't expect daily articles, but the ones that will be posted should be reasonably high quality (some howtos, experimental projects, research projects, etc).
It also turns out that there are MUCH more blogging platform options available than I thought, including various technical tradeoffs:
- Self hosted vs Free cloud based vs Premium cloud based
- Static vs Dynamic engines
- Varying degrees of interactiveness
- etc
For those of you who do similar things, what were the things you considered when you made your choice, and what has turned out to be important, ie:
- Is user comments and feedback valuable, or a nice to have?
- How important is social media integration for a reasonably niche topic?
- Is self hosting more trouble than it's worth? (cost and timewise)
- Impact on search engine exposure
- ....
Is it a viable option to self host (just because I want to play around with it) with links to those articles from a more mainstream blogging site?
As always, your feedback is much appreciated! <comment> TD-Linux I currently use a self-hosted Wordpress instance on CentOS. It's the most obvious solution and works well. The comment feature is really important, I get feedback on several of my articles, and it's rewarding to see that someone has read your page. Example: [http://thomasdaede.com/wordpress/?p=167](http://thomasdaede.com/wordpress/?p=167)

Wordpress also gets hit with tons of zero days, so make sure to stay on top of updating, and backup your database. I also don't like how inserting pictures works, but it got a lot better with Wordpress 4.0.

</comment><comment><USER2> This should give you a really good idea for what you are trying to do and read the comments: [http://thenextweb.com/apps/2013/08/16/best-blogging- services...](http://thenextweb.com/apps/2013/08/16/best-blogging-services/)

It will be hard to get visibility with free services and if you are serious then buy a WP Theme (my favorite site is www.prophoto.com it is for photographers but you can tweak a lot and give it a professional look). Yes, adding social sharing features and specially having comments section a must, we wouldn't have been talking if HN didn't provide us this feature, right? I would also suggest that you submit your posts to techcrunch.com www.themuse.com and see if you can contribute in their blogs and get your name out there and then go on your own, good luck!

</comment><comment><USER3> User feedback is must for me. If you are publishing How To guides and tutorial articles, users will always want to interact with you. So it makes sense to enable comments.

Either static or dynamic, you can have commenting system. I host my static blog on Github pages and commenting is handled by Isso [0]. Alternatively you can use Disqus, but I don't like it.

For dynamic blog, I hosted Wordpress on Openshift. It's free for small blogs.

I don't really integrate any social media (like login with G+ or Comment using FB etc), really don't like it.

[0] - [https://github.com/posativ/isso](https://github.com/posativ/isso)

</comment><comment><USER4> Hello friend.

I would highly recommend taking a look at www.ghost.org

I use it for my online presence to essentially talk about the same thing that you are. It is very simple to use and made for a great, clean reading experience. I am just using the default theme provided because I like the simplicity and elegance of it. Feel free to browse to my website to get a feel for it.

P.S. It requires a dedicated capable of running node.js apps, I recommend Digital Ocean for this. You can get just what you need to start at $5 a month.

Hope this helps! :D

www.matthewreichardt.com

</comment><comment><USER5> Jekyll will be perfect for your needs. \- It's super light, beautiful and easy to maintain. \- Free hosting via GitHub pages. You can use any of the existing themes. \- Add Disqus comments - that's also free and beautiful. \- Add GA for analytics. Write your posts in md and GH Pages will publish it instantaneously for you.</comment>


Eureka: First Life In The Universe - <AUTHOR> http://www.npr.org/blogs/13.7/2014/02/04/271093289/eureka-first-life-in-the-universe?sc=tw&cc=share&utm_content=socialflow&utm_campaign=nprfacebook&utm_source=npr&utm_medium=facebook <comment><USER2> What a fascinating idea.

I'm particularly intrigued by the perspective of hypothetical intelligent life in this era. They'd presumably be able to discover the laws of physics and the evolution of the universe as we have. They'd see that the universe was millions of years old, and presumably that would be considered a really long time. They'd know that the universe was expanding and cooling.

They'd extrapolate out to our era. Would they consider this era to be cold and dead? I imagine their view of this era would be similar to our view of the dark era roughly 100 trillion years hence after all stars burn out and no new ones are being created. Incidentally, the distance is at a similar order of magnitude: we're about 1000 times farther removed from that 15 million year mark, and that "dark era" is about 10000 times farther out from today.

<comment><USER3> Some one that got such a massive head start could have evolved by now to survive these times. Even more so, they would have technologies to achieve singularity and probably didn't need their biological bodies to survive any more.

Life originating only after some 15 million years after the big bang, would by any means be extremely super intelligent by now. So much that I guess their very nature of existence would be unimaginable to us. If not, what happened to them? Did they just got unlucky, got hit by asteroid every time and finally had no one to start over? Did they self destruct? Did they achieve singularity and those machines have managed to hide themselves since then? Or the universe is just plain unimaginable large that even for some one somebody like them just couldn't travel that long distances to meet others?

>>Would they consider this era to be cold and dead?

There is this thought that the science of universe we discover is based on observation. Ever expanding universe would leave it in a state that some time in the future people on a planet will just see darkness around them. No stars at all!!! They will likely assume universe is just them, and empty space all around. They would no nothing about Big Bang at all. So just like them, are we missing critical pieces of evidence already?

Plus Stephen Hawking has suggested if we manage to survive technology adolescence and survive to move out to space. We will eventually figure out a way to survive the cold dead era too.

So its like they are still alive.

<comment><USER4> One idea I've had about past civilisations is to do with quantum immortality. Suppose you did a Schroedinger's cat type experiment, but you were the cat. If the multiple universe hypothesis is true, then when the box is opened, two universes form, one in which you're alive and one in which you're dead. Since you're not in the universe where you're dead, subjectively, you would simply always survive the experiment. Now, imagine if you linked the trigger for death to a measurement of energy. You create a box that kills you unless some observed material randomly spikes in energy. It's a bit like a quantum suicide version of Maxwell's demon. Subjectively, you get free energy. More than that, this quantum killer Maxwell demon would be a fairy Godmother in disguise. You could make anything happen as long as it is directly observable and has non- zero probability. However, if you do it enough, anyone who isn't in the box with you, will very likely see you die.

So there's the problem. You have a source of free energy or entropy or free anything, but using it will make you appear dead to everyone you care about. The solution would be to get everyone you care about together in the same box.

From our point of view, when we explore the galaxy in the future and we will keep on finding long dead previously civilised planets which had advanced aliens who one day suddenly bundled everyone on onto a massive spaceship and then blew themselves up. Then one day, we'll start bundling ourselves up and do the same.

In practical terms "bundling everyone together" might mean merging into one consciousness (for convenience). Which would make the whole process a lot like "The Last Question" by Asimov.

<comment><USER5> Wow this is sort of like Greg Egan's Permutation City but actually seems slightly less far fetched and it solves the "where are all the aliens?" problem. In order to hack entropy we erase ourselves from all possible universes where entropy is increasing.

<comment><USER4> The fun thing is that there's a high probability that the ancient aliens still get to meet us, but a low probability of us meeting them.

</comment></comment></comment></comment></comment><comment><USER6> The heavy elements (carbon, oxygen, iron, etc) we and our planet are made of were manufactured through fusion in the heart of stars. As as far as I understand it, even 15 million years after the big bang the universe was almost entirely made of hydrogen and traces of helium. Any heavier elements that did exist would still be locked up inside the first generation of stars that were making them. Perhaps the paper mentioned addressed that?

Still, it's an interesting notion. At some point there may have been a sweet spot between the background temperature and the availability of materials, and that point may have been billions of years in the past.

<comment><USER7> Much of the paper is devoted to calculations regarding the formation of heavier elements and rocky planets. Surprisingly, the lifetime of the largest stars is only 3 million years:

 _For massive stars that are dominated by radiation pressure and shine near their Eddington luminosity LE = 1.3 × 1040 erg s−1(M⋆ /100M⊙), the lifetime is independent of stellar mass M⋆ and set by the 0.7% nuclear efficiency for converting rest mass to radiation, ∼ (0.007M⋆c2)/LE = 3 Myr (El Eid et al., 1983; Bromm et al., 2001)._

Then it's a matter of figuring out how long it takes for matter to clump together and form stars/planets. After some math and citations in section 2:

 _The above calculation implies that rocky planets could have formed within our Hubble volume by (1+z) ∼ 78 but not by (1+z) ∼ 110 if the initial density perturbations were perfectly Gaussian. However, the host halos of the first planets are extremely rare, representing just ∼ 2 × 10−17 of the cos- mic matter inventory. Since they lie ∼ 8.5 standard deviations (σ) away on the exponential tail of the Gaussian probability distribution of initial density perturbations, P(δ), their abundance could have been significantly enhanced by primordial non-Gaussianity (LoVerde and Smith, 2011; Maio et al., 2012; Musso and Sheth, 2013) if the decline of P(δ) at high values of δ /σ is shal- lower than exponential. The needed level of deviation from Gaussianity is not ruled out by existing data sets (Ade et al., 2013b). Non-Gaussianity below the current limits is expected in generic models of cosmic inflation (Maldacena, 2003) that are commonly used to explain the initial density perturbations in the Universe._

Using current best knowledge about the early universe, it looks like planets did form, but were extremely rare. With some plausible tweaks to how "clumpy" the initial universe was, one ends up with _lots_ more planets.

Side note: much of the paper measures time in z (red shift) instead of years. See [http://en.wikipedia.org/wiki/File:Distance_compared_to_z.png](http://en.wikipedia.org/wiki/File:Distance_compared_to_z.png) to get an idea of the relationship between the two. The red dotted line is time in the past. The black solid line is comoving distance[1]. For comparison, some really old objects are mentioned at [http://en.wikipedia.org/wiki/Redshift#Highest_redshifts](http://en.wikipedia.org/wiki/Redshift#Highest_redshifts)

1\. Distance if you could freeze the universe at the present day and lay out a bunch of yard sticks.

<comment><USER8> Do you have a link to the actual paper?

Do you have a math relationship between time and CMB temperature?

Interested to know how long this early era of habitability lasted (not mentioned in the article).

</comment></comment></comment><comment><USER9> I have to admit it would be poetic and typical of scientific progress in general that while the religious texts have marked the creation of mankind as the beginning of the great cosmic opera, with our story as the center, if in fact it turned out we're not only nothing special, but worse: an epilogue, a post-credits reel, an afterthought appearing in a flicker as the lights go out well after the real saga has ended.

<comment><USER10> While an interesting idea, I have the same objection to that idea that I have to the idea that life in general is abundant today, which is that we should see the evidence of it. Any truly long-lived society is going to have to engage in some cosmological engineering to survive, and we don't see it.

Furthermore, while any given _species_ might not have survived from so long ago, life itself should never have died out, if intelligent life was common and abundant. The challenges of surviving that era are such that even _we_ can plausibly imagine being able to meet the challenges in a century, or less if we were concentrating.

It's a poetic idea, but the universe does not look like one in which we are some last dying ember living in the carcass of past giants; it looks like one in which there's little-to-no intelligent life in our past light cone.

<comment><USER11> If you consider the "infinite" of space and, especially, time, I believe that the probability of the existence of (at least) one "inteligent" species capable of reaching any given place of the universe is 100%.

The question of why they don't contact us is simple: Prime Directive ([http://en.wikipedia.org/wiki/Prime_Directive](http://en.wikipedia.org/wiki/Prime_Directive))

Disclaimer: I'm not a particular fan of Star Trek and bumped into this interesting principle, which I believe makes perfect sense.

<comment><USER10> Time is not infinite, and our past light cone is not infinite. It grows as less than the cube of the space we can observe (the universe is very not universally distributed), while the independent probabilities of whatever is required for life multiply exponentially. The idea that the odds of life are 100% is just a naive "Big Numbers" fallacy.

The Prime Directive was created to _preserve the desired structure of drama on a TV show_. It is ludicrous from any other perspective.

</comment></comment></comment></comment><comment><USER12> Anybody considered that life was then not restricted to planets? That's a 'modern' conceit. IF the entire soup of the much-denser smaller universe was room-temperature, then life could have existed in any dust-cloud or water-rich soupy place. It may have been life from a real primordial soup that settled onto planets as they formed.

</comment><comment><USER13> Eh? What about the lack of heavier elements at this stage of the universe? Or the fact that it wasn't this warm for the next 3-4 billion years (about the time it took to form complex life here)?

Also: >By demonstrating that life could have formed so early, Loeb may even have delivered a blow to so-called anthropic arguments about life in the universe.

What? No.

<comment><USER14> Right, they seem to be confused about what the anthropic argument means.

<comment><USER15> That gave me pause too, and this is the best explanation I could think of for why the author brought it up: The anthropic principle can explain why we find ourselves in a universe exactly this old, because billions of years earlier the conditions weren't yet suitable for life. If you mistakenly think the anthropic principle is making a fixed prediction about the point at which suitability began, then you might think that discovery of an earlier period of suitability would invalidate the principle, but of course it does not.

</comment></comment></comment><comment><USER16> I'm more intrigued by the possibility (however minute) that we _are_ alone. That's the scariest thing in the world to me: that it's up to us to preserve ourselves, what may be the most precious jewel in the universe. And we're failing.

<comment><USER17> whenever watching movies about aliens attacking our planet to consume our resources, i've always had the thought that we're actually making movies about ourselves when we do eventually find sentient beings somewhere out there. which corporation is going to shell out enough money to hire an army to go get that unobtainium?

</comment></comment><comment><USER18> Nobody had ever connected the dots?

That's nonsense. I studied Physics in the early 90s and the various possibilities for early habitability used to crop up in conversation - in the common room if nothing else.

<comment><USER19> I think they meant that no one had bothered to write a paper, not that no one had ever thought of it.

</comment></comment><comment><USER20> Interesting. Though I wonder whether temperature alone is enough. You need some gradient for energy to flow through the system.

<comment><USER7> This is addressed in the paper. In the second paragraph of the third section, labeled Discussion:

 _Thermal gradients are needed for life. These can be supplied by geological variations on the surface of rocky planets. Examples for sources of free energy are geothermal energy powered by the planet's gravitational binding energy at formation and radioactive energy from unstable elements produced by the earliest supernova. These internal heat sources (in addition to possible heating by a nearby star), may have kept planets warm even without the CMB, extending the habitable epoch from z ∼ 100 to later times._

</comment></comment><comment><USER21> So where are those life forms today? Have most of them gone extinct? Have some evolved to the point where we wouldn't recognize them as "life forms" today?

<comment><USER12> Imagine their despair as the temperature dropped (how quickly?) on their planet far, far from any star. They must have thought the universe is cruel, and God is a jerk.

</comment></comment><comment><USER22> What would the wavelengths of the background radiation be at this time? Wouldn't there be an awful lot of high energy particles bouncing around?

I ask because I wonder what limits there would be to complex molecules forming under those circumstances: how much insulation would they need to protect them and whether that amount of insulation would limit the development of life.

</comment><comment><USER23> see also landis's haunting piece "the melancholy of infinite space" [[http://www.geoffreylandis.com/infinite.htp](http://www.geoffreylandis.com/infinite.htp)], which starts off:

We live at the very beginning of the Universe.

As we peer back with our telescopes toward the beginning of time, and measure the age of the universe, we are beginning to find that the universe is closer to ten billion years old than to fifty; that the oldest of the stars we see around us are, in fact, as old as any star can be; as old as the universe itself. Looking outward, we are finding that the gravity of the universe is not enough to pull it back together in some future cataclysmic big-crunch. The universe will expand forever.

Ten billion years. A mere eyeblink in cosmic time. We stand at the beginning of time, looking outward into the void of infinite time.

</comment><comment><USER24> Ctrl-f metal.. nope. Metallicity. I would've thought at that time when the first stars were forming there weren't enough heavy elements to produce rocky planets yet. Some time after the first few supernovas, which should've taken just a few million years more, it should've been possible.

</comment><comment><USER25> This makes me wonder if we are just children of some of the earlier species. If not, did life spontaneously come to existence here, on our lump of rock in space?

In any way, as someone already had said, we're a bit late for the show now.

<comment><USER26> If that's the case, did life spontaneously come to exist on _their_ lump of rock?

</comment></comment><comment><USER27> Upvoted for the Tom waits reference.

</comment><comment><USER28> My mind is utterly blown. So it's possible that there were life forms (roll of the dice) before when the temperature of the universe was best. They did not figure out how to survive or did they? If they had wouldn't they have already made contact and transferred some of their survival know hows?

The idea that universe gets colder and colder resulting in less and less life is reflection of our current state. We haven't found a civilization beyond this planet and I fear we never will.</comment>


A peek at a Firefox.next feature: about:me - <AUTHOR> http://mozillalinks.org/wp/2009/06/firefox-next-peek-profiling-yourself/

<comment><USER2> The feature allows great applications:

For example: Friends at a party in my flat, drinking beer, watching Youtube Videos. In the future they can also make jokes on my internet usage habits!

And: Finally i can control what my girlfriend does on the internet! (Of course i won't tell her about the feature - she wouldn't be interested anyway...)

My suggestion for the next FF-Version: Send about:me data directly to boss. Weekly. Hidden, please.

(The concept of "One Browser == Private Area of One User" was always wrong on desktop-PCs. Why does everyone insist on it?)

</comment><comment><USER3> The collective anger on this thread is misguided. All this "about:me" is doing is giving you a good representation of data collected and stored automatically by Firefox. Anyone who gives a crap can already look at where you've been, what you've done, etc.

If anything, this is a step in the _right_ direction, as it'll make more people aware of the logging that takes place "out of the box".

And performance critics, a javascript page isn't going to affect memory usage ALL THE TIME in any significant (or even necessarily measurable) way

</comment><comment><USER4> I agree with the first reader comment over at mozillalinks -- it feels like the feature should really live as an extension. The average user isn't going to know or care about this, and it just increases the size of the codebase. Firefox certainly doesn't need to get any heavier out-of-the-box.

<comment><USER5> Or take up more memory! <http://bit.ly/s4cIi>

<comment><USER6> Voted down for not posting the real URL.

<comment><USER5> I didn't know that was a concern, thanks for bringing it to my attention.

</comment></comment></comment></comment><comment><USER7> Cool - also reminds me of pmog, which apprently has been renamed to Nethernet now: <http://thenethernet.com/></comment>


Ask HN: Any HN readers in Austin, Texas? - <AUTHOR>

I see a lot of San Fran stuff on here, and that makes a lot of sense. The start up scene in Austin isn't exactly dead and I was wondering if there were any like-minded hackers in the Austin area that wouldn't mind getting together for anything and everything, disc golf, business, etc.? <comment><AUTHOR> Hey everyone. Didn't seem like a lot of people saw my previous message.

skottie at connersc dot com Please email me with some info - I'd really like to get a social/hacker network going in Austin. I know there is Door64/Cocoa Coders/etc, but I'm thinking something for ourselves.

I'm planning on going disc golfing at circle C this weekend (slaughter area) if you guys would like to come along for a casual meet up.

If you suck, don't worry. It will be my first time playing in months, as I had back surgery over the summer.

There is obviously enough interest, and once I have people's contact information I'll start a phpBB or google group so we have our own little home.

I look forward to hearing from you.

Here is a little about me so I'm not a complete stranger: <http://www.connersc.com/blog> (as if you couldn't have figured that one out).

</comment><comment><USER2> I am.

There is at least one site (Door64) dedicated specifically to Austin tech, that has regular networking events. It may be interesting to join them because of the focus on Austin.

<comment><AUTHOR> Thanks for the replies guys! Nice to know I'm not alone. I've been to Door64 events and they seem like a great place to network. It looks like there's enough going on here - so lets take this off line. If you guys could e-mail me your contact information to:

skottie at connersc dot com.

Austin Ho!

</comment></comment><comment><USER3> Another UT student here. I've been reading HN for a ages and signed up just so I could reply to this; we should get a meet-up going some time.

</comment><comment><USER4> I do. Going to UT at the moment. Was about to post this same thing after seeing the SF post, looked down the page and there it was :)

</comment><comment><USER5> I am in Austin but mostly a lurker on HN.

I have lots of ideas for start-ups but none compelling enough to make me quit my day job.

</comment><comment><USER6> I'm about 90 miles away in College Station. Not too much goes on around here even though Texas A&M is here in town.

</comment><comment><USER7> Austin, UT, international student here. Started with HN pretty recently after getting tired of proggit.

</comment><comment><USER8> I am also in Atx, and would be interested. I got a ton of ideas, and working on one now...

</comment><comment><USER9> Austin here and I would be interested in a meet-up.

</comment><comment><USER10> I'm in the Austin area, but occasionally in the heat of the summer I start longing for the cooler temperatures of Seattle or Silicon Valley, lol.

It sure gets hot in Texas. :-)</comment>


Volatile: C Keyword Myths Dispelled - <AUTHOR> http://www.safercode.com/blog/2009/02/24/volatile-c-keyword-myths-dispelled.html Volatile is one of the most misunderstood component in C history. Let's separate out the myths and the facts first and then we will discuss the how's and why's of it. <comment><USER2> And additionally, cases when volatile is really necessary around setjmp()/longjmp() are pretty rare.

<comment><AUTHOR> True..I try to avoid volatiles as much as I can. And as someone else pointed out on the blog in the commens, many implementations even get the volatiles wrong giving rise to a lot of bugs, so even if you were utmost careful about it, it can still cause issues.</comment></comment>


The ELM701 is a low-power chip for creating mouse-like noises [pdf] - <AUTHOR> http://www.elmelectronics.com/DSheets/ELM701DS.pdf <comment><USER2> They actually specify that this is a PIC12C5xx in the datasheet. Still, a fun part. :)

<comment><USER3> Are they in that type of business generally?

Their ELM327 OBD chip is also a PIC: [https://en.wikipedia.org/wiki/ELM327](https://en.wikipedia.org/wiki/ELM327)

<comment><USER2> Seems like. It's a fairly practical model for a lot of simpler devices. I've seen dedicated mouse controllers along similar lines. Microchip themselves produce a number of devices that I'm sure are PIC-based internally too.

<comment><USER4> It's been mentioned that their USB-serial converters are PICs that failed tests of other peripherals:

[http://hackaday.com/2011/01/18/mcp2200-usb-to-serial-chip- ha...](http://hackaday.com/2011/01/18/mcp2200-usb-to-serial-chip-hacked-to-do- your-bidding/)

One of the code samples they have on the site is a USB-serial converter, so it is likely to be running that firmware too.

</comment></comment></comment></comment><comment><USER5> That's probably a microcontroller like a PIC that has been flashed to run the pseudorandom generator. I doubt it is an ASIC.

</comment><comment><USER6> How do they ever expect to sell an audio generator, without publishing a sample of the audio it generates?

<comment><USER7> I don't think I've seen a sheet on any sort of audio generator that has a sample file. Normally, you'll buy or request a couple samples to use in prototyping. There are way too many factors that affect what it'll sound like to make a sample file non-useful.

</comment></comment><comment><USER8> Haha awesome, I've always wondered what kind of chips were in those toys</comment>


Learning from Your Bugs - <AUTHOR> https://henrikwarne.com/2016/04/28/learning-from-your-bugs/ <comment><USER2> We do something similar. Any bug that is submitted by a customer (rather than QA, or a trial team, or other developers) is analyzed. 50% of our bugs are due to poor requirements. 25% are due to poor design. The other 25% are just coding problems.

Most of the requirements problems derive from lack of understanding about the tradeoffs in the current system or lack of understanding what the customer actually wants.

Most of the design problems are a result of excessive complexity. People often forget to simplify and refactor prior to adding a new feature. They end up having to keep a larger system in their brain when designing than they otherwise need to. Therefore they miss interactions that exist or forget to handle them in the new design.

Most of the coding problems would have been caught had unit tests been clearer and closer to 100% branch/code coverage. It is amazing how many bugs lurk in the last 5% of testing.

It is actually quite fun to tell a product manager that they are the cause for a bug :) Usually it is the developer that

<comment><USER3> > Most of the coding problems would have been caught had unit tests been > clearer and closer to 100% branch/code coverage. It is amazing how many bugs > lurk in the last 5% of testing.

Presumably, coverage starts with the low-hanging fruit (simple, linear code; heavily-exercised code like startup routines and main loops; etc.) and grows to encompass ever more unweildy, smelly, edge-case parts of the codebase.

Hence, by increasing code coverage, we're boiling off the solvent of run-of- the-mill code, such that what remains uncovered gets an ever stronger concentration of hackery, unintelligibility and black magic. By 95% coverage, the bits remaining are those parts people don't want to touch, so I'd expect the concentration of bugs to be highest there.

:)

<comment><USER2> precisely! As programmers that is what we care about.

But really, at that point the business often doesn't care. Not when a requirement bug could cause months of lost engineer time.

Our experience is requirement bugs are much more costly than a missed unit test resulting in a bug.

</comment></comment></comment><comment><USER4> I do this with chess. I take positions from tournament games in which I made a correctable mistake (generally not positions in which there was just a lot of calculation to be done and I wasn't up to the task) and add them as flashcards to my spaced repetition system.

It is true that software engineers often treat bugs as unfortunate but unavoidable noise in the system; when one pops up, you fix it and move on. But it's really worth thinking them as an inherent part of the process of software development, one which you can improve and learn from, just like anything else.

</comment><comment><USER5> I never bothered to write down details of bugs... I rarely learn a lesson from any one specific bug - Lessons are learned by being exposed to a wide range of different bugs over many years. Eventually it becomes gut instincts.

For example today I was debugging an issue with Kubernetes (it was a really cryptic error about client-server not being able to negotiate a protocol or similar). I had never used Kubernetes before and I couldn't find anything on Stack Overflow.

The first thing I did was check the client and server versions (to see if they matched) - They did so that wasn't the issue. So then I had a strong 'gut feeling' that it was related to the client configs.

In this case, my second hypothesis turned out to be correct. 5 years ago I would probably tested my way through 20 different hypotheses before finding the problem.

To summarize my debugging strategy, it's simple; just pick all the low-hanging fruits first. The hard part is knowing what a low-hanging fruit looks like.

<comment><USER6> This is basically intuition, a base of experiences that leads to these "gut instinct" decisions and feelings. Doing a journal like the author describes could actually help with your intuition because you're adding more specific information from each bug into your mental storage. Now you're getting a cursory level of data from each individual bug which leads you to think each one is less important. It's like skimming 3 books on a subject instead of close reading 1.

I'm just thinking out loud because I do what you describe here but I think the journaling idea could be valuable.

<comment><USER7> FWIW, journaling has been useful to me. I've run into bugs and thought, "I know I hit something just like this before. Oh wait, let me look through my debug journal and see if there's something in there!" And often there is. It saves me having to do web searches or guess and use hunches. I can always fall back on those things if it's something I haven't seen before or is manifesting in a different way.

I'd go even further and say that I've often wasted time chasing down a hunch that was completely wrong.

<comment><USER5> This has happened to me several times as well (encountering a problem which I felt like I had encountered before on a specific project).

It's a good memory exercise to try to remember when was the last time I hit that bug. At the beginning, I wasn't very good (and I couldn't remember the solution of the earlier problem - a journal would have been handy at that point) but after doing this for a while, now I almost always remember the solution to various regressions I encounter.

</comment></comment></comment></comment><comment><USER8> I have a similar process myself. What I find to be helpful is to ask myself what, in particular, went wrong. If I have a handful of cases where "some api was used wrong", then I take that as a sign of a need for refactoring to make the callee easier to use.

Another that I like to ask myself, is how I can use the compiler and its type checking to my advantage. As in, how can I make it more difficult for myself to make this bug again in the future?

But I agree with the author's point: Nearly every bug is an opportunity to learn. You should not just fix bugs, but also to understand why they happened.

</comment><comment><USER9> I'm kind of doing the same but instead I write my analysis and notes in the pull request that fixes the bug. I think it's a great way for others to learn too :)

</comment><comment> another-dave Sounds quite interesting to see how it will build up and to spot any patterns emerging in the results.

Will give it a go over the next while. Cheers for sharing!

</comment><comment><USER10> This is a clever and straightforward technique.</comment>


Doing Terrible Things to Your Code - <AUTHOR> http://blog.codinghorror.com/doing-terrible-things-to-your-code

<comment><USER2> As per usual, never read the comments.</comment>


Visual Group Theory - <AUTHOR> http://web.bentley.edu/empl/c/ncarter/vgt/ <comment><USER3> This book was far too wordy for me. I found a better compromise by reading two these books in parallel:

* Burns' "Groups: A Path to Geometry": [http://www.amazon.com/Groups-Geometry-R-P-Burn/dp/0521347939](http://www.amazon.com/Groups-Geometry-R-P-Burn/dp/0521347939)

This was the main read. It's approach is to take the reader through group theory by presenting it as a series of problems. Discussion is limited mainly to historical notes.

* Pinter's "A Book on Abstract Algebra": [http://www.amazon.com/Book-Abstract-Algebra-Second-Mathemati...](http://www.amazon.com/Book-Abstract-Algebra-Second-Mathematics/dp/0486474178/)

While going through Burns' book, if I needed more of a discussion on a certain topic, then Pinter's book always felt like it comfortably quenched my desire. Here is someone's discussion on why Pinter helped (along with a proposed litmus test for group theory texts): [http://math.stackexchange.com/questions/1469294/recommendati...](http://math.stackexchange.com/questions/1469294/recommendations- for-an-illuminating-explained-in-the-post-group-theory-abstr)

<comment><USER4> Thanks for both references. It's been a while since I studied algebra in college and I'm hoping to get back into it and solidify my understanding. What do you think of Artin's Algebra? [http://www.amazon.com/Algebra-2nd-Michael- Artin/dp/013241377...](http://www.amazon.com/Algebra-2nd-Michael- Artin/dp/0132413779?ie=UTF8&me=&ref_=mt_hardcover)

<comment><USER5> If you are going from Burns/ Pinter to Artin you might have a hard time - <USER2> would recommend looking into books on Linear algebra, group theory ( more advanced than Pinter), Galios Theory, elementary/ Algebraic number theory or if you have the background Algebraic geometry/ topology.

Then when going through these refer back to Artin if there is something you do not understand or want to see the Algebra from a different perspective.

It is often hard to motivate Alegbra without having seen it occur naturally elsewhere. All this being Artin is a great book. Good luck.

</comment></comment></comment><comment><USER6> I'd kind of like to buy this just for the visuals. I'm happily competent with group theory already, but wouldn't mind a neat coffee table book!

</comment><comment><USER7> This is a very good book. It is true that one does not need more than "a high school mathematics background", in the sense that you don't need to know advanced technical stuff. But to really appreciate it one needs some maturity and sophistication that a standard high school curriculum is unlikely to provide.

<comment><USER8> I studied abstract algebra without much difficulty and I never even took calculus. I just had to wrap my mind around how to think about proofs ( not much different than thought process of figuring out the code you are writing actually works and is consistent).

This the best math book ever( I dislike math) : [http://www.amazon.com/Book- Abstract-Algebra-Second-Mathemati...](http://www.amazon.com/Book-Abstract- Algebra-Second-Mathematics/dp/0486474178/)

</comment></comment><comment><USER9> This has been on my wish list for some time - seems time to buy it.

</comment><comment><USER10> Looks great, but $75? Really? Why are these books so expensive? And no (cheaper) kindle edition?

<comment><USER11> because not millions of 13 year olds will read them

</comment></comment><comment><USER12> I found the book on scribd:

[https://www.scribd.com/doc/116393104/Visual-Group- Theory](https://www.scribd.com/doc/116393104/Visual-Group-Theory)

I don't really know that website, I just googled, and I checked that I can access all pages and without having to login or subscribe. "Download" asks for a login, but I only wanted to check the book out.</comment>


Taking payments online – merchant account & payment processor fees - <AUTHOR> http://blog.boxedice.com/2009/05/20/taking-payments-online-merchant-account-payment-processor-fees/

<comment><USER2> I'm going to go against the grain of this post and say that a merchant account isn't for everyone. I was surprised the author did not mention one of the big drawbacks to merchant accounts: fraud and charge backs. PayPal and Google Checkout, for example, handle most of that liability while a merchant account will make put that responsibility on your shoulders.

Generally it's not something to be afraid of, but if you're bootstrapping a business and/or your product tends to draw a lot of fraudulent shoppers (high price, rare, etc.), then it's something to consider.

During college we use to sell customizable, fix mounted projection screens online; they would range in price from ~$800 - $4,000+ depending on the screen material. We had so many fraud attempts in our first few months that we almost shut down the ecommerce section of the site. Getting our merchant account was a big headache and not something we probably needed to deal with given the low volume of transactions (less than 10 sales a month) in regard to the high number of fraud attempts.

I think it makes a lot of sense to deal with your own merchant account if you're doing high volume of sales, especially when it's usually relatively low cost goods/service/subscriptions. Scaleable web startups that rely on subscriptions apply here, our projection screen business wasn't exactly a "startup".

<comment><AUTHOR> Using something like PayPal or Google Checkout is false security as far as chargebacks are concerned. They do have extra security features but, PayPal at least, has a lot of fraud.

I'm unfamiliar with Google Checkout but I have handled chargebacks through PayPal before. The buyer has exactly the same freedom to issue the chargeback through PayPal as they would if they had purchased with a card through your merchant account. PayPal hold you liable for any chargebacks, especially if the customer does it through their bank instead of the PayPal disputes console.

Having a merchant account allows you to do your own fraud checks against payment details - address, IP, etc. Good payment processors will do this for you. You can also do your own checking using something like MaxMind.

In terms of fraud, you're going to have to deal with it regardless of whether you use Google or PayPal (or anyone else).

<comment><USER2> I agree with you but I know first hand that Google Checkout and PayPal offer a first tier of defense against it, you pay for it in the higher fees. For some people and depending on the state of their business, it's probably worth the time-savings, that's all I was really saying.

</comment></comment></comment><comment><USER3> Thanks for the article. Well written and informative. What I can't understand is why this is _still_ such a painful process. ecom was the hype back in 1999. If you're a payment gateway you should have SOAP and REST interfaces. You should have example code and tutorials for every popular web platform out there (struts2, rails, django, .net, phpcake, etc.). You should have detailed use cases for 90% of the typical payment requirements.

I should probably shut up or put up, but I'll have to look into what's involved in setting up a company like this first. The state of payment processing just seems so far behind.

</comment><comment><USER4> What about merchant account vs the premium services like Paypal Website Payments Pro? Their fees are reasonable and the API looks like it accounts for the flexibility issues you would ordinarily go to a full merchant account for. I'm currently considering this myself and I'd be interested in anyone's experience or comparison :)

</comment><comment><USER5> Another good article on the merchant account setup process: <http://news.ycombinator.com/item?id=530055>

</comment><comment><USER6> I've used cdgcommerce.com for payment processing. What stood out from them was their rates and customer service. You get an authorize.net account which exposes a rich api.</comment>


Sparetoolz - <AUTHOR> http://www.sparetoolz.com <comment><AUTHOR> There is no peer-to-peer tool rental application on iOS. Peoples tools are just collecting dust in their garage. It's a real problem I experienced myself so I decided to make an app and bring it to the sharing economy.</comment>


Unprotected Database Puts 65% of American Households at Risk - <AUTHOR> http://fortune.com/2019/04/29/security-gap-personal-information-breach/ <comment><USER2> This headline is getting old. Time for some legal action against negligent companies.</comment>


Long-term exercise impacts genes involved in metabolic health - <AUTHOR> https://medicalxpress.com/news/2020-06-long-term-impacts-genes-involved-metabolic.html <comment><USER2> As a daily runner for 25 years and a woman this is very validating.</comment>


Big government does not need to be reinvented, but eliminated - <AUTHOR> http://sabazio.blogspot.com/2014/01/big-government-does-not-need-to-be.html

<comment><USER2> "Rather big government needs to be eliminated. Full stop. And the entrepreneurs in the private sector need to be unleashed."

When the entrepreneurs in the private sector choose not to tackle problems that aren't "sexy" or "novel" or "profitable," what then? When those capable businesses choose not to serve a particular segment of the population because those folks are "difficult" or "expensive" or "not sufficiently numerous," what then? The problem is that in a government bound[1] by equal protection, it must, in all reality, be at least equally available to all people. Skipping this step is a luxury afforded to private enterprise.

I can understand why no one wants to be a federal government employee these days. They are constantly demeaned as being leeches on society, as being incompetent, and used as political footballs. It's no wonder that government, at any level, can't attract talent. This is a bad thing, in my opinion, as it prevents the efficient functioning of a system that does have a role in a country of 300+ million people. The exact contours of that role have been in debate for approximately the last 230 years or so, but the essential question of whether or not a government should exist has rarely been in doubt. Instead of drowning it in a bathtub, how about making our government be worth a damn?

1 - Carping about whether or not the U.S. government adheres to the Constitution can be inserted here.

</comment><comment><USER3> As bad as first semester philosophy majors can be with oversimplifying problems with governance, they hold no candle to the silicon valley libertarianpreneurs such as this. This is a Fox News rant filtered for a wealthier audience.

<comment><USER4> But we just need to 'unleash' all the awesome private sector entrepreneurs who are successfully tackling the problem of the lack of affordable healthcare for millions of Americans.

Oh wait, there are no private sector entrepreneurs who succeeded in solving that problem? It must be because of all the 'big gubmint' and their regulations.

How does this trash make it into my HN feed?

</comment></comment><comment><USER5> "Anyone who has worked for a true startup knows that the most "agile" form of software development environment is a small group of private sector engineers with a vision and a desire to create a product that will make them all fabulously wealthy. It is only in such an environment that all members of the team work long hours with a common purpose, jumping into the breach to address any and all problems without regard for immediate compensation or consideration of "who's responsibility it is." The private startup company is the only truly "agile" development environment."

Agile != Working long hours. It is also perfectly possible to be 'agile' in small teams within a larger organization.

</comment><comment><USER6> > It describes how the federal government, after the epic failure of the > healthcare.gov rollout, is reviewing how it manages high-tech projects.

FYI: The reforms enacted by the ACA does not consist solely of the healthcare.gov website, it is a small portion of a _much_ larger picture. So I wouldn't paint ObamaCare as a epic failure just because the website was having issues the first few months of it's rollout.

<comment><USER7> The quoted sentence says "the epic failure of the healthcare.gov rollout". It did not "paint ObamaCare as a epic failure just because the website was having issues the first few months of it's rollout".

However, I do agree the healthcare.gov website is just a small portion of a much larger picture, so we can also expect an epic epic epic ... epic failure of the "much larger" whatever.</comment></comment>


Genius: The Modern View - <AUTHOR> http://www.nytimes.com/2009/05/01/opinion/01brooks.html?_r=1 <comment><USER2> In hindsight it's an obvious lesson, but one that is not being stressed in school.

Sadly, focus is something which is very hard to consciously apply (at least for me).</comment>


The Apple Podcast App Is UX Garbage - <AUTHOR> https://www.youtube.com/watch?v=PsVwpD5bOKE <comment><USER2> The podcast app is not only UX garbage, syncing between devices is unreliable and buggy.

I use Overcast - it's better in every way.

</comment><comment><USER3> Besides this video review being hilarious, it's also troubling.

Apple is a large enough and experienced enough company that fails like these are ridiculous to explain away.

One has to wonder if in the Steve Jobs era if this app and this type of publicity would get the app pulled and people held accountable.</comment>


Show HN: my hackathon project - free real-time web analytics - <AUTHOR> https://www.quantcast.com/inside-quantcast/2013/06/quantcast-measure-now-in-real-time/

<comment><AUTHOR> Many of our publishers have opted to make all or portions of their real-time profiles public. See for example, gizmodo.com[0], stackoverflow [1], and Quantcast.com [2].

[0] [https://www.quantcast.com/labs/real- time/site/gizmodo.com](https://www.quantcast.com/labs/real- time/site/gizmodo.com)

[1] [https://www.quantcast.com/labs/real- time/site/stackoverflow....](https://www.quantcast.com/labs/real- time/site/stackoverflow.com)

[2] [https://www.quantcast.com/labs/real- time/site/quantcast.com](https://www.quantcast.com/labs/real- time/site/quantcast.com)

<comment><USER2> Pretty impressive, we used Quantcast at my previous job and I was really impressed that you guys did for free what other services charge top dollar for. (Nothing wrong with charging top dollar, of course, but obviously if there is a quality free product...)

Some quick questions: 1\. This is way more than a simple Show HN hackathon demo. :p I'm assuming you (and others?) spent some time on this? 2\. When you say "currently ... (unique visitors)" \- is that uniques across the entire time period (120 seconds?) or uniques at one second? What's the window for that calculation? 3\. I'm assuming you do NOT use Storm for uniques calculation - just a custom script/job?

<comment><AUTHOR> 1\. Yes, myself and another engineer (@schimmy_changa) spent about 4 months getting it ready for public use after releasing the initial version internally.

2\. That's unique visitors "currently" on your site, where that's defined as having visited a page in the last five minutes. The question marks provide more detail on the various metrics.

3\. Everything is computed in Storm. The reach (unique visitor) calculations are done using some proprietary stuff I don't think I can talk about (although we're working on a more engineering-focused blog post that will have more of these details).

</comment></comment></comment><comment><USER3> I'm using Google Analytics for www.planza.com and was thinking on using Kissmetrics. How is Quantcast different?

<comment><USER4> Our demographics are the best out there- you can figure out age, income, race, etc of people coming to your site.

We also offer an API where you can call out and receive info on the general demographic profile of a visitor (likely male, likely makes between 50-100k, etc) and then modify your pages in response.

And of course, a sweet real-time lobby display for your website ;)

<comment><USER4> If you put the tags on your site, you can actually go to the real-time page right now and see the results- no waiting!

</comment></comment></comment><comment><USER5> This is great. Is there an API available to query the real time stats?

<comment><USER4> no, although if you check out the HTTP requests your browser is making to our servers, you might find something interesting ;)

again, there is no real-time API as of now, and don't count on anything staying put - this is a labs product!

<comment><USER5> wow. nice.

wait, I've built our entire business model on top of this feature you can't go all Google Reader on me now ;-)

In all seriousness, any hints on how this is brewing internal and the possibility of something non-lab in the future?</comment></comment></comment>


TSSG – A web based editor for Swagger Schema Generation - <AUTHOR> https://jskod.github.io/tssg-editor/ <comment><AUTHOR> This web based editor will help you save time while writing Swagger Schema. Check out and provide your feedback so that we could improve and add more features into it.</comment>


Immutable-cpp: persistent immutable data structures for C++ - <AUTHOR> https://github.com/rsms/immutable-cpp <comment><USER2> Nice to see more immutable data structures for C++. I recently implement a persistent list inside a personal project, it's quite easy using shared_ptr (a set of persistent list forms a DAG, so no loop).

It would be nice to have a persistent version of all standard containers. It seems that implementing "Finger Tree" would be a good start as a basic building block. But I didn't find any c++ implementation.

</comment><comment><USER3> "Practically O(1)" is meaningless. If it's not actually constant time, then how does it grow?

<comment> Tuna-Fish Every operation that is not actually constant time grows by log32. Or in other words, by no more than the constant factor 5.

In practice, these data structures live and die by your memory allocator. They do so many allocations that unless you are using a world-class GC, the memory allocation costs completely overshadow any other time costs. Using the typical platform malloc, or even jemalloc or it's ilk, this will be very slow indeed.

<comment><USER4> Yes. This begs for a port to Rust, to see if the fine-grained memory support there pays off. While Rust can do anything, it wants to be bare-metal Haskell.

<comment><USER5> C has just as much fine-grained memory support as Rust. Rust does however have better memory safety with its borrow checker, but I'm not sure if you could implement something like this without unsafe.

<comment><USER5> It seems I was a bit too fast. I meant to write C++ and not C.

</comment></comment></comment></comment></comment><comment><USER6> Sorry, I am lost: why is this a big deal? I use std::array and it's fine.

<comment><USER7> Their Array class is perhaps unfortunately named, as it behaves as a vector or list (i.e. you can push things to the collection) rather than fixed size memory block.

The important thing to notice in their example is the assignment to 'a' when pushing items (` _a =_ a->push(1);`), and the ability to reassign the new change to a new variable (` _auto b =_ a->push(4);`). That last command keeps 'a' the same (hence "immutable" data structure), but creates a new variable 'b' to hold the new data.

This technique allows you to, for example, pass the same data structure to multiple threads without worrying that they will simultaneously change data (race conditions).

More information can be found here [https://en.wikipedia.org/wiki/Persistent_data_structure](https://en.wikipedia.org/wiki/Persistent_data_structure) (check out the linked list and tree diagrams in examples).

For this to work properly in C++, I think you'd need to const all types for it to be effective (immutable::Array<const MyStruct>).

I'd really like to see benchmarks comparing these structures implemented in C++ vs those in functional languages; I don't know if the compiler optimization algorithms produce similar code.

<comment><USER8> Naive question: even so, what's the advantage over using, say, a const std::array<MyStruct>?

<comment><USER9> Well, when you pass a variable around, it doesn't and cannot change. This means that different threads can't get in eachothers' way anymore, for instance, but also that you can't make a big chunk of mistakes at all.

They also have serious disadvantages : they can't be memory managed in the traditional way (since they tend to reuse other instances' memory in complex ways), and thus require a GC (refcounting can work, but ...). They are VERY allocation intensive, and they are worse than most non-persistent data structures. Assuming an O(1) allocator they can match non-persistent data structures in O-ness (ie. when making an invalid assumption that is quite popular in academia. In practice memory allocation is O(1) for small values, then O(n^2) once you get close to the system's memory capacity (scanning for holes in a long list) but don't go over it, and then O(oh fuck it let's just reboot this bloody BOAT ANCHOR) when crossing that line).

Clojure is famous for having good persistent data structures. Rich Hickey went touring academia touting the benefits of immutable/persistent/functional data structures : [https://www.youtube.com/watch?v=dGVqrGmwOAw&feature=youtu.be...](https://www.youtube.com/watch?v=dGVqrGmwOAw&feature=youtu.be&t=1265)

There's also a famous book: [https://www.amazon.com/Purely-Functional- Structures-Chris-Ok...](https://www.amazon.com/Purely-Functional-Structures- Chris-Okasaki/dp/0521663504)

<comment><USER10> > Well, when you pass a variable around, it doesn't and cannot change

Yeah but how's that different than a const?</comment></comment></comment></comment></comment>


JavaScript Patterns Collection - <AUTHOR> http://shichuan.github.com/javascript-patterns/

<comment><USER2> Some have commented that the linked article may not always contain best practices. The following links always seem to get fantastic praise - they're permanently in my JS bookmarks. Having an understanding of the core language rather than using frameworks is a great start; these articles will certainly help.

Eloquent JavaScript: <http://eloquentjavascript.net/contents.html>

Learning JavaScript Design Patterns: [http://addyosmani.com/resources/essentialjsdesignpatterns/bo...](http://addyosmani.com/resources/essentialjsdesignpatterns/book/)

JS The Right Way: <http://jstherightway.com/>

Learning Advanced JavaScript: <http://ejohn.org/apps/learn/>

Ask HN: JavaScript Dev Tools: <http://news.ycombinator.com/item?id=3550998>

MVC Architecture for JS: [http://michaux.ca/articles/mvc-architecture-for- javascript-a...](http://michaux.ca/articles/mvc-architecture-for-javascript- applications)

Large-Scale JS Application Architecture: <http://addyosmani.com/largescalejavascript/>

Mozilla Developer Network - Intro to OO JS: [https://developer.mozilla.org/en- US/docs/JavaScript/Introduc...](https://developer.mozilla.org/en- US/docs/JavaScript/Introduction_to_Object-Oriented_JavaScript)

<comment><USER3> I'm a big fan of JavaScript Garden: <http://bonsaiden.github.com/JavaScript- Garden/#intro>

</comment></comment><comment><USER4> I'm going to be critical and say that I don't like the format of this reference; each entry in the table of contents links to a source file in github (opening in a new window/tab) instead of being, for example, a collapsed code box in the same tab.

Second, they're not .js files, but .html files with (in my opinion) obsolete / unnecessary html boilerplate surrounding it. If it's simply a page to demonstrate / display JS patterns, they should be plain .js files, I think; from what I've seen, those should run equally well in a browser and node.js.

I'm also not a fan of tab-based indentation, the examples could be a lot more compact (and readable) horizontally if using two-space indentation instead of tabs.

<comment><USER5> >I'm also not a fan of tab-based indentation, the examples could be a lot more compact (and readable) horizontally if using two-space indentation instead of tabs.

That's the forte of using tabs. Change your display width of tabs to 2 spaces instead of 4.

Tabs for indentation, spaces for alignment.

<comment><USER6> > Tabs for indentation, spaces for alignment.

And complete mess when someone other than you opens your file :)

</comment></comment></comment><comment><USER7> I'm not sure about this. The very first link I clicked had some iffy advice.

The "Function declaration" section makes an unsubstantiated claim that function declarations are an antipattern, neglecting to mention the significant difference in effect between a declaration and a function expression assigned to a variable. Declarations are subject to function hoisting; IIFEs and expressions assigned to variables aren't. (But the variables themselves are, which is further confusing.) In other words:

      fnDeclaration(); // This function is ready for use.
      function fnDeclaration() {
        console.log('This function is ready for use.');
      }

      // - but -

      fnExpression(); // TypeError: undefined is not a function.
      typeof fnExpression; // 'undefined'
      var fnExpression = function() {
        console.log('This function is ready for use.');
      };

      fnExpression(); // This function is ready for use.
      typeof fnExpression; // 'function'

Named function expressions are neat, I guess, but the trailing F looks more like an odd, Hungarian stylistic choice than a fix for a serious issue in IE<8\. Given that the author(s) either didn't know or just forgot to mention (at first) the IE problems you could meet with if you followed this advice, I'm a little bit concerned about this reference.

<comment><USER8> Also, aside from hoisting, there is a much better solution for named+assigned function declarations, because the reason for naming such a function is to use it recursively. Hence, just use the verb form of the word "recurse" and it immediately self-documents that the function is recursive:

        var fibs = function recurse(n, curr, last) {
            curr = curr || 1;
            last = last || 0;
            return n <= 0 ? last : recurse(n - 1, curr + last, curr);
        };

<comment><USER9> Good luck with your stack traces.

</comment></comment></comment><comment><USER10> I opened this page:

[https://github.com/shichuan/javascript- patterns/blob/master/...](https://github.com/shichuan/javascript- patterns/blob/master/general-patterns/conditionals.html)

and saw this pattern used several times:

        if (value == 0) {
            return result0;
        } else if (value == 1) {
            return result1;
        } else if (value == 2) {
            return result2;
        }

I can't think of a coding standard or best practice in any language that would suggest combining return and else like that. Instead it would be:

        if (value == 0) {
            return result0;
        }
        if (value == 1) {
            return result1;
        }
        if (value == 2) {
            return result2;
        }

or:

        if (value == 0) return result0;
        if (value == 1) return result1;
        if (value == 2) return result2;

Then on this page:

[https://github.com/shichuan/javascript- patterns/blob/master/...](https://github.com/shichuan/javascript- patterns/blob/master/general-patterns/for-loops.html)

there is this code:

        // optimization 1 - cache the length of the array with the use of `max`
        for (var i = 0, max = myarray.length; i < max; i++) {
            // do something with myarray[i]
        }

The code is OK, but 'max' is a very poor name. It sounds too much like Math.max, and it isn't the _maximum_ value for the loop. It's one greater than that.

If you want to cache the array length like this, then any of these names would be far better than max: either 'length' to match the 'array.length', or 'len' for something shorter, or 'n' if you want it really short. These names all better reflect the meaning of this variable: the length of the array. ('n' stands for 'number', as in the number of elements in the array.)

Later on the page it recommends:

        // preferred 1
        var i, myarray = [];
        for (i = myarray.length; i--;) {
            // do something with myarray[i]
        }

I'm not a fan of running loops backwards for optimization except where it's really necessary. When I'm reading the code I rarely know whether the backwards loop is simply an optimization, or essential to the algorithm. It adds mystery to the code, and I don't like that.

Of course a comment could be added saying "Backwards loop is for optimization only" or "Backwards loop is needed for the algorithm", but I've never seen a backwards loop aficionado do this.

A few years ago I worked with someone who hated jQuery and libraries in general and preferred to write his own bare metal DOM loops for everything. And he wrote them all backwards. Later on he warmed up a bit to the idea of using jQuery, after seeing a 20-line bare metal function be reduced to a simple and straightforward selector, but when we started going through the code it was never clear if we needed to add a ":last" to the selector to make it match the backwards loop or not.

It's pretty rare that this kind of loop optimization will make much difference, unless the work done in the loop body is truly minimal.

Then on this page:

[https://github.com/shichuan/javascript- patterns/blob/master/...](https://github.com/shichuan/javascript- patterns/blob/master/general-patterns/for-in-loops.html)

it has this code:

        // somewhere else in the code
        // a method was added to all objects
        if (typeof Object.prototype.clone === 'undefined') {
            Object.prototype.clone = function () {
            };
        }

Now this is part of a discussion about why you should use 'hasOwnProperty()' in a for-in loop to avoid enumerating Object.prototype additions, but there should also be a mention that you should not extend Object.prototype at all, ever, unless you are 100% certain that all the code in your page or project is under your own control and carefully uses hasOwnProperty().

For example, the Google Maps API has for-in loops that do not use hasOwnProperty(). If you extend Object.prototype, then no matter how careful you are in the rest of your own code, you'll have some confusing problems if you later want to add a Google map to your page.

(At least the Maps API used to work this way - it's possible that they have started using hasOwnProperty() now - I haven't checked it in a while. But the same problem could occur with any third-party code you may want to use.)

OK, well, on this page:

[https://github.com/shichuan/javascript- patterns/blob/master/...](https://github.com/shichuan/javascript- patterns/blob/master/general-patterns/built-in-prototypes.html)

it does mention that you shouldn't extend Object.prototype, but there's no hint as to why you shouldn't.

On this page:

[https://github.com/shichuan/javascript- patterns/blob/master/...](https://github.com/shichuan/javascript- patterns/blob/master/general-patterns/switch-pattern.html)

        switch (inspect_me) {
            case 0:
                result = "zero";
                break;
            case 1:
                result = "one";
                break;
            default:
                result = "unknown";
        }

Omitting the break; on the last case in a switch statement is a bad idea. It's too easy to add another case below that and forget the break statement. Better to use break on every case even if it is redundant at the end.

<comment><USER11> In addition, per Crockford, shouldn't we be using "===" instead of "==" in a best practice demo?

</comment></comment><comment><USER12> I can't for the life of me figure out what the right-hand side of this is doing (from [https://github.com/shichuan/javascript- patterns/blob/master/...](https://github.com/shichuan/javascript- patterns/blob/master/general-patterns/access-to-global-object.html)):

      var global = (function () {
        return this || (1, eval)('this');
      }());

Why not just use 'this'?

<comment><USER7> The comma operator takes two expressions, evaluates them both, and returns the second. In this case, (1, eval) becomes a reference to the eval function and then gets fed 'this'. Since the call is now indirect, the eval happens in the global scope where 'this' is guaranteed to be the global object.

It's kind of crazy. Details here: <http://tinyurl.com/3mzf89r>

The right side is needed for ES5 strict mode, where `this` does not become the global object in a function that wasn't called with `new`, call(), or apply(). In that case the left side will be something falsy and the right side will take over. Details here: <http://tinyurl.com/cwbxvxh>

<comment><USER12> Thanks! I knew what the comma operator was doing, but had no idea why.

</comment></comment></comment><comment><USER13> I'm not sure if there's some broken javascript on my browser, but the big blue navigation box sits right on top of the content, making about half the text unreadable!

<comment><USER14> Looks like it breaks on small window sizes.

<comment><USER13> Aha, you're right. Although I wouldn't call almost-full-screen on a modern MacBook Pro small.

</comment></comment></comment><comment><USER15> Recommended usage:

       git clone https://github.com/shichuan/javascript-patterns.git
       cd javascript-patterns/
       cd design-patterns/
       ls

</comment><comment><USER16> Design patterns are signs of deficiencies in the language. [http://c2.com/cgi/wiki?AreDesignPatternsMissingLanguageFeatu...](http://c2.com/cgi/wiki?AreDesignPatternsMissingLanguageFeatures)

</comment><comment><USER17> Bookmarked! I always forget to remove an element from the DOM right before performing several transformations on it [0]. This is a handy list to have.

(A nav bar that didn't obscure text on narrower windows would also be nice)

[0] [https://github.com/shichuan/javascript- patterns/blob/master/...](https://github.com/shichuan/javascript- patterns/blob/master/jquery-patterns/detach.html)

</comment><comment><USER18> Thanks for the list, looks like I have some reading to do...

One thing I was hoping to see was some good AJAX patterns, not just saying oh well that's pattern X, but actual examples. I found this link, but sadly they never finished the following parts of the article: enterprisejquery.com/2010/07/enterprise-ajax-patterns-part-1-from-enterprise- beginnings/

</comment><comment><USER19> What's the best pattern to use for a rails app? I've been name-spacing my js so that objects get instantiated based on controller/action using the Garber- Irish Technique. I've found this a great technique, however, I still need a way to organize my js objects into modules/submodules for example. have anyone looked into this?

</comment><comment><USER20> <http://shichuan.github.com/javascript-patterns/>

</comment><comment><USER21> That menu on the left really gets in the way. Maybe add a button to remove it?

<comment><USER7> Bookmarklet to toggle it:

      javascript:(function(){var style = document.getElementById('toc').style; style.display === 'none' ? style.display = '' : style.display = 'none';})()

</comment></comment><comment><USER22> I clicked on the Builder Pattern , it linked to a file but it would be more interesting to have a bit of an explanation. That why UML diagrams are usefull. right now [https://github.com/shichuan/javascript- patterns/blob/master/...](https://github.com/shichuan/javascript- patterns/blob/master/design-patterns/builder.html) is hard to understand. I would propose a simple exemple for the builder pattern .

let's say we have an array of datas : [0,10,200,50] and we want a representation of the data.

So the director would use different builders to represent these datas ( a bar chart , a line chart , etc ...).

What i find important with design patterns and often lacking in books is real use cases.You often get strange exemples that , may be interesting but you actually can use them in a real application. Usually the builder ,the fly- weight and the chain of reponsability are often explained badly or with horrible exemples.

I dream of a book that does 2 things :

\- explain each pattern with real exemples and propose a list of real uses cases where the pattern would be usefull

\- has an extended tutorial at the end of the book the makes the user actually build a full application with all the patterns studied. For instance , a drawing application with different shapes, pens , filters , commands , menus , undo , redo , data serialization , that would use all the main design patterns and make them work together.

If such a book exists ( in java , as3 , C# , javascript ,... (just not in C++ or smalltalk ;) ) ) , i would be interested to know about it.

Now javascript has some patterns of its own ( module pattern , etc ... ) that's interesting to know them too.</comment>


Continuous Deployment with Docker, AWS, and Ansible - <AUTHOR> https://semaphoreci.com/community/tutorials/continuous-deployment-with-docker-aws-and-ansible <comment><USER2> This is a pretty good blog post and pretty insightful for people looking to build a simple environment and deploy their code.

The only thing I would say would be to use terraform in place of cloudformation and ansible. Terraform is a lot nicer to work with, and it reduces the toolchain footprint. Terraform supports elasticbeanstalk, but you have to have a dig around to figure out the settings argument format on the EB resource...

<comment><USER3> Hey, author here! Thanks for your feedback. I'm glad you enjoyed the article.

Personally I'm on the fence regarding using Terraform over CloudFormation. I prefer CloudFormation since I use AWS exclusively. I think Terraform makes sense when you interact with multiple CloudProviders. However I do also find writing terraform thing nicer than CloudFormation. I find managing the .tfstate file tricky (but they have a service for that now) as well.

<comment><USER2> Yeah, I'm a long term cloudformation user and so frustrated with it's many shortcomings, the workarounds you need to make, and the hold on to your seat moment when you apply your changes...

It took me a while to get used to terraform, figure out the design patterns, and use all of the features properly, but its insanely powerful, and a really solid product.

Yeah, you can store the state in S3, or pay the $20 a month for atlas... Its really worth it.

You can reference stored states in your terraform modules, so for example you can have a module that creates IAM users, groups, shared s3 buckets etc for your account, then you can reference to resources in it from other modules with separate state, for example environments.

Give it a go and try it out for a while, you wont go back.</comment></comment></comment>


Ask HN: How do you build your dashboards? - <AUTHOR> Hey guys, I want to build a dashboard to track some key metrics for my SaaS side project. I am thinking about tracking revenue, usage, and # of people on a waitlist + a couple of extra random things. I am thinking about building this admin dashboard myself but curious to know if someone has any other suggestions.<p>My question for HN -> what do you use to build your dashboard? Also curious to know what do you include in your dashboards? [ screenshots welcome (-: ] <comment><USER2> depends on which service you are using, if you are looking for revenue you can use a simple excel dashboard, you can also use tableau is you have a license for it.

For usage it would depend on what you are using as a backend infrastructure, if you are using AWS dashboards are inbuilt.

As far as Datalake is concerned if you are using AWS Redshift you can buy a table license and connect your database with it to develop a dashboard.

There are really so many choices available that talking about them all is just impossible (or so i think).</comment>


Lots of useful shell scripting tips or Useless Use of Cat Award - <AUTHOR> http://partmaps.org/era/unix/award.html <comment><USER2> olefoo got this right the last time I saw this come up here: <http://news.ycombinator.com/item?id=1117032>

_The whole 'useless use of cat' meme is basically designed to let Randal Schwartz make fun of people. At one point it may have made a difference, and certainly if you have a shell script that is getting called 10,000 times a day it might make sense to optimise it. But for doing stuff from the commandline; weird shell acrobatics is a premature optimisation._

If you know that you can use a command directly on a filename or _-_ , then great: skip _cat_. If you're not sure, and you use _cat_ , great: get some work done. If you like to write _< somefile command_, great: I actually like how that looks. If you prefer the readability (real or alleged, I don't care) of _cat file | command_ , fine: go nuts. Surely there have to be more important things to worry about.

Since it got a lot of comments and votes, here's the entire previous thread I had in mind: <http://news.ycombinator.com/item?id=1116085></comment>