Startup Acquisition (Equity+Cash) Structuring - <AUTHOR> Here is a question I am confused about. Say a startup is being acquired for dual interests: a) the product. b) recruit team members
Say: > Startup gets valued @ X. (for the company & recruiting team) > The amount is paid out in cash (A) + stock swap(B):   A + B = X.
I am assuming that the stock swap (B) will come some vesting schedule of 4 years or similar. So the team members will earn their shares over 4 years of employment etc.
Question:
Say a member of the team holds 10% equity in Startup, if vesting is fully accelerated. However the member is not going to join the acquirer.
Is the member entitled to 10% of X? Or 10% of A? -  It seems to me that 10% of X would be unfair, because the person is not joining the company & will not be working for those shares. While others will need to earn those shares through employment. -  whereas, 10% of A sounds tricky -> because if the entire deal is a stock swap only & no cash -> then the member gets 0. <comment><USER2> You still end up with the contract with the right to exercise the contract for the stock from the vesting date until the expiry. You can sell a contract at any time before the expiry date or you may exercise at anytime after the vesting date up until the expiry. Here is a good link for you that might be a good place to start: [https://www.thebalance.com/understanding-your-employee- stock...](https://www.thebalance.com/understanding-your-employee-stock- options-2388513)

<comment><AUTHOR> My question is different: How do the team members who will not join the acquirer get compensated?</comment></comment>


"Hooked: How to Build Habit-Forming Products" is free for the next 3 days - <AUTHOR> http://www.amazon.com/dp/B00HJ4A43S <comment><USER2> Anyone know if its possible to get this outside the US as a PDF file? I don't have an Amazon Kindle, nor do I live in the US .. but this sounds like a fascinating book worth reading..

<comment><USER3> You could install the Kindle for PC [1] version, which allows you to buy and read Kindle Book Editions from Amazon.

[1]: [http://www.amazon.com/gp/kindle/pc/download](http://www.amazon.com/gp/kindle/pc/download)

<comment><USER2> Thanks for the tip - is this going to be habit forming, by any chance? :)

</comment></comment></comment><comment><USER4> Thank you, looking forward to reading it.

</comment><comment><USER5> Cheers for the free book!</comment>


What Duckduckgo has to say about Telegram security - <AUTHOR> https://twitter.com/bascule/status/759507261056135168 <comment><USER2> Just want to point out that the answer shown here is a snippet pulled in from the user-approved answer on IT Security StackExchange (see the "More at ..." link). Clicking on "Show More" will display the whole of the user's comment.

Disclaimer: DuckDuckGo staff</comment>


Ask HN: Am I on the right track? - <AUTHOR>

I have reached a point in my project where my product is functional, and am starting to focus on the UI to make it usable.
I've taken it slow the past couple months, as my wife was pregnant. I haven't registered a corporation or anything. My daughter was born last week, and now I'm looking at what the next steps should be after I get through the newborn induced sleep deprivation stage.
I don't have a co-founder, not even sure how I'd look for one or if I really need one. I now have a wife and 2 kids and like many Americans am upside down in a house, so quitting the good paying day job isn't an option.
The product is www.unscatter.com. The monetization plan is to get in on Bing's advertising platform once I have enough traffic and corporation registered, and also to start selling features on top of the hosted search solution. For example, domain hosting so the search page could be at search.yourdomain.com. Other ideas would be a monthly fee for letting users upload a logo, or to remove advertising.
It seems like my plan should be polish the UI, register the business the identity, then start trying to get users while working on creating the features to sell.
I'm avoiding looking for investors because while I'm convinced my plan which includes future search indexing and complete support for enterprise class customers is an obvious no way to fail scenario, I should probably at least prove I can get customers first. I'm avoiding looking for a cofounder because I know even less about finding one of those, and what I should look for in one. I think this post is just looking for others to validate I'm on the right track, and the nagging doubts on if I should start focusing on investors or co-founders can continue to be ignored. <comment><USER2> What does it do? Put up a tag line or a quick explanation on the home page.

<comment><USER3> This. When I went there it looked like a search engine.

Embedding search for sites? Google does that. Using Bing's advertising platform? Who uses Bing? Twitter / Facebook results? People are already using tools for this. Search Portals? Yahoo, iGoogle, Bing... etc.

You seem convinced you have a great idea for a product but you were unable to convince me. In fact, I'm still not sure what it does or how today's tools don't do what you're trying to do already. It may have been because you are doing this part time, you were beat to the punch.

You need to make people _badly want_ something you are selling. I can't want something if I don't know what it does. And since your product is related to search and trends, you have a very very very steep uphill battle ahead of you.

The main issue is your marketing. I noticed on your blog that you said, _"Really, if I need to spend a lot of time writing about what the product is for people to understand it, then I've failed."_

This is so far from the truth. I know the technology is great. I know its interesting, but that's the _how_. Most, no -- _all_ consumers don't give a damn about how, they care about _what_. Ask any marketing person worth their salt and they will tell you it takes _9 to 18 months for a story to catch on and echo within a community/industry._ Unless you go viral, it will take longer in the search sector.

The how becomes interesting if your primary market is technical. But even then you are throwing away non-technical leads that could make the same decision.

My overall impression is that you've been cave-coding for too long without iterative feedback from other professionals, market analysts, or consultants. There may be situational factors that explain all of this but from a "give me money" perspective no one will care.

From a pivot perspective, it seems like integrating this functionality into a platform or library for other hackers to use and integrate into their own platforms could be a possible avenue. You've used and created some cool technology - repackage it and evangelize your approach. Even if it doesn't make any money, it can help garner a reputation that may help you move out onto other opportunities that pay more.

<comment><AUTHOR> Ok, does sound like I do need get more information up about what it does.

The product I'll be selling is the hosted search solution. The idea is that while you can get an embedded site search via Google or other search providers, I'll be offering my customers more than just a way to provide search results for their viewers.

The concept is that these days businesses are publishing content not only to their websites, but also to Facebook, Twitter, Youtube and other sites. My solution allows them a way to unscatter all that content, putting it one place for their viewers. Combined with the RSS feed display, it also gives them an out of the box portal with all their content in one place.

It also allows people to create topic based search solutions as well. I'll create and post links to examples of those when I make them later this week. One idea I'll be publishing is a Conservation Search, where search results will be provided from The Nature Conservancy, Greenpeace and WWF, while also showing their most recent content from Twitter, Facebook and Youtube.

In the future I'll be adding more providers for customers to add to their portal, as well as eventually building my own crawler and search indexer, which for a fee will allow customers to really customize what gets indexed and how search results are displayed.

<comment><USER4> the unscattering of published content from multiple sources sounds like a great idea to start. I wouldn't get into the topic based searching right away as you are diluting your brand. Do one thing REALLY well to start, then move into other things.

Since I suspect this is a product that would be used by businesses, rather than displaying an end-user type page where you have a search box, how about building a few examples of unscattered media.

I'd suggest taking a few topics which will be in the news for a bit, such as the gulf oil spill (I wouldn't unscatter the BP stuff, but maybe the gov't action), maybe greenpeaces media, stuff like that, and show a demo of what the services can do for businesses.

That's the best way to get people to get it. And if you build a demo for these publishers, maybe they'll install your widget on their page bringing you more customers.

Don't talk about it if you can show it.

Congrats on being a father, and best of luck with the new indeavor. Really an interesting and useful idea i think.

<comment><AUTHOR> Topic based search is just another way to use the tools I'm providing. I do agree I need some better demos of what can be done with the product, and I believe that will be priority one after the UI is built.

</comment></comment></comment></comment></comment><comment><USER5> Just my 2 cents, but I think you're underestimating the newborn sleeplessness phase if you're rearing to go with a 1-week old.

I think you're right that you are going to need to polish the UI a lot. This seems like a perfect candidate for 99designs. Since you already have a base UI for them to work off of, and then you can start to take advantage of having lots of other people thinking about it and the usabliity of it.

You absolutely positively need a tagline or something on the front page. You absolutely positively need a feedback button (try UserVoice for something free and easy).

Hey - I noticed that you're on Rackspace Cloud. I was wondering if you wouldn't mind sharing how the cost has been for your traffic? Email's in my profile. Thx.

<comment><AUTHOR> Email sent. Also, I've done the newborn thing, so I know what I'm getting into a little (of course you never really remember what it's like those first couple months). I'm not really rearing to go, I'm validating plans and still doing a little development each week. At this point I'm basically down to a couple hours on the weekend when my girls (I have a 2 year old too) are napping.

I was thinking about 99designs actually, but I think I'm first going to take a stab at building the interface on my own. I'm comfortable enough with javascript and YUI I think I can knock something out, and I think with AlloyUI being released recently, using it can save me a lot of time.

</comment></comment><comment><USER6> Seems like an okay plan. I would put more importance on getting people to use your paid product. I've also has developed projects in limited hours per week, and the features I thought were important at the time really weren't after I put it in front of actual users. The faster you get feedback on your paid product the better.

<comment><AUTHOR> Very true.. I spent months working on social network aggregation for end users, only to scrap it because it was a lot of resource consumption for something that I wasn't going to be able to monetize will bootstrapping myself.</comment></comment>


Ask HN: What developer podcast(s) do you listen to? - <AUTHOR> I've seen this thread before but thought it would be great to bring it back up and see what are the best podcasts that HN audience is listening to when it comes to development topics.<p>Post yours! <comment><USER2> Talk Python To Me - [https://talkpython.fm/](https://talkpython.fm/)</comment>


Numbers Every Programmer Should Know by Year - <AUTHOR> http://www.eecs.berkeley.edu/~rcs/research/interactive_latency.html <comment><USER2> Yes, every programmer should know the numbers for 2016. I was off on several of them.

But why must I know the other years?

<comment><USER3> I think it should be parsed as 'historic values of the "numbers every programmer should know (the current values of)"'.

It's interesting to see the development, maybe it helps to understand past decisions, but outside the current set nothing to memorize.</comment></comment>


Adult sex toy marketing tips - <AUTHOR> http://capitalandgrowth.org/answers/2981033/Adult-sex-toy-marketing-Any-tips <comment><USER2> OK, then. Any tips on marketing second-hand sex toys? ;-)

<comment><USER3> Study the market to see if cleaning it helps or hurts the resale value.</comment></comment>


Composing Programs in Python, SICP Style - <AUTHOR> https://composingprograms.com/ <comment><USER2> This is the textbook used for the introductory CS course (CS61A) at UC Berkeley. The course material is available at [http://cs61a.org/fa18](http://cs61a.org/fa18) (The course uses Python 3, Scheme, and SQL).

There are some neat projects (students build a Scheme interpreter and implement game logic as part of the projects)

Previous Hacker News Discussions (from which I've copied my comment)

[https://news.ycombinator.com/item?id=11465234](https://news.ycombinator.com/item?id=11465234) [https://news.ycombinator.com/item?id=3491142](https://news.ycombinator.com/item?id=3491142) [https://news.ycombinator.com/item?id=3141996](https://news.ycombinator.com/item?id=3141996)

<comment><USER3> Thanks for linking this, I'm currently working on designing an introductory python course. What background are students expected to have for CS61A? Is it expected to be students first introduction to python?

<comment><USER4> no background needed

</comment></comment></comment><comment><USER5> Huh, I already thought this was suspicious reading the title, as Python does not have in-built TCO and indeed, [https://composingprograms.com/pages/17-recursive- functions.h...](https://composingprograms.com/pages/17-recursive- functions.html) does not even mention Stackoverflow errors and neither does it introduce a decorator to avoid them. Under these conditions however, it is impossible to compose programs "SICP Style".

<comment><USER6> When I worked through SICP in the 80s it was with XLisp on MS-DOS. XLisp didn't optimize tail recursion, and I had well under a megabyte, but this turned out to be a problem only once or twice, and ad-hoc hacks were enough then. (OTOH the system didn't have an only 1000-deep call-stack limit by default, either.)

It's true that this'd be more of a problem for real-world work.

<comment><USER7> They introduce both a traditional factorial function and a naive Fibonacci function - it seems likely most enterprising students will overflow the stack.

Odd that they don't (from a quick skim) seem to mention it at all? When they do hand wave a bit around stack frames (call trees)?

<comment><USER6> A naive fib(n) only needs stack depth of about n -- it takes a long time but doesn't need to go very deep.

<comment><USER7> You're right about Fibonacci - a naive fib(1000) takes a long time to eventually overflow the stack in python. But fact(1000) quickly crashes. Which is a shame as python has a full(?) number tower and has no problem calculating 1000!

</comment></comment></comment></comment></comment><comment><USER8> People who find this interesting might find this answer of mine on stackoverflow interesting as well: [https://stackoverflow.com/a/44729275/1163490](https://stackoverflow.com/a/44729275/1163490)

</comment><comment><USER9> Great effort. I cannot find exercises? Do authors plan on adding those?

</comment><comment><USER10> Very nice formatting for the content but it feels like it's missing three chapters on category theory and two chapters each on the AST module and the `compile` builtin after that last chapter on recursion.

<comment><USER11> Which parts of the course would you drop or abreviate, in order to make time for these?

<comment><USER10> Very tough question.

Personally I'd lengthen the course with a Section "1.5" on the raw math topics being dealt with (Set Theory and Category Theory) plus ones the student will certainly bump into if they ever find themselves having to deploy MapReduce in production...</comment></comment></comment>


Show HN: OpinionatedC – Because ObjC should have inherited more from Smalltalk - <AUTHOR> https://github.com/leoschweizer/OpinionatedC

<comment><AUTHOR> Op here.

First of all, let me say that I'm totally aware that with Swift lurking around the corner, Objective-C is far from being the cool kid on the block. However, the latter is not going away anytime soon, and as long as Objective-C code has to be written and maintained, there is a need to produce readable and succinct code.

During the past year, I've basically worked full time with Objective-C. Since I use the excellent ComponentKit (Objective-C++) to build app UIs, it wasn't really practical to switch to Swift. So I was sitting there, stuck with Objective-C, and coming from a Smalltalk background, I couldn't help but notice the influences it took on Objective-C. But I also couldn't stop noticing where brilliant design decisions didn't find their way from Smalltalk to the Apple world.

That's why I created OpinionatedC.

The thing I was missing the most was the super-immersive and highly-consistent Smalltalk collection API. In Smalltalk, most of the time it doesn't really make a difference if you work with an Array, an OrderedCollection, a Set or even a String. In ObjectiveC, it does. That's why the focus of OpinionatedC is clearly on collection extensions at the moment.

P.S.: I'm aware of many of the alternative libraries that offer a similar feature set, like Undersocre.m or ObjectiveSugar (or even ReactiveCocoa - which is great but a really big dependency if you just want the kind of extensions offered by OpinionatedC). However, none of those did really convince me. Don't get me wrong, they are great libraries, and badmouthing them is the last thing I want to do. But ultimately, I decided to build my own alternative anyway ;)</comment>


Sneak peek at Red on Android - <AUTHOR> https://www.red-lang.org/2018/04/sneak-peek-at-red-on-android.html <comment><USER2> I'm a little confused about Red, which is a language I've been keeping an eye on for a while. They seem to be trying to target practically every type of development on every platform, with an incomplete language and a very small (no?) team. Also, recently there was an odd ICO tangent, where it's unclear how much money they raised. It smelled a bit opportunistic to me, and I would have expected recent news to tie into the ICO promises... But, compared to most of the rest of the ICOs it might still be one of the least dodgy.

<comment><USER3> > a very small (no?) team

"very small" doesn't mean "not proficient".

> there was an odd ICO tangent

The main purpose of which was to raise enough money for hiring new team members (which, as you pointed out, is "very small").

> They seem to be trying to target practically every type of development on > every platform

And results so far are great, considering that language is in alpha version: Android support (which means Java bridge, there's also a prototype for .NET one [3]), native GUI backends and declarative DSL for UI creation, low-level DSL for system programming and much more (read full description on website), fitting in ~1MB executable and, perfomance-wise, comparable with other scripting languages in speed (while having zero optimizations).

> it's unclear how much money they raised

Certanily enough to continue development with confidence. During ICO, all tokens were sould out. You can roughly calculate the cash value by yourself with ETH/USD ratio during ICO period and RED/ETH ratios for each round of exchange.

> I would have expected recent news to tie into the ICO promises

I suggest you to check recent articles on red-lang.org. ATM Red Foundation is working on establishing rules for retroactive community rewards and launching website for monthly reports. Core team progresses towards 0.6.4 release and adjusts future roadmap.

As for /C3 project promises - the team already have a working prototype for wallet Dapp [1], and, per recent announcement, should start on Ethereum node wrapper ASAP. These two goals were set for Q1 2018 (see p.11 in the whitepaper [1]).

[1] : [https://github.com/qtxie/red-wallet](https://github.com/qtxie/red- wallet)

[2] : [https://ico.red-lang.org/RED-whitepaper.pdf](https://ico.red- lang.org/RED-whitepaper.pdf)

[3] : [https://github.com/red/red/tree/master/bridges/dotnet](https://github.com/red/red/tree/master/bridges/dotnet)

<comment><USER4> Thanks for those answers. Let me add something for helping the visually impaired who have troubles reading the Red blog. Here is a simple Red script to retrieve information from the Red blog, then calculate and display (with a color fade-in effect) the upper bound result of the RED tokens sales:

        Red []

        page: read https://www.red-lang.org/2018/01/red-here-we-go.html

        parse page [
            thru "Private investors" thru "(" copy angels to ")"
            thru "open rounds"       thru "(" copy public to ")"
            thru "Private Investors" thru ">" copy angels-price to "RED"
            thru "Open round"        thru ">" copy public-price to "RED"
        ]
        angels: to-integer trim/with angels ","
        public: to-integer trim/with public ","
        result: (angels / load angels-price) + (public / load public-price)

        view [
            title "Token Sales Result"
            below
            text 300 "And the (upper) bound sales result (in eth) is:"
            h1 300 center bold beige beige rate 5 data result
            on-time [
                ff: face/font
                repeat c 3 [ff/color/:c: ff/color/:c - pick 4.2.3 c]
                if ff/color = black [face/rate: none]
            ]
        ]

This short example relies on two eDSL, one for parsing data, one for building a GUI. Such built-in features (not requiring any library) shouldn't be that bad for an "incomplete" language, right?

<comment><USER2> I assume "visually impaired" was a little jab at me, well, I must be really blind, because having read the blog posts it's still unclear to me how many tokens were sold and how much money was raised.

<comment><USER5> [https://www.red-lang.org/2018/01/red-here-we-go.html](https://www.red- lang.org/2018/01/red-here-we-go.html) shows the complete breakdown of token distribution, and is where the data is pulled from in the above script demo.

In a very real sense, we can't think of "money raised" in terms of a country's legal tender (what cryptos call 'fiat currency'). Remember, cryptocurrencies have no jurisdiction. You can see how much ETH was raised, but what that really tells you, we hope, is how much investment interest there was, based on the technology backing the project.

</comment></comment></comment></comment></comment><comment><USER6> Red is super cool, has anybody used Red/System with much success? I've been trying to figure it out so I can play around with it, but I can only get normal Red to compile.

<comment><USER3> If you know C - all it takes to start with R/S is to read language specs [1]. What specific problems do you have with compilation?

[1] : [https://static.red-lang.org/red-system-specs.html](https://static.red- lang.org/red-system-specs.html)

<comment><USER6> Just compiling the file. That's what I'm having trouble with. Is it the same method as normal Red scripts? Is there a compiler flag I need, or just the opening Red/System [] in the source? That's the part that is rough for me. Just a simple Red/System vs Red hello world (including compiler instructions) would be of great help.

<comment><USER3> Uhm...

Red:

        Red []
        print "hello world"

Red/System:

        Red/System []
        print "hello world"

Both are compiled with _. /red -c file_. "Rough", you say?</comment></comment></comment></comment>


Hack for the environment at EcoHackSF - <AUTHOR> http://www.EcoHack.org

<comment><USER2> Speaking of videos, let's also remember to plan for some live streaming and remote hack teams via Google Hangout (or other like service) for the next event! :-)

</comment><comment><USER3> Nice initiative. A pity I won't be in town. It would be nice if you could post some videos after the event. Good luck!

<comment><AUTHOR> Good call - I'll see what we can get together for the big day.</comment></comment>


Art and Technology: Experiencing Artwork in Virtual Reality - <AUTHOR> http://www.artdiversions.com/art-and-technology-experiencing-artwork-in-virtual-reality/ <comment><USER2> this sounds exciting, although i cannot think it could ever replace a real, live experience to it's core.</comment>


Great quotes from Bill Gates, Steve Jobs and Linus Torvalds - <AUTHOR> http://royal.pingdom.com/?p=325

<comment><USER2> RE: Bill Gates, 1983: "We will never make a 32-bit operating system."

I have to admire a guy that makes a mental mistake (or rather, limits himself, as in this case), and then goes full-on to prove himself wrong.

I think if you were to look at quotes of people who failed, you would see shortsighted statements like these, with the huge difference that they never changed their minds. They held their ground all the way down to failure (Sun comes to mind, there are countless others).

So I see these statements here as badges of honor of these greatly successful people. It takes a big man to say something and hold your ground, but it takes an even bigger man to recognize you were wrong and then pursue a course of action that contradicts what you used to think. Not only that, but with the conviction that they have. Cool quotes.

PS: And let him who has never guessed wrong cast the first stone.

PS2: The Linus quote about masturbating monkeys made me spit out my coffee :-)

<comment><USER3> The list has a BIT of bias against Gates. Jobs gets to be humorous and bright and dead-on. Linus gets to be hilarious and geeky. Bill Gates gets to be evil and dead wrong.

<comment><USER4> Yes, I read that too. There are some pretty classic Gates quotes, but many weren't on there. My favorite: "Be nice to nerds. Chances are you'll end up working for one."

<comment><USER3> Nah, that's not him. I forget who it's cited to, but that's a misquote.

Doesn't make it a lie.

</comment></comment></comment></comment><comment><USER5> I completely lost interest when I understood that the only quotes about Bill Gates are those selected to make him look like a fool. How original another hit job on Bill by some computer cheerleaders, yeah! I didn't even continue to the Linus ones, there is no point.

</comment><comment><USER6> The quote "Do you pine for the days when men were men and wrote their own device drivers?" by Torvalds is not from 2001. Its around the early 90s.

<comment><USER7> Exactly.

      From: email@example.com (Linus Benedict Torvalds)
      Newsgroups: comp.os.minix
      Subject: Free minix-like kernel sources for 386-AT
      Message-ID: <email@example.com>
      Date: 5 Oct 91 05:41:06 GMT
      Organization: University of Helsinki

      Do you pine for the nice days of minix-1.1, when men were men and wrote
      their own device drivers? Are you without a nice project and just dying

</quote> <http://www.educ.umu.se/~bjorn/linux/misc/linux-history.html>

2001 is a dead-tree version's reference:

 _Torvalds, Linus and David Diamond (2001). Just for Fun: The Story of an Accidental Revolutionary, Collins._ </quote> <http://en.wikiquote.org/wiki/Linus_Torvalds>

By the way,

 _Talk is cheap. Show me the code._ </quote> <http://lkml.org/lkml/2000/8/25/132>

This quote is not from 2006 but at least 2000.

</comment></comment><comment><USER8> My favorite of all of them, from Linus:

1996

Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen an angry penguin charging at them in excess of 100mph. They'd be a lot more careful about what they say if they had.

</comment><comment><USER9> "Talk is cheap. Show me the code." is my favorite quote of all time and of all people.

</comment><comment><USER10> I believe OS/2 is destined to be the most important "operating system, and possibly program, of all time." - Bill Gates, 1987

This reminded me of an old t-shirt my dad had, wish I could find it: "Flight 4.0 to Chicago has been delayed, I'm taking off with OS/2"

The 4.0 and Chicago referring to Windows 95.

</comment><comment><USER11> If Richard Stallman sees this, he's gonna be pissed :)

</comment><comment><USER12> yeah lets go bash microsoft more and be one sided again! yeah! hey, hold on, let me read that arrogant and unrealistic post by 37 signals in the meantime...brb...

</comment><comment><USER13> Linus Torvalds is my god now.

</comment><comment><USER14> Great quotes, illustrates the personalities of all three perfectly.

<comment><USER15> Which incidentally also reflects the personalities of the three Operating Systems

</comment></comment><comment><USER16> Looks like Bill and Linus are pretty similar, both hardcore coders with no heart for competition, which explains why they have both been so successful. Steve is just from another planet altogether!

<comment><USER17> To be fair, all of the "world domination" quotes from Linus (oddly, the original didn't make the list) are made with tongue firmly in cheek. It's really not possible or practical for an open souce project to "compete" directly against another in the sense that Microsoft does. At worst, they snipe at each other counterproductively; at best, they share code and reimplement features trying to out-do the other.

The bit about OpenBSD is real enough though. Theo has a long history of being ... difficult, and over the past few years Linus seems to have lost patience.

</comment></comment><comment><USER18> Bill Gates, in 1998:

"Microsoft looks at new ideas, they don't evaluate whether the idea will move the industry forward, they ask, 'how will it help us sell more copies of Windows?'

[...]

One thing we have got to change in our strategy - allowing Office documents to be rendered very well by other people's browsers is one of the most destructive things we could do to the company. We have to stop putting any effort into this and make sure that Office documents very well depends on PROPRIETARY IE capabilities."

Such a great man. o_o</comment>


When will we see a Chrome OS tablet? - <AUTHOR> http://www.techerator.com/2011/11/when-will-we-see-a-chrome-os-tablet/

<comment><USER2> Chrome OS is Google's baby so a Chrome Tablet is very likely. Android is the result of a more aggressive gambit from Google; as part of a short term strategy to aggressively compete against Apple & Microsoft; to maximize momentum and leverage the 'open source' buzzword.

Long term, it won't be surprising to see Google transition it's efforts to Chrome exclusively. Eventually dropping Android support entirely (but they'll do it with nice PR so it looks like they just "gave" it to the open source community).

<comment><USER3> Maybe a dalvik to dart to JS compiler for migration?

<comment><USER4> Probably dart to dalvik and dart to js and united APIs, so you will be able to make single-source apps for web and for android.

</comment></comment></comment><comment><USER5> I am not sure we will. On a question in a video I once saw, it was asked from Eric Schmidt how Google sees the difference between Android and Chrome OS. And his answer was that they see Android for the kind of tasks that don't need a keyboard, and Chrome OS more for devices that have keybord ("traditional" computing tasks). I don't remember the actual wording, but something to that effect.

</comment><comment><USER6> This seems unlikely given that Google Apps, and the web in general, isn't built with touch in mind. They could make that change to the properties that they own but when the whole platform rests on web content, the lack of interfaces built for touch hurts the user experience.

</comment><comment><USER7> I'd rather like to see Chrome and its features getting more tightly integrated with Android. If one could use the Chrome Web Store from an Android tablet, there wouldn't be much left that Chrome OS does better.

</comment><comment><USER8> step one: merge chrome and the android browser.

<comment><USER9> Chrome and Android are different teams. I think it's more likely for Google to sell both Chrome OS and Android tablets than for Android tablets to run Chrome.

</comment></comment><comment><USER10> Is there any indication that anyone wants such a tablet?

<comment><USER11> I would buy one in a heartbeat.

The multi-user aspect of ChromeOS is the best feature for me. Pick up any Chromebook, sign in to Google and everything is there.</comment></comment>


Can you recreate Objective-C in C? - <AUTHOR> https://orangejuiceliberationfront.com/can-you-recreate-objective-c-in-c/ <comment><USER2> > Objective-C under the hood compiles every method call into a call to the > function objc_msgSend().

Well, kinda. You need a family of functions (objc_msgSend, of course, but also objc_msgSend_stret, objc_msgSendSuper, and objc_msgSendSuper_stret), to get this to really work for when you have structures as your return value or are calling a superclass's implementation (or both!). Since the inline assembly that is objc_msgSend really has no idea what the types of function it's calling is, the compiler must call an appropriate function based on the type information it has.

<comment><USER3> This is also why dynamic languages like PyObjC, RubyObjC, RubyCocoa, MacRuby, Nu, and F# had difficulty bridging certain functions and methods, because you have to either create an insanely complex function that's able to take any @encoding and turn it into a runtime type, or you have to shimmy it with guesses for the most common ones like NSRect et al.

<comment><USER4> LuaCocoa author here.

While the objc_msgSend, objc_msgSend_stret, et. al, is an annoying detail, that isn't really the hard part. (And in fact, all the good bridges use libffi to do more direct invocations and avoids a lot of this problem.)

The hard part of bridging is those places where Objective-C introspection is not powerful enough to discover the types of parameters or signatures of functions. Typically, this is all the C stuff.

So for example, Obj-C's runtime introspection cannot tell you the make up of a struct. So it cannot tell you the size of NSRect, NSPoint, NSSize, or the individual data types inside the struct (and the names of each item if you need to access them).

And the Obj-C runtime introspection cannot tell you about what C functions exist and what the parameter types and return types are. So for example, there is no Obj-C runtime way to look up that CGPointMake takes two CGFloat parameters and returns a CGPoint struct.

Also, inline functions (marcos) in C/Obj-C are also problematic for these bridges since they need to call the functions at runtime.

Apple shipped a framework called BridgeSupport in Mac OS X 10.5 which contains XML data for all the things that cannot be determined at runtime. It also contains .dylibs with symbols for inline functions. BridgeSupport is still in macOS today, but it isn't getting much love and Apple keeps (accidentally?) breaking things in BridgeSupport every release.

</comment></comment></comment><comment><USER5> This post seems to confuse "shouldn't it be possible to recreate an Objective-C program in straight C" and "can you recreate the ObjC _runtime_ in C". The answer to the second is no, because of the reason mentioned. You can't jump to an arbitrary function with any set of arguments and get the right calling conventions in C. But you can easily _call_ objc_msgSend from C; you just need to cast it to the right function signature first.

The real problem is that there's also no way in C to express the ObjC metadata properly. You could in principle register all the classes/protocols/methods at run time, I suppose, but that would be slow and gross.

<comment><USER6> It's certainly not slow and gross, it's in fact how you should implement a proper dynamic language. lua, potion or self e.g. did it this way. Without any assembler or ffi tricks. apply in C is easily doable if your data is tagged.

</comment></comment><comment><USER7> Ok, maybe I'm missing something, I'm not C nor Objective-C dev but...

Language is just a specification, right? Which is just a document.

Then you have to implement that language using that spec: interpreter, compiler, VM, runtime, whatever.

So I was always under impression that you could implement any language in any other language (almost; sometimes with the help of another, more low-level lang, say assembly, C etc.).

It is like saying "Java has no Tail-Call optimization (yet), hence you can't implement Scheme (which requires TCO) in Java". Surely you can! Just use trampolines or even use your own stack and calling convention.

What am I missing?

<comment><USER8> I think what you are missing is that while any Turing complete system can solve the same problems as any other, not all programming languages have the same functionality. An easy example is that some languages are typed and some are untyped. Some have objects (Objective C) and some don't (C). Can you replicate the functionality of Objective C in C. Apparently not completely.

<comment><USER7> But that is my point: if host language doesn't have feature X, you still can implement that feature yourself, can't you?

If host language is untyped, then write your own type system.

Another example: Java has no co-routines, has no continuations, but Kotlin (written in Java) does. They compile Kotlin code with co-routines into finite state machines in Java.

</comment></comment></comment><comment><USER9> BOOPSI is another one of these message based object oriented systems tacked onto C, but without the convenient pre-processor. It was introduced with Amiga Workbench 2.0, its developers supposedly impressed by NeXTSTEP. I think it's worth having a look at if you know C and are thinking of how to architect an object oriented system.

</comment><comment><USER10> It's worth pointing out that you can in fact forward function calls using GCC builtins, although not in clang without adding some assembly.

To quote the API documentation on Constructing Function Calls: "Using [built- in functions], you can record the arguments a function received, and call another function with the same arguments, without knowing the number or types of the arguments." [1]

[1] [http://gcc.gnu.org/onlinedocs/gcc/Constructing- Calls.html](http://gcc.gnu.org/onlinedocs/gcc/Constructing-Calls.html)

</comment><comment><USER11> This goes into a lot of detail on all this [http://phrack.org/issues/66/4.html](http://phrack.org/issues/66/4.html)

</comment><comment><USER12> You can use dlopen()/dlsym() to replicate something like objc_msgSend(). That's what I was doing for AppSketcher on BeOS.

<comment><USER2> I don't quite follow how you're using the functions in dlfcn to replace the Objective-C runtime?

</comment></comment><comment><USER13> "C is a language that is turing-complete. So is Objective-C. So shouldn't it be possible to recreate an Objective-C program in straight C?"

Major misunderstanding about turing completeness.

A language is so much richer than simply enabling you to write a map from inputs to outputs. Sure you could probably rewrite my Haskell program in Fortran in the sense that the Fortran program produces the exact same outputs for any given inputs...but it's hardly convincing to me that you "recreated" my program in Fortran after dropping my monad transformers and lenses.

Regardless, you wouldn't even be able to generally _prove_ (assuming you lack dependent typing) that your program is functionally equivalent to mine (since this is undecidable).

<comment><USER14> Yup. To think of it another way: one way of "recreating a Foo program in Bar" would be to write a Foo compiler or interpreter in Bar, and then use that interpreter to run your original Foo program. Problem solved!

</comment></comment><comment><USER15> The GNU Objective C runtime can be implemented in C.

      [object method: args...]

compiles to (more or less)

      IMP tmp = objc_msg_lookup(object, @selector(method:))
      *tmp(object, @selector(method:), args...)</comment>


Ripple co-founder is now richer than the Google founders on paper - <AUTHOR> https://www.cnbc.com/2018/01/04/ripple-co-founder-is-now-richer-than-the-google-founders-on-paper.html <comment><USER2> The thing that makes me bearish about Ripple's price is that so little of the currency is in the hands of the public. From what I've read, total amount of XRP is fixed at 100B, but it seems like only about 1.3B units are in actual circulation, with the other 98.7B units held by Ripple Labs, the founders, or institutional partners. ~37B is 'held' by these entities (mostly the founders I think), and another ~60B is locked up in smart contracts to slowly release these remaining funds to these actors at a rate of up to 1B per month.

I find it concerning that so many people are valuing Ripple off the 'market cap' because the 'true' circulating supply is much less than the commonly used figure of 38B. If the 'true' circulating supply is only 1.3B, what will happen when founders and partners start to cash out their ~30x greater stake then what is currently on the market? Can the market absorb 30x more supply?

Does anyone have a good source on what amount of Ripple is held by the 'public' (vs those with direct business relationships with Ripple Labs)?

Disclaimer: I'm long Bitcoin, and not a Ripple expert. Have been a detractor for several years: don't like the technical design, reliance on network effects, and amount of centralization.

<comment><USER3> Ripple is for people that prefer debt based money over equity based money and lack the imagination to understand that a ledger entry is money. For those in debt that enjoy being a debt slave, buy Ripple. For those that want to end debt slavery buy pretty much anything else. Bitcoin would go a long way, but Monero is great as are many of the others.

<comment><USER4> Ripple is for people that don't have a clue what any of those words mean. I see people all around me investing in Ripple, because 'it's the next Bitcoin.' These people haven't invested in or even paid attention to crypto or any other market in their lives, but now they're experts because they did 'research' over the weekend.

</comment></comment></comment><comment><USER5> There isn't any depth to the ripple price. If I created 1 trillion digital yakitori coins and I got my father to buy 1 yakitori coin for $10, I am theoretically worth about $10 trillion. "Theoretically". Will journalist at cnbc do an article on that?

Is it me or are the media pushing out a ridiculous amount of clickbait lately? Or am I just more aware of it because of HN.

What's crazy is this isn't journalism. The article comes off more as a paid advertisement for ripple than an article.

<comment><USER6> According to coinmarketcap.com[0], the traded volume of Ripple today was 8 billion USD. That's a bit better than your Yakitori coin.

I am a bit confused about the volume of e.g. Amazon on Yahoo Finance[1], which is either 3 million or 3 billion USD.

So if such calculations are allowed/typical for someone like Jeff Bezos and his AMZN shares, why wouldn't it be for a cryptocurrency?

[0]: [https://coinmarketcap.com/currencies/ripple/#markets](https://coinmarketcap.com/currencies/ripple/#markets)

[1]: [https://finance.yahoo.com/quote/amzn/](https://finance.yahoo.com/quote/amzn/)

<comment><USER3> Wash trading does wonders for exchange numbers.

</comment></comment></comment><comment><USER7> Ripple is certainly an interesting technology to have emerged in the Blockchain sector and one of the few which has serious commitments from outside relevant parties.

This has come with compromises, and while I do applaud their business acumen and look suspiciously at their centralization, it's honestly out of my mind how it could be valued at such a high price and I'm not so sure that market capitalization can be a valuable indicator, due to their centralized approach, both in functioning and ownership.

Let's see where all this goes in the following months, it'll be a fun ride

<comment><USER8> ICOs in general will see a big correction once the SEC decides to bear down on insider information and compliance amongst the larger investors in these fundraises.

The case, in greater detail, is made here:

[https://medium.com/@seiso_matt/investor-liability-for- icos-c...](https://medium.com/@seiso_matt/investor-liability-for-icos-could- be-downturn-catalyst-e902ffdb9eeb)</comment></comment>


Credit Suisse scandal shakes Zurich's elite - <AUTHOR> https://www.swissinfo.ch/eng/-spygate-_credit-suisse-scandal-shakes-zurich-s-elite/45280086 <comment><USER2> Matt Levine had written about it before in his excellent _Money Stuff_ column on Bloomberg:

> > [Thiam] was hosting a new year's drinks party.

> > Among his 60 or so guests were many locals from the Zurich suburb of > Herrliberg, along with a clutch of top Credit Suisse executives and his new > neighbors -- Iqbal Khan, the bank's wealth-management chief, and his wife.

> > Before long, it all went wrong. A remark by Khan to Thiam's partner set > off a bitter feud between the two alpha males. The guest had insulted the > state of the garden, according to a person who was there. Later, Thiam > tapped Khan on the shoulder and asked for a word. The two went downstairs > and argued before later resurfacing.

> "A bitter feud between the two alpha males" over the state of Thiam's > garden, I love it, investment banking is the best. For a while, some people > thought that this scandal might even take down Thiam, and I can't imagine a > better reason for losing the high-profile and lucrative top job at a global > bank than "I had to defend the honor of my garden."

[https://www.bloomberg.com/opinion/newsletters/2019-09-23/mon...](https://www.bloomberg.com/opinion/newsletters/2019-09-23/money- stuff-we-wants-a-new-boss)

[https://www.bloomberg.com/opinion/articles/2019-10-02/the- tr...](https://www.bloomberg.com/opinion/articles/2019-10-02/the-trades-will- be-free-now)

<comment><USER3> Matt Levine is the man.

</comment></comment><comment><USER4> Credit Suisse's website should display a counter with the heading: "Days since last Credit Suisse scandal".

</comment><comment><USER5> > the contractor who acted as a middle man between Credit Suisse and a private > investigation firm took his own life.

Damn. I wonder whether there was any foul play involved, or just too much pressure to handle.

<comment><USER6> Common sense says there is usually a LOT of foul play among high ranking banking officials.

<comment><USER7> Seriously there is some sort of amnesia effect going on. The rate that banking execs get in trouble closely matches mafia families.

<comment><USER6> Also their suicide and accidental death rate...

</comment></comment></comment></comment><comment><USER8> Here's [1] an article about JPMorgan doing similar employee surveillance starting in 2009.

[1] [https://www.bloomberg.com/features/2018-palantir-peter- thiel...](https://www.bloomberg.com/features/2018-palantir-peter-thiel/)

</comment><comment><USER9> I wonder if Mr Khan and Mr Thiam are still living next to each other and if Mr Khans view of the lake is still being blocked by the two trees.

What is more astonishing is amount of money these guys manage is measured in the Trillions of USD.

</comment><comment><USER10> If anyone is curious about why they fought in the first place, apart from work rivalry, I came across an article that explains. It is because Khan bought the house next to Thiam and leveled it. Took his sweet time, 2 years or so, to build a new house. I can see how continuous construction for two years can be very annoying.

</comment><comment><USER11> Skimming though the article did not explain what the scandal is about.

<comment><USER12> The CEO of Credit Suisse was accused of hiring an investigator to follow around a former executive who went to rival UBS. The "scandal" is that Swiss bankers are supposed to be too Swiss to do such things. The irony is that neither the CEO nor the executive are actually Swiss because high finance these days knows no nation.

<comment><USER13> Iqbal Khan is Swiss

</comment></comment></comment><comment><AUTHOR> Additionally, this article has a lot more background on the scandal:

[https://www.bloomberg.com/news/articles/2019-10-01/thiam- and...](https://www.bloomberg.com/news/articles/2019-10-01/thiam-and-khan- fought-at-a-party-it-only-got-worse-from-there)

</comment><comment><USER14> The tone of this article is incredibly provincial for something published on HN...

It's seems to be nothing more than mundane chit-chat with not so much of interest outside Zurich social casting.

</comment><comment><USER15> The article is light on details of this spying, I'd be curious what they did. Followed folks? Pushed malware to phones ala NSO?

</comment><comment><USER16> Does Switzerland have any future? It's no longer a bank haven for rich Europeans evading taxes nor 3rd world dictators, its banks don't show entrepreneurial spirit in finding and investing into high-potential startups, rather to well-connected wantrepreneurs, there are no easy money to be made in Eastern Europe/Russia any longer, and its conservatism is likely going to prevent them from making necessary changes until the decline is felt in upper strata of society.

<comment><USER17> Switzerland has some of the largest corporations in the world in the pharmaceutical industry, and they're by far leaders in the watchmaking industry. Banking isn't the only business they rely on.

<comment><USER16> I know about Basel and its pharma industry that is still top-notch, but as for banking they seem to go down rather quickly even if the effect is not going to be felt for the next decade outside negative interest rates. As for watches, I am not sure that is very relevant since smartphones, outside quickly converting expensive watches into cash while on the run from authorities...

<comment><USER18> > _...as for banking they seem to go down rather quickly..._

I do think that Switzerland might have a problem with banks soon or later, but currently I don't see such situation clearly developing (rather more in Germany with Commerzbank & Deutsche Bank?).

</comment></comment></comment></comment><comment><USER19> Does this have any connection to the "Spygate"[0] story in the US?

[0] [http://archive.is/PxYXO](http://archive.is/PxYXO)

* The facts of this story are still widely disputed beyond what the Wikipedia article shows.

<comment><USER20> It does not appear to be related. As a side note calling the US Spygate a 'conspiracy theory' on wiki seems a bit disingenuous. It'll all come out eventually and be interesting to see how history views those events... 'OCONUS lures', foreign intel collusion, information laundering through intel (push & pull) and all. It seems very fishy, looking forward to the release of the facts. From my rather deep research I'd put it more in the plausible but, unverified category rather than full blown 'false conspiracy theory'.

<comment><USER19> I agree that the article doesn't reflect the reality of the situation. One must understand that the Wikipedia acticle's content is controlled by gatekeeping-editors who collectively agree on what they want it to say. Trying to change the narrative there is an uphill, literally rigged battle.

I am also suspicious that reporting on this new "spygate" story might be an attempt to muddy the SEO waters.

</comment></comment></comment><comment><USER21> An apt reminder that we're all just meat bags at the end of the day.

<comment><USER22> Yeah, I'm not including myself with entitled man-children that throw a tantrum when their garden is impugned. This is more of a reminder that our rulers are less ethical, less self-disciplined, and less wise than the average Joe. Why? Because they can be.

<comment><USER23> In what sense are Credit Suisse execs "our rulers"?

<comment><USER24> To the degree that they have money and that money is power.

<comment><USER23> Money may make you powerful in some context, but being powerful doesn't make you a ruler.

<comment><USER25> power implies a degree of control over _something_ , one doesnt need to have 'serfs' to be a ruler of some sort, i am the ruler of my raspberry pi, it will do what i say, and i am in control of it

<comment><USER23> The original question was about what would qualify somebody as "our ruler". I certainly don't see how I am _ruled_ by a Credit Suisse executive, or how I would be ruled by such an executive even as a Schweitzer.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> The Vatican was raided a few weeks ago at the same time AG Barr was visited the Italian intelligence minister. I would bet money this is related somehow.

<comment><USER19> Regardless of an alleged relation, I am very interested to know the details of Barr's Europe trip. I wonder if he will be visiting the FBI office in Ukraine.

</comment></comment><comment><USER27> The swiss rolled over after 9/11\. That's when I knew the supposed and "renowned" swiss "privacy" and "discretion" was bunk.

</comment><comment><USER28> "It's not just that power shifts from one country to another, from one political party to another, from one business model to another, it's this: Power is decaying" \- Moises Naim [The End of Power] The book basically says, it is becoming easier to get power, harder to use it to control others and harder to keep it once you have it.

<comment><USER29> > easier to get power, harder to use it to control others and harder to keep > it once you have it.

curious - if it's harder to use/keep, how is it actually 'power'?

<comment><USER30> You have power but so do a lot of other people. You use your power to serve your best interests, but people with equal or greater power are also acting in their best interests and sometimes that means your power and their power clashes.

When that happens, you don't always get the result you want, but maybe neither of you gets the results you want. Maybe what ends up happening is some kind of canceling out of your respective powers.

If the power dynamics in the market are diverse enough, people with competing interests and ideologies have various forms of power, then this will happen more often than not and you'll see power canceling out power more often than you see power effecting the influence of the people that wield it.

<comment><USER28> Thats a very good answer. Requires one further piece.

Cancellation of competing power occurs as Interconnections Increase. The more connected the world gets the more power bumps into each other.

For anyone interested in addition to End of Power, another good book is Niall Ferguson's The Square and the Tower. It tells the story through different moments in history of what happens to Power(Hierarchies) when they get connected to the Network.</comment></comment></comment></comment>


How to create a HTTP API with Erlang in 10 Minutes - <AUTHOR> http://smyck.net/2013/02/17/how-to-set-up-a-basic-http-api-with-erlang-in-10-minutes/

<comment><USER2> Video.</comment>


The Economic Limits of Bitcoin [pdf] - <AUTHOR> https://research.chicagobooth.edu/-/media/research/stigler/pdfs/workingpapers/24theeconomiclimitsofbitcoinandtheblockchain.pdf <comment><AUTHOR> And here is an overview of the results: [https://marginalrevolution.com/marginalrevolution/2019/01/bi...](https://marginalrevolution.com/marginalrevolution/2019/01/bitcoin- much-less-secure-people-think.html)

Has anyone read any good responses to this?</comment>


The Mega API - <AUTHOR> https://mega.co.nz/#developers

<comment><USER2> The cryptographic integrity of MEGA's user data is important to us. We can therefore not allow you to distribute or make available your client application without going through us. We will perform a code audit of your product and promote/distribute it on our site. You will also receive a share of the revenue that your application generates.

So you do all the work and then you'll receive a share of the revenue?

<comment><AUTHOR> I see your point, but to be fair they also promise promotion.

Whether it's fair depends, I think, on specifics of the product one builds using Mega API, and what's the potential there at all. An alternative client? Backup system using Mega as storage? Collaborative software?</comment></comment>


Ask HN: How to control computer science wanderlust? - <AUTHOR> I didn't really know a better way to phrase this, but I am curious if anyone has a system for, or advice on, controlling wanderlust when it comes to technology or computer science knowledge. For me, I feel like this is more pronounced when I read hacker news and discover new, interesting articles & free text books about topics I find interesting. I place them in my "queue" with a "plan" to investigate and read later, but I usually make little headway towards this goal. It's probably a personal issue, as I tend to do this with books I want to read, shows I want to watch, places I want to visit, etc., but I just thought I would ask and see if anyone has any ways that have worked for them when dealing with this issue. <comment><USER2> There is more interesting stuff to read than you have time to read. No system is going to help with that, or is it really a problem to fix.

There are two problems that you do need to handle somehow:

1\. Out of all the things that I can read/investigate/research, which are the ones that I most should spend my time on (defined by whatever metric you want). The problem here is, you often don't know until you read them, and you don't have time to read them all. I don't have a good answer here.

2\. Keeping the list of things you'd like to read from eating up more time than it should. It can take time from your work, your marriage, or your kids - if you let it. This becomes a matter of not letting it become an addictive or obsessive behavior, or at least of recognizing when it becomes so _and then stopping when you recognize it_.

</comment><comment><USER3> I agree with the other guy, there is way more interesting stuff to read than there is time to read it.

I find it helps to really have a goal when setting out to learn new stuff. Rather than just "I want to learn more about blah" Think "I want to make a grid based turn based strategy game" or whatever, and then figure out what you need to learn to make that happen.

I try to do this, I still have lots of interesting unrelated things I try to learn about too, but I find this overarching goal helps focus everything, even if that goal changes every few months and is not always achieved.</comment>


Why Google is Killing Google Reader: Blame Google+ - <AUTHOR> http://thenextweb.com/google/2013/03/14/former-google-reader-product-manager-confirms-our-suspicions-its-demise-is-all-about-google/?utm_medium=Spreadus&utm_campaign=social%20media&awesm=tnw.to_e0W9O&utm_source=Twitter <comment><USER2> Wouldn't an intermediary phase (6-9 months) of having it integrated in to G+ before killing it have been a smarter move in this case? I check Reader daily, often several times, and never check G+. That would have guarenteed that I, and I suspect most of you, had opened G+ every day and there would have been some spillover...

</comment><comment><USER3> Classic strategy tax behavior. It looks like Google may be well on its way to becoming Microsoft 2.0.

<comment><USER4> If your project can be shot in the head to make room for some VP's darling, even if yours already exists, actually works, and has happy users, expect to see a red laser dot appear sooner rather than later.

Time will pass... then... ___boom_ __. Another dead project.

<comment><USER5> At least it is not as bad as the MS OS/2 2.0 fiasco: [http://yuhongbao.blogspot.ca/2012/12/about-ms- os2-20-fiasco-...](http://yuhongbao.blogspot.ca/2012/12/about-ms- os2-20-fiasco-px00307-and-dr.html)

</comment></comment></comment><comment><USER6> Blogspam.

I'm fed up with this blog, they somehow manage to hijack every news item even though their posts read like something a drunk child wrote.

Source: former PM _speculating_ on Quora: [https://www.quora.com/Google- Reader-Shut-Down-March-2013/Why...](https://www.quora.com/Google-Reader-Shut- Down-March-2013/Why-is-Google-killing-Google-Reader)</comment>


Shop accidentally deletes game built by 12-year-old boy - <AUTHOR> https://www.bbc.co.uk/news/world-asia-46068559 <comment><USER2> How could he not have a backup? No one would write a single line of code without at least git these days. In the least he has learnt one of the biggest lessons in code development.

<comment><USER3> Read the article (again). He didn't have a computer at home and was presumably just using the local storage on a machine in the café.

<comment><USER2> The great thing about cloud repositories is you can access and commit code from anywhere on any computer given permissions though?</comment></comment></comment>


Medieval Knights Fighting Snails - <AUTHOR> http://www.smithsonianmag.com/smart-news/why-were-medieval-knights-always-fighting-snails-1728888/?no-ist <comment><USER2> Reminds me of a deleted animated scene from "Monty Python and the Holy Grail". [https://youtu.be/1oGpR_TP7ME?t=397](https://youtu.be/1oGpR_TP7ME?t=397)</comment>


Ask HN: Which external monitor do you use? - <AUTHOR> Hi guys, I currently use a MacBook pro retina and find myself in need of an external display. Which monitor do you recommend I should get in 24"?<p>Ideally don't want to spend much money on it. <comment><USER2> Do you need one for productivity or some other reason? The only reason I ask is because if it's for productivity from having more screens I stopped using an external monitor and find I am more productive with command-tab. I know there's a lot of purported research suggesting this should not be possible and most people may disagree but I really feel it's true for me and so if you can borrow a monitor for a while you may want to test if this turns out to be the case for you.

</comment><comment><USER3> What's your budget? "Much" is relative.

At work I hook my MBP up to a Dell P2415Q 4K monitor. It's nice because 4K at that size runs well at "Retina" scaling.

At home I have the LG Ultra Fine 5K, but that's a 27".

<comment><USER4> What about same 4k resolution and 27" instead?

Can you work with the MBP closed these days?

</comment></comment><comment><USER5> I use a TV Samsung UN40KU6000 4K and 60Hz, cheap great display. I've prioritized real-state in detriment of retina.

</comment><comment><USER6> HP 23es - awesome design, great contrast, colors and viewing angles and very reasonable price.

</comment><comment><USER7> this resource on PPI for retina/non retina may be useful [https://bjango.com/articles/macexternaldisplays/](https://bjango.com/articles/macexternaldisplays/)

</comment><comment><USER8> Dell S2316M

</comment><comment><USER9> Dell UP3216Q</comment>


Show HN: NimForum – A lightweight alternative to Discourse - <AUTHOR> https://github.com/nim-lang/nimforum <comment><USER2> Nim is awesome - the programming language, the community, and the emerging ecosystem. Live example, for discussing the Nim programming language: [https://forum.nim-lang.org/](https://forum.nim-lang.org/) ; Dominik Picheta (dom96), the main author of NimForum, is one of the core Nim language developers and is one of the people making the Nim community so awesome. Thanks, Dom.

The Nim developers practice dogfooding, and NimForum is one result of that practice. I haven't had much mileage with this new version (the actual Nim forum was updated just a couple of days ago), but the previous revision was incredibly fast and responsive, and had the feature of running example code within the forum. The usefulness of this feature in a programming language forum cannot be overstated -- I think it shortens the average discussion thread by 50%, and makes it way more useful to boot.

This newer version looks much better but has two issues compared to the previous one: (a) it won't run example code within the forum, and (b) it won't work without JavaScript. IIUC the first will be solved shortly, the second might take a little more time (but ... if you can just run the older version in the mean time if it bothers you).

<comment><AUTHOR> I didn't realise the ability to run Nim code on the forum was such a coveted feature. I did initially plan to reimplement it for the new forum (the "Run" button is there, it just needs the logic), but sadly I ran out of time and decided to prioritise other things.

I've thought about continuing the non-SPA nature of the original forum, but with Araq's new Karax framework being available I couldn't resist using it (and of course Araq really wanted me to as well). Even though the forum doesn't run without JS I do still think this was a good decision. In the long run we can probably render the page on the server side, because the front end is written in Nim this should be fairly simple.

<comment><USER2> For sure, the new version is much more aesthetically pleasing and (if JS is enabled) at least as functional. I wasn't trying to criticize anything, just point it out as a matter of fact. I think it's a good decision too, even though I generally like non-js sites. Did you verify that Google and DuckDuckGo manage to index the forum topics? That would be my concern, much more than the "no JS, lame" crowd.

Every programming language forum has, in about 80% of the answers including a code sample, a disclaimer of the ".. or something like this, I didn't actually try to run it" \-- and usually the answer also has a type, missing import/include, etc - which makes it less useful for newbies, even though it's usually helpful enough to more experienced users.

The only languages for this isn't true (that I've seen) are the APL/J/K family, where a complete working answer is usually 2-3 lines so people try it in a console before posting; and Nim since you introduced the "run" button to the older forum.

</comment></comment></comment><comment><USER3> Slightly off topic but... my social circle grew concerned about our privacy some years ago and some of us, including myself, really didn't want to continue using a 'private' Facebook group. After a fair bit of trial and error we wound up using a vanilla Discourse image on some AWS provider. It's turned out to be the best think we've done for our friendships in decades.

<comment><USER4> Can you share more on how you use it?

<comment><USER3> I'm not a web guy so I'm not 100% familiar with the details but as far as I understand it's nothing more than a vanilla Discourse image from an outfit called bitnami running on the smallest instance available on Amazon... and absolutely nothing else.

Presumably it's what discourse looks & acts like before people wrap their business logic / webpage around it.

<comment><USER4> oh I didn't mean from the technical aspect. I meant socially, how it works. What kind of things your friends post there, how often you go check what's up with them, with type of discussions you have there etc'.

<comment><USER3> I don't use any other social media. So I post everything that pops into my mind, news that I read elsewhere, things that go in my life, and often stuff that's much more personal than I would have ever posted anywhere else. The discussion is much the same as what I suppose people have on Facebook, Instagram or whatever... though it's orders of magnitude more civil and reasonable.

Roughly half the group has also abandoned all other social media, while the other half occasionally act as a Facebook diode by posting worthy or important things they might come across.

As the group now lives in several different countries on different continents, having a mechanism that helps us work around time zone constraints which isn't an unmanageable tangle of email chains is hugely beneficial. It's remarkable how making things easier to keep track of wound up facilitating a lot more discussion.

Also as it's just us we have no constraints concerning thread life cycles. So when something occurs that relates to our discussion in some ancient thread it's not a problem to revive it. So we've got threads that run over the course of five years.

<comment><USER5> How much do the connections between the people in your friend group overlap?

How do you deal with people you're connected with but not necessarily others in the group?

Just thinking out loud. Thanks for sharing!

<comment><USER3> Everyone in the group has known each other since the late seventies, we just don't live in the same places anymore. It's just us and, except for a couple of deaths, the group hasn't changed size in a couple of decades. We haven't and wouldn't invite anyone else.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> This is great but I wish developers would get away from naming software based on the language it's coded in, in general. It's purely a public relations thing but I think the practice creates an impression of valuing process over product, and conceptually ties a product to a particular language ecosystem as a sort of implicit presumption.

<comment><USER7> Libraries I don't mind: how much time do you really want to spend naming the 394th serialization library?

But for products aimed at end-users? Absolutely don't name it after the language it's written in.

To play devil's advocate for a moment though: this is the software used to run the forum for the language Nim. If you've ever been to the Nim forums, this is a version you can run yourself. Maybe that makes the name a bit more reasonable?

<comment><AUTHOR> I do agree that NimForum is a bit of a lame name for end-users. The initial NimForum implementation was very much intended to only be used for the Nim community, with this new version I wanted to make it possible for others to use it as well. I have thought about creating a new identity for this project, but I couldn't come up with a good name on the spot (or at least one that others liked), so for now I just decided to keep the old NimForum name.

Certainly if there is interest I will happily consider rebranding.

<comment><USER8> What about NimbleForum? Still keeps the Nim reference, while also giving the impression of a fast and light forum.

<comment><AUTHOR> Hehe, good idea, but that clashes with the name of our package manager: [https://github.com/nim-lang/nimble](https://github.com/nim-lang/nimble) :)

<comment><USER7> How about Jack, because he's nimble and quick and jumped over the candlestick?

</comment></comment></comment></comment></comment></comment><comment><USER9> The D language forums:

        https://forum.dlang.org/

are powered by DFeed, written in D:

        https://github.com/CyberShadow/DFeed

<comment><USER10> Just a note: Those links aren't clickable :(

<comment><USER11> I clicked them just fine (??).

</comment></comment></comment><comment><USER12> Thanks, this is the first thing I've seen actually implemented in Nim. Will be interesting too look through some actual code.

</comment><comment><USER13> Having had only the briefest of looks at Nim (the last 60 seconds), it seems most comparable to Go - correct? Anyone more clued up feel like contrasting the two?

<comment><USER14> I'd say go is to c as nim is to Pascal would be one approximation. But that doesn't really do justice to nim's power in the form of meta/compile time programming and such.

<comment><USER15> I had the impression Nim was Python in fast.

<comment><USER16> Some of the syntax is similar, but similarities end there. Nim was inspired by many languages: Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon, C# and Pascal.

</comment></comment></comment></comment><comment><USER17> The forums seem simple, pleasant and fairly snappy to navigate.

I've recently been looking at 'head-less' CMSs. Does anyone know of forum software that separates the head from the backend via a well described API? I'd like to be able to embed a forum into a front end application that I already have, so having a 'head-less' forum would be pretty useful.

<comment><AUTHOR> NimForum does exactly that. The API probably isn't as stable as it could be though. Discourse could be another alternative for you.

</comment></comment><comment><USER18> I wonder why sqlite? Isn't quite limiting for a client-server app?

<comment><USER19> What I'm interested in is why write all of your code for a single database? Are there no query level abstractions for Nim? Even a basic ORM or even a query-builder would allow portability across systems.

Writing for a single db is a bad idea.

<comment><AUTHOR> Indeed, Nim badly needs a good ORM library. Maybe you'd be interested in creating one? :)

<comment><USER19> ORMs are extremely simple to implement. I've written them a few times in Java for simple things. Primarily you need something equivalent to reflection so you can read from and inject into any properties that an object might contain. Does Nim have this kind of feature set?

<comment><AUTHOR> I've never written one, I always thought it's one of those things that sound simple but actually require a lot of careful thought and design.

Nim doesn't do reflection, but it has some of the best metaprogramming features including static introspection tools which are far superior to reflection IMO.

<comment><USER19> It just takes some opinions. If you haven't developed any yet just take someone else's opinions. Eloquent is a good start for where to look. The QueryBuilder frame is a nice platform that makes available many nice features.

</comment></comment></comment></comment></comment></comment><comment><USER20> Why would forum software be a good use case for an SPA?</comment>


Should you sell your private company shares on SecondMarket? - <AUTHOR> http://thisweekin.com/thisweekin-startups/this-week-in-startups-86-with-barry-silbert-ceo-of-secondmarket-inc/ interview with SecondMarket CEO starts @ 15/16 minutes in.... really honest discussion on how the secondary market for private company works, the problems, the drama, etc.<p>Barry was UBERhonest <comment><USER2> Jason, I'm a huge fan of TWiST and I think the show is an amazing resource.

That said, next time you post an episode could you please submit a link to just the youtube video and at least have the marker positioned to the point in the interview that's about the title of the post.

I don't feel like watching this whole episode, and I might be wrong but episodes generally include a ton of fluff...

<comment><AUTHOR> I debated youtube vs. thisweekin.com and went with our site since it has show notes and youtube doesn't.

<comment><USER3> Righhhhhhht... Did you keep a straight face while typing that? Any frequenter of reddit or hn knows this is blog spam, plain and simple.

Oh also, I heard you are looking to fund some companies. I don't want one of your domains, but I do want advice and money. Happy to send a deck with some numbers... No NDA of course.

<comment><AUTHOR> OK, so to recap:

1\. Embedding an 80 minute video you made, with considerable cost I might add, on your own website is now spam?

2\. reddit is now the gold standard of internet etiquette

3\. the new best practice for to courting angel investors is courting them with trollish comments

rock on

</comment></comment></comment></comment><comment><USER4> Could someone describe SecondMarket? Particularly, I don't understand how the stuff traded there is illiquid in some context, but evidently not in _their_ context.

</comment><comment><USER5> This was a great episode. Cool when can identify world changing shifts as they are happening.</comment>


Texas Bitcoin Mining Startup Gets $50M from Peter Thiel - <AUTHOR> https://fortune.com/2019/10/15/what-is-bitcoin-mining-layer1-peter-thiel-crypto-investment/ <comment><USER2> Something I don't really understand about bitcoin: why isn't bitcoin tied to the cost of electricity?

If a bitcoin costs $8000 to buy on an exchange but I can mine one using a $300 graphics card and $4200 of electricity, why doesn't 1BTC cost something closer to $4500? Does that 2x delta account for miner salaries / rackspace rent / AC bills?

<comment><USER2> Answering my own question after some research — I think the main answer is that the probabilities are so sparse that there's no point mining unless:

(a) you have a large amount of hardware, which will incur a large capital cost that puts up such a large barrier to entry only a few orgs can realistically participate; or

(b) you join a mining pool, whereby your rewards for mining are diluted such that it's more cost effective to obtain BTC by spending dollars, than it is to mine your own.

[https://www.coindesk.com/information/get-started-mining- pool...](https://www.coindesk.com/information/get-started-mining-pools)

The premium charged for buying BTC on an exchange (vs the theoretical hardware-plus-kWh costs of mining your own) reflects the market power of the large mining operations' ability to deploy the capital needed to do any kind of fruitful mining.

<comment><USER3> It's a little bit more complicated than just the cost of electricity, since that affects miner profitability more than what a Bitcoin costs on the open market.

If you look at the historical prices, Bitcoin was around $3000 in February 2019, so it's not like the price of Bitcoin and the hardware and electricity costs are highly correlated: [https://www.coindesk.com/bitcoins-price-longest- ever-bear-ma...](https://www.coindesk.com/bitcoins-price-longest-ever-bear- market)

As I said in another post, Bitcoin is a non-sovereign, hard-capped supply, global, immutable decentralized digital store of value. It's an insurance policy against monetary and fiscal policy irresponsibility from governments and central banks globally.

In the world that we live, that's gotta be worth something.</comment></comment></comment>


How antitrust economists are getting better at spotting cartels - <AUTHOR> http://www.economist.com/news/finance-and-economics/21568364-how-antitrust-economists-are-getting-better-spotting-cartels-scam-busters

<comment><USER2> Fascinating article. Goodness knows how you use the technique to spot and individual dodgy trade, as an unlikely price doesn't equal corruption.</comment>


Building an HTML5 Drag & Drop File Uploader Using Sinatra and jQuery: Part 1 - <AUTHOR> http://onehub.com/blog/posts/designing-an-html5-drag-drop-file-uploader-using-sinatra-and-jquery-part-1

<comment><USER2> I'm not sure why he dismisses the FileAPI right away... one of the goals of the Reader according to <http://www.w3.org/TR/FileAPI/> is:

 _User agents should provide a streamlined programmatic ability to send data from a file to a remote server that works more efficiently than form-based uploads today_

 _Example: A Video/Photo Upload App. User is able to select large files for upload, which can then be "chunk-transfered" to the server._

This means that although this XMLHttpRequest2 method is nice, in practice it will still suffer from all the issues that http uploads suffer from at the moment. Chunked uploading, which the W3C spec explicitly supports, would be a much better solution for large files, no?

<comment><AUTHOR> The FileReader API allows you to do some cool things, but I wanted to avoid chunked uploading for a few reasons. First, it's way more complex to handle given the way our app currently deals with files, and second, there isn't nearly as much existing browser support for both the Blob interface and FileReader in general. This post deals a bit with the current state of things:

[http://www.filosophy.org/2010/06/a-state-of-limbo-the- html5-...](http://www.filosophy.org/2010/06/a-state-of-limbo-the-html5-file- api-filereader-and-blobs/)

</comment></comment><comment><USER3> Note the suspicious lack of commentary on which version of IE supports XMLHttpRequest level 2. Is it supported? And is there an elegant way to fallback to the old iframe approach? Conditionally including Javascript files seems to be a poor choice, I'm not sure if I'd rather just stick with the old way, even if it's awkward.

\</comment><comment>--

An aside: I found the "XMLHttpRequest Level 2" name to be pretty funny. I'm not sure why it tickled my funny bone in such a way.

        A wild XMLHttpRequest (lvl 1) appears!
        Engineer uses SendFile... it doesn't seem to be working.
        Engineer is defeated!

        A wild XMLHttpRequest (lvl 2) appears.
        Engineer uses SendFile... it's super effective!

<comment><AUTHOR> To my knowledge, XMLHttpRequest Level 2 isn't supported in any shipping version of IE. I haven't tried IE9 yet, so it might be available there. When building the actual production uploader for onehub.com, I drew a line in the sand and decided not to support any fallback scenarios, at least for the first iteration. If you'd like, fork the uploader on github and hack away :)

<comment><USER3> Thanks. I just might, next time I need to do file uploads... I've been really enamored with Sinatra as of late, and it seems like every side project I do needs file uploading...</comment></comment></comment>


NSA advisory sparks concern of secret advance ushering in cryptoapocalypse - <AUTHOR> http://arstechnica.com/security/2015/10/nsa-advisory-sparks-concern-of-secret-advance-ushering-in-cryptoapocalypse/ <comment><USER2> Discussion about the same paper, but attached to a different article: [https://news.ycombinator.com/item?id=10430367](https://news.ycombinator.com/item?id=10430367)</comment>


Show HN: Milliner - A web app to quickly visually create responsive HTML emails - <AUTHOR> https://www.milliner.app/ <comment><AUTHOR> Co-founder here.

We created milliner to solve a problem we experienced building HTML marketing emails for our clients.

Building HTML emails in 2019 is a bit like building Websites 10 years ago - loads of different email clients with their own rendering bugs and issues.

Getting your email working consistently involves knowing the right incantations (and quality documentation is often hard to find) and multiple rounds of testing.

We knew there had to be a better way so we created Milliner - it has a visual front end which allows you to freestyle add columns and rows, images, text and an engine that converts that to solid HTML and CSS that works in all clients.

What was a process that took several hours (or even days) can now be achieved much faster.

We're two guys bootstrapping out of the London Techhub.

Feel free to ask questions or feedback on the site</comment>


Is Memcached a Good or Bad Sign for MySQL? - <AUTHOR> http://gigaom.com/2009/05/17/memcached-and-an-ailing-mysql/

<comment><USER2> He's getting it wrong (unsurprisingly).

If you just use Memcache to cache the same results you get out of a DB, of course you might as well just throw that RAM at the DB. With any sane DBMS this will result in the same performance improvement.

The problem with _that_ is that it limits you to the amount of RAM you can throw into the DB. The biggest Memcache clusters reach well into the multi- terabyte range.

Secondly, you can use Memcache to store constructed objects which could take many DB calls (or CPU time) to generate. Now you're getting one Memcache hit instead of several DB hits, which is a distinct bonus.

Since it's shared-nothing, Memcache also gives you the ability to massively parallelize queries to many cache servers at once, and get a much quicker overall response than just hammering one DB into the ground.

<comment><USER3> I've never used memcache, but my understanding is that memcache stores the results of queries whereas adding ram to the database will perhaps help it store indexes, tables, and query compiles, but to the best of my knowledge, the results of queries are not stored by DBMSs -- this is why memcache is used.

If my understanding of memcache is correct, throwing more ram at the db won't provide the same performance improvements that memcache will provide.

<comment><USER4> mysql has a query cache, which stores the query and results:

<http://dev.mysql.com/doc/refman/5.1/en/query-cache.html>

<comment><USER5> With the query cache, if you update a single row in one table, all cached queries that involve that table are invalidated, whether or not that row would have affected the result. This makes it almost useless for many sites.

</comment></comment></comment></comment><comment><USER6> From my point of view, memcached isn't a godsend because the database is weak, it is a godsend because it prevents you from trying to do things that no database should be asked to do.

My personal projects use memcached recently, but not for anything interesting. At the day job, we have a particular case where we render a per-user sidebar. The data for the sidebar is volatile, but unpredictably volatile -- i.e. it should be unchanging for the length of a user session except when it isn't, but when it isn't the user requires us to know Right The Heck Now (TM). That data is actually stored on another system, and accessing it requires hitting a web service on the other system. Accessing the web service is, obviously, an overhead, and the service it calls is very heavy. Obviously, big win for us if we can avoid hitting that service on every request for a webpage with a sidebar.

Enter memcached. It is a fairly simple way to keep the sidebars for 3+ app servers synced with each other, and the other system can force-expire the cache if it wants to. This isn't a knock against the database running on the other system -- it doesn't and shouldn't care about what format we use their data in, just that they're keeping the contract about providing it when we ask and pinging us when it needs expiry.

<comment><USER7> How are you having the other system expire the cache?

<comment><USER8> As I've been involved in a similar project, for my part I set up a very simple web service that handled the invalidation. The third-party service only needed to know the user session key or the user database ID, and then send a HTTP DELETE to the relevant API method, and the main app server did the rest.

</comment></comment></comment><comment><USER9> The increase in development for memcached is a good thing since it's a relatively easy and less expensive way to scale. As mentioned in the article, relational databases will be around for a while and were never designed for the kind of scale that many companies require today. It's a proven technology that just needs a boost in certain situations.

The combination of MySQL + Memcached is a great solution to for many small companies to scale.

<comment><USER10> > As mentioned in the article, relational databases will be around for a while > and were never designed for the kind of scale that many companies require > today.

MySQL is not representative of all relational databases.</comment></comment>


The Content Marketing Handbook (2015) - <AUTHOR> https://priceonomics.com/the-content-marketing-handbook/ <comment><USER2> So I recently started helping my team adopt a B2B content marketing strategy, after being kind of removed from the marketing world for a few years...

For a small bootstrapped business, with no writers in-house, fledgeling bare minimum resources starting from scratch with freelancers, the amount of catching up we need to do is staggering. So, so much money has been pumped into churning out articles, videos, webinars, etc etc by venture backed startups. Every conceivable genuinely valuable shareable topic has been sliced and diced a thousand ways into mush. Nothing we could possibly produce comes close to what other teams have already drafted, years ago now.

In my career people often bring me in as the creative "ideas" guy, but this task of coming up with content when there's so much noise to compete with... it's broken me. Never in my life had I stared at a blank canvas and felt so lost. Coming up with absolutely nothing.. every idea just feels like cheap regurgitated garbage.

That's a long way of saying, I think this marketing channel, for B2B at least, is kind of tapped out. Or maybe I'm tapped out. Probably the latter?

<comment><USER3> Content marketer here.

While you're correct that in many mainstream industries, every idea, every keyword, seems to have been exhausted, there are still opportunities for new formats and angles. If there are already exhaustive articles on your core keywords and topics, maybe you don't need to take the article route at all. Maybe you can create something interactive instead - something that leverages your current skills (design and development).

Also keep in mind that while you will have some audience goals ("readers should like and engage with my content"), your more important aim is to meet business goals (attracting traffic and capturing leads). The latter does not necessarily depend on the former. You can edge out competitors simply by ranking better than them or doing a better job of capturing leads - even if the content itself isn't as good.

Another thing I recommend new B2Bs is to focus on building "micro authority". If there are 10 things your product does, focus on being the most authoritative voice on only one of those 10 things first. Even the best-funded competitors can't dig as deep as you can on everything. Better funded competitors are also likelier to chase higher volume keywords that offer more potential rewards. But as a new startup, you can target truly long tail keywords and topics that bigger competitors won't bother with.

While these might not deliver the volume you want, they will help you develop authority, brand recognition, and a stronger SEO footprint.

<comment><USER4> Are you potentially open to consulting? If so let me know what email address I can reach you at or drop me a line - firstname.lastname@example.com. Thx.

<comment><USER3> I'm not taking any consulting work at the moment, but I never mind helping fellow entrepreneurs - will send you an email!

</comment></comment></comment></comment><comment><USER5> What happened to priceonomics? I feel like I used to see their stuff around all the time and then it just stopped?

<comment><USER6> Founder here! Several years back we focused solely on our data content marketing agency referenced in this post. We produce content, but isn't the sort of stuff that's going to end up on hacker news.

<comment><USER5> glad to hear you're still around :)

I'm about to launch a content-based business (technical tutorials) and priceonomics was definitely an early inspiration! Also loved "everything is bullshit"

</comment></comment></comment><comment><USER7> Discussed back then: [https://news.ycombinator.com/item?id=10706228](https://news.ycombinator.com/item?id=10706228)</comment>


Parallelizing Word2Vec in Multi-Core and Many-Core Architectures - <AUTHOR> https://arxiv.org/abs/1611.06172 <comment><USER2> It's worth noting that fasttext, which was made in part by the original word2vec authors, can handle as many cores as you throw at it.

[https://github.com/facebookresearch/fastText](https://github.com/facebookresearch/fastText)

<comment><USER3> The original word2vec, written in C, could utilize all the cores available. It's actually refreshing to read that code, a true one person shop, hard engineering code :)

<comment><USER4> That's not true - they don't lock global weights when updating, so if you have lots of cores and threads, asynchronous updates will result in very poor accuracy, making training useless.

<comment><USER5> The opposite is actually true.

If you train on the big dataset that is produced by demo-train-big-model-v1.sh (which includes news corpora from 2012 & 2013, the 1BN word dataset from statmt, the UMBC web corpus and the whole wikipedia) using only one thread, accuracy on the google analogy dataset drops to 68% (down from ~71.5% when using 20 threads.)

This is due to the learning rate algorithm used: Learning rate is linearly reduced with the number of processed words. When K threads are used, the input dataset is split into K parts, processed in parallel, which means that more parts of the dataset have a chance to influence the resulting vectors in the beginning of the computation (where learning rate is relatively high.)

<comment><USER4> No it is not - as number of cores approaches infinity, the validation accuracy will approach zero, due to the lack of locking of shared memory. There is definitely a sweet spot in the number of cores for the original code, but it is not scalable to infinity. Therefore, it cannot utilize any number of cores.

<comment><USER5> Aligned float updates are atomic in all architectures that matter. Also, unsynchronized parameter updates for SGD have actually been studied in [1], where it was shown that they don't affect performance.

In the limit, performance would indeed suffer as all updates would happen in parallel.

[1] Recht, Benjamin, et al. "Hogwild: A lock-free approach to parallelizing stochastic gradient descent." Advances in Neural Information Processing Systems. 2011.

<comment><USER6> There's another paper describing the "Hogbatch" approach that shows more exactly the effect of adding cores on accuracy: [http://www.ece.ubc.ca/~matei/papers/ipdps16.pdf](http://www.ece.ubc.ca/~matei/papers/ipdps16.pdf).

The summary would be that accuracy per pass suffers slightly, but since the speedup is close to linear for the first dozen or so cores, each pass is much faster to run. The result is that the wall time to achieve a given level of accuracy is much shorter despite the slightly lower accuracy per pass.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> "...and process hundreds of millions of words per second, which is the fastest word2vec implementation to the best of our knowledge." Sweet! Just today I saw someone on the gensim mailing list trying to process 250Gb worth of data feeding it into word2vec [https://groups.google.com/forum/#!topic/gensim/QvSJd4Ma6oE](https://groups.google.com/forum/#!topic/gensim/QvSJd4Ma6oE)

</comment><comment><USER5> 100M words/sec is quite impressive, although this approach does not seem to be able to handle very large dictionaries.

If the authors are reading this, it'd be nice to see the actual accuracy on the google analogy dataset (the paper states it is within 1% of the reference implementation) and the performance on the large dataset produced by demo- train-big-model-v1.sh.

Incidentally, at Yahoo we can learn from a dataset of 1066 Billion Words, on a dictionary of 1.42 Billion unique terms, in 7344" (~145M words/sec.)

<comment><USER8> How?

<comment><USER5> We formulate SGNS word2vec as a distributed graph problem, where nodes are all unique tokens (the dictionary) in the corpus and edges are defined by skipgrams. For skipgram (w_in, w_center), there will be an edge from w_in to w_center.

Tokens are randomly distributed over a set of workers. Each worker iterates over its edges in parallel with all other workers and performs the appropriate computation.

Drawing negative samples is done in two steps. We first draw a worker W from a suitable distribution over the workers and then draw a word from W. The overall word sampling is the same as for the reference implementation (ie, unigram distribution raised to 3/4.)

This work will soon be made public [1].

[1] Stergios Stergiou, Zygimantas Straznickas, Rolina Wu and Kostas Tsioutsiouliklis, ``Distributed Negative Sampling for Word Embeddings''. AAAI 2017.

</comment></comment></comment><comment><USER9> BTW the NVIDIA results they are comparing to are from the previous generation. The current generation has 50% more FLOPS and 33% more bandwidth.

<comment><USER10> Titan-X is the current generation, DeepBench also shows results with Titan-X. The P100 has not been released.

<comment><USER11> Titan X is the product line which has multiple generations, with the Pascal architecture being the latest.</comment></comment></comment>


And then dogs started to think out loud with human voices - <AUTHOR> http://www.nomorewoof.com/

<comment><USER2> Wow, multi-level parallax!</comment>


Show HN: A Script That Creates Numbers Station Audio files - <AUTHOR> https://github.com/Ryan-McBride/numnet <comment><USER2> Certainly impressive, on a technical level. But without the chimes and gongs, Tyrolean lullabies, and all those charming male and female voices reading the numbers... it just doesn't seem to pack that _je ne sais quoi_.

<comment><AUTHOR> I just merged a change that picks a random osx system voice, so now you can hear the numbers read in german, chinese, etc. I guess the next step will be to allow people to set one.

<comment><USER2> Awesome! I'll have to give it a shot, then.</comment></comment></comment>