Salaries and salary calculations for every Buffer employee - <AUTHOR> https://open.buffer.com/transparent-salaries/ <comment><AUTHOR> It's a little buried in the article, but if you just want to see the Google Spreadsheet with all of the numbers and columns and supplementary tables:

[https://docs.google.com/spreadsheets/d/1l3bXAv8JE5RB9siMq36-...](https://docs.google.com/spreadsheets/d/1l3bXAv8JE5RB9siMq36-Ogngks2MT6yQ5gt8YXhUyAg/edit#gid=1533208969)</comment>


The Founder Paradox - should you share your idea?  - <AUTHOR> http://www.ycreject.com/2011/05/founder-paradox-should-you-share-your.html

<comment><USER2> This was one of the earliest things I was taught about entrepreneurship, and it's been beat into my head over time: share your bloody idea. With damn near everyone who'll listen. Your idea is worthless; it's the execution that matters (we already know that here, of course). However, there are two reasons the idea is worthless. We're all used to the "if you aren't executing you have nothing with which to make money" reason, but the other reason is that somebody else already has your idea, almost certainly. The less earth- shattering it is, the more likely somebody else has the same idea, of course, but even some of the earth shattering ideas are floating around other peoples' heads. Thus, the goal isn't to keep a secret, but rather to get the information out to whoever can help you with the resources you need to ship, whether it's connecting you with developers, designers, investors, whatever, or simply providing you with essential feedback.

I'd be willing to wager that more projects have been killed from this sort of paranoia-fueled secret keeping than by people stealing ideas.

<comment><USER3> This isn't necessarily a good idea.

If you share it with someone that has the resources to build it faster than you, it's just going to create headaches for you in the future.

So, it's a good idea to share the generic idea, but not the specifics.

One of the businesses I'm running now (which is profitable) spawned from an idea I saw on a message board about 6 months ago. I knew the original implementation of the idea would never work and I improved on it. It's a direct competitor to the original person that posted it.

<comment><USER2> I don't think your first sentence really matches the rest of what you're saying.

Obviously I'm not telling you to pull out your full spec and implementation roadmap to discuss with everyone on the street. But you _should_ be willing to share the core idea in a way that anyone can understand. The "what", not the "how", essentially.

You can always divulge more if someone shows interest in helping you out, but you have to garner that interest by being willing to tell them something.

</comment></comment></comment><comment><USER4> No paradox: Yes.

Your network will start working for you only if you share your idea. You will be surprised how many people come of the woodwork to say, "Oh, I heard you are interested in this space - I have this person you should talk to; I read this report on your market; I have this angel you should meet..."

You are afraid someone will steal your idea? Don't flatter yourself so much. You can be sure there are 5 other people other there at the same time who have a very similar idea. Ideas are cheap; it is only execution that matters. And there is no way you can best execute on your idea without getting all the feedback you can get and finding all the resources your network can provide you.

</comment><comment><USER5> I don't necessarily share every little detail of my future plans, or what I'm thinking... but in general I fall into the bucket of people who believe in being very open and transparent. And since the stuff I'm building is open source anyway, there are few - if any - secrets from a technical perspective.</comment>


Looking for partner for weekend project - <AUTHOR>

Hey guys,
        I am looking for a partner to help build a small web app over the next few days.
I was thinking backbone.js and node.js for the stack.
I run http://backbonetutorials.com and http://thomasdavis.github.com is my personal site.
Email me at email@example.com if your interested.
I have the concept fleshed out, not a typical idea and specific to application development. <comment><USER2> Just saying: This could be actually a project in itself. A weekend project- match site.

<comment><USER3> projectroulette.com - it's available.

</comment></comment><comment><USER4> I am interested, but I dont have experience in backbone.js and node.js</comment>


Why It's OK to Block Ads - <AUTHOR> http://blog.practicalethics.ox.ac.uk/2015/10/why-its-ok-to-block-ads/ <comment><USER2> I think that the ability to filter out content is a basic right that should be _built-in_ to any Internet application, not forced to be an "add-on" and vilified by being seen as synonymous with attacks on the advertising industry and content providers.

And since regexes on URLs would be complicated and error-prone for most people, I think the onus is on content providers to throttle _themselves_ , baked right into a user-agent protocol.

For example, the USER should be able to cage the _provider_ with certain limitations that must be met in order for content to be displayed:

\- "I am granting you no more than 500K of my data plan. Please send me a version of your page that meets these requirements."

\- "I am granting you no more than 1% of my battery per week. If your site exceeds these requirements, your site will feature prominently as the cause of battery problems in a report that is periodically presented to your users."

\- "I do not consider this site to be an 'application' so I have restricted several dynamic behaviors. Please send me a version of your page that can operate in a quarantined scripting environment."

And of course, browsers would be expected to provide sane defaults for these settings.

This approach isn't particularly hostile to any one industry; it doesn't specifically block ads (if they fit in that 500K, be my guest).

</comment><comment><USER3> In the end, it seems kind of irrelevant. Whether ad-blocking is "OK" or "not OK" certainly accounts for a lot of the arguing, but it probably won't play a huge part in determining whether people use ad-blockers or not.

I think the general public _can_ be swayed by ethical arguments, but the threshold is pretty high, and an appeal to the financial well-being of companies almost certainly doesn't make the cut.

[Note that despite the _enormous_ amount of money and effort that has been spent in an attempt to demonize copying of music/movies, the public still doesn't care a whit about those arguments, and copying is still generally considered a perfectly reasonable thing to do as long as you don't get caught.]

<comment><USER4> I tend to think that people underestimate the cognitive load that would be imposed as a result of dealing with the world in such a 'rational' way, and that's why we don't see it.

Permit the use of an analogy.

I've been poor. When you're poor, you agonize over every financial decision. At least, I did. You walk through a supermarket trying to buy the absolute cheapest variety of protein. Maybe you go to another supermarket and see if you can get it cheaper. Do you get the bus to see a friend? It'd be a lot better to stash that five quid away for some inevitable future expense.

It's paralyzing. You spend so much time playing this little game for every minor thing that others may well take for granted that you hardly get anything done if you're not careful.

Having battled my way through that.. it seems as if there's a whole new level, a new stage, called 'ethics', that people seem to be taking to an extreme extent in some areas.

I choose my battles; there are a few things I do personally that most don't, to 'save the world'. But for me to deeply care about the full externalities of everything I do (and seek out alternatives) is simply untenable. There's too much out there.

Blocking ads is so far along the spectrum of 'things I might do that might be bad' that it doesn't even register.

Similarly I'm not going to think about the carbon impact of every foodstuff I buy. I'm not going to agonize over taking the bus.

I just do things, to get on with my life. It's really probably not all that bad; sometimes I wonder where people get the energy, the wherewithal, from, to inject so much drama into seemingly minor problems.

I block ads; I don't block ads; the internet exists; the content might change; it really doesn't matter. The world continues to spin. We didn't even have this 'Internet', a few short decades ago. We may not even have it soon. Enjoy it; revel in it!

edit: to elucidate further...

If I have a particular issue that I really care about; say it's animal welfare. It benefits my cause; it benefits me directly; if I (mostly) single- track in order to deal with it.

Maybe I care about global warming, but maybe it's easier for me to make the Vegan Festival if I take the car.

That really is it, I think. People fixate on the activity itself (ad blocking) and don't look at the general framework of the life it fits within. Too... extreme.

</comment></comment><comment><USER5> The insidious tentacles of ad tech touch every corner of today's economy. There are so many players (legal and criminal), varied interests and wealth involved, that it's difficult to imagine that enough users will ever embrace ad blocking on the scale that's required to achieve the change that this article suggests is needed.

The Interactive Advertising Bureau (IAB) is finally acknowledging a need for some change with LEAN ([http://www.iab.com/news/lean/](http://www.iab.com/news/lean/)), but I doubt it's interests really favor users. It's vested in advertising and grabbing our attention.

We're not dealing with just one bad player, like Flash that's easier to kill and yet took way too long to do it. It's still not completely dead either.

Ad blocking is a moral obligation and just a basic tool for cybersecurity these days.

Good UX will win at the end of the day, but it's going to require a lot of effort.

</comment><comment><USER6> I'm tolerant of ads. I recognise the argument that in order to provide me content people usually need some kind of payment, and ads are currently that payment.

But ads are so hostile, and are everywhere, and result in really unpleasant behaviour (spamming; slurping as much data and not keeping it safe; etc).

I recently got a machine with Windows 8.1 with Bing, and ads are baked into whatever the start menu is called now. It's WEIRD seeing click bait ("18 bizarre home remedies that really work") on that panel page.

So I love this article, and I'm probably going to move to ad-blocking (and different OS) soon.

</comment><comment> rebekah-aimee One could argue that the text or simple image ads are not a moral sinkhole like the article suggests. A lot of the text ads, I've found, are just the people who would normally rely on word of keyboard, except they're trying to get their first hundred users or whatever. Sometimes I would be part of their initial user base because what they're selling would genuinely make my life easier/better. That's not wrong.

The big, flashy ads (you know, the ones that are animated, or play sound or video, or do something dumb if you mouse over them for 1/4 second) are generally purchased by makers of lesser products in order to manipulate users into choosing them, because they can't rely on the quality of their products to advertise for them. I don't feel bad about blocking them.

So, I don't think unobtrusive ads are so bad. The trick is figuring out how to let them through. I turn off AdBlock on certain smaller sites with less obnoxious advertising and find that sometimes the bar is set too high for what's considered unobtrusive; the ads would theoretically be acceptable under the AdBlock description of what's unobtrusive, but get blocked anyway somehow.

As the market improves, advertising may gradually go away. That first clause is kind of difficult though.

The other question is how we can support people making content like blog posts and so on... without limiting the people who actually can't pay for stuff like that (kids with no jobs, etc). It's the same question as the one faced by music and software producers. When you can find an answer to that, well...

<comment><USER7> I think one point the article makes that is easier to miss is that the ads themselves are not that important. Text/simple image/flashing video/smell doesn't really matter that much. Ads are ads. The real problem is how ad- dependence deforms content. Clickbait being the most blatant example.

</comment></comment><comment><USER8> An infected ad killed my computer several years back. I block all ads everywhere for everyone I know.</comment>


A distributed and coordination-free log management system - <AUTHOR> https://github.com/oklog/oklog <comment><USER2> Here's the blog post describing the system

[https://peter.bourgon.org/ok-log/](https://peter.bourgon.org/ok-log/)

And the original HN post

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

</comment><comment><USER3> He describes Heka (built by Mozilla) as abandoned. This is true, but we have a re-write in C that is significantly faster and in active development [0].

[0] [https://github.com/mozilla- services/hindsight](https://github.com/mozilla-services/hindsight)

<comment><USER2> Isn't it irresponsible to be writing infrastructure software like this in C nowadays?

<comment><USER4> On HN: yes. In the real world: no.

<comment><USER5> Regardless, it's weird coming from literally the company behind Rust…

</comment></comment></comment></comment><comment><USER6> While super-interesting (and something that I wish I had time to really evaluate against Elasticsearch/Solr), I feel like it's missing one of the most useful things about Loggly/ES/Solr - the ability to quickly visualize log trends. And despite the statement that it's a "distributed and coördination- free log management system for big ol' clusters", I'm confused why you would want a "big ol' cluster" without visualization or field searches more complex (and less computationally expensive) than regexes. Am I missing something?

e: To be fair, I'm not attempting at all to defend Elasticsearch/Solr, just slightly confused about the actual use cases in prod.

<comment><USER2> What does "the ability to quickly visualize log trends" mean concretely?

<comment><USER6> In my mind, some sort of graphical user interface that would allow you to query data and have the log system return results that are easily parsed. At the very least, have some sort of API that allows you to do this. The /query endpoint exists, but doesn't seem to return anything that's really fundamentally useful from a large-scale perspective.

<comment><USER7> I agree that the nice graphical tools available for Elasticsearch are super useful, but it seems to me that those are not a feature of the logs storage or query interface, but rather one of an external app (e.g. kibana) that queries the system.

It would actually be somewhat concerning to me if a system like Oklog had all those graphing and visualization features built-in; that would be quite some scope creep for a distributed storage engine :-P

<comment><USER8> I disagree. Elasticsearch itself is doing most of the heavy lifting. Kibana is developed in sync with Elasticsearch so that it always has the ability to use most of the features of Elasticsearch.

The nice visualization methods are a direct result of the aggregation abilities of Elasticsearch

<comment> grey-area Ways to query the data are important and on this newly launched pkg probably need some work (haven't looked at that side of it), but visualisation does not belong in a logging tool, it belongs in external tools querying that tool.

</comment></comment></comment></comment></comment></comment><comment><USER9> The thought process that went into the design is very enlightening. Thanks for writing that up.

</comment><comment><USER10> This looks pretty slick. There's a well done explanation of the architecture process in the blog.

</comment><comment><USER11> There is actual a fair amount of coordination in this logging system -- with the combination of redirects and gossip to handle them -- but it does seem to be the right kind of coordination.

</comment><comment><USER12> 'Coordination' in English ;)

<comment><USER13> yeah, I guess the oklog folks have drunk the kool-aid put out by the New Yorker: [http://www.newyorker.com/culture/culture-desk/the-curse- of-t...](http://www.newyorker.com/culture/culture-desk/the-curse-of-the- diaeresis)

<comment><USER14> Diaeresis: a typographical accent used to remind you that you are reading the New Yorker.</comment></comment></comment>


Scale of the Universe - <AUTHOR> http://www.htwins.net/scale2/ <comment><USER2> "What is a man in the infinite? But to show him another prodigy no less astonishing, let him examine the most delicate things he knows. Let him take a mite which in its minute body presents him with parts incomparably more minute; limbs with their joints, veins in the limbs, blood in the veins, humours in the blood, drops in the humours, vapours in the drops; let him, again dividing these last, exhaust his power of thought; let the last point at which he arrives be that of which we speak, and he will perhaps think that here is the extremest diminutive in nature. Then I will open before him therein a new abyss. I will paint for him not only the the visible universe, but all that he can conceive of nature's immensity in the enclosure of this diminished atom. Let him therein see an infinity of universes of which each has its firmament, its planets, its earth, in the same proportion as in the visible world; in each earth animals, and at the last the mites, in which he will come upon all that was in the first, and still find in these others the same without end and without cessation; let him lose himself in wonders as astonishing in their minuteness as the others in their immensity; for who will not be amazed at seeing that our body, which before was imperceptible in the universe, itself imperceptible in the bosom of the whole, is now a colossus, a world, a whole, in regard to the nothingness to which we cannot attain."

-Blaise Pascal, 1669

<comment><USER3> Les vertiges de Pascal. Excellent choice.

</comment></comment><comment><USER4> Trying to comprehend the scale of the universe is deeply unsettling, especially when thinking about our minute, insignificant part of it.

Anyway, I hope the startup you're killing yourself over is going well!

<comment><USER5> I disagree that any part of the universe is insignificant. We're all important.

<comment><USER6> If everyone is important than no one is.

<comment><USER7> Depends on whether you are comparing everyone to each other or to something outside of the group of everyone. I could imagine we would say that everyone is important as compared to a typical stray photon with a duel-identity crisis.

</comment></comment></comment></comment><comment><USER8> When I was a little kid, I used to lay in my bed, in the dark, and think about the size of the room around me. Then I'd think of the size of my house, then the size of my hometown, then the size of my home state, then the size of the United States, then the size of the planet, and so on until I couldn't conceive of the scale of what I was trying to envision.

It was at once exciting and absolutely terrifying. This doesn't quite capture that feeling, but it's still pretty neat.

<comment><USER4> It is terrifying, which is interesting to analyze. Why should it be? Must be something deeply ingrained in us humans.

<comment><USER9> I wonder if it is an instinctive reaction:

a large new space has a lot of unknowns -> some of these unknowns could be dangerous -> a very large new space has a lot more unknowns -> very large spaces are to be feared.

This is based on nothing more than my imagination, but seems like a sensible evolutionary precaution.

</comment></comment></comment><comment><USER10> Everytime I see one of these things, I think of "Restaurant at the End of the Universe" and the Total Perspective Vortex:

[http://en.wikipedia.org/wiki/Total_Perspective_Vortex#Total_...](http://en.wikipedia.org/wiki/Total_Perspective_Vortex#Total_Perspective_Vortex)

> _The Universe, as has been observed before, is an unsettlingly big place, a > fact which for the sake of a quiet life most people tend to ignore... which > is why the Total Perspective Vortex is as horrific as it is. When you are > put into the Vortex you are given just one momentary glimpse of the entire > unimaginable infinity of creation, and somewhere in it a tiny little mark, a > microscopic dot on a microscopic dot, which says, "You are here."_

</comment><comment><USER11> A few of my 3D renders on the topic of scale:

\- [http://en.wikipedia.org/wiki/File:Star- sizes.jpg](http://en.wikipedia.org/wiki/File:Star-sizes.jpg)

\- [http://davidjarvis.ca/dave/gallery/star- sizes/](http://davidjarvis.ca/dave/gallery/star-sizes/)

It is incredible to consider that the largest known stars are the size of the Solar System.

<comment><USER12> The pictures of the largest stars are not realistic, since they show a clear border of a solid object. In reality the out parts are more like a very thin atmosphere. The average density of the whole star is almost vacuum( 1000 times less than earth atmosphere ).

<comment><USER11> True; an entirely accurate model would be quite time-consuming. For example, a red giant's photosphere is not spherical.

Niel deGrasse Tyson offered the following feedback:

> If the Sun's Wien's law curve peaked just a few Angstroms over from it's > current value would you have illustrated it green? But of course there are > no green stars even though the curve peaks there for plenty of them.

> The width of the visible part of the spectrum is so narrow compared with the > full-breadth energy distribution of the stars that the fractional difference > between one color and the next is quite small. The consequence is that we > don't actually see all the colors you show.

\- [http://www.astro.uvic.ca/~tatum/stellatm.html](http://www.astro.uvic.ca/~tatum/stellatm.html)

\- [http://www.spacetelescope.org/images/opo9604b/](http://www.spacetelescope.org/images/opo9604b/)

\- [http://herschel.cf.ac.uk/results/betelgeuse](http://herschel.cf.ac.uk/results/betelgeuse)

\- [http://www.historyoftheuniverse.com/starold_2.html](http://www.historyoftheuniverse.com/starold_2.html)

\- [http://www.wolframalpha.com/input/?i=wien+displacement+law](http://www.wolframalpha.com/input/?i=wien+displacement+law)

</comment></comment></comment><comment><USER13> An early and retrogasmic infinity narrative from 1977 is Charles & Ray Eames' POWERS OF 10 -- [https://www.youtube.com/watch?v=38ti9BJiyvs](https://www.youtube.com/watch?v=38ti9BJiyvs)

</comment><comment><USER14> Been posted in various forms numerous times over the years.

[https://www.hnsearch.com/search#request/all&q=scale+of+the+u...](https://www.hnsearch.com/search#request/all&q=scale+of+the+universe)

At least this is the more accurate version at the top end of the scale.

</comment><comment><USER15> Very well done.

It actually always baffles me that so much of biology takes place on scales that are very close to human perception. When looking at microscope images, the sizes of things become very abstract. Atoms and cells might as well be of the same size.

But a 0.1 mm object is perceptible to the naked eye. This resolution is just an order of magnitude too crude to see individual cells (the human egg cell is just barely visible to the naked eye), and two orders of magnitude cruder than the resolution limit of optical microscopes. Imagine how differently science might have progressed if we had known about cells before inventing the microscope!

</comment><comment><USER16> Not a plug for Nikon, but their version of this concept is far superior IMO:

[http://www.nikon.com/about/feelnikon/universcale/](http://www.nikon.com/about/feelnikon/universcale/)

<comment><USER17> I disagree. The user interface is poorly designed. It immediately slides everything past in a blur. I wanted to look from smallest to largest, but when I click the icon to go to the smallest scale, I'm asked to "restart". If I use the scroll wheel and get to the smallest scale, I'm also asked to restart. When I restart, I'm shown the blur of objects again and have to go through the entire process over again.

<comment><USER16> Late, but - while it's not optimal, it's far superior to the submitted one, if for no other reason than the continuous scale reference.

</comment></comment></comment><comment><USER18> Obligatory IBM Powers of Ten (1977): [https://www.youtube.com/watch?v=0fKBhvDjuy0](https://www.youtube.com/watch?v=0fKBhvDjuy0)

</comment><comment><USER19> I liked the first one, and I think this version is very good looking too. Good job.

I suggest you add a "play" button, where it scrolls from one end to the other at a slow pace, much like in the first iteration. It's nice to sit back and enjoy the view.

</comment><comment><USER20> I always liked [http://www.youtube.com/watch?v=0fKBhvDjuy0](http://www.youtube.com/watch?v=0fKBhvDjuy0)

</comment><comment><USER21> I wish this page worked. Might just be on my end, but I really want to see this. I love the overwhelming feeling of insignificance.

<comment><USER22> Looks like it was built with Flash, so that could be it. Its a really cool project if you do get a chance to check it out on another device.

</comment></comment><comment><USER23> Is there not a virtual world which can represent a contiguous series of locations larger than that of Minecraft?

<comment><USER12> You can try I-War 2:Edge of Chaos( space action-simulator with newton physics and inertia ) where the total contiguous world map is around 10^20 km( at least ). But of course most of it is empty as the solar system takes a relatively small place in the center of the map. And similarly to Minecraft if you teleport yourself into the high numbers you will get experience floating point accuracy problems, and weird things start to happen.

<comment><USER24> > _if you teleport yourself into the high numbers you will get experience > floating point accuracy problems, and weird things start to happen_

Weird; in case of a space sim this should be a simple thing to fix (octree, for example).

<comment><USER12> You can't reach such areas without cheating or flying for years, so there is nothing to fix.

<comment><USER24> Space Kraken, the punisher of cheaters? :).

</comment></comment></comment></comment></comment><comment><USER25> You must try "Celestia" ([http://sourceforge.net/projects/celestia/](http://sourceforge.net/projects/celestia/)). Its a real-time visualization and simulation of space! OF SPACE! You can see the entire known universe with this!

</comment><comment><USER26> For anyone with access to an Oculus Rift, I can't recommend "Titans of Space" highly enough. It brought me to tears. The sense of scale you get is utterly amazing.

[http://www.crunchywood.com/](http://www.crunchywood.com/)

</comment><comment><USER27> That largest bacterium's size is incorrect. It shows a chain of them as 750um, but in reality just one can become that large. In the picture, they look as big as a human ovum at 120um, but obviously that's not accurate.

<comment><USER4> You _hope_ it's not accurate :D

<comment><USER27> I was saying that the bacterium is -larger- than the ovum. By a factor of 6.

</comment></comment></comment><comment><USER28> Actually that being the case why isn't it possible that the universe itself is just a planck scale like entity inside something bigger than us?

</comment><comment><USER29> There was a link here awhile ago to see visualization s of known. Star systems. Anyone recall that link? Would wait love ro take another tour...

</comment><comment><USER30> What does it mean by "lengths shorter than this are not confirmed"? We are not sure about the size of objects smaller than it?

</comment><comment><USER31> Turn off the music and scroll through playing Daft Punk's Recognizer on the Tron soundtrack.

</comment><comment><USER32> Frequent repost. Old. Karmadecay.

</comment><comment><USER33> Existential Horror masterpiece.

</comment><comment><USER34> Wow.</comment>


'Shock' as Olympic ticket alert feed is blocked - <AUTHOR> http://www.bbc.com/news/technology-19112520 <comment><USER2> The fact that there's too much demand means that prices are too low. Scalpers (apparently called "touts" in British English) -- those who buy tickets with the intention of reselling them at a profit -- are simply the free market at work, attempting to equalize supply and demand.

It's always puzzled me why the ticket industry doesn't just sell tickets by auction. Then the event organizers could pocket most of the money that currently goes to scalpers, and it would make sure everyone who wants a ticket and can afford the final price is able to get one.

It might make ultra-popular events only accessible to the rich, but from the ticketer's point of view, higher prices can only be positive, as long as all the seats are full.

Even if, for some reason, they want to sell the tickets below the market price, it seems like an organized lottery would be a fairer way to make sure everyone has a chance, rather than first-come first-served, which unduly favors people who use automated scrapers and/or repeatedly refresh the site manually.</comment>


Facebook changes default privacy of posts from Public to Friends - k-mcgrady http://www.theverge.com/2014/5/22/5739744/facebook-changes-default-privacy-of-posts-from-public-to-friends

<comment><AUTHOR> Having been the victim of this 8 years ago, this is something they should have changed eons ago. Waaaaaay overdue. Facebook isn't twitter. The expectation isn't generally that everything shared with your friends is shared with the world.

</comment><comment> k-mcgrady This is a pretty major change in the right direction for once. Considering over a billion people already have Facebook accounts I wonder how much of an impact this will have.</comment>


Bitmovin raises $30M Series B for 'next-gen' online video software - <AUTHOR> https://techcrunch.com/2018/04/09/bitmovin/ <comment><USER2> Thx folks, it has been a awesome ride so far. That's only possibly due to the great Bitmovin team. (I'm one of the cofounders)

<comment><USER3> Thanks for leaving a comment here :)

Now that I have your ear, may I make a suggestion? Please be a little more specific about what Bitmovin does on your website. Right now the first thing I read is:

        "Software to Solve Complex Video Problems.
        Bitmovin API based products help developers around the world
        solve the most complex video problems with cloud native software that runs anywhere"

That is a _very broad_ statement. I would consider myself quite technical but I don't have deep domain knowledge in video coding and infrastructure. Quite honestly I can't get much information out of this.

What kind video problems are you solving (except that they're "most complex")? What is "cloud native software"? How do you define "runs anywhere"? Will it run on my Smartphone / PC / Car / Container / Toaster?

I just want to know what your company _does_ [1]

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

<comment><USER4> some of the problems that they are solving are

\- inserting ads between videos(configurable)

\- serving videos for different screen size(if you send same video to all device, device has to do resizing in addition to decoding)

\- serving videos in different network conditions(HLS/DASH) where based on bandwidth lower/higher bitrate video is requested from the server.

\- seamlessly serving videos by switching video sources even for encrypted content.

\- In HLS/DASH, player is the complex(intelligent) part as it senses the bandwith and send requests to server, they are giving readymade player implementation through SDK's

<comment><USER5> Most of those problems are already solved by open source tools and standard on video streaming services like amazon, netflix, hbogo etc.

There are mature open source clients that will do most of those things automatically out of the box. For example shaka player from Google.

<comment><USER6> Better not to depend on client for functionality.

Don't repeat the "JS required" situation in video, or next thing you know you're rederiving Flash.

</comment></comment></comment></comment></comment><comment><USER7> Congrats, but I never understood why they don't build their own storage and CDN solution. Infrastructure is hard, especially operating a video cdn, but focusing on a video player, that is easily replaced with another solution or an encoding service that can be build inhouse way cheaper are (for me personally) no selling points.

But apparently that's enough :)

<comment><USER8> The premise for MPEG-DASH is that infrastructure is easy: Just small files transferred over HTTP. You can use every CDN which supports HTTP for that.

Live encoding is surprisingly hard: You have to get a live input signal instead of a file and transcode it on-the-fly to DASH with minimal latency meaning:

\- encoders in the vicinity of the input signal,

\- multiple input signals,

\- efficiently transport a high data rate from a venue (with often a subpar connection) to your encoders,

\- support many different input signal formats (i.e. camera output signals),

\- support very high data rates etc.

Some companies do it to a varying degree but not that many like Wowza, Elemental (bought by AWS and put into AWS Elemental Delta), Adobe, Bitmovin, …).

<comment><USER7> Yes, but they are putting together a huge sales team, their customers are using their video player and a video encoding service. That means they also have the need for video storage, a video CDN, etc. So they waste a lot of potential.

Building a encoding service in the cloud era, even for live video, isn't really that hard. The hard part is that every customer has different needs and different source files, if you build it inhouse you are only building it for one customer, yourself.

<comment><USER9> Commodity storage and delivery prices have been declining steadily. Building something that is scalable but also profitable, is hard.

Still, selling is the hardest part, in my opinion. Source: run a global video cloud.

<comment><USER7> So you are exactly confirming what I am saying, they have or are building the sales team anyways.

<comment><USER9> One thing I didn't make clear, that may explain why somebody just wouldn't build their own storage/delivery: when certain services become a commodity, and long-term commitments become an exception rather than the norm - it's easier to shift the pricing pressure and uncertainty for the commodity side to your providers. You specifically don't want to "build your own" in a market like that, but instead focus on specialized, high-margin services. One exception: when you can predict/control the demand (e.g. you are a Netflix), then you build your own, and still leverage providers for capacity on tap.

</comment></comment></comment></comment></comment></comment><comment><USER10> Funny how they already support the AV1 encoding but neither the encoding is finished nor the hardware implementation is done.

</comment><comment><USER11> It's always interesting to see how local startups succeed internationally (especially the ones founded in such rural areas as Carinthia).

Also I just recently was at a talk with one of their engineers and learned how they scaled their monitoring services; quite fascinating...

Keep up the great work (and see you at the next OpenTechTable).

</comment><comment><USER12> Hopefully they start offering a free tier soon (dev-type). Always nice to have, and by letting devs use it in personal projects, they often carry the API experience and preference to their jobs.

</comment><comment><USER13> Pied Piper has got some serious competition!

<comment><USER2> haha, yes :-)

</comment></comment><comment><USER14> Interesting if 'Bit' prefix has helped?

<comment><AUTHOR> I had the same thought that with the latest Crypto craze the "Bit" prefix probably helps them stand out, but as the founders are the co-creators of MPEG-DASH which is used by Netflix, they are well known enough to not need the benefit of the crypto "bump". Plus the company was founded back in 2013.

<comment><USER15> Yeah the company was founded 5 years ago, with the same name.</comment></comment></comment>


Use the Unofficial Bash Strict Mode (Unless You Love Debugging) - <AUTHOR> http://redsymbol.net/articles/unofficial-bash-strict-mode/ <comment><USER2> The article is dangerously wrong in its discussion of IFS.

What you should do to avoid the problem of mishandling spaces is use proper quoting (for i in "$@"; do ...), not changing IFS; setting IFS to \n\t will still break embedded tabs and newlines.

In general, in bash scripts any of use of $ should always be between double quotes unless you have a reason to do otherwise.

<comment><USER3> Agreed. In addition to still having trouble with tabs and newlines, setting IFS still leaves the other big problem with unquoted variables: unexpected expansion of wildcards. The shell considers any unquoted string that contains * , ?, or [ to be a glob expression, and will replace it with a list of matching files. This can cause some really strange bugs.

Also, an unquoted variable that happens to be null will essentially vanish from the argument list of any command it's used with, which can cause another class of weird bugs. Consider the shell statement:

if [ -n $var ]; then

... which looks like it should execute the condition if $var is nonblank, but in fact will execute it even if $var _is_ blank (the reason is complex, I'll leave it as a puzzle for the reader).

Setting IFS is a crutch that only partly solves the problem; putting double- quotes around variable references fully solves it.

<comment><USER4> The test command has certain rules depending on the number of arguments. The most pertinent rule is: For one argument, the expression is true if, and only if, the argument is not null.

In this case

        [ -n $var ]

is the same as

        test -n $var

$var is not quoted, so when this command is run, word splitting occurs and therefore $var is null. Which there falls into the one argument rule above.

Therefore, always quote your variables.

</comment></comment></comment><comment><USER5> It's also a good idea to check your complex scripts before run with awesome shellcheck tool. [http://www.shellcheck.net/](http://www.shellcheck.net/)

<comment><USER6> Thanks for this!

[https://github.com/koalaman/shellcheck](https://github.com/koalaman/shellcheck)

and `brew install shellcheck`

<comment><USER7> To be honest, the build time required for this (and usually GHC as well) get really annoying. Especially for simple updates.

<comment><USER8> Does homebrew not support precompiled binaries?

<comment><USER9> Yes, but for use in a CI it's a real drag

<comment><USER8> Why is that? Are the download servers slow?

</comment></comment></comment></comment></comment></comment><comment><USER10> [http://mywiki.wooledge.org/BashFAQ/105](http://mywiki.wooledge.org/BashFAQ/105):

> Why doesn't set -e (or set -o errexit, or trap ERR) do what I expected?

> set -e was an attempt to add "automatic error detection" to the shell. Its > goal was to cause the shell to abort any time an error occurred, so you > don't have to put || exit 1 after each important command. That goal is non- > trivial, because many commands intentionally return non-zero.

[http://mywiki.wooledge.org/BashFAQ/112](http://mywiki.wooledge.org/BashFAQ/112):

> What are the advantages and disadvantages of using set -u (or set -o > nounset)?

> Bash (like all other Bourne shell derivatives) has a feature activated by > the command set -u (or set -o nounset). When this feature is in effect, any > command which attempts to expand an unset variable will cause a fatal error > (the shell immediately exits, unless it is interactive).

pipefail is not quite as bad, but is nevertheless incompatible with most other shells.

<comment><USER3> The example given in the article:

grep some-string /some/file | sort

is a good example of why -e and pipefail are dangerous. grep will return an error status if it gets an error (e.g. file not found) _or_ if it simply fails to find any matches. With -e and pipefail, this command will terminate the script if there happen to be no matches, so you have to use something like || true at the end... which completely breaks the exit-on-error behavior that was the point of the exercise.

Solution: do proper error checking.

</comment></comment><comment><USER11> To be honest, I think traditional shells are now only good for environments where you know you aren't doing anything too weird and all the most _likely_ inputs work as expected without a lot of effort. This is spending time wisely; just because everything except a zero can technically be part of a Unix filename doesn't mean that I want to invest hours or days making damn sure everything works for pathological cases.

If I actually _do_ want to guard against every case imaginable, I immediately switch to Python or some other language that at least knows how to quote things unambiguously without a lot of effort.

<comment><USER12> Shell is a lot better than the other languages I know at many tasks involving I/O redirection, spawning programs, etc. It's kind of arcane, but so are the APIs for doing that stuff in other scripting languages. I'm eagerly awaiting some new contender in the system scripting language arena though.

</comment></comment><comment><USER13> Fails to mention what is in my opinion _the_ most devious, subtle potential pitfall with `set -e`: assigning (or even just a bare evaluation of) an arithmetic zero. `foo=0` won't do anything surprising, but `let foo=0` will return 1, and thus abort your script if you're not careful.

Also, as an alternative to the proposed `set +e; ...; set -e` wrapper for retrieving the exit status of something expected to exit non-zero (generally cleaner in my opinion, if slightly "clever"):

        retval=0
        count=$(grep -c some-string some-file) || retval=$?

</comment><comment><USER14> I wrote library for shell scripts with design goal to work properly in strict mode: [https://github.com/vlisivka/bash- modules](https://github.com/vlisivka/bash-modules)

</comment><comment><USER15> One solution is not to use Bash. There are more basic shells that are equally as, or more, POSIX-like.

</comment><comment><USER16> I still don't get why bash (or zsh) don't try to integrate more Korn shell (88 & 93) scripting features. But there the focus seems more on more colorful prompts and autocompletion handholding…

And even despite more free licenses (AFAIR, IANAL), you can't depend on actual Korn shells being available on Unices. At least the dependent app situation has been getting a lot better, mostly by the death of workstations and their proprietary OSs (try depending on almost any grep/awk/sed option/switch when it has to run on Solaris/AIDX/HP-UX). Although "all the world's a GNU/Linux" seems the new plague upon our lands here…

So after all these years, I'd say we're still in pretty much the same situation that birthed Perl. Which still would be my preferred choice if I'd actually have to distribute scripts and we're not talking about my own private, context-specific shortcuts, scripts and functions.

<comment><USER17> which particular ksh features do you miss in zsh?

</comment></comment><comment><USER18> I use set -e or not based on the needs of the script. Many times I want the script to continue and sometimes I don't. Sometimes I don't set until partway down the script so the top isn't strict. I wouldn't want to set it on every script.

<comment><USER19> I've encountered a fair number of people who blindly set -eu on every script as a matter of course, as suggested by the author here. While this article goes through a bunch of the pitfalls, in my experience people often fail to account for the many (sometimes unintuitive) ways this can cause an abrupt exit. Sometimes stopping halfway through is just as bad as continuing under false assumptions, particularly if the script is so simplistic that it isn't obvious to the user that it exited midway through.

I almost never use -e, and as a result I have to stay vigilant and test return codes all over the place. I prefer that to the kludge of forcing everything to return zero and I think it produces overall better results. Ultimately you want to handle an error, not just abort, and -e doesn't do much to promote handling properly.

</comment></comment><comment><USER20> Instead of "|| true", I prefer "|| :" – it's shorter, and : is always a built- in, even in bare-bones shells where "true" is an external command.

Since "|| :" is always written at the end of lines, it should be short and visually unobtrusive.

<comment><USER21> ':' isn't valid as a command in the fish shell (unless you make an executable named ':' and put it in your path)

      user@host ~> :
      fish: Unknown command ':'

edit: format

<comment><USER20> The _fish_ shell? Does it claim POSIX /bin/sh compatibility?

[http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3...](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_16)

</comment></comment></comment><comment><USER8> [http://www.shellcheck.net/](http://www.shellcheck.net/)

<comment><USER22> Shellcheck is great when you integrate it with your editor.

I use it all the time when I have to write shell scripts.

</comment></comment><comment><USER23> A simpler solution is to use the Plan 9 rc shell for scripting. It had more sensible syntax and doesn't rescan input so many of the issues raised in the article just don't occur.

</comment><comment><USER24> What a nonsense.

Instead of handling non-zero exit statuses in a correct way,the article suggests to interrupt the script right in the middle, with probably some temporary files and processes hanging around which can't be cleaned up if something goes wrong.

The same BS goes though the entire article.

Has the author actually written anything bigger than echo "Hello world!" in Bash?

<comment><USER25> In bash you clean up in the exit handler:

      trap mycleanupfunc EXIT

<comment><USER24> I've read it, don't worry. So basically we create a problem with the use of -e flag and then solve it with traps... And what if our logic depends on exit statuses, for example when we check whether some utility or a file is present in the system? I don't want the script to exit, I want it to go another logic branch!

P.S. No, temporarily disabling the option is not a solution, it's another workaround for the problem created out of nothing.

<comment><USER26> Exit traps for cleanup are a good idea in any case. Scripts can be killed by signals and whatnot as well.

I'm not sure what scenario you're imagining with your other concern. This does what you would expect:

        set -o errexit
        if [ -f somefile ]
        then
            echo "File exists."
        else
            echo "File does not exist."
        fi

</comment></comment></comment></comment><comment><USER27> Or simply start with

        #!/bin/sh

and stick to POSIX-compliant code.

I'm not sure that writing scripts that rely on bash-specific features is such a great idea.

<comment><USER28> Exactly how does that improve the error handling in your shell script beyond "ignore all errors", as discussed by the OP?

I am genuinely curious how you would write a command with a pipe in plain POSIX /bin/sh such that a non-zero exit status from the program that writes into the pipe is detected (as can be done in bash with "set -o pipefail" or "$PIPESTATUS").

</comment></comment><comment><USER29> Note that these options don't propagate to subshells. So be avare of your commands between ` marks.

<comment><USER30> They do propagate to subshells. The only exception is that bash (unlike other shells) clears -e in command substitutions.

<comment><USER31> They might propagate to subshells. Someone did a lot of checking:

[http://www.in-ulm.de/~mascheck/various/set-e/](http://www.in- ulm.de/~mascheck/various/set-e/)

</comment></comment></comment><comment><USER32> there's also this insane idea of not scripting in bash. ffs!</comment>


Show HN: Lazy evaluation in Python - <AUTHOR> https://github.com/llllllllll/lazy_python <comment><USER2> Somewhat related -- A few months ago I wrote a decorator that can allow for function currying [0], like so:

        @curry
        def add3(a,b,c): return a+b+c

        # normal function application
        >>> add3(1,2,3)
        6

        # add3(1,2) returns a unary function which is then applied to 3
        >>> add3(1,2)(3)
        6

        # rebinding partially applied functions to another variable, then applying
        >>> add2 = add3(100)
        >>> add2(5,6)
        111

        >>> add1 = add2(3.14)
        >>> add1(5)
        108.14
        >>> map(add1,range(5))
        [103.14, 104.14, 105.14, 106.14, 107.14]

[0] [https://gist.github.com/grantslatton/9221084](https://gist.github.com/grantslatton/9221084)

<comment><USER3> Cool, but you don't need that black magic inspecting the arguments, I think you can refactor to use `functools.partial`:

        >>> from functools import partial
        >>> f = partial(lambda a, b: a + b, 1)
        >>> f(1)
        2

<comment><USER2> I suspect you will still need to inspect, otherwise you don't know when to actually evaluate. Consider applying all of the arguments at once:

        >>> partial(add3, 1,2,3)
        <functools.partial object at 0x2b335e0453c0>
        >>> partial(add3, 1,2,3)()
        6

Note that you have to stick an extra () at the end.

You could maybe _try_ to evaluate it and catch the error telling you that there weren't enough args. Both are kinda hacky, I think.

<comment><USER3> Something like this:

[https://gist.github.com/hcarvalhoalves/32af119918aa0837e020](https://gist.github.com/hcarvalhoalves/32af119918aa0837e020)

<comment><USER2> That fails for something like this:

        def test(x, y=None):
            return x

        assert curry(test)(1) == 1 # fails

<comment><USER3> I know, I left kwargs as a later exercise. You can still refactor with `partial` though since it accepts kwargs as the third argument.

</comment></comment></comment></comment></comment></comment><comment><USER4> This is really cool. The AST transformation stuff here is neat, but relatively well-trodden ground.

The more impressive new science here is the lazy_function decorator, which is implemented as a bytecode transformer on the code object that lives inside the decorated function. The author built his own library for the bytecode stuff, which lives here: [https://github.com/llllllllll/codetransformer](https://github.com/llllllllll/codetransformer).

</comment><comment><USER5> You said in a comment that you're looking for a usecase for this technique, so I'll provide one for something similar, perhaps we'll get ideas.

I've been toying with something similar lately, as a caching framework for scientific computations. I will have something like:

        x = load_big_file(filename)  # takes 2 minutes
        y = sqrt(1 / x ** 2)  # takes 4 seconds
        ...

Then, as my work proceed, I will change and tweak and re-run in the same process...clearly a lot of my time would have been saved by caching (though a different part each time depending on what I tweak).

The way to go currently is use joblib, which provides a decorator to put on a function to do basic caching. However you have to take care to manually clear cache if a function you're dependent on changes, or sometimes it will clear cache itself because you changed something irrelevant to the computation.

So the lazy alternative idea I had is a lazily evaluated tree similar to this, where the purpose is looking up a cache using the AST as key. What I have now looks more like this:

        @pure
        def load_big_file(filename): ...

        >>> x = load_big_file(lazy(fileref(filename)))  # fileref is like a string but hashes by timestamp of file..
        >>> y = sqrt(1 / x ** 2)
        >>> print y
        <lazy 23wfas
          input:
            v1: 32rwaa "/home/dagss/data/myfile.dat" @ 2015-03-03 08:43:23
          program:
            e0: 43wafa v1**2
            e1: 4rfafq 1 / e0
            e2: sqrt(e1)
        >

The point is every node in the syntax tree gives a hash (leafs having their value hashed, inner nodes having a hash based on the operation and the inputs). Then implementing a cache is simply

        NULL = object()
        y = cache.get(y, NULL)
        if y is NULL:
            y = cache[y] = compute(y)

I'm leaning a bit towards explicit being better than implicit though (having to call compute(y) rather than it happening when you need it to be evaluated transparently..)

<comment><AUTHOR> Currently, there is no way to clear an object's cache in lazy because it doesn't hold onto the function and arguments longer than needed to make sure that the gc has time to step in and clear unneeded objects. The built in memoization could help with this though.

Also, in lazy, you must call `strict` on things to get a result, it is not implicit. What is somewhat implicit is that calling `bool(somethunk)` (or any other converter implemented with a magic) will return a strict value because of the python standard.

</comment></comment><comment> one-more-minute Are there any interesting use-cases for this and/or problems it solves? Not that there necessarily have to be, of course, I'm just curious.

<comment><AUTHOR> The codetransformer that I worked on actually has some real use cases, namely exposing an object to a function at runtime without making it available to the calling code by name.

As far as lazy itself, it was purely developed for fun in my spare time; however, that does not mean it is not useful. I will say that there was no intended use case for this project and it was not designed to solve a particular problem.

</comment></comment><comment><USER6> Do you actually intend on writing a description later, or is that just a joke?

<comment><USER7> It will be written when you open an issue about it, forcing it to be evaluated.

<comment><AUTHOR> Yeah, that is the joke; however, I think the description will stay as it is.

</comment></comment></comment><comment><USER8> Interesting, very reminiscent of Lisp macros! Glad to see that python code transforming isn't too difficut.

<comment><USER3> You can do a lot with Python's AST:

[http://docs.hylang.org/en/latest/](http://docs.hylang.org/en/latest/)

</comment></comment><comment><USER9> your github username is frustrating.

<comment><AUTHOR> It is ten lower case 'L' characters.

<comment><USER7> But why?

<comment><AUTHOR> Because I think my username is fun, just like I think that programming is fun.</comment></comment></comment></comment>


AI Artists, What Are You Selling: An Image, a Neural Network or a Story? - <AUTHOR> https://www.aleksandra.art/featured-story/2019/11/5/ai-artists-what-are-you-selling-an-image-a-neural-network-or-a-story <comment><USER2> I see that it is very powerful feature, i see that it could be used if you want to see changes of plase from some year and to the current, for example how was building NY from the begging to now.</comment>


Instant messaging is a thorn in modern society - <AUTHOR> http://mashable.com/2017/01/01/instant-messaging-killed-the-introvert-star/#822nx_R4Jkqh <comment><USER2> There's a more basic problem, here, that'd be better expressed without couching it in the ever popular introvert/extrovert false dichotomy (aside: people really love picking labels for themselves): instant messaging tools don't offer features to help users who aren't immediately available and need to delay replies until later.

Give me tools to queue up a backlog, and to indicate to the sender I'm unavailable. Give me a way to easily review batched messages and reply to them as a group or individually (maybe by making it easy to take batched messages and quote them in an email response). Let me set my phone to queue up alerts until a specific time or time interval and then alert on the group. I'm sure there's many other, better ideas, but you get the idea.

The immediacy of instant messaging is incredibly useful. But we need it to adapt to non-immediate replies as well, and today that's just not that easy.

<comment><USER3> Sounds very complicated. IMs for me are generally something I respond to immediately, or not at all. And that seems to be the normal pattern for most people I interact with on that medium.

<comment><USER2> Definitely not my use case. I frequently get instant messages from friends and family when I'm unavailable to reply (at work, at a movie, hanging out with friends and don't want to be impolite, etc). That doesn't mean I don't want to reply, I just can't right away.

I can't imagine I'm unique in that regard.

<comment><USER4> >I can't imagine I'm unique in that regard.

You're not, I do basically the same thing.

Personally I really wish read receipts hadn't caught on so much - they were toxic in email and they're still toxic here. _Delivery_ receipts are fine, they give you an indication that the message hasn't been lost in transit. But read receipts put too much pressure on the recipient for a quick response, because the other person knows they've already read the message.

</comment></comment></comment></comment><comment><USER5> Something amazing occurred to me when I got my Pebble. It grabs notifications from my phone and displays them, but it goes a step farther: it lets you choose in the app which notifications are _actually_ important.

I never sat down and thought about this properly. I had it set up to buzz when my friends chatted in all my IM platforms, but that quickly got old and I didn't want to become numb to the sensation; the watch is surprisingly good at getting my attention. So I turned it off. I allow through text messages which my friends only use to contact me for important matters, and I've silenced almost everything else.

It's amazing how freeing this is. Even for text messages, a simple glance at my wrist is enough; if I don't have my phone out already, I won't get it out unless it's for something important. I walk around the city with my head held high, surveying my surroundings, and noticing things I've never seen before in the neighborhood where I live. My friends know. They can wait, and when I do get around to replying, we pick up right where we left off, no worse for wear.

<comment><USER6> > _It 's amazing how freeing this is. Even for text messages, a simple glance > at my wrist is enough; if I don't have my phone out already, I won't get it > out unless it's for something important. I walk around the city with my head > held high, surveying my surroundings, and noticing things I've never seen > before in the neighborhood where I live._

And what prevented this previously was the fear of missing out on some important notification?

</comment></comment><comment><USER7> I find this is only a problem for people who don't understand what asynchronous communication is. Explaining this ahead of time should clear up any anxieties on both ends.

<comment><USER8> I can see your point, but then it wouldn't be instant. Further, I think the dopamine high that people get from responding to IMs significantly outweighs their ability for self control to read messages later. This is easily confirmed by looking at drivers texting on their phones.

<comment><USER7> As far as I know, "instant" refers to the delivery of messages, not actual processing by humans.

<comment><USER6> The possibility of an instant response (as provided by the processing) makes it also desirable from those waiting for one.

Technology is not passive -- it influences expectations.

<comment><USER7> Technology influences expectations but we can choose not to be a slave to it. Also, if an instant response is desired, the other party is using the wrong technology. For instant response, people can call using a telephone (or app) like people have been doing for over a hundred years and verify that the other person is available before building up unrealistic expectations. After all, what kind of friend (or especially acquaintance) expects you to drop whatever you're doing to respond to them? Even my family doesn't expect that unless it's a true emergency. Only an arrogant and narcissistic person who doesn't understand the idea of work or prior commitments would do that. Needless to say, such people are not my friends.

<comment><USER6> > _Technology influences expectations but we can choose not to be a slave to > it_

Only at the personal level. We can't easily control what others chose, and this thread is all about what others expect from IM (instant responses).

<comment><USER7> Sure, but we can control who we choose to spend time with and who we choose to ignore. The thread is actually about the author who cannot control himself and doesn't know how to even begin to talk to others about his problems with instant messaging. There are many things the author can do, most of which I've pointed out already. Just because we can't control others does not mean we're powerless. Nor does it mean we have to bow down to others' standards and demands for how to lead our lives. Isn't that what personal freedom is about?

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> yes, what mashable said!</comment>


Open plan offices suck. Why people are finally waking up to it - <AUTHOR> http://www.telegraph.co.uk/women/womens-business/10665747/Open-plan-offices-suck.-Why-people-are-finally-waking-up-to-it.html

<comment><USER2> My company's solution - small teams of 4 to 6 people, each cluster separated from everyone else by 5 foot walls with whiteboards on them. Our development style is pretty collaborative, so we benefit from having teammates nearby to bounce ideas off of, but it isn't as siloed off as an individual office. Helps with sound, too.

I also really dislike being alone in an office, though.</comment>


A new way to recruit for (and find) startup jobs - <AUTHOR> http://startuplessonslearned.blogspot.com/2009/07/new-way-to-recruit-for-and-find-startup.html <comment><USER2> I don't think I get it.

Maybe I'm unique, but I would never apply for a job if I didn't know where I was applying. I want to know a lot about the company before I even consider taking the time to apply for the job. Why waste my time only to find out my supposed dream job is actually located somewhere I'd never want to move or with a company that I'd never want to work for?

The blog post about this service talks a lot about how important finding the right "fit" between employee and employer is ... but if the applicants never even know what or where or who they're applying to, doesn't that just add an extra step in trying to determine if there is a fit?

I understand the idea of making it easier to tweet out job links and spread job listing virally. Not a bad idea. But not sure I understand how this many any more sense than just using bit.ly to link to a traditional, full job listing somewhere else.

<comment><USER3> When I was job searching right out of university, one of the reasons I stopped looking at big job boards is that they tended to be filled with jobs from recruiting agencies that wouldn't name the client and would instead show themselves as the employer. I hated that because the type of company was so important to me and what recruiting agency wasn't going to say their client had a position at a "dynamic successful company" where you'd work on "cutting edge technology". They say potential employers spend 30 seconds looking at resumes; I always joked that potential employees spend even less time looking at job postings. If I couldn't figure out what kind of company it was, why would I waste time writing a cover letter?

Although, now that I'm on the other side, I can see why I don't like traditional job listings either. If I post a developer job (at this startup) on something too public I get spammed with mediocre applicants. It takes a long time to sort through them all, and that's time I could be programming.

I do believe this is a problem in need of a decent solution, but I agree that it spreading virally doesn't really differentiate it from traditional means.

<comment><USER4> I don't apply for anonymous jobs either.

I think the solution to the job problem is qualified HR personnel who are capable of evaluating a candidates worthiness well enough to be an appropriate first level filter.

A lot of people want jobs, many of whom are not yet qualified for the position they are applying for. Any attempt to do all the keyword filtering nonsense isn't going to work too well.

I know reading resumes all day from unqualified candidates isn't very fun, but neither is reading college admissions applications or any number of activities people get paid for. As a technology person, I don't think there's a good technical solution to this people problem.</comment></comment></comment>


Lumpers and Splitters - <AUTHOR> https://en.wikipedia.org/wiki/Lumpers_and_splitters <comment><USER2> People tend to be splitters w.r.t. shit they care a lot about, and lumpers about everything else.

E.g. "all red wine tastes the same to me, but differently branded 12AX7 vacuum tubes sound totally different".

"These three Lisp dialects are totally different languages, but everything else is an amorphous Blub."

</comment><comment><USER3> I think we might further define two types of lumper-splitter divides: analytical, and operational. This article explicitly restricts itself to analytical issues, though I'd say it strays into operational territory in the "software modeling" section (since it refers to models made with the intention of immediately implementing them).

The most obvious examples of operational lumper/splitter problems occur in geopolitics. I'm something of an operational lumper myself, and would love to have been born in a time when one could claim to be a world citizen. Not gonna happen anytime soon, though.

However, it appears that I'm an analytical splitter.

</comment><comment><USER4> Relevant, Prickles and Goo (animated by Matt Stone & Trey Parker, recording of Alan Watts):

[https://www.youtube.com/watch?v=XXi_ldNRNtM](https://www.youtube.com/watch?v=XXi_ldNRNtM)

</comment><comment><USER5> Apparently a lumper wrote TFA, while splitters wrote the equivalent meta- pages:

[https://meta.wikimedia.org/wiki/Mergism](https://meta.wikimedia.org/wiki/Mergism)

[https://meta.wikimedia.org/wiki/Separatism](https://meta.wikimedia.org/wiki/Separatism)

</comment><comment><USER2> As a lumper, I'd like to relate this somehow to the "lumped element" model view of a system (e.g. circuit with discrete components connected by ideal wires) versus the "distributed" model. The splitters will chew me out on this, though, I'm afraid; the analogy cannot hold because of the differences.

</comment><comment><USER6> Isn't splitting just a way to make distinct lumps within something?

Maybe that makes me a superlumper.

<comment><USER2> Me, I'm just a member of this:

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

Of no use to the revolution. :)</comment></comment>


Ask HN: How did you solve the "developing on multiple machines" problem? - <AUTHOR>

I have several computers (a desktop computer, a laptop, etc.). I'm developing with Eclipse, using a bunch of plug-ins.
It's a time-waster to synchronize my development environment between all my machines. Usually, I develop on my desktop computer. Whenever I'm "on the road", I first have to configure my laptop Eclipse setup - reflecting the current setup of my desktop computer (including custom views, custom hotkeys, esoteric plug-ins etc.).
What is your solution to the "personal (integrated) development environment on multiple machines" problem? Which related problems are you facing? <comment><USER2> I use Vim. Most of the fancy IDE features are one of a) already there if you know where to look, b) available in one or more plugins, or c) not actually as useful as you've been lead to believe. Seriously. My setup is something you can put on a thumb drive, or better yet put it in source control and sync whenever you like. Much or all of this applies to Emacs.

I realize that some people will never be happy with Vim or Emacs and really want a big GUI IDE. That's ok, too.

</comment><comment><USER3> Well, Eclipse, unlike intellij, has a special workspace directory, you can sync that baby up using dropbox/aerofs.

I use intellij/rubymine (jetbrains) and the advantage is that I pretty much check in my configurations along with my repo. Good stuff.

<comment><AUTHOR> Eclipse plug-ins are usually located in the plugins folder of the Eclipse installation. Do you mean there is a "special workspace directory" that could contain all sorts of plugins?</comment></comment>


Twitter lists and the App Store - <AUTHOR> http://benscofield.com/2009/11/twitter-lists-and-the-app-store/ <comment><USER2> Idea: Build a 3rd party vetting service that seeds itself on rejected iPhone apps (.ipa's) and attempts to do the same static analysis that Apple does. The static analysis tool would be the hardest to build.

It might be a bit difficult to reverse-engineer the rejection process, and I feel the reject-on-first-error (ignoring subsequent ones farther in the review process) can make the process frustrating.

</comment><comment><USER3> Boo hoo. Please stop whining about the app store approval process or rather the lack of process. We all know it sucks. Even my mom knows how bad it is. But it's not going to change by blogging. Move to a different platform or suffer under apple.</comment>


Ruby Library for Google Buzz - <AUTHOR> http://github.com/conorh/buzzr

<comment><USER2> See, it's stuff like _this_ that makes me hope Buzz eclipses Facebook among people I know.

</comment><comment><USER3> Huh? It's just a wrapper around an Ratom parser. Not much to see here yet.

<comment><USER4> Lots of cool things are just wrappers around other things.

</comment></comment><comment><USER5> That was quick. Didn't Google Buzz just come out yesterday?

<comment><USER6> This is the magic of standard/open formats - this library appears to be a pretty thin layer on top of an existing Atom feed parser (<http://github.com/seangeo/ratom>).

</comment></comment><comment><USER7> speaking of astro turfing :)</comment>


Minecraft Kings Landing (jpg) - <AUTHOR> http://i.imgur.com/VGLM1MI.jpg

<comment><AUTHOR> I've never been a player of minecraft but this game keeps amazing me on so many levels. Markus Persson really built a tool for fanatics...</comment>


How To Lose a Decade on a Girl That Never Mattered To Begin With  - <AUTHOR> http://instigate.me/losing-ten-whole-years/

<comment><USER2> This was me. Only one troll and a few hundred views. Good on you, HN.

<comment><USER3> I just tried to submit this for you. You beat me to it.

<comment><USER2> THanks man.</comment></comment></comment>


Ask HN: How do you measure your site's speed? - <AUTHOR>

Do you create your own script? Or use some sort of service? <comment><USER2> Have you tried YSlow firefox plugin? It will help you measuring the loading time.

<http://developer.yahoo.com/yslow/>

Following link might be useful in improving the loading time of your pages <http://developer.yahoo.com/performance/rules.html>

<comment><AUTHOR> Thanks

</comment></comment><comment><USER3> you could also try <http://www.webpagetest.org> , it shows you the bottlenecks as well.

<comment><AUTHOR> Thanks, much appreciated</comment></comment>


Could someone advise a new name for my Pinterest app? - <AUTHOR>

I am the developer of "EasyPin for Pinterest"(an iPad app: http://itunes.apple.com/cn/app/easypin-for-pinterest/id525296621?l=en&mt=8). It offers unique value for user to pin images without leaving the page he is browsing, also can user pin a Pinerly campaign. However, I received from Pinterest legal team that we can't use 'Pin' in our product name:
"In addition to Pinterest's use of the word "Pinterest" to represent its services since March 2010, Pinterest also coined 'Pin' terminology for posting images in the social networking context and uses 'Pin' and 'Pin it' as brands to refer to Pinterest's service."
So I need a new name for the app. I considered "EasyCuration for Pinterst", "EasyDo for Pinterst", "EasyPost for Pinterest", but sounds nor perfect. Could someone advise a name, or how to deal with this case with Pinterest?
Thanks, <comment><AUTHOR> Thanks for all your advices. So far I think "EasyFast" could be my favorite. As "Pin" is used as verb to represent the action to publish a photo, so i'm hesitating to use another verb like 'Push', 'Tack', 'Stick', 'Peen'. They might be new to users.

EasyFast uses two adjectives. It's independent of what action is done, so we can avoid using "Pin". And I like the meaning of "Fast" to indicate "fasten"

This is so far the option i favor of. Thanks for all your help to think about this. And i'm open to new advices. I hope to get the perfect name, and if you guys can help trying the app and send comments (firstname.lastname@example.com), i would appreciate.

</comment><comment><USER2> "Push for Pinterest" gives you some nice alliteration, and I think it works well metaphorically - pins ("push-pins") are pushed into walls, and (more abstractly) the pictures are pushed to Pinterest's servers. I don't use Pinterest, so forgive me if this steps on their toes too.

(I'm a sucker for words ending in -ush. "Rush", "lush", "hush", "mush", "gush", they're all so _evocative_.)

<comment><AUTHOR> Thanks @repsilat, "Push" or "Post" are seen used more for Facebook as they have the wall, while for Pinterest, the used verb is 'Pin'.

<comment><USER2> Perhaps "Pop"? Still fun, still alliterative, and it keeps some relevance to "pin".

It might be more of a stretch to tie the name to the product, of course, but if you said (of a photo) that you'd "pop it on pinterest" in a few places it might catch.

</comment></comment></comment><comment><USER3> Why don't you take some ideas and test the market using Google Consumer Surveys?

Don't feel pressured to determine what the market wants/likes, ask them.

www.google.com/insights/consumersurveys

<comment><AUTHOR> thanks sadow, sounds very interesting. i l try it

</comment></comment><comment><USER4> How about "thumbtacks". (or thumbtack)

You're keeping the reference (albeit obliquely) to pinning things and you're referencing thumbs (which people use for browsing and clicking on the iPad)

<comment><AUTHOR> Thanks @HarrietJones, "tack" sounds good, i'll make a decision in 1 hour

</comment></comment><comment><USER5> I'd change it to Easynip to minimize the pain of transition, but whatever you end up going with, don't forget to milk this for every scrap of media coverage you can get.

<comment><AUTHOR> Hi WiseWease, Thanks very much for your suggestion, we decide to use EasyNip as the new name.

If you like, you can send your correspondence address to my personal email (firstname.lastname@example.com), as i promised, i'l send a gift to you :-)

<comment><USER5> I'm glad you liked it. I don't need any gifts, but I appreciate the sentiment.

You might be able to get some free media coverage if you make a blog post explaining that Pinterest is forcing you to change your name, maybe include the relevant text of the C&D they sent over, indicate a possible loss of business and customers, and give it a title like "Pinterest Claims To Own The Word 'Pin'". Then email tech bloggers and media publications and hope they pick up your story. Everyone loves a good David vs. Goliath story.

</comment></comment></comment><comment><USER6> EasyPeasy for Pinterest? Keeps the E-P theme.

EasyFast for Pinterest? Fast can mean both quick and attach, as in 'fasten a pin'.

<comment><AUTHOR> @JacobAldridge Both sounds good, and I +1 for EasyFast as it's easy to read and recognize (Peasy looks not a common word?)

<comment><USER6> Yes, Peasy is a bit of slang so there's no accepted spelling (Peasy, Peasey, Peesie?) which makes it tough if you want people to search for it.

</comment></comment></comment><comment><USER7> Pinster. But if you can't use Pin, how about Stick? Sticker? Stickster? Stickr? Or even Pnster or Pnstr.

<comment><AUTHOR> Thanks @mikecane, i guess "Stick(er)" is good, i will balance the options and make a decision soon.

<comment><USER7> How about Stickler?

</comment></comment></comment><comment><AUTHOR> Hey guys, we decide to use 'EasyNip'. Thanks for all of your suggestions :-)

</comment><comment><USER8> Are you still allowed use the word Pinterest in your app name?

<comment><AUTHOR> Yes, they allow "xxxx for Pinterest"

<comment><USER8> Would it make sense to lead with "Pinterest for xxx". Would the order of the words have an impact on search results placement?

</comment></comment></comment><comment><USER9> Pintereasy.

You can send me a cake of your choosing.

<comment><AUTHOR> Thanks willthefirst, 'Pin' is still in the name, can we make one without "Pin"? From past communication, it seems useless to explain to Pinterest "this has nothing to do with Pinterest"...

BTW, i'm definitely happy to send a cake to anyone that offers the name.

</comment></comment><comment><USER10> tinip? Just kidding. Here are some other names that come to my mind : EasyGlue, GlueIt, StickIt, EasyStick, peenit, peenrr, peenapp.

<comment><AUTHOR> 'tinip' is very creative, if people can understand it correctly

</comment></comment><comment><USER11> NipIt

<comment><AUTHOR> Thanks @Juniper, "Nip" is a good alternative of "Pin" I guess</comment></comment>


Computer Science Education Act introduced in Congress - <AUTHOR> http://www.acm.org/press-room/news-releases/2010/cs-ed-act

<comment><USER2> This looks really good on paper, but I'm wary of a government mandate to teach something that full time practitioners rarely master.

</comment><comment><USER3> "to address the growing crisis in K-12 computer science education"

As someone who never saw a computer in any of his K-12 days (long ago), I wonder how one measures the growth of the crisis. I suspect that if the schools could address writing and mathematical competence the students could more easily master computing either on their own time or in college.</comment>


Guile and Delimited Continuations (2010) - <AUTHOR> http://wingolog.org/archives/2010/02/26/guile-and-delimited-continuations

<comment><USER2> Continuations. Second only to Monads for having so many bad explanatory articles written about it.

<comment><USER3> Kent Dybvig has you covered : "A monadic framework for delimited continuations" [http://www.cs.indiana.edu/~dyb/pubs/monadicDC.pdf](http://www.cs.indiana.edu/~dyb/pubs/monadicDC.pdf)</comment></comment>