A startup product search engine I built - <AUTHOR> Several months ago I was looking for cool new startups that might be doing something interesting. I know that there are thousands of startups that are doing cool things, but if you are really looking for a particular type of thing, it's hard to find out if a startup has thought about it and started building it yet.
So I built this thing called UpHunt.
I've collated data from thousands of startups and modern businesses and made it searchable so you can just search for the kind of product that is on your mind and see if someone has made it for you.
Search for whatever product you hope someone has build, or services they might be offering, and see if someone has thought of it and started a business doing just that.
If you are doing something I haven't listed, or know of someone let me know: https://neutrino.typeform.com/to/MJczkK
Right now I only have businesses operating in London, UK, and I do have alot of work to improve it; but I hope to rolling out new data sets in the coming weeks. Let me know if you think your location should be next: https://neutrino.typeform.com/to/zMr14u
You can find it here: https://uphunt.neutrino.io
I'd appreciate feed back on all aspects of the site. Design, content, any ideas you guys might have to make it cooler. <comment><USER2> (Small recommendations) Visiting the landing page, for a search-engine site whose entire purpose is to search for startups, the search bar should not be mid-way down the page. It should be right in the header. Also, instead of the word "Go!" on the search, use a magnifying glass to again help identify it as a search input.

On search results, did you specifically opt not to display logos? It may actually be nice not to have them so focus is placed on mission statement / slogan, but I'd be interested if this omission was intentional.

Overall, seems like a site I'd use if it expanded to the U.S. and other countries. If this site is targeting people interested in products (rather than investors / job hunters) then maybe you could add a feature to subscribe by email for specific search terms. For example, what if I want to be alerted once a month if there are new companies posted that match the term "coffee"? This would be a great addition to help encourage users to return to your site.

<comment><AUTHOR> I've addressed some of the issues you mentioned.

You idea about subscriptions/alerts is a good one. Right now I don't have any kind of work flow except google sheets, so that would be a bit tricky, but I'll bear it in mind for the future.

And yes, the US is obviously on my list of countries to service.

Thanks for the feedback.

</comment></comment><comment><USER3> I think the search relevance is not that great.

The perceived relevance is worth because I am not seeing any signaling on the home page that I will find anything of value to me. Some things that would help: substantiative content, testimonials, well-written value proposition as seen from my point of view.

I have mixed feelings about the descriptions of the companies. Sometimes I think these are the official blurbs they wrote. Some of them are succinct, other ones are buzzwordy, often I get no idea of where these people are in the process. These blurbs are the only way people are going to understand your search results, providing a unique viewpoint will people a reason to use it.

</comment><comment><USER4> The URL for your site is not clickable in your post.

Going to the page, the two sites you currently feature look interesting, but only if you click on the small link at the bottom of the description that says "website". If you instead click on the big link with the name of the featured site at the top of the description, that instead takes you to medallia -- which is probably not where you want to be sending visitors right now.

I could see this as a site that is frequently visited, like producthunt -- once you get a bit more content.

</comment><comment><USER5> Where I can see your site potentially adding value is when you're helping startups gain traffic and ultimately customers. The more you can funnel the right types of people to the startups so they can start gaining traction would be useful. Any content that helps validate that a startup is legit will also be great.

</comment><comment> adam-_- In my opinion you should show all the content by default with filter options. I don't want to search for anything specifically, so there's not much I can do with the site.</comment>


Ask HN: What to do with invoices on a side project? - <AUTHOR>

I want to start a SaaS side project, and of course accept payments.
Do I have to give my clients a proforma invoice or something similar for their accountancy?
Should I create a LLC or something similar?
Thank you. <comment><USER2> Search HN. There are plenty of discussion threads for c corp vs S corp vs LLC

In terms of invoices, depends on a client. Cut a contract, and work with them to specify what they would like. Protect yourself

</comment><comment><AUTHOR> Really, no one?</comment>


Four years of OCaml in production - <AUTHOR> http://engineering.issuu.com/2015/09/17/ocaml-production.html <comment><USER2> This coincides with my own assessment of OCaml.</comment>


YouTube Cancels PewDiePie Show, Pulls Channel After 'Death to All Jews' Stunt - <AUTHOR> https://www.yahoo.com/movies/youtube-cancels-pewdiepie-show-pulls-channel-ad-program-112102296.html <comment><USER2> _sigh_ White guy thinks it's edgy and eye-catching to emulate racism, gets surprised when he gets treated like an offensive racist.

Someone will be more than happy to split hairs about the exact nature of the offensive actions here, and will carefully explain that it's not racist, it's opportunistic self-promotion employing racism. Sponsors don't care, most of the general public don't care and, most importantly, victims of racism don't care about a distinction that has precious little practical difference.

<comment><USER3> I don't understand how it's relevant that he's white or a guy; people that aren't white or male cannot be racist?

Kinda ironic considering your comment is about racism.

<comment><USER2> Well, for one thing you need to understand the difference between racist prejudice and racism. It's quite important.

As for the rest, sure there's black people who are anti-Semitic, but I've never seen one using anti-Semitism "ironically" as a form of self-promotion. This "Look at me, I'm so edgy" behaviour really does seem to be restricted to white people. (At least in the West.)

Want to talk actual racism? Take a look at the habit the press have of giving white people like Ryan Lochte the benefit of the doubt, whilst not extending the same privilege to black lawbreakers like Eric Holder.

<comment><USER3> The difference is that people use the terms "racist prejudice" to justify racism.

</comment></comment></comment></comment><comment><USER4> The stunt wasn't actually anti-sematic. It was just trying to show how ridiculous the world has come to where you can pay a guy on Fiverr $5 to do pretty much anything (while it was in poor taste).

To me, it just shows me how ridiculous our politically correct world has come to.

If I'm not allowed to talk about tragedies without getting fired from my job or having my life ruined, then I guess I will say that they never happened. Anything I'm not allowed to talk about eventually gets silenced. If someone asks, we should just say it never happened.

<comment><USER5> Why not use something like, "Death to all puppies" or "Death to all kittens"? That's a ridiculous thing to have someone hold up. The statement he chose was not ridiculous.

> If I'm not allowed to talk about tragedies

The sign didn't say, "The Holocaust was bad". The sign said, "Death to all Jews". That's not a tragedy, that's a hateful statement.

<comment><USER6> And it wasn't the first time...

 _According to WSJ, Pewdiepie has posted nine videos that include anti-Semitic content since August. Three, the one from January 11 and two others from January 17 and January 22, have been taken down. One of those depicted a man dressed as Jesus Christ saying, "Hitler did absolutely nothing wrong."_

"Ha ha ha -- So edgy -- I'm going to tell my 50 million subscribers -- many of whom who are young children that Hitler did nothing wrong -- Death to all Jews -- Can't you take a joke! SJWs!"

I'm sure it's a complete coincidence that the virulently anti-Semitic Daily Stormer has a special PewDiePie section:

[https://webcache.googleusercontent.com/search?q=cache:h3f6YV...](https://webcache.googleusercontent.com/search?q=cache:h3f6YVxBG7wJ:www.dailystormer.com/tag/pewdiepie/+&cd=1&hl=en&ct=clnk&gl=us)

<comment><USER7> If you spend any time in the darker parts of the internet(like 4chan), you learn that a lot of what trolls do is "for the lulz" and nothing else. My guess is that PewDiePie or his writers frequents one of those sites and so thinks nothing of it. Personally I think it's distasteful and there should be reprocussions, but cancelling his show is a PC overreaction IMO, though I understand many don't know the culture of 4chan and such sites, so I could see why they would disagree.

<comment><USER8> Why is it a PC overreaction?

If a parent sees their 8 year old watching they will get upset. They will look into it and find out Disney is supporting the show. Disney now has to deal with pissed off parents who can say (justifiably) they support anti-semitic content.

This is primarily a children's entertainer.

<comment><USER7> I believe it is an overreaction because I highly doubt he intended to spread hate speech, but just wanted to troll and be inflammatory. I say that because the phrase he said is common on many sites like 4chan. Like I said, I feel there _should_ be reprocussions, but cancelling his show is too much.

<comment><USER9> > I highly doubt he intended to spread hate speech, but just wanted to troll > and be inflammatory

He wanted to do the latter _by_ doing the former. It's not like he didn't realize that the mechanism by which the shock he sought was being created was the message of hate the words would convey.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Thanks YouTube for making the Internet a safespace, because censorship is the best choice of dealing with opinions. Luckily your ministry of truth tactics are backclashing already.

</comment><comment><USER11> What is interesting here is that Jewish are the selected race to be protected on youtube. Some other ones don't qualify. Youtube is so old testament.

</comment><comment><USER12> He should have experimented with signs that said "Death to all Christians" and "Death to All Muslims" "Death to all whites" "Death to all blacks" and see which one would have gathered the most hostility or backlash.

When you've said every curse word under the sun, what's left in edginess but to make jokes about the protected classes of society. Nobody on here seems to be coming to Pewdiepie's defense even though, it's quite easy to compare his jokes here to the ones made by Sarah Silverman Jim Jefferies Louis CK, etc etc. And if Disney would have cancelled a Louis CK show because of a tasteless Jew joke (which he's done many) my bet is we'd see more people come to his defense on here.

Comedy is the delivery and recognition of the absurd. Jokes work best when the audience knows that the comedian says something they would never do that brings a shock.

</comment><comment><USER13> The biggest danger here is that's it's now becoming impossible to satirize Nazism, lest someone get offended. Satire is probably the most powerful weapon against it.

And why is no one worried about the racism inherent in Judaism, God's chosen people, etc? This is a message we force on kids.

</comment><comment><USER14> []

<comment><USER15> I love Milo not because of who he is, but because he pokes the bear that is social convention.

His message is almost entirely abhorrent, but he has his right to do so in a free society. Checks and balances.

<comment><USER16> He has the right in the U.S.A. and it's only due him from the government. Citizens owe him exactly squat. I want him to need ACLU protection and I trust them to protect only the rights we all deserve.

He doesn't have that right in other places. He would be a non-citizen elsewhere, subject to foreigner's rights, except where foreigners get the same rights as citizens. Which is nowhere in the 1st world.

</comment></comment></comment><comment><USER17> what to learn from this? unpopular speech needs protection. google is a private company making money from popular speech. private companies don't care about free speech.

<comment><USER18> Having commercial partnerships with YouTube is not a constitutional right; they have no obligation to keep working with anyone.

<comment><USER19> Youtube made a business decision not to support someone that does not fit into their corporate culture.

The jokes were done in poor taste, and it made bad PR for Youtube/Google.</comment></comment></comment>


Table salt vs. sea salt; is there really a difference? - <AUTHOR> http://www.onlineholistichealth.com/truth-sea-salt/

<comment><USER2> [http://www.energeticforum.com/renewable-energy/984-coral- cas...](http://www.energeticforum.com/renewable-energy/984-coral-castle-ed- leedskalnin-2.html#post10780)

</comment><comment><USER3> What till she finds out there's chlorine in that salt. She'll probably have a stroke.</comment>


Canada's electronic spy agency stops sharing some metadata with partners - <AUTHOR> http://www.cbc.ca/news/politics/spy-canada-electronic-metadata-1.3423565 <comment><USER2> I know I might be biased (as someone directly taking advantage of the Trudeau Government's policies to start new businesses), but I'm becoming more and more impressed by the direction our new government continues to take.

The ministers are actually directing their government to do their jobs correctly. I've never seen a government like this before in either the United States or in Canada.</comment>


Predicting how RNA folds in 2D including Pseudoknots (2013) - <AUTHOR> https://fermatslibrary.com/s/accurate-shape-directed-rna-secondary-structure-modeling-including-pseudoknots#email-newsletter <comment><USER2> Folding is dynamic over the lifetime of the RNA, things like SHAPE are nice but only provide a snapshot. It is still leagues better than simply going by the old school thermodynamics based folding algorithms. A neat way to check out this 'folding space' is to generate all possible structures (possible even for long sequences if you don't include psuedoknots), then do alignments, or integrate experimental data like SHAPE.

</comment><comment><USER3> Interesting to see this here. Shameless plug: if you want to get a basic idea of how RNA folding algorithms work (without pseudoknots) I wrote a blog post about it:

[http://michaeljflynn.net/2017/01/09/simple-rna-folding- in-13...](http://michaeljflynn.net/2017/01/09/simple-rna-folding-in-130-lines- of-haskell/)</comment>


Review Committee Evaluation of Recent EMC2 Progress on Polywell Fusion Concept - <AUTHOR> https://drive.google.com/file/d/0Bx2cC35KJTwscUktUDkyWk5kRkRnZkxhWTJnd3N2OC1BeVFB/view <comment><AUTHOR> This is from a Freedom of information request made by Brian Wang of nextbigfuture. His article on the subject: [http://nextbigfuture.com/2016/04/2013-independent-review- of-...](http://nextbigfuture.com/2016/04/2013-independent-review-of- emc2-fusions.html)</comment>


How Yammer Won 80% of the Fortune 500 - <AUTHOR> http://mashable.com/2010/10/22/yammer-growth/

<comment><USER2> Wow, Yammer's UI looks, uh, a _lot_ like Facebook's.

</comment><comment><USER3> To put that into context, by "won over" they mean that at least one person working for that company has signed up for it. It doesn't mean they use it. It doesn't mean more than 1 person has ever checked it out.

Still really impressive, and using work emails to create an instant network is really smart.

</comment><comment><USER4> Funny, isn't this the same company everyone was predicting would #fail because it was "just another clone of Twitter" but for companies? Well, while they still could fail, they're getting away from that the longer they're alive...</comment>


Silicon Valley, help — America's infrastructure just got a D+ - <AUTHOR> http://www.washingtonpost.com/blogs/innovations/wp/2013/05/30/silicon-valley-help-americas-infrastructure-just-got-a-d/ <comment><USER2> Seems like the perfect app for Ruby on Rails! :)</comment>


Ogg objections - <AUTHOR> http://hardwarebug.org/2010/03/03/ogg-objections/ <comment><USER2> The biggest aggravation is the fact that we have a container that is:

1\. Reasonably well-designed.

2\. Patent-free with a dozen free implementations.

3\. Widely-used, far more so than Ogg.

4\. General, with the ability to contain nearly any video, audio, or subtitle format.

5\. Fully-featured, with the ability to compete effectively with MP4 and other popular container formats.

6\. Supported by DivX as the replacement for AVI.

It's called Matroska. And practically everyone promoting Ogg _pretends that it doesn't exist_.

My theory is that the difference is one of control. Having talked to many Ogg evangelists, this seems to be the problem: Matroska _allows_ you to use video and audio formats that Xiph doesn't like. Ogg does not. Therefore, Ogg is "more free" because it _doesn't let you do what you want_. It's much the same argument as GPL vs BSD: the GPL is "more free" because it places more restrictions upon users/distributors of the software.

<comment><USER3>
      It's called Matroska. And practically everyone promoting Ogg pretends that it doesn't exist.

      My theory is that the difference is one of control. Having talked to many Ogg evangelists, this seems to be the problem: Matroska allows you to use video and audio formats that Xiph doesn't like. Ogg does not.

Every Vorbis/Theora video I've _ever seen_ , which isn't distributed on the web, is contained in Matroska. Ogg is the "default" because of Mozilla, not due to some Xiph conspiracy. There are three reasons Matroska isn't more heavily used:

1\. Ogg is the dominant format for free audio. I've tried to use Matroska for storing audio (.mka), but most tools have poor or no support for it. I believe a large part of this is because Matroska's metadata support is even more poorly documented than Ogg's. At least Ogg has some de-facto standards for how metadata should be included; Matroska,̶ ̶a̶s̶ ̶f̶a̶r̶ ̶a̶s̶ ̶I̶ ̶c̶a̶n̶ ̶t̶e̶l̶l̶,̶ ̶i̶s̶ ̶c̶o̶m̶p̶l̶e̶t̶e̶l̶y̶ ̶f̶r̶e̶e̶-̶f̶o̶r̶m̶ ̶(̶a̶n̶d̶ ̶t̶h̶u̶s̶ ̶u̶n̶u̶s̶a̶b̶l̶e̶)̶ has some standard tags, but few libraries can read them. The Matroska developers should sit down and either a) document the existing system or 2) figure out a new one. Then, help get support into common media libraries such as GStreamer or TagLib. Once I can store audio in Matroska, it's easier to encourage its use on the web.

2\. Mozilla doesn't like depending on platform libraries, even if they're cross-platform, since history has shown that they tend to be more trouble than they're worth. Look at the Mozilla C++ style guide; half of it is dedicated to avoiding C++ features as simple as namespaces or exceptions because some obscure platforms don't support them well. Therefore, they won't support GStreamer or QuickTime, and support for any format has to be included in the Mozilla repository directly.

3\. Since #1 means Ogg _must_ be supported, and #2 means there's a huge disincentive to support more than the bare minimum of formats, Matroska is seen as too much trouble to support. I think this won't change until more users request it.

For what it's worth, here's Mark Pilgrim's opinion on Matroska, after I requested at least a sentence or two be included in his new HTML 5 book (which covers such unused fossils as AVI and XVid):

      > Could you add a paragraph on the Matroska[1][2] container format to
      > the list of containers?

      I could, but no browser supports it (even those that support
      Theora-in-Ogg), so there's little point. Then again, I do mention AVI,
      which no browser supports either, but that's mostly because I think
      most readers would be familiar with it. Few people have heard of MKV
      except Free Software hippies and movie pirates. :-)

      If it actually lands in Firefox or some other browser, I'll revisit
      this decision.

<comment><USER4> Metadata support is ridiculously awful in [Matroska, OGM, FLAC, OGG], in amounts increasing in that order.

If you want metadata to work consistently, use a MP4 / QT container. If you want alternate tracks (for subtitles and audio) to work consistently, use Matroska.

<comment><USER5> > If you want alternate tracks (for subtitles and audio) to work consistently, > use Matroska.

And avoid GStreamer-based players. Totem is absolutely horrible if the subtitles are complicated (i.e. karaoke timing or multi-language). VLC seems to get it right most of the time.

</comment></comment></comment></comment><comment><USER6>
        Assuming it is true, it still does not alter the fact that Ogg is a bad format.
        Being free from patents does not magically make Ogg a good choice as file format.
        If all the standard formats are indeed covered by patents, the only proper
        solution is to design a new, good format which is not, this time hopefully
        avoiding the old mistakes.

Well, being free from patents can be a very good feature, and may very well make this the _only_ \-- and therefore best -- available choice.

It might not be possible to make a _good_ format to replace it exactly due to patents. Too many patents on obvious and necessary solutions exist.

However, I don't know the specifics. I would have liked a similar discussion on the format which included patent concerns. Can anyone fill in? :)

<comment><USER7> Just because their authors say that doesn't mean that it's true. Worse still, no corporation is willing to perform a patent search because such an activity could open a liability should it be discovered that something they already use is covered by a patent they previously were unaware of.

The fact is that it is extremely difficult to implement any multimedia application without running afoul of a patent. Rational developers will pick the safest option, and that is to license the MPEG patents, which (I believe) also offers submarine patent protection in that the MPEG-LA would be solely liable for not finding them earlier should trouble arise.

The good news is that these patents are not enforceable worldwide, and the first of them should start expiring (if they haven't already) within the next few years.

<comment><USER8> Theora is VP3+few well documented modifications. Youtube for years and still today used on2 codecs (through flash) which are all based on VP3 with optimization. If Theora and therefore VP3 were patent encumbered so would be all the codecs used by youtube, hulu, vimeo and all sites that use flash video. Now if I had a patent on vp3, would I be crazy enough to wait for theora to be successful in order to sue the hell out of everyone? Or would I have already been suing google, adobe and friends?

That's what make patents in theora extremely unlikely IMO. That and the fact that theora devs are extremely cautious on the matter, this is also the reason why theora is not as good as it should be (avoiding patents at all price).

<comment><USER9> AFAIK YouTube used H.263, not VP6.

<comment><USER8> Except it did use VP6 and VP7.

<comment><USER10> Flash has never supported VP7, and the only VP6 on youtube was on self-encoded sponsored channels.

</comment></comment></comment></comment></comment></comment><comment><USER11> I can't help but feel the ffmpeg guys, despite providing a great service to the world, have got a real chip on their shoulder when it comes to all things Ogg and Xiph.

Does he think the ranty tone really helps get his message across? At least it's all written down in one place instead of sniped from the comments every time it could be vaguely thought relevant.

See this recent argument (between _DonDiego_ and _Monty_ ) in the comment section of a blog about Google and VP8, which I assume prompted this article:

[http://blog.gingertech.net/2010/02/20/googles-challenges- of-...](http://blog.gingertech.net/2010/02/20/googles-challenges-of-freeing- vp8#comment-4844)

<comment><USER2> _I can't help but feel the ffmpeg guys, despite providing a great service to the world, have got a real chip on their shoulder when it comes to all things Ogg and Xiph._

They don't like things that are badly designed. This same chip applies equally to a lot of other stuff, especially proprietary formats, like the utterly atrocious and buggy RealVideo 10.

Xiph gets a double dose, however, because of the methods that Xiph uses to market their bad technology. They have at times posted outright lies about their software and then, once proven wrong, often refuse to recant. Example: the Theora vs x264 PSNR comparison where they "accidentally" performed measurement wrong, making x264 appear 2x worse.

They use the same techniques as many of the more evil commercial companies out there, which annoys the hell out of people who disagree with such techniques. ffmpeg devs believe that open source should be about honesty and good technology, not lies and FUD. Xiph disagrees, believing that "the ends justify the means", creating a practically unbridgeable gulf.

Thus Xiph has spent the last few years spreading absurd amounts of FUD about everyone who they believe opposes them. They have managed to convince a shocking number of people that "ffmpeg is illegal" and that you should use their software instead. Ironically, almost all the FUD in the multimedia space in recent years has come from people who claim to support "free software"! Didn't we spend years criticizing Microsoft for the exact same thing?

And you wonder why people don't like them!

<comment><USER11> Wasn't that PSNR comparison problem because of an ffmpeg bug?

And what evidence have you that it wasn't done "accidentally" (your scare quotes). You're clearly wrong if you're implying they didn't retract that claim, as they do so here, in an update to the original page:

<http://web.mit.edu/xiphmont/Public/theora/demo7.html>

You seem to be, in this very post, doing exactly what you accuse them of, spreading FUD and lies about a competitor.

Maybe this feud goes way back, but you're not taking the moral high ground by calling them liars and cheats.

<comment><USER2> _Wasn't that PSNR comparison problem because of an ffmpeg bug?_

It was because of two bugs: an ffmpeg bug (signalling chroma positions wrong) and a bug in their testing tool (which resampled the image, something that a PSNR tester should never do for any reason).

 _You're clearly wrong if you're implying they didn't retract that claim, as they do so here, in an update to the original page:_

Interesting, last time I looked they hadn't, but that's quite welcome then. But of course this pattern has repeated itself a dozen times already.

<comment><USER12> That page was last updated about 6 months ago.

</comment></comment></comment></comment></comment><comment><USER13> Something I discovered by accident: in the "Final Words" section, if you mouse over the italic words "Ogg isn't bad, it's just different", they change to "Ogg isn't dead, it's just resting".

I don't really understand the reason behind that.

<comment><USER6> "* isn't dead, it's just resting" is a reference to Monty Python's famous Dead Parrot skit: <http://www.youtube.com/watch?v=4vuW6tQ0218>

By this the author means that "Ogg isn't bad, it's just different" is essentially a lie, because the author means that Ogg is obviously bad.

<comment><USER13> Aha. The reference passed over my head. Slightly too young for Monty Python to immediately spring to mind. (Now if it were a BtVS reference...)

I did accept his premise of "not bad, just different" because he laid out his explanation below. Not catching the humor in the reference, I thought he was trying to lay out a broader "Ogg is dead" theme that I didn't see any support for.

</comment></comment></comment><comment><USER14> Oh god, it's like reading about LDAP all over again...

</comment><comment><USER15> Also, no one uses Ogg.

<comment><USER16> <http://wiki.xiph.org/Games_that_use_Vorbis>

<comment><USER12> Don't forget archive.org, they are probably the biggest Vorbis and Theora user out there.

<comment><USER4> Except in the cases that they have lossless copies from the artist, it's all transcoded crap, mostly from crappy MP3s.

Wikipedia's also a big user, and their stuff is almost exclusively transcoded from other lossy codecs, because they care more about their self-righteousness than worldly concerns like passable quality, much less the ability for any of their users to decode it.

<comment><USER11> Anything I've looked at on Archive.org (mostly video but some audio) has the original uploaded file plus trascodes into Ogg Theora and H.264. So even if it is "transcoded crap", you're given the option of the original. Which makes sense when you've got "archive" in your name.

Wikipedia may only serve free formats, but they'll make use of stuff from Archive.org so you can click through to the original if it's there.</comment></comment></comment></comment></comment>


Have You Tried Using a Nearest Neighbor Search? - <AUTHOR> http://www.cachestocaches.com/2016/3/have-you-tried-nearest-neighbor/ <comment><USER2> Very good to be reminded of this. The funny thing is that there was a brief time right before deep learning took over computer vision research, but after people realized the implications of big data, where it looked like the future could be really simple nearest neighbor search supported by enormous data sets. For example, the famous "80 million tiny images" paper by Torralba, Fergus, and Freeman from 2008.

PDF:

[http://people.csail.mit.edu/torralba/publications/80millionI...](http://people.csail.mit.edu/torralba/publications/80millionImages.pdf)

Web:

[http://groups.csail.mit.edu/vision/TinyImages/](http://groups.csail.mit.edu/vision/TinyImages/)

</comment><comment><USER3> I'm currently trying to find similar strings (max hamming of 2) between two very large (1e9) sets. Approximate Nearest Neighbor search makes this just barely manageable. Annoy[0] from Spotify deserves a look for anyone who is outgrowing traditional nearest neighbor algorithms.

[0] [https://github.com/spotify/annoy](https://github.com/spotify/annoy)

<comment><USER4> Assuming your strings are a lot larger than length 2, you might look at locality-sensitive hashing.

If you are using fixed length _bit_ strings, let me know as there are other ways to get sublinear search time for NxM searches. Handwave: order your strings in M by popcount. If string n has popcount p then you only need to compare to the m in M which have between p-2 and p+2 bits set.

You can subdivide the search space even further. And with newer processors, the POPCNT instruction is your friend.

<comment><USER3> They are between about 5 and 32 characters. I have converted them to bitstrings (one-hot encoded). They are grouped by length so they are fixed. If you have more information on the algorithm you describe, I would love to hear it. There are not many duplicates in a 1e9 sampling. This is a protein library with a huge diversity for what it's worth.

<comment><USER5> Huh? I cannot reconcile that with what you wrote earlier: _" I'm currently trying to find similar strings (max hamming of 2) between two very large (1e9) sets."_

'Hamming' I only know as Hamming distance ([https://en.m.wikipedia.org/wiki/Hamming_distance](https://en.m.wikipedia.org/wiki/Hamming_distance)).

If that is what you are referring to, the first thing I would do is to divide and conquer by splitting the sets of strings by length (Hamming distance isn't defined for strings of unequal length)

After that, I would handle the larger strings by deriving 3 about-equal sized string keys from them. For example, split strings of length 14 in parts of lengths 5, 5, and 4. If two of the strings have Hamming distance <= 2, one of those derived keys must be equal in both strings by the pigeonhole principle. For length 14, and assuming a ACGT alphabet (or am I showing my ignorance here?), that divides and conquers by a factor 256 or 1024. Since the naive "compare all pairs" algorithm is O(nm) for sets of size n and m, respectively, in comparisons, that should get you a speed up of a factor of at least 4 orders of magnitude.

Another approach might be to consider all possible pairs of replacements, and check whether they could make the strings equal. For example, assume the errors are that one A got replaced by a C and one T by an A. Then, do a replace all in all strings for those replacements, look for duplicates in the results, and then check the Hamming distances between the original strings that became equal after making those replacements (I would guess it isn't necessary to physically do the string replacements; adjusting the comparison function during sorting may be faster)

Again assuming a small alphabet, that should be doable, as _all possible pairs of replacements_ isn't that many pairs.

And of course, the two can be combined.

(It would be a bit more messy to implement and would give a bit less of a speed up, but I think the gist of the above would work fine if you meant edit distance instead of Hamming distance)

Edit: an alternative could be to split each string in trigrams ("abcde" => {"abc", "bcd", "cde"}), index them with some text search engine such as Lucene, using no tokenizer, and then do a billion searches in that set. Anything with few changes will end up high in the search results there, and it is fairly easy to determine hard bounds there. At 10ms per search and 1E9 searches, that would 'only' take 1E8 seconds, or 3 years. It is easily parallelized and distributed, though.

<comment><USER6> _Since the naive "compare all pairs" algorithm is O(nm) for sets of size n and m, respectively, in comparisons, that should get you a speed up of a factor of at least 4 orders of magnitude._

Could you flesh out that algorithm? Your "pigeonhole" insight is correct, but I don't see it leading to a speedup, much less a 10000x speedup. In practice, the limiting factor is likely memory access, and the length of the strings is irrelevant in the size ranges we're discussing. But likely I'm not understanding your approach.

<comment><USER5> Let's say you have two sets of 1E8 strings of length 9. The naive algorithm compares all pairs, so it does 1E16 "check if Hamming distance <= 2" calls.

If you group them, first by "first 3 characters equal", then by "middle 3 characters equal", then by "last three characters equal", with a 20-letter alphabet, you will, in each case, get in the order of 1E3 groups each with in the order of 1E5 strings each. Comparing pairs in each groups takes 1E10 "check if Hamming distance <= 2" calls, for a total of 1E13 such calls.

You have to do this 3 times, so this will give you about a factor of 300, assuming the grouping to be free (it isn't, of course, but sorting is O(n log n), and this is a tiny bit simpler)

For longer strings, the speed up increases, though. Length 12 gives you 1E16 vs 10000 groups of 1E4 strings each, for 3 times 1E12 "check if Hamming distance <= 2" calls. That gets you close to that 4 orders of magnitude.

Tangential: you have to implement your "check if Hamming distance <= 2" call correctly. It shouldn't do _" Hamming(s,t) <= 2"_, but bail out early. Also, you will call it at times where you know the first/middle/last third of characters to be equal, so it should skip those characters (ideally, those shouldn't waste cache line memory at all, but getting there may be too costly in setup time)

New idea: store both sets of strings in tries, iterate over all length 3 prefixes in the first trie, then walk the second one, pruning paths as soon as you hit branches where you know Hamming distance will be larger than two, and peeking in the first trie to check whether pruning is possible. I think that can be made to effectively do what the 'split it 3 parts trick does', but smarter, and may be faster. Implementing it will require some thinking, though, and that thinking may lead to the conclusion that the idea doesn't work.

</comment></comment></comment></comment></comment></comment><comment><USER7> I think your results are pretty strongly predicated on the fact that we have immensely powerful computers these days such that brute forcing is a viable option in many casual real world situations (detect objects in a picture). In fact exact NN algoirthms for high dimensional embeddings converge to linear search performance as the dimensionality increase so a brute force NN is often a good choice always. But that doesn't mean there aren't other problems where the datasets are truly large and require fast query responses (bioinformatics, GIS, anomaly detection...). Which is where you get approximate nearest neighbor search. Haar transform is useful if you dont expect your object to ever rotate or significantly change size, but for more robust image recognition i would suggest david lowes' sift. Which actually spurred much of the approximate nearest neighbor search space, since you didn't necessarily need the closest match, rather just something that was near. Currently the optimal approximate nearest neighbor search algorithm has complexity O(n^rho+d log n) where rho is typically less than 0.37.

</comment><comment><USER8> I don't think YOLO [0], the object detector he talked about, requires a massive amount of data as he claimed. Yes, if you want to learn how to classify 1000 different categories like on ImageNet, then yes, you need a lot of data. But if you're taking a pretrained network like YOLO (it was pretrained on ImageNet and trained on Pascal), you don't need a lot of images. I've retrained it with the KITTI dataset [1] and had no issues at all. They're only 7k images. By the way KITTI actually has a vehicles dataset that might be helpful for your case. And also by the way, you don't even need to retrain YOLO with your vehicle dataset. It was trained on Pascal VOC [2], a dataset of 20 categories and one of the categories is car. So YOLO already knows how to detect cars, it just might not be ideal for your dataset, but you don't care anyways since you just want any solution to compare to as a baseline. This would probably have been even less work than training the cascade classifier you used and have achieved better results.

[0]: [http://pjreddie.com/darknet/yolo/](http://pjreddie.com/darknet/yolo/)

[1]: [http://www.cvlibs.net/datasets/kitti/](http://www.cvlibs.net/datasets/kitti/)

[2]: [http://host.robots.ox.ac.uk/pascal/VOC/](http://host.robots.ox.ac.uk/pascal/VOC/)

<comment><USER9> _> They're only 7k images._

I feel like all those deep learning papers distorted people's perception of scale. If you need to take those 7k images by hand because your application domain is obscure and they aren't available in an existing dataset, that's _way_ beyond feasible.

<comment><USER10> You could generate 7k images at a resolution of 4096x2160 pixels by walking around the vehicle for just under four minutes while shooting 4k video at 30 FPS, something of which modern phones are capable.

<comment><USER9> Yes, but how different would those 7K frames would really be? Same lighting, same background, same surrounding objects, the exact same condition of the vehicle's interior and exterior, same quirks of the camera's color profile, etc, etc. It would be an interesting experiment to actually try this, but I have a feeling the results wouldn't be all that good. Point being, you probably wouldn't get most of the benefits of deep learning and you might as well use the same approach the author used.

<comment><USER10> As you walk around the vehicle, and change the angle from low to high, the lighting and background should have a good variance.

<comment><USER11> No they won't. All of the pictures will have lighting from the time of day and weather conditions from the time and place the pictures were taken. The same problems will happen for the background. If I want my neural network to identify the make and model of cars, but every picture I have of a Mazda3 is taken at noon on a sunny day in suburbia then it is reasonably likely to train on the wrong features and either identify trucks on sunny days in suburbia as Mazda3's or not recognize a Mazda3 photographed on a rainy night.

<comment><USER10> A human might have difficulty recognizing a Mazda 3 on a rainy night as well. You can adjust color temperature and white balance in post-processing, or film a couple minutes at night too. Point is, generating 7k images is not insurmountable, especially in this case with the criteria that it only has to recognize a particular car.

</comment></comment></comment></comment></comment></comment></comment><comment> liviu- > I quickly discovered that such a system was overkill for me, and resorted to > using an open source implementation of a simpler algorithm [1].

Maybe worth pointing out that the "simpler algorithm" they used seems to be a cascading ensemble of adaptive boosting algorithms, technique similar to the ones used on Kaggle to win the big prizes. Maybe simpler than some neural nets in some ways, but nothing close to the simplicity of nearest neighbour search.

[1] [http://docs.opencv.org/2.4/doc/tutorials/objdetect/cascade_c...](http://docs.opencv.org/2.4/doc/tutorials/objdetect/cascade_classifier/cascade_classifier.html)

</comment><comment><USER12> In the statistical learning course available online as a mooc at stanford they take it a step further:

"If it wasn't for the course of dimensionality we would only use nearest neighbor search"

<comment><USER13> > the course of dimensionality

dimensionality is surely a curse :)</comment></comment>


Ask HN: Someone is systematically trying to access my accounts, any advice? - <AUTHOR> On Tuesday morning I received a couple of 'login attempt' emails on my gmail account. They were unsuccessful and had locations in India... I've had a couple of these in the past so didn't think anything of it.
Fast forward to this morning. My Apple ID password had changed (I've now enabled two factor auth and changed the password along with other security questions/details). I've also gone through any accounts I can think of and have ensured that they all have new passwords and have enabled two factor auth where available.
I'm continuing to receive password reset requests or security alerts (but none seem successful) for, amongst others, LinkedIn, Spotify, Netflix and other various email accounts.
This seems very targeted and I'm worried that someone already has access to something or I've missed an account that could be secured further.
Does anyone have any advice/tips on what I can do further to secure my accounts, not miss any accounts or attempt to discover who/why this happening? <comment><USER2> Changing all your passwords and enabling 2FA was the right step. Make sure all the passwords are strong and that you set a different password for each site (a password manager like KeePass makes this easier).

As to where it came from, check to see if your email address is in the breach database at [https://haveibeenpwned.com/](https://haveibeenpwned.com/)

<comment><USER3> Next step, imho, should be to go to the police or something like this.</comment></comment>


Common Crawl dataset to move to AWS Public Data Sets - <AUTHOR> http://semanticweb.com/common-crawl-founder-gil-elbaz-speaks-about-new-relationship-with-amazon-semantic-web-projects-using-its-corpus-and-why-open-web-crawls-matter-to-developing-big-data-expertise_b26109

<comment><USER2> Great! Glad the extracted structured data will be added also; another list of structured data: <http://page.mi.fu-berlin.de/muehleis/ccrdf/></comment>


Voting Machine Vendor Installed Remote-Access Software on Systems Sold to States - <AUTHOR> https://motherboard.vice.com/en_us/article/mb4ezy/top-voting-machine-vendor-admits-it-installed-remote-access-software-on-systems-sold-to-states <comment><USER2> All election software should be open source and publicly inspectable, like the code in the Dumbold Voting Machine for The Sims 1! ;)

[https://medium.com/@donhopkins/dumbold-voting-machine-for- th...](https://medium.com/@donhopkins/dumbold-voting-machine-for-the- sims-1-3e76f394452c)

Somebody actually reprogrammed the Dumbold Voting Machine to run their intelligent university campus simulation!

[https://www.researchgate.net/publication/4370926_Towards_a_m...](https://www.researchgate.net/publication/4370926_Towards_a_mixed_reality_intelligent_campus)

</comment><comment><USER3> Electronic voting seems like one of those ideas that seem great when you start programming in your teens, but you eventually grow out of it when you start to see all the security considerations, costs and possible problems. With some experience in the field, it just starts to seem cheaper and easier to stick to the paper.

I'm always stunned when I'm reminded that there are places in the world that not only went electronic, but absolutely fail at its basic security as opposed to getting burned with some elaborate and/or clever attack.

<comment><USER2> That naive Mom's Basement idealism coincides with the Atlas Shrugged years. Voters should just buy their own voting machines, and let the market decide!

<comment> IGI-111 So I suppose my stance that the benefits of online voting for direct democracy largely outweight the complexity cost of a sufficiently secure solution are equivalent to the older type of objectivists who realize that free market isn't perfect but that it does lead to better outcomes in most cases.

That we can't produce secure voting software is just a testament to how much we suck at software engineering and making safe computers in general, because cryptographically this is a solved problem.

Hell I'd argue that modern implementations like Estonia's are pretty close to an acceptable standard of trustlessness. But that's thanks to open standards and public ledgers. The closed source voting machine was never a good idea, and never will be.

Given the ancap vibe of blockchain in general this is all a bit ironic isn't it?

<comment><USER4> online voting is a solution in search of a problem. Digital voting just makes it vulnerable to hacking and the general public barely understands how computer works.

Paper ballots are cheap and auditable, and can be understood by anyone that knows how to count.

</comment></comment></comment></comment><comment><USER5> This is one of the subjects I wish developers (of all persuasions) would consistently put pressure on local representatives; don't let these sales to voting companies just happen without pushback.

We can't expect representatives or legislatures to be technically adept at all things (or anything for that matter). The fact that this has all gone down over the last couple of years without much of a fuss from our industry is shameful. We get riled up over corporate battles, which tech stack is the best, but when it comes to protecting the people's sovereignty and everyone's rights, the silence from our industry as a whole, across all strata, is deafening. We should be angry. We should be loud. It should be a subject that comes up at least once a month at meet ups and happy hours. But like the rest of the populace, we've been silent. A good portion of us (developers) have been just as ignorant about acquisitions and policies surrounding voting machines as the general populace.

If there is one thing that you should write or call your representatives about (local, state, and federal), just by virtue of your profession and interests, it needs to be about e-voting. All developers have what I believe is an ethical duty to our country to be educated about this subject and to make sure we're disseminating accurate and helpful information to our representatives, our friends, our neighbors, and our families.

Here's some helpful links to get you started if you've never broached this subject, need a refresher, or just want to see how you can help out:

* [https://trustthevote.org/](https://trustthevote.org/)

* [https://www.eff.org/issues/e-voting](https://www.eff.org/issues/e-voting)

* [https://www.eff.org/deeplinks/2016/12/audit-better-faster-ch...](https://www.eff.org/deeplinks/2016/12/audit-better-faster-cheaper)

* [https://www.eff.org/wp/accessibility-and-auditability-electr...](https://www.eff.org/wp/accessibility-and-auditability-electronic-voting)

I firmly believe that we should stick with pen and paper. However, I think that battle is already lost. We need to secure what governments/people want to use and we need to do our part to make sure our representatives/voting boards are making informed choices about which systems they'll be deploying in the field.

Educate yourself and contact your representatives. Do your part for our democracy.

</comment><comment><USER6> I don't think it's technically possible to make voting machines secure enough to use them in an election. So I am happy these things happen so the idea of using voting machines fades away forever.</comment>


Solaris 10 Zones on Illumos Tribblix - <AUTHOR> https://ptribble.blogspot.com/2020/08/solaris-10-zones-on-tribblix.html <comment><USER2> I will always look back on Solaris wistfully. It was (and will always be) my favorite Unix. When containers showed up... oh man... my lab guys lost their mind. We had a never ending parade of upgrades...and server rotation. Enter zones... and things just become OOM easier. Want a zone of your own? No prob. Wonderful isolation and resource allocation, too. The network stack was a bit iffy in the early days, but Sun sorted it out. All our zones (incl. root!) were on NAS... we could move zones around the hardware at will. It was incredibly useful and a whole lot of fun.

</comment><comment><USER3> I really liked Solaris. ZFS, Dtrace, Zones, brilliant hardware.

It's a shame Oracle destroyed it (mostly) and Sun. Though some might argue that Linux taking over played a part in that.

A parallel universe with Sun surviving & properly embracing open source would have been very interesting.

<comment><USER4> Solaris 10 really was the pinnacle of UNIX. At a previous company, we were doing with Solaris zones and ZFS snapshots essentially a docker-like development ecosystem. We were really excited about the crossbow networking project, but then the Oracle acquisition happened almost all new and innovative work stopped.

In a more perfect world, Joyent would have become bigger than it was. Alas...

<comment><USER5> I'll assume that was a typo and you meant Solaris _11_. Solaris 11 has some amazing advancements over 10 in terms of security, packaging, and many other metrics.

Also, for the record, it is objectively untrue that all new and innovative work stopped. My primary disappointment was the silent discontinuation of the OpenSolaris project.

<comment><USER4> No, I meant 10. The same way you might say that the McLaren F1 is the pinnacle of car engineering, despite higher performing cars being subsequently released.

The delta between what you could get between Solaris 10 and most anything else at the time (free or otherwise) was very impressive. Zones/containers had little equal (maybe FreeBSD jails, but so much nicer to manage), ZFS made me almost cry that I'd never have to deal with veritas again, and DTrace allowed safe, live debugging whenever I felt like it. I'd add SMF there somewhere if it wasn't configured via XML.

Sure, IPS is technically superior to apt or yum (well, anything is better than yum), but it's not ground breaking better than what you have elsewhere. 11's security is indeed improved as they took what was already done of crossbow, and implemented it, then cancelled the rest.

I was using hyperbole, but the general feeling to those of us that were customers was of a large cutback in work. And that was before oracle jacked up the prices.

I _miss_ Solaris, but there is no reason I would recommend it to anybody today, even if you had to manage your own hardware and not be on a major cloud vendor.

<comment><USER5> Then we're going to have to agree to disagree; because the next Solaris release went all the way to 11 ;)

As for _11's security is indeed improved as they took what was already done of crossbow, and implemented it, then cancelled the rest._ \-- that's shortchanging an incredible amount of work that was done that was not related to crossbow at all. Crossbow, while great, was hardly the largest or most important project that was being worked on although it was certainly one of them.

<comment><USER4> I won't disagree with you about any improvements 11 made, but merely again the delta against competing options available.

FYI, I'm verbally harsh because as I said I _miss_ Solaris and miss having an economic reason to use it.

</comment></comment></comment></comment></comment></comment><comment><USER6> Poking around in the weirdness that is Solaris is so much fun. The comments in the source code are legendary as are the man pages, seemingly much more helpful than other platforms, with a focus on providing good examples. Zones, DTrace, ZFS, and SMF are incredible tools that were over a decade ahead of their time. Zones in particular seem to still offer isolation advantages over the various implementations of containers on Linux. Designing a cohesive system for containing multitenant workloads had its advantages. I'm glad enthusiasts have been able to keep Illumos going, it would be a shame for nobody to be running all that code.

<comment><USER7> Asserting that Solaris has weirdness is an insult, because Solaris is the AT&T System V Release 4.0 reference implementation. Solaris is also the reference implementation for libc functions like malloc, threading, realtime kernel implementation, NFS, NIS, containers, shared memory, SCSI, fiberchannel, high performance TCP/IP networking, network virtualization, parallel service startup/shutdown, POSIX compliant shells, POSIX AWK, XPG4 and XPG6 userland, I could go on and on and on; if you want to write an implementation of some IEEE, POSIX or RFC specification, or some kernel or userland subsystem, Solaris / illumos is the place to refer to on how to do that, and how to do it correctly.

</comment></comment><comment><USER8> Some comments are treating this as an opportunity for a Solaris wake and while I certainly don't object I wonder if needs pointing out that there is a lively ecosystem of Illumos derivatives, Illumos itself being a derivative of Solaris (via what was once called OpenSolaris).

Some examples include SmartOS (Samsung maintained datacenter centric flavot, lots of tools for rapid/easy deployment of compute nodes and machine images); OmniOS (for laptops); and one I had never heard of until this post, Tribblix.

A common pattern is to run other OSes in some zones via bhyve (linux and bsd) or kvm or lx branded zones (linux). But the native platform can handle many scenarios these days.

</comment><comment><USER9> Just a note to say Tribblix is a fantastic Illumos distribution that works well on AWS. Peter Tribble deserves much applause for maintaining this. If you are curious re: Illumos and need a place to start - Tribblix is a good one. Have fun.

</comment><comment><USER10> Solaris 10/11 are still heavily entrenched in the telecom/ISP industry. Not going away anytime soon.

<comment><USER11> Oracle will milk this cow until it bleeds. And then they'll bleed it until it's dry.

</comment></comment><comment><USER12> Solaris 10 has been EOL since what this time last year? No more updates are going out to it. So if you are still running a Solaris 10 zone then you aren't able to patch it.

<comment><USER13> This post is about Tribblix, the Slackware of Illumos, a well-supported fork of OpenSolaris. The ecosystem is alive and well.

<comment><USER7> Tribblix is unlike Slackware - it uses AT&T SVR4 packaging with zap which is akin to yum on top, whereas Slackware used tape archives. Yes, tape archives for backing up to tape. That says it all.

<comment><USER14> > whereas Slackware used tape archives

Pardon?

<comment><USER7> No pardon - Slackware "packages" were .tar tape archives. The entire "OS" was hacked together out of parts, whereas Peter _system engineers_ Tribblix. No pardon.

<comment><USER14> Just because "tar" happens to stand for "Tape ARchive" doesn't mean tarballs have anything to do with actual tape archives. It only means that the files are stored sequentially, which is a perfectly reasonable way to structure an archive.

If you want to criticize how Slackware does things, there are myriad better points you could've brought up, like:

\- The installer being only minimally changed from that of Softlanding Linux System

\- The installer still operating under the notion of "disk sets", from back when it was remotely feasible to install Slackware from floppies (which hasn't been the case in multiple decades now)

\- The lack of dependency checking (though having been burned by dependency hell multiple times, I'd call this a "feature")

\- The lack of PAM, if that matters to you (though the -current branch now includes it, so Slackware 15.0 probably will, too)

And yet, none of these things have prevented me from being happy and productive with Slackware, both at home and at work, on desktops and servers. It's what I'm running on the very laptop on which I'm typing this comment, on my main workstation / gaming rig at home, and previously on my servers (before I acquired a taste for OpenBSD and SmartOS).</comment></comment></comment></comment></comment></comment>


Free static page hosting on Google without App Engine in seconds - <AUTHOR> https://support.google.com/drive/answer/2881970?hl=en

<comment><AUTHOR> I think that's a much more simpler way as the approach with App Engine, posted some days ago here.

[https://news.ycombinator.com/item?id=7252435](https://news.ycombinator.com/item?id=7252435)</comment>


Singapore's open data portal - <AUTHOR> http://beta.data.gov.sg/ <comment> bro-stick Neat. San Francisco is big on this as well.

[https://data.sfgov.org](https://data.sfgov.org)

(.sg URL is _most definitely_ a coincidence. ;)

</comment><comment><USER2> <meta name="generator" content="ckan 2.3" />

Good to see ckan used again in this space. It's really gaining a lot of users.

</comment><comment><USER3> It wouldn't shock me if majority of Asian exports were limited to ASEAN countries. Regional economic cooperation pact has done wonders for the region. Despite sporadic political unrest, these countries have flourished.

Similar pacts can work great for South Asia, if Pakistan and India could just get their shit together.

</comment><comment><USER4> The minister even came to geekcamp.sg to announce it.

[https://www.facebook.com/Vivian.Balakrishnan.Sg/posts/101530...](https://www.facebook.com/Vivian.Balakrishnan.Sg/posts/10153017297841207)

</comment><comment><USER5> Copied from my comment when this was posted to r/Singapore subreddit

\- The source indicates the site is generated using CKAN ([http://ckan.org/](http://ckan.org/)). Never heard of it myself, but it is F/OSS, and widely used in other countries. Great to see the government adopt open source software

\- The homepage loads 2MB+ without a primed cache, and 600KB+ with, which is really high. The site pulls down a lot of JS - jQuery with a gazillion plugins, Bootstrap, DataTables, Select2, d3.js, and Moment.js.

\- The icons are in SVG, which is good, but some of them are really badly optimized - this icon ([http://beta.data.gov.sg/uploads/group/2015-06-12-061106.9773...](http://beta.data.gov.sg/uploads/group/2015-06-12-061106.977358icon- environment.svg)) for the environment category is 128KB (!) which is an absolutely monster for a SVG. The equivalent PNG file will be much smaller.

\- The site is not accessible at all over HTTPS - it doesn't even redirect, but just keeps the client waiting until the client times out. It's 2015 - I'd expect government sites to be accessible over HTTPS.

\- The favicon is not the icon, for some reason. I really like the design of the icon, although I'm not entirely sure if it is the best fit for the data site. I can see it being used for as a single brand for all government websites though

\- Fonts on almost everything need to be made bigger. The graph labels are so small I need to squint.

\- The new API looks very very neat. Much more usable than the old one. The documentation can be better, and perhaps should be more front and center, but I guess they need to balance the needs of developers with casual visitors and non-developers. Love the graphs automatically drawn by d3.js for appropriate datasets

\- Data is licensed under CC-by, which is quite nice.

A few interesting data sets:

\- Amount of mobile data used quarterly: [http://beta.data.gov.sg/dataset/mobile-data- usage](http://beta.data.gov.sg/dataset/mobile-data-usage) \- Singapore has one of the highest mobile device ownership rates in the world - on average, each resident own more than one mobile phone

\- Singapore's total land area since independence: [http://beta.data.gov.sg/dataset/total-land-area-of- singapore](http://beta.data.gov.sg/dataset/total-land-area-of-singapore) \- Singapore has been constantly reclaiming land since independence

\- Number of licensed supermarkets: [http://beta.data.gov.sg/dataset/licensed- food-establishments...](http://beta.data.gov.sg/dataset/licensed-food- establishments-supermarkets)

\- Daily public transport ridership: [http://beta.data.gov.sg/dataset/public- transport-utilisation...](http://beta.data.gov.sg/dataset/public-transport- utilisation-average-public-transport-ridership)

<comment><USER6> > \- Singapore's total land area since independence: > [http://beta.data.gov.sg/dataset/total-land-area-of- > singapore](http://beta.data.gov.sg/dataset/total-land-area-of-singapore) \- > Singapore has been constantly reclaiming land since independence

That chart could really use being anchored at 0 km^2 on the y axis.

</comment></comment><comment><USER7> It's impressive to see this level of transparency

</comment><comment><USER8> Video feedback (from an expat who lives there) on the Singapore's data portal [https://www.youtube.com/watch?v=LOSHPc2j9Ho](https://www.youtube.com/watch?v=LOSHPc2j9Ho)</comment>


Cloud Music: Almost there - <AUTHOR> http://filipmares.com/cloud-music-almost-there

<comment><USER2> Maybe I've become an Rdio fanboy, but I think it serves all of my needs when compared to the other services. I never really liked Grooveshark because of its incomplete interface. I could be wrong, but it doesn't seem as though there's enough money from a free service to support the artists. I'm also not a fan of cloud storage because I really don't "own" much music, and there's currently not an iPhone app for the Amazon store.

So why do I love Rdio? Well, for $10/month I'm able to stream and locally cache pretty much any song I'm into at the time. They've also done a stellar job at signing indie labels, especially the ones here in NC. It also has my network of friends, so I can see what they're into.

Like I said, I'm really biased but hopefully you'll find some useful info there. :-)

</comment><comment><USER3> It's articles like this that make me realize how fortunate we are to be having Spotify in Europe. Streaming my music from the cloud for quite some time now, I actually wondered for a second whether the blogpost was a few years old!

<comment><AUTHOR> Still waiting for Spotify here in the US.

</comment></comment><comment><USER4> > Pros: Expensive storage cost (Google offers 20GB for $5/yr)

Somehow I feel like this article could use a tiny bit of editing, as expensive storage feels more like a disadvantage than an advantage.

<comment><AUTHOR> Thanks for the catch. I've updated the post.

<comment><USER5> What does this refer to anyway? The word Google appears nowhere else in the post, what is their cloud music service with this pricing?

<comment><USER6> Amazon's storage costs seem to be more directly marketed as the cost to store files, not to store _music_ files. In terms of direct competitors in the web- based file storage offerings, Google Docs / file storage seems to be a fairly close one, if you ignore the music playback capability.

Since the music playback capability it just an add-on to the file storage aspect, it seems reasonable to compare them to me.</comment></comment></comment></comment>


The Fastest Growing Spectator Sport You're Not Watching - <AUTHOR> https://medium.com/@Oddshot/the-fastest-growing-spectator-sport-you-re-not-watching-e3fdae27b6bd

<comment><USER2> "In 2012 eSports total viewership was at a meager 134 million viewers. By 2014 the total viewership had grown to 206 million viewers and it is estimated that by 2017 a mind blowing 335 million people will tune in to watch the best gamers in the world go head to head."

jeez.</comment>


Use "App folder" access type instead of "Full Dropbox" - <AUTHOR> https://discussions.agilebits.com/discussion/comment/348508/ <comment><USER3> I feel sorry for companies these days who have to continually respond kindly (for years in this case) to unreasonable customer demands via forums/facebook even when they've clearly stated why things are configured the way they are and changing that will break functionality for tens of thousands of people.

Some companies after a while just need to start following the Wendy's Twitter account model where they start just telling folks like it is after they've shown they aren't going to be reasonable.

<comment><USER4> I feel bad for users who have to deal with supposedly-security minded companies who cite weak, historical reasons for not doing the right thing _now_.

Companies who ignore the actual solutions proposed to them, and instead attack a straw-man. Claiming they're being asked to make backwards incompatible changes for all existing users, instead of providing an an opt-in alternative for users who actually care about their security.

Companies whose culture is so inept that they blindly commit the most basic of engineering fallacies: Rejecting solutions on the basis of minor flaws, while defending a incumbent solution with _massive_ flaws, simply because it is incumbent.

<comment><USER5> Are users' Dropbox creds (password, optional 2FA) in 1Password?

Do you see AgileBits' point about that?

If your own creds are able to use more than the app folder, and if your threat is Agile Bits binary, the 1P app folder permissions will do nothing, the evil binary will just use your full creds.

Sounds like clamoring for them to reduce a bunch of use cases in service of security theater.

<comment><USER6> AgileBits is doing the wrong thing here.

Dropbox full access is stored on their servers and it's in clear text. Dropbox regular login/password is also stored on their servers, but encrypted via a remote master key.

If AgileBits is compromised, they can access all your DropBox files. Attackers still can't access regular login/password because of the lack of master keys.

<comment><USER7> Almost everything you just said is incorrect.

You don't even enter your dropbox password into the app unless you're storing it as a credential, they present an authentication dialogue for the dropbox API just like all other third-party apps accessing Dropbox and store the OAuth key on the client. Not the server. That's why you have to re-authenticate with dropbox on every device you want to set up 1Password sync.

<comment><USER8> Okay, but this still makes device able to access my entire Dropbox, which is insane!

</comment></comment></comment></comment></comment></comment><comment><USER9> I'm trying to understand this comment in the post:

 _As it stands now, if you are compromised, whether through a hack, state action, or even a disgruntled employee, you will expose the full contents of tens of thousands of Dropboxes, a monumental security nightmare for your company._

Does 1Password have a web-based interface where you authenticate against Dropbox and it stores the credentials server-side? I didn't think it did but I'm not super familiar with 1Password.

Otherwise the only attack vector is a compromised 1Password application, right? Not saying that's impossible, but if you are opening scenarios to that line of attack then _many_ more worse things could happen even if the app didn't have outright Dropbox credentials.

<comment><USER10> I'm confused too. To my knowledge Dropbox credentials are only ever stored on the client. If the 1Password client is compromised (presumably meaning the installer download is hijacked like what happened to Transmission), your Dropbox files being compromised will be the least of your worries.

</comment></comment><comment><USER11> Perhaps I'm a bit dense here, but in the proposed attack scenario, couldn't the compromised 1Password application just send all passwords to a malicious server when the vault is unlocked - and assuming you have your Dropbox credentials in your 1Password log in and take your files anyways?

<comment><USER12> A compromised 1Password on a Mac could just read the contents of ~/Dropbox and fling it at a remote server, bypassing any Dropbox API perms entirely, even if the user of the system was using non-Dropbox syncing for their 1Password Vault.

Not that the problem is localized to 1Password: any non-sandboxed app could do that, given the default system configuration.

<comment><USER10> A compromised 1Password application on a Mac can read a lot more than ~/Dropbox. I'm not sure why this problem is specific to Dropbox? Nor why changing the permission would materially change anything? Am I missing something?

<comment><USER12> Nope, your understanding is correct. That's why I'm not very concerned about the lack of "App folder" access strategies.

</comment></comment></comment></comment><comment><USER13> For non-enterprise users, Dropbox's encryption is basically meaningless. If you have sensitive information you want to store in Dropbox, Google Cloud, iCloud, etc., I'd recommend using something like Cryptomator: [https://cryptomator.org/](https://cryptomator.org/) to encrypt files on the client side before uploading to "the cloud". It's open source for security experts to look through it and free for desktop OSs. I think they just charge something like 5 bucks for the iOS and Android apps.

For alternatives to the popular cloud services for the privacy conscious, there's a good list of open source projects and products on [https://www.privacytools.io](https://www.privacytools.io)

<comment><USER14> This is not an all or nothing issue. For example, if you store sensitive videos, but rely on Dropbox's ability to transcode and preview the video in a web browser, then something like Cryptomater would not make sense. Encrypting on wire/at rest is the best you can do unless you run the transcoding yourself.

Dropbox could support both modes, but the company has obviously made a decision to prioritize one over the other (at least for now).

</comment></comment><comment><USER15> > The alternative solutions aren't great. $36 a year to store a couple > megabytes of data is outlandish. If you'd like to transition us to this from > Dropbox, the price must be drastically reduced.

I've found AgileBits a bit weird in some of the decisions. It's clear that selling a password manager for $65 is no longer working well for the company, and so the subscriptions were introduced (IIRC, shared vaults exist only in the subscription). But as the OP says in the forum post, the subscription prices are quite high from a value standpoint when people have been using Dropbox or iCloud or something else all along. I've seen that AgileBits is also a bit slow to learn from customer feedback (like the MAS-only fiasco a few years ago). As more and more apps move toward a subscription model than a one-time pay-for-a-major-version model, I foresee more customer backlash on prices.

Edit: This backlash against subscription has already happened on the app store for Facetune and Infuse, to name two apps.

<comment><USER16> As someone who buys this for every employee at his organization, I couldn't disagree more.

It's a huge deal that I can control who shares and sees what vault, turn off an employee's access as soon as they are leaving the company, revoke tokens, etc.

Before this we were using Dropbox and it was a nightmare. Credentials for a bunch of things were mixed up in the wrong vaults, far more duplication, revoking access was more of a pain, etc.

1Password for a family sharing may not be worth it, maybe not even for a small 5 person shop with a very stable set of employees who are all savvy. But with 25 or so people with varying level of technical expertise and actually critical information being shared, 1Password's subscription is a godsend.

<comment><USER17> I have 1Password for family sharing (the online service), and it's _totally_ worth it. I've been a 1Password user since the AgileBits blog was the "Switcher's Blog" and have bought every version they have released for Mac and iOS because it does exactly what they say it does, and they review their security pretty regularly. (It helps that I've met people on the team, but that's a secondary matter.)

For US$48 per year (I have the launch special, but it saves me $12/year), I have four people currently signed up (I could add three more; again, the launch special gives me two extra) where we can share passwords. I also have any major version of the software released now for any platform.

More importantly, I have been able to get my parents on 1Password _reliably_ in a way that if they are incapacitated, my brother or I can use their accounts to make sure bills are paid when they should be (at least, that will happen when we have all of their accounts added to 1Password, but that's a relatively small thing now). This is important because neither I nor my brother live near my parents (I'm in a different country). The software versions? Pretty important: I'm on Mac and iOS; my brother is on Mac and Android; my mom is on Windows and iOS; and my dad is on Windows and iOS and Android. Keeping those up-to-date with major versions would eventually get more expensive than the peace-of-mind that I have now.

LastPass does all of this cheaper at scale for companies ($2.40–$4/user/month) than 1Password ($4–$11/user/month) but the UX for LastPass is abysmal (although it does have a dedicated Linux client for those who need that)…and I honestly don't trust LogMeIn at all. The other one that I have any opinions about is Dashlane, and it's second/third-hand that it's pretty good software (I haven't used it because I've integrated 1Password in my workflow so deeply).

Yes, 1Password for families is worth every penny I pay.

</comment></comment></comment><comment><USER18> If you're security minded, don't use Dropbox for syncing (or at all - it's kind of a mediocre service these days).

<comment><USER19> Annoyingly, 1Password don't support syncing opvaults from an arbitrary location on the filesystem to allow you to use Syncthing. It's literally the only reason I still have a dropbox account.

<comment><USER20> It does... That's how I've been doing my syncing.

All my 1Password vaults are kept in my ownCloud account. Even works fine on Android where I use an app called FolderSync to keep my vault synchronized on my phone and have added it to the 1Password Android app.

<comment><USER21> i was trying this too. I've setup my own cloud and i only wanted local lan sync but i'm not able to sync to my 1password android.

may i ask: on the android app, where are you keeping the opvault file? when i pointed the android app folder sync to the opvault folder downloaded to my android phone, it said 'no vault found'. are you using the old keychain file format?

thanks kindly

</comment></comment></comment></comment><comment><USER14> The oauth tokens are stored on the client.

In order to exploit the suggested privilege escalation, you would need to exploit the client to feed you the oauth code. If you are exploiting the 1password client, you can do ANYTHING (including grabbing passwords after you unencrypt, reading filesystem, popping up a PWNED dialog). I don't think this effort should be urgent for 1password.

This recommendation doesn't make me feel meaningfully safer

(unless 1password has some clever process jailing inside their code to isolate the decryption component from the cloud component)

</comment><comment><USER7> The point is that it would break features for many users in exchange for security theater.

Limiting the access of Dropbox is all well and great except that it breaks sharing, which many people use, in exchange you simply move the files to another folder on the same Dropbox which effectively does nothing.

Slightly off topic, but Who stores senstive files unencrypted in Dropbox anyways?

<comment><USER22> I do. I keep my backup 2-factor authentication code for gmail in my Dropbox folder.

Access to my Dropbox account would compromise my gmail account (and vice versa, since I keep my backup Dropbox 2-factors in Google Drive). I consider these two accounts my most sensitive/critical accounts for that reason. Could I encrypt the files in Dropbox? Sure. But that would make it more difficult to get to those backup keys (I might be reading them off a text file from the Dropbox app on my phone, for instance).

Has this happened often? No. Like, literally once. But it has happened, and I need to be able to recover my backup 2-factor codes.

<comment><USER7> This is the whole purpose of using a password manager. 1Password is capable of providing OTP codes instead of something like Google Auth. Obviously this makes 1Password a single point of failure, but that's true of password managers in general anyways since people usually put all of their sensitive things into them. At least with 1Password you can isolate items into vaults.

</comment></comment></comment><comment><USER23> Just curious what the general consensus of 1Password is here on HN? I am especially interested to hear from people that are actually using/paying for the cloud hosting (their servers).

<comment><USER24> Trusting someone else with your passwords is playing with fire.

<comment><USER25> The alternative is trusting ME with all those passwords, which is far more dangerous. Because I'm neither going to do a good job of creating passwords, nor of remembering them, so I'm going to end up using the same shitty password on every site I care about.

<comment><USER24> Well, whose fault is that? I can tell you how to do it right, but it sounds like you're limiting yourself. If you prefer to do it wrong, feel free.

</comment></comment></comment></comment><comment><USER26> +1 for security theater. If 1Pass app is compromised, you're compromised - period. Even with app permissions, does it not still have file system access? I don't see how this change would prevent it from accessing all your Dropbox files anyway. Also, since Dropbox uses an exploit to gain permissions, I'd say we're placing blame in entirely the wrong place here. On the other hand, the 1Pass folks in that thread are giving all the wrong reasons. "We won't do this because it's hard," is very different from, "we won't do this because it offers no benefit in any scenario." Users who are security conscious aren't using Dropbox to sync their password vaults.

</comment><comment><USER27> I have been using KeePass for some years. It's open source and works on basically every platforms there is.

What is the advantage of 1password compared to the rest of the lot? I keep seeing the name in articles so it must be popular, but I associate it with passwords stored in the cloud which sounds insane to me.

<comment><USER28> Your association isn't really accurate. 1Password's storage model is basically the same as KeePass, your passwords are stored in encrypted blobs that are not decryptable without your master password, which is never sent over the network even if you use their completely optional cloud storage and web interface. If you don't want to trust them with even your encrypted blobs, it also supports sync via Dropbox or iCloud, or over wifi to your phone/tablet, or just to a plain folder.

As far as advantages, I'd say that 1Password is a very slick and well-designed password manager that focuses on covering a particular common case - <USER2> with a Mac, an iPhone/Android device and possibly a Windows PC who wants to sync their passwords between those devices and fill passwords in their browsers. It offers first-party supported browser extensions and handles conflicting sync changes well, which were two major pain points for me when I used KeePass.

If you're happy with KeePass, there's not really a compelling reason to switch. If you fit their target audience and want something with better sync/browser integration and/or a better Mac client, I think it's a compelling alternative.

</comment></comment><comment><USER29> If One Password was compromised wouldn't an attacker have your DropBox credentials anyway?

</comment><comment><USER30> Would 1Password on desktop work even with an App folder?

</comment><comment><USER31> Yay, keychain

</comment><comment><USER32> As a customer of 1Password, I will never move my password files into their cloud.

<comment><USER33> Encryption is meant to provide security in a hostile environment (the cloud in this instance). So, as long as you're using proper encryption and long enough pass phrases to make brute-forcing nearly impossible, storing info on the cloud should be okay.

<comment><USER32> Well, I prefer to store the password files on Dropbox because Dropbox guys are unlikely to know how the files are encrypted. That actually makes brute- forcing a little bit more difficult.

</comment></comment></comment><comment><USER34> I've had this very same thought, really needs addressing. Not sure why this is such a hard thing to achieve tbh

</comment><comment><USER35> So happy I replaced 1Password with a 600 line shell script: [https://www.passwordstore.org](https://www.passwordstore.org)

</comment><comment><USER36> [http://passwordlive.github.io/](http://passwordlive.github.io/)

<comment><USER37> This is a deterministic password manager, which is not a very good idea. [https://tonyarcieri.com/4-fatal-flaws-in-deterministic- passw...](https://tonyarcieri.com/4-fatal-flaws-in-deterministic-password- managers)</comment></comment>


A 20-year Follow-Up to an Early Childhood Stimulation Program in Jamaica - <AUTHOR> https://www.povertyactionlab.org/evaluation/20-year-follow-early-childhood-stimulation-program-jamaica <comment><USER2> Method:

 _The stimulation intervention included weekly home visits by trained community health workers, who encouraged and instructed mothers on how to play and interact with their children. For the nutrition intervention, health workers distributed weekly nutritional supplements to homes, as well as additional cornmeal and skimmed milk powder to discourage sharing of the supplement with other family members._

Result:

 _Most notably, children who received stimulation achieved 0.6 more years of schooling, or 5.6 percent more schooling, than participating children who did not receive stimulation, and were nearly three times as likely to have had some college-level education._

<comment><USER3> Am I missing something in the wide gap between those figures - Children who got intervention X stayed in school for ~7 months longer _and were also three times more likely to start college_

The 5% more and the 300% more just seem wildly out of kilter

(It kind of makes sense - if all your peers stop school at 16 and you stay for 7 months or more, suddenly getting to college is a much easier step.) I think i am just surprised by how surprised i am

<comment><USER4> They're not comparable on the same scale.

Say... Kids get 10.5 years schooling on average in neighborhood A. 12 years in neighborhood B. That is a 1.5 years or 15% difference. In a 12 grade system, this is the best possible result implying a 100% completion rate.

Neighborhood A sends 10% of all kids to college. Neighborhood B sends 50% of all kids to college. That's a 500% difference.

This example seems pretty plausible. A neighborhood where an average kid makes it halfway through 10th grade probably sends _a lot_ fewer kids to college than a neighborhood with a 100% completion rate for grade 12.

<comment><USER5> This. Especially since if Jamaica is anything like the US, dropping out prior to age 16 is illegal.

</comment></comment></comment></comment><comment><USER6> Another Heckman study. Oh, I thought this sounded familiar: [http://andrewgelman.com/2013/11/05/how-much-do-we-trust- this...](http://andrewgelman.com/2013/11/05/how-much-do-we-trust-this-claim- that-early-childhood-stimulation-raised-earnings-by-42/)

</comment><comment><USER7> I'm pretty sure this study was mentioned in a recent episode of EconTalk, where the guest was talking about statistical significance, p-hacking, etc. I'm Jamaican, so I perked up when it came up.

</comment><comment><USER8> Three times as likely to get college level education is amazing, children and parents really are the future.

<comment><USER9> Nurture is the major factor in nearly every aspect of human achievement. Alternative explanations justify genocide, neglect, and let adults off the hook.

<comment><USER10> Genocide? Umm, care to explain how that follows?

<comment><USER11> If some part of the gap in achievement is genetically determined (which by all measurements is the case.) than there is no way to close that gap. Children from poor parents stay poor, poor communities can not move up etc. What's proposed is that the only possible way eliminating differences is eliminating people (in either direction.). Of course this does not infact justify genocide or any of the sort, but that's the argument.

</comment></comment></comment></comment><comment><USER12> I'm surprised that the psychosocial intervention was as effective as it was, however I expected the nutrition arm of the trial to fare better. I guess interacting with intelligent and engaging adults as a child really has long- term developmental benefits.

<comment><USER13> nutrition is a relative concept. Cornmeal and skin milk are not going to produce amazing result by themselves.

<comment><USER12> The cornmeal and skim milk was provided to the baby's family in order to discourage them from distributing the baby's formula:

"The nutritional intervention (groups 2 and 3) consisted of giving 1 kg of formula containing 66% of daily-recommended energy (calories), protein, and micronutrients provided weekly for 24 months"

The article implies that the families likely split the formula for multiple members, thus diminishing any effect it may have had on the baby's development.

</comment></comment></comment><comment><USER14> Education should be society's #1 priority. I find it truly baffling that we have yet to agree on this -- or, if by some reason you think we _have_ agreed, that we haven't acted on it.

<comment><USER15> Does education = learning, and does education result in knowledge, does education = benefit to society?

The reason I ask is: we did an exercise recently where we had to go through the various assumptions for a product. The assumptions we made were

1: education = better outcomes

2: more education = better

3: formal higher education is necessary for getting a job

4: people actually need to get jobs

I am not convinced these are true.

<comment><USER16> Then you have to ask yourself where that belief comes from for each item try hard to disprove it. It is only based on opinion to a certain point.

<comment><USER17> The book I linked to in another comment collects relevant studies. To try to summarize, a degree does seem to matter to getting a better job (especially a bachelor's or a high school diploma); but an incremental year of schooling matters disproportionately less, and the bulk of the benefit was in the degree (the sheepskin effect); a more-educated populace does not make a country richer, among current nations; and intangible benefits are dubious when you measure the outcomes on adults, whether it's knowledge of facts, skills, preferences for more-elevated art, or even political indoctrination. The idea that the economic benefit of education is mostly signaling makes sense of the fact that people consume more and more schooling in the face of its ineffectiveness.</comment></comment></comment></comment>


Ask HN Parents: How do you handle working and kids? - <AUTHOR>

Do you work from home and/or in a small startup and have kids? Would you mind share some tips?
In my experience (father of a <2 year old):
* work when the kids are sleep or in daycare * don't work all the other time (I usually check email, server status and such minor tasks)
My daughter gets 11-12h at night and a couple of hours of nap. So, I always try to adapt around her schedule:

    9,30h - 13h day care
    14h - 16h nap
    21h - 8,30h sleep
 I started working at 21h at first. This started messing with the mother schedule and staying up late is not always the best solution. Although it's the most quite time.
So i ended up waking up as soon as possible everyday, coffee up and start working for a couple hours before they woke up. Then I'll take her to daycare (which takes 12min*2 walking) to get a mental break, came back home and working till 12h30 when I go back to pick her up.
Then I usually take a nap with her. Then park time, then bath and dinner, then I'll check if everything's ok (altough I keep checking with the smartphone every now and then). I cannot get any job done when she's playing/"idling" around the house.
And that is the only tip I could share right now (TLDR): start working really early in the morning before anyone wakes up. <comment><USER2> My situation is unique so don't know if this will help you. My son is also under 2 years old. He has always been a very happy baby (never cries except for when he gets hurt which almost never happens). I guess this is a bit different than what most parents experience. My son sleeps a good 12 hours through the night and additionally naps for 2-3 hours during the day. This means he's only up for about 9 hours give or take in a day. This isn't always true but it's pretty standard. It helps that my wife is a stay at home mom. I pretty much spend mornings with him, work during his nap, a few more hours in the afternoon, then work evenings to night. I get adequate sleep hours and are able to function pretty normally on a good schedule. I am not sure how that will play out for you. As a note, I have my office in a separate room he is never allowed to come into

</comment><comment><AUTHOR> I forgot to say that I live in Spain, which shares timezone with Poland and northern Norway ([http://www.worldatlas.com/webimage/countrys/europe/eutimetwo...](http://www.worldatlas.com/webimage/countrys/europe/eutimetwo.gif) >2000 km difference in longitude... I know). We should have the UK/Portugal timezone. So when I say we eat at 13h it's really 12h "sun time".

</comment><comment><USER3> My son is 3.5 years old. I've never been able to work longer than 3 minutes when I was home (and he was awake). My solution is office+baby sitter(now kindergarden) as I can't actually focus at home (unless the family is sleeping). What I like about your solution is the work-life balance and healthy breaks.

</comment><comment><USER4> 2 kids; 3y and 1y.

I pay for office space and treat my own work the same as if I was working for someone else.

I go to the office to work, and when I'm home my interrupt flag is set to 1.

This is the only way I can get things done. Anything else and someone is bound to be unhappy.</comment>


Show HN: Asciibook – An eBook Generator for AsciiDoc - <AUTHOR> Asciibook is an e-book generator tool that can convert AsciiDoc to e-books in HTML/PDF/EPUB/MOBI format.
GitBook used to be the best open source e-book generator, but they abandoned the project at the end of 2018. E-book authors either continue to use GitBook without maintenance or write their own scripts. So I came up with the idea to write a new eBook generation tool to replace GitBook.
Homepage: https://asciibook.org/ GitHub: https://github.com/asciibook/asciibook
Features:
- Supports generation of HTML/PDF/EPUB/MOBI.
- Based on the command line, distributed via docker, works well with CI/CD.
- HTML/CSS/JavaScript based theme system.
- Support latexmath.
For demonstrate, I generated an e-book using the source code of the "Pro Git", please visit https://asciibook.org/progit2/.
This project has just been released, I will continue to optimize it. Welcome to use and provide feedback. <comment><USER2> I like your project.

The fact that Gitbook is no longer maintained is a sad news for me. I don't usually write books but I my favorite to maintain a product manuel is to use Gitbook. For example, here is a prototype for my recent project: [https://xxz.jakehao.com](https://xxz.jakehao.com)

At a first glance Asciibook's interface is not eye appealing as Gitbook. I hope your project can keep the momentum and hope to use it in production one day!

<comment><AUTHOR> Thank you.

GitBook's default theme is great. I think the biggest difference is that the toc is displayed on the left side and can be displayed persistently. I will improve the default theme.

</comment></comment><comment><USER3> Looks cool, I look forward to testing it out more.

I noticed a bug: In the sample PDF ([https://github.com/asciibook/progit2/releases](https://github.com/asciibook/progit2/releases)) the admonitions are not loading. Instead there are empty rectangles where the icons should be.

<comment><AUTHOR> Thanks for the feedback. I found out that this is because wkhtmltopdf renders the page without waiting for the fonts to finish loading. Increasing rendering latency is a solution, and I'm looking for a better solution.</comment></comment>