The Long Grind Before You Become an Overnight Success - <AUTHOR> http://viniciusvacanti.com/2011/09/12/the-long-grind-before-you-become-an-overnight-success/ <comment><USER2> I think the most important advancements in history were done with a Long Grind before a huge success. Einstein worked away in mediocrity, living what to most people must have looked like a sub-par life on the surface. He toiled away on his own for years, then came his stratospherical rise to the upper echelons of human thought. Kant is another example; he spent 10 years alone in thought, publishing nothing in that time, before coming out with what turned out the be (arguably) the most influential philosophical work ever.

It seems that the hardest part is not losing faith as you're grinding away. However corny/lame it sounds, people who believe in you are the most important thing during the grind. How many people did you guys (yipit) have that had your back as you were working away for 2+ years?

I'm not in the Valley, but I've heard that this might be the best part about the it; you don't get judged for working on some random project full time(like this article says happened in New York).

</comment><comment><USER3> I would have enjoyed this post a lot more if at the end they had not simply created yet another bloody coupon site.

I can understand going through two and half years of no money, pain and self- doubt if you were working on something world-changing. But just another bloody coupon site...

I don't want to be down on these guys. They sound like really nice guys; intelligent, persistent and bright. But, please, no, not another bloody coupon site

<comment><USER4> (I didn't downvote you)

I think it's important to make a distinction between businesses that are aesthetically pleasing and appealing to you, and business-in-general that's successful. Lessons from business-in-general can be very useful even if you wouldn't patronize them yourself and it's always nice when people open up about their experience.

Unless a business is actively knowingly hurting people, I think it's good to celebrate business-in-general even if the aesthetics/offers don't appeal to you.

<comment><USER5> Yup. It's kind of like being a web developer and building a startup. You have to be clear that you're trying to build a business, not a web site.

In business, you don't get points for being creative/sexy and win by getting the most points. You win by simply winning. At business.

Seriously, there is no reason to be so negative towards anybody's startup, no matter how "bloody" you think it is. Be happy for other people.

</comment></comment></comment><comment><USER6> As a 31 year old with a full-time job to pay the bills and a family to raise, I feel like there is not enough time to act on my ideas so they just continue to collect dust. Stories like this give me motivation but I still haven't found the answer to the question: "how can I focus on my ideas full-time and still pay the bills and support my growing family?". In other words, I don't have the savings for _two and half years of hustling on no salary_ and I don't see that changing anytime soon. I will continue searching for the answer. Thanks for the story!

<comment><USER7> You take a look at your life, identify that hour here and half-hour there that aren't getting you closer to where you want to be, and use them for nights- and-weekends hacking. Then you start a long slog of little-by-little improvement. Eventually, the business eclipses the day job, and you quit. If you feel like it, you can then start another slog.

I have a very modestly successful small business, built over the last five years and change. At all points over that interval, I had sufficient income to maintain a wife and children to a standard of living commonly accepted among middle class folks where I live.

There are other options, such as "Transition from full-time salaried employment to contracting/consulting/etc, make a lot more money than you do right now, buy time with money."

<comment><USER8> Do contracting and consulting really pay reliably more than salaried work?

In either case it seems like programmers make enough money to save up living expenses if they only lived like people in blue-collar professions. I saved enough money from my summer coding internship for many months runway easily. ($3000 a month from my internship plus a $3000 stipend; both after taxes; $1000 a month estimated burn rate based on $750 a month for rent and utilities and ~$5 daily food budget by buying all of my food from the dollar store.)

<comment><USER9> When consulting doesn't pay it gives you time to work on your project.

<comment><USER8> All that really matters is how much you get paid per hour right? If high paying hours were easier to come by through salaried work, you could just work at a job with a salary for a year and then quit.

</comment></comment></comment></comment></comment><comment><USER10> This post reminds me of a philosophy held by Seymour Schulich, Canadian businessman and philanthropist. His philosophy:

"Your twenties are not a time to make money, they are a time to build your foundation; your thirties are when you make money."

The exact ages are peripheral, but the idea is sound: incur personal strength and experience and external success will ( _be more likely to_ ) follow.

Mark Suster's post about a time to learn and a time to earn hints at this same idea: [http://www.bothsidesofthetable.com/2009/11/04/is-it-time- for...](http://www.bothsidesofthetable.com/2009/11/04/is-it-time-for-you-to- earn-or-to-learn/)

<comment><USER11> Making money building your foundation is usually better than not making money doing so.

</comment></comment><comment><USER12> _"... In all honesty, I probably would have given up earlier. The only reason why I didn't was out of loyalty to my co-founder, Jim, who had also quit his finance job. He had passed up many amazing job opportunities to work alongside me and I wasn't going to quit on him. ..."_

Interesting observation. The advantage of having multiple founders is shown here where _"accountability to comrades"_ , _"bonding"_ , and _"mutual surveillance"_ [0] means the founders stuck at the task long after a solo founder might quit in despair.

[0] David Grossman, P21, _"Defeating the Enemy's Will: The Psychological Foundations of Maneuver Warfare"_ ~ <http://killology.com/defeating_the_enemys_will.pdf>

</comment><comment><USER13> This is a pretty good case against the notion that "ideas don't matter". They absolutely matter; how else can 3 days so drastically change the prospects of a company?

<comment><USER14> Would you have bought that idea for $1 million?

No one says ideas don't matter. Without a good idea even the best execution will yield nothing. Ideas alone are just not that much worth. (Other way round this is true too.)

I'm sure that if 100 teams would have tried to execute this specific idea many of them would have failed.

Don't be just the idea guy and don't be just the execution guy. Try to be both :)

<comment><USER15> "No one says ideas don't matter." This is patently false. People say "Ideas are nothing, execution is everything" all. the. time. and it's just as wrong every time they do.

<comment><USER16> What they really mean by that, is _ideas are on the critical 1%_. You can mess up a lot on the execution, and still have a viable business; but if you're building the wrong thing, no amount of execution will save you.

But! In terms of energy spent, ideation consumes less, than a percent of the total investment: hence, a guy with an idea (even if it's the right one) can't claim to have invested much _effort_ into the business as the one researching / custdeving / building it.

<comment><USER15> Time and time again people jump to the defense of people saying "ideas don't matter" by saying that's not what they _really_ mean. If not, why not just _say that_ , instead of such hyperbole that certainly gets misinterpreted.

<comment><USER17> The reason is because the world is full of people who believe they have a billion dollar idea, and all they need is to "find an engineer to build it". By contrast, there is not a single engineer running around offering to pay $10,000 for a killer idea so they can use it to execute their way to a billion-dollar business.

<comment><USER15> Thats true, but there are also surely people executing on poorly thought through or uninspiring ideas since they've been told to not go through the various thought exercises one should go though before settling on an idea for a new venture.

<comment><USER17> If you lack the common sense to realize that in order to sell something people need to be willing to buy it, then all the startup wisdom in the world won't help you.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> Very good post, I especially liked that they built the winning minimum available product so fast: It would have been most likely impossible without all the learning and failed attempts. Unfortunately, some things you can only learn by doing.

</comment><comment><USER19> WSJ has taken to calling them a research firm "According to estimates from research firm Yipit Data" in an article about groupon

[http://online.wsj.com/article/SB1000142405311190426550457656...](http://online.wsj.com/article/SB10001424053111904265504576566804156893080.html)

</comment><comment><USER20> Mostly the lesson I'm getting from this post is not to quit your day job until you have some evidence of traction.

</comment><comment><USER21> Okay, how do I tell the kind of long grind that leads to overnight success from the kind of long grind that leads to nothing?

<comment><USER22> And that's the difficult thing. It's inspiring to hear about how a team's long-running lack of constructive feedback finally led to success, but what about the 20 other teams who have gone 3 years and still haven't found it? Don't get me wrong, I like reading stories like this, but there is a lot more at play.

</comment></comment><comment><USER23> The hardest question which I battle with is knowing when is the right time to fold and start afresh. PG's 'Relentlessly Resourceful' post ties in very well this - <http://paulgraham.com/relres.html>

Great story, very inspiring!

<comment><USER10> I agree. I remember reading Seth Godin's book "The Dip" and the same conundrum is presented: when do you push through the dip and when do you quit?

He says you should quit when you're in a cul-de-sac or heading towards a dead end, both ultimately ending unfavourably. A dip, on the other hand, has a low point that feels like a dead end but inevitably gets better the longer you persist.

A good, short read that gives some suggestions to deciphering which is which if you're interested.

</comment></comment><comment><USER24> This is really inspirational for people who are working at it, hard, but don't get traction immediately, and all the while are reading about others whose businesses just skyrocketed right away.

It's not always a launch to the moon, sometimes you have to orbit for a while.

</comment><comment><USER25> How do you guys make money from being in the deal aggregating business.

<comment><USER26> affiliate revenue, advertising revenue, data licensing revenue

<comment><USER27> Your 'about' says that you learned Django and Python, is that what you are using for Yipit? What does your technology stack look like?

<comment><USER28> The stack is all Python (2.7) using Django (1.3) on Ubuntu (11.04) and it works great. Python is fantastically easy to program and Django does plenty of heavy lifting. We use the ORM in about 95% of the queries and raw SQL in the other 5% (The Django ORM doesn't handle all m2m queries very well).

We use Celery for asynchronous processing and everything is running on Amazon Web Services. We use ec2, RDS, S3, SQS, CloudFront, Route53, and ELB so we are heavily invested on that front.

</comment></comment></comment></comment><comment><USER29> Really inspiring article. It's great to attach positives to what you're doing not only to keep your morale up, but also to remind yourself that if what you're working on now doesn't pan out, it's not the end. Crazy to learn, though, that they managed to turn around their business in a matter of three days. Impressive that they kept with it and had the focus to transition to another idea (and make it successful).

</comment><comment><USER30> Nice post! I've just had a failing experience but that also served to teach me some of the problems and difficulties involved in creating a startup. I'm happy you guys made it and I'm gonna keep trying till I find my place there too.

</comment><comment><USER8> As cheesy as it may sound I find this song helps me keep in mind that I should _expect_ things to take a lot of time and effort.

<http://www.youtube.com/watch?v=H1iR2Wi3u5o>

</comment><comment><USER31> Great post Vin! A great story and inspiration for everyone who is grinding hard in the startup life. We all need a little reminder that its a slogfest before you make it.

</comment><comment><USER32> I remember a very nice 2d chart of success vs time with an exponential curve, with a vertical line near the high rise, showing what people see vs what really happens.

Can anyone find it?

</comment><comment><USER33> What is the differences, advantages that you guys (Yipit) have over other competitors (e.g 8coupons.com)?

</comment><comment><USER34> Awesome post. I really liked the instructions about getting inital press.

I'am sure it will help me along the way. Thanks.

</comment><comment><USER35> One can not plant a seed and expect fruit the next day.

</comment><comment><USER36> Just a question about Yipit... don't they need millions of visitors to be successful?

100K visitors/month sounds nice, but they're in the deal aggregating business, so the margins are even less than if they were a deal site. They don't make money off every single user, and when they do... they make a tiny percentage as affiliate commission. Am I missing something here? I know regular old- fashioned coupon sites(like CouponCabin) that make good profit, but they have visitors in the millions, and their margin is much more.

<comment><USER37> Yeah, you're missing something. It's 2011, and we're in the middle of a huge bubble. The only thing that matters to most new startups is "getting funded". Making money is merely a sideshow to the main event, which is growing traffic and conducting round after round of follow-on financing.

<comment><USER38> If only we'd gone through something like this before and knew better than to make the same mistakes all over again.

<comment><USER39> This Time It's Different(tm)</comment></comment></comment></comment>


The GOP Is Trying to Nuke Net Neutrality with a Budget Bill Sneak Attack - <AUTHOR> http://motherboard.vice.com/read/the-gop-is-trying-to-nuke-net-neutrality-with-a-budget-bill-sneak-attack

<comment><USER2> Any other day, I would be full of passion about yet another attempt to subvert what 81% of folks want and the FCC has put in place... but today? Man, I'm just so completely unsurprised.

Le grand sigh. :(</comment>


Show HN: Pa11y 2.0 released, automated accessibility testing with PhantomJS - <AUTHOR> https://github.com/nature/pa11y

<comment><USER2> Well, I for one am interested in this. I perform accessibility audits a few times a year on a contract basis, and I'm always looking for ways to help my clients do some of the testing themselves. But the problem I run into is that many of the testing software I see out there looks at the code, but often times the code can be fine but the screen reader or other factors interprets things in a goofy way. So a fair amount of my auditing involves testing with real devices.

I like that this makes it easy to nail the low-hanging fruit, like making sure your forms have submit buttons (looking at you, Github) or that you put a language attribute in your HTML tags. Something that nags developers to do the basic things is ok in my book.</comment>


X86-to-6502: translate x86 assembly into mos6502 assembly - <AUTHOR> https://github.com/lefticus/x86-to-6502 <comment><USER2> Can you explain the example?

// test.asm main: movb $1, 53280 xorl %eax, %eax ret

And get this output:

main: ldy #$1 sty 53280 lda $00 rts

I can see "movb $1, 53280" getting mapped to: ldy #$1 sty 53280

but what is going on with the xorl and lda?

<comment><USER3> xor'ing a register against itself is an idiomatic way to clear the register to 0. Could do the same thing in 6502, but loading with zero directly is functionally equivalent.

<comment><USER2> Thanks for the explanation.

In the x86 code, is there an advantage of using the xor instead of a load/mov?

Is it to avoid a fetch?

(I programmed 6502/6510 assembly as a kid, but have no experience with x86 assembly)

<comment><USER4> The encoding of the machine instruction is 2 bytes for xor eax,eax - if you were doing a load/mov then you'd have to use a numeric cknstant which would be 4 bytes to represent zero and then more for the mov itself.

In addition when you have dependent loads of registers between instructions you can end up with pipeline stalls that delay the instruction (even if it shouldn't have any logical effect).

The xor pattern is so common that inside the processor (which translates isa instructions to microcode) recognise it explicitly and so it's treated as a special case. In fact no xor happens and the register is simply reprinted to a fresh value containing zero.

<comment><USER5> I've always wondered why a CISC architecture like x86 didn't include a CLR instruction...

<comment><USER6> On some processor families, like for instance the MC68000 family of processors, the clr instruction always wastes at least one clock cycle reading the register being cleared before actually clearing it, which is why when you look at the assembler code for that processor family, you will rarely see the clr instruction being used:

[http://www.easy68k.com/paulrsm/doc/trick68k.htm](http://www.easy68k.com/paulrsm/doc/trick68k.htm)

common tricks to clear out a data register on the 68000 family in a performant way include:

      moveq #0, d0 ; this works because zero can be expressed with only seven bits
      eor.l d0, d0
      sub.l d0, d0

and for the address register

      sub.l a0, a0
      eor.l a0, a0</comment></comment></comment></comment></comment></comment>


Show HN: Search/Compare housing opts from Craigslist/Facebook/Housing Startups - <AUTHOR> https://brunoe.com <comment><AUTHOR> Hello Hacker News community,

[https://www.brunoe.com](https://www.brunoe.com) is a location-based search and comparison tool.

It searches housing options from different sources at once and allows you to compare the listings based on price, distances and other options on a map.

For example, you will be able to view a particular apartment in San Francisco and see ads from Craigslist, Facebook Marketplace and other home- share/roommate startups -- and compare its offerings and prices against each other or the traditional rent prices.

As of writing this, the app has just gone live. So right now there isn't a lot of listings yet (just a few dozen in San Francisco and the Bay Area). However if you feel nice, you can help me by clicking the "Add Your Website" button. Just put the URL in there and the listing will get indexed onto the app.

The goal of this tool is to provide the best ways to compare the offerings from all housing listings and help you discover new housing options that you may not have thought about (such as home-sharing or living in an airstream van).

In the next coming days, as I continue to work on the crawling/indexing system and process, the listings in the SF/Bay area will become populated pretty quickly.

I look forward to reading your feedbacks! Thank you!

<comment><USER2> I don't understand the "Add Your Website" thing, considering the mention of "see ads from Craigslist, Facebook Marketplace and other home-share/roommate startups." Do we provide the URL of a Craigslist search that we want to watch?

I'm in Sacramento and would love to use this.

<comment><AUTHOR> The "Add Your Website" is essentially for other housing startups who want their listings to be added onto the map.

It's still early and we're exploring how the listings ecosystem is going to populate and retire itself. We're thinking of using a combination of crawling/indexing, 3rd party APIs/feeds, and manual submissions (aka "add your website" button) to achieve this.

</comment></comment></comment><comment><USER3> Have you gotten any C&D yet? Are you familiar with the story of CL suing padmapper?

You're breaking all sorts of TOS.</comment>


The little start-up that could - barry-cotter http://www.antipope.org/charlie/blog-static/2009/06/how_i_got_here_in_the_end_part_7.html#more

<comment><AUTHOR> jnorthrop: Charlie is me; these days I'm a full-time novelist, but back in the 80s and 90s I had a real job. This is part #9 of an ongoing series of autobiographical posts on my blog, about what I did before I ended up writing novels for a living.

Here's the navigation page to the first seven stories: [http://www.antipope.org/charlie/blog- static/2009/06/the_stor...](http://www.antipope.org/charlie/blog- static/2009/06/the_story_so_far.html)

Here's a FAQ about my books: <http://www.antipope.org/charlie/fiction/faq.html>

Here's what wikipedia says about me: <http://en.wikipedia.org/wiki/Charlie_Stross>

</comment><comment><USER2> So this leads to a partly finished story with a "to be continued" link at the end -- and that's it? Who is Charlie and what is he building? Is it some fabulous company now?

It's an interesting start to a story but it's just the start.

</comment><comment><USER3> Ah, NatWest Streamline how I miss thee. Where one learns that all those security questions you've been asked by retailers before turn to dust by the time it gets on the wire!

We had a POTS Modem doing ours one dial-up per transaction. You being re- directed to _our_ payment taking portal from your website because it was one SSL per IP. Fun Fun</comment>


Writing Lock-Free Code: A Corrected Queue - <AUTHOR> http://www.drdobbs.com/article/print?articleId=210604448&siteSectionName=parallel <comment><USER2> Please note that the code in this article is broken. It lacks proper use of atomics, memory barriers, let alone compiler barriers. You can find a similar and correct queue at <http://concurrencykit.org> (ck_fifo.h). The liblfds queue is very heavy-weight for a simple SPSC workload and is also lacking in correctness.

If you're looking for a learning resource, I suggest looking at <http://www.rdrop.com/users/paulmck/perfbook/> and <http://1024cores.net>

<comment><USER3> sbahra is correct; at the very least, in release 6, the order of pointer and counter reading is incorrect. This was fixed a long time ago, but release 7 hasn't yet come out; I've added an entry to the known issues page in the wiki. The counter needs to be read first and not doing so permits ABA. The queue is MPMC and as such is much heavier than the memory-barrier-only SPSC circular buffer.

<comment><USER3> I should quantify this. The pointer/counter bug was fixed a long, long time ago, but at the time slipped through the net with regard to being published on the known issues page. That was a very unfortunate oversight. Sbahra emailed a few weeks ago to inform me of the issue (and the others he raises) and I checked the existing code base, to see the pointer/counter issue already fixed and the other issues unclear (specifics were not given). I replied, but no reply - but sbahra is a busy guy and also very competent, so I consider it likely his comments have merit; I will look further into them once I've finished my immediate release 7 work. With regard to adding the pointer/counter issue to the known issues page, this I did today - I thought about it earlier, but release 7 was is so close to coming out and the bug has been present for so long, it seemed a pretty moot point (actually of course that's completely untrue; people using six need to know, so they can know to update their code).

</comment></comment></comment><comment><USER4> I have used this library <http://www.liblfds.org/> for lock-free data structures successfully. Only used the queue but it also has a linked-list (logical deletion only), stack and a ring buffer.

There is another library others are using but can't remember the name currently.

<comment><USER5> Concurrency Kit? <http://concurrencykit.org/>

<comment><USER4> Yap that's the one! Thank you.

</comment></comment></comment><comment><USER6> Java's ConcurrentLinkedQueue is lock free and supports any number of readers and writers. For those that are interested: [http://fuseyism.com/classpath/doc/java/util/concurrent/Concu...](http://fuseyism.com/classpath/doc/java/util/concurrent/ConcurrentLinkedQueue- source.html)

And the original research: <http://www.cs.rochester.edu/u/michael/PODC96.html>

</comment><comment><USER7> Sometimes the producer has to insert something in the middle of the queue, is it possible to make this queue lock free?

<comment><USER8> You could maintain separate queues for each priority, and always process them from the top down.

<comment><USER7> This sounds great for priority queues. But how about an event queue, where every event has a time tag?

</comment></comment></comment><comment><USER9> The follow up article in case anyone wanted to read it: [http://www.drdobbs.com/parallel/writing-a-generalized- concur...](http://www.drdobbs.com/parallel/writing-a-generalized-concurrent- queue/211601363)

<comment><USER10> As a single page - [http://www.drdobbs.com/article/print?articleId=211601363&...](http://www.drdobbs.com/article/print?articleId=211601363&siteSectionName=parallel)</comment></comment>


Multithreaded app server written in PHP - <AUTHOR> http://www.appserver.io/ <comment><USER2> I wrote a preforking webserver in PHP once [1], it was a lot of fun! Especially since there wasn't really anything apart from FastCGI and mod_php. I have always been wondering why there weren't more PHP webservers written in PHP, maybe because FastCGI and mod_php were just good enough for everybody? Contrast that to the Ruby community, where there are more than a dozen decent webservers, implementing varying concurrency models.

Very interesting project!

[1] [https://github.com/lgierth/pint](https://github.com/lgierth/pint)

<comment><USER3> It's probably a mix of (1) "If it works, don't fix it" and (2) "I don't give a shit."

(1) Because Apache has had mod_php for ages, and there's FastCGI/FPM for everything else. If you already have something written in C that works out of the box, there's little incentive to write an alternative in a slower language. Besides, until recently, PHP has been woefully inadequate for writing daemons, with all those memory leaks and crappy error handling. Even nowadays, there's a lot of stigma against writing daemons in PHP (usually by people who still think in terms of PHP 5.2).

(2) Because the majority of PHP programmers are not interested in writing anything other than plain old PHP scripts accessed with a browser. This might be a result of the fact that almost everyone has standardized on either mod_php or FastCGI/FPM. When something is taken for granted for such a long time, you tend not to think about how the lower layers works at all. At least in some circles, it's not unusual to encounter "experienced" PHP programmers who are surprised to learn that they can run a PHP script from the CLI and keep it running for many days.

</comment></comment><comment><USER4> Why? I mean isn't one of the main great things that you just place your php files in the apache/nginex web folder and run.

<comment><USER5> Because people should have alternatives to multiprocess Web servers in memory hungry languages. Threads have a stigma among dynamic languages but when they are abstracted nicely they can give you a lot of performance for very little headache. Memory isn't cheap when you're renting it.

</comment></comment><comment><USER6> The font is not very easy to read on Chrome 31.0.1650.63 on Windows 7. Screenshot: [http://i.imgur.com/3hBHzPn.png](http://i.imgur.com/3hBHzPn.png)

edit: Adding -webkit-text-stroke: 0.5px; to the body CSS helps.

</comment><comment><USER7> Does it work on HHVM? (HipHop-PHP JIT from FB)

</comment><comment><USER8> What are advantages of this thing against apache or nginx? Is it faster? Handles more concurent request? Or does it exists just for the sake of writing server in PHP?

<comment><USER9> One of the advantages obviously IS, that it will be faster than ngix (Apache is too slow to really compare it) because it allows you to hold objects persistent in memory what no other web server actually can. So we have Magento running within the application server, and had awesome performance improvements around 50 % (means about 100 ms for a category page instead of 150 ms on nginx). As it is multithreaded (not forked) AND faster, it also allows you to handle more concurrent requests.

But that is only one thing, because a application server, beside the web server (what is only one component and maybe will run behing a nginx that delivers static content like pictures, CSS or JS), provides you with additionally services like a message queue or a time service that will be very helpful in nearly any bigger PHP project.

A very interesting thing will be to combine appserver.io and HHVM to improve performance. If this will be possible, we think it will make the servlet container part of appserver.io for sure the fastest webserver available.

As the appserver.io is completely written in PHP it allows you and any other PHP developer to help fixing bugs or to improve it by adding new enhancements like HTTP 2.0 protocol in the future. With such a big community, like the PHP community is, we can be much faster to improve appserver.io than waiting for Apache or nginx to came up with new features. These are the main reasons why we think that PHP community should have their own application server for PHP written in pure PHP.

</comment></comment><comment><USER10> What about an asynchronous PHP web server?

<comment><USER11> [http://reactphp.org/](http://reactphp.org/)</comment></comment>


Proposal for Canonical Short URL Auto-Discovery - <AUTHOR> http://sites.google.com/a/snaplog.com/wiki/short_url <comment><USER2> Perhaps we can stop endlessly posting everyone's post on someone else's post on URL shorteners and figure out something to do about it. ;)

One objection, though: "Over the past few years SEO efforts lent to longer and more descriptive canonical URLs for content pages. During this time URL shorteners such as tinyurl.com and others came in to help undo that trend and make URLs fit into limited 140 character situations for sites like twitter.com or SMS messages."

Back in the real world, there are plenty of links like, oh, <http://news.bbc.co.uk/2/hi/europe/7984762.stm> that tell me very little at all about the link I'm going to follow. _Mm, BBC news...involving Europe. There can't be much of_ that _, can there?_</comment>


Questions VCs Will Ask You - <AUTHOR> http://blog.eladgil.com/2011/03/questions-vcs-will-ask-you.html

<comment><USER2> This is why you write a business plan, no matter how rudimentary - to think through these questions.

<comment><AUTHOR> I have also seen a lot of people address that majority of these points in their pitch deck. E.g. they will often have the hiring plan, product roadmap, market structure, proposed business model etc. in the deck. Some of the details will often be in the appendix etc.

I agree with your meta-point - writing this down in whatever form goes a long way to forcing you to think it through, and can lead to some useful insights to you are the driver of the company.

</comment></comment><comment><USER3> I like this list. Might be a good idea for new companies to start by answering these questions first. And then can build collateral out of those answers.</comment>


Ross Ulbricht's Alleged Confidant "Variety Jones" Extradited to US - <AUTHOR> https://arstechnica.com/tech-policy/2018/06/ross-ulbrichts-alleged-confidante-variety-jones-extradited-to-us/ <comment><USER2> I wonder if Thai prison is more hospitable than US. Both sound gnarly compared to Norwegian.</comment>


Carmack talks practical use of Haskell, Lisp in game prog at Quakecon keynote - <AUTHOR> https://www.youtube.com/watch?feature=player_detailpage&v=1PhArSujR_A&t=130 <comment><USER2> It struck me how well Carmack's ideas about running all actors in the game world in parallel map to Clojure's agents[1].

Clojure introduces a bunch of interesting ideas on how to handle parallel programming. "Perception and Action" by Stuart Halloway is a great talk to listen to if you're interested[2].

[1] [http://clojure.org/agents](http://clojure.org/agents) [2] [http://www.infoq.com/presentations/An-Introduction-to- Clojur...](http://www.infoq.com/presentations/An-Introduction-to-Clojure-Time- Model)

<comment><AUTHOR> In fact one of Rich Hickey's very first demos of Clojure was ants.clj which uses agents to simulate the ants. While not a game but rather a simulation it includes many elements that would also be present in a game. A literate version of ants.clj may be found here: [https://github.com/limist/literate- clojure-ants/blob/master/...](https://github.com/limist/literate-clojure- ants/blob/master/literate-ants.org)

</comment></comment><comment><USER3> It's inspiring to hear how he struggles learning a new language and having trouble doing things not related to his work.

<comment><USER4> He's one of my favorite people to follow on Twitter [1] because of this; he regularly tweets about stuff he's learning, especially new languages. It's quite inspiring and uplifting to see a such a figure in the industry still make time to learn on his own and candidly share his thoughts.

[1]: [https://twitter.com/ID_AA_Carmack](https://twitter.com/ID_AA_Carmack)

</comment></comment><comment><USER5> I strongly recommend listening to his Quakecon keynote in full. It meanders over a huge variety of topics and I personally find him a very engaging and easy to listen to orator.

<comment><USER6> Absolutely! I uploaded it as single segment at [https://www.youtube.com/watch?v=o2bH7da_9Os](https://www.youtube.com/watch?v=o2bH7da_9Os) , will archive it to archive.org shortly.

<comment><USER7> Is there any chance you could extract the audio and put it online somewhere? I am currently finishing a cross-country bike trip, and would absolutely love to listen to his keynote, but only have a phone on me currently. It would mean a ton!

<comment><USER6> Sure thing! [http://archive.org/details/Quakecon_2013_-_Welcome_and_Annua...](http://archive.org/details/Quakecon_2013_-_Welcome_and_Annual_Keynote_- _John_Carmack/) includes the AAC track extracted from the video as well as a mono 32kbit/s VBR Opus in Ogg to save you bandwidth. Enjoy!

<comment><USER6> Sorry, that ogg was borked. At least I cannot play it anywhere. Will replace it with a standard Ogg Vorbis one.

</comment></comment></comment></comment></comment><comment><USER8> Glad to see him think that strong static typing is the way to go.

<comment><USER9> There's only so many times you can get an error in your programs before you begin thinking that static typing might offer non-trivial benefits.

<comment><USER10> I have a feeling that all the people still arguing in favor of dynamic typing at all, are tilting at the windmill of static languages without type inference. Nobody really thinks those are good languages any more :)

<comment><USER11> > all the people still arguing in favor of dynamic typing at all, are tilting > at the windmill of static languages without type inference

Some of us who argue in favor of dynamic typing have a much more nuanced and informed view...

I, for one, am of the mind that the there are precisely _zero_ production- caliber statically typed environments that possess a sufficiently powerful type system for the kinds of problems I tackle on a regular basis. Haskell doesn't count, since you need to turn on about a dozen GHC language extensions in order to incorporate the last 20 years of research. There's also quite a bit of design warts that newer academic languages are starting to iron out. In particular, I don't think monad transformer stacks are a reasonable solution to computational effects.

That's not to say you can't write _any_ program in an environment where the type system is constraining you. You can. You simply implement a "tagged interpreter", which is something that's so simple to do, people do it all the time without realizing. Either you have a run-time map or you pattern match on an sum type data constructor, then loop over some sequence of those things with a state value threaded through. Poof! You've got a little interpreter.

I find that this happens _a lot_. And, I also find that a lot of problems are easier to reason about if you create a lazy sequence of operations and then thread a state through a reduction over that sequence. Now, in Haskell, I've got a type correct interpreter for an untyped (unlikely turing-complete) language! Sadly, I can't re-use any of the reflective facilities of the host language because my host language tries to eliminate those reflective facilities at compile time :-(

I'm in favor of optional, pluggable, and modular type systems. I think that a modern dynamic language should come with an out-of-the-box default type system that supports full inference. If, for some reason, I build a mini interpreter- like thing. I should be able to reuse components to construct a new type system that lets me prove static properties about that little dynamic system. This level of proof should enable optimizations of both my general purpose host language and my special purpose embedded "language".

Additionally, I require that type checking support _external_ type annotations, such that I can separate my types from my source code. In this way, type checking becomes like super cheap & highly effective unit tests: The `test` subcommand on your build tool becomes an alias for both `type-check` and `test-units`. You just stick a "types/" directory right next to your "tests/" directory in your project root. Just as a stale unit test won't prevent my program from executing, neither will an over-constrained type signature.

<comment><USER12> _> Haskell doesn't count, since you need to turn on about a dozen GHC language extensions in order to incorporate the last 20 years of research._

I don't follow. Turning on a language extension is as simple as adding a single annotation to your source file. Is this a problem?

Are you objecting to "the last 20 years of research" not being part of the definition of the Haskell language standard? This is a little off the mark, as Haskell was conceived in 1990, and the latest version of the standard is from 2010.

Moreover, Haskell is evolving rapidly precisely due to the use of language extensions. Research is done, papers are written, and extensions are added — then validated through practical use, and either kept or removed.

 _> There's also quite a bit of design warts that newer academic languages are starting to iron out. In particular, I don't think monad transformer stacks are a reasonable solution to computational effects._

Granted, monad transformer stacks can get unwieldy. Fortunately, writing in this style is not required. Monad transformers are just library code, so it's not necessary to invent a new language to replace them.

<comment><USER11> > Haskell was conceived in 1990, and the latest version of the standard is > from 2010

Haskell was released in 1990, but the designs started on Haskell itself in 1987 and were heavily based on prior languages; standardizing on a common, agreeable subset. The fact that there is a 2010 version of the spec provides zero insight into how much the language has evolved over that 23 year period. That's not to say it hasn't evolved, just that it's silly to pick on my obviously hyperbolic trivialization of 20 years of progress.

> Haskell is evolving rapidly precisely due to the use of language extensions

Sure. And the fact that it is _still_ rapidly evolving, especially in the type system department, is proof that there are interesting classes of problems that don't fit in to Haskell's type system in a sufficiently pleasing way.

Evolution is a good thing & I have a ton of respect for both Haskell & the PL research community. See the rest of my post for how I'd prefer an advanced language/type-system duo to work in practice.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> At 1:44:00 [https://www.youtube.com/watch?feature=player_detailpage&v=o2...](https://www.youtube.com/watch?feature=player_detailpage&v=o2bH7da_9Os&t=6258) it sounds like he is actively looking for an opportunity to use Scheme as an embedded language in a game. Does HN know of any examples of such use?

<comment><USER13> Naughty Dog is the canonical example. They were founded by two ex-MIT AI Lab guys. They designed a couple of in-house languages for Crash Bandicoot, and Jak & Daxter.

In the early days of the PS2, they supposedly derived a benefit from having a higher-level language that could be compiled for any of the PS2's various processors (EE, VU0, VU1). I think that at the time, you couldn't do VU programming in C.

In the end, they had to revert to industry standard C/C++ due to hiring issues.

<comment><USER14> While their games used to be even more Scheme-based than they are now, AFAIK they do still use PLT Scheme (at least as far up as the Uncharted games, haven't read too much on the tech under The Last of Us) for the sort of traditional scripting one would use UnrealScript or QuakeC for.

<comment><USER15> PLT Scheme, or Racket as it is now known, is in use in the Last of Us: [http://lists.racket- lang.org/users/archive/2013-June/058325....](http://lists.racket- lang.org/users/archive/2013-June/058325.html)

A bit of insight into the use of Racket here (scroll down): [http://comments.gmane.org/gmane.comp.lang.racket.devel/6915](http://comments.gmane.org/gmane.comp.lang.racket.devel/6915)

</comment></comment></comment></comment><comment><USER16> It blows my mind that this is his first foray into functional languages. Makes my imagination wonder what the current state of the gaming and programming industries would be like, had he built Wolf 3D in a functional language and inspired everyone else from there.

<comment><USER17> Did you listen to the end? He wonders aloud what might have been if QuakeC had been QuakeScheme.

It's not his first foray into functional languages though. It's his first attempt to write production scale code in a pure functional language.

</comment></comment><comment><USER18> while listening to the structuring of the haskell version, with a "world" and an "actor" for each element, and the interaction as message-passing, I would think Carmack would find using erlang very satisfing as another alternative :D

</comment><comment><USER19> Is there a transcript?

<comment><AUTHOR> Not that I know of besides the one auto generated by YouTube.</comment></comment>


Why Coinbase and not Bitcoin will replace Mastercard - <AUTHOR> http://researchly.leobosankic.com/2018/07/31/why-and-how-coinbase-and-not-bitcoin-will-replace-mastercard/ <comment><USER2> I don't think coinbase/bitcoin will replace anything. At best they might get 1% of that market, but they will never be real competition. Besides the technical issues where cryptocurrency cannot keep up with the same demands credit and banks can. Coinbase sits on a razor blade of questionable ethical practices. Reddit and other cryptocurrency forums always have a handful of people asking for help dealing with exchanges(say exchanges because not just coinbase does this) that either fail to transfer funds or funds just go missing over night. The regular response from people is "it is crypto money what you expect?". Saying it is the normal for money to go missing with no recourse just demonstrate the lack of control and power a end user has in this anarchy financial system.

<comment><AUTHOR> "Coinbase sits on a razor blade of questionable ethical practices." Nice coincidence: Just on Tuesday (31.07.2018) Coinbase reported that they have hired a chief compliance officer ([https://ca.reuters.com/article/technologyNews/idCAKBN1KL1BH-...](https://ca.reuters.com/article/technologyNews/idCAKBN1KL1BH- OCATC))

"The regular response from people is "it is crypto money what you expect?" Although we should point out that it is general investing "knowledge" that one can lose everything, this must _never_, as you correctly pointed out, happen due to technical issues. I am just now realizing that it is actually truly crazy how ok people are w/ losing money due to such incidents.

</comment></comment><comment><USER3> I wonder if there's an opposite term for 'leapfrogging' [1], whereby the pace or focus of technology -- instead of allowing poorer countries to skip trends altogether -- it leaves them behind.

An example of leapfrogging is China's payment system which switched directly from a cash-only system to a mobile-payment system in the span of a decade, entirely bypassing the need for credit cards.

I believe that cryptocurrencies, ironically, are leaving the unbanked populace behind by being a payment-only system instead of being a payment-credit system. If Bitcoin is truly successful and replaces Visa and MasterCard -- both of which also operate as a credit system -- then that's just going to result in slower economic growth in underdeveloped countries.

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

<comment><AUTHOR> I get your point. Although (as I have touched slightly upon in the article) several crypto-based donation systems exist and some companies are already working on crypto-based lending.

BTW: the only term I can think of is "leaving behind"

<comment><USER3> Ideally, we would be able to provide modern financial services backed by first world institutions to underdeveloped countries. An example of this came through a podcast I listen to [1].

For the most part, I am skeptical of cryptocurrencies since they need to solve stability and identity first before tackling credit. An additional problem might also be usability; private-public key pairs should be abstracted away to the end user. As for donation systems, I don't think they have the same network effect as credit systems.

[1] [https://www.npr.org/sections/money/2016/09/07/492988779/epis...](https://www.npr.org/sections/money/2016/09/07/492988779/episode-723-the- risk-farmers)

<comment><AUTHOR> "need to solve stability and identity first before tackling credit." that makes sense, yes.

"private-public key pairs should be abstracted away to the end user" what do you mean by that?

"I don't think they have the same network effect as credit systems" What kind of network effects to do you see w/ a credit system?

<comment><USER3> 1\. Having something equivalent to account with a username and a recoverable password.

2\. Credit systems where you loan money to other people based on other's deposits has a multiplier effect [1].

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

<comment><AUTHOR> Now I understand you first point.

Did not know about the Money_multiplier. Cool info, thanks!

</comment></comment></comment></comment></comment></comment><comment><USER4> "Bitcoin has never had a service interruption" — LMAO!

Yeah, no service interruption. Just a period of weeks on and off where it took hours or days to confirm transactions.

<comment><AUTHOR> yeah, what use has 100% uptime if you cannot use it reasonably. sometimes I am unsure if such tweets originate from not knowing or not _wanting_ to know.

</comment></comment><comment><USER5> Assinine, coinbase has MANY problems and is nowhere near a market leader. Paypal would stand a better chance, but then they use mastercard for their debit card, but if they could roll out their own network of cards like Amex/Discover have that is accepted everywhere, then they'd be the new dog. Stripe also could do something like this considering their market share.

People trust paypal/stripe over coinbase, coinbase has been known to freeze money and have horrible customer service. I've taken all my coins out and won't be using them in the future at all.

</comment><comment><USER6> It has been obvious for years now that Bitcoin will not replace Mastercard due to it's technical limitations.

</comment><comment><USER7> Nice work, author of blog post. 1) Recognize a stagnation in e-coin investment; 2) buy up some Coinbase; 3) Write a blog post how Coinbase will beat Bitcoin; 4) Profit.

<comment><AUTHOR> Hi. Thanks for your comment. However, I am unsure what you mean. Can you please explain?

As disclosure: I am in no way affiliated w/ Coinbase (nor do I hold any stakes in them). I do, however, own various cryptocurrencies.</comment></comment>


Writing Custom CSS vs. Using Front End Frameworks - <AUTHOR> https://stackoverflow.com/q/49054018/1533054 <comment><USER2> Using the first method with a bunch of classes makes a lot of sense when you're going with a UI library like React.js or Vue.js.

You have separate components and you use the classes to style them. So you're not repeating them all over the place because you're then just rendering a single component instead of repeating HTML.</comment>


A first naïve look at Truffle Ruby - <AUTHOR> https://github.com/oracle/truffleruby/issues/1054 <comment><USER2> It's a bit sad that my first reaction is to go, "oh it's Oracle" and then look at the license.

It's GPL LGPL and Eclipse, which is convoluted but otherwise uninteresting.

<comment><USER3> It's GPL or LGPL or Eclipse. You can pick whichever you want - it's not a convolution of all three. The licence comes from JRuby, which we forked from.

</comment></comment><comment><USER4> I hadn't heard of Truffle Ruby before now — it looks pretty awesome. My experience with ruby has so far been limited, but as much as I've used it, I don't really see any downsides to the language except speed (for web applications, anyway).

<comment><USER5> Things I dislike the most about Ruby:

\- Raw performance

\- Runtime metaprogramming from hell

\- Monkey patching

\- No real concurrency support, tons of non-threadsafe code and gems

\- Too Rails-centric

\- Little presence outside web development

\- Little to no real innovation in the last years

\- Mutability

\- No optional / progressive types or type annotations

===

Things I love about Ruby:

\- Clean syntax

\- Although it's object oriented, it allows using a functional style

\- Functional collection operations

\- Productivity

\- Flexibility

\- Maturity

\- Availability of high-quality libraries

\- Availability of hosting solutions

\- Friendly community

\- Nice stack traces

<comment><USER6> > \- Little to no real innovation in the last years

You are sooooooooooo wrong it isn't even funny. I'm stuck coding to Ruby 2.2 and Ruby 2.5 is looking more and more like a totally different world.

> \- Mutability

Never understood this complaint from people. I just recently started playing with a language that supports immutability (Kotlin) and it is weird to me that you guys seem to be asking for constants, rebranded. Even weirder is if I write my vars' names in CONSTANT_CASE I get yelled at by the code formatter!

Plus, in immutable languages, are there cases where immutability extends to nonscalar values like arrays or hashes or objects? That distinction just feels so...arbitrary.

Is data changing that big of a problem?

<comment><USER7> > Is data changing that big of a problem?

Yes, but it is hard to recognize it as such until you've experienced the alternative.

I don't know much about Kotlin, but the fact that it relies heavily on Java libraries is sufficient to tell me that it is a particularly poor example of the power of immutability. You see the usefulness of immutability when you have objects that are deeply immutable - when you pass them around, you know those functions haven't changed them. It is much easier to reason about deeply immutable objects than mutable ones.

> in immutable languages, are there cases where immutability extends to > nonscalar values like arrays or hashes or objects

Yes, this is largely the point. Although, you will rarely see an immutable array or hashtable - more likely it will be a linked list or balanced binary search tree.

<comment><USER8> Kotlin runs on JVM but it's closer.to Scala, not Java. You can sure have immutable structures all the way down in it, as if it were Haskell. It doesn't enforce this style, though.

</comment></comment></comment></comment></comment><comment><USER9> It always bothered me that Ruby isn't used as much as Python is used outside of web development.

I think Ruby is a nicer language than Python is in many ways.

<comment><USER10> Lots of operations code was written in Ruby. Just look at Chef, Capistrano and Puppet.

That whole field wants to be Google though and thinks they have Google's problems, so now it's mostly all Python and Go. HashiCorp has written some great stuff at least.

<comment><USER11> > That whole field wants to be Google though and thinks they have Google's > problems

It's becoming a recurring phenonemon, isn't it? I feel the same with frontend web development: everyone wants to be Facebook.

<comment><USER10> preaching to the f'ing choir here mate.

The volume of material out there written to help people improve the performance of their React applications makes it pretty clear to me that folks aren't looking before they leap.

I've seen more than a couple dozen projects with ~20-40 lines of simple, performant, vanilla JS turn into multi-hundred line behemoths + _an entire React framework_ for exactly zero benefit to end users because of "best practices".</comment></comment></comment></comment>


Why Facebook Can't Figure Out What to Do With Its Apps - <AUTHOR> http://www.wired.com/2014/04/zuckerbergs-app-struggle/ <comment><USER2> It seems like there are three obvious divisions of the Facebook product:

\- Chat

\- Shared content (news feed/photos/etc)

\- Events

I wonder what the world looks like in which each is treated as a separate product with a common login. I imagine that the size of the user base goes up, but total usage could go down.

I know many people who don't have Facebook because they don't like the constant distraction of its shared content core, but would be open to using it for chat and events (if only because everyone else is). At the same time, there are probably existing users who haven't abandoned it yet because of events/chat, but would like to be less distracted by the content stream. If someone could install only Messenger and Events, effectively opting into those two products and out of Paper, it's not hard to imagine a sizable subset of the Facebook population doing exactly that.

<comment><USER3> I think a startup focussing on only events and doing them well could have some potential.

<comment><USER4> [http://attending.io/](http://attending.io/) is doing this.

They're focusing on the market below EventBrite, small free events and small venue (i.e. tech user talks) that may require a small fee.

It's really refreshing to be able to just say "I want to attend that event" and for it to be a few clicks rather than an arduous check-out process.

Note: Whilst they have a "browse" button at the top, they've started by providing stand-alone pages that act as a flyer and mini-promo site for the event... this is a tool with great potential, not a fully mature product. Example of an event page [http://attending.io/events/how-to-market-through- influencers...](http://attending.io/events/how-to-market-through-influencers- trends-tools-techniques)

<comment><USER5> I feel like hosting events is trivial. It's _finding_ the events that is difficult. It's trivial to get a stripped down ticketing system going, it's much harder to get people to see those events.

I'm surprised there's still not a Google for events.

<comment><USER6> > I'm surprised there's still not a Google for events.

Absolutely. What's going on in Berlin next weekend? To answer that question depending on my interests, I need to check half a dozen different sites, none of them very good or filterable in useful ways.

I want to do more fun and interesting stuff, you want to promote your event. It seems like an obvious opportunity for anyone who can at least improve upon the clunky Web 1.0 interface of existing sites.

<comment><USER7> I've been mulling over this idea for a while now and actually have implemented a prototype. The current roadblock I run into, as someone said earlier in the thread, is the data sources. I've implemented a crawler that pulls from roughly 10 different sites, but clearly the custom crawling doesn't scale: there are just too many websites out there, and I don't have access to the crawling infrastructure of the Google/Bing size (both machine power and development effort).

I am thinking of making my prototype more human involved. For example, users (like you) could list the sites they often check for events, and maybe give the system some cue on how to extract the events from those sites. Another approach is MTurk which is something I'll try next.

</comment></comment></comment></comment></comment></comment><comment><USER8> On the contrary, I think this is about FaceBook knowing exactly what the future holds.

\- FB probably recognizes that a Social Network is at its core a directory of connections and the ability to message/talk to each other. Until now it took a backseat to over-shared content, when it should have been the other way round.

\- This app could serve as the foundation for the next FaceBook. Once you strip down an app to its essentials, you can very carefully add features based on data and the lessons learned.

\- We are moving towards more selective, opt-in types of engagement, as opposed to carpet bombing with the content feed. For example, there are only a couple of dozen people whose feeds I care about. Those are most likely the people who I interact with or message often. What I want is the ability to mark certain people as "interesting" so that I see their statuses, instead of having to "hide" everybody else. (add:) Same with groups, follows etc.

<comment><USER9> > FB probably recognizes that a Social Network is at its core a directory of > connections and the ability to message/talk to each other

How many years of hype did it take to bring us to this moment, where we realized we had reinvented ICQ/AIM?

I know, I know, I'm being reductive. There is also a sort of Geocities thing bolted on. You know, like Friendster and Myspace

<comment><USER10> if ICQ was so wonderful to use then why did we flee to the next best thing to come along? My feeling was that ICQ sucked in a very horrible way.

I was never around for the Friendster days(I was a Livejoural user through and through, damn it), however the reason I suspect MySpace lost out is that they did do the GeoCities thing. Everytime I see people complaining about a new Facebook layout, I always think, "Is this worse than the best MySpace page?" Answer is always no.

It's not that we're reinventing ICQ or AIM or MySpace or whatever, it's that we're refining the, oh god I hate using this word, "experience" of using it.

Does Facebook have random flash things pegging my CPU to render a cube in 3D with my friend's vacation photos on each face? Does Facebook have auto-playing music? Does Facebook have the option of setting the page's colors to be hideously garish?

I also think Facebook is realizing this, and they're trying to retool their business away from Facebook this website you visit, to Facebook a thing where all of these neat services are wired up to. I don't know if they'll succeed, but at least they have the sense to know they're not going to be on top forever.

<comment><USER11> MySpace lost because it lost war to spam. Majority of regular users were just fed up with freaking spam. Tens of comments, invites, messages mass sent from some unknown wannabes. Facebook offered more closed approach - focusing on real life friends and trying to tackle the spam. Remember having 500 friends on MySpace? How many of them have you EVER seen in real life? 10-20% ?

<comment><USER12> It was also getting really tedious and laggy, and there were lots of fake profiles. I used both MySpace (I played in a band) and Facebook in 2007, for seemingly different reasons and different groups of friends... but eventually everyone moved to Facebook and MySpace got really vacant.

<comment><USER13> > and there were lots of fake profiles

FYI, this is a feature, not a bug. One of MySpace's early differentiators was that it allowed fake profiles, unlike Friendster.

Another differentiator was the extreme level of customization available, which as you note, resulted in a lot of lag because most people do not even realize that could be an issue.

</comment></comment></comment></comment></comment></comment><comment><USER14> I think they may have finally found their path to irrelevance. I used to go to Facebook (the website) everyday, multiple times a day. They changed it for worse with every update, so I dropped the site and started using the app, but even the app kept changing for the worse and it's now a total mess. Then this morning I realized that it's been a week since I last used Facebook, and I'm pretty sure that in a couple months I'll be ready to drop it completely.

<comment><USER15> I'm in the same place -- I think the company takes itself too seriously.

It's not fun to use anymore -- I'm always getting these stern warnings about new privacy policies, and they are always screwing around with the timeline.

For example, now the Facebook gods have decreed that I will view the vapid posts of acquaintances who insist on posting "look how happy my family is" pictures, and buries posts from people whom I actually interact with on Facebook.

<comment><USER16> I think the media takes them too seriously as well. it's just a company that facilitates the sharing of LOLCat photos. Yes, its big data hard technically at that scale, but at the core, it's not a Google.

</comment></comment></comment><comment><USER17> Disclaimer: ex-Facebooker.

> Similarly, there's a logic to giving Paper some more features, or "bloat," > as engineers derisively call such additions. Although it's awkward to cram > more information into a hidden tab on Paper — if birthdays are so important, > why aren't they in Paper's main news feed? — the additional information also > helps Paper live up to its billing as a place for news and stories from your > social graph. For some people, birthdays and invitations are a vital part of > that news stream, even if, for others, such information is trivial or better > placed in the core Facebook app.

1\. The Events and Birthday features were planned before Paper was announced. It's not feature bloat, it's a "second release" feature planned ahead of time.

2\. Paper is optimized for a high-quality reading experience, especially longer content, as evidenced by the meticulous attention to detail in the text rendering and the horizontal scrolling. Birthdays would take up a lot of space in the story stream for relatively little content (and how would you order it within the feed, anyway?). Look at the birthday indicator on Facebook WWW, and tell me a name and three words are worth a screen-sized card in the stream. I would be very skeptical.

3\. Birthdays arrive regularly and in chronological order. The Notifications jewel is the best place for these things - people also visit it regularly and there's a chronological ordering to it.

As for Nearby, the argument is flimsy. Changing strategy doesn't have to mean sabotaging in-flight development. Perhaps Nearby was developed before or during planning for the shift to the new strategy.

<comment><USER18> Am I the only person who thinks the body text on the shrunken preview cards looks terrible?

edit: was reacting to "meticulous attention to detail in the text rendering"

</comment></comment><comment><USER19> I like that they've done with Messenger. All they did was make an app specifically designed for messaging and remove the bolted on version from the main app. You shouldn't notice any UX differences once you install the new Messenger app thanks to the wonders of deeplinking.

<comment><USER20> I guess this matters less and less as old phones get phased out, but I think there is some memory overhead in having two apps rather than one. Like if you switch apps and then the reaper elects to kill your first app, the switch back isn't so nice. Whatever, edge case.

Another UX edge case is when you hit Messenger directly, there's no backlink to Facebook. That's kind of blah.

<comment><USER19> Yeah, that is irritating, but when the deeplinking to Messenger first started, there was never a backlink to the Facebook app. That's changed, and I bet Messenger will too.

</comment></comment></comment><comment><USER21> To be honest, once Facebook strips the messenger app from the main app I'm done using Facebook. I don't want to agree to the new terms and conditions.

<comment><USER22> I may be wrong, but I think you misunderstood the 'stripping the messenger app' bit. It's not referring to the web app, just the ios app. Facebook stripped the messenger app from the main iPhone app a few months ago. I don't think there are any additional TOS.

<comment><USER23> Messaging is definitely still in the main iOS app. They advertise "The new Messenger" with banners to get you to switch, but I haven't bothered.

I tried it out briefly, and IIRC had some trouble with chat notifications still coming from the main Facebook app. I could turn off notifications for it, but that'd kill all of the other notifications too. Making chat _only_ in Messenger would solve this, if they haven't fixed it already.

<comment><USER22> Interesting. Maybe Facebook is doing some kind of rollout, because I didn't feel like making the switch but eventually I was forced to.

I still get the notifications in my original FB app, but when I press "messages," I'm taken to the Messenger app.

<comment><USER23> Just tried again, it looks like once you have Messenger installed it gets disabled in the main app. And this time my message notifications are coming from the actual app that I can read messages in, so I'll stick with it.

</comment></comment></comment></comment></comment><comment><USER24> If Facebook strips the ability to message from the main app, I will no longer use Facebook for messaging. As an adroid user, Google's Hangouts is way better at connecting my gchat and sms and I will then have no use for another standalone messaging app.

</comment><comment><USER25> In my view Facebook separating out Chat from its core Facebook app was a brilliant move. It simplifies its core UI, yes, but even more makes the integration of WhatsApp into something that might actually make sense. Imagine WhatsApp built into the FB chat app... That's a huge, extremely active user base.

Lastly, if the worst happens and the core FB popularity declines, this new app could live a VERY long time. The only thing close in competition is GChat, but considering how popular WhatsApp is and its powerful reach into mobile, this could be the dominant chat platform going forward.

<comment><USER22> Just to add to this... I was reluctant to migrate to the Messenger app, but, since being forced to change, I can see the benefits. Though I don't use it very much, my girlfriend prefers it over any other messaging service (SMS, email, etc).

I think it was a smart move.

</comment></comment><comment><USER26> They actually don't want to do anything with them. And I don't even get, how they would keep grabbing their rivals without triggering anti-trust investigation.

As soon as any social startup rises to the sky, they would grab it. Since the social itself is worthless in terms of making money, so anyone would easily get acquired, because they don't have any other choice, and definitely acquisition by Facebook, Apple, Google or Microsoft is and was their only business model.

</comment><comment><USER19> Bundling information and bundling of functionality are being mixed up with this article. Facebook doesn't care about bundling information differently between apps, they care about narrowly designed functionality for each app.

<comment><USER27> FB is a culture of vertical scrolling silos.

</comment></comment><comment><USER28> Who knows. In their dataware house all they need is email id to link data from different apps to have a great knowledge about you and send more targeted ads.

</comment><comment><USER29> Nice. I'm glad their splitting these apps out, because I'll be able to ignore them as I always did.

</comment><comment><USER30> Man, why the heck are they trying to split everything off into their own apps? If I am using the main app to browse my feed and I get a message, why the heck do I want to swap to another app to answer it?

<comment> rkuykendall-com You don't. Just like when you're browsing HN and you get a message you don't want to swap to another app to answer it. That's why the separated Facebook chat app uses message bubbles that you can answer in any app:

[http://cdn.cultofmac.com/wp- content/uploads/2013/04/Screen-S...](http://cdn.cultofmac.com/wp- content/uploads/2013/04/Screen-Shot-2013-04-16-at-1.47.25-PM.jpg)

Honestly, it's brilliant, and the sole reason I use Facebook chat for most of my communications.

<comment><USER31> I had no idea they'd managed to make that work for iOS, that's awesome. Definitely agree, FB chat bubbles for Android are one of the best user experiences I've seen.

<comment><USER32> AFAIK, on iOS it only works within Facebook's apps. Pretty lame experience compared to the Android version.

<comment> rkuykendall-com Oh wow, it never occurred to me that it would be Android only. iOS users are REALLY missing out. It's the best mobile chat experience I've ever had.</comment></comment></comment></comment></comment>


Call for Proposals: RocketConf 2015, Amsterdam, the Netherlands - <AUTHOR> http://www.rocketconf.eu

<comment><AUTHOR> RocketConf is a three day conference in Amsterdam, The Netherlands. The 2015 edition takes place on 11-13 November.

The target audience are modern web developers (front and back end) and dev ops. Topics range from Ruby on Rails to Elixir to Ember.js to Docker.

The call for proposals is now open.

Also, there are some early bird-priced tickets left. If you're thinking about attending - be quick to grab an early bird ticket!

Edit: link: [http://www.rocketconf.eu](http://www.rocketconf.eu)</comment>


A little card game in APL - <AUTHOR> http://yhnmjuik.com/sols/ChildRummy.apl.html

<comment><AUTHOR> Hi. I'm an APLer and I wrote this in a day.</comment>


Cycling Matches the Pace and Pitches of Tech - <AUTHOR> http://www.nytimes.com/2016/08/26/business/dealbook/cycling-matches-the-pace-and-pitches-of-tech.html <comment><AUTHOR> "Sami Inkinen, a co-founder of the real estate website Trulia and an accomplished triathlete, made the case for his start-up, Virta Health, while on a ride this year with Mr. Levchin and another investor and cycling enthusiast, Raymond Tonsing of Caffeinated Capital. That was exceptional, Mr. Levchin recalled. "It's rare that you have someone who can pitch a company while riding hard, and I'm not going to slow down.""

LOL</comment>


Ask HN: How to handle a large collection of tags? - <AUTHOR>

I was thinking about handling a large number of "items" (for example videos) with quite a lot of tags (let's say 20 tags on average), like for example last.fm or youtube does... where tags are aggregated and used for data mining. The question is: has anyone done this efficiently for millions of "items" and millions of tags and provide us with how it was done?
For example... in a relational database, should I use a unique id for the tag "funny" and every item with this tag is assigned through a middle table with this id... or is it better to save "funny" again and again in the database and get a new tag_id for it?... And then aggregate the tags through counts of the same word (no middle table is used in this case).
Or... Has anyone done something similar with a NON-relational database? For example in google App engine. Any way to assign tags to "items" ... and aggregate them (count, group by, sum...) efficiently? I'm trying to avoid running too soon in scaling problems... How far can I go with simple hardware? Thx. <comment><USER2> I have taken the ASP.NET approach to how I count and figure out Tags. Quite genious when you have millions of tags where each item has about 20 tags.

I create one table that contains all 20 million tags with a Unique ID which is 99% a integer just counting up. I also add a column sometimes for a counter which every time a tag gets added to an item, I uptick this counter once. Keeps track of how many times I used this tag.

When I tag an item with 20 tags, I create one column for all my tags.

So lets say I have tags

1, 5 8, 20000, 35, 36.

It doesn't matter to me in the database at this moment what they correspond to, but it does matter that I need to make this column as small and easy as possible because with 200000 mil tags and another 2mil items, the database can get huge.

So my method is to insert the tags like so.

1:35:2000:35:5843:34

I then have created methods to where I can find the tags, export them and so on. So the tags above are also now search able through an easy Regex Expression "\d+".

That row of numbers is in one single column for my item and I call the column tags.

I have done this for many sites.

Hope this helps.

<comment><USER2> Also, if you don't find the answer here, there is always www.stackoverflow.com.

<comment><AUTHOR> Thanks a lot guys.

spoildtechie... that was an excellent suggestion. A quick browsing reveals that my question has probably been asked before... I had forgotten about stackoverflow... Thx.</comment></comment></comment>


Apple CEO calls Times supplier report "patently false and offensive" - <AUTHOR> http://arstechnica.com/apple/news/2012/01/apple-ceo-calls-times-supplier-report-patently-false-and-offensive.ars

<comment><USER2> Apple is trying to be transparent about their suppliers and the working conditions there. This is pretty much voluntary, to my knowledge nobody is forcing Apple to release this information.

Now Apple is getting attacked and people are using the facts from their own report as ammunition. Other companies that either don't care at all (don't audit their suppliers) or don't publish this kind of information are safe from this kind of bad publicity.

I don't think this kind of activism is very productive. I would like to see more focus on the things Apple has managed to improve within their suppliers. Some people seem to demand Apple to stop working with suppliers not complying with the regulations. Is this really the best way to improve workers conditions there? The logic seems to be that if Apple is no longer buying from that supplier, it must do some improvements to stay in business. What if it doesn't, what if it just finds another client that does not care?

</comment><comment><USER3> From their supplier responsibility site(<http://www.apple.com/supplierresponsibility/>):

 _We insist that all of our suppliers provide safe working conditions_

Notice the word "insist". How about _requiring_ it? There is a massive difference between insisting and requiring.

<comment><USER4> In this world, in this moment, if you want companies to "require" all their suppliers, and their supplier's suppliers, and so on, to have safe working conditions, then computers won't be manufactured. Not a single one, from any brand.

Hate to sound like a fanboy, but the very fact that Apple has addressed this issue has put them above and beyond the entire industry.

<comment><USER5> This type of thing isn't just and electronics industry problem. Running a grain elevator isn't really that safe, and big grain companies spend a lot of time on safety issues for a lot of the same reasons Apple does, but it doesn't prevent the deaths that happen every year (yes, every year in the US). These aren't overall farming deaths, I'm just talking grain elevators.

It isn't as sexy as Apple and it is a problem in the US, but everyone needs to eat. The other electronics companies are probably pretty happy Apple is taking all the heat. It should be interesting when the Brazil plant opens.

</comment></comment></comment><comment><USER6> I see Jobs' Reality Distortion Field is still healthy in Cupertino.

To be fair, this isn't an Apple problem; it's the tech industry's dirty little secret. From massive environmental damage as a result of rare earth metal extraction, to deplorable conditions at the factories that make our consumer electronics, to the health calamities at the places where electronics are stripped and recycled for their valuable metals, ours is not the clean industry we like to pretend it is. So again, it's not an Apple thing, but Cook's crocodile tears and affected "outrage" at someone airing our dirty laundry is pretty transparent.

</comment><comment><USER7> Title is a bit misleading. The actual quote is "Any suggestion that we don't care is patently false and offensive to us".

<comment><USER8> And with apple, they might even be serious about that "patently" part.

</comment></comment><comment> wes-exp For all the focus on the negative, what about the fact that millions of people are being lifted up out of abject poverty?

Even a long-hours factory job with some safety risks could be better than facing starvation. Not saying conditions couldn't be improved, but, just to think about the situation in the bigger picture.

</comment><comment><USER9> Well I find it patently offensive that your executives make statements like "we aren't here to solve America's problems" when you are an incorporated United States company whose primary userbase is STILL in the United States. You benefit from the freedom, support, and infrastructure set up by a US democracy, and you hire much of your high level talent from the US.

Apple may be a multinational and it may not have customers just in the US -- but you have 60 some odd billion dollars in your bank accounts and you turn to people suffering, starving and dying (out of house and home and not looking for free hand outs but a chance to work hard) and say "we aren't here to solve your problems."

Do you not comprehend the arrogance of such a statement?

<comment><USER10> Apple pays its employees much better than what they would have been paid working at something else. That's why people flock there for a chance to work. My parents and grandparents are those exact people that would have had a much better quality of life if they had been given a chance to work at places like Foxconn. Luckily, they were able to escape China.

If you are so against it all (basic economics, the history of the world, etc), then don't buy products from Apple or any other company that uses Chinese manufacturing.

Apple has done far more for people than what you will ever do and you have the audacity to critique them. Do you not comprehend the arrogance of your statements?

<comment><USER9> My statement was not at all about China, but specifically about their attitude towards the United States.

<comment><USER10> My point still holds valid since any company that uses Chinese manufacturing instead of US manufacturing would come under fire from you. The thing is, Apple can't get the results they want from companies here and so they go where they can (there was an article about this recently on HN). American consumers get the products they want, China gets the opportunity to improve the quality of life for its citizens, and Apple continues to do what it wants. It's a win win win situation.

You're arguing for companies to use US manufacturing and that's a naive view in the long run. Any student of economics will understand that it's a GOOD thing for the market to not be controlled the way you want (arbitrary limits on where Apple should and should not go). Placing restrictions would make the market not as competitive as it could be and just result in greater inefficiency.

</comment></comment></comment></comment><comment><USER11> EVERYBODY DOES IT

Foxconn makes everybody's stuff. Yet I don't remember ever hearing about how the Xbox is made with "Slave labor". Nor have I ever heard about Microsoft publishing a public report on auditing the conditions of workers in its supply chain.

I'm not bashing Microsoft. I'm just pointing out that the people who keep bringing up this issue are also the same people who use any excuse they can find to claim that Apple is evil, or Apple is going to fail, or whatever.

Frankly, I think the "Supplier Responsibility" report was a mistake. It is Apple giving in to the nonsense from people who are just throwing mud.

Foxconn's jobs are better than most in China, and when they have openings they have massive numbers of people who apply to fill them. These people are not masochists! Obviously Foxconn is offering them a better job than they would get elsewhere.

ITS JUST POLITICS

I think the bottom line on all this is that it is the political left in america, and american unions, picking a target that is high profile and raking muck to try and punish them for using nonunion workers.

We've seen this before-- Target and Walmart have nearly the same policies, but Target is more unionized, while Walmart is less so, and thus we've had a decade of attacks against Walmart from unions.

You don't see the NYT criticizing Sony for using the same workers. You don't see the NYT attacking Target. Or Dell, or HP, or Cisco, or Motorola, or Nokia, or RIM. But, Walmart, Apple, and other high profile company can expect to be regularly smeared.

BUT DON'T POLLUTE HACKER NEWS

But really, is union mud throwing appropriate for Hacker News? Scratch that. Is _ANY_ mud throwing appropriate for Hacker News? Every time Apple comes up some jackwagon is going on about "stupid sheep buying the iThings made with slave labor."

It doesn't belong on Hacker News. This has nothing to do with hacking, startups, or even technology.

It's a purely political issue, and it only servers to pollute the environment here, making discussion of things relevant to hackers less prevalent.

Its getting rare to find stories on HN on hacks, engineering techniques, etc. About the best I can regularly find are "8 ways something helped my startup" and "heres what's happened with my startup" and the occasional "here's a new open source package relevant to hackers." But the least relevant to me of any of those type articles is an order of magnitude better than this "apple uses slave labor" BS.

EDITS

Edit: RE: Unions. Took out an editorial comment about unions because I don't really mean to start a debate about them. But when it was in, I was not talking about cost differences, they're going to be there always between countries. Unions however make manufacturing more rigid. You can't improve efficiency without risking some segment (generally the workers whose steps are eliminated) striking and the whole workforce walking out. If you can't improve your plants domestically, you're more likely to move them abroad.

Apple, for instance, radically changes the way iPhones are manufactured from generation to generation. Even going so far as to buy large numbers of rare machines. The workforce in china is pretty fluid. They aren't striking because their job changed.

Edit2: I'm not going to rebut claims. To prove me wrong, show me articles attacking other prominent technology companies, then show me how they've been promoted on HN. Show me evidence that the people applying to Foxconn are desperate, not people who have other jobs. All I know is that there are a lot of them applying for each position.

The real point is-- this is Hacker News-- Politico News.

I know to expect downvotes, and this article, as predicted, is collecting a lot of "righteous" outrage that Apple would dare defend itself. But look at those comments.

Even if you agree with them, is this the Hacker News you want?

I don't. Karma be damned, I'm going to take a stand.

Please, just stop with political crap!

EDIT: OH, right. You're telling politically motivated lies about Apple because "hackers have a social conscious". Bullshit.

<comment><USER12> A quibble: Even a non-unionized laborer in the US can't live on $10 a day. Unions didn't destroy American manufacturing, the economy did.

<comment><USER13> I don't think most foxcon workers are actually paid 10$ a day (it's less than that). But, exchange rates are odd things, you can live on 2$ a day worth of food in the US and buying the same food in China gives one exchange rate, but comparing housing gives vary different exchange rates.

Basically, working in one of those factory's sucks more than any job you ever had and pays a lot less. But, in that economy your still far from starvation. If you want a real eye opener just compare how long it takes to buy a lifetimes worth of food in the US. 70 years * 2$ a day * 365 days a year = 51,000$. Clean water is so cheap in the US it's hard to fathom, in much of the world and most of most of history it was a major issue.

<comment><USER14> The most low level line workers are paid 1750+200+(100~800)+OT=more than ¥2500/month that's $13 a day.

So you think wrong.

The problem are hazardous working condition and excessive over-time, in the end of course repetitive jobs that have no way up.

<comment><USER13> Mind if I ask where you get those numbers from? I have seen numbers for base pay, but not base pay + over time or base pay + overtime - taxes. Also, 1750 yuan as base pay still seems rather high after taxes.

ex: _new recruits would get 1,350 yuan_ <http://www.wsws.org/articles/2012/jan2012/work-j17.shtml>

taxes: [http://www.beijingobserver.com/income-tax-calculator- china.h...](http://www.beijingobserver.com/income-tax-calculator-china.html)

<comment><USER14> I have a relative working at Foxconn's Qunshan factory. His monthly income is about ¥3000, he's been there for 15 month.</comment></comment></comment></comment></comment></comment>


Chrome is the New C Runtime - <AUTHOR> https://www.mobilespan.com/content/chrome-new-c-runtime

<comment><USER2> This reminded me of Game Dev Tycoon [1] although premise seems to be a bit different. They essentially packaged a some version of Chromium to execute their game script...

[1] [http://www.greenheartgames.com/app/game-dev- tycoon/](http://www.greenheartgames.com/app/game-dev-tycoon/)</comment>


Lessons I have learned in my first 80 years - <AUTHOR> http://www.blackstone.com/news-views/blackstone-blog/blackstone%27s-byron-wien-discusses-lessons-learned-in-his-first-80-years

<comment><USER2> \- "When someones extends a kindness to you, write them a handwritten note, not an email" ~ NICE!!!</comment>


Non-citizens can now work on a U.S. startup for ~2.5 years after graduation - <AUTHOR> http://www.dhs.gov/xnews/releases/pr_1207334008610.shtm The Department of Homeland Security just extended the Optional Practical Training period that international students gets on their F-1 visa after graduation from 12 to 29 months (for students graduating in science / math / engineering). This should be enough time to get a startup off the ground before having to worry about applying for a longer-term visa (usually an H-1B). <comment><USER2> This change is meant to help new employees at big companies, not necessarily people in startups. Notice that the ruling follows on the heals of the 1-apr H1B 2008 application date, wherein the quota was exceeded on the first day, inducing a lottery. The same thing happened last year. Under this ruling new students graduating and going to work at big companies will have two shots at the H1B lottery.

That said, startups will benefit from the same treatment.

(See [http://en.wikipedia.org/wiki/H1B_visa#Quotas_and_changes_in_...](http://en.wikipedia.org/wiki/H1B_visa#Quotas_and_changes_in_quotas))

</comment><comment><USER3> what worries me is that if you're not american, you're a "non-citizen". I'm still a citizen, just a british one. What's wrong with saying foreign citizens?

this always freaks me out when I arrive at SFO.

<comment><USER4> me too. Especially when on the mounted TVs you can see only CNN, and most of their reports are about the "war in terror", and all the scaremongering going on, then you see the ocasional guard with the machine gun, then the voice saying that we are in "Orange level of threat", (has it ever been blue or green?). Added the knowledge that you can whisked away to Guantanamo Bay, and have no recourse in courts whatsoever, it makes a very crappy experience.

No wonder tourists don't come as much in the US as it was before 9/11, even after falling dollar they'd rather go somewhere else where they feel welcomed.

<comment><USER5> "Added the knowledge that you can whisked away to Guantanamo Bay, and have no recourse in courts whatsoever..."

To be fair, that can happen to you anywhere.

</comment></comment></comment><comment><USER6> The title is misleading. The 17 month period is an extension you qualify for ONLY if you have already filed for an H-1B. This means you must already have gotten enough funding to prove that your cash inflow can sustain your salary.

You can stay after the one year period even now provided you file for an H-1B and get it.

This 17 month period is primarily to do away with the period between your OPT expiration and start of your H-1B.

<comment><AUTHOR> My take on the new rules is that anyone with a pending H-1B gets the 17 month extension automatically, but that anyone else in the OPT period on an F-1 with a science / technology / engineering / math degree working for a company that required skills related to the degree could file for the 17 month extension even if they don't have a pending H-1B.

Can anyone verify / refute this?

</comment></comment><comment><USER7> I find it strange that this kind of change comes from the Homeland Security office.

<comment><USER8> Immigration and Naturalization Services would be the agency that used to take care these matters. They've since been rolled into with the Dept. of Homeland Security.</comment></comment>