Ask HN: Why US tech companies asking for work permits from remote freelancers? - <AUTHOR> US remote positions usually got requirement "Eligible to work in the United States".
In almost any other country employer care about things like timezone, or communication skills but not about work permits in case of a remote position.
Is this related to mindset, or there are some regulations blocking overseas freelancers to do remote jobs for US companies? <comment><USER2> One factor for why companies are more comfortable hiring a person living in US is that then both ends of the contract fall under US law. Meanwhile, if the freelancer lives overseas, then the combination of US and that country's laws are applicable, which can create an unparseable mess. This is especially important in area of copyright, because the company wants to be 100% sure that the freelancer passed the rights to code to them (and you can't be 100% sure of that if you don't understand applicable laws of the freelancer's country). You could even potentially lose a VC deal because of it, as unclear status of the code ownership could come up in their due diligence.

(I am not a lawyer, this are just my layman speculations).

</comment><comment><USER3> This question has come up before and I believe the answer depending upon company and whether it was employment or contract.

In my experience, it's flexible. But consider that companies have their own legal departments, advice, and tax requirements that may make the decide on hiring only people in their own jurisdiction. Technically yes they could all hire whoever they want as an independent contractor and make the bank transfer but that's too messy for many of them.

</comment><comment><USER4> I believe this is for _" Remote in USA only"_ positions. I believe it's due to the bureaucracy of hiring international employees.

</comment><comment><USER5> I don't think you need it if you're working remote. We at HackerBay.io never ask for permits / visa if you're remote.

<comment><USER6> FYI, your careers link (footer) is dead, it leads to /interviews instead of /interview.</comment></comment>


What MongoDB Got Right - <AUTHOR> https://blog.nelhage.com/2015/11/what-mongodb-got-right/ <comment><USER2> The release notes for the upcoming version of MongoDB may be interesting here: [https://docs.mongodb.org/manual/release- notes/3.2/](https://docs.mongodb.org/manual/release-notes/3.2/)</comment>


Japan's lunar orbiter discovers moon cave - <AUTHOR> https://www.japantimes.co.jp/news/2017/10/18/national/science-health/japans-lunar-orbiter-discovers-moon-cave-potentially-suitable-use-shelter/ <comment><USER2> But could it hide a filmset to do a new version of the fake moon landings?

This is very much the stuff of some of my childhood sci-fi reading from several decades ago. We don't nee to reprise "A Fall of Moondust" however...</comment>


Doing it right: the best Firefox 3 Beta 5 new feature - <AUTHOR>

In Firefox 3 Beta 5 you can finally read the entire XKCD alt-text by default on mouseover! Try it!
http://www.xkcd.com
Times, they are a-changin'! <comment><USER2> That is nice. But the best feature is the address bar - it's a smart search bar, with functionality close to wundrbar. It takes into account how often you visit sites to rank the urls it displays when you start typing.</comment>


Android gaining momentum in smart phone race - <AUTHOR> http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2009/10/09/BU141A327G.DTL <comment><USER3> You can add INQ to the list of companies producing Android Phones - <USER2> produce custom phones designed for social networking/IM and are very popular in Europe. They used to use their own custom OS but announced that they were moving to Android last month: [http://www.gsmarena.com/inq_to_also_use_android_os_soon_do_s...](http://www.gsmarena.com/inq_to_also_use_android_os_soon_do_some_cool_stuff_with_it- news-1117.php)

</comment><comment><USER4> The only advertising I've seen[0] for Android phones has been from T-mobile for the G1 and MyTouch. There is _zero_ Android branding in these ads. The only indication that the two run the same software is a mention of "with Google" at the end of the ad.

I see this as a major branding fail.

[0] I don't really watch TV, so I haven't seen as much as most people.

<comment><USER5> Why does google need to advertise to end users? Most of the savvy ones already know about Android and the rest probably don't care what their phone runs as long as it can do email, get map directions, etc.

If they are spending money on marketing, they are spending it on the handset manufacturers.

<comment><USER6> Also, no carrier is going to advertise that their phones run the exact same system as another carrier's phone. Why give customers an easy reason to switch?

There are half a billion Nokia users that have no idea what Symbian is.

<comment><USER4> If I'm Verizon and I'm selling the Motorola Sholes, I want my potential customers to know that the cool app they saw their friend using on a G1 last week also runs on the Sholes. The ads I've seen so far have been T-mobile, so maybe others will try to do that.

</comment></comment></comment></comment><comment><USER7> I think it's nearly time to get one - maybe an HTC, as they're well into their second generation of phones. Hecl needs more attention on Android, and real live device is the surest way to accomplish that:-)

<comment><USER8> I'm still loving my first generation HTC G1. it's a little bulky and can be slow at times (unless I kill the processes left from applications running the background, then it's snappy), but I really enjoy it.

I've heard really good things about the HTC Hero though, and would love to try one out.

<comment><USER9> I was a bit underwhelmed by my 'donut' update. More fit and finish than new features.

I really can't wait for Verizon's offerings because I need better network coverage than T-Mobile. My phone doesn't work at my parents house or my in- laws house. :-(

<comment><USER8> Ah that's a shame, I have pretty good coverage in Texas, but the speeds are a serious drawback. Do you know if Verizon has a "tether" restriction?

If you tether with your G1 and go over a 10gb transfer quota, they will reduce you to edge speed for the rest of the billing cycle.

I mainly stick with T-Mobile because my entire family uses it, so we all get to call each other for free, but I'm not against moving to a new carrier if I can get better speeds and be allowed to tether.

EDIT: I thought the donut release was pretty good overall, I saw huge performance gains and also the UI has been cleaned up a lot. Though not much else seems terribly different.

<comment><USER9> I'm in TX also, Austin to be specific. My network speed is pretty good but I'm only comparing it to an EDGE connection on my work BB.

The donut release isn't bad. Good performance boost (I wouldn't classify mine as 'huge' but we might use our phones a lot differently). Battery life about the same for me. (I still have a battery charging level issue leftover the from the cupcake upgrade.) I don't know if there were any browser updates in donut but Google Wave on my G1 is very slow to load. (1-2 minutes even on wifi.) I was mostly comparing the cupcake upgrade to the donut upgrade. There was a huge visible difference between them.

All in all, I love my G1. Way better than my work issued BB. I'm just wanting more. ;-)

<comment><USER8> The browser was definitely updated, I notice most browsing is at least a little snappier, though I'm disappointed with the browsing experience overall on the G1.

Battery life is pretty bad, but I pretty much keep it on a charger all day long now anyway, got used to knowing it's going to need a charge regularly, if I'm out and about for a while I'll use locale and power center to trim it down to only the basic needs.

I mostly just use the standard calendar, mail, messaging, remember the milk and a little irc and twitter. but I'm pretty regularly going in and purging applications with TasKill.

I'm in Fort Worth, you're pretty much a stones throw away from me.

<comment><USER6> I work with both the G1 and iPhone at my job and carry both around with me, and the browser on Android just kills the whole deal.

I don't know if it's the lower DPI screen on the G1, the lack of multitouch, or just the rendering speed. I know they're both Webkit under the hood, but man Apple spent a lot more time optimizing Safari and it shows.

The new Android SDK supports variable DPI, so maybe that's a hint that newer phones with iPhone-like screens are on the way.

<comment><USER8> I can't argue there, I can only hope as the platform matures this changes. They did such a good job with Chrome that I'm left wanting and curious with their mobile browser, at least compared to the iP(hone|odtouch).

Luckily there is also multi touch support on the android SDK I believe as well, so at least we know they have plans to implement it.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Aside from the ADP1, are there any Android devices available that allow root access per default?

<comment><USER11> The Creative Zii Egg is another full-access developer device: <http://www.zii.com/>

Note: It's a multimedia tablet like the iPod Touch, not a phone.

</comment></comment><comment><USER12> I need to learn Java for work and I'm looking for an interesting project to learn it with. Any thoughts on building an Android app for my first project? Would this be a good way to become familiar with the language?

<comment><USER13> Just be aware that Android operates in a resource constrained environment, so that some practices (such as avoiding garbage collection through resource pools) aren't typical in desktop or server-side Java applications. Also, if you're going to be doing desktop UI stuff at work, Android's UI APIs are very different from Swing et al.

<comment><USER12> Good things to be aware of, I certainly won't be doing any android development for my current job. More server-side web app type things.</comment></comment></comment>


Million Dollar Math Problem - <AUTHOR> http://failuremag.com/index.php/site/print/million_dollar_math_problem/

<comment><USER2> _Perelman has a mind that is capable of taking in more information than any mathematical mind that has come before. His brain is like a universal math compactor. He grasps complex problems and reduces them to their solvable essence. The problem is that he expects human beings to be similarly subject to reduction. He expects the world to function in accordance with a set of strictly laid out rules, and he cannot take in anything that does not conform to those rules. And because the world is so unruly, Perelman has had to cut off successive chunks of it._

if her book gets no deeper than that trite, reductionist, unsympathetic cliche then it doesn't sound like it's going to say much of interest about the chap. i hope she writes better about maths (but my impression from the interview is that she does not).

<comment><USER3> Yeah, she clearly has such a shallow understanding of mathematics that there is no way she can begin to appreciate what Perelman achieved or write anything intelligible about his process.

"Perelman has a mind that is capable of taking in more information than any mathematical mind that has come before" is the type of nonsense that will drive away many of the people interested in this topic.

</comment></comment><comment><USER4> For those interested in learning more about the character of Perleman and some of the controversy surrounding the Poincaré conjecture and it's proof, here's a great article from the New Yorker (dated Aug. 28, 2006): <http://www.newyorker.com/archive/2006/08/28/060828fa_fact2>

<comment><USER5> "Everybody understood that if the proof is correct then no other recognition is needed."

Too good for this world.</comment></comment>


America's food supply chain moves backward - <AUTHOR> https://www.axios.com/coronavirus-food-supply-chain-0a3c8da3-47c0-47dd-8d76-ed659ecccac9.html <comment><USER2> Very insightful read. Thanks for posting.</comment>


Donald Knuth's 20th Annual Christmas Tree Lecture: (3/2)-ary Trees [video] - <AUTHOR> https://www.youtube.com/watch?v=P4AaGQIo0HY

<comment><USER2> I think I might be stupid. I did not understand any of that. Am I missings something?

<comment><USER3> You probably just need a few prerequisites. Even if you did study data structures, algorithms, and combinatorics previously, you would need to have your head wrapped around the subjects to fully understand this lecture.

I would also keep in mind that Donald Knuth probably spent more than an hour before understanding the topic.

Something that I think anyone can take away from this lecture is a story of discovering new mathematical relationships. He starts with a function that correlates to a logical problem, changes the inputs in an new (strange) way, then studies the output to form a theory that connects to the original problem.

The key was recognizing old results in a new problem.

<comment><USER4> > Something that I think anyone can take away from this lecture is a story of > discovering new mathematical relationships. He starts with a function that > correlates to a logical problem, changes the inputs in an new (strange) way, > then studies the output to form a theory that connects to the original > problem.

This type of mathematical exploration seems to be the story of his life. See Quarter-imaginary base for him doing the same thing in high school.

[https://en.wikipedia.org/wiki/Quater- imaginary_base](https://en.wikipedia.org/wiki/Quater-imaginary_base)

<comment><USER5> At one point in the video he suggests (with a laugh) the name imagin-ary to go along with binary, ternary, n-ary, etc.

</comment></comment></comment></comment><comment><USER6> Love this man.</comment>


Fast Database Emerges from MIT Class, GPUs and Student's Invention - <AUTHOR> http://data-informed.com/fast-database-emerges-from-mit-class-gpus-and-students-invention/ <comment><USER2> Hi all, MapD creator here - I'd be happy to answer any questions. The 700K figure was done by rendering polygon files to textures and using them as lookup tables - it ran pretty fast on the CPU so its not all the GPU there. However if a point falls on a border - perhaps 1% of cases for say a medium- sized raster of the US - you have to do a geometric lookup as usual - which I didn't benchmark. Probably better would be to do some tiled implementation - basically something like textured quad-trees.

And as I told the journalist I wasn't sure if I did the PostGIS indexing right - I feel like the quote got taken a little out of context - but the speedups were "high" to "quite high" regardless.

<comment><USER3> Heh ... when I saw the speedup numbers, the first thing I wondered was ... index? Regardless, this is impressive work. Do you have a tech report you can point to for someone to get more details? I'd love to learn more about your setup. Also, would you mind describing your programming background? I have a cs PhD and I admit I never had the guts to get into GPUs! You've given me a whole lot of motivation!

<comment><USER2> Thanks! Yeah I'd like to revisit this benchmark soon (I'm actually working on rendering choropleths on the GPU now). I'm working on a database paper that will hopefully be ready for VLDB submission by next month - that would probably be the best.

In terms of CS background - nothing formal except for AP comp sci I took in high school like 12 years ago. However I've always loved hacking on things on the side, and a combination of my research on the Middle East/burning desire to make an Iphone app kind of got me back into it. Then to be fair I took a GPU Graphics class (basically OpenGL) at Harvard and then a Database course at MIT while doing my Masters in ME Studies, which is where this project started.

</comment></comment></comment><comment><USER4> The same story was submitted to /., and the person who wrote the database answered several questions about it there. See [http://search.slashdot.org/story/13/04/22/2225240/harvardmit...](http://search.slashdot.org/story/13/04/22/2225240/harvardmit- student-creates-gpu-database-hacker-style) for more.

</comment><comment><USER2> (MapD creator again) - Also, check out <http://worldmap.harvard.edu/tweetmap> for a live demo - even though its been a bit buggy under Slashdot load and I had to disable GetFeatureInfo requests (i.e. click to get tweet). Also see here for a demo of a new interface I'm messing with that does animation - <http://www.youtube.com/watch?v=Foo8pYbSPv4> .

<comment><USER5> And roughly half an hour ago, I was hoping for something that could help me map GIS data and animate the changes over time so that I could see before and after effects.

Look forward to seeing this released.

<comment><USER2> Is your data relational? I can import anything from Postgres, MySQL, Solr (but has to be flattened), or shapefiles. If you tell me more perhaps I could put it into the system for you and we could try it out.

<comment><USER6> Hi Todd! Do you have an email? (mine is email@example.com )

I'm working on a project linking bank credit with the geographic distance between individuals/firms and bank branches. It's a fairly big dataset (~4MM geocoded individuals with matched credit data) and MapD would seem like a cool tool to visualize how the data changes with time.

Cheers

<comment><USER2> Hi, yes im tmostak at csail dot mit dot edu (does that fool the spambots these days)? Yeah email me and we can chat!

</comment></comment></comment></comment></comment><comment><USER7> Hrrm. Since it's light on details, how about zooming out for some random conjecture about industry trends.

Notion: The current environment definitely has a faster-evolving database layers landscape than the previous decade. It follows that for longer-term systems, database schema-naive architecture becomes far more attractive. How exactly should we achieve that?

For all the 2005-enterprise-2.0-ishness of it, message-orientation (ie. on- the-wire protocol first) seems a fair play. This seems to hark back slightly toward the traditional (waterfall) approach of a nominal pre-coding design- time, an extroverted design orientation that focuses on understanding inputs and outputs before coding. Contrast the modern fire-and-forget webdev norm; model some data in some can-abstract-databases-as-long-as-they-fit-a-prior- model language-specific framework, and iterate.

Some of this is just common sense but perhaps we are about to see a shift in architectural paradigm. Of course, the modelling/code generation people have been harping on about this for years!

</comment><comment><USER8> He is not the first person to try to implement a GPU base database, and this is not a trivial undertaking by any means.

<http://gpgpu.org/tag/databases>

Does anybody know any source with more details on this work?

<comment><USER9> not his, but I found this interesting: [http://www- cs.ccny.cuny.edu/~jzhang/papers/ACMGIS10_Extended...](http://www- cs.ccny.cuny.edu/~jzhang/papers/ACMGIS10_Extended.pdf)

</comment></comment><comment><USER9> Curious to learn more as the specifics come out.

I am familiar with pg storm which was using pg FDW with CUDA, it had some pretty severe limitations last I looked, I also remember someone doing a sort implementation on cuda on the mailing list which was pretty slick, Tim Child also did some presentations(I never saw code personally, would love a link if anyone has), that was doing opencl as a procedural option which I think would still be really cool, and potentially easier to deal with as an extension where applicable.

I am going to be very interested to see what is possible with postgres 9.3 writable fdw and potentially something like this. May be that postgis will find its way to similar performance given access to the same tech.

35k loc is compact, cannot wait to see the code!

</comment><comment><USER10> Slides from the Conference where he won the prize: [https://cga- download.hmdc.harvard.edu/publish_web/Annual_Spr...](https://cga- download.hmdc.harvard.edu/publish_web/Annual_Spring_Workshops/2012_Africa/presentations/Todd_Mostak.pdf)

Didn't see a link to a published thesis.

</comment><comment><USER11> The claim of a 700,000x speedup makes me suspicious of pretty much everything else about the work.

<comment><USER12> The question is what kind of processing he did. Usually database systems are heavily constraint by the I/O bandwidth of the system - even the cheapest consumer CPU is able to process data orders of magnitude faster than discs are able to deliver new data.

That is why database servers usually have the fastest discs money can buy, as much memory as you can fit in there in order to keep as much data as possible in main memory and the largest possible caches to avoid hitting the relatively slow memory bus as often as possible. The situation becomes much worse if the database is not read-only because all changes have to be persisted and you have to hit the disc on every change.

Therefore I think using GPUs will buy you nothing for common database application - processor speed was never your problem. But this does not exclude the possibility that there are operation, for example correlating millions of data points from your data set, where the processing power of GPUs comes handy, but this is most likely not what you will see in one of your line of business applications.

The number 700,000 is probably the result of a highly tuned GPU implementation versus a general purpose CPU implementation. A quad-core Core i7 at 3.0 GHz has a theoretical peak performance of 96 GFLOPs [1], the currently fastest supercomputer peaks at 27,112,500 GFLOPS (Titan, 560,640 cores, 8.2 MW [2]). 700,000 times the mentioned Core i7 is still more than twice the performance of Titan, 67,200,000 GFLOPs.

[1] [http://stackoverflow.com/questions/15655835/flops-per- cycle-...](http://stackoverflow.com/questions/15655835/flops-per-cycle-for- sandy-bridge-and-haswell-sse2-avx-avx2) [2] <http://www.top500.org/lists/2012/11/>

<comment><USER13> It appears from the graphs (yeah, I know) that he's probably doing trig (to locate the tweet) and collision detection (to determine the area of the city). He could also have more control over single precision algorithm choice than he would have via his original solution. It could be something as simple as pre- calculating the geolocation with a parallel CUDA kernel during ETL into PostGIS and bypassing its index generation.

I also have an itchy feeling that there may have been some confusion regarding conversions between "times" and "percent", possibly multiple times. [1]

Extrapolating that an iterative solution would take 40 days, without running it for 40 days, is tricky as well. Given multiple tweets in close proximity, PostGIS should benefit from caching the R-tree index.

I'm not assuming the inventor is doing these things, as his db prof was impressed, as well as CSAIL and the body awarding his prize. [2] I think, if anything, the reporting is intended to be high-level enough to have more broad appeal, which makes it more difficult for us to evaluate the results in a Gedankenversuch. "Reduce slowness here..."

[1] The sidebar says,'Some statistical algorithms run 70 times faster compared to CPU-based systems like MapReduce,' while the quote in the article says,'"The speed ups over PostGIS … I'm not an expert, and I'm sure I could have been more efficient in setting up the system in the first place, but it was 700,000 times faster," Mostak said. "Something that would take 40 days was done in less than a second."'

[2] Hey, logical fallacies do not necessarily mean the argument is wrong!

</comment></comment></comment><comment><USER14> Very cool project! I'm glad to see this area is getting some attention. I did research in GPU databases a couple summers ago at NEC, if anyone is interested the project is at <https://github.com/bakks/virginian> .

Some background mixed with some opinion:

This is an area still without a major commercial competitor and there aren't yet any such public product efforts as far as I know (IBM has a couple of researchers publishing on the topic). The difficulty is that really exploiting the GPU requires rethinking architecture from the ground up, including how your query plan handles parallelism, how your data is stored, and most significantly, how to efficiently move data to the GPU for processing. Most databases aren't partitioned nearly well enough to shoehorn GPU processing in on the backend, and it seems like the vast majority of recent database development has been around highly distributed systems and commodity hardware, eg Hadoop. A German company called ParStream has a DB that uses GPUs for certain indexing operations, though last time I spoke to them it sounded like there is much much more that can be done with GPU hardware.

In general, speedup is highly variable, and depends on the data set, indexing characteristics, data type (fixed vs variable length), individual query, etc, but its fairly common to see 10x speedups over optimized multicore query execution. Though the extreme parallelism of the GPU is responsible for some of this, in my opinion the big win there is just absolute memory throughput. Newer Tesla GPUs have a memory throughput of > 100 GB/s without breaking a sweat, while most CPUs are around 30 GB/s. If you can push data through your hardware that quickly, its easy to see how the GPU can have such an advantage.

The difficulty, however, is actually moving the data into GPU memory (1-8 GB generally) to exploit this throughput, which is a major bottleneck (some of my research was around doing this better). I understand that GPU direct disk access is just becoming a reality, which could make this easier. The holy grail, however, is a full-powered integrated server CPU/GPU. If both of these components had equivalent main-memory access and this architecture becomes cheap and commoditized, then GPU databases will immediately become extremely relevant.

I expect that there will be a serious commercial competitor in this area within 3 years, either in the relational data warehousing space (think Vertica) or closely integrated into MapReduce type execution. My guess as to the reason it doesn't exist is that 1) production DB development is really hard and 2) GPU processing is only a really big win for certain workloads, namely heavy analytical/research workloads over fixed-size data. As I said, if GPUs become commoditized in server hardware or fully integrated with CPUs, however, I expect this domain will quickly become extremely important. This is a very cool area and its common to see 10x speedups even with optimized CPU implementations.

Always happy to chat about this stuff, feel free to shoot me a message.

<comment><USER2> Actually I've enjoyed reading your papers and would love to talk... will email you!

</comment></comment><comment><USER15> Why are CPU's built like CPU's and not like GPU's? I mean this running things on the GPU business clearly means that the CPU does not meet the needs of programmers adequately.

Shoehorning things to run on the GPU seems to me a dirty hack, indicating that there is an underlying problem that could and should be addressed in a better way.

<comment><USER16> Because most consumer software is not as insanely parallel as doing millions (billions?) of isolated lookups. If you ran most applications on the GPU, you'd see something like a 1000x _slowdown_ because you're only able to use a single path (instead of hundreds / thousands at a time), and each path is way way slower than your average CPU.

<comment><USER15> >Because most consumer software is not as insanely parallel as doing millions (billions?) of isolated lookups.

I think this is more due to tradition than due to necessity. But I have no hard data and sources for this.

<comment><USER16> I doubt this is so. Lots of consumer software ends up being I/O bound, not CPU bound - even if they were completely rewritten to be crazy-parallel, you wouldn't notice. Good portions of games could probably be parallelized significantly more than they are, but they're quite a bit different than most software, so that's not very indicative.

Then there's stuff like parsing data. Lots of times data is context-sensitive - that "<item>" could be a tag, or it could be wrapped in <![CDATA[ <item> ]]>. Without reading through it in order, you can only make certain assumptions. Some of this can be redone in a more parallel-friendly way, some of it is not so much - if it's encrypted or compressed, you're probably forced to pre-process it sequentially, or lose some of the quality of the security / compression.

For those (and think of how much crypto and compression there is in consumer stuff! Every SSL web endpoint, secure wifi connection, zipped file...), a powerful-core CPU or a custom piece of hardware (that only does a few algorithms) is your only option.

<comment><USER15> >I doubt this is so. Lots of consumer software ends up being I/O bound, not CPU bound - even if they were completely rewritten to be crazy-parallel, you wouldn't notice.

So for these programs it wouldn't matter either way.

>Then there's stuff like parsing data

How many states can you be in exactly? You can be in a CDATA, you can be in a quoted attribute, you can be in a tag, you can be between tags. Most other states are very local such as ampersand declarator ( &l ) , tagname started ( <it ), etc. You could process a text snippet for all of the more global possibilities at the same time (or just chance it and throw your guess out if you are wrong).

I suppose you are right about compresssion and crypto.

</comment></comment></comment></comment></comment><comment><USER17> Alenka is another open-source GPU database engine that looks quite interesting:

<https://github.com/antonmks/Alenka>

</comment><comment><USER18> Fantastic project, and this absolutely sounds like an embarrassingly parallel processing task. To the original itch, so to speak-

"Then he plotted the Islamist indicators from 40 million tweets, ranging from August 2011 through March 2012, against 5,000 political districts from the Egyptian census."

So the core problem is that you have 5,000 non-overlapping polygons and you want to determine from an x,y which they fall within? I have to confess that I'm surprised that just 40 million such points would take several days.

<comment><USER19> Let's assume a naive approach. Also, assume each point falls within a polygon.

For every point to test, you need, on average, to test half the polygons. Testing a point against a polygon means testing the point against, on average, about half the polygon's edges. Each of those tests takes a multiplication, an addition, and a comparison.

That's 4E7 points times 2500 polygons times, at least, 1.5 edges. Total: 1.5E11 multiplications, additions, and comparisons.

With 100-sided polygons, it would be 1E13 or so multiplications/addition/comparison steps.

Memory pressure is dominated by polygon storage. 5000 poly's, 100 points each, is 500,000 edges at two doubles each, or 4MB. That fits comfortably in cache.

So, 1E9 multiplications/addition/comparison steps a second should be possible. That's 10,000 seconds or 3 hours.

=> Should be doable on one CPU in hours (famous last words)

<comment><USER18> It really is a fascinating sounding problem and I'd really like to see the source data (regions and points), if I'm understanding the problem right, to discern alternative approaches.</comment></comment></comment>


China has misread the Hong Kong protest from the start,It's time to get it right - <AUTHOR> https://www.washingtonpost.com/opinions/global-opinions/china-has-misread-the-hong-kong-protests-from-the-start-its-time-to-get-it-right/2019/08/12/a90e7618-bd20-11e9-b873-63ace636af08_story.html <comment><USER2> I don't think China misreads the protests, however their state media depicts it. They see it clearly as a challenge to their authority. It is a push for greater independence for Hong Kong. Beijing simply isn't willing to yield.

</comment><comment><USER3> Gents, we are the ones misreading Hong Kong.

China is now flexing muscles to show the US and the rest of the free world what they can do: they can destroy one of the richest areas in the world without a sweat, and they brutalise a group of young people who dare protest democracy, with impunity.

Showing military trucks and toys moving around the country, right in the middle of a dispute with the us and knowingly violating a treaty with the UK is China staring the free world in the eye and challenging their power and unity.

China can do anything and get away with it. This needs a strong response from the free world, which includes the EU.

Unlike the US tho the EU is more interested in selling German cars to China than protecting the freedom of those people and freedom generally speaking. It shows division and impotence on its part and the literally non existent power.

I just wish I could do something about it but i just can't and it feels like shit.</comment>


The Easiest Hard Problem (2002) - <AUTHOR> https://www.americanscientist.org/issues/pub/2002/3/the-easiest-hard-problem/99999

<comment><USER2> Here's an interesting partitioning problem: Split the first N primes into 2 groups such that the difference of products is as small as possible but not 1. If this number is less than the square of the Nth prime, it will be prime. For example:

split 2,3,5 into 2 groups: (2,5) and (3) the difference of their products 2x5-3 = 7.

split 2,3,5,7 into 2 groups (3,7) and (2,5) the difference is 11. Note that (2,7) and (3,5) has a difference of 1 so don't go there.

5x11 - 2x3x7 = 13

Is it always possible to create a partition that produces the N+1th prime?

AFAIK this is a problem of my own conjuring, but I also know that most such things already exist and have a name.

<comment><USER3> What's the largest example you have verified?

<comment><USER2> >> What's the largest example you have verified?

I don't recall. I don't think I went beyond the use of 32bit integers (or was it 64) when I first looked at it, so not very large. The intermediate products can get quite big quickly. I do remember using a binary number to represent group membership of each prime, and seeing a pattern that broke down after only a few primes.

</comment></comment></comment><comment><USER4> Great article! This gives an excellent overview of NP-complete problems, the difficulty of constructing hard instances, the critical ratio in determining the solution count, and the analogy to physical systems' phase transitions. Also gives some intuition on why the greedy algorithms can be good enough in pracitce and when they wouldn't be.

</comment><comment><USER5> This reminds me of a challenge at the Free University Berlin. A lecturer gave the following list of numbers to his students. The task was to find two different subsets that have the same sum:

[http://www.inf.fu-berlin.de/lehre/WS07/mafi1/90zahlen.txt](http://www.inf.fu- berlin.de/lehre/WS07/mafi1/90zahlen.txt)

His point was: It it simple to prove that those subsets must exist, but it is very hard to compute them. To make his point even more clear, he offered some prize money if anyone found an explicit solution.

A friend told me about that challenge, and I tried. With a lot of conceptual work, programming, optimization and some luck I was finally able find such a solution (and received the prize):

[https://njh.eu/90](https://njh.eu/90)

(Sorry, German language, but the solution is readable, I guess :-))

<comment><USER6> Why is it easy to prove that this particular set of numbers can be broken into equal subsets?

<comment><USER5> You just have to compare the number of subsets with the number of possible sum values.

1) There are 90 numbers, so we have 2^90 subsets.

2) All numbers are < 10^25, so the sum of all 90 numbers is < 90 * 10^25 < 10^27. So each sum of a subset is an integer in the range of 0 to 10^27-1. So we have ≤ 10^27 possible sum values.

Since 2^90 > 10^27, we have more subsets than possible sum values. Hence, there are at least two subsets having the same sum.

BTW, this is a beautiful application of the Pigeonhole principle: [https://en.wikipedia.org/wiki/Pigeonhole_principle](https://en.wikipedia.org/wiki/Pigeonhole_principle)

<comment><USER7> Regarding item 1, yes there are 2^90 ways to choose _one_ subset, but since you are comparing two separate subsets, those subsets can't overlap (or else you could just choose the same subset twice!), so it seems like there should be "more" to this calculation? Am I missing something here?

Edit: wait I think I've got it:

Each subset implicitly also chooses it's counter subset, e.g. if you choose the subset consisting of the first 45 numbers, you've also therefore said the other subset consists of the last 45 numbers. Since there are more of these "dual subsets" than possible sums, the pigeonhole principle yadda-yadda.

<comment><USER5> I'm think you misunderstood the question.

You are not forced to use all numbers. (And in fact, my explicit solution doesn't use all numbers.) There is no restriction that the union of both subsets must be equal to the full set. Note that this restriction would change the question dramatically. See also: [https://news.ycombinator.com/item?id=10023098](https://news.ycombinator.com/item?id=10023098)

Also note that it is allowed for both chosen subsets to overlap. In fact, the proof just says that two different (i.e. not entirely equal) subsets with the same sum exist.

However, once you have a pair of different overlapping subsets of the same sum, you can simply remove the intersection from both sets. Both sums decrease by the same amount. You then get a pair of two disjoint sets that have the same sum.

</comment></comment></comment></comment></comment><comment><USER8> The first heuristic algorithm that jumps to my mind to solve this problem goes like this: First sort the numbers into a list. Second take elements from the head of the list to construct a subset A. Third take elements from the tail to construct a subset B The second and third steps are done in such a way that the sum of A and B are nearly equal. Then one can hope that this procedure make the elements that are still in the list to be near identical and so allow you to construct nearly identical sums.

<comment><USER8> The hope is that the remaining elements in the list l are similar in the sense that max(l)/min(l) is small, the heuristic could be improved one you try to make a trade off between max(l)/min(l) in the list and the difference between sum A and sum B.

</comment></comment><comment><USER9> Stephen Mertens Paper * The Easiest Hard Problem: Number Partitioning* is a good review paper of the subject covering the phase transition between P and NP this problem exhibits and extending it to k-partitions.

[http://arxiv.org/abs/cond-mat/0310317](http://arxiv.org/abs/cond-mat/0310317)

</comment><comment> bit-player PDF version here: [http://bit-player.org/bph- publications/AmSci-2002-03-Hayes-N...](http://bit-player.org/bph- publications/AmSci-2002-03-Hayes-NPP.pdf) (from the author's website)

</comment><comment><USER10> At first his language was a little confusing -- when I saw "set" and then saw two 2s listed in his set. Are "set" and "multiset" often this interchangeable?

<comment><USER5> No, they aren't. This is just sloppy wording in the article. The concept of sets is deeply established in mathematics and when you talk about multisets rather than sets you have to state this explicitly.

<comment><USER10> That's what I thought -- it was what I was taught in school. But I was also taught that no one can agree on terminology.

</comment></comment></comment><comment><USER11> Very enjoyable read, thanks OP.

Even though my math muscles haven't been exercised in a decade this article was easy to grasp.</comment>


Why doesn't Microsoft provide free food as Google and Facebook do? (2015) - <AUTHOR> https://www.quora.com/Why-doesn%E2%80%99t-Microsoft-provide-free-food-for-staff-as-Google-and-Facebook-do/answer/Ric-Moxley?share=1 <comment><USER2> I've worked at places with free food before. While it's nice to have, it really is exactly what this Quora answerer suggests: it's a way to get people to stay at the office. It's not at all altruistic, and it shouldn't be considered a perk. Free food can be nice, but be aware that you're giving something up as well.

One effect that's even more valuable to the business than simply keeping employees at the office more is that it strongly encourages everyone to eat lunch at the same time. Even people who bring their own lunch or go out to lunch will do so at the same time that everyone else is partaking in the free food. This makes it a lot easier to schedule meetings adjacent to lunch, and means that all the noise and disruption of lunch is narrowly timeboxed.

<comment><USER3> Also takes 10-15 minutes to eat in the office vs. 1 hour to go out. I always prefer to eat out. I enjoy the break away from the office. I don't know why we have to all sit together like a bunch of hippies and pretend to enjoy each others' company.</comment></comment>


In a digital age, vinyl albums are making a comeback - <AUTHOR> http://www.latimes.com/news/local/la-et-vinyl26-2009apr26,0,7227273.story?track=rss

<comment><USER2> I think one of the reasons that those people who prefer vinyl over digital do so, is that the recordings on vinyl are mastered with different qualities in mind than their digital counterparts. There's a YouTube video floating around called The Loudness War (<http://www.youtube.com/watch?v=3Gmex_4hreQ>) that describes what I'm talking about.

I distinctly remember albums on audio CDs sounding better to me (great clarity, vibrancy, etc.) back in the early 1990s. Then, somewhere toward the end of the 1990s, CDs just started to sound worse. I blame the trend described in that video. I suspect that vinyl recordings do not suffer from this same tendency toward loudness in the audio mastering process, and that is why you have audiophiles insisting that vinyl sounds better than digital.

<comment><USER3> For most people, I think it has less to do with audio quality and more to do with re-connecting with your music in a physical way.

There's something about listening to an LP--choosing one from the shelf, taking it out from the sleeve, putting it on the turntable, looking at large- format artwork--that will never be duplicated by an iPod. It's also more of a time investment; when I listen to a record I at least listen to a whole side. It's a very different experience from shuffling between various tracks and artists. Then there's the whole matter of rare and out-of-print recordings that that haven't yet been digitized.

<comment><USER4> "Smell of books" people.

I love books. I love reading what's written good, and immersing in a stream of the author's ideas, as they flow in a fluid way, slowly unfurling and settling in with me; not necessarily to stay, but to be weighted, fondled and tinkered with -- definitely.

It is extremely unlikely that I would grow to appreciate books as I do now if I haven't been exposed to printed paper books in my being a small child.

Hate, unmoderated hate is what I have for those people. "Smell of books". Sheesh… A word is a word, and you can read it from a screen. It don't smell, it's indexable, searchable and resizable. It's translatable (mechanically), and you can store tons of them in your pocket.

You just need to recognize that it matters how you read it -- don't just skim, immersion is something you yourself do.

Back to the vinil topic -- CDs are mastered with a resolution (in time) and depth (in percision) that is nowhere anywhere near vinil. Some people are gifted in a way (I am, to some extent) to hear, feel and "see" a sound-scape emerging from a recording, and enjoy the music on many more levels then you'd think. If you can't -- don't generalize from your own experience, people and minds come in all shapes and forms.

I'm willing to not be fussy about them "smell of books" people, let them have their books, printing, bookcases, dust, more dust and the fabulously smelling rot. I won't like it, but hey, they might have something there, would any of them please explain how that works for them though? I'd love to know.

And you _can_ master a digital recording (going beyond 44.1/16) to match what vinil does to audiophile's senses. It's just not something the "free market" will generally do.

Some records will never be digitized, and were mastered in an all-analog process to begin with.

But the whole time-space "handling" and "smelling" issue I don't get. I used to have a turntable, it was always a hassle to load it up, etc.

You _own_ the immersion. Use it. You want to listen to the whole album? Listen to the whole album.

There is no one there to stop you. Unless you own a cellphone, hate them dreaded time-leaches.

<comment><USER5> What is music if not an experience? Music enjoyment has almost nothing to do with audio quality... it is an emotional response to noise.

Judging from your post, you would probably also say that we should stop having sex (way too much of a hassle) and instead just masturbate alone and use in- vitro fertilization for making babies... I mean whats the difference anyways right? "Smell of books" people probably also like having sex.

<comment><USER4> Not everyone does, mate. I know a good-looking guy, tall, gray-blue eyes, blond, nice build and great social skills, that just _happens_ to think exactly the way you described. I myself am a moderately sexful person. And I happen to enjoy music far more then the average person seems to (if that wasn't clear enough). And hassling with the record/LP is nothing like foreplay, in my experience, it's like assembling the bed.

Don't extrapolate from your experience. Folks come in all shapes and sizes.

</comment></comment></comment></comment></comment><comment><USER6> In the fringe world of extreme metal (thrash/death/black metal) vinyl never went away (cassettes are still used for trading as well).

The fans are interested in the large cover artwork and extensive inlays. The bands are able to eek out a living selling premium products in this niche format.

It's easy to dismiss it as kids just trying to be different from the iPod generation but for the bands it's a real lifeline to hard cash for a very niche project.

While the quality of the recording is better then on CD the artwork seems to be the primary reason for kids/bands liking the format. These niches have not suffered as much from the loudness war as they are not competing with mainstream artists.</comment>


Deutsche Telekom chief causes uproar over net neutrality - <AUTHOR> http://chrismarsden.blogspot.com/2015/10/deutsche-telekom-chief-causes-uproar.html?m=1 <comment><USER2> "Start-ups need special services more than anyone in order to have a chance of keeping up with large internet providers," he argued.

"By our reckoning, they would pay a couple of percent for this in the form of revenue-sharing".

Thank you EU :-(

<comment><USER3> I wonder if they could introduce a tax to counter this. With a traffic shaping tax for the last mile. And tax free net neutral lines. Bonus benefit would be, secret traffic shaping and blackmailing Startups would be tax fraud.</comment></comment>


Show HN: An ORM for C - <AUTHOR>

I mentioned this here a week or so back and there was some interest, so I've been tidying things and making the docs available.
Announcement: http://isti.bitbucket.org/2013/06/21/orm-for-c-2.html
Docs (start here!): https://bitbucket.org/isti/c-orm/wiki/Home
Source: https://bitbucket.org/isti/c-orm/src
Example app:
https://bitbucket.org/isti/c-orm/wiki/SimplePhonebook
It's very much beta (not used in any production code yet), so please take care.  But the tests work and it's a cool idea I would love to take further if there was interest (even if there isn't I imagine I will use it in some work project in the future). <comment><AUTHOR> Clickable version:

Announcement: [http://isti.bitbucket.org/2013/06/21/orm- for-c-2.html](http://isti.bitbucket.org/2013/06/21/orm-for-c-2.html)

Docs (start here!): [https://bitbucket.org/isti/c-orm/wiki/Home](https://bitbucket.org/isti/c-orm/wiki/Home)

Source: [https://bitbucket.org/isti/c-orm/src](https://bitbucket.org/isti/c-orm/src)

Example app: [https://bitbucket.org/isti/c-orm/wiki/SimplePhonebook](https://bitbucket.org/isti/c-orm/wiki/SimplePhonebook)</comment>


We Love Tailwind - <AUTHOR> https://formcake.com/blog/why-we-love-tailwind <comment><USER2> I'm loving TailwindUI components and pages. Worth every single penny! The use of utility class CSS to make full pages and parts is awesome and such a joy to use.

<comment><USER3> What are you using to add interactions to it? I find that's the only thing it's missing in terms of getting started quickly.</comment></comment>


World `countries` – database table for MySQL - <AUTHOR> http://echobehind.wordpress.com/2012/09/23/world-countries-database-table-for-mysql/

<comment><USER2> Nice work...but this is not a perfect database of countries.

* Territories such as Réunion are listed as countries

* Countries that ceased to exist are not listed (Yugoslavia, Soviet Union) although the world's most recent new country (South Sudan) is listed.

* Kosovo is listed, although not recognised by all the world. Transnistria is not listed, even though it has de facto sovereignty.

* Total land area is a disputable amount in several circumstances.

There are several more such examples I could list.

Yes I'm being pedantic. But I have a special interest in this area, and I'm aware of just how hard it is. People are born in one country (Soviet Union) and die in another (Ukraine), even though they never moved from their home city (Odessa).

<comment><USER3> _People are born in one country (Soviet Union) and die in another (Ukraine), even though they never moved from their home city (Odessa)._

People are even born in one city (Leningrad) in one country (Soviet Union) and die in another city (St-Petersburg) in another country (Russia), although they never moved.

<comment><USER4> Wasn't the country Russia still Russia, just within the Union?

<comment> guard-of-terra It was Russian Soviet Federal Socialist Republic, and now it is Russian Federation.

You probably still could go with "Russia" every time.

</comment></comment></comment></comment><comment><USER5> Another time saver: TimezoneDB [1]

 _TimeZoneDB provides free time zone database for cities of the world. The database is licensed under Creative Commons Attribution 3.0 License. It contains countries name, time zones, abbreviation, GMT offset, and Daylight Saving Time (DST). The data is available in CSV and SQL format. You can download and implement into your projects for free._

[1] <http://timezonedb.com/download>

<comment><USER6> The tz database that this is sourced for is one of the most impressive compilations of information that I have ever seen. Timezones seem like they should be simple, but the reality is very impressive: [http://upload.wikimedia.org/wikipedia/commons/9/9f/Tz_map_wo...](http://upload.wikimedia.org/wikipedia/commons/9/9f/Tz_map_world2009r_efeledotnet.png)

</comment></comment><comment><USER7> If you want an "official" (i.e. kept up to date by the UN) machine readable list of countries then this is a better source:

<http://www.unicode.org/cldr/data/charts/summary/root.html>

This list also has currencies and some other stuff, but a Ruby script to extract what you want should not take more than 10 lines.

This list has the added advantage of being available in pretty much all the languages in the world, in case you need localisation for your project.

Side note: if you want to check if a list is up to date, check for "Aruba" and country code BQ (Caribbean). They changed the status of independent country a year ago so many lists don't have it yet (used to be a Dutch colony).

</comment><comment><USER8> Some countries have more than one currency code, China has CNY and CNH. <http://en.wikipedia.org/wiki/Renminbi#CNH>. I'm not going to debate the fact that CNH isn't official even though it is traded.

<comment><USER9> When you trade it you trade CNY with a note saying please settle in Hong Kong, you cannot use the CNH symbol...

</comment></comment><comment><USER10> Only two comments: 1\. It is Czech Republic, not Czechia. At least in English. 2\. Having the mulitple spoken languages in a single column is against normalization a bit. If one would have to use those values, they would need to parse the csv, etc.

</comment><comment><USER11> Similar kinds of data are in my GitHub repo, in case it helps people here.

<https://github.com/sixarm/sixarm_data_geolocation>

Suggestions welcome.

</comment><comment><USER12> Apart from the geometry the dBase tables of the Shapefiles from <http://www.naturalearthdata.com/> are also exceptionally useful if imported elsewhere.

</comment><comment><USER13> Is there a single source for data like this? Lists countries, currencies, timezones, dictionary words.

A Wiki for massive amounts of data that is basically common knowledge.

<comment><USER14> Yes, Unicode CLDR[1] provides all of this data and more in XML format.

[1] <http://cldr.unicode.org/>

</comment></comment><comment><USER15> Primary key on idCountry, no unique constraints on name/code/isoAlpha3, and 'default' blank values? It's certainly a start, but it's also a bit questionable.

</comment><comment><USER16> Geonames has a bunch of freely-available location datasets. I've used it in various apps for cities, countries, postcodes, etc: <http://www.geonames.org/export/>

</comment><comment><USER17> If it may help, here is a list of world countries in CSV, XML and JSON formats.

<https://github.com/mledoze/countries>

</comment><comment><USER18> Cool work. I thought this was going to be a static .SQL file or something from the title. I was pleasantly surprised to find that it's actually a program[1] to dynamically generate a countries table based on current data. In addition: it's possible to define the columns you want to grab like name of the country, population, languages spoken, and so on.

[1] - <http://peric.github.com/GetCountries/>

<comment><AUTHOR> I was thinking about that, and maybe I'll do it. I'm also thinking about selecting between SQL or XML code.

</comment></comment><comment><USER19> Another source, with SQL, XML, JSON, etc.:

<http://data.brighterplanet.com/countries>

and a lot more like it at:

<http://data.brighterplanet.com>

</comment><comment><USER20> It would likely also be useful to have the local language name for the countries as an optional column. You can probably source this from the <http://naturalearthdata.com> source mentioned elsewhere here.

</comment><comment><USER21> Thanks for this. I think it sounds worthwhile to move my own country table work in PostgreSQL to an extension so everyone else can use it. Thanks for the inspiration/motivation!

</comment><comment><USER22> See ISO 3166...

<http://www.iso.org/iso/home/standards/country_codes.htm>

</comment><comment><USER23> I actually faced a similar problem and I ended up writing an almost identical script which generated a JSON or XML file (depending on the user's need).

</comment><comment><USER24> Isn't it easy enough to just delete columns you don't need after importing one of the public sources?

<comment><USER25> ...or just leave the data in. Having a few extra columns on a 250 row table isn't going to hurt anything.

</comment></comment><comment><USER26> Very nice job. That would be great if there were such thing for cities and nationalities.

</comment><comment><USER27> Hmm, I see some countries on here that weren't on the Sporcle map.</comment>


We're Immigrants in Silicon Valley and We're Putting America First - <AUTHOR> https://medium.com/@Flypostboy/were-immigrants-in-silicon-valley-and-we-re-putting-america-first-f7391fda312d#.s7t1u6ult <comment><AUTHOR> Getting a visa in the US is difficult but can be done with the right amount of focus and effort. This is just our story (and everyone's is different) but happy to discuss and share any details, answer any questions etc.</comment>


How Fog Creek Saved me half a grand OR Great Customer Service - <AUTHOR> http://www.issackelly.com/Blog/entry/Dan_Fog_Creek_Software/

<comment><USER2> I didn't realize they have a Student and Startup edition. I guess good things happen when you're nice to your customers (you get free advertising).

</comment><comment><USER3> Not that I disagree that this is an example of good customer service. But even if they had sold you a 2-user license for $400, it could've wound up a wash for them if you called support for help setting it up. And given that they clearly considered both of your hosting options suboptimal, they probably saw that as a good possibility.

<comment><AUTHOR> Well, they could have said;

"Sorry, you don't meet the minimum requirements";

<comment><USER3> Right, and then they'd give you your money back, and they'd still not have made any money -- if anything, you'd be a net loss if they spent any time trying to help you.

</comment></comment></comment><comment><USER4> Click "Reply" again and include this link. Who knows, you just might make his day.

(No matter how good you get at something, positive feedback is ALWAYS appreciated.)

<comment><AUTHOR> Thanks.</comment></comment>


Pope steps down - <AUTHOR> http://www.bbc.co.uk/news/world-21411304

<comment><USER2> First time its happened in ~600 years. What do you do when you used to be the pope? Is his health so bad that he will be bedridden?</comment>


Twitter bots are getting smarter and influencing politics - <AUTHOR> http://bits.blogs.nytimes.com/2014/04/20/friends-and-influence-for-sale-online/ By using social media bots, politicians and others are swaying public opinion about a policy position and political agenda. <comment><USER2> This reminds me of ELOP from Avogadro Corp: The Singularity Is Closer Than It Appears by William Hertling, except rather than being a single system we have a bunch of competing bots.</comment>


Creativity at its best - <AUTHOR> http://gurugadbad.com/ must watch.. <comment><USER2> Nice parody there. I liked the unexpected ending.</comment>


8 Things Only Computer Programmers Will Understand - <AUTHOR> http://www.clickhole.com/article/8-things-only-computer-programmers-will-understand-3513 <comment><USER2> This was a "what the hell?" moment in the same vein as when I realized Tiny Tim was actually intelligent and well-spoken.</comment>


Ask HN: What open source project should I work on? - <AUTHOR>

I've been really excited about trying some open source stuff just for fun and also to improve my coding (and collaborative development) skills, I know Go, PHP, simple Javascript and bits and pieces of other technologies (C/++, Ruby, Lua, Haskell, Shell etc). I think I'd like it to either be Javascript or Go, though - those are the languages (and related ecosystems) I seem to like working with the most. The only other requirement is that it's on Github and follows the whole pull request code review workflow.
I've never really contributed to an open source project before, I'm really excited to get into this though. If you guys have any recommendations of something interesting to hack on please share!
Thanks <comment><USER2> What open source project is complete and doesn't need any help? Besides Go or PHP and Github, you've told us no preferences, so it's kind of open ended. What has you motivated, what are you looking for? Would you mind spending four days adding a basic feature in a relatively unfamiliar language?

I've recently contributed to an opensource project myself for the first time. The project is Filezilla (the client in particular), and I added a feature to create a new, empty file on the server. About 70 lines of code in the end, but having little c++ experience it cost me two evenings, though that includes getting it to compile (also a first, compiling a project with a number of dependencies and lots of code on Linux). The patch is being reviewed now, and I have good hope it makes it to the next release. It feels really good to complete because I've actually done something measurable; solved a problem in software used by thousands.

I'd like to take such a project on again. It was small enough for me to grasp in a language that I was not very familiar with, and I learned lots of things. And it solved an actual problem. So those are things I'd be looking for in a project to take on. Perhaps you prefer something bigger? Or not? Not that I'd know a project to suggest, but perhaps others do ;)

<comment><AUTHOR> I like everything you've said about that.

I guess I want to be able to make a contribution which is actually a real thing used by real people, rather than a dead project somewhere in the corner so to speak. A good community surrounding it would be cool too - I wouldn't mind meeting some like minded and interesting people!

In honesty I don't really know what I want/what I would find interesting - that's why I'm looking for suggestions.

<comment><USER3> It is really hard to recommend a project to someone just because everyone have such diverse interest and passion. My only suggestion is to roam around the community until something tickles you inside. If you are not sure what you will find interesting may just because you haven't found a project you are passionate about. Frankly if that "dead project somewhere in the corner" is something that motivates you, you should choose that over the larger projects.

Personally, my personality and preference are for smaller projects with a more intimate community. In the end of the day, (for me) it is much more about learning and doing something I love rather than doing something to go on a resume (or my lack of a resume. :P). So think about these questions: 1\. What is your goal in doing this? (i.e. combinations of to learn, to have fun, to add to the resume, etc.) 2\. What motivates sufficiently at 4AM in the morning?

<comment><USER2> Haha yep, 4am is a common time to finish something neat :D</comment></comment></comment></comment>


The terrifying mathematics of Ebola - <AUTHOR> http://blogs.channel4.com/tom-clarke-on-science/terrifying-mathematics-ebola/1329 <comment><USER2> [http://en.wikipedia.org/wiki/1918_flu_pandemic](http://en.wikipedia.org/wiki/1918_flu_pandemic)

mentions two theories why the 1918 flu pandemic ended (see section 'End of the pandemic').

I'm trying to understand the mutation theory. How come there is no 'watchmaker' situation here? Is it because a virus is simple enough that its replication is directly driven by thermodynamics, as opposed to more 'organized' forms of exploring the configuration space?</comment>


Show HN: We're losing way too much time on bug reporting - <AUTHOR> https://marker.io/?ref=hn <comment><USER2> Love the idea, doing screenshots right now and then dumping it on asana, this is basically better, also noticed a typo:

"Like most of our peers, we used screenshots to get our point accros to the rest of our team."

should be across and its on this page: [https://marker.io/about- us](https://marker.io/about-us)

Probably should be best reported using marker, no?

<comment><USER3> That's a really cool idea!

</comment></comment><comment><USER4> You are? Maybe make another visual bug reporting product on top of your product to report marker.io bugs.

But then how do you visualize the bugs in that meta bug visualizer???

</comment><comment><USER5> This is pretty cool. Any plans to support Pivotal Tracker?</comment>


Show HN: I made a platform that automates financial wellness - <AUTHOR> https://www.mycurbcard.com/ <comment><USER2> You would get a lot more feedback if the landing page described the product a bit more - specifically what you're doing, how you're doing it, and why I'd want it...</comment>


Daring you to gamify your life! - <AUTHOR> http://getwhatnow.com/ <comment><USER2> I have a challenge suggestion, where can I send it in?

<comment><AUTHOR> You could either suggest challenges in the app or send them to me directly: firstname.lastname@example.com</comment></comment>


The Limits of Copy-On-write: How Ruby Allocates Memory - <AUTHOR> https://brandur.org/ruby-memory <comment><USER2> I wrote this one. I've been working with Ruby roughly six years, but didn't understand its memory internals at all beyond the surface level until I started doing the research for this one.

If there's one takeway/point of interest that I'd recommend looking at, it's the novel way that Ruby shares a pointer value between actual pointers to memory and special "immediate" values that simply occupy the pointer value itself [1]. For example, a fixnum (most integers) has its binary value shifted by one bit to the left, and then a "1" flag applied in its rightmost position so that Ruby can recognize it. It doesn't have to go to heap, and the runtime can take advantage of that for faster calculations.

[1] [https://brandur.org/ruby-memory#value](https://brandur.org/ruby- memory#value)

<comment><USER3> I've seen that pointer sharing thing in other languages in the past. Back in the 80's we did that in an app in MacOS when the memory pointers didn't require all the bits.

<comment><USER4> This is usually called a tagged pointer and is a common way to optimize highly dynamic languages: [https://en.wikipedia.org/wiki/Tagged_pointer](https://en.wikipedia.org/wiki/Tagged_pointer)

(I just noticed that two of my articles are cited for that page. How neat!)

For more examples, Objective-C does this on 64-bit, and many Lisp implementations use it. Swift uses it for certain enum payloads.

An interesting variant is to stuff your pointers into the payload of an IEEE754 NaN value. This is popular in JavaScript, since JS numbers are IEEE754 doubles.

<comment><USER2> Fascinating — I had no idea the technique had a name (the Ruby source isn't very heavy on comments). I'll update the article to include it.

<comment><USER5> This technique is so common in dynamic language implementations that it even has hardware support in some architectures, such as the SPARC TADD instruction that adds two registers and sets a condition code if any of the lower bits were set.</comment></comment></comment></comment></comment>


Introduction to Stream Filtering Utilities - <AUTHOR> http://bashshell.net/stream-filtering-utilities/introduction-to-stream-filtering-utilities/

<comment><USER2> Well, that was pretty pointless ...</comment>


World's first hack-free software developed - <AUTHOR> http://www.hindustantimes.com/World-s-first-hack-free-software-developed/H1-Article1-655632.aspx <comment><USER2> I never understand claims like this. They proved that it implements "the spec" perfectly, but to do that, you need a detailed spec with no abstractions. That means the spec contains just as much information as the code itself, which means the spec is just as complex as the code. Thus, the spec is just as vulnerable to hacks as any other work created by fallible humans. So essentially, proving that the code is a perfect implementation of the spec tells you nothing.

<comment><USER3> > They proved that it implements "the spec" perfectly, but to do that, you > need a detailed spec with no abstractions.

No you don't.

> That means the spec contains just as much information as the code itself, > which means the spec is just as complex as the code.

No it doesn't.

> Thus, the spec is just as vulnerable to hacks as any other work created by > fallible humans.

The spec can be smaller and more accessible than the code.

> So essentially, proving that the code is a perfect implementation of the > spec tells you nothing.

It tells you that you can read the spec and know exactly what the code will do. For example it won't BSOD (unless someone was silly enough to put that in the spec).

.

I can have a function "int exp(int a, int b)", and a spec that says it returns "a^b" (or "a __b" or however you want to write it), or throws a IntegerOverflowException if that doesn't fit in an int. The actual function contains more information that the spec, such as how exactly it checks for overflow and whether it calls a multiply instruction or does its own repeated addition and whether it does b multiplications or uses certain mathematical tricks to work faster. The _proof_ on the other hand I think does have to be as complex as the function, but at least proofs tend to be written in ways that the computer can help prove them.

<comment><USER4> Why so condescending? Joel made a perfectly valid point, and while _you_ might be thinking of something specific while writing your answer, many of us here don't have that context. I just spent the last few minutes trying to understand the last paragraph, and I'm still confused.

I thought it was an accepted axiom that no "perfect" specs can be written in natural language: sure, you can _try_ to with a great deal of effort, but you can never get the same guarantees that a mathematically-based technique can give you. And the separation between the spec and the "proof" bothers me: what is the point of a spec if, after building a product, you can't verify you built it right? I would consider such specs as incomplete.

<comment><USER3> > And the separation between the spec and the "proof" bothers me: what is the > point of a spec if, after building a product, you can't verify you built it > right? I would consider such specs as incomplete.

You have a spec, that says what the code _should_ do. This is independent of the code; there can be many ways to write the code to match a given spec.

You have a proof, that says what the code _does_ do. This is intimately tied to the code, and with the right languages and tools can _be_ the code.

You verify that you built it right, by seeing that they match.

This is abstraction, the basic interface/implementation distinction; the spec is an interface and the code+proof is an implementation.

</comment></comment></comment></comment><comment><USER5> I spent some time studying this kernel in a graduate class a year or two ago.

Basically the kernel was implemented in subsets of C and subsets of Haskell, and a 1:1 mapping between C and Haskell was proved. The Haskell code was formally proved to match certain properties in the prover.

One of the key innovations in the seL4 project is a formal treatment of properties regarding memory allocation and usage. That is to say, they were able to write proofs about malloc using only static analysis (just looking at the code, not running it), which was something that's been pretty out-of-reach to that point. Of course, there are limitations to the C code.

So, the seL4 microkernel is provably immune to certain classes of bugs. That's basically the big deal.

If I was looking for a secure kernel, seL4 would be a good starting point to look at, IMO.

</comment><comment><USER6> Sadly, mathematically proving that it does what the spec says does not necessarily mean that it's not vulnerable. The spec can be wrong too. Or the compiler. Or both.

Nevertheless, it's very interesting.

<comment><USER7> As Donald Knuth would say:

"Beware of bugs in the above code; I have only proved it correct, not tried it."

<comment><USER8> This quote shows up like canon in almost every thread that has anything to do with formally verifiable/verified software :P

</comment></comment></comment><comment><USER9> World's first hack-free software 'developed'

It's a curious use of quotes. I would have expected 'hack-free' to be in quotes.

Putting quotes around 'developed' seems to bring-into-question the whole statement.

<comment><USER10> I'm pretty sure they're using quotes there as actual quotes -- as in, the 'developed' part is a literal quote of something someone said or printed. BBC News does this all the time.

</comment></comment><comment><USER11> Earlier discussion: see <http://news.ycombinator.com/item?id=760547>

<comment><USER12> Very nice discussion there. It surprises me that a non-trivial piece of code written in C can be verified.

It might be of interest that BitC <http://www.bitc-lang.org/> is being developed as a flexible system programming language that supports verification.

      It seeks to combine the flexibility, safety, and richness
      of Standard ML or Haskell with the low-level expressiveness of C....

      ...it is possible to write a MPEG decoder or SHA-1 hash algorithm
      in BitC that is fully safe, but performs competatively with the
      C implementation. Today, that can't be done in SML, O'Caml, or Haskell.

</comment></comment><comment><USER13> How is this hacker news, then? :)

</comment><comment><USER14> It's a shame Australian scientists don't have Social Security numbers to embed in this software somewhere, to demonstrate how unhackable it really is.

[http://www.wired.com/threatlevel/2010/05/lifelock- identity-t...](http://www.wired.com/threatlevel/2010/05/lifelock-identity- theft/)

<comment><USER15> But they do have Tax File Numbers (<http://en.wikipedia.org/wiki/Tax_File_Number>) and bank accounts.

<comment><USER16> Yeah, the only 'shame' is that even if they embedded their TFNs, what's the worse that could happen? The laws that protect the use of the TFN would essentially make having it useless anyway.

Unlike in the US, for example, where the stories seem to imply having someones SSN means that I could essentially steal their identity. I don't know how far you would get trying to do something like that with a TFN only...

</comment></comment></comment><comment><USER17> Great, cudos. They just seemingly discarded the part about peer-review. Where is the spec and the code? Given that I would believe this claim (which I don't) there has to exist means for independent third parties to verify this. Otherwise it's just a pissing contest in space.

<comment><USER11> A peer-reviewed paper on seL4 on an ACM conference: [http://ertos.nicta.com.au/publications/papers/Klein_EHACDEEK...](http://ertos.nicta.com.au/publications/papers/Klein_EHACDEEKNSTW_09.abstract)

(I don't trust the Hindustan Times to get software verification details correct any more than I trust the Badische Zeitung to pick the right operation mode for a block cipher).

<comment><USER17> "The proof assumptions mean that there may be faults remaining in the kernel that could be classified as implementation faults below the level of C. They will not be faults that are properly visible on the level of the C programming language (which is our main claim of correctness), but they could still be serious faults that make the seL4 kernel misbehave." -- <http://ertos.nicta.com.au/research/l4.verified/proof.pml>

This just seems to be a case of someone running their mouth a bit too liberally and Hindustan Time jumping the gun. The actual project, which unfortunately is quite proprietary, has a much better overview of the whole ordeal. I would however like to se how their 1:1 strict C/haskell conversion actually looks (and why they decided against just modifying the something like the ghc :P).

You were right in not trusting the paper.

</comment></comment></comment><comment><USER18> In some other realm Gödel is laughing.

<comment><USER19> Godel's theorem doesn't have much to say either way about "hacking". If you've got a bit of information on a system that a user X shouldn't be able to access, if you completely seal off the user X from that information it doesn't matter how many computations they run. They won't be able to get it. Godel's proof does not prove anything about a system's ability to access its external environment, it proves that a sufficiently complicated system can't be sealed from having certain properties on its _inside_.

<comment><USER20> A DOS from a non-terminating process is still a hack.

<comment><USER19> The process can only fail to terminate if the exterior environment doesn't kill it, and no amount of work in a correctly secured environment will let the process escape that.

Security is hard, really hard even, but Hollywood OS is fictional. Barriers are penetrable today because they have holes, not because Godel's theorem guarantees that all security can be penetrated. That's not what it is about.

</comment></comment></comment></comment><comment><USER21> Are they serious? Is this serious? Is such a think like developing "unhackable" software or hardware even possible? I don't think so.

<comment><USER22> Software can be proven correct, but if you want to do anything useful with a computer system, you need more than just an OS kernel. Even if the kernel itself is "perfect", that doesn't stop vulnerabilities from appearing in the upper levels.

So it's a cool accomplishment, but it's never going to be "like Mac, but totally unhackable!" or anything like that.

</comment></comment><comment><USER23> Today there is an interesting situation in that there exist microkernels with an amount of published formal proofs such as the one by NICTA in this thread and, then, that there exist DO-178B avionics certified microkernels and separation kernels (often with very little published artefacts). I think that the current hot field for microkernels is to bring both formal methods and certification together, which is indeed starting to happen for DO-178C see for example <https://sites.google.com/site/fmstandardsworkshop/> . Holger Disclaimer: not completely unbiased here (e.g. <http://www.uni- koblenz.de/~beckert/pub/safecomp2009.pdf>).

</comment><comment><USER24> Isn't this what the Microsoft Singularity project have been working on for a long while? I remember reading some post about how they also have proven (verified) the correctness of its operation a while ago, but I can't immediately find a link.

</comment><comment><USER25> It's worth noting that seL4 is a variant of L4, a very small microkernel. Proving the microkernel secure is interesting, and maybe useful; but a real OS has a lot of other pieces, which may introduce their own insecurities.

</comment><comment><USER26> Congratulations, OK Labs solved the halting problem: [http://www.ibm.com/developerworks/rational/library/nov05/mar...](http://www.ibm.com/developerworks/rational/library/nov05/marasco/index.html)

<comment><USER27> "Can a program ever be proven correct? No. There may be some very trivial toy programs that under very special conditions can be proven "correct" -- that is, we can mathematically prove that they will never give an incorrect result.5 In the real world of programs, however, the answer is no. At first, one is tempted to believe that it is simply a question of combinatorics. That is, if one considers all the permutations of all the paths through any non- trivial piece of software, one quickly comes to the conclusion that exhaustively testing any piece of software is an impossible task. This is analogous to the NP Complete problem. But, in fact, it is even worse than that. It turns out that proving programs correct is equivalent to solving the Halting Problem. And we know from Turing's work that that is an impossible task."

Your link is filled with nonsense, including the conclusion you took away from it here. We're talking about proving properties of a particular program here, not an arbitrary one. Please don't link to that in public again. It's a really terrible article.

<comment><USER28> From the article: "Its unique feature is that it has been mathematically proven to operate correctly, enabling it to separate trusted from untrusted software, protecting critical services from a failure or a malicious attack, say the scientists"

He may have been basing his reply on this paragraph. If the OS could successfully answer whether any arbitrary program was trusted or untrusted, that this is equivalent to solving the halting problem.

<comment><USER27> I don't think you're reading that quote right. "Trusted" doesn't mean "trustworthy". What the implementors were probably trying to explain to this poor technical writer is that they have proven that their kernel correctly implements the isolation policies they have formally specified - enabling it to separate (isolate) trusted (kernel level) from untrusted (user level) software.

</comment></comment></comment></comment><comment><USER29> They are kinda asking for it aren't they? I mean its nice in theory but has it not been proven time and again there is no such thing as hack-free?

</comment><comment><USER30> This is the definition of a trolling scientist. I'm willing to bet this will be cracked within 1 year of the software surfacing.

<comment><USER31> How much do you want to bet?

Of course, the kernel is hackable (just hack the hardware, done). But if you stay with what the claim actually is, not what the press writes about it, we can play.

Download kernel and spec from [<http://ertos.nicta.com.au/software/seL4/>] stay in the proof assumption space, described here [<http://ertos.nicta.com.au/research/l4.verified/proof.pml>], and let us know if you can find a deviation from the spec, hacking or otherwise. Take as much time as you like.

If yes, we'll be very interested to hear and I'm sure we can write a paper together that a lot of people want to know about.

I usually don't have much time for trolling, but sometimes it's fun ;-)

Cheers, Gerwin

</comment></comment><comment><USER32> So the chip executes the code to the spec as perfectly as the imperfect human wrote them?</comment>


F# Web Tools: Translates mixed client/server to Javascript - <AUTHOR> http://www.codeplex.com/fswebtools

<comment><AUTHOR> If you are one of the unlucky saps stuck in the ASP.net world, this might be a cool project for you. This is an early entry from Microsoft into the GWT/PyPy/etc space. It has a permissive license.

F# is becoming an officially supported Microsoft language which will let you convince your boss that this new fangled workflows (aka monads) powered system is safe to use.

</comment><comment><USER2> If that's what I think it is, it's more than GWT - it's trying to blend the boundary between client and server. I think it's a bad idea as outlined here:

[http://www.erlang.org/pipermail/erlang- questions/2008-May/03...](http://www.erlang.org/pipermail/erlang- questions/2008-May/035207.html)

<comment><AUTHOR> I agree that RPC is bad, but I don't think it is because it blends the boundary. I think its downfall is that it masks failures.

In this case, code seems to be explicitly labeled as client, server, or both. Sometimes, you really do want both. Consider a calendar which is sent down as HTML from the server for mobile clients, but updated on the fly by javascript in full browsers. Typically, however, your client code is explicitly marked as such and calls into server code with the very proven success/failure ajax callback pattern.

<comment><USER2> It's not just failuers. It's also the rolling upgrades and the perforomance profile.

Lack of a clearly defined protocol is a leaky abstraction.</comment></comment></comment>


Safari 10.0 - <AUTHOR> https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_10_0.html <comment><USER2> Notably, the ApplePay API is entering general availability (GA)[1].

The following networks are supported[2]: amex, discover, interac, masterCard, privateLabel, or visa.

The following products are prohibited[3] as well as many other services:

* cigarettes or tobacco products;

* firearms, weapons, and ammunition;

* illegal drugs, non-legally prescribed controlled substances;

* items that create consumer safety risks;

* items that are intended to be used to engage in illegal activities;

* pornography;

* counterfeit or stolen goods; or

* collection of charitable donations;

A paired iPhone or Apple Watch device is required (re: the macOS Sierra app), as well as iOS 10 and macOS 10.12.

[1] [https://developer.apple.com/reference/applepayjs](https://developer.apple.com/reference/applepayjs)

[2] [https://developer.apple.com/reference/applepayjs/1916082-app...](https://developer.apple.com/reference/applepayjs/1916082-applepay_js_data_types/paymentrequest)

[3] [https://developer.apple.com/apple-pay/acceptable-use- guideli...](https://developer.apple.com/apple-pay/acceptable-use-guidelines- for-websites/)

<comment><USER3> A pretty standard laundry list of no-go items and then...

> * collection of charitable donations;

!! This seems really different from all the other prohibitions. What's the idea behind that?

<comment><USER4> I imagine all the legal regulations surrounding charitable donations and tax breaks. If someone was fraudulently gathering money under the guise of charity, it would turn into a huge headache for them, even worse than normal fraud.

That's pure speculation on my part. Given that Tim Cook is personally very pro-charity (he put a matching contributions policy in place after assuming the CEO role), it seems likely that this will loosen up once Apple can put some certification policies in place.

<comment><USER5> > I imagine all the legal regulations surrounding charitable donations and tax > breaks.

There aren't. You can collect donations on behalf of an organization just about anyway you please. Many of them have Apps for that. It's super fun on iOS because you have to kick out to Safari to complete donations so you don't have to pay the Apple tax. Not that I would know about any of that...

</comment></comment></comment></comment><comment><USER6> Relatively minor change, but one of my favourites; cmd-z will now undo multiple tab closes.

<comment><USER7> That, or they could implement a real "recently closed" interface like every other browser. Is there some obscure security or performance reason they don't do this?

</comment></comment><comment><USER8> [http://iswebrtcreadyyet.com/](http://iswebrtcreadyyet.com/)

Unacceptable in this day and age.

<comment><USER9> They're working on it: [https://webkit.org/status/#specification- webrtc](https://webkit.org/status/#specification-webrtc).

<comment><USER10> Here's the bug in their bugtracker: [https://bugs.webkit.org/show_bug.cgi?id=124288](https://bugs.webkit.org/show_bug.cgi?id=124288)

</comment></comment></comment><comment><USER11> _The ECMAScript 2015 standard, also known as ES6, is completely supported, bringing this major JavaScript evolution to Safari on macOS and iOS._

Very nice to see ES6 getting implemented by all major browsers.

<comment><USER2> Obligatory "ES6 is supported but not ES6 modules."

<comment><USER12> ES6 only defined syntax for modules, it didn't define a way to load modules, that's a different standard

</comment></comment></comment><comment><USER13>
      When the webkit-playsinline property is specified, Safari on iPhone allows videos to play inline. Videos without the property will commence playback in fullscreen, but users can pinch close on the video to continue playing the video inline.
      On iOS, videos without audio tracks or with disabled audio tracks can play automatically when the webpage loads.

This allows for inline videos in Safari on iOS. Previously, webkit-playsinline only worked for pages saved to the home screen.

<comment><USER14> This was a 'wow' moment for me, as someone innovating in video.

</comment></comment><comment><USER15> I had to restart my mac for a browser update? (may have missed something else in there)

<comment><USER16> You probably have to restart because the web rendering engine (WebKit) used by your browser (Safari) is used all over the rest of the system as well (in webviews). Just a guess though.

<comment><USER17> Rings a bell.

I seem to remember that someone sometime got into some trouble for something like that.

Just a fading memory.

<comment><USER18> Yes I think it was something about forcing that to users through a de-facto monopoly of 95% of computers in the world.

Not sure why people try to apply monopoly restrictions to Apple. They don't have monopoly position (not even close) in any market they operate.

</comment></comment></comment></comment><comment><USER19> The biggest hope I had from macOS Sierra was Picture in Picture, but sadly, iTunes is basically the only thing supporting it.

Till, then, I'm stuck using Helium.

Helium : [http://heliumfloats.com](http://heliumfloats.com)

<comment> SG- No, anything that does standard controls will support PiP and as indicated in the notes for HTML5 players that have their own controls (like Youtube) then it's possible to do it through JS (if Youtube decides to).

I'm sure some browser plugin can be created to add the controls to Youtube or all the other major HTML5 players.

<comment><USER20> You can use PiP for the YouTube HTML5 player by right-clicking on it twice, see my previous comment:

[https://news.ycombinator.com/item?id=12542619](https://news.ycombinator.com/item?id=12542619)

</comment></comment></comment><comment><USER21> Really nice update as a developer. As a user, I still can't use any browser that doesn't have something like [self destructing cookies]([https://addons.mozilla.org/en-US/firefox/addon/self- destruct...](https://addons.mozilla.org/en-US/firefox/addon/self-destructing- cookies/)). Cookies are just way too sticky and invasive, and turning them off breaks just about every site.

</comment><comment><USER22> I don't own a Mac, but I'm curious if Safari 10 is finally good enough to run one of my hobby projects, and if not I'd like to debug it because it seems the feature support is finally here (specifically, IndexedDB).

Are there any better options than coercing one of my friends with a Mac into upgrading and letting me borrow their laptop? If not, will I have to get them to upgrade the whole OS like it's old school Internet Explorer, or is it standalone?

<comment><USER23> I just updated Safari to 10.0 without being on macOS, so it's presumably standalone. Some features (i.e. picture in picture) might not work as well, but indexedDB has been in Safari for a while, so I'm sure the updates to it are supported everywhere.

<comment><USER24> Wait, what? What other OS is it out for?

<comment><USER25> (That comment is using "macOS" to differentiate from older builds of "OS X".)

</comment></comment></comment></comment><comment><USER26> Safari 10 seems to choke while I'm reading this page:

[http://www.seas.upenn.edu/~cis194/fall16/lectures/01-intro.h...](http://www.seas.upenn.edu/~cis194/fall16/lectures/01-intro.html)

Usually about the time I get to the section on Animations.

<comment><USER27> Works fine here.

<comment><USER26> Probably didn't give it enough time. It kills Safari on my iPad too. I submitted a Radar.

Thread 0:: Dispatch queue: com.apple.main-thread

0 libsystem_kernel.dylib 0x00007fffd0a0ec8a __psynch_cvwait + 10

1 libsystem_pthread.dylib 0x00007fffd0af797a _pthread_cond_wait + 712

2 libc++.1.dylib 0x00007fffcf48558d std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 47

3 com.apple.JavaScriptCore 0x00007fffbe6ef7de WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 2494

</comment></comment></comment><comment><USER28> Does Safari 10 support the fetch api[0] yet?

[0]: [https://developer.mozilla.org/en- US/docs/Web/API/Fetch_API](https://developer.mozilla.org/en- US/docs/Web/API/Fetch_API)

</comment><comment><USER29> The first beta preview of sierra had webp support and safari supported it. They removed it in the later preview release. Hopefully they will support webp in some future release of macOS.

</comment><comment><USER30> HTML 5 geolocation seems to not work on my local development environment anymore, Webinspector says a secure connection (https) is needed.

Any workarounds for this?

<comment><USER31> [https://letsencrypt.org](https://letsencrypt.org)

</comment></comment><comment><USER32> Getting ready for a new macbook hopefully

</comment><comment><USER33> Anyone know the release date?

<comment><USER34> It came as an App Store update for me today.

</comment></comment><comment><USER35> Can I just say, after years of neglect and falling behind the industry, fuck Safari.

</comment><comment><USER36> Will Safari 10.0 work on Mavericks?</comment>