How are zlib, gzip and Zip related? (2013) - <AUTHOR> http://stackoverflow.com/questions/20762094/how-are-zlib-gzip-and-zip-related-what-do-they-have-in-common-and-how-are-they/20765054#20765054 <comment><USER3> In other compression news, Apple open sourced their implementation of lzfse yesterday: [https://github.com/lzfse/lzfse](https://github.com/lzfse/lzfse). It's based on a relatively new type of coding - asymmetric numeral systems. Huffman coding is only optimal if you consider one bit as the smallest unit of information. ANS (and more broadly, arithmetic coding) allows for fractional bits and gets closer to the Shannon limit. It's also simpler to implement than (real world) Huffman.

Unfortunately, most open source implementations of ANS are not highly optimized and quite division heavy, so they lag on speed benchmarks. Apple's implementation looks pretty good (they're using it in OS X, err, macOS, and iOS) and there's some promising academic work being done on better implementations (optimizing Huffman for x86, ARM, and FPGA is a pretty well studied problem). The compression story is still being written.

<comment><USER4> Strange that Apple didn't publish it on [https://github.com/apple](https://github.com/apple) (which holds all of their open Swift repos).

Also, to clarify, ANS is relatively new (2009) but arithmetic coding has been around for a long time. Historically it was avoided because of patents, many (all?) of which have now expired. Apparently ANS isn't going to be patented.

<comment><USER5> Question not about ANS, but patenting: Wouldn't it make more sense for Apple (or anybody) to actually patent it, and keep those patents, but make it open via licensing ? If there's patentable material and $developer passes on filing for it, doesn't that leave it open for poaching by $third_party ?

<comment><USER6> The patent is invalid if prior art exists,so publishing it is enough to avoid it being poached by others

<comment><USER7> But doesn't the patent office only look at previous patents when searching for prior art? Of course, other sources of prior art can be brought in as a defense, but it still may not stop someone from getting a patent initially and using it to harass financially weak opponents.

<comment><USER8> Lack of patent examiner familiarity with the industry, history, and the state of the art is traditionally considered a weak point in the system as a whole. Supposedly when writing the patent claims you're supposed to do a search to make sure you're not conflicting with other patents and that there is no prior art, but this is often used to word the patent in such a way to avoid the prior art from invalidating the patent, or use differences with the prior art as support for the uniqueness of the patent being applied for. Unfortunately, patent examiners are traditionally illequipped to accurately make an assessment, and the patent applicant is allowed to make adjustments to address the issues the patent examiner found. I remember there was work on getting patent examiners to be more familiar with the areas the patents they are examining/approving are for (technology, software, or business, for example), but I don't know where that stands today.

However, IANAPL and IANAPE.

<comment><USER9> [http://patents.stackexchange.com/](http://patents.stackexchange.com/) helps with this

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Not only is this a great read, but the follow up for citations is replied with "I am the reference".

If this were reddit I'd post the hot fire gif. Eh, here it's anyway: [http://i.imgur.com/VQLGJOL.gif](http://i.imgur.com/VQLGJOL.gif)

<comment><USER11> I thought he was joking.

Then I read the name: Adler: as in Adler-32 (the checksum function that zlib uses).

Then I knew it was real. The darn author of zlib answered the question. That's as close as you're gonna get to "primary source" folks!

<comment><USER12> >> That's as close as you're gonna get to "primary source" folks!

Yes it is. Whenever I think of PKzip I am reminded of the sad tale of Phil Katz death - partly because I share his first and last initials, and now reading his Wikipedia page I see we had more in common. Fortunately alcoholism is not my thing.

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

<comment><USER13> I remember reading that the creators of the ARC format sued Phil Katz for essentially taking their original source code and rebranding it PKARC (with assembly optimizations). They claim [1] that Katz did essentially the same thing with PKZIP.

Can anyone verify these claims? I always thought it was an injustice that the original authors were treated poorly by the BBS community and treated like a big company despite just being run from home.

[1] [http://www.esva.net/~thom/philkatz.html](http://www.esva.net/~thom/philkatz.html)

<comment><USER14> This is covered in the BBS Documentary[1]. A comparison of Phil Katz work showed he just renamed variables and moved things around. Phil rallied the BBS community to character assassinate Thom. The documentary is shot years later and Thom still breaks down and cries when talking about what happened. It is very sad.

[1] [http://bbsdocumentary.com/](http://bbsdocumentary.com/)

<comment><USER15> Crazy how that documentary appears to be not for sale in any form and DVDs on Amazon go for $3xx. Am I missing something?

<comment><USER16> The page says: "Enhanced Digital Downloads of the BBS Documentary series are planned. Please sign up here: email@example.com if you wish to be notified."

But it appears to be on YouTube: [https://www.youtube.com/playlist?list=PL2B9EF89CE228ED0A](https://www.youtube.com/playlist?list=PL2B9EF89CE228ED0A)

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> It's annoyingly common how the OP doesn't mark this answer as accepted, or even acknowledge how amazing this answer is from one of the technology's creators -- instead just goes on to ask a followup.

<comment><USER18> The accepted answer is often wrong (or obsolete) and grants a small number of points. The obsession with it on SO is a bit odd.

<comment><USER19> Yeah I tend to think if another answer has double the points of an accepted answer, that answer should come first.

<comment><USER20> Plus, often there is a decent and accepted answer given quickly and then a much more complete answer given later on that is really the one that should be considered in the archive.

</comment></comment></comment></comment><comment><USER21> It seems like it wouldn't be that hard to create an indexed tar.gz format that's backwards compatible.

One way would be to use the last file in the tar as the index, and as files are added, you can remove the index, append the new file, append some basic file metadata and the compressed offset (maybe of the deflate chunk) into the index, update the index size in bytes in a small footer at the end of the index, and append to the compressed tar (add).

You can retrieve the index by starting at the end of the compressed archive, and reading backwards until you find a deflate header (at most 65k plus a few more bytes, since that's the size of a deflate chunk), If it's an indexed tar, the last file will be the index, and the end of the index will be a footer with the index size (so you know the maximum you'll need to seek back from the end). This isn't extremely efficient, but it is limited in scope, and helped by knowing the index size.

You could verify the index by checking some or all of the reported file byte offsets. Worst case scenario is small files with one or more per deflate chunk, and you would have to visit each chunk. This makes the worst case scenario equivalent to listing files an un-indexed tar.gz, plus the overhead of locating and reading the index (relatively small).

Uncompressing the archive as a regular tar.gz would result in a normal operation, with an additional file (the index) included.

I imagine this isn't popular is not because it hasn't been done, but because most people don't really need an index.

<comment><USER22> If I recall correctly and it's been a while: The initial header is x bytes from the beginning of the file, or that you have to search for a known key string PKsomething. Then you have to go back and forth between that and the compressed data as you decompress. When compressing files you have to go back to the beginning of the zip file ( or disk1 in a multi disk archive) and update that table with the CRC info. Just was not practical for streaming for multiple reasons. Remember the original zip file format was created by phil in about 1987. I believe they just thought it easier to start over with a better design for gzip with the same compression algorithm.

<comment><USER20> That can't be the case anymore because I implemented a streaming function a few years back that sends an unlimited number of files as a zip, but builds the zip on the fly streaming it to the client. Maybe it works because I am not using compression (files in my case are all JPG and/or compressed video so there is little benefit). But my process definitely starts streaming the zip right away and has to pull URLs on the fly to create the zip file.

<comment><USER22> This cannot be a 'true' zip file. The central directory is at the end of the zip file. It's made up of information that is needed for the decompression. So if you are streaming it, you cannot decompress until the entire file is reassembled.

<comment><USER23> You can definitely compose a zip file "on the fly" and stream it out. The central directory at the end of the zip file can be determined from all the content already streamed.

The only wrinkle is that each entry has a header which typically states the compressed size and checksum. Either you have to compress each entry content in some temp buffer or file to figure out the compressed size and checksum, then write out the header and compressed content. Or you write out the header with these fields zeroed, then compress the content on the fly and write it out, then write out a data descriptor with the compressed size and checksum.

<comment><USER24> What the parent is saying is that the client has to buffer the entire zip file before they receive the index and can begin decompressing it. "Streaming compression" usually implies streaming _de_ compression as well—importantly because a non-negligible use case for streaming compression is sending streams of compressed data that won't fit on the destination together with the decompressed copy; or sending _continuous_ streams of compressed data that could never reach the end to be decompressed. What the parent is saying is that zip cannot work for these use-cases.

</comment></comment></comment></comment></comment></comment><comment><USER25> Worth reading answer about coolest kid on the block: xz compression algorithm (of lzma fame) plus tar.gz vs tar.xz scenarios/discussion.

[http://stackoverflow.com/questions/6493270/why-is-tar-gz- sti...](http://stackoverflow.com/questions/6493270/why-is-tar-gz-still-much- more-common-than-tar-xz)

<comment><USER26> Did you intend to link the answer, maybe?

</comment></comment><comment><USER27> My father teaching me to type PKUNZIP on files that "ended with .zip" in the DOS shell (not long before the Norton Commander kind of GUI arrived to our computer) is one of my earliest memories as a toddler: I would ask him "What does it mean?" and he would simply not know. It was 1990 and I was 3 and a half I think. When I learned what it stood for it was kind of epic, for me.

</comment><comment><USER28> The last few days i find myself wondering if there needs to be some kind of org set up to preserve this sort of info.

Right now it seems to be strewn across a myriad of blogs, forums and whatsnot that risk going poof. And even if the Internet Archive picks them up, it is anything but curated (unlike say wikipedia, even with all the warts).

<comment><USER29> The Internet Archive has both curated and non-curated collections. Right now the Wayback Machine doesn't have any curation, but that doesn't mean it's going to stay that way.

However, in this situation, the collaboration between Wikipedia and the Wayback may be what you had in mind. We're working with Wikipedia to make sure all external links from Wikipedia articles are backed up in the Wayback Machine, and there's a Wikipedia bot going around adding these links to articles.

<comment><USER28> Not quite.

How easily would it be to find the linked to stackoverflow answer on the archive if ever stackoverflow were to vanish from the net one day?

There was also a wikipedia article linked on HN recently about a certain mainframe terminal, and a spreadsheet program that make use of a special capability of that terminal. Said article was at risk of being deleted from wikipedia because they deemed it "original research".

Again, how easily could one find such an article within the archive?

<comment><USER29> Ah, now you want to talk about discovery! It so happens that I'm building a search engine for the Wayback Machine. But it's true that discovery for it is never going to be that great until the search engines that people commonly use index the Wayback, which is probably never.

<comment><USER28> I dunno why you seem to treat those as two separate issues.

The way i see it, one feeds into the other. Wikipedia and other wikis have a repuration for being time/attention sinks, this because you can follow one article to another to another.

Search don't do that. It may or may not barf up what you are looking for if fed the right terms, not much beyond that.

Maybe what i have in mind is something akin to wikiquote but for topics rather than persons. So that this posting by Adler can be filed under zip, gzip, zlib and whatsnot, and people can find it to go alongside the "encyclopedic" description of either of the technologies.

<comment><USER29> I don't think they're separate issues, and I totally agree that they feed into each other. I'm just having a hard time figuring out what this HN discussion is about.

</comment></comment></comment></comment></comment></comment><comment><USER30> It is rare to be able to have a question answered so completely and from such a first-hand source. This post is gold and tickles me in all the right places.

StackOverflow is sitting on a veritable treasure trove of knowledge.

</comment><comment><USER31> Reminds me of the very sad zip story:

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

The whole "The BBS Documentary" is great and I recommend starting at the beginning if you're interested in it.

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

</comment><comment> 404-universe Where do the other popular compression utilities (e.g. bzip2, xzip, lzma, 7zip) fit in to this?

<comment><USER32> The big picture is that there's a few compression algorithms.

Run Length Encoding

Huffman Encoding

Lempel Ziv (LZ77)

Burrows Wheeler Transform

The interesting part of all these specific implementations is their own specialized way of extending or combining these algorithms for their own niche (or tradeoff point).

Bzip2 is for example, compresses really well because BWT is expensive, but clever - rzip extends the LZ part of bzip2 to look further across the file (instead of a few hundred kb).

Zlib itself has enough of these flags exposed out, so all Zlib isn't really the same - Z_FILTERED, Z_HUFFMAN_ONLY, Z_FIXED, Z_RLE etc. Look at something like Zopfli to see how they can be remixed, provided the tradeoffs of CPU change from the historic positions of Zlib.

<comment><USER33> Beside Huffman coding, there is also arithmetic/range coding and now is becoming widely used ANS coding - e.g. LZFSE (Apple), ZSTD (Facebook), VP10 (Google): [http://encode.ru/threads/2078-List-of-Asymmetric-Numeral- Sys...](http://encode.ru/threads/2078-List-of-Asymmetric-Numeral-Systems- implementations)

</comment></comment></comment><comment><USER34> One important difference in practice is that zip files needs to be saved to disk to be extracted. gzip files on the other hand can be stream unzipped i.e curl [http://example.com/foo.tar.gz](http://example.com/foo.tar.gz) | tar zxvf - is possible but not with zip files. I am not sure if this is a limitation of the unzip tool. I would love to know if there is a work around to this.

<comment><USER35> You can't do that with a .zip file because the file header information is actually at the end of the file. You could work around that by sending the header first, though.

<comment><USER36> You can't put the header first. It is an intentional feature of .zip that the header is at the end so you can update a large zip file by just appending a new header to the end. That way the entire file does not have to be rewritten. Just read the old header, append new files, append new header. This was important back in floppy disk days

<comment><USER35> >> Just read the old header, append new files, append new header. This was important back in floppy disk days

Don't forget 'overwrite old header'

Important for floppy disks in two ways, one because of space constraints and two, because of how slow floppies were.

<comment><USER37> _Don 't forget 'overwrite old header'_

Why? The new one will become the 'real' one since it will be at the end of the modified file. So it doesn't really matter if you delete the old one. If you're really trying to squeeze file sizes down, you could reference the old 'header' from the new one, so that you do not have to list the entire archive's contents again.

<comment><USER38> Having written code to extract files from a ZIP file, it's because the header is variable sized, anywhere from 22 to 65,557 bytes in size (22 bytes fixed, up to 65,535 bytes for a comment). There are two ways to scan for the header, one is to seek just 22 bytes shy of the end of the file and start checking backwards (since the majority of ZIPs I've encountered do not have the comment) or, seek 65,557 bytes from the end and scan forward.

This fact has been used to construct pathological ZIP files where one tool will report one list of files and another tool will list a different set of files. That's why you really need to overwrite the old header.

<comment><USER36> then you wrote a bad extractor. Scanning forward is against the format. Zipping up a zip file is a perfectly valid thing to do. If the inner zip is stored uncompressed you'll have 2 headers at the end. If you scan forward you'll fail.

</comment></comment></comment></comment></comment></comment></comment><comment><USER39> Wow a stackoverflow question that hasn't been closed or removed for some trivial reason--thought I'd never see something like that again.

<comment><USER40> You think stackoverflow has too many good questions being closed? If anything I think more could be closed.

<comment><USER41> Typically when an interesting stackoverflow thread is linked on HN, it's closed. I don't know why this is. But it gives a very bad impression of the site's moderators.

<comment><USER42> Almost every link I follow from Google to SO results in a "closed as offtopic" question.

Usually the question has the exact answer I was looking for (I guess that's why its pagerank is high).

</comment></comment></comment></comment><comment><USER43> It's kinda bad-ass when he said: you can use this text on Wikipedia, I'm the primary reference.

<comment><USER44> Wikipedia mostly doesn't allow primary sources though. It needs to be corroborated by a reliable secondary source.

<comment><USER45> Which is why he actually said it could be cited:

>I am the reference, having been part of all of that. This post could be cited in Wikipedia as an original source.

His post on SO is the reliable secondary source.

<comment><USER46> No, his post on SO is a firsthand account, and is therefore an unreliable, primary source. Technically speaking; Nothing personal.

</comment></comment></comment></comment><comment><USER47> I love the discussion in the comments:

> This post is packed with so much history and information that I feel like > some citations need be added incase people try to reference this post as an > information source. Though if this information is reflected somewhere with > citations like Wikipedia, a link to such similar cited work would be > appreciated. - <USER2>

> I am the reference, having been part of all of that. This post could be > cited in Wikipedia as an original source. – Mark Adler

</comment><comment><USER48> But can he invert a binary tree and is he willing to relocate to San Francisco?

<comment><USER49> What does "invert a binary tree" mean?

<comment><USER50> It's a reference to [https://twitter.com/mxcl/status/608682016205344768](https://twitter.com/mxcl/status/608682016205344768)

<comment><USER49> I know the reference and I saw the discussion around it when it came out. I still don't understand what "invert a binary tree" means.

</comment></comment></comment></comment><comment><USER51> When I read "I am the reference" it reminded me of "I am the danger".

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

<comment><USER52> And another one: you are not IN a traffic jam, you ARE the traffic jam.

</comment></comment><comment><USER53> When Chuck Norris computes checksums, he uses Adler-32

</comment><comment><USER54> Archived link juste in case [http://archive.is/SvUO5](http://archive.is/SvUO5)

<comment><USER55> I appreciate your effort and sentiment, but it would be nice if the awful eyesores of ads were not plastered all over the page.

<comment><USER56> I'm confused. The only adds in the Internet Archive are the ones from the original page. Either you're getting MITM'd by someone who's injecting ads, or your ad blocker doesn't deal with archived links so well.</comment></comment></comment>


Updated Packages – Python 3.3 - <AUTHOR> https://wiki.ubuntu.com/RaringRingtail/TechnicalOverview#Python_3.3 <comment><USER2> I don't code Python so as an outsider it always seemed strange that almost all code was written for Python 2.x - like 3 was unanimously rejected from the community. Can anyone shed light on why this is/was the case?

<comment><USER3> As a Rubyist it also seemed strange to me. As soon as Ruby 1.9 became stable, it was embraced by the community fairly quickly. Ruby 2.0 has only been out for a month and there are already projects that require 2.0. In contrast, Python 3 adoption _still_ isn't finished, and Python 3 has been around for several years longer than Ruby 1.9.

I guess that the incompatible changes in Python 3 don't really help. Ruby 1.9 introduced incompatibilities but they were fairly minor and easy to resolve. The biggest incompatibility was probably the introduction of string encodings. Python 3 introduced a stricter string encoding system and changed syntax in some ways. Some of the syntax changes make it very difficult to write code that is compatible with 2.6, 2.7 and 3.0.

<comment><USER4> The next version of Django (Python's largest web framework) will experimentally support Python 3.0 _next_ release. They did so because maintaining two branches would be a pain, and they didn't want to dump their existing community. Not too long ago, matplotlib (the plotting library) didn't have ports for some versions. They were slow to port because they were waiting for scipy and numpy. Anything which deals heavily in string processing needs a major re-write. Libraries were waiting for other libraries, which where waiting for other libraries to be ported.

If Rails didn't support Ruby 1.9, I'd imagine the migration would have been slower.

<comment><USER5> The word "re-write" is overkill, and if there are examples, I haven't heard of them. That isn't to say supporting Python 3 isn't a big job (for a lot of projects).

</comment></comment></comment></comment><comment><USER6> Been happily running Ubuntu 13.04 with Python 3.3 for a few weeks. Sure some packages will break, but it will initiate a real migration, and in the end Python3 will be the default Python. All in all, there's no way to make this transition without breaking stuff, it just needs to be done.

</comment><comment><USER7> Arch has been using Python 3 for quite a long while, now.

However, any push that allows us to use 3.3 is a great thing. I've been reading the 3.3 docs and being like, neat feature! Then switching back to the 2.7 docs and realising I can't use it :(

<comment><USER8> Yep, after the feature freeze between 3.1 and 3.2, 3.3 was a significant jump forward.

</comment></comment><comment><USER9> Bha, I still believe that's a mistake. Breaking already existing and working tools for the sake of having python3. Thousands of scripts use "python" as default, instead of "python2". They will all break. The problem isn't when it's your own stuff. but mostly when you're using a automatically build system that use "python" _somewhere_. And then, that thing crashes because it's now expecting python2.. or that the 10 years old package would automatically be ported to python3.

As far as I'm concerned, I would have preferred Python to be Python2.x, and a new code name for Python3, i.e. Cobra.

<comment><USER5> Nothing will break (in the sense you mention). Python 2 will remain /usr/bin/python while Python 3 is /usr/bin/python3.

<comment><USER9> Ha, ok thank you. With archlinux, /usr/bin/python is now linking to /usr/bin/python3..

<comment><USER5> Yeah, and I don't know of anyone else doing this.

</comment></comment></comment></comment><comment><USER10> Python 3.3 was added to Fedora in August 2012. Source:

[http://koji.fedoraproject.org/koji/packageinfo?packageID=978...](http://koji.fedoraproject.org/koji/packageinfo?packageID=9781)

<comment><USER11> Fedora is more of a bleeding-edge (or at least developer-focused) distro - they also ship with Ruby 1.9 instead of 1.8.

<comment><USER12> Interesting, until last year I used to use Ubuntu when I wanted a bleeding edge and lightweight OS for, say, working with new hardware. How things change.

<comment><USER13> In its lifetime Ubuntu has never been bleeding edge nor lightweight compared to many other distros. I'm an Arch user all the way but I still take other distros for a test drive every so often and it amazes me the crap distros bundle together in packages when so many things could be made to be optional dependencies. I guess it all depends on your standard for lightweight :).

</comment></comment></comment></comment><comment><USER14> Interesting. Maybe as the push to Python 3 gets more forced, more active- legacy code will be upgraded?

<comment><USER15> Let's hope so, there's got to be a tipping point.

</comment></comment><comment><USER16> Previous discussion: <https://news.ycombinator.com/item?id=4486608>

This was around Ubuntu 12.10, references Ubuntu wiki with nearly the same text back then.

</comment><comment><USER17> I think it's good that they "force" a little for devs to start using Python3.

</comment><comment><USER18> When will perl6 become the standard perl?

<comment><USER19> Perl 6 is a different language from Perl 5, and both are being developed actively. Perl 5 was at version 15, last I checked.

Python 2 is not being developed actively, aside from security updates, so it is permanently frozen at 2.7, with the intent of removing support entirely eventually (though not for a while).

It's not really a like comparison to compare the two.

<comment><USER20> >Perl 6 is a different language from Perl 5, and both are being developed actively. Perl 5 was at version 15, last I checked.

It wasn't always that way, however much certain luminaries try to retcon. Perl6 was originally intended to be, well, the next version of perl; it was only after the community's rejection that the decision to continue perl5 happened. It's not beyond the realms of possibility that the same thing could happen to python (though I certainly hope not, and stories like this suggest we're reaching the tipping point).

<comment><USER21> _it was only after the community's rejection that the decision to continue perl5 happened._

The lack of any usable Perl 6 implementation by the time of Perl 5.12 did more to promote the continuation of Perl 5 as its own project than any specific _rejection_ of Perl 6. When the plan was for Perl 6 to replace Perl 5, the idea that Perl 5.12 would migrate to Parrot as a VM so that Perl 5 and Perl 6 code could run in the same process.

</comment></comment></comment></comment><comment><USER22> There's always Linux Mint[1].

[1] <http://www.linuxmint.com/about.php>

</comment><comment><USER23> Ubuntu also thinks Unity is a good idea.

</comment><comment><USER24> I like Python, but keeping both 2 and 3 alive for so long has caused problems that make it hard to justify for serious projects. What will your boss decide when half his developers say that the two branch is right for a task and half say the three branch should be used? He'll pick another language.

I'm not sure I'm willing to trust Ubuntu to decide this for me ... they also thought Unity was in my best interest, and foisted the Amazon store upon my desktop. Good luck Ubuntu ... I'm outta here.

<comment><USER25> Python 2 and 3 are in most practical senses two very closely related, but different, languages. So your scenario is not very different from the two groups of developers suggesting Python and Ruby.

By the way, assuming either language satisfies the external requirements for the project, any half-way competent boss would say "Figure it out. Bring me your decision by the end of the day(/week/whatever). KTHXBYE."

<comment><USER26> > Python 2 and 3 are in most practical senses two very closely related, but > different, languages.

They're so closely related you can write code compatible with both (and that's the path many — if not most — libraries are taking)</comment></comment></comment>


Ask HN: How to move files between cloud storages without downloading? - <AUTHOR> For example, move ~100GB from Google Drive to another cloud storage provider without having to download and re-upload them. Are there any solutions? <comment><USER2> No. Unless the storage providers support it natively, you won't be able to do it yourself.

Unless you just want to avoid doing it through your local connection. You can always stand up an instance in AWS, GCP or someone with the minimal connection distance to Google Drive and the target storage and automate the copy from there.</comment>


Live odds on the UK election - <AUTHOR> http://smarkets.com/politics/uk/general-election/2010 <comment><USER2> Graphs over time: <http://politicszone.betfair.com/>

To interpret the numbers do 100/(decimal odd) to get percentages as shown in the graphs.

<comment><USER2> For those that haven't been following UK politics, the UK's first ever televised prime ministerial debate was in mid April. Many of the dramatic changes in the graphs result from the Liberal Democrats doing well out of that encounter.

</comment></comment><comment><USER3> the smarkets dudes are really smart guys, i work across the floor from them at another startup. you should keep an eye on smarkets and the guys behind it, they're always doing/discussing some technologically cool shit.

</comment><comment><USER4> ... or just a link to a gambling site :-(

<comment><AUTHOR> It's a prediction market - different than a pure gambling website. The prices are set in realtime by the users so there is 'wisdom of the crowd' information for the public.

<comment><USER4> The user pays money in the hope of winning more back - it's gambling however you slice it.

There is no information of any value here outside the context of the site itself - unless you're claiming that your audience is a representative sample of the UK population?

<comment><USER5> It's by far the most accurate prediction of the result. People putting their money where their mouth is - generally a lot more reliable than somebody with a clipboard in a shopping center asking voters, or the opinions of a TV reporter.

<comment><USER6> >It's by far the most accurate prediction of the result.

Do you have any evidence for this? E.g. comparisons of polling vs betting predictions from previous elections.</comment></comment></comment></comment></comment>


Show HN: MediaTag.io – add tags to HN posts - <AUTHOR> https://mediatag.io/extension <comment><AUTHOR> Hello HN,

MediaTag is an app to tag anything: webpages, images, videos and more. It is an easy and flexible way to keep things organized.

A feature I am very happy with is a way to see what pages have been tagged (either that you have tagged, or that are shared publicly) right from HN. You can see how an HN page looks like with tags:

[https://mediatag.io/img/extension/news.ycombinator.large](https://mediatag.io/img/extension/news.ycombinator.large)

And also for reddit:

[https://mediatag.io/img/extension/reddit.large](https://mediatag.io/img/extension/reddit.large)

I'm also more than happy to offer discounts. Just used this link: [https://mediatag.io/plans?coupon=betatester](https://mediatag.io/plans?coupon=betatester)

Any questions, let me know, I'd love to hear some very critical feedback.</comment>


The Company Isn't a Family - <AUTHOR> https://m.signalvnoise.com/the-company-isnt-a-family-d24f26c3f3fe <comment><USER2> Reid Hastings (Netflix founder) uses a different analogy.

He compares a company as a high performing "sports team". With the idea being, you're working towards a collective goal. You each have you're own role. But if you're not performing, you get cut. Just like any athlete would get cut.

The problem with the "family" analogy is it implies "unconditional love" regardless if you're messing up, failing, not performing.

<comment><USER3> I challenge the idea that people in a company are working towards a collective goal.

\- The goal of those with lots of equity, like the founders and investors, is that "collective goal" of company profit.

\- The goal of one employee may be to keep their job, provide for their family, and spend as much time with their family as possible.

\- The goal of another employee may be to learn as much as possible.

\- The goal of another employee may be to get promoted up as high as possible (for social and/or financial gains).

\- The goal of another employee may be to do as much social good as possible, regardless of what the effect is on the bottom line.

If a company is like a sports team, then I think it's like one that is thrown together in gym class where each student has a different goal.

\- One student may actually be competitive and want to win.

\- Another may care a lot about their grade, and only try when the teacher glances over at them.

\- Another may just be concerned with not getting sweaty and ruining his/her hair.

\- Another may be selfish and want to, in basketball for example, be a ball hog and take every shot.

\- Another may just be having fun, and not be too concerned with winning.

I understand that executives may _want_ their employees to act as if they are on a competitive sports team - working really hard together towards a common goal, and then heading home at night to relax and recharge. But the fact that executives want it doesn't make it an accurate description of reality.

<comment><USER4> Some sports execs want to increase their stadium attendance. LeBron wanted a trophy. Some play to get paid, some focus on staying healthy.

I think it's a fine analogy even when you add the nuances. Not all companies are good teams though - sometimes you have the marching band deciding what plays to run so they can play their favorite song, to mix analogies...

</comment></comment></comment><comment><USER5> I look at it like a company is a group of predator birds who happen all to be flying together in formation for a while.

Individuals temporarily have self-interest that aligns beautifully and lends itself to pattern flying. Individual incentives and goals will inevitably change over time.

Maybe one person will veer off in a different direction if the startup doesn't get A-list funding, maybe another will get bored after the prototype is finished, maybe another will fly off in chase of a relationship, etc.

Even large companies are like this. The CEO may be putting 150% into it for two years but will rationally give up and move on if things don't turn around. Someone may have tried hard to get hired right out of school, but after two years of experience fully plans on quitting to attend a PhD program.

I like to be very upfront with would-be hires about their goals. I don't expect someone to fly with the pack out of loyalty, there has to be something about their overall life plan that makes flying in this pattern a big win for some period of time.

I do want to talk about that life plan. How can time with my company help you get where you want to get and also help us get where we want to get? My goal of course is to make the experience of working there so incredible that you change your life plan to allow more time flying in our formation.

Some people don't have kids or spouses and would rather be the best indoor soccer player they can be or the best at spoken word night at the local coffee shop. When someone is at work I want them to be focused on goals that matter to them and that are meaningful to the company, but I also want them to switch gears and live their life whatever it is, since I know that they will do that anyway if they have any sort of independent, inner drive.

</comment><comment><USER6> > Because by invoking the image of the family, the valor of doing whatever it > takes naturally follows. You're not just working long nights or skipping > vacation to further the bottom line, no, no, you're doing this for the > family.

Same trick used by college fraternities to do all sorts of crap.

<comment><USER7> I totally disagree.

College fraternities exist as a framework for social contracts between strangers alone in a college environment. Each member is incentivized to support/protect/uplift the other members (just like a family) as they will be able to expect it in return. You can somewhat make the argument for each chapter's national org, but I really don't think the incentives are really that out of line between them, Nationals just tend to be poorly run.

Companies, as the article discusses, don't.

<comment><USER8> Agree, and with all those benefits that come from a functional family, so too do dysfunctional fraternities suffer in the same way dysfunctional families do.

</comment></comment></comment><comment><USER9> It's not that I have problem with this notion itself personally, but when it is used with a subtext of excuse for the problems, that's where I have issues.

e.g. The company is going through great hardship, so we will have to mistreat you. You are part of our "family" so you understand and put up with that, right?

I've been in that situation many years ago and was frustrating.

<comment><USER10> I agree. I don't think always (or mostly) malicious or devious, it's just the owners and management are proud of having a good working environment. Hey, I much prefer good working environments than bad ones.

Having said that, the article is correct in that it doesn't really treat you like a family. If you did something they didn't like, they would more likely fire you than cut you a break like a family would. I mean take it for what it is, a description of a comfortable, good working environment and not a place that won't hesitate to fire you for the usual reasons.

I think calling it a family is slightly disingenuous or maybe hyperbole, but unless they are using it as power over you, I don't worry about it much. Like I said, it sure beats some alternatives.

</comment></comment><comment><USER11> The real problem with "The Company is a Family" is enmeshment and the resulting lack of boundaries. The company has an issue, so _you_ need to make sacrifices to resolve it.

I'm not opposed to spending time and effort - even extraordinary amounts of it - to helping the company. But as an employee, I make _trades_ , not _sacrifices_. Sacrificing for the company makes my working conditions worse, and so I will look elsewhere if I'm not fairly compensated for it (which wouldn't be sacrifice now, would it?)

</comment><comment><USER12> This post is very simplistic. A company is defined by its culture. There are many different models for building the culture of a company.

Different cultures prioritize different things. For example, Netflix prioritizes the individual Star culture. Zappos prioritizes the commitment culture.

So whether a company is a family or a team or business transaction depends on the founder's imprint.

A good read is: [https://cmr.berkeley.edu/documents/sample_articles/2002_44_3...](https://cmr.berkeley.edu/documents/sample_articles/2002_44_3_4776.pdf)

</comment><comment><USER13> We had project managers come in and say "the business" has set a deadline of X on the project. I wasn't involved in setting the deadline even though I'm the architect responsible for leading the dev team to get it done.

I said I wouldn't commit the team to a date that I had no role in setting. They asked me when do I think it could get done, I told them I didn't know.

Then when we estimated our first sprint and based our capacity on a realistic 5 hour days per dev based on meetings, tickets, etc. they tried to push back. Agile sounds all good until you start talking about a "sustainable pace" and 40 hour work weeks.

All that to say, my job is not my family. I set the expectation of 40 hour work weeks. Even if I do end up working extra because I'm on a groove or doing something challenging or interesting, I don't let anyone know I'm working extra.

</comment><comment><USER14> Ok, here's a strange analogy, but hear me out. Think of a company as a hostel rather than a family or a sports team.

For example:

The owner is trying to make a profit (rather than a hard salary) and it's probably best if they're fairly detached or things go haywire, but a good hostel owner wants the hostel to be beneficial and enjoyable for the guests (regular employees) because it benefits everyone.

The hostel staff are management. They are much more involved with everyone, but still try to remain detached somewhat, since they might have to kick a guest out for bad behavior. Often they were previous guests, and those people often make the best staff (managers) because they know all sides of it. They get direct orders from the owners and try to make that work.

Guests are the equivalent of a company's employees. They are all there for different reasons and get all different kinds of things out of it. Some want to spend most of their day hanging out with other guests and staff. They're not in a hurry to leave and they get a lot of their satisfaction from the comfort of the hostel and the people they're with. Seeing the area is sort of tangential to them. Others are trying to see everything they can, they don't care about making friends, they have a plan and goals. On the extreme end, they might do something like cut in line to make sure they make the list for the next tour. In fact if they can't, they're probably going to another hostel.

Anyways it's a loose analogy, but everyone is there for different reasons that overlap at different points. They're not really all working towards the same goal, but again, their goals likely overlap. Nobody bats an eye that the goal of a guest isn't to make the owner the most profit, or vice versa. You can reasonably expect that most people are going to move on sooner or later. People may or may not become really socially involved, depending on what they want. Some hostels are large and less sociable, others are tightly knit and cozy. I can draw parallels for days.

I mean, obviously a hostel _is_ a type of company, but I still think it works as a helpful analogy. Most of the things I roll my eyes at or that people don't like about companies, you could try to apply to the hostel analogy and it will break the illusion of that thing being good. If people thought of their work more in that context, there might be a little less company koolaid being pushed around these days and a little more satisfaction for everyone.

</comment><comment><USER15> I would argue that the first paragraph is a critique of capitalism itself.

The implicit assumption of capitalism is that you have a perpetual debt that cannot be repaid, much like the Christian "debt" that cannot be repaid to the Abrahamic God.

Capitalism is as much an economic system as it is a moralistic and religious system.

<comment><USER16> _The implicit assumption of capitalism is that you have a perpetual debt that cannot be repaid_

What? Care to clarify?

<comment><USER15> The goal of capitalism is to produce _more_ than one is capable of consuming (i.e. market economy where one produces and sells to multiple people instead of just themselves).

There are various equilibrium states between supply and demand, but utility is infinite. If utility is infinite, then the goal of production is to satisfy an equally infinite debt to maximizing utility.

<comment><USER16> _The goal of capitalism is to produce more than one is capable of consuming_

This is the goal of any economic system as far as I can tell. I don't see how ownership of the means of production matters.

 _If utility is infinite, then the goal of production is to satisfy an equally infinite debt to maximizing utility_

Sort of. This is why we have sympathy/empathy, social mores, the rule of law, and finally the threat of Malthusian apocalypse. Each of these, in order of increasing severity, exists as a budget constraint on greed in service of utility maximization. And again, this has nothing to do with capitalism specifically -- it would be true in any economic system. Socialist and communist governments in the 20th century went to great lengths in order to remind us of that.

<comment><USER15> > Socialist and communist governments in the 20th century went to great > lengths in order to remind us of that.

Fundamentally, I think it comes down to power relationships. The market economy is a proxy for power relations. Communist (and fascist) governments removed the market economy and replaced it with authoritarian servitude. God shifts from the Economy to the State.

</comment></comment></comment></comment></comment><comment><USER17> About the article specifically, it's rather insubstantial and doesn't provide any more insight into company dynamics other than heartfelt paragraphs. Still a healthy reminder though.

But anyway, about the subject matter, from the several tech companies I've been at now I can see that this kind of "exec brainwashing" _does_ happen, and it always seems rather on-the-nose in it's indifference and facelessness. Where I work currently we even have paragraphs like these on our toilet doors! The thing is, people work better when it's "for" something. Something bigger than themselves, such as the "family" or "team" (it's probably something to do with our hunter-gatherer evolutionary genes). Execs, or rather HR and "Worker Performance Consultants" know this, and they (ab)use it to make workers produce more wealth for the company.

I think however that both companies and workers are to blame for past-shift hours, pressures to finish, and such, and both maybe partially for the same reason - a race to the bottom. In terms of companies, this can be for example when company X pushes their workers harder than company Y to undercut their prices. You definitely see this in things like ~[UK reference warning]~ Sports Direct International Ltd, which treats workers rather poorly [1][2][3], just to make their shoes a bit cheaper than that fancy hipster shop down the road who's staff work only their shift hours. In terms of workers, you see the exact same thing, where worker X will over-propose on project A to undercut Worker Y's realistically-proposed project A. So you see that if you don't work crazy hours to finish that big project, then you can definitely bet on somebody else doing it.

In the end it's not always "the evil company and their grubby execs" who are asking too much of their workers to get that good quarter result, but workers themselves asking too much of themselves to get that freelance project, job, promotion, raise, good reference, or whatever, over their job-market or worker peers.

I think maybe the little post misses a few parts of the picture, but like I said, a good reminder of the topic.

[1] [https://www.theguardian.com/commentisfree/2016/jun/08/inhuma...](https://www.theguardian.com/commentisfree/2016/jun/08/inhumane- sports-direct-mike-ashley-workforce) [2] [https://www.theguardian.com/business/2015/dec/09/how- sports-...](https://www.theguardian.com/business/2015/dec/09/how-sports- direct-effectively-pays-below-minimum-wage-pay) [3] [http://www.bbc.co.uk/news/uk-england- derbyshire-36855374](http://www.bbc.co.uk/news/uk-england-derbyshire-36855374)</comment>


Ask HN: What are the popular open source SOA testing frameworks? - <AUTHOR> I am looking for a list of open source SOA testing frameworks ? The features i am looking for is 1. mocking of down stream API calls 2. mocking of various response codes 3. automatic test data generation<p>Any other relvant frameworks is also welcome. <comment><USER2> [https://warewolf.io/ESB-blog/testing-framework-latest- releas...](https://warewolf.io/ESB-blog/testing-framework-latest-release/) You can try the new testing framework in Warewolf. You can download the software from [https://warewolf.io](https://warewolf.io) for a 30-day free trail</comment>


It looks like we finally get our first real look at the Galaxy S3 - <AUTHOR> http://www.bgr.com/2012/04/27/is-this-the-samsung-galaxy-s3/

<comment><USER2> Consumer news. Plus how many of these "OMG IS THIS THE NEW S3??!" posts do we need?

<comment><USER3> I've noticed this deluge too. Is it genuine grassroots enthusiasm for the new device or is it a successful PR campaign?

I'm a very happy owner of a Samsung Galaxy Nexus, but even I find the hype a bit much. Whether real or organic it seems to be aping the worst elements of the Apple rumor-news cycle a bit too much for me.

<comment><USER2> I don't think it's anything malevolent on the behalf of Samsung, I think it's just that the S2 was a very very popular phone (I'm the happy owner of one) and therefore the S3 launch is kind-of a big thing. But really, we don't need every slither of news about it to be published. It's just link-bait from BGR.</comment></comment></comment>


TTIP has failed – but no one is admitting it, says German Vice Chancellor - <AUTHOR> http://www.independent.co.uk/news/world/europe/ttip-trade-deal-agreement-failed-brexit-latest-news-eu-us-germany-vice-chancellor-a7213876.html <comment><USER2> _Critics say one of the main concerns with TTIP is that it could allow multinational corporations to effectively "sue" governments for taking actions that might damage their businesses._</comment>


Lua makes accessing REST APIs from the iPhone dead simple  - <AUTHOR> http://probablyinteractive.com/2009/10/20/Wax%20talks%20to%20twitter.html

<comment><USER2> Wax looks really interesting (since I don't really have an urge to go back to non-dynamic language development), but I don't immediately see how this gets around the "no interpreters" rule for getting into the app store. It looks like one app using Wax, by the creator of the project, has done so, but I'm not sure how.

<comment><USER3> Apple doesn't seem to notice unless you're using a widely-known toolset that they can easily detect, and even then, they miss quite a bit.

Not that this means it's a good idea to include an interpreter under the assumption that Apple won't notice -- if they do notice & care, you'll find you will no longer be able to update your app.

Apple has also demonstrated a history of caring about certain violations at the most inopportune times -- lots of camera applications broke when 3.0 was released, and Apple wouldn't let the authors release updates, since the only way to implement the required functionality was through undocumented API.

</comment></comment><comment><USER4> Wow, I'd love to use a more dynamic language for the iPhone (or at least one with GC).

Here's another article about Lua (with Wax) on the iPhone: [http://www.mobileorchard.com/announcing-iphone-wax-native- ui...](http://www.mobileorchard.com/announcing-iphone-wax-native-uikit-iphone- apps-written-in-lua/)</comment>


Singular Value Decomposition for Programmers - <AUTHOR> http://dragan.rocks/articles/17/Clojure-Numerics-4-Singular-Value-Decomposition-SVD <comment><USER2> One of my favourite ways to understand the SVD is like this.

Think about the x-y plane, and imagine that we've drawn out the unit circle centered at the origin. Now imagine we have some matrix A that we apply to each point in the plane. Thus points will go here and there and you could visualize this effect, if you want, as producing a sort of vector field drawn above the plane where the start of each arrow is the original position of a point and the end of each arrow is where the matrix A moved it. A cute thing about matrices is that it can only do one of three things to the unit circle. It can either collapse the unit circle into a point (which happends only if A is the zero matrix), or it can transform it into a line, or it can transform it into an ellipse. Other functions could possibly transform the circle into some other shape, but matrices are constrained enough that they can only do one of these three things to it.

Now for the SVD. Here's the thing. Basically the SVD gives you information about the ellipse at the output of the matrix. You apply _numpy.linalg.svd_ to your matrix and how can you understand what it gives you? Essentially it gives you information about the semi-axes of that ellipse.

The first column of the "U" matrix is a vector that start at the origin and extend out towards the first (biggest) semi-axis. The second column extend out to the second largest semi-axis, and so on. But they are all normalized so they don't actually touch the semi-axes, they only point towards them. The values in the diagonal of the middle matrix (often denoted Σ) in the SVD (called "singular values") contains the length of the semi-axes. If all of them are 1 then the matrix did not change the size of the circle one bit.

From this intuitive description follows a lot of the properties mentioned in the article. For instance, want to know if the matrix is invertible? Just check out the singular values. If one of them is zero (or near zero since the algorithm for computing the SVD often only gives you an approximate result) then that means the ellipse at the output is collapsed down one dimension, which means it is definitely not invertible since there are a bunch of points which are mapped to the zero vector, and there is no way to figure out where those points should map back to if you wanted to create an inverse function.

By the way, if you want to learn more, go check out Boyds course on linear dynamical systems[1]. That's essentially where I stole this explanation from.

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

<comment><USER3> I really liked the animated diagrams of principal component analysis [1] in this Stack Exchange answer:

[https://stats.stackexchange.com/questions/2691/making- sense-...](https://stats.stackexchange.com/questions/2691/making-sense-of- principal-component-analysis-eigenvectors-eigenvalues/140579#140579)

There, it's not about ellipses, it's about springs.

[1] PCA, not SVD, but PCA and SVD are, in a useful but not total sense, the same thing [2]

[2] [https://math.stackexchange.com/questions/3869/what-is-the- in...](https://math.stackexchange.com/questions/3869/what-is-the-intuitive- relationship-between-svd-and-pca)

</comment></comment><comment><USER4> Jeremy Kun also has a couple good articles about SVD:

[https://jeremykun.com/2016/04/18/singular-value- decompositio...](https://jeremykun.com/2016/04/18/singular-value- decomposition-part-1-perspectives-on-linear-algebra/)

[https://jeremykun.com/2016/05/16/singular-value- decompositio...](https://jeremykun.com/2016/05/16/singular-value- decomposition-part-2-theorem-proof-algorithm/)

The first one is particularly helpful for understanding SVD conceptually.

<comment><USER5> This finally nudged me into uploading a note on the relationship between PCA and SVD, which is not covered in Jeremy's otherwise excellent article. If anyone is interested in this, you can find it under [http://bastian.rieck.ru/research/Note_PCA_SVD.pdf](http://bastian.rieck.ru/research/Note_PCA_SVD.pdf).

</comment></comment><comment><USER6> Useful links to the library used in the article:

source code: [http://github.com/uncomplicate/neanderthal](http://github.com/uncomplicate/neanderthal)

and the documentation: [http://neanderthal.uncomplicate.org](http://neanderthal.uncomplicate.org)

</comment><comment><USER7> Note that computing the SVD of an m __*n matrix is O(mn^2) with m <=n.

So never try to do this for large square matrices. (Just like you should never compute the inverse of a large matrix).

Even for large non-square matrices, computing the SVD can be prohibitively expensive.

<comment><USER8> Not with randomized methods (which you should almost always use IMO).</comment></comment>


Software Development is fucked up - <AUTHOR> https://medium.com/@mtkocak/software-development-is-fucked-up-a002b3435be8#.9w4x1oulm <comment><USER2> > You want to start to learn from a starter kit. here: > [https://github.com/kriasoft/react-starter- > kit](https://github.com/kriasoft/react-starter-kit)

Well, that was your first mistake.. The official react starter kit from Facebook is a lot more basic: [https://facebook.github.io/react/docs/getting- started.html](https://facebook.github.io/react/docs/getting-started.html)

Secondly, calm down, and maybe try to look around for better education materials than rage against the machine, where the machine is {Facebook, Big Tech, github/kriasoft}

This article is just a rant, first against tech company profits, then against react, then against someone's bundle having too many libraries, then against people who try to solve too many problems at once.

<comment><AUTHOR> I agree. I think I was over angry when I was writing this.</comment></comment>


Sportmeets launches to get you organized and sport - your feedback? - <AUTHOR> http://blog.sportmeets.com/2010/05/sportmeets-in-public-beta/

<comment><USER2> quick thoughts as I look at the site \- make the whole discover, share, etc buttons clickable. Not just the bottom text

\- i'm not convinced why i want to signup? Give me a reason. Probalby just one reason. Test 3 reasons and see which one gets more signups

\- i feel overwhlemed by singup options. which do you care about most? focus on that. why even have such dominance of the "login" call to action? Most people that come to your site don't hvae an account yet. Creat account should be primary action. Sign-in shuld be a little link. people will find that.

-the header is too tall. reduce that and get teh important shit higher up on the page

\- i signed in using facebook. why take me to this other page where i have to do other stuff? The location thing is broken. This page doesn't look like your website - therefore a user trusts it less. unify the experience. Is there a "start" button in this page? I can't see one. I don't even know how to submit my email address.

k, that should be some good stuff to work with

<comment><USER3> cheers for the feedback.

* fair point on the signup/login area - need to work more on that * good point on the different design issue for the landing & join pages too

BTW, what did you mean by "dont even know how to submit my email address?

thanks.

</comment></comment><comment><USER4> I was not able to create an account using Chrome, IE, or Firefox with or without Facebook.

Otherwise it looks like something I would signup for (obviously, since I tried so hard).

<comment><USER3> Thanks for trying - can you share whether you got any error message?

<comment><USER4> No error message. There is no submit button. Facebook login didn't work. Tried using latest versions of IE (9), Chrome (5), Firefox (3.6). See screenshot here:

[http://rookery9.aviary.com.s3.amazonaws.com/3860500/3860743_...](http://rookery9.aviary.com.s3.amazonaws.com/3860500/3860743_d9a2_625x625.jpg)

<comment><USER3> It looks like the CSS Styles did not load for you. Are you able to access this link: <http://sportmeets.com/css/css.css> ?

<comment><USER4> Yes, I can. However, the page sportmeets.com/join does not link to the CSS. The join page starts with:

Have you actually tried it? I know this is not a computer or browser specific issue. Just trying to help.

<comment><USER3> Yep working fine in various browsers on win & mac and I get the page rendered all fine. I actually run sportmeets.com & I would really want to get down to why this is happening - can you email me your IP at firstname.lastname@example.com to check the server logs? Cheers.

</comment></comment></comment></comment></comment></comment><comment><USER3> am here & listening to you all!</comment>


Ask HN: Is Firebase Still Preferred? - <AUTHOR> <comment><USER2> Preferred, for what?

</comment><comment><USER3> Nah, Netlify is preferred by many now.</comment>


Introducing Zappar Cardboard - <AUTHOR> http://www.zappar.com/blog/cardboard-wts-2015/

<comment><AUTHOR> As the author of the blog, I'll keep an eye out here and try to respond to any questions or comments.</comment>


Wikipedia-size maths proof too big for humans to check - <AUTHOR> http://www.newscientist.com/article/dn25068-wikipediasize-maths-proof-too-big-for-humans-to-check.html#.UwTuA3gRq8M <comment><USER2> So, to me, proofs have two purposes. The first is to just say "This theorem is true". The second is to give some insight into the problem. I have no problem with such a proof satisfying purpose one; I may not be able to check it myself, but I can build a chain of trustworthiness all the way back to a program that I _can_ check myself. In such a chain, the truth of the final result is not, to me, in dispute.

Alas, such a proof throughly fails the second test. I can't see how to gain insight into the problem from such a proof, beyond just it validating previous thought chains of the form "If X were true, then I could deduce Y". It doesn't reveal more about the structure of the problem, or other results in the space.

It's no doubt useful (and all credit to the authors), but in terms of generating new mathematics, I'm dubious. Perhaps people more versed in this specific sub-field can tell me if I'm wrong?

<comment><USER3> Imagine if we could program a computer with all known mathematical truths. What curiosities would it discover that we have yet to find?

<comment><USER4> Perhaps an infinite number. However, like a tree falling in the woods ... if humans (or some other intelligence) can't understand it, has anything actually been discovered? Or is it more like a computer algorithmically solving a jigsaw puzzle?

<comment><USER5> What what? And, what the hell is an infinite number?

</comment></comment></comment></comment><comment><USER6> [https://hn.algolia.com/?q=proof#!/story/past_week/0/maths%20...](https://hn.algolia.com/?q=proof#!/story/past_week/0/maths%20proof)

<comment><USER7> Those submissions never got traction or comments, why link them?

<comment><USER6> Because sometimes older submissions end up getting some discussion, even when more recent submissions have more comments.

</comment></comment></comment><comment><USER8> [http://www.reddit.com/r/math/comments/1y5v15/if_no_human_can...](http://www.reddit.com/r/math/comments/1y5v15/if_no_human_can_check_a_proof_of_a_theorem_does/)

</comment><comment><USER9> "Wikipedia-sized" Is it really? They say in the article that the text of Wikipedia is a 10GB download, but that has to be compressed (and compression on plaintext, which comprises most of Wikipedia, is extremely efficient). I'm guessing (but have no proof) that their 13GB file was raw data.

A minor thing, but comparisons like this always drive me nuts. Just say "13GB proof too big for humans to check." Then there's no confusion.</sillyrant>

<comment><USER10> A lot of its name games. 10 gigs of possibilities tested is actually pretty short for something like OGR-27. We're probably going to prove OGR-27 in a few weeks (or has it already been announced?) and I'm fairly certain a list of all possible rulers checked would exceed 10 gigs. Yet you can report OGR-26 in only 26 small numbers, or I guess you could draw a graphic pix using 492 pixels or whatever.

So is OGR-27 merely 27 numbers aka a 1-d pixel "graph" probably around five hundred something pixels, or is it really zillions of gigs of rulers all of which are longer than the OGR?

</comment></comment><comment><USER11> "Wikipedia" is displacing "encyclopedia" and "Library of Congress" as a unit of measure!

<comment><USER12> Uh, and football field. The output of this proof if laid end to end would fill 37 regular sized football fields.

</comment></comment><comment><USER13> "The set-theoretical axioms that sustain modern mathematics are self-evident in differing degrees. One of them – indeed, the most important of them, namely Cantor's axiom, the so-called axiom of infinity – has scarcely any claim to self-evidence at all". John P. Mayberry

</comment><comment><USER14> From the linked Wikipedia article:

> All experiments were conducted on PCs equipped with an Intel Core i5-2500K > CPU running at 3.30GHz and 16GB of RAM.

Why are these experiments not being conducted on a more powerful computer or a cluster?

<comment><USER15> As already mentioned, it only took six hours. To make it run on a cluster or supercomnputer, you must parallelize the algorithm, which will take considerably longer time, even if it is easy. Then they likely have to apply for access, which also take time. Then it is easier to just run it on an available computer.</comment></comment>


Ask HN: Best job forums? - <AUTHOR>

I've noticed that the places I think to look (hn, craigslist, linkedin, stackoverflow) seem pretty low-traffic. I know there are jobs out there. Where do you look? <comment><USER2> I think the current trend is for companies to not post everywhere, since just about everyone is hiring developers these days. So developers just seek out companies and apply to them.

Another current trend is for recruiters at aggressive companies to actively reach out to potential candidates via Linkedin and other similar sites. The big ones, like Google, even have specialized tools to collect info on various forums (such as this one, I'm sure).

This puts startups at a disadvantage, because candidates won't know to seek us out, and fewer candidates are using job boards to find employment. So we need to work hard to 'get the word out' that we are hiring.

Here's an example of getting the word out: Solum (<http://solum.ag>) is a Precision Agriculture startup helping make the business of farming more efficient. We're hiring Data Engineers, Software and Web Developers, QA Engineers, and Designers. Interested? Send an email to firstname.lastname@example.com

</comment><comment><USER3> For UK based developers, our site <http://www.hackerjobs.co.uk> is getting progressively busier and we've recently had the likes of Facebook UK & Skype advertising technical roles.

</comment><comment><USER4> I might not be in the same field as you but here are the 3 sites I've used in the last 8 years, I get 2-3 calls per day in the following days after posting my resume on these sites: monster, workopolis (I think this one is canadian not sure) & contract job hunter (cjhunter - 25$/y fee).

Make sure you use "high demand" keywords in your resume as robots are scanning these will pull it up for employers/recruiters.

</comment><comment><USER5> I run a small ad free site[1] that links to several job boards. Most of the boards really are low traffic if you live outside of SF or NYC. Have you tried contacting recruiters?

[1] <http://careers.sh>

<comment><USER3> We (Hacker Jobs) usually get a few hits a day from your site. Thanks again for linking us.

</comment></comment><comment><USER6> I'm really liking gun.io at the moment.</comment>


Implementation of Xen PVHVM Drivers in OpenBSD – [pdf] - <AUTHOR> http://www.openbsd.org/papers/bsdcan2016-xen.pdf <comment><AUTHOR> The technical paper from his AsiaBSDCon talk:

[http://www.openbsd.org/papers/asiabsdcon2016-xen- paper.pdf](http://www.openbsd.org/papers/asiabsdcon2016-xen-paper.pdf)</comment>


Ask HN: Can deep learning be used to extract a payload from a stego image? - <AUTHOR> I've done a bit of research. Current (public) steganalysis methods merely detect steganography. Some research papers mention "locating steganalysis," which is basically finding where exactly the hidden message is in the image/stego item. After it's found, the problem becomes a cryptanalysis problem. Can deep learning be used for locating steganalysis as well as cryptanalysis? And could this be used for any stego image? Or will it be rendered obsolete as steganography software evolves? <comment><USER2> In theory, no, you should review the definition of semantic security to see why. In practice, deep learning is likely useful with side channel attacks, and here is an interesting talk about such a thing: [https://www.youtube.com/watch?v=QXTricqAtPk](https://www.youtube.com/watch?v=QXTricqAtPk)</comment>


Resources about programming practices for writing safety-critical software - <AUTHOR> https://github.com/stanislaw/awesome-safety-critical <comment><USER2> The obsession with C/C++ here is really weird. Like, take the MCO failure. That's a classic, textbook problem that can be structurally guaranteed not to happen with use of even a basic type system. It should be literally impossible to confuse values of different types/units/dimensions like this in something described as "safety-critical".

It seems like all the resources here are concerned with trying to whittle C/C++ into an appropriate choice of tool, rather than choosing a different tool. It seems like a 1980s-1990s mindset.

<comment><USER3> How would a basic type system protect against incorrectly interpreting an imperial floating point value as a metric floating point value? That seems like an especially weak example, and fundamentally falls under the realm of logical fault endemic of every possible programming language.

There are legitimate gripes about C/C++, especially in a space with hostile actors an unknown inputs, but that example was particularly weak.

<comment><USER4> > How would a basic type system protect against incorrectly interpreting an > imperial floating point value as a metric floating point value

"Better" / richer / more refined ( _aiming /aspiring_ at least!) type systems than C/++/Java/C#/Go/etc aim to make it ever-more "powerfully convenient, effortless, and free-of-cost to denote eg. such different units as uniquely distinct (yet 'compatible' when explicit conversion is finally expressly (and visibly (and searchably)) called for) types" that all source code cannot possibly mismatch accidentally without the compiler catching it --- however the issue remains that we don't, and possibly _can 't_ have type systems that also _enforce_ such styles (rather than just relying on a developer's/team's own discipline & resolve to adhere to such convention even in the face of deadlines & budget/schedule pressures) unless we actually totally forbid primitives like lone (semantics ambiguous) ints, lone (likewise) floats etc. Similar to "bool blindness", there's the general issue of "primitive/scalar- type blindness" always lingering. Probably some PhD candidate will write a Haskell extension for such a scenario some day soon.

Though of course the next thing the _deadline-driven developer_ will do is construct a single "semantic" int type used for all different semantic sorts kinds and types of "ints"......

<comment><USER5> For what is worth, C++ type system (which is more powerful than most, actually) make it simple to encode units (including composite units, exponents and ratios) and computing the exact units of complex expressions. See Boost.Units or std::chrono design. And with zero cost abstraction and little syntactic overhead of course.

<comment><USER6> The problem is getting embedded devs to use it, or when they do use it, not to write "C with C++ compiler" code.

<comment><USER5> of course, but it would be even harder to get them to use any other language other than C or C++.

</comment></comment></comment></comment></comment></comment><comment><USER7> I don't have all my resources on hand right now, but off the top of my head this book should be added:

[https://mitpress.mit.edu/books/engineering-safer- world](https://mitpress.mit.edu/books/engineering-safer-world)

This list is barely scratching the surface of safety-critical system engineering, but it's a start.

<comment><USER8> There is a draft version that is freely available:

[http://sunnyday.mit.edu/safer-world.pdf](http://sunnyday.mit.edu/safer- world.pdf)

<comment><USER9> Parent's MIT Press link has a link to the final PDF, down the page on the left.

</comment></comment></comment><comment><USER10> Other than the latest MISRA, I really enjoyed "Better Embedded System Software" by Phil Koopman.

Ideally you should read it before starting your project, since it deal with the product specification/gathering requirements phase, which is your starting point in safety critical systems.

[1] [https://betterembsw.blogspot.com.br/2010/05/test- post.html](https://betterembsw.blogspot.com.br/2010/05/test-post.html)

</comment><comment><USER11> Does anyone know how software quality is handled in complex supply chains, e.g. automotive? From my point of view software is a 2nd grade citizen in areas dominated by manufacturing and classical engineering.

I guess testing an over-the-update for a car that was build by ann OEM and thousands of suppliers must be quite a task.

<comment><USER7> It's getting better, but hardware companies tend to view software as second- class. They think it's "easy", though they're finally accepting that it's not. It's taken decades of fatalities, cost overruns, and missed deadlines for them to realize this, but they're realizing it.

<comment><USER12> > fatalities

If someone dies because of a preventable bug in your software, shouldn't that be considered manslaughter?

Obviously you formed a corporation in order to shield yourself from legal action (among other things). Fine, so you personally don't get charged with manslaughter. But in that case the corporation should be charged, and if convicted should be sentenced to the corporate equivalent of 25 years in jail. That would be a strong enough incentive to care about software. Of course, it never works like that in real life.

Is this as ridiculous as it sounds to me or is my outrage misplaced somehow?

<comment><USER6> You are completely right.

As Hoare so elegantly described at his Turing award speech, regarding Algol compilers, back in 1981.

"Many years later we asked our customers whether they wished us to provide an option to switch off these checks in the interests of efficiency on production runs. Unanimously, they urged us not to--they already knew how frequently subscript errors occur on production runs where failure to detect them could be disastrous. I note with fear and horror that even in 1980, language designers and users have not learned this lesson. In any respectable branch of engineering, _failure to observe such elementary precautions would have long been against the law._ "

Full speech here:

[http://www.labouseur.com/projects/codeReckon/papers/The- Empe...](http://www.labouseur.com/projects/codeReckon/papers/The-Emperors-Old- Clothes.pdf)

</comment></comment></comment></comment><comment><USER13> hopefully in a future not so far away, most safety-critical code will be formally verified, like [http://sel4.systems/](http://sel4.systems/) for example

<comment><USER9> Code like the Boeing 787's avionics package gets one better: the spec specifies what the register values should be after each step of execution, and there's a company which takes the code, puts the processor in single-step mode, and checks.

</comment></comment><comment><USER14> DO-178B has been replaced by DO-178C.

</comment><comment><USER15> In addition to MISRA, I've found the safety checklist in Lutz's "Targeting Safety-Related Errors During Software Requirements Analysis" at [https://trs.jpl.nasa.gov/bitstream/handle/2014/35179/93-0749...](https://trs.jpl.nasa.gov/bitstream/handle/2014/35179/93-0749.pdf) to be very useful.

</comment><comment><USER16> Is there anything like this that specifically addresses reliability in a critical (but not "safety-critical") system?

<comment><USER17> Yes, Armstrong's thesis is a very good starting point:

[http://erlang.org/download/armstrong_thesis_2003.pdf](http://erlang.org/download/armstrong_thesis_2003.pdf)

<comment><USER18> The techniques in the conclusions and appendix starting about page 200 are useful in any language

<comment><USER17> Yes. This goes far beyond Erlang.

</comment></comment></comment></comment><comment><USER19> I have read the JSF standard. I learned a lot from reading it.

However, the JSF project has been reported to have lots of software defects.

<comment><USER20> > the JSF project has been reported to have lots of software defects

I haven't read anything that differentiates between these two possible scenarios:

1) Poor engineering, execution, etc.

2) The bugs expected in this software project. When I think of it this way, I'm amazed it ever was completed (but maybe I'm thinking about it the wrong way):

* Meet the specifications of not only three U.S. military services but also militaries and other entities in multiple national governments (with all the politics, compromise and complexity that involves).

* Invent and implement technologies to provide capabilities so bleeding edge that few people will imagine some of them for years, if not decades. There are no prior designs; nothing like it has ever been done. Part of the point is to exceed competitors' engineering capabilities by as much as possible.

* Integrate these technologies into a massive system of systems, arguably the most complex system in the history of humankind.

* The system is human-rated.

* Performance is the highest priority; there is no making easy compromises of performance for safety: Human lives, the outcomes of battles, the fates of nations, and the course of history may depend on performance.

* Accomplish this in secret, greatly restricting your access to outside resources. Will this work? You can't publish a paper and get feedback, or make a presentation at a conference.

* Accomplish this in coordination with thousands of suppliers in many countries.

* Because it's hardware and very expensive, your ability to iterate is limited. My completely amateur guess based on the above is that it's a massive, decades-long waterfall-style project.

<comment><USER21> "Integrate these technologies into a massive system of systems, arguably the most complex system in the history of humankind."

You went a bit overboard there. There's plenty of systems probably more complex that work fine on a daily basis. They were usually designed centrally, though.

<comment><USER20> Maybe, but plenty? What are you thinking of?

Also, can you distinguish between those two scenarios (which was my main point)?

<comment><USER21> Huge systems with crazy amounts of code are what power most large companies. The budgets are usually way smaller than for defense contracts such as we're discussing where the profits of the contractors are assured through corruption. The former have to get more done with less. There's thousands of those teams, too, in just the Global 2000. Maybe Fortune 500, too.

Far as amazing examples, I'd go for the centralized, five-9's systems like NonStop or the decentralized ones such as OpenBSD before the failure we're discussing.

<comment><USER20> > OpenBSD

I think there is a miscommunication. OpenBSD is as complex as the F-35? I think the OpenBSD team would be very disappointed if that were true! OTOH, it would make the ~10 minutes it took to install it on the laptop to my right very impressive.

EDIT: What I meant to ask in the GP was, do you see a way to distinguish between whether the F-35 is poorly executed, or whether we're seeing/saw the normal bugs for a project as described above (even admitting hyperbole about complexity, which I'm not sure of, it's still quite a project).

> where the profits of the contractors are assured through corruption

Not a major point, but these issues are too important to let pass these days, IMHO: How much of whose profits are assured through what corruption? I'm sure some of that goes on, as in all large institutions (including the large companies mentioned above), but I'm not ready to assign corruption to all or most defense industry profits with a broad brush.

Also, I rarely hear much attention given to reducing it. For example, the GOP in Congress was working to take procurement authority out of a central DoD office, where it was put to prevent corruption and to put real procurement experts in charge, and into the hands of generals and admirals, people without procurement expertise (commanding fleets and fighting wars is a much different skill set) and with a bad track record regarding corruption in recent history (look up the Fat Leonard scandal, as one example off the top of my head). What I struggle to remember at this moment is whether that change passed; it was a pet project of McCain's.

</comment></comment></comment></comment></comment></comment><comment><USER22> That is awesome, thank you.

</comment><comment><USER23> c++ is not considered safe for any RTOS system, in fact you won't find it used in Aviation embedded devices (referring to the big 3 ) Tools yes, you can higher level languages to your heart's content.

<comment><USER24> Huh? The F-22A, F-35, P-8, and P-3 are all flying C++ code. Those are just the programs I have personally touched (not necessarily the code, though). Where did you get the idea that it "is not considered safe for any [real-time] system"?

<comment><USER25> The F-22 avionics are mostly Ada. F-35 is mostly C++ though. If you want a good face-palm go read up on the "decision-makers" advocating making the switch. I saw a quote by a general blaming the F-22's cost overruns on the "Ada Operating System".

But don't worry, C++ is a "COTS Industry Standard" so you can bet there were no overruns on the F-35. /s

<comment><USER24> > The F-22 avionics are mostly Ada.

Yes, including the piece I directly touched. It was deemed to minor to be worth the cost of rewriting.. Hell, when I left the program we still had an arthritic VAX to build on, should we ever need to rebuild the code.

As for your last line, see my comment elsewhere about blaming the carpenters instead of the tools. :-)</comment></comment></comment></comment>


Ask HN: What would you call this? - <AUTHOR>

As we all know, there are two major problems/challenges in computing:
* Naming things
* Cache invalidation
* Off-by-one errors.
So I have a question as to what to name something.  I have a system (carefully unspecified) in which various objects and items travel about, and it is inevitable that every now and again two of them will end up in the same place.  I'm looking for a good name for the event wherein two things end up in the same four-space location.
What would you call it?  It's a ...
<comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>====
Edit: I won't reply promptly to all the suggestions, because too many comments means the item runs the risk of getting a "Flame War" penalty.  I use HN Notify and so will see your replies - I'll answer later, and thank people in advance for even reading this. </comment><comment><USER2> "collision", like in "hash collision"?

</comment><comment><USER3> What do you mean by "four-space location"? "location in four-dimensional space"? Or "location which is four spaces in size"?

<comment><AUTHOR> A location in space and time.

Really I only care about latitude, longitude, and date/time, so really it's three-space, but there are occasions when it also uses altitude, so 4-space is properly accurate.

</comment></comment><comment><USER4> The event could be an Encounter.

The condition could be DOUBLE_OCCUPANCY.

<comment><USER5> A _close encounter_ , yes. If it were a continuous value, they'd be proximity minima.

<comment><USER6> Of which kind?

</comment></comment></comment><comment><AUTHOR> To clarify: This coincidences of four-space location are a good thing, and the point is to help find them. Giving them a natural, catchy name is critical to help people understand that they are desirable.

Thanks to those who have contributed so far - much appreciated. Shame this didn't get more upvotes, attention, and/or more suggestions. <fx: shrug />

<comment><USER2> You want something more optimistic. I think the correct word in Spanish is "encuentro": (autotranslation) meeting, encounter, match, citation, collision, smash, clash

Looking at the backtranslations, one of the suggestions in Spanish is "reunión": (autotranslation) meeting, reunion, gathering, assembly, collect, party

</comment></comment><comment><USER7> Depends what the things are. And you didn't say (please clarify?) whether this is a user-facing name, or a name seen only by coders. I'm not meaning to diminish the importance of either, btw.

For people, it could be a meetup, but others have already offered many better suggestions, such as convergences and serendipities, which both sound good. But maybe you want something shorter.

What they do when they get together could also lead to naming ideas. For example, if they connect with each other like modules on the International Space Station, it could be a "dock" event. Your real use case is probably different but you should think about what they do, and what result comes out of their being together, as a source of ideas.

</comment><comment><USER8> Since you say these coincidences are positive:

\- serendipities

\- run-ins

\- meetings

\- fortuities

\- hookups

\- trysts

\- rendezvous

\- dates

\- picnics

\- kisses

\- embraces

\- touches

\- bumps

\- blends

. . . inspired by thinking about: lovers, asteroids, colored spotlights. Sometimes a whimsical model helps. :-)

</comment><comment><USER9> In classic CS, when you have two or more things in one place, that could potentially be a "pigeonhole" situation, no?

</comment><comment><USER10> If they're not supposed to be in the same place at the same time, potentially 'conflict' (in HTTP 409 sense)

</comment><comment><USER11> A "CoLocation" or "CoLoc" for short.

Coin a short, memorable term, then use both terms everywhere until your users have been around for a time. As a user gets more experienced on the site, drop the longer term and use the "jargon" term. It's a novel concept, it deserves a neologism.

</comment><comment><USER12> A synchronicity, a synchronization, a sync. A simultaneity. An overlap. A meeting. A touch. A carom.

</comment><comment><USER13> If "two of them" are the maximum then I would go with "pair".

</comment><comment><USER14> tuple collision (in this particular case, quadruple collision if you have 4 slots).

[http://en.wikipedia.org/wiki/Tuple](http://en.wikipedia.org/wiki/Tuple)

</comment><comment><USER15> Dalliance.

</comment><comment><USER16> a convergence?

or maybe... an interaction?

</comment><comment><USER17> If it's a rare and special event, perhaps entanglement?

</comment><comment><USER6> From the pigeon hole principle.

Pigeons impersonating love birds?

Pigeon collision?

</comment><comment><USER18> Pauli violation

</comment><comment><USER19> how about a pair? Like in memory?

</comment><comment><USER20> Fusion

Octave

Unison

Marriage</comment>


Ask HN: How can Google's web dominance be challenged when most users don't care? - <AUTHOR> I had to shorten the title a bit, but the question is basically: how can Google's web dominance be opposed if most users are technically-inclined and don't care as much about these sorts of problems? <comment><USER2> Corporations are great at stomping-out smaller competitors playing the same game. They are most vulnerable when the game changes.

I suspect that it will require a game-changing technological upheaval to unseat them at this point.

The government is too thoroughly venal for antitrust to do any good, and these wads of python and javascript passed off as " _the distributed web_ " are a bad joke.</comment>


Australian Government Contact Tracing Leadership Failures: COVIDSafe - <AUTHOR> https://twitter.com/GeoffreyHuntley/status/1256935025095741441 <comment><AUTHOR> It's a big thread scroll to the bottom and then scroll backwards. I promise you it is worth it.

Other countries can learn a lot about what not to do with contact tracing by following along.

I'm publically putting more pressure on highlighting failures of leadership and that the community wants to work with the government and are offering suggestions.

a) have customer support on app stores reply to people who are having issues

b) acknowledge bug and privacy reports / engage with the community and release the source code so we can be more effective in helping.

c) start a bug bounty (unpaid suffices tbh) program

d) amount of downloads is clearly a vanity metric. leadership of the country is sprouting amount of downloads as success to reopening the country but the appstores comments are littered with failure. members of the public are catching on to it and leaving comments as such on app store reviews

e) having absolutely no customer support on social media is a bad idea

f) and finally, seriously how many days does it take to change a UI label and ship it?

[https://www.google.com/amp/s/amp.9news.com.au/article/e91465...](https://www.google.com/amp/s/amp.9news.com.au/article/e9146501-6bbd-4509-b89a-406b2b98ed2a)

The bad UX was reported on launch day and still has not been resolved or acknowledged. It is and has caused public panic.

<comment><USER2> Thanks Geoffrey - I'm based in the UK, and have been following developments around CovidSafe fairly closely, since it seems like we may be in a similar boat here soon.

All of your advice is sensible, and I expect that if & when those suggestions begin echoing in politician's ears then gradually the message will get through.

It'll no doubt be important for entrepreneurs and business leaders with experience of the app ecosystem to share similar feedback, especially to reach any politicans who share a closer language and culture with them than with us detail-level engineers.

Keep up the good work and don't burn yourself out over it - staying fresh and clear-minded will be important to keep track of changes and respond to questions throughout. Take some good rest when there's a safe opportunity.

Partly for other HN readers/contributors here - your panel discussion[1] the other day was very informative as well. Cheers!

[1] - [https://www.troyhunt.com/covidsafe-app-teardown-panel- discus...](https://www.troyhunt.com/covidsafe-app-teardown-panel-discussion/)</comment></comment>


NGINX Amplify – Announcing monitoring and configuration assistance platform - <AUTHOR> https://www.nginx.com/blog/announcing-amplify/ <comment><USER2> The open source Nginx exposes only a few metrics. To get all metrics one would need the Nginx Plus closed source edition. Now with this service, I am not sure Nginx is going in the right direction. Also how they handle their HTTP2 and Javascript alike language despite the Lua scripting integration.

Status only with Plus: [http://nginx.org/en/docs/http/ngx_http_status_module.html](http://nginx.org/en/docs/http/ngx_http_status_module.html) \- demo: [http://demo.nginx.com/status.html](http://demo.nginx.com/status.html)

In the open source edition: [http://nginx.org/en/docs/http/ngx_http_stub_status_module.ht...](http://nginx.org/en/docs/http/ngx_http_stub_status_module.html)

Pretty sad.

<comment><USER3> I chose haproxy over nginx a little while ago, after noticing nginx plus includes a lot of the load balancing modules that nginx OSS doesn't.

You can of course install them on nginx OSS, but they don't seem to be documented to the same extent as they would be with nginx plus.

</comment></comment><comment><USER4> We love Nginx for its incredible performance and resilience. It is the core technology for the API Gateway as part of 3scale's API Management platform. The base performance is amazing. For high end throughput scenarios companies often scale by adding more servers rather than by performance tuning. In our experience the ROI is dramatically higher in the latter. Amplify is a critical tool to view visibility into the bottlenecks and which parameters can be tuned.</comment>


Maximizing your chances of getting into Y Combinator (Summer 2014) - <AUTHOR> https://medium.com/p/b0a75aa7401f

<comment><AUTHOR> (I'm a YC S11 alum, and wrote this so I wouldn't have to reply in email to all the people who ask for help...)

<comment><USER2> This is excellent. I'll be sure to include a link to this when people ask for advice.

</comment></comment><comment><USER3> I'm using this as a canned response for anytime someone asks me to help them with their YC app.</comment>


Ask HN: Why was 'How bad [are] self signed SSL [certs]' removed? - <AUTHOR>

What was the reason this question was removed from the front page so quickly after getting so many upvotes and comments?
https://news.ycombinator.com/item?id=7826258
I know the guidelines ask that such questions be sent to firstname.lastname@example.com, but I think that's a bad policy to apply universally, as in this case.
When a legitimate question like the above gains so many upvotes and responses, moderators should publicly state the reason for removing it. It's in the mod's favor to do so iff they have a legitimate reason for doing so, as it helps the community understand what mistakes to avoid. <comment><AUTHOR> Just got a response back from firstname.lastname@example.com:

> _It set off the flamewar detector. We just overrode that. Thanks for > writing._

Woo hoo! Faith in HN restored! =D</comment>