Show HN: A search widget for static web sites - <AUTHOR> http://www.webtigerteam.com/websearch/ <comment><USER2> Using the RSS feed for the content seems clever, and useful as a means to build the static search widget outside the content generation phase of site building (or for adding after the fact).

I recently had a similar (less well fleshed-out) idea[0], but built the search corpus during the generation of my static site (this was made easy by the fact that I wrote the generator too). The results aren't nearly so impressive, but it was an interesting experience that lead to all sorts of interesting ways to improve searching, like stemming, lemmatization[1] and (removing) stop words (this was mostly to reduce the size of the text corpus).

[0]: [https://idle.nprescott.com/2017/text-search-on-a-static- blog...](https://idle.nprescott.com/2017/text-search-on-a-static-blog.html)

[1]: [https://nlp.stanford.edu/IR- book/html/htmledition/stemming-a...](https://nlp.stanford.edu/IR- book/html/htmledition/stemming-and-lemmatization-1.html)

<comment><USER3> Your post was a great read, and I might try doing something similar on my blog. A suggestion though: I typed in a query with an uppercase letter and it failed to find any matches. Perhaps .lower() your query if it's something you'd like to maintain? Thanks!

</comment></comment><comment><USER4> Be careful loading JS from sites you don't control. If the host goes down, your search stops working. If the host becomes malicious or compromised, your site becomes malicious or compromised.

For best results, host the JS yourself.

<comment><USER5> The latter is a solved problem with SRI which most CDNs support.

[https://developer.mozilla.org/en- US/docs/Web/Security/Subres...](https://developer.mozilla.org/en- US/docs/Web/Security/Subresource_Integrity)

<comment><USER6> SRI is not a matter of servers/CDNs to support, it's run completely on the browser. I'd argue it's not a bulletproof solution, since only ~60% of browsers support it ([https://caniuse.com/#feat=subresource- integrity](https://caniuse.com/#feat=subresource-integrity)).

<comment><USER5> Thanks for sharing. It looks like the active major browsers that don't support it in their latest version are Edge and Mobile Safari. I wonder why they haven't done so yet.

</comment></comment></comment></comment><comment><USER7> Nice, simple solution!

Feedback: the JS to include should be minified, and the instructions should say to either place the script tag at the bottom of the 'body' tag (not in the head), _or_ to add the 'async' attribute to the script tag ( _or_ do what Google Analytics does and include a bit of inline JS to async-load the script).

(Otherwise rendering of the page is blocked by a 3rd party script, which is a pretty bad situation).

<comment><USER8> On that note, the script _really_ needs a subresource integrity hash[1]. As it's included at the moment the author could modify the code at webtigerteam to do _anything_. By putting an integrity hash in the script tag people could use this without worrying about future changes doing bad things.

[1] [https://developer.mozilla.org/en- US/docs/Web/Security/Subres...](https://developer.mozilla.org/en- US/docs/Web/Security/Subresource_Integrity)

<comment><USER9> ... by exchanging it for worrying about the feature breaking every time a minor fix is pushed. If you're going to go through the hassle of manually pinning versions, then just download and host the code alongside your site.

</comment></comment></comment><comment><USER10> A clever solution that would work well in the right scenarios. Nice work.

I was left looking for a replacement when Searchpath.io closed shop. It was the simplest static site search I was aware of. Just add a single JS script to your site ($75/yr for full version).

Google's search widget is next best thing. The results are obviously good, but now you can't opt out of ads, so you may be serving up ads to competitors.

There are some nice search tools out there, but they are overly complex and too expensive for small, static sites.

I played around with lunr.js, but ended up settling on Tipue Search ([http://www.tipue.com/search/](http://www.tipue.com/search/)) Once the index is created, it's pretty good.

</comment><comment><USER11> This is a really neat solution. I like it.

One solution I've been working with is to create an index at build time for static sites and push to SaaS ElasticSearch and use AWS Lambda to make a query interface to it. It works well, albeit not free to run. This solution beats it in cost and probably perceived performance too.

</comment><comment><USER12> This is a clever idea but it really doesn't scale to larger sites since relies on having access to the full text of every page on the client.

Using the rss feed to find pages is neat, but you might be better off just modifying your static site generator to produce a nicely formatted single file that your Javascript can read directly.

I don't have local search (it is hard to beat google) but I did implement a client-side tag cloud [0] for my statically generated blog. The embedded javascript is generated from the site's content each time I build the site.

[0] [https://sheep.horse/tagcloud.html](https://sheep.horse/tagcloud.html) (Statically generated client side tag cloud)

<comment><AUTHOR> I was _concerned about downloading several small text-files_ too, but if you visit for example nytimes.com there's 350 requests on first load. And Facebook has auto-plying videos ... Downloading a bunch of static web pages will feel instant.

This search script can be reused between different static site generators, compared to generating index data for each site.

</comment></comment><comment><USER13> Seems like lunr ([https://lunrjs.com/](https://lunrjs.com/)) or elasticlunr ([http://elasticlunr.com/](http://elasticlunr.com/)) have the better approach, allowing only the index to be distributed, and constructing the index to be done once/updated when new pages are published.

</comment><comment><USER14> That's well done. Curious why you fetch the rss at page load versus doing it when a search is performed though.

<comment><USER15> Pulling the list on page load makes sure the code responds fast when the user starts a search

<comment><USER16> The user should be able to consent (or not) to expensive operations like that.

<comment><USER17> If they have js enabled they already did.

<comment><USER14> True, but there is some validity to the point. On a large site you might burn a lot of your mobile data allotment with one search. That's not intuitive or obvious. Might be nice to implement limits and a more button in the code so it doesn't scrape the whole site at once.

</comment></comment></comment></comment></comment><comment><USER18> I'm wrote my own site generator a while back and have always been considering adding in a simple js search, but the client would download the index, which is generated at compile time.

Even for a small blog the index might become decent size, though. I thought maybe a heavily pruned TF-IDF index could be workable though?

<comment><USER17> >the client would download the index

That doesn't sound like too bad of an idea, given the state of js these days.

Yes, you can cut off irrelevant terms, those with low tf-idf score (the, a, is, are...) or you could filter out stopwords. Or both. Me personally, I would never remove low-scoring terms. Consider the state of the word "is". It's mostly irrelevant, unless you are searching for information about a certain terrorist group.

One small index type (as in number of bytes) is a trie. Another is a huffman tree. They store each term less than once.

<comment><USER18> The disadvantage(?) of a trie is that you can't rank by relevance.

<comment><USER17> There is no such disadvantage. Scoring usually comes after the index (tree) lookup. Once you have terms you can weight them. The trie is just a lookup mechanism.

</comment></comment></comment></comment><comment><USER19> DatoCMS ([https://www.datocms.com](https://www.datocms.com)) just released search for static websites in alpha. When the static site gets published, it automatically spiders it and you can integrate a JS widget on your site.

</comment><comment><USER20> Well, this seems pretty useful. Certainly worked well when I tested it on the Web Tiger Team site.

However, I do wonder whether the RSS feed aspect might be limiting here. I mean, how often do people manually generate an RSS feed on a static website?

I'd say the answer is 'pretty much never'. They're annoying to create/edit by hand or with a static site builder, and hence they're usually quite rare on the types of websites this tool was made for.

So while I think the widget works well when used properly, I feel like the vast majority of static sites won't be able to use it simply because they don't have an RSS feed.

<comment><USER21> It should be very easy to automate RSS feed generation with any consistently laid out static site (even if it's hand written).

If you're using a SSG (I presume most are), there's things like jekyll-feed[0]

[0] [https://github.com/jekyll/jekyll-feed](https://github.com/jekyll/jekyll- feed)

</comment></comment><comment><USER22> That's really clever and quite possibly the fastest search I've ever used.

Could see this being extremely helpful - thanks (och jättestora tackar) for sharing!

<comment><USER8> _That 's really clever and quite possibly the fastest search I've ever used._

The way it works is by fetching an RSS list of links, downloading each linked page, and then matching a search string against the non-HTML content. If you're searching for something after the pages have all been downloaded it'll be very quick, but if the links in the RSS feed take a long time to load, or you do a search immediately the page has loaded, it'll feel really slow.

Also if someone used it on a mobile site it'd require the user to download all of the content for the website in order to search. They might not be too happy about that.

</comment></comment><comment><USER23> Doesn't adding "site:example.com" to google search do the same thing (assuming google has indexed your static site)?

</comment><comment><USER24> Did not find whole words on the same page. Not there yet.

</comment><comment><USER25> Its not working, on your page, searched "Ycombinator people" but no results, though it is present in links page.

<comment><USER14> Seems that links page is not in the rss feed. It only searches pages referenced in the rss feed. [https://www.webtigerteam.com/johan/rss_en.xml](https://www.webtigerteam.com/johan/rss_en.xml)

Which is fairly common with a blog...stories in rss, pages are not. Might be good to point out that caveat so that users can choose to add those pages to the rss feed.

</comment></comment><comment><USER26> thanks for this!

</comment><comment><USER15> GPL'd code so not usable by most commercial projects

<comment><USER14> Given that it's relatively standalone, I don't see the issue. It wouldn't attach the GPL to your other code...there's no linking, etc. You would have to contribute any changes to this specific code back, but there's no secret sauce there.

The bigger limiter, mentioned by other comments, is that it downloads every page in the rss feed to do the search. So it's workable for a smallish niche type site with a low page count, but not workable beyond that really.

<comment><USER27> I feel like this is the browser equivalent of dynamic linking.

That said, there's no way (yet) to DRM or otherwise prevent the user from obtaining the entire front end source, so it might be moot.

Side question: what am I allowed and not allowed to do with webpage sources under US copyright law? If I cache the site and open a local copy, have I illegally reproduced a copyrighted work? What if I burned it to a CD? What if I e-mail a copy to a friend? What if I host my own version?

<comment><USER28> IANAL, but...

> cached locally

That falls under US fair use laws I believe

> burned a CD

Again, fair use I believe

> emailed a copy / hosted own version

Likely is infringing, but not definitively. Distribution is generally not fair use, but there are some exceptions.

<comment><USER27> I was under the impression that ripping an MP3 from a CD constituted an illegal reproduction, so it's a little surprising to me that the law doesn't apply in the other direction.

<comment><USER28> Depends on where you live. For example, in the UK I heard it's illegal again (has gone back and forth over the years).</comment></comment></comment></comment></comment></comment>


Microsoft Azure Sales Top $1 Billion, Challenging Amazon - <AUTHOR> http://www.bloomberg.com/news/2013-04-29/microsoft-azure-sales-top-1-billion-challenging-amazon.html?cmpid=yhoo <comment><USER2> Love this quote:

"The biggest advantage I have with Microsoft is I don't have to go to any other vendor for any solution -- I can go to one partner for all of my operating systems, all of my development environment and all of my infrastructure tools," he said. "Why would I waste time looking at another third-party solution?"

...

"Nobody ever got fired for buying IBM". "I'm a lazy C-level exec." "I love having all my eggs in one basket." "I just write a check, and all my problems are solved." "Money buys happiness."

<comment><USER3> The flip side is that you end up in a scenario where two or three vendors can blame each other for problems. With Azure, if SQL has a problem, Microsoft has to fix it, and can't blame any other vendors, driver, hardware, or network issues.

Edit: Also, really? You don't think there's any benefit to integration? That's like Microsoft's whole deal - make their stuff work well with their other stuff. Sure, it creates lock-in, but it's also a feature users want. I want my various programs to easily work with each other in obvious ways, and not have to worry about compatibility issues.

<comment><USER4> > With Azure, if SQL has a problem, Microsoft has to fix it,

Not really. Vendor lock in still applies.

<comment><USER5> >Not really.

Mind explaining a bit more? If I buy a Samsung Galaxy S4 and the lock screen wouldn't let me in because of a bug in Android, Samsung is still responsible.

>Vendor lock in still applies.

Again, how exactly would that be, if I am say using Ubuntu and Mysql+PHP on a Azure?

<comment><USER4> And how much effort is Microsoft willing to dedicate to fix your Ubuntu/MySQL/PHP stack?

It's only a single vendor solution until you introduce a second one.

<comment><USER5> >And how much effort is Microsoft willing to dedicate to fix your Ubuntu/MySQL/PHP stack?

Isn't that the same as asking how much Google is willing to fix Linux for the Android stack??

> It's only a single vendor solution until you introduce a second one.

And your solution is to tell everyone to get a VM and install and maintain everything from scratch? Yeah that will definetly work, which is why the internet is secure with up-to-date Ubuntu stacks from all the daily "sudo apt- get update" keystrokes. /s

</comment></comment></comment></comment></comment></comment><comment><USER6> Comparing against Amazon's total cloud sales may be comparing apples and orange. To quote from the article:

"Microsoft's $1 billion sales figure includes Azure, as well as software provided to partners to create related Windows cloud services, Anderson said in an interview."

What software is included "to create related Windows cloud services", and is that the only use for said softare? i.e., are they including things like MS Visual Studio? And how much of MSDN subscription fees included in the $1 billion dollar figure, I wonder?

<comment><USER7> The numbers are fishy, but if they are growing by XX% (1) a year, expect MS to reach that pretty soon. Love it or hate it, getting all your tech needs from one company has its advantages (and disadvantages).

 _1\. Azure subscriptions have risen 48 percent in the past six months, said Takeshi Numoto, Microsoft's vice president for marketing for the server and tools division. That unit, which encompasses Azure, has posted nine straight quarters of sales growth of at least 10 percent, he said._

<comment><USER8> It's easy to rise 46% in terms of subscriptions when they offer tens of thousands of dollars worth of their service for free.

<comment><USER9> Amazon micro instances are basically the same thing...

</comment></comment></comment></comment><comment><USER10> How are the free hours from BizSpark handled? (<http://www.windowsazure.com/en-us/offers/ms-azr-0012p>) Are those treated as sales?

<comment><USER11> Even if they did, they probably don't add to the 1B figure as they are free

<comment><USER12> I don't want to describe this comment as ignorant but I almost feel that I have to...

There are numerous accounting tricks employed by organizations big and small to book revenue on promotional services.

One popular way of doing this is to charge the marketing departments budget for the promo hours but record the cost of the hours as revenue. The overall bottom line of $MSFT is uneffected but the product, in this case azure, benefits from increased visibility.

I don't think Azure is doing anywhere near AWS in sales if you don't count promo deals.

<comment><USER13> Completely agree with this. They are giving away massive amounts of platform time to seed usage. Better question is when Azure will break even (net, including R&D and internal marketing transfers to the Azure business).

</comment></comment></comment></comment><comment><USER14> ""The biggest advantage I have with Microsoft is I don't have to go to any other vendor for any solution -- I can go to one partner for all of my operating systems, all of my development environment and all of my infrastructure tools," he said. "Why would I waste time looking at another third-party."

^Interesting viewpoint.

<comment><USER15> I'm an MS dev with a little Django, Rails and PHP experience and I'm always sort of overwhelmed with the choices I have non-ms environments.

Recently I wanted to get a simple laptop for Python development and I don't know how to begin selecting the right tools for the job. I see myself having to make all sorts of evaluations I'm just too inexperienced to make. Which OS? Whats PyPy good for? Is it supported on Ubuntu? Oh I can use this command to install but I don't see an apt get example? Does that mean it won't work?

When I read about and fire up EC2 instances I feel the same way. How do I configure them? Which one is best, etc.

With Visual Studio and the Azure tooling built in a lot of decisions are just invisible to me and I sort of like it that way.

Of course I understand the benefits of open source and having a variety of options is important but I'm ok with giving up a little control and power to just get things done.

I think its the same reason we use Stripe instead of getting out own merchant account and all that rigmarole.

Isn't Heroku similar as in Heroku makes some choices for you on how to do things?

<comment><USER16> You know, to some extent, this is a direct result of working with Microsoft tools. I am generalizing but Microsoft developers get to used to getting mostly nice and tidy answers to everything (regardless if its good).

With open-source, my gosh, you actually have to do some analysis and make a sound judgement without having the Microsoft mothership tell you whether its good or bad.

I don't dispute that the choices can be seen as overwhelming but this is where experience and your own curiosity work best. You don't have the experience, well there is many many people that do and are willing to share their knowledge. It does require a desire to learn. The more you investigate, the better your filter on what is good or what is bull improves.

I use Microsoft tools, they have their place. It's not a question off giving up control and power, its a question of, what makes you better? Understanding the dirty work that it takes to make software, OS, web frameworks, etc. work, or having a nice little button that does this for you (I know this is a gross exaggeration).

If you have that curiosity to understand the details even behind Microsoft tech, using Microsoft is just another tool.

<comment><USER15> "With open-source, my gosh, you actually have to do some analysis and make a sound judgement without having the Microsoft mothership tell you whether its good or bad."

I think you're comment is fair but a little condescending.

Speaking for myself, I play and experiment with tons of non-ms libraries for asp.net work, ran Ubuntu as a desktop for several years, have an trivial app on heroku.

Just because somebody appreciates the simple things does not mean they don't have curiosity and don't appreciate knowing technology on a lower level.

The big divide between the ms and non-ms communities is because of this sort of comment.

<comment><USER16> Not meant to come across that way (especially towards your comments).

I definitely agree that there is value with a full life-cycle integrated approach that Microsoft offers with their stack. I really like what Microsoft is doing with ASP.NET MVC. I also like their move towards embracing the best of open source such as their recent full support of git within their stack. I setup a gitlab virtual machine and using the Visual Studio git extension with it has its quirks but works really well. I find this a really good compromise of mixing the best of both worlds.

I guess my main angst is with Microsoft stack developers who I've worked with that really don't want to step outside their comfort zone. It's definitely obvious you are not within this group.

</comment></comment></comment></comment></comment><comment><USER17> Are Apple iCloud services still hosted with Azure tech? [http://apple.slashdot.org/story/11/09/04/0051209/apples- iclo...](http://apple.slashdot.org/story/11/09/04/0051209/apples-icloud-runs- on-microsoft-azure)

Because that alone could be a large portion of that $1B

<comment><USER18> Yes, as far as I know Apple hosts their iCloud jointly on AWS and Azure.

Which is a great strategy for disaster recovery or failover I think, considering both the cloud services are the largest and are owned by financially stable companies that have been around for a while.

</comment></comment><comment><USER19> Who here on HN is running any portion of their startup or established Internet business on Azure?

<comment><USER20> I'm hosting some (really) non-critical stuff on a Ubuntu image on it.

It seems fine. The manager interface is actually pretty good IMHO, but Linode is really cheap and running Linux on Azure is (I think) still a "beta" feature. I get the hours free though BizSpark. I was thinking of setting it up as a slave/mirror of our main sites for use as a fallover backup. It's been pretty reliable but I haven't done any benchmarks or really tested it in any way.

If I had need or inclination to use the Microsoft stack, though, it would definitely be a serious contender.

</comment></comment><comment><USER21> There is absolutely, positively, certifiably no way this is even close to true. Did the people are bloomberg even look at Microsoft's figures, or were they too busy counting the cash MS sent over?

<comment><USER22> It seems pretty reasonable to me. If Msft makes $1 billion on 20% of the market, and Amzn makes $3.8 billion (high-end analyst estimate) with 71% of the market, the math roughly matches.

<comment><USER23> I think those market share numbers are suspicious.. according to rackspace they had 1.3b in sales of private cloud and public cloud services in 2012: [http://ir.rackspace.com/phoenix.zhtml?c=221673&p=irol- ne...](http://ir.rackspace.com/phoenix.zhtml?c=221673&p=irol- newsArticle&ID=1784359&highlight=)

So either the total is more than 100% market share for the 3, or those numbers or wrong.

Edit: added "in 2012" for rackspace financials

<comment><USER22> I'd agree, most of these numbers are "fuzzy" and based on analyst estimates; I'd almost be more surprised if they DID perfectly add up to 100%. :-)

</comment></comment></comment></comment><comment><USER24> Can Microsoft's internal Azure expenses be accounted for in sales? Specifically, if Office365 used $100 million worth of Azure services in their budget, does that count toward overall Azure sales? Does part of the marketing budget go toward giving out free Azure trials? Then, the question I ask is what percentage of Azure sales come from 3rd parties.

</comment><comment><USER25> Doesn't surprise me. Microsoft has a strong hold in the "enterprise" (read large corporations with bureaucratic but big pockets) sector.

</comment><comment><USER26> >"They haven't excited the front-line developers -- the ones who made Amazon who they are," he said. "Those will be hard to influence."

That may be true, but at the end of the day, startups aren't generating multi- millions/billions to spend on large server deployments.

</comment><comment><USER22> That looks pretty significant. Amazon Web Services are somewhere between $2 and $3.8 billion (depending on which analyst you believe), so Microsoft is potentially within striking distance of taking the crown.

</comment><comment><USER27> Could definitely be true if revenue from internal customers (Office 365, Hotmail, Xbox etc) is included.

<comment><USER28> I don't think either Hotmail or Office 365 use Azure in non-trivial amounts, or atleast they didn't in my time there until 2011.

</comment></comment><comment><USER29> The next time you see an article mentioning Microsoft's Online Services Division, it's history of losses, and suggesting that Ballmer should be fired, just remember that Azure's revenue is not part of the Online Services Division (and neither is Office 365).

</comment><comment><USER8> I've been using azure a bunch at work. I don't know where the sales numbers come from. I have reasons for being skeptical after being in on conversations with their sales reps. I hate how they hide important details about their systems. The shroud of mystery is really infuriating.

Useful bits in terms of performance metrics just aren't there or just aren't visible. I've used Amazon's services and Rackspace's services as well. I've had mixed experiences with all of them. I honestly feel that I'd be getting work done much quicker if I was just handed a vmware portal and managed VMs in a datacenter to implement our systems. It's very nice when you're able to SSH into a system and run top or other tools to see what's going on. Running queries or checking out charts that show data at hourly intervals is next to useless. As an added bonus, I wouldn't have to stop queries and go up to the application layer and reconnect to another shard in order to continue my query.

I honestly don't know what's so appealing about Azure. Maybe devs these days don't know how to ping a server or set up a database. If it weren't for getting tons of free cash to start, we'd be on about 1/10th the "budget" using other services. But it's hard to beat free.

Would I ever pay for it? Yes. But only in the situation where I had a bunch of sub-par developers. Id also be looking for an out from the company while getting patted on the back for going with MS.

</comment><comment><USER30> They are fast too, they already have ubuntu 13.04

</comment><comment><USER31> I LOVE Visual Studio and working in C# / Asp.Net MVC. I do it full time at work, and now writing my SaaS in it which I plan to host on Azure (though, I wish they had an official MongoDB offering).

I've always done PHP on my side stuff, partly because of the hosting issues, but now with PaaS' like Azure and Appharbor, people who enjoy the MS Stack at least have reasonable options.

People bitch about MS, but without competition from Azure, Google, and others, Amazon wouldn't keep lowering their rates.

<comment><USER32> Mongo in Azure VM: [http://www.windowsazure.com/en-us/manage/linux/common- tasks/...](http://www.windowsazure.com/en-us/manage/linux/common- tasks/mongodb-on-a-linux-vm/)

</comment></comment><comment><USER33> anyone know what app engine sales are? I don't recall ever seeing it mentioned in investor relations stuff makes me wonder why or if/when they will kill it.

</comment><comment><USER34> Considering the pricing on their server software, I imagine at $1 billion revenue they must have a solid 10 happy customers.

</comment><comment><USER35> Knowing the price of Azure that should mean they have roughly _pulls out calculator and hits some keys_.. 12 customers.

<comment><USER36> Microsoft's prices for Azure are actually very reasonable, and I generally find their tools easier to configure and use in real life. Microsoft makes some horrible products, but I actually _really_ like Azure a lot.

<comment><USER37> <http://www.youtube.com/watch?v=bDAyI0imqGE>

I checked this out as a pretty heavy AWS user, and I have to admit that GUI looks pretty nice.

<comment><USER38> Make sure you benchmark the VM's if you intend to use them - performance was horrible during the preview. <http://openbenchmarking.org/result/1206086-BY-1103157IV31>

</comment></comment></comment></comment><comment><USER39> This seems highly unlikely considering they don't remember to update the azure SSL certificate two years in a row.

[http://www.datacenterknowledge.com/archives/2013/02/25/windo...](http://www.datacenterknowledge.com/archives/2013/02/25/windows- azure-cloud-crashed-by-expired-ssl-certificate/)

<comment><USER40> It's not " _the_ azure SSL certificate", it's more that there are a great many of them being used internally between many systems.

<comment><USER39> It caused a global outage for SSL access to their cloud storage. Two years in a row. Close enough.

<comment><USER28> They were two very distinct issues, both in retrospect, should have been preventable. One was a cert not getting renewed correctly (which is really more of an engg/ops process thing) and the other was a piece of code that did date checks incorrectly.

[Disclaimer - early and long time Azure guy at MSFT]</comment></comment></comment></comment>


Google Circumvents Safari Privacy Protections - This is Why We Need Do Not Track - <AUTHOR> https://www.eff.org/deeplinks/2012/02/time-make-amends-google-circumvents-privacy-settings-safari-users

<comment><USER2> Isn't this going to pose some serious legal problems for them in Europe?</comment>


How bees perform perfect landing - <AUTHOR> http://news.bbc.co.uk/1/hi/sci/tech/8428060.stm

<comment><USER2> The more I see the video, the less of _any_ kind of difference I see in the bee's behavior as it attempts to land. And the "hover mode" (remember, only lasts a few thousandths of a second) is definitely no more stable than its normal flight prior to landing.

It stops moving forward, reaches down and flails around, and lowers itself in stages until it touches the surface. It's still bucking around like it was at the beginning of the video (the body looks more stable, but look at the legs. They move to stabilize the body). The wings don't appear to be tracing any different pattern to imply a change in flight mechanics. And, it would be a huge stretch to call that a "perfect landing", as it's basically mimicing what helicopters already do (approach, lower gently until touching, and slowly throttle back instead of cutting power instantly).

Is it because it isn't a bird-like semi-crash (which make perfect sense, as they have more mass and kinetic energy)? We do that with our airplanes, though admittedly more smoothly (which also makes sense, as they have even more mass).

The optical trick makes a huge amount more sense, and plays in with landing being a genetic, purely evolved trait, instead of some intelligently-reasoned landing habit. Bugs don't have much for brains.

</comment><comment><USER3> Also I think that the rate of descent is controlled by equalising the optical flow over the convex surface of the eyes so that it appears constant. This produces a gradually decreasing velocity profile as the insect comes in to land.

<comment><USER4> your comment doesn't make any sense.

<comment><USER5> Maybe just too terse. Try this:

"First discovery that flying insects use an unexpectedly simple and elegant strategy for landing on flat surfaces (Biological Cybernetics 2000). Image velocity is held constant as the surface is approached, thus automatically ensuring that flight speed is close to zero at touchdown. No explicit knowledge of flight speed or height above the ground is necessary. The feasibility of this landing strategy has been successfully tested by implementation on a robotic gantry, and is presently being implemented for testing on airborne vehicles." (<http://www.qbi.uq.edu.au//index.html?page=52793#novel%20low>)

<comment><USER4> ah! thanks - that's really interesting (the whole page).

</comment></comment></comment></comment><comment><USER6> When looking at birds and insects vs the way airplanes take off and land nature certainly has something to teach us.

Hummingbirds in slow-motion are amazing to watch too (and in real life of course!).

<comment><USER4> you realise that airplanes don't flap their wings, right? (i'm just wondering exactly what those lessons might be).

<comment><USER7> The lesson is that whatever flying machine we are able to design, it will always pale in comparison to Nature's flying machines. If humming birds had nothing to teach us, papers such as the following one would not be published:

[http://www.nature.com/nature/journal/v435/n7045/full/nature0...](http://www.nature.com/nature/journal/v435/n7045/full/nature03647.html)

<comment><USER8> > The lesson is that whatever flying machine we are able to design, it will > always pale in comparison to Nature's flying machines.

Perhaps for aesthetics or mechanical and aerodynamic elegance, but never for practicality for human means.

<comment><USER7> Quoting Wilbur Wright:

 _"I confess that, in 1901, I said to my brother Orville that men would not fly for 50 years. Two years later, we ourselves were making flights. This demonstration of my inability as a prophet gave me such a shock that I have ever since distrusted myself and have refrained from all prediction."_

No one has ever been able to predict where technology is going. This one is for you to tame your forecasting proclivities and for the moron who's downvoting my comments without explaining where my argument is weak. Cheers.

<comment><USER8> Oh, so it's perfectly fine for you to make a universal statement about aeronautics:

> The lesson is that whatever flying machine we are able to design, it will > _always_ pale in comparison to Nature's flying machines.

But when I make one, it's wrong?

Fuck you.

<comment><USER7> You need to get laid, buddy. Chill. Chill...

<comment><USER9> Will you two please stop it?

<comment><USER7> I have stopped, and I am sorry that things became un-civil. However, do note that I did _not_ throw the first stone. Cheers.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> More:

[http://www.eurekalert.org/pub_releases/2009-12/tcob- fmo12170...](http://www.eurekalert.org/pub_releases/2009-12/tcob- fmo121709.php)

<http://www.qbi.uq.edu.au//index.html?page=52793#novel%20low>

(article not published yet, but this stuff is pretty good)

</comment><comment><AUTHOR> Related: <http://news.ycombinator.com/item?id=1013754>

</comment><comment><USER10> I am not sure studying things in nature and creating exact models would be a good idea. Imagine trying to model a motor bike or a car by studying Cheetah(Fastest animal on ground). Nature may inspire to model/create useful things.

<comment><USER11> We create exact models to try to fully understand what is happening in nature, and then we mix the concepts into hybrid designs. This has been done for a number of MEMS insects, and has made them so much more efficient.</comment></comment>


Ubuntu Unity 5.8 seriously impresses - <AUTHOR> http://www.techrepublic.com/blog/opensource/ubuntu-unity-58-seriously-impresses/3514 <comment><USER2> I was really not sure about Unity when it came out, but now I'm more than comfortable with it. It feels wrong to use Windows now..</comment>


Ask HN: Bridge Story/Metaphor - <AUTHOR>

I remember seeing a link here regarding a startup/engineering parable comparing two engineers. One engineer built a bridge out of rope that was used and was added on while another built the perfect bridge which no one used (and then had to be torn down).<p>Can anyone share a link? It's killing me to not find this via google as all the words are fairly common. <comment><USER2> [http://hintjens.com/blog:16](http://hintjens.com/blog:16)</comment>


Show HN: Stackmash - Notifications for events happening inside your app - <AUTHOR> https://stackmash.com <comment><AUTHOR> Hey HN

We made Stackmash to make it easy for app or website creators to get instant notifications for their users activity. Originally built this for ourselves - we thought others may like to use a service like Stackmash. Being our first version, there are many features to come in the future such as being able to forward notifications to a number of services such as SMS, email, Slack or Telegram. As well as giving users the ability to control what shows as a notification and what doesn't. We are also going to let users integrate with IFTTT.

If you have any ideas or feedback, please let me know!</comment>


The Crisis of the Multiverse - <AUTHOR> http://cosmos.nautil.us/feature/120/the-crisis-of-the-multiverse <comment><USER3> > Theoretical and observational evidence suggests that we are living in an > enormous, eternally expanding multiverse where the constants of nature vary > from place to place.

Really? What is this evidence? I didn't see much of it in the article.

Also, the "sleeper" argument (at least as presented?) seems to be flawed. To repeat, the argument is this:

Suppose you are cryogenically frozen, to be woken up in either 1 year or 100 years, determined by the flip of a coin right after you're frozen. Furthermore, say that the population of the Earth doubles every year, and each year 1% of people undergo this experiment. Now suppose you wake up, and wonder how much time has passed. There are two lines of reasoning:

1\. Obviously, the odds are 50/50, since the result was determined by the flip of a coin. 2\. Whatever year it is, most of the people waking up from the experiment were frozen last year (when the population of Earth was higher).

The article then concludes that "The fact that two logical lines of argument yield contradictory answers tells us that the problem is not well-defined."

But they're not contradictory; either may hold depending on what you know. The probability of an event depends on your knowledge. Assuming you remember when you were frozen, then there are two possibilities: "I am John Doe who was frozen in 2020 and woke up in 2021", or "I am John Doe who was frozen in 2020 and woke up in 2120". Thus line of reasoning #1 holds. On the other hand, if you're an experimenter who's _greeting_ people as they wake up, then there are many possibilities: "It's 2120, and this was one of the 70 million people who was frozen in 2020", or "It's 2120, and this was one of the 140 million people who was frozen in 2119". Thus line of reasoning #2 holds, and the person you're greeting was probably frozen last year. No contradiction.

<comment><USER4> > The probability of an event depends on your knowledge.

This is a false statement and hints at the dissonance in the argument made for hard determinism.

<comment><USER3> I'm not saying what you think I'm saying.

I'm not saying that if we had full knowledge, then the future would be deterministic (on the contrary, I agree that this is false). However, we almost _never_ have full knowledge, and how much knowledge we have and what that knowledge is determines the probability of something.

For example, what's the probability that a RNG produces 38434 as its next u32 output? Usually, it's 1/(2^32). However, if I just wrote a program to reverse engineer your computer's RNG as part of an attack, that program knows _exactly_ what the next output will be, and to it, the probability is either 0 or 1. Or take another example. You're teaching a probability class, and I'm a student who has just taken your test. What's the chance that I fail? To you, who doesn't know much about me, the probability is 5%, since only 5% of your students fail the first test. But _I_ know that I didn't study, and peg it at 50%.

So again, the probability of an event depends on your knowledge.

<comment><USER5> But your knowledge of stochastic events depends on the number of observations of the outcomes of those events.

If you know only how well you do in probability tests, you can peg your chances to pass at 50%, but that doesn't tell you anything about the chances of the rest of the class.

I think you're arguing that you're just another observer, however you're not. You're the event and you have some sort of expectation about your outcomes. The observer here is the tutor, who has seen enough of you and others like you to have some more or less justifiable state of belief about the outcomes _of the class_.

Are you needlessly complicating what amounts to a very simple and reasonable point? You can't know what you don't know until you've seen enough of it to know it.

This goes for both deterministic and probabilistic knowledge. If you observe all possible outcomes of an event, you can deterministically predict its outcomes. If you observe sufficiently many outcomes of a stochastic event, you can probabilistically predict its outcomes. If you don't observe enough outcomes - and an infinite event will never give you enough outcomes - <USER2> you're stuck with inaccurate predictions for ever.

<comment><USER3> > You're the event and you have some sort of expectation about your outcomes.

The event is the test grade. I am not a test grade, I am a person. If it's problematic that I'm _taking_ the test, how about I tell my friend that I didn't study, and my friend give a 50% probability that I fail?

> you can peg your chances to pass at 50%, but that doesn't tell you anything > about the chances of the rest of the class.

I wasn't talking about the rest of the class, I was talking about the probability that the _professor_ would give _me_ of failing the test. Is your probability theory so weak that it refuses to make a prediction for that? What are we supposed to use instead, our gut feelings?

> If you observe all possible outcomes of an event, you can deterministically > predict its outcomes. If you observe sufficiently many outcomes of a > stochastic event, you can probabilistically predict its outcomes.

The laws of probability apply just as well to deterministic and stochastic events. There is no useful distinction between a deterministic event of which we have partial knowledge (enough to assign a good "probability" to each outcome), and stochastic events of which we have full knowledge. As an example, take a board game that uses dice. How does the gameplay change if we replace the dice with a seeded RNG picking numbers from 1-6? Moreover, think of your favorite (classical) stochastic process. What if it's secretly deterministic, but only you know enough information -- an impractically large amount of information? What changes?

</comment></comment></comment></comment></comment><comment><USER6> There is some interesting background to Nautilus magazine. It is funded by an organization that has the goal of using scientific methods to prove "spiritual" stuff. Since the "spiritual dimension" is so ill defined and hand- wavy, this requires pseudoscientific methods.

I am one who sees _a lot_ of pseudoscience out there these days. Undeniably, the primary funding source is US taxpayers, but this looks like another one.

[http://www.nature.com/news/2011/110216/full/470323a.html](http://www.nature.com/news/2011/110216/full/470323a.html)

[https://www.templeton.org/what-we- fund/grants/nautilus](https://www.templeton.org/what-we-fund/grants/nautilus)

</comment><comment><USER7> I'm not sure why, but this site is adding several history entries. It's even worse when I try to navigate down using arrow keys.

<comment><USER8> On mobile safari it completely fills the back button history, making it impossible to actually go back. Pretty egregious UX.

<comment><USER9> Yeah it's awful, though you can go back if you hold the back button, which will pop up a list of history entries.

<comment><USER8> That list is exactly what I'm talking about.

By the time I wanted to go back, that list was completely full of links back to the current page and I had to load HN from my favorites instead.

</comment></comment></comment></comment><comment><USER10> The article assumes that string theory has been proven correct. From what I understand, that is very far from being true.

<comment><USER11> My impression is that, far from being proven correct, it's actually falling out of fashion. Some ideas originating in string theory, such as the AdS/CFT correspondence, are having a heyday though.

</comment></comment><comment><USER12> Unbelievable, this fucking modern UI designs. How can you publish a page, where the back button is broken, and just call it a day.

It is freaking text and some images. We know how to do that, there is no magic, please do not use technology that breaks basic expectations of users.

<comment><USER13> You must have missed the memo -- back buttons are now "considered harmful". ;)

</comment></comment><comment><USER14> The crisis of the nautil.us website back button

<comment><USER13> BackGATE!</comment></comment>


The Real Reasons Why HP And Dell are So Desperate For 3Par - <AUTHOR> http://techcrunch.com/2010/08/29/behind-the-bidding-war-the-real-reasons-why-hp-and-dell-are-so-desperate-for-3par/

<comment><USER2> Nice article. The argument over basic arithmetic at the top of the comments is entertaining, too. :)</comment>


Linux-insides: The initcall mechanism - <AUTHOR> https://github.com/0xAX/linux-insides/blob/master/Concepts/initcall.md <comment><USER2> The Linux-Insides series is a great resource for learning the details of the Linux implementation and hopefully would help more people contribute to Linux by providing more documentation.

An idea I have is to have a similar series for basic device driver structure and making smaller changes in those places to fix minor annoyances and understand better the OS-machine interaction. Does anyone know of a similar (existing) resource (LDD apart, I guess that book is pretty outdated now.)?

[1] Linux Device Drivers - the O'Reilly book by gregkh and Jim Corbet.

</comment><comment><USER3> This is quite a coincidence. Last week I've been trying to track down why our Linux kernel takes so long to boot (where "so long" = about 1 second), and using "ignore_loglevel initcall_debug" has been a lot of help.

Here is a typical trace showing initcall timings. It's helpful to download it and use `less -r' to view so you can see the ANSI colours:

[http://oirase.annexia.org/tmp/min- seabios.txt](http://oirase.annexia.org/tmp/min-seabios.txt)

<comment><USER4> can you explain, what change you made and what improvements you observed?

</comment></comment><comment><USER5> Absolutely amazing.

One thing that struck my attention is how little comments there are in Linux at times. Consider this:

[https://github.com/0xAX/linux- insides/blob/master/Initializa...](https://github.com/0xAX/linux- insides/blob/master/Initialization/linux-initialization-1.md#next-to- start_kernel) [https://github.com/torvalds/linux/blob/097f70b3c4d84ffccca15...](https://github.com/torvalds/linux/blob/097f70b3c4d84ffccca15195bdfde3a37c0a7c0f/tools/lib/lockdep/uinclude/linux/kernel.h#L22)

Not a single line of commentary for something that definitely is not a trivial instruction.

I'm getting the impression that this kind of documentation should be built directly into Linux's source code, creating a document that is self- documenting and both human- and machine-readable.

On a separate note, it would be really nice if Gitlab supported something like ctags for browser-based code navigation...

<comment><USER6> Great idea to use ctags for code navigation, I created an issue [https://gitlab.com/gitlab-org/gitlab- ee/issues/436](https://gitlab.com/gitlab-org/gitlab-ee/issues/436)

<comment><USER5> Actually I meant Github, but I'd love to see it in Gitlab as well - being able to explore open source projects with ctags using either would be absolutely awesome.

</comment></comment></comment><comment><USER7> From init/main.c:

"The Bourne shell can be used instead of init..."

An easy way to avoid systemd if the user is more comfortable with using a BSD- style /etc/rc approach to starting services?

<comment><USER8> The Bourne shell probably doesn't deal with reparented processes properly (at least, that's my experience with working on Docker (PID 1 is a weird process). Not to mention that your shell doesn't propogate signals to children so you'd need quite a bit of shell scripting to make it act like a real init system.

The main reason bash is the fallback init is because it's a good way to fix a borked setup. And "real men don't use init, they just need a root shell" (Linus).</comment></comment>


Riak and Hadoop (Sitting in a tree) - <AUTHOR> http://basho.com/blog/technical/2011/11/29/Riak-and-Hadoop/

<comment><USER2> This is awesome. No need to run cron jobs to read from a text file and update data in Riak anymore.

Imagine the possibilities of Hadoop + Riak for analytics applications/services. #MyDreamCameTrue</comment>


Space.js – HTML-driven narrative 3D-scrolling - <AUTHOR> http://www.slashie.org/space.js/ <comment><USER2> Assuming this isn't an April Fools joke...

This kind of interface creates a terrible user experience. I've seen them before, and they always suck. The main issue is that you remove all context from the interaction. I don't know where I am relative to the entirety of the content. Furthermore, I can't jump to the point that I want.

It's disorienting and infuriating, and after about 10 seconds of exercising my middle finger (in multiple ways), I close the tab and add the site to my mental list of "examples of shitty UX".

Fortunately, this isn't the first such example, so I can provide solid evidence of how horrible this concept is. Ironically, it's the Famo.us Angular integration documentation...

[https://famo.us/integrations/angular/#/1](https://famo.us/integrations/angular/#/1)

<comment><USER3> Not disagreeing with your overall point regarding the usefulness UX of this sort of interface, but unlike the Famo.us demo, Space.js seems to maintain the scroll bar on the right window edge, which allows you to keep a sense of where you are within the document and to jump where you want within it. Also, the down arrow alleviates the strain on your middle finger nicely, as will clicking and dragging the scroll bar.

</comment></comment><comment><USER4> There are ways of doing scroll-based storytelling right but this ain't it. This library does have the right idea that scrolling should be continuous, but if you over- or underscroll the content you get trapped in a weird middle ground of a tween between two states, and it's frustrating to exactly line up your viewport to the content so it's readable.

Mike Bostock wrote a pretty good post about scroll-based storytelling last year: [http://bost.ocks.org/mike/scroll/](http://bost.ocks.org/mike/scroll/) [https://news.ycombinator.com/item?id=8551724](https://news.ycombinator.com/item?id=8551724)

<comment><USER5> Heres a great storytelling example from [http://bost.ocks.org/mike/](http://bost.ocks.org/mike/)

[http://www.nytimes.com/newsgraphics/2013/10/27/south- china-](http://www.nytimes.com/newsgraphics/2013/10/27/south-china-) sea/

</comment></comment><comment><USER6> Aside from the fact this hits Poe's Law so hard that it is impossible to tell whether it's an April Fools joke, i am pleased that it degrades somewhat gracefully without JS:

[https://dl.dropboxusercontent.com/u/10190786/no- js.png](https://dl.dropboxusercontent.com/u/10190786/no-js.png)

And becomes downright usable and pleasant without CSS:

[https://dl.dropboxusercontent.com/u/10190786/no- css.png](https://dl.dropboxusercontent.com/u/10190786/no-css.png)

</comment><comment><USER7> These comments are very narrow-minded and hostile.

This is wonderful execution. It's really hard to create something that's so easy to use. Its API looks surprisingly elegant.

As for the use cases and UX, remember that there's many types of projects. This could be used in a way that helps the UX for some kinds of experiences.

Just because this would be bad for your work, or the sites you like to go to, doesn't mean it's not a perfect fit for certain experiences.

Kudos.

<comment><USER8> I don't question the technical achievement. This is just a prime example of 'Being so concerned with whether or not they could, that they didn't stop to consider whether they should.'

Also, even if I were to want to use it, it's too heavily dependent on scroll speed. It's completely unusable on my computer unless I use the down arrow.

</comment></comment><comment><USER9> It's definitively an interesting demo, but not the kind of thing one looks forward to when trying to scroll on a page with the purpose of reading it.

</comment><comment><USER10> Great work and useful examples that shows how much richer the web has become since the dark old days when <blink> and <marquee> was the only options to make your web page eye-catching.

<comment><USER11> You mean annoying? There are better ways to make a website stand out than to override default scroll behaviour. Websites like these tend to make me queasy, since I expect the screen to move down, not forward.

If you're going to make transitions like these, they should be initiated by something else, like the keyboard or buttons. The scroll bar was specifically designed for browsing vertical documents, not rocketing through spacetime.

</comment></comment><comment><USER12> I am sure this could be used in creative ways, but how is this not essentially manual stop-motion video? It's amazing that technology has progressed so much that now I can manually flip through stop-motion visualization. Let's call it a flip-book.

</comment><comment><USER13> April Fools?

<comment><USER14> Definitely. Try clicking through to the article:

 _We generally use web pages as our canvases and paint content on the x– and y-axises. This is our tangible abstraction of reality. Here we are going to explore what happens when we introduce z-axis to content presentation. Instead of stripping down reality to a plane, we are going to simplify it, keeping our three physical dimensions but only their minimal essence._

<comment><USER15> It reads as a joke until you see it on a startup's about page.

</comment></comment></comment><comment><USER16> I've been thinking about implementing a sort of slideshow like this.

I could definitely see this being extended, contained within a frame and used (by intercepting and mimicking scroll actions) in order to present a slideshow in a smooth, consistent manner.

By itself, it's novel. But extended, I could see a few uses for it.

Interesting idea, degrades pretty well (for text only), and I enjoyed scrolling through smoothly with middle-click.

</comment><comment><USER17> [http://bartaz.github.io/impress.js/](http://bartaz.github.io/impress.js/)

</comment><comment><USER18> I don't have smooth scrolling, so these types of things are always jumpy and not very enjoyable.

</comment><comment><USER19> It isn't as good as this one, that happens to also implement acceleration: [http://okmove.tumblr.com/](http://okmove.tumblr.com/) (and it was made years ago by the folks who designed soylent packaging).

</comment><comment><USER20> It's funny because I actually kind of like it.

</comment><comment><USER21> Well, it is called Space.js and in the main page it says: No js required. I am missing something here?

<comment><USER22> I think he means no writing of JS required to use it. Include the library, and just use HTML to do the rest.

I agree though, bad use of saying "no js required".</comment></comment>


EU data watchdog raises concerns over Microsoft contracts - <AUTHOR> https://www.reuters.com/article/us-eu-dataprotection-microsoft/eu-data-watchdog-raises-concerns-over-microsoft-contracts-idUSKBN1X00WF <comment><USER2> Tangent, out-of-the-box and more 'LTS' solution:

What if the entire machinery known as "State" (govs, senates & assemblies, justice, agencies) realized that the logical long-term choice is to develop and maintain open-source software for _pretty much anything they do_ , so as to effectively 1. enrich the 'national' or 'regional' wealth of all citizens and 2. contribute to technology in a historical way?

Nuance: I'd qualify the whole endeavor a 'mildly massive untertaking', it's not a switch but a decade-long effort. Bigger than the longest of usual "LTS". But the benefits, in terms of saved money (lower taxes?), quality of service (if _any citizen can participate_ , whether as programmer or writer or evangelist or trainer or whatever), security (I'd wager there'd be _enough_ eyeballs to proof this software), and probably 50 other externalities, like massive general training / jobs, better technical expertise of many state workers at every level, possible service to citizens (switching them _off_ the _customer_ status in some domains critical to democracy, especially when it's free thus they are the product), yadi yada.

The State could be an excellent digital host for itself, and a great steward for its population, if it addressed the technological matter in a professional way, with the right heart and the right mind.

If executed superbly, it could qualify as some "8th wonder", the first digital and truly collective one, to ever be built. A true hallmark of the 21st century. And we can all, all of us worldwide, participate to make a master; then proceed to fork based on our local systems —political and technical— and cultural preferences.

I hope I do not have to explain why I'm a little jaded, a feeling of too much deja vu and not enough 'tomorrow', when I read such ethical yet misguided fights. /understanding rant

EU, you have your heart in the right place, your ethics are fair and much needed in this world, but at our current pace your solutions seem _ancient_ —so 20th century. Think 2030+ _now_ and begin building long-term, towards a _definitive_ solution. Move the needle, redefine things, fail/break the old stuff to make room for contemporary greatness. OSS for public software is a _low hanging fruit_ , however giant, and you'll do the world a fantastic service worthy of your wealth and values.

 _Source of ideas: I am a concerned French citizen, and being born some 10,000 km away gave me a wider-than-Western-EU perspective of modernity, for some 37 years and counting._

<comment><USER3> I am myself quite baffled as to why governments don't embrace open source to a higher degree and - more importantly - enforce open standards (no, OOXML does not count, for obvious reasons).

> The State could be an excellent digital host for itself, and a great steward > for its population, if it addressed the technological matter in a > professional way, with the right heart and the right mind.

Given my past experience, that's a very big if, unfortunately. :-(

<comment><USER4> You need not be baffled. The software industry is good at lobbying.

<comment><USER5> A case that deserves to be taken as an example of lobbying: the German city of Munich, which in 2003 started moving all desktop workstations to Linux, and by the end of 2012 reported a huge success with savings amounting to 11 million Euros, but in 2017 they announced they would migrate back to Windows, probably because of this: [https://www.novinite.com/articles/155950/Munich+Set+to+Becom...](https://www.novinite.com/articles/155950/Munich+Set+to+Become+Microsoft%27s+Second+Largest+Office+in+Europe)

</comment></comment></comment></comment><comment><USER6> It's unclear to me but this sounds like:

1\. EU members signed contracts with Microsoft 2\. EU changed the law 3\. Contracts are not following the law.

Seems like a great way to have your cake and eat it too. Don't like the contracts? Change the law (because you have the power to do so). Seems like something a dictator would do.

<comment><USER7> Remember, states (and multistates) are large collections of people. The people who are negotiating the contracts with companies are most likely several steps removed from the people who are making laws.

</comment></comment><comment><USER8> There's gonna be lots of those IMHO. GDPR will change a lot how IT companies manage their businesses and security as well. And I can't see American companies complying a lot with EU laws...Tense moment we live in.

<comment><USER9> Well, Microsoft used to offer its cloud services under license via German Telekom in Germany. They've sunsetted that offering though while announcing a Microsoft-owned GDPR-compliant server infrastructure in Europe.

They've yet to deliver on that announcement but that seems more like the usual delays than willful obstruction.

</comment></comment><comment><USER10> "The EDPS, the EU's data watchdog, opened an investigation in April to assess whether contracts between Microsoft and EU institutions such as the European Commission fully complied with the bloc's data protection rules."

Are these contracts signed before GDPR? Signed after?

Is there some part of the EU that you can submit a contract and that they go thru and raise any compliance issues that you should change? Or is it, do you best, and possibly get a knock on the digital door by the EU at a later date and a backdated fine?

Hard to form any opinion about this without knowing when the contracts got signed (by both parties) and how changes in law affect existing contracts from an accountability aspect (good/bad faith) on both sides.

<comment><USER11> Microsoft has contracts that are extremely overbearing so it is not surprising that their contracts might not comply with the law. There is of course a space (the legal department) and a profession (lawyers) that large institutions usually employ to monitor problems like these and I don't see why there needs to be another body that performs the same function.

<comment><USER10> Not all companies have Microsoft or indeed EU sized lawyer pools. So would be nice if there was some aspect of the EU that you could have check/audit contracts to approve them as compliant. Sure that may well be the realms of a lawyer and equally also insurance policy on the indemnity aspect. But does highlight how smaller companies will and can suffer the same issues (maybe more so) and fall foul even when acting in good faith.

[https://europa.eu/youreurope/business/selling-in- eu/public-c...](https://europa.eu/youreurope/business/selling-in-eu/public- contracts/public-tendering-rules/index_en.htm)

"If your company, organisation or institution is established in the EU (In this case, the 28 EU member states + Iceland, Norway and Liechtenstein.), you have the right to compete for a public tender in any EU country. You have the right to:

compete for a public tender in another EU country without discrimination use supporting documents (certificates, diplomas, etc.) issued by your country have equal access to all information regarding tenders, regardless of the EU country in which you are established have access to the review procedures in the respective country"

That last one implies that equally access to review procedures in EU member states must be available. That would cover contracts and with that, raises more questions about the accountability of this.

But my takeaway is, if Microsoft can have a contract questioned at a later date, how exposed are smaller companies in the same vain.

<comment><USER12> It's not that black and white.

It's more a matter of: If you push your legal rights in such a contract to the absolute limits, well, you may run into some issues later on when laws change.

If you're a tiny company but you put maximum onerous one-sided rules in your contracts, AND you somehow have the government you're selling to by the short and curlies so they sign it anyway, yeah, this view of 'eh, microsoft has got it coming' would imply this small company is now on the hook for keeping a team of lawyers on the ball.

That seems fair to me.

In real life, there's no way a small company would even go for such a pushed contract in the first place, or if they did, that's because they messed up by copying the wrong contract text, or there's a big brother helping them out.

Or, perhaps said simply: If this notion of 'oops the rules changed right in the middle of the contract, that is not fair!' becomes relevant, they probably were.. NOT acting in good faith in the first place.

<comment><USER13> > _If this notion of 'oops the rules changed right in the middle of the > contract, that is not fair!' becomes relevant, they probably were.. NOT > acting in good faith in the first place_

That assumes a benevolent government. Rules can change because of balance-of- power shifts, or as a result of misinformed debates.

If you do business in a heavily-regulated economy like Europe, part of the cost of doing business is legal and compliance. This is a valid tradeoff the Continent has made. It makes many consumers and workers happy while adding fixed costs to commerce.

<comment><USER14> > That assumes a benevolent government. Rules can change because of balance- > of-power shifts, or as a result of misinformed debates.

that's true in any jurisdiction, right? Laws and regulations can always override contracts.

<comment><USER13> > _that 's true in any jurisdiction, right? Laws and regulations can always > override contracts._

What varies is how easily new rules can be introduced, how easily they can be challenged, and the number of entities with rule making power.

Broadly speaking, Europe's systems make it easy for rules to be introduced and hard for them to be struck down by a competing arm of government. There also tend to be more regulators with independent rule making authority in Europe than in America.

This derives, fundamentally, from differing levels of trust in government, and differing views on the scope of government's job.

<comment><USER14> The rule (i.e. the GDPR law) was introduced by the european commission and parliament. It is applied by the various regulating agencies, interpreted by the courts and ultimately by the ECJ.

It is not like that governmental agencies are making up rules.

<comment><USER13> > _It is applied by the various regulating agencies_

I was making a broad statement about rule making processes in the Europe (EU and member states) versus Europe. That said, GDPR is independently interpreted by each of the EU's member states. It is a complain-investigate regime that does not bind one member state to the other's precedents. That's a lot of leeway for regulatory variance.

<comment><USER14> divergence of rule interpretation is an issue, and harmonization is is the role of the ECJ (as final arbiter of interpretation) and ultimately the European legislative branch (for further harmonization).

Still, I do not see you go from that to "[it is] easy for rules to be introduced and hard for them to be struck down ".

edit: remember, the alternative is 28 potentially incompatible rules.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> The obvious issue is that these contracts are already in place. It will be very difficult, if not impossible, for the eu to add such a contractual provision (especially of this significance) arbitrarily; they may have to wait until the contracts are re-negotiated.

<comment><USER14> What contractual position? It seems that any contractual term which is against the law would be null. I do not think that the law is (nor should be) subordinate to contract terms.

<comment><USER16> Was the contract against the law when the contract was signed? Others are saying the law was changed after the contract was agreed to.

<comment><USER14> Laws change all the time making contract clauses invalid, I don't think that's an issue.

Sometimes laws might explicitly grandfather previous arrangements or provide transition periods, but that's not a given.

In the case of GDPR, of course grandfathering would render the law moot, but it did take many years from the law passing to becoming effective.

To make an example which is relevant to our field, if a law is passed making non-compete invalid, would you expect it to only apply to new contracts?</comment></comment></comment></comment>


Beyond Gravity: the complex quest to take out our orbital trash - <AUTHOR> http://arstechnica.com/science/2014/05/beyond-gravity-the-complex-quest-to-take-out-our-orbital-trash/ <comment><USER2> duplicate of a post six days ago i believe...</comment>


Does a clear definition of "OOP" even exist? - loup-vaillant

My problem is that I never saw a clear definition of OOP
I often see quick judgements ("OOP rules/sucks"), or deep superior wisdom ("good OOP is hard"), which don't actually tell anything.  I often read about bundling functions and data together, and encapsulation, but plain modules (or C compilation units) already do that.  I hear about inheritance, but not all OO code use that, and we even tend to avoid it in favour of composition, these days.
The closest to a clear definition of OO I know of is http://www.info.ucl.ac.be/~pvr/paradigms.html  According to this, OOP would be records + functions + named state + closures.  But so is stateful functional programming…
From what I see, OOP is nothing more than syntactic sugar wrapped up in an aura of mystery.  However, my priors that the majority of the programming community can fall in such an obvious trap are quite low.
I notice that I am confused.
So, are my observations flawed?  Or are programmers less rational than I thought? <comment><AUTHOR> Don't confuse object oriented concepts and philosophies with implementation. The two are quite different.

There's also no single definition of OOP because it has evolved over the years.

Start here: <http://www.c2.com/cgi/wiki?DefinitionsForOo>

It's important to learn the ideas before you get tied to an implementation.

<comment> loup-vaillant Thank you very much for the link.

What exactly do you mean by "implementation"? I didn't talk about any specific language or framework.

<comment><AUTHOR> Object Orientation is a design philosophy, not a concrete process or mechanism.

Its major principle is encapsulation; things outside of me don't need to know about my internal workings, just my external appearance. This leads to abstraction; if I externally appear just like that other guy, things outside of me can pretend we're the same even if we have different internal workings.

Beyond those concepts, we begin to get into implementation.

Classes, inheritance, and polymorphism are implementation. You can apply OO principles without them. They just happen to be the traditional face of OO.

That may be why you're struggling to find a definition that makes sense. Too often we use the implementation to discuss the philosophy.

Don't get hung up on a definition. It's like trying to define love, art, or pornography.

Keep asking and arguing about it though. That's a good way to learn it.

<comment> loup-vaillant OK, but if I admit your principles as OO, then a functional language with modules and parametric polymorphism is OO (Haskell and Ocaml come to mind).

Your definition seems reasonable, but following it means that giving any language reasonable facilities for low coupling and code reuse makes it OO. I'm fine with that, but such a broad term can't be useful in technical discussions.

<comment><AUTHOR> I think you'll find that the basic principles of good design are shared between most design philosophies. Reducing coupling and increasing cohesion spring to mind.

Stop thinking in terms of whether a language claims to be object oriented and start thinking in terms of how you'd apply object oriented principles to the language.

The language is merely a tool, sometimes with support for a specific implementation of object orientation. How you use that tool is up to you.

<comment> loup-vaillant I did start with the techniques, then checked if the languages supported them. My ideas are a lot clearer than you seem to think. Thanks to you and the others, I now have resolved my confusion: "OO" doesn't technically mean anything significant, but nevertheless carries a strong emotional load (positive or negative, depending on the reader). That tends to end useful discussion and to encourage religious flame-wars. I now consider "OO" taboo, along with sentences like "just a tool". I now believe that most programmers did fall in the trap I spoke of in my original post, but this trap appears to be less obvious than I thought.

Now about what implements what:

Coupling reduction is implemented by encapsulation. There's no other way. Any technique that reduces coupling is a form of encapsulation. Any language that supports coupling reduction supports encapsulation.

Encapsulation is supported by 3 features: functions, modules, and classes. Let's not talk about functions, whose presence don't differentiate. So, to support encapsulation (and therefore coupling reduction), a language needs either modules or classes.

Code reuse is achieved with functions and abstraction as you defined it. I don't know any other way, short of writing a DSL or using a whole program. As before, let's not talk about functions themselves. Therefore, any language that supports code reuse supports abstraction.

Abstraction means I can interact the same way with two "things" if they are of the same type. Well, I think that by "guy", you meant "something with embedded behaviour", and not just dead data, like integers or arrays. Such a thing is necessarily a closure. Closures can be achieved by 3 mechanisms: subtype polymorphism (interfaces, mixins…), duck typing, and first class functions (which are isomorphic to duck typed mono-method objects). I said "parametric polymorphism" earlier, but it isn't actually needed. So, to supports abstraction (and therefore code reuse), a language must have either subtype polymorphism or first class functions.

Now Back to OO.

To support OO, a language must support encapsulation and abstraction. I've established that it's the same as saying that it must support coupling reduction and code reuse. And intuitively, a language that doesn't support either of them isn't worth using. Therefore any modern language should support OO.

Now, supporting OO is not the same as _being_ OO. To be OO in my book, a language must actually strongly encourage the frequent use of encapsulation and abstraction. As it happens, most modern languages do.

Almost all have either modules or classes. And when they do, they strongly encourage you to use them systematically, if they do not flatly mandate it like Java.

Likewise, almost all have either subtype polymorphism, duck typing, or first class functions. And when they do, they strongly encourage their frequent use.

Which means that almost every modern language strongly encourages the frequent use of all the necessary OO features. In other words, almost every modern language is OO. C++ and Java are OO because of their classes and subtype polymorphism. Ocaml and Haskell are OO because of their module system and their first class functions. You probably didn't intend to qualify those last two as OO (I don't, and they don't claim to be), but they fit your definition nevertheless.

<comment><AUTHOR> I don't qualify any languages as OO, their creators do. You can do OO in any language, with varying degrees of difficulty and success. The language merely tries to provide mechanisms for encouraging object oriented design (or not).

You appear to need some strict boundaries between different classes of languages. Those boundaries rarely exist. Languages and the people that define them are influenced by what they've already learned. There's nothing to stop language designers from trying to combine elements from various different types of languages, nor should there be.

Languages evolve. Philosophies evolve. Terminology evolves. Expecting to find a rigid definition within so much change is naive. Your definition will be obsolete before you get it written down.

As for religious flame wars, whatever. Ideas don't cause flame wars, people do. The tone of your post is certainly slanted toward starting one, so I'm leaving before it happens.

I hope I've been of some assistance and I hope you find what you're looking for. I fear you'll be disappointed. Personally, I prefer a more pragmatic than academic approach to software development.

<comment> loup-vaillant First and foremost: you _have_ been of assistance.

In <http://news.ycombinator.com/item?id=1808634> I've already said what I mean when I qualify some language as OO. Now your acceptance or rejection of this definition is not important. What is important is that Ocaml and Haskell both strongly encourage the use of OO _as you defined it_ , that they greatly facilitate it, and that they even make it the standard way of writing programs. I insist because that's definitely _not_ what one would say at first, especially starting from the reasonable looking definition of OO you provided.

I don't need strict boundaries between languages, I see them. Some languages have automatic currying, some do not. Some have duck typing, some have type inference… and so on. A single difference in two languages' core features can make them quite different. Of course, if you measure languages along a single given axis (like the OO/not OO axis), the boundaries appear much smoother. By the way, I don't see how the fact that language designers are influenced by the languages they learned support (or refute) the assertion that the boundaries between languages aren't strict.

> _Languages evolve. Philosophies evolve. Terminology evolves. Expecting to > find a rigid definition within so much change is naive. Your definition will > be obsolete before you get it written down._

Beware. That, is very close to a _semantic stop sign_ <http://wiki.lesswrong.com/wiki/Semantic_stopsign> While true, (Languages, philosophies and terminology do evolve), it is suggesting that it makes any conversation whatsoever impossible. If you don't want to discuss further, just say so (saying "I'm leaving before [a flame war] happens" was perfectly fine). Now, if you _do_ think that the meaning of the term "OO" evolve so fast that it's not worth writing down, then you'll agree that the term "OO" itself shouldn't be used at all..

I didn't say that Ideas cause flame wars. I said that using some _terms_ ,which aren't the ideas themselves, can cause flame wars. (I said «"OO"», not «OO».) One reason the term "OO" can cause flame wars is because it triggers _cached thoughts_ <http://wiki.lesswrong.com/wiki/Cached_thought> which are difficult to de-construct without a clear, agreed upon definition. And I certainly don't want to start a flame war with you. You didn't attacked me personally, nor used any _dark arts_ <http://wiki.lesswrong.com/wiki/Dark_arts> Many people can't say so.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER2> Everyone has their own 'most important bits' of what OOP is. For example, many people don't consider message passing to be an important part of OOP, others do. Like any term that corresponds to an idea rather than a thing, each person is going to have their own take on what that idea is based on their experiences.

</comment><comment><USER3> <http://news.ycombinator.com/item?id=1730411></comment>


Siberian heatwave of 2020 almost impossible without climate change - <AUTHOR> https://www.worldweatherattribution.org/siberian-heatwave-of-2020-almost-impossible-without-climate-change <comment><USER2> I've been thinking that there are a very small number of countries that will hurt less from climate change, possibly even benefiting on the whole. Canada, Russia, the Nordic countries, maybe Mongolia.

Because these countries have relatively few vulnerable coastal cities, and a lot of land that's too cold to do much with. Yeah some places will get drier, but some will get wetter too (I think overall it gets wetter, but that doesn't mean much to people in areas that turn into deserts.)

Anyway I like to talk to people about it because I've noticed a very visceral reaction among progressives (translation: it gets down-voted on HN) that there could be any "winners" in climate change. It has to be all bad. They might well be right, but I think my point is still valid. Again, I'm not sure these countries will "win" but they'll be relative winners in a game full of negative prizes. If you disagree, engage with me, don't just click on the arrow.

<comment><USER3> It seems strange that people aren't buying more arctic coastal land as an investment IMO.

On the other hand it's pretty hard to figure out who to buy it _from_ and you're literally betting on a combination of weather and geopolitics which seems a bit irresponsible.

<comment><USER4> > It seems strange that people aren't buying more arctic coastal land as an > investment IMO.

The rise in sea levels will be global though.

<comment><USER2> Interesting aside, not really. It won't be even. It has a lot to do with rebounding land and gravitational effects of ice sheets, etc. Sea levels will drop, at least initially, in some places even though the overall trend is rising sea levels. It's a complex topic.

</comment></comment></comment></comment><comment><USER5> The title understates the authors' actual claim: "We found ... that this event would have effectively been impossible without human-induced climate change."

If someone wants to take the time to read the whole 35-page study, it would be interesting to know whether "human-induced climate change" is now just a synonym for "climate change", or is part of their research.

<comment><USER6> Unverified guess: it's to distinguish the rapid climate change happening since the 1850s from the slow, natural climate change that has been known to happen over millennia.

</comment></comment><comment><USER7> I saw this theory floating around. Haven't done much research but it sounds "plausible". Could Siberia warming be due to the ocean around it heating? The magnetic poles have been moving increasingly faster towards Siberia in the last few years. These poles move because of underground streams of the molten core deep below. Could these new flows potentially heat the earth's surface and the ocean above?

</comment><comment><USER8> Global warming is more complex. For example, we have extremely cold summer with lowest night temperatures under 10°C even in July (average low of last years is at least 14°C).

<comment><USER9> Worldwide , the summer is one of the hottest on record. It's only colder in parts of North America

<comment><USER10> So far it's noticeably cooler and wetter in the main island of Japan compared to the last few years

<comment><USER11> The relationship between climate and weather can be locally counterintuitive. When a lot of ice starts to melt, you get colder weather.

At a smaller scale I got acquainted with this paradox as a child—where I grew up, every spring temperatures drop substantially for a period of time as rivers and lesser ice caps unfreeze.

"Why is it getting colder?" "Because it is getting hotter!"

At larger scales, if say parts of Arctic melt, that would cool _a lot_ of air, and where this airmass ends up there will be cold weather.

</comment></comment></comment></comment><comment><USER12> I know we have been gaslighted a lot by the right wing about climate change, but honestly, what can we do about it? The current lockdowns and limits on travel achieved the largest drop in fossil fuel usage probably ever done in human history. As people choose to work from home, and as more people go vegan, these trends may continue. And?

We need carbon sequestration, maybe.

PS: will the sun entering a cooling period have any serious effect at all on Earth?

<comment><USER13> ==As people choose to work from home, and as more people go vegan, these trends may continue. And?==

Neither of these things are guaranteed to continue after COVID passes. More Westerners going vegan doesn't automatically lower emissions if people in developing countries continue to grow their meat intake.

On the flip side, if people move out of urban cores and increase online shopping, those might have a negative impact on emissions.

Edit: Seems like people are misinterpreting the "negative impact on emissions". By that phrase, I meant that more personalized delivery and suburban living may very well lead to an increase in emissions. Apologies for the confusion.

<comment><USER12> People moving out of urban cores _increases_ emissions, because they now have to build and heat/cool more homes, and most importantly — commute to work. Suburbia is probably one of the biggest contributors to fossil fuel usage.

<comment><USER13> We agree, it was a poorly written phrase. Please see the edit.

</comment></comment></comment></comment><comment><USER14> It's unbelievable that we're still trying to convince people that human-caused climate change is a fact. We are doomed.

<comment><USER15> We're still convincing a significant portion of the US population that covid-19 is real. Climate change is dramatically harder in two ways:

1\. the timescale is decades and centuries, not weeks and months

2\. there is a trillion dollar financial interest against fighting climate change

Given what we're seeing with covid-19 and how much harder climate change is to deal with, I'm not optimistic.

<comment><USER16> No, the vast majority of Americans think covid-19 is real. Vox had a poll saying it was in the area of 1%. The issue is many don't want to be forced to wear masks, which is dumb and selfish, but not what you are saying.

Meanwhile as of 2019, over 20% of Americans doubt climate change, a much more significant number. This is far too high in my opinion, but it is steadily improving.

<comment><USER17> About 34% of all Republicans say that the theory that the outbreak was intentionally planned is definitely or probably true.

> About a third of those who have heard this claim (36%) – a quarter of all > U.S. adults – say that they think it is "definitely" (8%) or "probably" > (28%) true.

[https://www.journalism.org/2020/06/29/most-americans-have- he...](https://www.journalism.org/2020/06/29/most-americans-have-heard-of-the- conspiracy-theory-that-the-covid-19-outbreak-was-planned-and-about-one-third- of-those-aware-of-it-say-it-might-be-true/)

72% said they would not get a coronavirus vaccine:

[https://www.pewresearch.org/fact-tank/2020/05/21/most- americ...](https://www.pewresearch.org/fact-tank/2020/05/21/most-americans- expect-a-covid-19-vaccine-within-a-year-72-say-they-would-get-vaccinated/)

<comment><USER16> 72% say they would get vaccinated, you aren't reading your articles correctly.

</comment></comment></comment></comment></comment><comment><USER18> >In places such as Siberia, a hotter climate can have devastating effects, not just on the local wildlife and people who live there, but also on the world's climate system as a whole, for example through thawing permafrost, reduced snow cover and melting ice.

My biggest issue with climate alarmism is that sources universally consider only the negative outcomes of climate change. Thawing permafrost also opens up an enormous amount of arable and habitable land. Some species will benefit from warmer temperatures and extended ranges (and that's not just insects).

Not to mention that neither the change or the rate is unprecedented according to geologic data.

The world is very unlikely to end, human migration and economic impact will be gradual (≈100) years, and people need to consider that mitigation of climate change at this point is also not "free" when they ask people to go vegan (yeah, right).

</comment><comment><USER19> Seeing kids swimming in a lake in Siberia, they were having a good time at least. Also I'll long have fond memories of the year 2018. Being snowbound for a week (unprecedented here since 1947) and then a long glorious Summer. Bliss. BTW, I don't have a car any more (I've been solely remote working for 5 years), last time I flew was six years ago so yeah I'm doing my bit for the planet but I'm going to enjoy the good it brings and not worry about it.

<comment><USER20> The only way we can really "do our bit" is by actively pushing for systemic change, not by making change on an individual level. Because, unless you make it easier for the average human (not the cushy middle class westerner that can work remotely) not to contribute to greater carbon output, it won't make a difference.

Rather than buying long-lasting products as an individuals say (instead of the fast-fashion or planned obsolescence products that most people buy), we could push for legislation that makes those products less available and helps people to buy more natural-resource-efficient-in-the-long-term products. Most people, who are not well off, have no choice but to buy the cheap stuff that breaks soon. Most people have to drive in a carbon-emitting car to work because there is no electrified public transit. Most investors prefer to build products in a cheap way that they can flip fast because it leads to greater returns. Until we can collectively reverse the logic of this system, we will not be "doing our part".

We need to be up in arms and posing real challenges to the people in power that could change this situation, until they do change it sufficiently. Protests have not been working, boycotts have not been working. There are not many options left apart from general strikes or all out revolt. As you can see, the youth have actually understood this and have been on a school strike for nearly 2 years. However, this is not a sufficient threat to those in power and it must grow and include everyone else before we will see meaningful change.

<comment><USER19> I'm not a consumer by nature. I spend less than €100 a year on clothes I'd say, I cut my own hair, I wear clothes over and over till they fall apart, I shower a couple of times a week. I'm not middle class by anything other than mentality maybe. The nearest public transport to me is a bus stop 2 miles away with a few buses per day. I coppice trees grow vegetables. The worst I do for the planet is eat meat and drink milk. To be honest I'm a bit tired of listening to lectures from people who in their own lives are green at the margins but think nothing of taking a flight.</comment></comment></comment>