Streams - <AUTHOR> http://kevinlawler.com/streams <comment><USER2> I love the way he describes streams. Since he ends with our own personal work, I'd like to draw another analogy.

I've spent 1-2 thousand hours playing and practicing ping pong. As a result, I'm better than the average person (though not overpowering). One of the things I've noticed about poor players is they take the point total for what it is at this exact moment. It's not unusual for an average ping pong player to be up by 3 or 4 points midway through a match and - I swear - without fail you see them get excited. Breathing speeds up. Muscles tighten. Shots are a little harder. They're winning.

These people are experiencing a spike.

On the other hand, my game doesn't change just because the score is 7-11 and I'm down. Serves are the same and shots hold their pace and breathing stays regular. Why? Because my game is a stream. I know I have more ping pong experience and better fundamentals, so I trust my game more than I trust the score. Spikes happen all the time in both directions. But streams win games.

But I wasn't always good. When I was a child, my father and I would grab paddles and head to the garage. Every game I played for two years was a loss. 21-14, 21-18, 21-8, 21-9, 21-16...for years. He would never ever ever let me win. Never. I know, because I never did.

Until one day.

Like usual, we were playing a tight match and suddenly the game turned my way. 23-21, I won in overtime. I'll never forget walking across the garage to shake his hand, look him in the eye and hear: "congratulations, good game."

Well, I kept practicing (college was fun) and now I rarely lose.

The truth about streams lies at the heart of most important things in life. I call it direction. and you know what? When things are good, I think smart people know about direction. The real problems are when you are practicing _anything_ and keep losing. For me, right now, that's customer development. I'm scared to death to call a potential customer. Even though I know it's ok when they say no. Those calls are practice and with enough training and practice I can "win". But the idea still makes me shiver.

Direction matters more than the score.

<comment><USER3> Well said. If you have or build an "edge" over time the distribution of your outcomes will have a positive mean. Along the way you may see values on the tails which are random spikes.

</comment></comment><comment><USER4> Very coherent piece on a familiar concept.

I think of spikes as ways to sustain streams. They're also the quick route to making bad decisions. It's encouraging to see your investments jump in value every now and then, but if you sell a stock that's doing badly when you could have waited until it bounced back, you're making a bad decision. Another instance: you're steadily learning machine learning, and the motivation starts to drop; you post your little project on HN, and it makes the front page for a day; you suddenly feel better about learning it. In this case, the spike is a sneak peek into the future: you'll have a decent following if you really push yourself to learn.

</comment><comment><USER5> Stream — Previously defined

Steam — What it takes to get a project done

Team — The people who help drive the project

Tea — Brain fuel!

</comment><comment><USER6> Can i suggest we call the spikes "blips", if for no other reason than to avoid confusion when talking about "spikes" with project managers and product owners.</comment>


What is worth its weight in gold? - <AUTHOR> http://www.marginalrevolution.com/marginalrevolution/2008/08/what-is-worth-i.html

<comment><USER2> Antimatter, most expensive substance on Earth. $62.5 trillion an ounce according to nasa.

<comment><USER3> It may be me but it seems odd to be measure antimatter in terms of ounces. I'd measure it in grams but then the fact that it's anti matter would indicate that we should measure it in anti grams. Hmm..</comment></comment>


You don't need to stop shipping features to fix technical debt - <AUTHOR> https://medium.com/humans-of-xero/technical-debt-f5158cc9ca07 <comment><USER2> [http://archive.is/iId7v](http://archive.is/iId7v)</comment>


[Survey] Transforming Technology Education: Help Codealong - <AUTHOR> https://startupweekend.wufoo.com/forms/codealong-survey/

<comment><AUTHOR> Howdy folks! This is for my Startup Weekend project, Codealong <http://codealong.org/>.

We want to help connect innovative educators with developers who want to volunteer their time and expertise.

I'm busy hacking all night, but I'd love it if you could help me validate some of our ideas so far by filling out the survey. I can try to check back here every once in a while to answer questions.</comment>


Writer's Block, or the Wantrepreneur Blues - <AUTHOR> https://www.indiehackers.com/@thwiv/writers-block-or-the-wantrepreneur-blues-76ab4a93b6?utm_source=Indie+Hackers+Newsletter&utm_campaign=indie-hackers-newsletter-057&utm_medium=email <comment><USER2> Quit your job. Make it real. Fear is one of the best motivators.

Unfortunately this is bad advice for most people, because the truth is most people don't have the full skillset required to own a business. Maybe they could learn it if they apprenticed under an entrepreneur or in an executive role, but I'm honestly not sure.

I own a business with studios in New Orleans and Atlanta, but I worked in the real world, went to grad school, and then came out and immediately went out on my own which is easier for a lot of reasons.

I also think a series of fortunate and somewhat unreproduceable events led me here, strangely enough involving Gabe Newell, though I'm sure he wouldn't remember.

I honestly don't think reading a bunch of books telling you how to be an entrepreneur are helpful or real at all. In fact I would describe them as more of a stalling tactic.

<comment><USER3> > _most people don 't have the full skillset required to own a business_

i agree with your post but i never miss an opportunity to be pedantic -- reality is nobody has the full skillset to run a business -- in my mind it's really just a bunch of intangibles like vision (goal setting), determination, ability to take staggering amounts of abuse, ability to work insanely hard when it's necessary, and ability to know how to hire an expert in matters you are not skilled or experienced in, which means the ability to clearly communicate and know what to ask for through deductive reasoning.

most people have NONE of those skills, because working a normal job doesn't require any of them. zero, zip, nada, zilch. a high functioning professional has like 2 or 3 of those things. i would guess less than 5% of the general US population has those characteristics in the large amounts required to start a business from scratch, and most of the time that talent is channeled into something like e.g. investment banking or corporate law or being a surgeon.

on top of all that, the ability to take a financial and social risk is just too much to handle for most people. they just won't do it. period. you might as well ask them to sprout wings and fly.

but that's why starting a business has the potential to be so god damn lucrative -- basically, nobody else is doing it relative to the demand the overall economy generates.

i also agree that the only way you're really going to get anywhere is if you quit your job, or were fired. the slow drip of a paycheck is the biggest obstacle.

<comment> crush-n-spread

      financial and social risk is just too much to handle for most people. they just won't do it.

      nobody else is doing it

People tend not to try because they cannot embrace the intermediate feeling of "I f __*ing suck at this. "

When you embrace that you are not very good, you become the master. It is a tautology.

<comment><USER4> I feel like that's the step I'm on, and I really hope you are right.

</comment></comment></comment></comment><comment> brian-armstrong There's a really simple gimmick I use to get myself to do work. Set timer on phone for 20 or 30 minutes. Until the timer goes off, I won't intentionally engage in any distractions, just my project. When the time is up, I'm free to go do something else if I want. Sometimes I will stop working. Many times I will have got engaged by whatever I was doing and will keep going for a few more hours.

Even if I stop, 20 minutes of undistracted work is actually pretty significant, so it's win/win

<comment><USER5> The pomodoro technique is very useful. Check out the app Forest, it's kind of a cool app for this technique.

</comment></comment><comment><USER6> I have done a ton of successful side projects, one of them even turned into a great and growing business for me.

As a former musician the concept of jamming seemed like a great way to think about side projects.

In other words in my experience the best you can do is not even think about your side projects as projects (as the require process) but rather as jam- sessions.

Hopefully you have hundreds of little ideas to explore not just one (if you have that one big idea you should probably turn it into a real business, quick your job and maybe get funding)

The worst thing you can do is to worry about process (buy domain name, spend time on logo etc)

<comment><USER7> Very insightful. Jam session also sounds better, less like work and more like fun. Easier to justify (to yourself and to others) if it doesn't go anywhere, and less pressure.

<comment><USER6> Yes Side projects should normally be measured by you don't want to go to bed because you want to do just one more thing rather than you can't go to bed because you need to finish some thing. It should be purely driven by desire.

<comment><USER8> Jeez, I wish I could verbalize things like this because they are so insightful. Thanks for that. It makes sense, but I'd never think to phrase it like that, and hence it doesn't seem apparent that's what I want in my side projects. But the abstract gut feeling is essentially that.

</comment></comment></comment></comment><comment><USER9> Step 14: Find out in a couple years that someone else took the same idea to fruition and succeeded.

When that happens I'm sad that I didn't fully pursue it, but happy that someone did.

<comment><USER10> Back in high school I had an idea for a video game that I really wanted to make, but didn't because I was focusing on learning to program instead. That was probably the right decision, because that time investment I made during those years has really paid off for me.

The game was a two-genre mashup between two _very_ different genres, that I thought I could pull off blending together. (I still kind of think it could be done, whether or not I still think _I_ could do it alone is a different story...)

A few years ago, someone came up with exactly the same genre mashup, and in fact the main character looked extremely close to what I had in my notes.

I was thrilled about it because I didn't just want to make it, I wanted to play it. Someone else did the work and took the risk of making it for me, and I get to fork over a few dollars and play it myself! Sure I wanted to be the one to make it, but if it existed at all that was huge.

I'm a millennial, so the first thing I did was go look it up on YouTube. And what I saw was incredibly disappointing, didn't do any of the things I was hoping it would, and frankly I didn't even bother to go buy it and play for myself. It didn't look like it had that fun factor, and it didn't do either genre justice.

Still makes me sad, and if I were to go into game development as more than a hobby, doing that game right is top of my list.

<comment><USER11> In games ideas are almost never original. I used to work with a designer who said if you think what you are doing is new you probably haven't been paying enough attention. But ideas matter very little and execution is golden. So I wouldn't worry too much if someone tried your idea.

</comment></comment></comment><comment><USER12> The key is to reduce the friction of getting features out on the open web and getting feedback from real users. have just one generic domain that can be repurposed to any idea. Attach it to a static ip on aws do or up cloud as an example. Use a rad framework like rails django or laravel and launch a permanent hello world by pushing to github. Now find a small group of users that have a problem you can solve. Spend an hour a night adding a page to your site and gather feedback. Rinse and repeat. The key is to have a basic ci/cd pipeline setup at the outset. Then iterating on ideas becomes much more easy.

</comment><comment><USER13> Forgot to list:

"Tell your friends about your brilliant ideas."

<comment><USER14> I'm at the point where I don't do that any more, to avoid the shame of being asked about it later and having to admit I haven't worked on it in months. Some people say they find having others know about it to be a motivator, but that hasn't been true for me.

<comment><USER15> I don't tell others either. Not right away. Telling someone is almost as good as it being finished. You have gotten that sweet social reward and pat on the head for being clever.

If I don't show anyone until it's real in some way then I have to make it happen if I want that sweet social head pat. Obviously that's not the reason I do things but I do find telling people can undermine my motiviation a bit.

</comment></comment></comment><comment><USER16> Serious question for those in software development, Have you ever had a debugger/problem solver's block? how do you get over it?

<comment><USER17> I've been stumped countless times. It can be demoralizing at times, but I've always found a way through. Some things that help:

\- Break the problem down into smaller pieces. Analyze/Attack each piece.

\- Try to attack the problem from a different angle.

\- Step back, explain the problem to someone. Sometimes just explaining yourself helps highlight your assumptions, and can help you re-arrange your approach.

\- Keep at it. Keep trying different things.

<comment><AUTHOR> I totally agree with this, the bug catching block, occurs because we are not sure if catching this bug will solve our problem at all.

Also this helped me a lot in making things dirtier, use some form of version control system (must). I cannot emphasize more on this. this is to bring you back to the original problem state, which is most cases is simpler than you think.

</comment></comment></comment><comment><USER18> I like the triad he breaks it down into. Here's the tricks I try to get over missing one leg of the tripod:

        > Energy and Direction, No Time

I have a wife, kids, pets and work full time so this is my default state. Things that help:

1\. Get off my damn phone / reddit / twitter / whatever. Consuming media on the Internet is junk food for the attention span. I have had way too many evenings after I get the kids in bed where I think, "I'll just unwind on my phone for a few minutes and then work on something." The next thing I know, it's three hours later, every animated GIF and cute kitten link on Reddit is purple, and I'm filled with regret.

I trying now to break my habit of consuming stuff on the web. It's ultimately not satisfying. A little news-reading is important, but any more than fifteen minutes a day or so is wasted.

This frees up an astonishing amount of time.

2\. Get better at working on things in small pieces. I'm writing a book right now that's projected to be about 200,000 words. It builds up two implementations of the same programming language, and each implementation is spread across multiple chapters, so the book is _highly_ intertwined.

You might expect that to require a ton of mental state and lot writing sessions to work on. Nope. I usually work on it less than an hour a day (which, granted, means it's going to take forever to finish). I rely on a test suite, Git, a log, and notes to myself to make it easier to pause and resume work on it and break it down into small pieces.

3\. Decide what _not_ to spend time on. Our natural tendency is to want to say yes to things -- new projects, new hobbies, new outings, new toys to play with. But since time is finite, each of those means cutting out something that's already in my life. I try to be more cognizant of that and proactively choose to _not_ invest time in things I don't want to be doing right now even if I would like to.

        > Direction and Time, No Energy

For me, this is usually laziness or analysis paralysis. Some amount of laziness is OK -- nothing wrong with some chilling and self-care. Relaxing feels good, but I find it doesn't feel as good as the satisfaction of accomplishing something, so I try to remember that.

Analysis paralysis is my personal demon. I try to remember that anything is generally a more productive path than getting stuck and doing nothing. If I'm stuck because I don't have enough information to pick a path, walking down one path is a great way to get that information, even if it requires some backtracking later.

        > Energy and Time, No Direction

For me, this is usually analysis paralysis at a larger scale. The kids are finally out of the house and I've got four hours of free time. What project should I work on? Oh, God, I can't pick. Again, I try to force myself to pick _something_ because any choice is better than no choice.

I don't personally often have the vague "I don't know what I want to do at all" problem I hear a lot from bloggers. I think many of those are coming from people who want to _be_ a certain thing (author, entrepreneur, successful open source project lead, etc.) and don't want to _do_ a certain thing (edit paragraphs, make sales cold calls, reply to bug reports for five hours).

They want the reward of the cachet associated with the identity but either don't want to or don't know how to do the work to get that. Personally, I'm generally more motivated by the process than the product, so I don't fall into that trap very often. I don't have enough self-discipline to spend time on things when I don't enjoy the basic mechanical process of it.

<comment><USER19> > I have had way too many evenings after I get the kids in bed where I think, > "I'll just unwind on my phone for a few minutes and then work on something."

There's a hack for this which I find works, just go to sleep at 8pm or 8:30pm instead right after the kids. Wake up at 4pm-4:30pm (yes I need a full 8 hours every night, not negotiable), you'll have much more willpower to tackle your side project in the morning before your kids wake up.

Given the choice between reddit and side project, reddit will win. Given the choice between reddit and sleep...it's much easier to pick sleep even if reddit is more tempting.

In the morning you have 2 choices, reddit vs side project but you just invested effort in waking up at 4:30am, side project it is...

Edit: I actually see sleep as a precondition of productivity so sleeping is a 'productive activity' for me.

<comment><USER20> > eddy_chan 1 hour ago | parent | on: Writer's Block, or the Wantrepreneur > Blues

> I have had way too many evenings after I get the kids in bed where I think, > "I'll just unwind on my phone for a few minutes and then work on something." > There's a hack for this which I find works, just go to sleep at 8pm or > 8:30pm instead right after the kids. Wake up at 4pm-4:30pm (yes I need a > full 8 hours every night, not negotiable), you'll have much more willpower > to tackle your side project in the morning before your kids wake up. Given > the choice between reddit and side project, reddit will win. Given the > choice between reddit and sleep...it's much easier to pick sleep even if > reddit is more tempting.

That's a great way of thinking about it.

p.s I think you mean 4am.

<comment><USER21> > Wake up at 4pm-4:30pm (yes I need a full 8 hours every night, not > negotiable), you'll have much more willpower to tackle your side project in > the morning before your kids wake up.

This is the exact tactic used by a friend studying PhD with five young kids. She got the PhD in four years.

Also if you do a lot of manual labour - gardening, stacking shelves whatever - sleep becomes the obvious choice.

</comment></comment></comment></comment><comment><USER22> "3\. Buy a domain name (this step is crucial)"

Fantastic

<comment><USER8> This part is easy for me. I have a ton of dead domain names. The rule that if you have skin in the game or money in the game, then you'd be motivated to complete the task. That doesn't work for me. Maybe for a little bit. But essentially stuff like this is a sale technique.

<comment><USER23> It's easy for everyone. The "this part is crucial" was sarcasm :)

<comment><USER8> Ah, I didn't read the article. Probably should have done that.

</comment></comment></comment></comment><comment><USER24> > _Energy and Time, No Direction_

I tend to just buy one of the books I have on my list and dive into that. Then I don't need direction, I just keep turning pages and take notes.

</comment><comment><USER25> I gotta say, I just bulldoze through and get the damn software built at great personal cost in a whole range of ways. I always complete the project.

The hardest thing is not writing the code - although that is extremely hard - the hardest thing is building something people want to use.</comment>


Show HN: Javalin, a Java/Kotlin REST API Framework - <AUTHOR> https://javalin.io <comment><USER2> The "Fully Fluent API" seems to be a style adopted as a workaround for the clumsiness of the Java language, as far as I can tell. In Kotlin it's not necessary and just looks a bit weird.

This example in Java:

      Javalin app = Javalin.create()
          .port(7000)

      app.start()
         .awaitInitialization()
         .stop()
         .awaitTermination();

could be written more naturally in Kotlin:

      val app = Javalin.create().apply {
          port = 7000
      }

      with(app) {
          start()
          awaitInitialization()
          stop()
          awaitTermination()
      }

...except that Javalin doesn't seem to implement the normal convention for getters and setters, so the apply block wouldn't work.

<comment><USER3> Are you really saving much? Non-fluent API:

        Javalin app = Javalin.create()
        app.port(7000)

        app.start()
        app.awaitInitialization()
        app.stop()
        app.awaitTermination()

And three lines shorter than the kotlin one.

<comment><USER2> In this case we happened to have a variable already defined with a short name, but in other cases the name might be longer or you might have to introduce a temporary variable. If you don't need the reference to _app_ in the rest of the program, you can do away with the name entirely:

      with(Javalin.create()) {
          port = 7000
          start()
          awaitInitialization()
          stop()
          awaitTermination()
      }

When in comes to the question of how much this is saving us... the Java designers seem to have thought it was worth something, since Java has a somewhat similar feature: a method calling another method on the same object can leave out "this".

Python on the other hand doesn't have the implicit "this", so the JUnit API (the _unittest_ module in Python) actually becomes uglier in Python. Instead of this in Java:

      class TestNumbers extends TestCase {
          public void testArithmetic() {
              assertTrue(1 + 1, 2)
              assertFalse(10 * 10, 100)
          }
      }

Python needs an explicit _self_ variable:

      class TestNumbers(unittest.TestCase):
          def test_arithmetic(self):
              self.assertEqual(1 + 1, 2)
              self.assertEqual(10 * 10, 100)

<comment><USER3> > the Java designers seem to have thought it was worth something, since Java > has a somewhat similar feature: a method calling another method on the same > object can leave out "this".

True, though the reason what that Java should be "familiar", so it did the same thing as C++.

IMO, Python did the right thing by not having magic variables.

Functional code + this starts getting messy, ala JS.

</comment></comment></comment></comment><comment><USER4> This looks nice but so far I'm thrilled with ktor (which is very much in development).

Some of the main draws are:

\- It supports multiple server hosts (Jetty, Netty, Tomcat as well as running as a servlet)

\- It's Kotlin done by the JetBrains guys so very much Kotlin to the core

\- It supports co-routines

Not trying to throw water on your hard work, but what reasons would I want to consider Javalin?

<comment><AUTHOR> > but what reasons would I want to consider Javalin?

I'm not really trying to convince devs whose main language is Kotlin to use Javalin, it's made more for Java devs and Java devs who are looking to switch to Kotlin.

That being said..! Ktor Hello World example isn't very pretty, and I can't find the docs. All I found was a mostly empty wiki. Where are the official docs?

By the way, pull-requests for other embedded servers would be very welcome in Javalin.

</comment></comment><comment><USER5> The Kotlin sample on the homepage isn't idiomatic, i.e. the handler should be written outside of the parentheses.

<comment><AUTHOR> Thanks for spotting that, fixed.

</comment></comment><comment><USER6> So Javelin is written in Java, not in Kotlin. I don't mean to sound unfair but isn't it that saying "a Java/Kotlin blah blah" just a kind of marketing trick ? If I get Kotlin right every Java solution is also Kotlin compatible.

<comment><AUTHOR> There's a difference between just being compatible and nice to work with. Javalin is being developed with Kotlin in mind. I'm a Java dev who wants to transition to writing Kotlin, but most companies are not very eager to make the switch. Javalin is intended to help ease this transition.

<comment><USER6> Ok, thanks that sounds fair.

</comment></comment></comment><comment><USER7> How is this pronounced? Like it's spelled, or like "javelin?"

<comment><AUTHOR> Good question. I'm Norwegian, and I always pronounce it "ya-va-lin" when I talk about it in Norwegian. Let's say that's the official pronunciation.

</comment></comment><comment><USER8> how is this different from Spark Java aside from the name that is

<comment><AUTHOR> I should probably create a comparison chart, but in short:

Javalin has no static API, and no concept of "Routes and Filters". In spark Routes have a return value, in Javalin you just have "Handlers" which operate on the request and response. Javalin can do automatic object-mapping to and from json, and has lifecycle events.

Javalin has a built in mechanism for auth (AccessManager)

Javalin has no WebSocket support, and doesn't do static file handling (it leaves this to the embedded server). Javalin runs before-handlers before static files, Spark does not.

Javalin has a fluent api.

Javalin is implemented as a servlet, not a filter.

After-handlers are run after everything (even in case of exceptions), (Spark has after-after filters).

There are many more small differences. I'm one of the maintainers of Sparkjava. Javalin is the result of using Spark daily for the past two years, fixing minor annoyances and including new concepts I would find myself implementing over and over again.</comment></comment>


Found: A Miniature Incan Llama at the Bottom of Lake Titicaca - <AUTHOR> https://www.atlasobscura.com/articles/found-llama-gold-titicaca <comment><USER2> I'm Chilean, and I lived in Bolivia back in 89. I used to travel back and forth all the time, so I got used to see lake Titicaca from the air, and a couple of times on the ground. The place is astonishingly beautiful. Pristine. Ancient. The Aymara people have the deepest connection with their land, and the lake, of any place I've ever been at.

I haven't been back in a long time, but whenever I hear about the Altiplano (the highlands) I get an overwhelming feeling of respect for their people, their land and their culture. In South America (at least definitely in Chile), we're obsessed with modernism, state-of-the-art highways and skyscrapers. Aymaras, on the other hand, seem to live in a place with no time, where even their language expresses the past in front, and the future behind. Their people continue to carve artifacts like that llama today, just like back then.

<comment><USER3> It's surprising how much the future being behind as a metaphor makes sense. You can't see behind you!

I wonder if there is any other indication of a focus on vision, or seeing in their culture.

<comment><USER4> It's not about vision, it's about movement. We move forward through time, thus we consider the future to be ahead.

It's interesting that vision is antagonistic to movement though when it comes to time metaphors :-)

<comment><USER5> Maybe we are moving backwards through time and that's why we can only see clearly into the past. As GP comment hinted at, it's a matter of cultural perspective.

<comment><USER4> I don't think cultural perspective as much as pure philosophy. As a coder, I once realized that the entire universe's events could be an existing stack, and in that stack exists the events that create the universe, because of the requirement of consistency. Us experiencing time would just be those events being popped off that stack.

This stack view is equivalent to what you are saying, and there is no reason to believe it can't be the case since it does make consistency easily satiable.

</comment></comment></comment></comment></comment><comment><USER6> The title is confusing. They found a llama miniature, not a miniature llama. Miniature ponies and miniature schnauzers are animals, but this is a figurine made of shell.

<comment><USER7> If you want to take that approach, a miniature is a painting, not a sculpture.

<comment><USER8> It's also a kind of golf.

</comment></comment></comment><comment><USER9> Abstract from the paper _The context and meaning of an intact Inca underwater offering from Lake Titicaca_ [1]:

> As the Inca Empire expanded across the South American Andes during the > fifteenth and sixteenth centuries AD, Lake Titicaca became its mythical > place of origin and the location of a pilgrimage complex on the Island of > the Sun. This complex included an underwater reef where stone boxes > containing miniature figurines of gold, silver and shell were submerged as > ritual offerings. This article reports a newly discovered stone offering box > from a reef close to the lake's north-eastern shore. The location, content > and broader socio-cultural context of Inca sacrifices are examined to > illuminate the religious and social meaning of underwater ritual offerings > at Lake Titicaca.

The box was "at a depth of 5.50–5.80m below lake level" (18-19 feet) which a skilled swimmer can reach; I wonder if this might be a re-usable safe box rather than a "ritual offering".

[1] [https://www.cambridge.org/core/journals/antiquity/article/co...](https://www.cambridge.org/core/journals/antiquity/article/context- and-meaning-of-an-intact-inca-underwater-offering-from-lake- titicaca/AD2AAA3D95C2CB5551E2E02F8EA0AD11)

<comment><USER10> That even seems within the range of variation of the water level. Google suggests [0] the water level rose 6m between 1943 and 1986 and generally fluctuates 1m or so each year. If that's typical, the box could have been at shore level, or well above, or 20m below in Inca times.

[0] [https://link.springer.com/referenceworkentry/10.1007%2F978-1...](https://link.springer.com/referenceworkentry/10.1007%2F978-1-4020-4411-3_121) (source is paywalled for me)

</comment></comment><comment><USER11> That's so cool, it looks like an animal cracker!

</comment><comment><USER12> The carved stone plug and box are more fascinating IMO, they remind me of the still supposedly "lost" art of Inca stone working/fitting.

</comment><comment><USER13> I crossed lake Titicaca in 1969. Must have missed it.

</comment><comment><USER14> Yeah it's mine i lost it in there.

</comment><comment><USER15> > Chalmers: SKINNER! Good idea. Now if you'll excuse me, I'm off to my > vacation at Lake Titicaca. Try to make a joke out of that, Mr. Smart Guy.

See: [https://en.wikiquote.org/wiki/The_Simpsons/Season_10#The_Old...](https://en.wikiquote.org/wiki/The_Simpsons/Season_10#The_Old_Man_and_The_%22C%22_Student)</comment>


Show HN: Gage- Validate your ideas with user feedback - <AUTHOR> http://www.gage.io

<comment><USER2> Useful but you could add more structure. For e.g., categorize the tests as click test, form submit test, etc.

<comment><AUTHOR> Thanks for the suggestion! Right now it's only open-ended surveys (more like user interviews than user tests); will likely add testing categories in the future.</comment></comment>


Grand Image Compression Challenge at ICIP 2016 - <AUTHOR> http://jpeg.org/items/20151126_icip_challenge.html <comment><USER2> Eh... isn't the Joint Photographic Experts Group the one that patents everything?

<comment><USER3> I'm wondering, what incentive do researchers have to share their new compression algorithms with JPEG? Especially if JPEG patents everything as you suggest.

<comment><USER4> If it works similarly to other standards groups, they don't take the patents from inventors. Instead, they manage the patents and collect fees on behalf of the (many) holders, allowing anyone to buy the rights through a single entity. The various MPEGs and other formats like DIVX work in this way.

<comment><USER5> No that isn't true. ISO (MPEG/JPEG) does not play a part in licensing patents or forming patent pools, which is only natural when you consider the fact that ISO is an international organization headquartered in Geneva and every country has its own patent ecosystem.

Individual companies within a certain jurisdiction can certainly set up pools and court the various rightsholders who participate in the standards process, and that is what you see with e.g. MPEG-LA and HEVC Advance in the US. But these have no direct connection to ISO beyond using the name and serving the contributing organizations.

Also, JPEG and MPEG are both part of the same standards group. And Divx is just a brand of MPEG implementations.

<comment><USER2> Ah, so I accidentally spread FUD because, well... the situation is complicated and confusing.

Sadly I can't edit my top post any more :/

</comment></comment></comment></comment></comment><comment><USER6> I hope evaluation will use more diverse set of images than the subset given. Only a couple of example images have highly saturated color, and all example images will tolerate poorly done chroma subsampling.

On the web there are categories of images, such as logos, screenshots, renders, large icons, photos with captions, that aren't simple enough to compress well with lossless encoders, but become a mess when compressed with codecs tuned for high-res photos without any sharp highly saturated edges.

<comment><USER7> You don't need to subsample chroma in JPEG. I often disable it (use 4:4:4 sampling) if there is high color contrast detail. Say a tree with red fruit, marketplace, kid's toys, etc.

<comment><USER6> I know it's not necessary in JPEG, but some codecs (especially video and therefore video-codec-derived still image formats) have only 4:2:0 option. And if a codec chooses to use it, I'd prefer the test suite to require it done well.

I've recently looked at it closely and found that almost every codec does chroma subsampling incorrectly, but the error is visible mostly in computer- generated graphics, and rarely in photos, and probably that's why nobody cared to fix it.

[https://github.com/mozilla/mozjpeg/issues/193](https://github.com/mozilla/mozjpeg/issues/193)

</comment></comment></comment><comment><USER7> For _most_ purposes, image compression is a solved problem.

I assume this challenge exists to create a new image compression format. But I don't see any reason why JPEG2000 doesn't happen again - a new format that almost no one adopts. JPEG was simply good enough.

Although 12-bit color depth with JPEG comparable compression levels would sure be nice.

<comment><USER2> Holy shit do I strongly disagree with this.

> _Although 12-bit color depth with JPEG comparable compression levels would > sure be nice._

Exactly: there are _so many_ features - like higher bit depth, alpha transparency, different colour spaces - missing form JPEG.

IIRC, JPG2000 wasn't adopted because back in the day we only had Internet Explorer, which required a special plugin, it was too slow, and there weren't many export options.

BPG and FLIF are good contenders in the lossy/lossless area though.

[http://bellard.org/bpg/](http://bellard.org/bpg/)

[http://flif.info/](http://flif.info/)

<comment><USER7> I agree new features would be nice. Like alpha transparency like you mentioned. Or how about cool things like depth or normal maps? I just think almost no one cares. We represent 0.1% of the population.

The last new image format to be universally adopted was PNG in 1996. A lot of entrants have tried ever since, but I think it'd be fair to say none of them mattered the slightest.

</comment></comment></comment><comment><USER8> This would be a good occasion to have scrutinize the compression algorithm in BPG image format [http://bellard.org/bpg/](http://bellard.org/bpg/) .</comment>


Why Doesn't Amazon's Price Sort Work? - <AUTHOR> http://jackg.org/amazon-price-sort <comment><USER2> I don't work at Amazon but worked at one of the largest comparison shopping sites in a core search group.

Sorting by price is hard - if you really wanted to do a true price sort you end up with the long tail of products that match the term "ipod" (but are very loosely related to ipods) at the top of search results. Try searching for ipod in electronics and sorting by price.:

[http://www.amazon.com/gp/search/ref=sr_nr_i_0?rh=k%3Aipod%2C...](http://www.amazon.com/gp/search/ref=sr_nr_i_0?rh=k%3Aipod%2Ci%3Aelectronics&keywords=ipod&ie=UTF8&qid=1337231072#/ref=sr_st?keywords=ipod&qid=1337231088&rh=k%3Aipod%2Cn%3A172282&sort=price)

I get a usb connector, stereo speaker, some other mp3 players, etc. all among the top 6 results. Only 2 ipods on the first page. At least there is a link to a department containing just the ipods.

So in order to avoid doing really badly you don't allow searching by pure price, but rather use a combination of price and relevancy (and this can only take you so far as the results above demonstrate.)

<comment><USER3> There's no excuse like that for Amazon.

Ideally, you would click electronics category. Apple. IPod. Order by price. You didn't select category iPod accessories, so you shouldn't see them there

But some slob at Amazon sacrificed search by adding related crap

</comment></comment><comment><USER4> This is one of the few annoyances of shopping at Amazon. As a Prime user, I usually don't want to deal with anyone other than Amazon directly.

There's a search filter option to select "Prime eligible" items, but when you select it, the price sorting still seems to include Marketplace vendors. Selecting the "New" search filter does not help.

There's even a search filter for "Seller" that allows you to select only amazon.com, but the price sort is still wrong if this is selected!

(I understand that Amazon probably prefers that we stumble upon the marketplace vendors, but it's frustrating when you can't disable it even temporarily.)

</comment><comment><USER5> Good question. Amazon is great for searching, pretty good for browsing, but pretty awful for browse-searching, where you're trying to narrow down results via search but still browse through them using various sorting and filtering types. The consistently awful price handling is the worst part of it.

I often find myself doing product filtering on other sites (yes, I feel a bit bad about this) and then (usually) buying on Amazon because of price and the free Prime shipping.

eg. I'll figure out what I want to buy for a new computer system on Newegg, because their combined browse-search is way better than Amazon's, and then take the final result and see if it is worth buying on Amazon via a direct parts name/number search. Amazon loses about 10-20% of the sales I would have otherwise just given them due to this when it turns out the cost to buy the item on the other site I was using is similar enough to the Amazon price. When the price is even close I favor the other site since they provided me a better UX experience, but I do admit that if the overall cost to buy on Amazon is significantly cheaper, I'll still buy from them.

</comment><comment><USER6> Anytime you see something that's relatively easy to solve by a major company but remains unsolved, either you don't realize how hard the problem really is, or the company is profiting from their "oversight". Apple could easily make a 2-disk-drive macbook, but they don't sell that configuration.

<comment><USER7> I'm not so sure in the case of Amazon. Their requirements analysis process appears immune to customer feedback.

</comment></comment><comment><USER8> That was bothering me for ages. I wish someone from Amazon came out to explain what' really going on with broken sort.

<comment><USER9> I never really use sort by price because I find that the cheapest results are usually not very relevant, but I do have other complaints about sorting results on Amazon...

Why do I still need to select a department in order to sort? Does Amazon really not have the resources to index their entire product database (or at the very least just pick the department with the most results to save me a click)? And why can I only sporadically sort by bestselling/most popular?

<comment><USER10> _I never really use sort by price because I find that the cheapest results are usually not very relevant_

That's exactly part of the problem. If I'm searching for something specific like 'iPod Touch 32GB' I should not get results for $0.99 iPod cables and cases.

</comment></comment></comment><comment><USER11> I wrote about this recently too, with some screenshots: <http://chir.ag/201203161607>

</comment><comment><USER12> What I don't get is when I search for any product then select to filter by "Amazon Prime" I am still seeing results for items that are not Prime Eligible. Now you can't tell me that Amazon doesn't know whether or not they are fulfilling a certain product. I mean if they are able to display the Prime logo on the products page why can't they filter for only Prime Eligible items?

</comment><comment><USER13> It works better with the prime only option selected, removing a major variable. I might wind up paying more for certain items, I don't care. I don't actually need the best item with the most features for the lowest price. The idea that I do is an artifact of incorrect cost/benefit analysis about the value of my time and mental effort.

</comment><comment><USER14> At one point it seemed to me that the prices were sorted by the listed retail price for that particular item, and not the lowest offered price for it, or something along those lines. It's been years since I formed that wild guess, though. But it has seemed to roughly hold up when I'm (foolishly) trying to price-shop on Amazon.

</comment><comment><USER15> Ex-Amazon engineer here. I worked on the smart refinements team, which shows relevant categories and refinements on the left hand side of the search and browse pages.

Broken price sort is a common complaint both inside and outside of Amazon. There have been email threads, tickets, and half working solutions to this but nothing -- so far -- has worked well enough.

First of all, no engineer at Amazon would tell you that the current state of price sort is acceptable. It is a well known problem that gets worked on from time to time (In fact, better price sort was going to be my next project before I left so, uh, sorry Internet...). The current price sort has been around for a long time and nothing has outperformed it.

Amazon can't sort by price well for several reasons.

1\. What do you mean by price?

2\. Low cost accessories

3\. Bad item classification

4\. More things that I can't get into

1\. Price is hard to figure out. Do you want to sort by the base price of an item, the price plus shipping (which depends on where you live), or the price after discounts or specials? What about products that are sold both by Amazon and third party sellers, where the 3p seller charges less for the item but more for shipping than Amazon? Which price should be shown?

2\. Low cost accessories dominate searches for a product. If you search for "iPod" in all-products search (APS, the default search on the front page) then you get pretty relevant results that span a few categories. To sort those you first need to select a category (we'll get to that later) and then sort by price. If you select electronics you'll see a few relevant results and a ton of accessories.

You could argue that Amazon should have better algorithms (and that's probably true), but there's only so much you can do. If you _really_ want to sort by price then you shouldn't care about the relevancy of the results. To argue otherwise means that you won't have results that are increasing in price as you scroll down. You'll see more relevant but more expensive results at the front.

3\. Both 3p and internal item-to-category classification continues to be a struggle at Amazon. I knew several people on the team that helped improve item classification while I was there and they did great work and made huge improvements to the catalog accuracy. Amazon has systems that learn the correct classification and suggest the correct categories to 3p sellers. Unfortunately, you'll still find sofas in the electronics category. This really screws up the results. Your outs are only as good as your ins.

4\. There are some fundamental design choices that make solving this issue really hard. I obviously can't go into such fine detail, but try to appreciate that really smart people are working really hard so you can buy the lowest priced product as easily as possible.

In direct response to the article:

> Why would Amazon fail badly at something that seems so simple? The immediate > cause is probably caching. Amazon likely has a task that periodically caches > the low price for each item.

Well, caching is used extensively, but this probably isn't why the results look like they do. See #1.

> Tellingly, if you search for items without many Marketplace listings, the > price sort is much more reliable.

Again, that's because if you exclude marketplace sellers the price is easier to calculate.

> Perhaps they can stop trying; why not just exclude Marketplace items from > the price sort calculation altogether?

Seriously? Exclude a huge portion of all the products sold on Amazon? Crazy.

Price sort is hard. Just sort by popularity.

<comment><USER16> I think your points 2-4 all make sense, however:

        1. What do you mean by price?
        1. Price is hard to figure out. Do you want to sort by the
        base price of an item, the price plus shipping (which
        depends on where you live), or the price after discounts
        or specials? What about products that are sold both by
        Amazon and third party sellers, where the 3p seller
        charges less for the item but more for shipping than
        Amazon? Which price should be shown?

What possible reason would we have to care about the "base" price before shipping, discounts, or specials? When I say sort by price, I mean sort by how much money my bank account decreases by, and I think Amazon _already knows this_ , because when you look at "New" or "Used", it sorts by base price+shipping, just like it should.

That being said, the other 3 reasons sound intractable, and are exactly the reasons I would have guessed.

<comment><USER17> Except that shipping is not necessarily obvious. There are several options (overnight, 2 day, longer) with different price points. Also, if you're a Prime member you get free 2 day shipping, but what if I'm prime but not logged in/using a different machine?

And setting a default shipping cost is likely to further confuse customers. E.g. if you show the cheapest option always, there will be a price bump at checkout, but you don't want to show expensive option by default because it raises all perceived prices.

</comment></comment></comment><comment><USER3> It's only bad because they are lazy greedy slobs.

It's the easiest problem to solve. Just remove bad categorization.

Open Amazon, click any category. Let's say hdmi cables. What do you see? Probably televisions, screws, microwave ovens, inflatable sex dolls, anything!

They let bad Sellers fill their categories with crap. Now you can't search.

And that's some kind of difficult problem to solve? Give me a break.

<comment><USER18> [http://www.amazon.com/gp/search/ref=sr_nr_n_4?rh=n%3A172282%...](http://www.amazon.com/gp/search/ref=sr_nr_n_4?rh=n%3A172282%2Cn%3A%21493964%2Cn%3A281407%2Cn%3A172532%2Cn%3A172540%2Cn%3A464418%2Cn%3A202505011&bbn=464418&sort=popularity- rank&ie=UTF8&qid=1337233121&rnid=464418)

Oh yea?

<comment><USER19> Sort by price "high to low" and tell us if you see anything that doesn't look like an HDMI cable.

</comment></comment></comment><comment><USER20> They probably found that it increased sales by 0.7%.

<comment><USER21> They found that quasi-random ordering increased sales? That seems odd. What algorithm do you suppose they're using to order results? Random number generator?

<comment><USER22> If anyone in the existence of the Internet was best suited to experiment with sorting, it would be amazon. A 1% improvement for amazon pays for a department of engineers.

A department of engineers that can experiment with advanced search.

In the article's example, 'ipod', I think amazon's strategy is clear. They are sorting lowest to highest of what they think you might mean by 'ipod'. Does the user mean 'ipod [touch]'? 'ipod [nano]'? Or maybe 'ipod [accessory]'?

If they did the 'proper' substring based search to create a set which was then ordered by price you would only see ipod accessories for the first 100 pages. Which would be prefect if 100% of people who searched 'ipod' only wanted accessories. Which is not the case.

So amazon is 'cheating' to show users what want to increase sales, even if it drives us engineers up the wall.

Patio11 would be proud.</comment></comment></comment>


Beyond Passion: The Science of Loving What You Do - <AUTHOR> http://calnewport.com/blog/2010/01/23/beyond-passion-the-science-of-loving-what-you-do/ <comment><USER2> 5 comments over here: <http://news.ycombinator.com/item?id=1072843></comment>


Would you take £1m now, or £1,000 a week for the rest of your life? - <AUTHOR> https://www.theguardian.com/commentisfree/2018/mar/29/would-you-take-1m-now-or-1000-a-week-for-the-rest-of-your-life <comment><USER2> Bottom line - it depends on life expectancy and rate of return on investment. In my case it's hands-down the best bet to take the £1m now. For her, an 18 year old, it's not. It's nice to have that option and she was smart for consulting a financial advisor.</comment>


Livestream of Bombs at Boston Marathon - <AUTHOR> http://boston.cbslocal.com/2013-boston-marathon-finish-line/

<comment><AUTHOR> People on Twitter, which of course is full of speculation, hint that it may be an attack.</comment>


Taking e-mail back, part 4: The finale, with webmail and everything after - <AUTHOR> http://arstechnica.com/information-technology/2014/04/taking-e-mail-back-part-4-the-finale-with-webmail-everything-after/ <comment><USER2> In order to setup an email server you really should have at least 2 MX servers accepting mail in case one is down. It really _really_ sucks when emails are delayed and the sender gets that delayed message.

The simplest self-hosting solution I've found is to setup 2 cheap VPS servers that accept mail via postfix (128mb, maybe 256mb if you want to virus scan at this point, a good idea), and they both can deliver email to an in-house server running roundcube or zarafa or whatever, when the internal server is up and running. As long as the VPSes are up, they hold email until the server inside your local network is up and running.

This means you bypass the very messy "secondary mx" issues, as you only have one internal server to worry about that accepts email arbitrarily from the 2 public server, and you can backup your internal server just like a normal PC.

<comment><USER3> An alternative is to use some email server from a host/domain registrar/google apps/zoho/etc as secondary MX server. It saves you from having to maintain a second server, and you still get 99% of your messages through your primary server.

I had a similar setup for a while, and it was interesting to see that some messages (spam, mostly) picked the secondary MX by default. Spam servers also seemed to cache the (secondary) MX for much longer than the TTL.

<comment><USER4> Spammers believe that secondary MXs are set up "in case of emergency", so they must have less restrictions on what goes in (so you don't miss an email) and must be less maintained... meaning that spam goes in more easily.

</comment></comment></comment><comment><USER5> For anyone wanting to setup a mail server this is the best guide going. I read Part 1 and had to find my own way.

Incidentally, if you are trying to read email or send email with code, having your own email server, working with a desktop client is a very useful starting point. You can downgrade the spam filtering, the SPF record checking, the SSL/TLS sign on until you have something that can read IMAP or POP. This is where the real fun begins as emails come in various multi-part formats, there are lots of character sets to translate to UTF-8 and there is base64 to deal with. If you can reliably read the header of an email and extract something simple like the date then you are doing very well.

</comment><comment><USER6> This guide is really good as it goes almost whole mile.

It also does very good if not excellent job at illustrating how hard it is to set up, secure, and maintain your own email service. There are lot of places to go from here, including multiple MX'es, backup/recovery, etc.

Nevertheless. I've been using my own email infrastructure for almost ten years years. For last four I'm totally over it. Yes, there are some things to do if you absolutely want to be free to chose your email provider whenever you want to - having clear choice where to go, having backup off service provider, having migration strategy in place, etc.

</comment><comment><USER7> I feel like any data that is being transferred over internet has a real possibility of being surveilled on. Amazon AWS or any other storage provider has to comply with any three letter agency. Calling this secure sound like calling random numbers as random. What do you guys think?

</comment><comment><USER8> Email is fundamentally flawed, or better put it is not up to challenges of time. While I am reading this ars articles with great interest and was toying with the idea of rolling my own email server, series size and complexity serve as a best argument of email flawed state. We are fixing and patching and protecting something that fundamentally can't be that well fixed, patched and protected. We need to reinvent everything.

<comment><USER9> Nothing is perfect, least of all email. But it did one thing right, and it's a big one: any email user can send to any other email user, regardless of provider or platform. We still lack that capability when it comes to IM, social networks, and most software in general.

<comment><USER4> > We still lack that capability when it comes to IM

No, we do have this capability: use XMPP.

In fact, XMPP is functionally enough to completely replace email, and does also serve as IM.

<comment><USER10> Theory versus reality. The theory of federated XMPP is exactly as you said.

The reality is much more of a mess, with multi-device issues -- routing issues -- federation issues, not to mention a ton of non-XMPP messaging services.

<comment><USER11> And most importantly, no identity system _which end users know about_. (i.e. people know about email addresses, but Facebook users use XMPP without knowing how to refer to people on other services)</comment></comment></comment></comment></comment>


Slush-y: A MEAN Generator Following Best Practices - <AUTHOR> https://www.npmjs.org/package/slush-y

<comment><USER2> Thanks for this Joel. This will come in handy.

<comment><AUTHOR> Thanks Alex

</comment></comment><comment><USER3> Clean code. Well done!

<comment><AUTHOR> Thank you, Please feel free to make a pull request if you see any inconsistency.</comment></comment>


How do I lay people off? - <AUTHOR> http://venturehacks.com/articles/layoffs

<comment><USER2> Start by not asking for sympathy, or writing blog posts encouraging people to fawn over you for your perseverance and wisdom during hard times.

Next, stop taking a salary, or recognize that you're accepting six figures while throwing people you recruited out into the worst economy in 50 years.

Finally, move your ass to find those people jobs. Carve out time to write real, personal recommendations for each of them. Introduce them to every company you have a relationship with. Sell.

God help you if you write, "it saddens me that we have to let these people go, because _most_ of them were solid performers". If you kept dead wood in your company, likely to the detriment of the whole team, and couldn't muster up the courage to deal with them until the economy gave you an excuse, it's all on you, asshole.

Yeah, I sound like even more of a dick here than I normally do, but I don't think I'm the only one noticing the valley patting itself on the back for fucking people over.

[ _edit_ I'm not super happy with this comment, but I'm not deleting it either; might as well be honest about what I think. We have employees too. Maybe I'll be a total douche if something bad happens to us? Tell me you told me so.]

<comment><USER3> Stop taking a salary? In this economy? Are you crazy?

I totally agree you shouldn't be a jerk and blog about it like, oh it was so tough for me, I had to fire so many people, the emotional agony it will inflict on me for the next couple weeks will be so hard. You have to recognize that no matter how hard it is for you, it's worse for them, something this blogger didn't seem to want to take on.

<comment><USER2> Firing an entry-level developer? In this economy? Are you crazy?

Startup founders seem to love calling themselves "CEOs". Working for a one- dollar salary during rough times is something that real CEOs actually sometimes do.

<comment><USER4> I don't think that's a fair comparison. Those "real CEOs" generally have a high net worth to begin with, something that's not true of (I would guess) most startup founders.

<comment><USER2> Hey: they asked to be the CEO. They're the ones who walk away with a 7 figure payoff when the company sells for $5MM. They get 100x the payoff of a developer because they accepted the risk.

Is it hard to live on $1 a year? Well, it's not harder than living on $0 a year. But OK: how many of the Valley Layoff Heroes even took a pay cut down to sustenance wage? Note: normally when people do that, they tell everyone --- it's a morale boost.

<comment><USER4> How hard it is to live on $1/year clearly depends on how much money you have in the bank, or other resources you might have. In absence of that (or if your net worth is actually negative--say, you have a lot of student loans), then it's just not possible to work without a salary.

You could do some consulting on the side, I suppose, but that would defeat the point of having employees. And as an employee, you're probably better off finding a job somewhere else than working at a company where the CEO has to spend part of his time working on something else just to get by.

</comment></comment></comment></comment></comment></comment><comment><USER5> It's great advice but may as well have been written in hieroglyphics, personally I've never seen it taken (three rounds across two companies + missed payroll during bankruptcy once).

I posit that the reason for this, in tech anyway, is that employees are generally in one of two categories: 1) Sales people with customer connections or 2) Developer/admin types who may have a lot of access to systems. In either of these cases the employer could be concerned that the possibly-terminated employee is going to damage the assets (contacts or code) that the company has.

If I could contribute a pattern from my limited experience it would be this: Companies tend to hire a hatchet-man a few months before layoffs start. It often looks like an incompetent manager "decided to spend more time with his family", or the creation of a new, often highly paid, middle manager position. After the new guy is in his place he lays off the people that he's {decided, been instructed} to, and then moves on, often because he's burnt out from doing all of the dirt work that the managers above him are too weak to do.

In both companies the person who was hired as a hatchet man would have been a far better manager than the one who sailed the ship into the iceberg in the first place. If as an employer you don't see your manager as capable of doing this hard job (layoffs), how do you expect them to do the hard day to day job of managing performance? Just keeping the house clean can save that first round of layoffs that often consists of the low performers, and without the horrible morale crush of pink slips.

</comment><comment><USER6> As someone who has been laid off from tech companies twice, I care about one and only one thing: the size of the severance package. I don't need compassion, I don't need understanding, I don't need the people who ran the company into the ground to "help" me find a new job. Just show me the money.

Heh, both times in fact those who got the chop counted themselves - and were viewed by former cow-orkers - as the lucky ones.

<comment><USER5> As someone who's watched this happen a couple times I definitely agree. Furthermore, the earlier the cycle you're in the better your packages tend to be. The first round got great severance. The second round got a small package IIRC, and they missed payroll on round three, which is like getting -2 weeks of salary, pretty sleazy, IMO.

<comment><USER6> Both times for me were when the company decided to stop doing what I did. The first time, the company got out of technology altogether to concentrate on its strategy consulting business, all the engineers except a skeleton crew for maintenance were laid off in one go. Sucked to be one of the engineers they kept!

The second time was the company shifting from products to services. They said you can have X months money and leave now, or X/2 months paid to find a job somewhere else in the company (and then nothing). I didn't look back. In both cases, senior managers know they're in trouble but think they can get themselves out, there's still plenty of cash in the kitty and they need to preserve the appearance of confidence, so they'll pay fair severances. When it gets desperate - then it's everyone for themselves.

</comment></comment></comment><comment><USER7> When people talk about how starting a company will bring you to the best and worst times of your life, this would be in the 'worst' category. Spend time working your contacts to help them find another job. Your the one that screwed up, not them.

Don't be afraid to say that.

</comment><comment><USER8> Totally unrelated, and I'm not really criticizing the article (it's pretty good) but I was reminded of a recent doonesbury, which also had 4 points: smoke, fire, hose, shovel.

[http://www.doonesbury.com/strip/dailydose/index.html?uc_full...](http://www.doonesbury.com/strip/dailydose/index.html?uc_full_date=20080916)

</comment><comment><USER9> Honesty + generous severance please.

</comment><comment><USER10> Do it survivor style and have your employees vote a new guy/gal off each week?

Then...

blog about it, become an internet fad, get lots of free press / attention, attract customers, expand business, hire more devs.

</comment><comment><USER11> If N employees voluntarily cut off their salaries by 50% they can prevent N/2 lay offs.

<comment><USER12> in most cases N=0

</comment></comment><comment><USER13> Anything is better than a "parking lot meeting".

</comment><comment><USER14> It is better to lay people off on a Friday. Studies show there is less chance of an incident if you do it before a weekend.

<comment><USER14> Hey by the way, that was a quote from "Office Space". It was meant tongue-in- cheek. Personally, I think lay-offs suck, and if you have a good business plan (focus on being cash-flow positive) than you lessen your chances of needing lay-offs. I have seen the "hire too many people in good times", "lay them all off in bad times" approach with no regard to wanting to be cash-flow positive. That is certainly not how I would want to do business!

</comment></comment><comment><USER15> Tell them Monday that Friday its their last day.

<comment><USER3> I hope you're kidding! Keeping a bunch of pissed off soon-to-be-ex-employees around the workplace isn't good for anyone. The best you can do is to lay people off on Friday morning so at least they can be with your friends and family over the weekend for support.

<comment><USER16> I think early in the week is the best way - at least when firing people. If you let someone go on Monday or Tuesday they can immediately start looking for a new job the next morning. With any luck maybe they can start getting callbacks or a phone interview before the end of the week. That goes a long way toward boosting morale. The weekend makes it a little more difficult. Sure, they can update their resumes, apply online, etc., but that kind of ruins the weekend and leaves a lot of time to start feeling hopeless or really pissed off.

Plus, some people might not mind so much if you tell them first thing Monday morning that they have to go home. :)</comment></comment></comment>


Augmented Reality is Full of Zombies - <AUTHOR> http://singularityhub.com/2009/06/19/augmented-reality-is-full-of-zombies/

<comment><USER2> It would be awesome if they made a zombie killing fantasy game like this on the iphone that overlayed the zombies lifesize into whatever scene you are in. Imagine fighting off an invisible zombie hoard in your local mall or at the bus stop. Multiplayer would be a blast as well.

</comment><comment><USER3> Was this sponsored by Skittles or did they just use them because of the bright colors?

Or do Skittles have well known anti-zombie properties?

<comment><USER4> Zombies _hate_ rainbows.

</comment></comment><comment><USER3> My back hurts just watching that guy play bent over the table like that... :)

Other than that it was a a very cool demo.

</comment><comment><USER5> I watched this video and an idea immediately came to mind. Bastards!!

Very cool demo, especially with the addition of the map on the tabletop. There is definitely possibilities here for cool stuff to be created.

EDIT - One example I'm thinking of is AR overlays for pre-existing boardgames.

For example, imagine playing settlers of catan with an AR 3D overlay, or oldschool randomised adventure games like Warhammer Quest using cardboard markers instead of miniatures and letting AR fill in the blanks.

<comment><USER6> Eye of Judgement does that for the PS3: <http://www.youtube.com/watch?v=6tEqM4BEvLY>

<comment><USER5> I was over at a friend's place and tried this game out - the gameplay seemed pretty poor.

To be honest, I think creating AR's for games that already have a very good track record for gameplay (eg, catan) is a better prospect than trying to reinvent the wheel and coming up with a square?

</comment></comment></comment><comment><USER6> For anyone who wants to play with augmented reality, there's an API:

<http://www.hitl.washington.edu/artoolkit/>

</comment><comment><USER7> This is great game that builds on real objects like a map on a table and skittles but why not as an iPhone app?

<comment><USER4> They kept mentioning the Tegra by nVidia. It seems like this application would require a lot of power, the kind the iPhone can't produce (yet).

</comment></comment><comment><USER8> They should add a black beast to the game (if there isn't one already). It would be a nice touch.

</comment><comment><USER9> I always love when something Georgia Tech contributed to gets posted on HN.</comment>


Judith Butler Wants Us to Reshape Our Rage - <AUTHOR> https://www.newyorker.com/culture/the-new-yorker-interview/judith-butler-wants-us-to-reshape-our-rage <comment><USER2> Judith Butler is a neoliberal shill.</comment>


Lessons from ProductHunt Launch - <AUTHOR> https://www.agrigoryan.me/post/lessons-producthunt-launch <comment><AUTHOR> Have you had ProductHunt launches? How they went down?</comment>


Scientists have given flies memories of a bad experience they never really had. - <AUTHOR> http://www.physorg.com/news174827907.html

<comment><USER2> I'm filing this under "things that I'm not totally okay with science knowing how to do".

<comment><USER3> Would you prefer that they instead do research on giving _people_ bad memories of things that never happened?

<http://faculty.washington.edu/eloftus/Articles/sciam.htm>

<comment><USER4> I think that's the point he was making.

</comment></comment></comment><comment><USER5> No, no, no! They should be working on how to remove the bad experiences I _actually_ had! For instance, working at various notcoms for 5 years.

<comment><USER6> You mean like this?

[http://www.nytimes.com/2009/04/06/health/research/06brain.ht...](http://www.nytimes.com/2009/04/06/health/research/06brain.html?pagewanted=all)

</comment></comment><comment><USER7> I want to be zapped with knowledge like in the Matrix!

<comment><USER8> You would be missing the joy of learning .. never mind, they can zap you with satisfaction as well.

</comment></comment><comment><USER9> Reminds me of this awesomely written story: <http://maxbarry.com/2009/04/09/news.html>

</comment><comment><USER10> Yes! One step closer to memory transplants!

</comment><comment><USER11> so how did they know they succeeded , the fly had a disgusted face after?</comment>


Are you on track for: Lets make November "Launch an App Month", who's with me? - <AUTHOR>

This was the original post: http://news.ycombinator.com/item?id=1773398<p>are you track? progress reports? <comment><USER2> I haven't plotted out the amount of work to do yet but I've got my basic project outlined and down "on paper". I'll be drawing up my targets and GANTT chart this weekend. I'm probably biting off more than I can chew but I'll adjust where necessary. I hope to launch a public site for it next week with daily updates - probably a WordPress thing.

<comment><USER2> Okay, the WordPress site is now launched. Not a lot there - mostly just a brief project overview.

<http://serversofdoom.wordpress.com/>

</comment></comment><comment><USER3> I am the WP theme @tradesalerts ( <http://tradesalerts.com> )... just put out the undercon page first. A few more things left to do; (1)test the email alerts, (2)setup a open forum, (3) fine-tune/automate my mostly manual updated excel based trade strategies.

</comment><comment><USER4> I have a base page jotted @ AppsToWin ( <http://www.appstowin.com> ). Didn't do much advancement during the week. Friday & Saturday should have more productive sessions to complete some of the basic functionality.

</comment><comment><USER5> Okay, I'm on board. I will submit my app for approval to Apple in November. (I've been slacking ever since I put out a test version on a couple of friends' phones a few weeks ago.)

</comment><comment><USER6> Is there a central place on or off HN this will be tracked?</comment>


Russian embassy trolls US launch industry after new rocket engine sale - <AUTHOR> https://arstechnica.com/science/2018/08/russian-embassy-trolls-us-launch-industry-after-new-rocket-engine-sale/ <comment><USER2> Meanwhile, Elon Musk acquired more than 50% of the space launch market (while 5 years ago it was Russia who owned it).

Don't troll, buidl!</comment>


Secure OpenPGP Key Pair Synchronization via IMAP - <AUTHOR> https://github.com/ModernPGP/keys/blob/master/synchronization.md <comment><USER2> It seems like this relies entirely on the strength of the secondary passphrase, and in turn of the storage by which that passphrase is moved from client to client. And if the encrypted private key is ever readable, it is _forever_ vulnerable to attacks. They can spend as long as they like brute- forcing the secondary passphrase, or looking for the Post-It note where you inevitably wrote down the generated passphrase.

It also seems like there's no key-stretching involved, right? The cost of each brute-force attempt is very cheap? So the option of permitting a user- generated passphrase (with much lower entropy) seems like a pretty bad idea.

Have you looked into password-authenticated key exchange (PAKE) mechanisms? [https://en.wikipedia.org/wiki/Password- authenticated_key_agr...](https://en.wikipedia.org/wiki/Password- authenticated_key_agreement) My understanding is they let you use a relatively weak passphrase to authenticate a short-term session using a new 128-bit key, and once that session is established, attacks need to be against the session key, not the passphrase. This involves a bit more active communication than simply leaving an encrypted key in an IMAP folder, but you could do something where a new client requests a key by dropping a message in the folder, then you have to physically go to the old client to confirm it, which leaves a new message in the folder that (only) the new client can use.

I believe Firefox Sync uses a similar approach, except that the low-entropy passphrase is a PIN automatically generated by one of the devices, so the UX feels sort of like Bluetooth pairing.

</comment><comment><USER3> Looks interesting. But I think I must be missing something.

Are the symmetric keys that are used to encrypt the private keys derived from a password, or not?

> This protocol overcomes this weakness by wrapping all key packets, encrypted > with a key derived from a second high-entropy alphanumeric passphrase.

>

> The passphrase SHOULD be a random high-entropy uppercase alphanumeric string > of 24 characters, generated from a cryptographically secure pseudo-random > number generator (CSPRNG).

So do you seed the CSPRNG starting from something derived from a password? And if not, then how do you decrypt your private keys when you want to use them on a new device?

<comment><USER4> From my understanding, there are two passphrases. One to encrypt the private key in the usual way. And another one that's used for storage on the IMAP server.

The RNG is, as far as I can make out, only recommend to ensure that users don't use a weak passphrase.

<comment><AUTHOR> exactly. the passphrase for the private key isn't touched. the >24 chars passphrase is used for the symmetrically encrypted pgp message.

<comment><USER3> Oh, OK cool. As long as you're using a good KDF to seed the CSPRNG that sounds great. Thanks for the response.

</comment></comment></comment></comment><comment><USER5> It'd be interesting to formalize this as an IMAP extension, and announce it as a capability in the server.</comment>