Misinformation Is About Who You Trust, Not What You Think - <AUTHOR> http://nautil.us/issue/69/patterns/why-misinformation-is-about-who-you-trust-not-what-you-think <comment><USER2> "Maybe we should have something like a ministry of information to decide what's true."

I am hoping that this was meant in jest.

But if you look at some of the other comments in the article -- science should be funded through the government, industries that would otherwise contribute to scientific research should instead be taxed -- I'm not so sure how un-Big Brotherish these authors are.

(Yes, obviously, the government already funds a good deal of science, but it sounds as if they're arguing that science funding should all be funneled through the government.)

<comment><USER3> Historically philosophers were often at odds with the idea of democracy. Once you discover what is true and what is false, it is very frustrating to have to deal with people who are not as smart as you are.

Modern philosophers are mostly pro-democratic for a number of reasons. They have to invent mental tricks to make democracy compatible with what they think is right. "Ministry of information" or separating voting (based on values) from decision making (based on facts) are examples of such tricks.

IMO, if we value democracy, we'll have to agree that decisions taken democratically will sometimes be wrong. The only way to fix that without compromising the democracy, is to raise the level of an average citizen's education.

<comment><USER4> Education isn't a cure all. Highly educated citizens can still be wrong en masse.

<comment><USER3> Well, if our education doesn't help people to be less wrong, then we need to improve it (that's what I mean by raising level of education, not just giving people diplomas). Or reconsider what we think is wrong.

</comment></comment></comment></comment><comment><USER5> Why do I keep seeing this formula?

1\. Points out a problem that is fundamentally rooted in human psychology.

2\. Proposes that the solution is to have the government take it over.

<comment><USER6> To play dictator's advocate, that's the story of how civilization overcame stealing and homicide.

More seriously, all problems are rooted in human psychology because technology is now good enough for us to live in a utopia if we could only manage to stop turning it against ourselves. So, really that pattern is just proposing that the government take something over, you get the first step for free.

<comment><USER7> The problem is that "the government" is made up of people who have the same problems rooted in human psychology, and those people are a subset of the general population self-selected for the specific problem of wanting to tell others what to do.

I'm more inclined to agree with the aphorism that government is the problem, not the solution.

<comment><USER8> Humans are not angels.

We need government precisely because humans are not angels. We need someone to restrain human tendencies toward violence, toward fraud, and so on.

But as you point out, the government isn't composed of angels, either. So we need the government to restrain the people, _but we also need to restrain the government_.

</comment></comment></comment></comment><comment><USER9> The Philosophy program at my alma mater focused heavily on Epistemology. Earlier on in the program I was more interested in Metaphysics and the word games that allowed for topics like the argument for God. But nearing the end I'd come to appreciate that epistemology is the root of all Philosophy. One cannot make any claims on objecthood, on morality, on logic, without at least furnishing their argument with a justification for how they think they know.

Epistemology is sorely lacking in public discourse. We should seek to nurture a healthy skepticism as the first impulse in all public debate.

<comment><USER10> > I'd come to appreciate that epistemology is the root of all Philosophy

I'd say most of the societal disagreements we're having right now are largely rooted in epistemology as well. Rarely are low level details discussed, and rarely is the truth of the "facts" scrutinized or examined at a level where we could gain some genuine confidence that what _the general public, politicians, and & news media_ thinks & repeats is true, is actually true.

</comment></comment><comment><USER11> The general public has become disconnected from science. Even educated, intelligent, people get science through opinion pieces _about_ the science, or worse yet (and more commonly?) through a headline alone.

When I think about my own kids, what I want them to get more than anything else is an ability to think critically, and scientifically. People are people, and we'll always fall prey to emotional appeals and distraction, but critical thinking and the scientific method are our way out of the fog.

The other aspect is compartmentalization of science, and general information overload. It's hard to keep up with every new study, and it's hard to reach a deep level of understanding across such a wide array of scientific disciplines. It is why we rely on experts.

We're in a crisis due to lack of trust in the experts. Part of it is because we've become so removed from science we don't know who trust. The other part is that industry has become quite effective at manipulating experts to work in their interests, eroding trust.

The simple fix? I have no idea. The long view? We need to raise a generation of kids who know how to apply the scientific method, think critically, and filter through the ever growing mountain of information we're bombarded with on a daily basis.

</comment><comment><USER12> Decent article and probably a good book (that will only be read by those who need it least).

However, this idea is terrible:

O'Connor: Maybe we should have something like a ministry of information to decide what's true.

<comment><USER13> I would love to see a Reddit/HN clone where it matters which people I personally vote up. I know it gets me closer to a bubble, but I don't care about that Twitter is somewhat good for this, but it's the opposite end: not diverse enough for me to get enough content.

</comment></comment><comment><USER14> The remedy to "fake news" is to restore context.

We've long known that believability is rooted in the esteem we hold for the messenger. The art of persuasion, sales, rhetoric, diplomacy, courtship, etc.

What's new is understanding the role of context, or the lack of it.

Someone recently pointed out the virality of twitter (at the extreme) is enabled by the lack of context.

Use web of trust and digital signatures to add citations and ownership (copyright) to every tweet, post, image, video. Then you know precisely who said what. And if you really care about "the truth", you can follow the chain of citations back to the original source and data.

</comment><comment><USER15> Misinformation on an individual basis isn't often harmful.

There are millions of demonstrably-false ideas floating around. I live 30 miles from an Alien Welcome Center...a place devoted to welcoming aliens when they appear.

The problem is when fringe ideas become weaponised into culture at large.

This article seems to focus more on the individual cases of misinformation rather than the more general social problem - finding ways to fight remarkable falsehood with dull truth.

</comment><comment><USER16> Great article. I've always wondered about the respect people show for other's "belefs" in religion. Obviously no one knows what happens after death, and religion spends a lot of time preparing your "beliefs" for the inevitable. I get that. But then religions slip in a whole bunch of other shit and that becomes the religious "package" of unassailable "beliefs". It's very insidious and pretty much everyone falls for the line "Well those are my beliefs".

</comment><comment><USER3> > The thing we suggest, though who knows how you implement this, is having > people vote on the things they value.

What if people's values depend on what they think is true?

</comment><comment><USER17> If so, why should we trust married philosophers from UC Irvine ( a highly politically biased institution )? In the article, they themselves say that an ideologically heterogeneous set of people produce higher quality articles. Wouldn't that also apply to books - especially about misinformation?

"There was a recent study of Wikipedia that showed the most accurate and high quality articles were produced by an ideologically heterogeneous, diverse set of editors and writers. Does that square with your findings?"

I don't watch cable news, but something tells me that the example of a princeton grad on foxnews not believing in germs is distorted or misconstrued. What's the context there? Was it in the context of "you don't have to use anti-bacterial soap" or did the guy truly say he doesn't believe in germs. It would have been great if author provided a link to the video so we can see the context.

O'Connor: "I've been worried about climate change since I was 5 years old, and here we are 30 years later and still not doing anything about it."

I think there is climate change ( with or without ) humans, but something tells me this "philosopher" isn't an unbiased thinker or writer. Especially if one was obsessed with this since they were 5 years old. What kid worries about climate change as a kindegartner. Makes me question this person's upbringing.

\-- How should science be funded?

"Through the government or some kind of body held to very high standards of not being influenced by industry."

Because governments are infallible? Because governments ( nazi germany, soviet union, china, japan, US, etc ) have such amazing track records? Even if we accept governments are infallible, how are we going to keep industry from influencing government? This is the problem with academics who have never worked and have worried about climate change since they were 5 years old. They know nothing of the real world.

\-- What are the best tools for good information?

"Maybe we should have something like a ministry of information to decide what's true."

Normally, I'd assume the person is joking, but the sad thing is you can't really tell from an academic working in UC Irvine.

So much of the "mis/dis" information rhetoric is "mis/dis" information themselves. As philosophers, you'd think they would say teach the kids logic, reason and history rather than "joking" about ministry of information.

<comment><USER18> Germs thing: [https://www.forbes.com/sites/brucelee/2019/02/11/why-fox- new...](https://www.forbes.com/sites/brucelee/2019/02/11/why-fox-news-pete- hegseth-hasnt-washed-his-hands-in-10-years/#75bc689a1238)

<comment><USER17> Thanks. I can't believe the guy actually believes that. I guess if hypochondriacs exist, their opposites must exist too.

<comment><USER18> Oh, it doesn't matter what he believes in his heart; and he's probably lying as well and regularly washes his hands. What's more interesting is the question of why he'd want to say this on TV. But it all adds to the culture war, doesn't it?

<comment><USER19> I wonder if he would be unhappy if a surgeon operated on him without washing their hands?

<comment><USER20> Given how surgeons responded to the first person to demonstrate that surgeons washing their hands significantly reduced patient mortality, I would be unsurprised if he _insisted_ on them not washing their hands.

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

<comment><USER21> Short version: people like theories more than data. Theories provide for compartmentalization and when no theory is offered, reproducible data is often ignored.

Killing the messenger with bad news has a long tradition. Especially if it's bad news for everyone.</comment></comment></comment></comment></comment></comment></comment>


Faster Script Loading with BinaryAST? - <AUTHOR> https://blog.cloudflare.com/binary-ast/ <comment><USER2> Isn't there some overlap between BinaryAST and WebAssembly?

They aren't equivalent right now – there is a lot of stuff you can do in JavaScript you can't do in wasm yet. But, I thought the plan was to add a lot of those features (GC support, support for calling browser DOM APIs) to wasm at some point in the future. Once wasm gets those features, is BinaryAST really necessary? Couldn't a JS-to-wasm compiler work just as well?

<comment><USER3> a JS-to-wasm compiler would work, but probably not in the way that you are thinking.

Naively compiling static JS to wasm would produce extremely slow code. This is because there is almost no runtime type information to rely on to generate specialized code. Almost all of your operations are going to be compiled down to something like:

``` // impl of ADD operator on x, y. if (isInt(x)) { // isInt is an AND and ADD. if (isInt(y)) { // AND and ADD let result = UnboxInt(x) + UnboxInt(y)); if result >= INT32_MAX { // handle overflow into double. } else { return Box(result) } } else { let y2 = numberify(y); let x2 = numberify(x);

      ...

} else if (isDouble(x)) { // also, AND and ADD ... } else if (isString(x)) { ... } ```

As you can see, this is horrid, large, and extremely slow. Some cases can be optimized based on static analysis and constant propagation, but the vast majority of executed operations cannot be predicted.

Executing JS with speed requires a runtime observation of the types that are showing up at different parts of the program, as well as the types that are stored in various heap slots, an infrastructure to track them and update them as the heap mutates and the program runs, and an infrastructure to query this information to speculatively compile optimized code for all the operations in the program.

This requires a runtime, and will always require a runtime. This means that if you want remotely fast javascript execution, then even a wasm-based solution will necessarily require shipping a JS-on-wasm runtime VM infrastructure along with your code, or for browsers to standardize on such a VM being bundled on distribution.

And all of this will have to happen after the feature support you mention in your comment (GC, DOM APIs), and at least one more (ability to hotpatch calls within wasm - this would allow us to introduce entry-points to jit-generated code in already-existing code).</comment></comment>


WujiBrainwave – A Personal Brainwave Feedback System - <AUTHOR> http://www.wujitech.com/a/wujibrainwave

<comment><USER2> Looks interesting but I trust this site as far as I can throw it.

<comment><USER3> Honestly yes, if there's the resources for hardware and software development.. please, please just spent a decent sum getting a proper website together. Otherwise the product will have a very slim chance of ever being taken seriously, no matter how great or not it actually is.

<comment><AUTHOR> I agree the website is rather sketchy haha.</comment></comment></comment>


LexisNexis Open-Sources its Hadoop Alternative - <AUTHOR> http://www.bytemining.com/2011/09/lexisnexis-open-sources-its-hadoop-alternative/ <comment><USER2> We had this yesterday: <http://news.ycombinator.com/item?id=2980157>

<comment><AUTHOR> This is a reaction, not the same post.</comment></comment>


Intel Restructuring: Ann Kelleher Takes over 7nm and 5nm Development - <AUTHOR> https://wccftech.com/intel-restructuring-murthy-leaves-ann-kelleher-takes-over-7nm-and-5nm-development/ <comment><USER2> Better Source From Anandtech.

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


Ask HN: Examples of sites which start free and later switch to paid? - <AUTHOR>

One example of such a site is Meetic, which started as a free dating site for a couple of months and then started charging a subscription.<p>How do you prevent customer backlash? How do you protect yourself against a competitor jumping in with a free alternative? <comment><USER2> Tarsnap started out in free beta before moving to paid beta -- but this isn't quite what you mean, since at that point it was still a _private_ beta (tarsnap became publicly available the month after it moved to paid beta).

I think as long as you make it clear from the start that your site isn't going to be free forever, you won't get any significant customer backlash -- simply because those people who would provide said backlash wouldn't sign up in the first place. Whether this is an effective business strategy is an open question, but it certainly seems like the most honest approach.

<comment><USER3> _I think as long as you make it clear from the start that your site isn't going to be free forever, you won't get any significant customer backlash_

Perhaps it would be helpful to put a price on it from the beginning, and offer invitation-only free accounts?

<comment><USER2> That's certainly an option in some cases. I couldn't do that for tarsnap, because at the point I started bringing people to test tarsnap, I didn't have the accounting code written yet.

</comment></comment></comment><comment><USER4> Pandora? They are in a very competitive industry but they were sticky enough that most people didn't go to a competitor.

Also Hot or Not. They started as a free dating experiment but when they were overrun by spammers they switched to a paid model. Membership was still free.

I don't know if any of that's relevant to you. These are "freemiums." I can't think of any examples off the top of my head on a completely free to paid. Maybe the lesson there is you need to keep something free?

</comment><comment><USER5> MetaFilter introduced its lifetime $5 membership fee after initially being free. Existing accounts were grandfathered in, which does a lot to prevent backlash. (If I remember right, LiveJournal also grandfathered in existing members when they first introduced paid features.)</comment>


Curriculum Design as an Engineering Problem: Lessons from the Field - <AUTHOR> https://www.youtube.com/watch?v=5c0BvOlR5gs <comment><AUTHOR> I came across this in another thread -

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

The website is -

[https://www.bootstrapworld.org](https://www.bootstrapworld.org)</comment>


Mackup: Keep your Mac application settings in sync - <AUTHOR> https://github.com/lra/mackup

<comment><USER2> Question: how is it better than symlinking the entire Application Support folder into Dropbox? (I never tried it so there might be pitfalls I don't know about). Thanks.

<comment><AUTHOR> I was doing this before, and the big caveat is that in those folders, a lot of stuff is bound to the local system, or useless on another system, when it works.

This tool solves this by being very selective on the files it syncs.

e.g. if you use a different user on 2 different macs, one of the file might reference /Users/joe/stuff while on your other mac it should be /Users/bill/stuff

For Sublime Text 2 for example, the tool make sure it sync only the config files that can be dropped on another system without requiring any in-file change.

Also it does only sync the useful config, it does not sync cache, temp files, and files specific to the install/hardware.

</comment></comment><comment><USER3> Nice! I'll definitely try it even though I don't have two Macs :P</comment>


Physical Indeterminacy in Digital Computation - <AUTHOR> https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3459566 <comment><AUTHOR> The Actor Model moved the foundations of digital computing beyond the work of Alan Turing and Alonzo Church, who developed equivalent models of computation based on the concept of an algorithm, which by definition is provided an input from which it is to compute a value without external interaction. After physical computers were constructed, they soon diverged from computing only algorithms meaning that the Church/Turing theory of computation no longer applied to computation in practice because computer systems are highly interactive as they compute with incremental new input affecting future computation. The divergence inspired development of the Actor Model in 1972 to characterize all digital computation. There are simple digital computations that cannot be performed by a nondeterministic Turing Machine. The Actor Model has been axiomatized up to a unique isomorphism thereby removing all ambiguity from the most fundamental theory of digital computation. As part of the axiomatization, Actor theory has an induction axiom for computation events that is suitable for proving all kinds of properties (including specifications) for Actor systems. Event induction is much more powerful and practical than the methods developed by Turing [1949], Hoare [1969], and Lamport [2018] because it can express many more properties and because proofs are more intuitive. Concepts of the Actor Model have been deployed at scale at Ericsson, Erlang Solutions, Lightbend, Microsoft, PayPal, Twitter, and many other companies. Actors are being incorporated into the foundations for many- core intelligent systems that will be the foundation for the future of computing.

Strong types for the Actor model overturned an assumption beginning with Euclid that has persisted for millennia including Hilbert, Gödel, Church, Turing, and von Neumann. The assumption was that the theorems of a theory must be algorithmically enumerable by beginning with axioms and applying rules of inference. However, in order to characterize computation up to a unique isomorphism, it was necessary to develop an event induction axiom with uncountable instances. Because there are uncountable instances of the event induction axiom, it cannot possibly be the case that theorems of Actor theory are algorithmically enumerable because, of course, each axiom instance is a theorem of the theory. However, the theory of Actors is nevertheless effective because proof checking is algorithmically decidable. Consequently the foundational theory of digital computation is algorithmically inexhaustible. Furthermore, if a mathematical theory of digital computation is consistent, then the theory must be inexhaustible.

Strong types for the Actor model also exposed inadequacies in Gödel's proof of the incompleteness (i.e. inferential undecidability) theorem using his proposition _I'mUnprovable_. Using strong types, the construction of _I 'mUnprovable_ is blocked because the mapping Ψ↦⊬Ψ has no fixed point because ⊬Ψ has order one greater than the order of Ψ since Ψ is a propositional variable. Consequently, some other way had to be found to prove inferential undecidability without using Gödel's proposition _I 'mUnprovable_. A complication is that theorems of strongly-typed theories of computation are not computationally enumerable, as mentioned above. The complication was overcome using special cases of the induction axioms to prove inferential undecidabilty.</comment>


Views of the Tesseract (1904) - <AUTHOR> http://publicdomainreview.org/collections/views-of-the-tesseract-1904/

<comment><USER2> Hinton was a fascinating character. Many photos of him, his family and acquaintances as well as the infamous baseball cannon are here: [http://www.academia.edu/1710283/Charles_Howard_Hinton_Pionee...](http://www.academia.edu/1710283/Charles_Howard_Hinton_Pioneer_of_the_Fourth_Dimension).

Hinton provides detailed instructions to make tesseracts in his book, but care must be exercised in playing with these too much:

"A shudder ran down my spine when I read your reference to Hinton's cubes. I nearly got hooked on them myself in the nineteen-twenties. Please believe me when I say that they are completely mind-destroying. The only person I ever met who had worked with them seriously was Francis Sedlak, aCzech neo-Hegelian Philosopher (he wrote a book called The Creation of Heaven and Earth) who lived in an Oneida-like community near Stroud, in Gloucestershire."

The letter from Hiram Barton, "a consulting engineer of Etchingham, Sussex, England" responding to Martin Gardner about an article of his on Hinton's cubes.

BTW, his son, Sebastian Theodore Hinton invented the jungle gym ([http://winnetkahistory.org/gazette/j-is-for-jungle- gym/](http://winnetkahistory.org/gazette/j-is-for-jungle-gym/)) based on his father's prototype.

<comment><USER3> And his great grandson invented backpropagation! (or at least popularized it)

<comment><USER2> Wow, you're right, I totally forgot about that ([http://www.iro.umontreal.ca/~vincentp/ift3395/lectures/backp...](http://www.iro.umontreal.ca/~vincentp/ift3395/lectures/backprop_old.pdf))

</comment></comment></comment><comment><USER4> Cubes and Hypercubes Rotating

[http://www.math.union.edu/~dpvc/math/4d/rotation/welcome.htm...](http://www.math.union.edu/~dpvc/math/4d/rotation/welcome.html)

</comment><comment><USER5> Here's the book, I think: [https://archive.org/details/fourthdimensio00hint](https://archive.org/details/fourthdimensio00hint)

</comment><comment><USER6> The hypercube!</comment>


Google under fire for sending users' information to developers - <AUTHOR> http://www.latimes.com/business/technology/la-fi-tn-google-under-fire-for-sending-users-information-to-developers-20130213,0,7558815.story

<comment><USER2> [https://plus.google.com/106557483623231970995/posts/Bed6WUJp...](https://plus.google.com/106557483623231970995/posts/Bed6WUJpNi4)

"With apple's app store you buy the apps from apple. With google play you buy the apps from the developer. If you are the merchant of record you need to know the address to correctly compute sales tax.

This is documented on [http://support.google.com/googleplay/android- developer/bin/a...](http://support.google.com/googleplay/android- developer/bin/answer.py?hl=en&answer=138000)

Google cannot give tax advice, so we have to give you the data to make the determination yourself"

</comment><comment><USER3> I'm not sure why this is only coming up now, it's been this way since day one. I do think this is the best way (making the developer the merchant) but perhaps it should be better communicated.

<comment><USER4> I compare that to the http referer sent by browsers, it's useful for developers, highly unknown from non-developers and it's not really good from a privacy standpoint. I don't really know where the line between helping developers and protecting privacy must be drawn but in doubt I've the weakness to always err on the side of privacy.

</comment></comment><comment><USER5> This is shameful. But what's worst is Barry Schwartz defending Google and saying that his employer does the right thing by giving away personal information and turning a user into a customer.

Barry, the technologist, speaking like a salesperson.

So, is he suggesting that if I go to my local supermarket and I buy milk, Visa should give them my my personal details? Or if I go to the cinema, or a restaurant? Nonsense! What are these companies going to do with my personal details? Is the supermarket going to call me during the weekend to offer me more milk? Or is McDonalds going to call me while I make love to my beautiful wife to tell me about their latest promo?

Nonsense Barry, nonsense!

What Google is doing in wrong and what you are saying is dumb.

</comment><comment><USER6> What gets me is that most of the comments here are <i>defending</i> Google for sending your information to developers; however if any other independent site/app took your information and sent it to a third party without your permission there would be uproars and articles in tech blogs, etc...

A bit of a double standard if you ask me...

</comment><comment><USER7> I heard the microsoft mobile store works the same way? Like ebay? And what about Amazon, is their app store in any ways like their "seller central"?

</comment><comment><USER8> This sheds somewhat different light on the reasons why paid apps aren't that popular in Play market. It's not only about users being (allegedly) reluctant to pay for their apps but also about developers wanting to spare themselves the headache of dealing with customers' data directly.

<comment><USER9> There are similar complexities in the iOS world. It's just the particular details that are different. See, for example, [http://developer.apple.com/library/ios/#documentation/Langua...](http://developer.apple.com/library/ios/#documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/5_SigningContractsandBanking/SigningContractsandBanking.html)</comment></comment>


DIY Paper Robot - <AUTHOR> http://zoobotics.de/project/zuri-01-3/ <comment><USER2> Does anybody recall 'Toy Shop' for the Apple IIgs? [http://bit.ly/1s6dl4z](http://bit.ly/1s6dl4z)

It was a software program with 20 cardboard models to print and build. It had a Zoetrope, a rubber band car, a balloon powered steam engine and a model plane. (That's what I thought this link was going to be about.)

</comment><comment><USER3> Looks cool ! Any video ?</comment>


National Society of Professional Engineers Code of Ethics - <AUTHOR> http://www.nspe.org/resources/ethics/code-ethics <comment><USER2> ACM has one for software engineers specifically for at least six years.

[http://www.acm.org/about/se-code#full](http://www.acm.org/about/se-code#full)</comment>


Understanding AWS cost best practices - <AUTHOR> https://www.surveymonkey.com/r/AWSCC <comment><USER2> A lot of those choices need multiple selections; radio buttons won't cut it.

<comment><AUTHOR> Noted.</comment></comment>


Old bills in Yemen are worth 10% more than new ones - <AUTHOR> http://jpkoning.blogspot.com/2020/05/one-country-two-monetary-systems.html <comment><USER2> > In the west, we take fungibility for granted. [...] The fact that a dollar > is worth the same in Los Angeles as it is in New York, or Vancouver as it is > in Halifax, is worth celebrating.

I've experienced the opposite here in Brazil: someone who had leftover US dollar banknotes from a trip to Disney in the 90s decided to exchange them back to the Brazilian currency. Since they were old banknotes, the bank would only exchange them at a heavy discount (I don't recall how much, but it was at least 10%); if they were new banknotes, there would be no discount. So here we have the opposite of the situation in this article: new US dollar banknotes are worth more than old USD banknotes (this is not an isolated case, a quick web search shows that often old US dollar bank notes aren't even accepted for exchange).

<comment><USER3> The US has worked to prevent this. I remember as a kid in the middle east (a time/place where everything was in cash) seeing commercials from the US that said, in effect: "We are printing new 100$ bills. The old ones will be good _forever_. Don't fall for scams selling new bills for old."

Even at the time I thought those commercials came from a good place. Being a world currency sometimes going the extra mile to protect not just its value or exchange rate, but the reputation of its physical manifestation.

<comment><USER4> Compare that to England where a note or coin can be discontinued with just 6 months notice.

Sure, they say you can still convert the old notes to new, but only in small quantities, and only with ID and proof of where the notes came from.

<comment><USER5> Back when the sterling actually meant something this could never happen. The world's reserve currency must never be questionable. But WW2 broke England's back, although they were only called on it by Soros much later.

</comment></comment></comment></comment><comment><USER6> There are fungibility surprises in the west, also.

In the UK, one sometimes runs across banknotes issued by banks in Scotland, which generally circulate like those issued by the Bank of England, but have some technical differences.

Many years ago, I had a cab driver in London who very adamantly refused to take a Scottish pound note by way of fare payment, and as I later learned, was well within his rights to do so.

It's sort of the inverse of the situation described in the article -- Scottish and Bank of England notes are technically not fungible, but are mostly treated as if they are, with a few exceptions, whereas the article describes notes that technically are fungible, but are treated as if they are not.

<comment><USER7> Scot here, I mostly don't have problems with this in cities. Wouldn't have expected to find this in London (although generally I get some cash out in England once I'm there).

My mum and dad's home town though, whole different ball game. The bank charges extra to businesses to take the notes into their account but will happily exchange them gratis for individuals so none of the shops will take them.

</comment></comment><comment><USER8> Some currency factoids:

1) North Korea has nearly perfect USD$100 printing plates, and finances imports with them. There have been several news articles written about this.

2) In Indonesia, the USD is a parallel currency that individuals/business owners use as a hedge against instability. Typically they'll have a hardbound book with mint USD$100 bills between alternating pages.

By mint I mean no holes, no wear, no ink stamps, post 2000.

3) I met somebody who had saved $15,000.00 in Indonesian Rupiah towards UK accounting school. Sadly, the month before, the Rupiah was devalued by 90% and he was left with only $1,500. See #2.

Typically when you exchange USD$2,000.00 there, you get a brown lunch bag full of Rupiah note bundles. You almost need a duffel bag to do a large exchange or withdrawal.

4) The lowest amount, the 100 Rupiah note, worth less than 1 cent, has an orangutan on it. Coincidentally, the strongman Suharto was on the old 50,000 note, worth about $3, the highest amount at the time. Guess which one is called the monkey note? :)

<comment><USER9> >North Korea has nearly perfect USD$100 printing plates, and finances imports with them. There have been several news articles written about this

I believe there has only been one report of a "superdollar" found since 2008, and there has never been overly strong proof that North Korea were the ones producing them

<comment><USER10> If it's perfect, how would anyone find them?

<comment><USER11> Serial numbers I assume?

<comment><USER10> What do you mean? You would need to track every bill and simultaneously find two matching ones, and now you know one of them is a counterfeit but which one?

<comment><USER11> You don't really need to know which one is which (and if the counterfeit one is perfect, does it even matter?).

But if you have 2 bills with the same SN, then you know someone is creating perfect counterfeited bills.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> "The rebels were not happy with the new notes. It's easy to guess why. Fresh money could be used to pay government fighters, not rebel fighters. This "blood money" would then cheekily flow north via trade. Since anyone who holds a banknote is by definition funding the government that issues it with a no- interest loan, the rebel north was financing its own enemies. (The technical term for this sort of financing is seigniorage)."

<comment><USER12> Is it really a no-interest loan? Or is it a negative interest loan? The value of the bank notes the government gave you, presumably by printing it, is less than it was than a few moments ago by the sheer presence of more of it. And it's probably safe to assume that they'll print even more, furthering decreasing your payment's value.

<comment><USER13> If you measure interest in the currency you're lending, like everyone else does, then it's exactly 0% interest. Interest rates advertised by banks aren't adjusted for inflation either.

</comment></comment></comment><comment><USER14> Fascinating. I believe there was a similar demonetization when the IRA stole a large fraction of banknotes issued by Northern Bank in 2005: [https://en.m.wikipedia.org/wiki/Northern_Bank_robbery](https://en.m.wikipedia.org/wiki/Northern_Bank_robbery)

The UK is quite unusual in retaining private note issue for banks in the different union nations.

<comment><USER15> This was common practice on a smaller scale for the IRA (Provisional IRA, etc.) throughout the Troubles from what I understand, though the heist you're referring to is particularly notable due to its magnitude and later timing. It evidently proved to be a relatively easy way to raise money, especially as it was at the loss of their purported enemy.

</comment></comment><comment><USER16> Another interesting story is that of the US dollar bills that were overprinted with "HAWAII" during WW2. It was to protect against Japan invading and seizing currency, so it was marked for such an eventuality.

[https://www.futilitycloset.com/2015/08/21/hawaii- overprint-n...](https://www.futilitycloset.com/2015/08/21/hawaii-overprint- notes/) [https://en.wikipedia.org/wiki/Hawaii_overprint_note](https://en.wikipedia.org/wiki/Hawaii_overprint_note) [https://gizmodo.com/the-us-issued-special-banknotes-in- case-...](https://gizmodo.com/the-us-issued-special-banknotes-in-case-japan- invaded-h-1736274265)

</comment><comment><USER17> > So by late 2016 we've got two different branches of the central bank, one > controlled by the rebels and the other by the internationally-recognized > government.

This sounds a lot like the Bitcoin vs. Bitcoin Cash hardfork. The pre-fork UTXOs were recognized by both parties, while post-fork UTXOs are only recognized on one side of the fork.

</comment><comment> DC-3 This blog is fantastic. I really enjoyed reading the linked articles within this piece about the Somalian currency.

</comment><comment><USER18> Differing values for the same currency surprised me in Liberia too: [https://blog.nella.org/my-favorite-things-all-at- once/](https://blog.nella.org/my-favorite-things-all-at-once/)

</comment><comment><USER19> The country had a civil war and the money printing system was split into two. The two enemies don't trust each other's fiat money.

<comment><USER20> You're forgetting what was mentioned in the article: one of the 2 enemies can't/isn't printing money at the moment, and is sitting on a deflationary currency.

</comment></comment><comment><USER21> An interesting example of the opposite is the Lebanese pound: the central bank somehow managed not only to keep operating but to maintain the strength (stabilize the exchange rate) of the currency through the civil war. I believe the head of the central bank moved into the bank and didn't leave for years.

<comment><USER20> Here's the more correct version:

Before and during the war, up until the late 80's, 1 USD was worth 3 Lebanese pounds (LBP).

In the late 80's (war ended in 90-91) the USD reached well over 1000 LBP, and reached 2500 LBP in 1992.

In 1997, the LBP was pegged to the dollar at 1 USD = 1507 LBP.

Fast forward to 2020, where the banking system has started showing cracks, and there are 3 exchange rates at the moment:

\- Official rate: 1 USD = 1507 LBP \- Banks' rate: 1 USD = 3000 LBP \- Exchanger's rate: 1 USD = 4200 LBP (changes daily)

<comment><USER22> Forgive my naivety, but doesn't that mean there's an arbitrage opportunity?

</comment></comment></comment><comment><USER23> > _In the west, we take fungibility for granted. The fact that a dollar is > worth the same in Los Angeles as it is in New York, or Vancouver as it is in > Halifax, is worth celebrating._

Except that this is both blatantly false and also not at all analogous. First, a currency's "worth" is expressible solely in terms of what you can buy with it, and the price in dollars of a McDonalds Quarter Pounder is absolutely not the same in different locations. And second, the Yemeni city isn't the important distinction between the different Yemeni bills; the minting authority is.

A comparison between French Euros and Spanish Euros would have been far more reasonable, as they're produced by separate minting authorities but still both Euros.

<comment><USER24> One could argue that it's not that the value of a dollar varies by location, but that the value of a quarter pounder varies by location. And I think that might be a more practical perspective, since a variable-value dollar would present an easy arbitrage opportunity, whereas buying quarter pounders in Manhattan and reselling them in Peoria is a scheme that would run afoul of some technical challenges.

I think that I like the way that the World Bank measures the value of the two rials better. The US dollar (or any other large stable foreign currency) theoretically represents a fairly stable measuring stick that's going to be a little bit more resilient to regional effects than a commodity good.

<comment><USER25> > One could argue that it's not that the value of a dollar varies by location, > but that the value of a quarter pounder varies by location. And I think that > might be a more practical perspective, since a variable-value dollar would > present an easy arbitrage opportunity, whereas buying quarter pounders in > Manhattan and reselling them in Peoria is a scheme that would run afoul of > some technical challenges.

You could make that argument, but it wouldn't be a very good argument, since the value of _everything_ is systematically higher (measured in dollars) in Manhattan than in Peoria. The obvious model is that the value of the dollar is lower in Manhattan. (Also, you seem to have mixed up where you would be buying the hamburgers and where you'd be selling them.)

<comment><USER26> this might seem obvious, but it doesn't really describe the situation well. things are expensive in manhattan because it is expensive to live in/around manhattan. even the lowly mcdonalds employee gets paid about twice as much to work in manhattan as in peoria. if you buy something that doesn't require local storage/labor, it will cost the same as it does in the rest of the country.

<comment><USER25> > things are expensive in manhattan because it is expensive to live in/around > manhattan. even the lowly mcdonalds employee gets paid about twice as much > to work in manhattan as in peoria.

All of this _supports_ the idea that the value of a dollar is lower in Manhattan than elsewhere. Indeed, it doesn't just support the idea; it is a restatement of it.

<comment><USER26> only if you ignore _why_ it's more expensive to live in NYC. it's more expensive because it's more desirable to live in NYC than Peoria. waterfront property is also more expensive than similar inland properties. the water doesn't locally inflate the dollar; it's a feature that people pay extra for.

if you accept that the real value of a dollar is less in NYC, you also have to accept weird consequences like a CPU from amazon is worth less there as well.

<comment><USER23> > _waterfront property is also more expensive than similar inland properties._

That explains _property_, not McDonalds Quarter Pounders which are exactly the same everywhere.

<comment><USER26> it's another example of the same phenomenon. a mcdonald's quarter pounder is not the same everywhere. the sandwich itself is the same, but the location is an important (and sometimes expensive) part of the whole package. how much would you pay for a big mac that happens to be located a hundred miles away from you?

<comment><USER23> > _how much would you pay for a big mac that happens to be located a hundred > miles away from you?_

You just showed that proximity to the buyer matters, not location, because _delivery_ is an additional cost in both money and time. If you want an apt comparison, you need to not bundle unrelated expenses. Whichever McDonalds I'm at, proximity to me is the same at time of purchasing identical Quarter Pounders, and the price is not.

<comment><USER26> we seem to be talking past each other, but I'm curious to see exactly where our positions diverge.

I think you already agreed that waterfront property is more valuable in real terms than a similar inland property because being close to the water is a desirable feature to some people.

do you also agree that a retail space in NYC is more valuable than a similar space in peoria, in the same real sense, with the vast social and business network of NYC being the value add?

if you agree that the real value of property in NYC is higher (due to proximity to lots of other desirable stuff), then you should agree that it makes sense that property commands a higher rent here. because the rent is higher, so too is the cost of labor and storage. if you follow the chain of reasoning thus far, you should agree that the real value of a quarter pounder in NYC is simply higher due to the higher input costs.

I don't think there is an absolute "correct" answer here. we are arguing for competing models, and a model is only good insofar as it explains/predicts reality. if I squint hard enough, I can see why yours might make sense. but it seems to raise a lot more questions than answers. if a dollar in NYC is truly worth less than a dollar in peoria, why is this only reflected in the price of local goods and services (ie, stuff where local rent is a major input)? why does stuff from amazon have the same nominal cost everywhere in the US? it seems much simpler to just accept that NYC property has a higher real value and let everything else follow from that.

<comment><USER23> > _you should agree that the real value of a quarter pounder in NYC is simply > higher_

The real value of the quarter pounder is the same, because the quarter pounders are identical. The real cost is higher because each dollar buys less. The properties' real values are not the same, because the properties are not identical.

> _the real value of a quarter pounder in NYC is simply higher due to the > higher input costs_

Cost is not value. Cost doesn't even create or drive value. Cost is the counterpoint to value in a trade equation. This holds true for both production and consumption.

Consumption side: Given two identical products at two different merchants with two different prices, I will choose the cheaper one, NOT because one of the identical products has greater value, but because the difference between the product's value and its price is greater, which means that I get to keep some of the money.

Production side: If the value of a thing is not more than it costs me to make, I will not spend resources to make that thing (unless I'm Softbank, har har).

Here are two thought experiments:

1\. Say that NYC imposes a 500% sales tax on fast food tomorrow. Has the value of a Quarter Pounder gone up, or will McDonalds just close their NYC locations because nobody wants to pay that much for fast food?

2\. Say I buy Quarter Pounder ingredients at some point equidistant from NYC and Buffalo, and then I teleport myself and the ingredients to NYC/Buffalo, and then I assemble the Quarter Pounder in NYC/Buffalo and eat it there. I am enriched (I assume) equally by the same ingredients composed into the same delicious (I assume) product. So what is different about the two scenarios? If I want to buy more, my dollars don't buy as much in the two places. But I have not changed, the Quarter Pounders have not changed, the ingredients have not changed, the labor has not changed, the storage has not changed. Those are all still identical to the ones I brought in. The difference is my dollars.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> Anacdotal:

Late 80's (cant pinpoint the exact year) I spend some time on the Sinai Peninsula and the local Bedouin would not accept freshly printed Egyptian Dollars but only the old ones. They figured we had be Israeli who printed our own money and tried to rip them off.

We had to exchange (read: pay a 10% fee) the new bills with old bills from taxi drivers.

</comment><comment><USER28> This is awesome, offtopic would be good to read more about Cubas dual currency system (Pesos vs Convertible Pesos). Why it was started, as well as what merchants will take, for example they would take my USD in place of the same number of CUCs

</comment><comment><USER29> Why doesn't blogspot automatically redirect http URLs into https ones?

<comment><USER30> This is the most HN comment ever.

<comment><USER31> honestly the more HN comment is somebody complaining that it does redirect http to https because <long rant about certificate issuers> and then somebody brings up lets encrypt and then it degrades into a big argument until eventually somebody brings up SWJs at which point that person lost the argument.

<comment><USER32> Maybe the second most HN comment is running argument simulations? This one is even complete with a base case (SJWs) that is self-ending because you yourself brought it up. Saved us the trouble.

<comment><USER33> No, they said SWJ, the journal dedicated to intrastate conflicts.[1] Not to be confused with the WSJ.

[1][https://smallwarsjournal.com/](https://smallwarsjournal.com/)</comment></comment></comment></comment></comment>


"Why RoguePOTUSStaff Is the Best Thriller on the Internet" - <AUTHOR> https://www.fastcompany.com/3068332/signs-and-symbols/why-roguepotusstaff-is-the-most-important-work-of-fiction-on-the-internet <comment><USER2> >A December survey by the Economist/YouGov found that 62% of Trump voters (and even 25% of those who voted for Hillary Clinton) believe that—in the utter absence of evidence —"millions of illegal votes were cast in the election." The same poll found that believing lies is nonpartisan. In spite of conclusive medical research, fully 81% of Clinton voters believe the statement, "Vaccines have been shown to cause autism."

That's not true. It's actually backwards, 81% think that statement is not true. In fact that poll showed believing lies was distinctly partisan. "Candidate preference seems to mean more than age, education and political interest when it comes to which of these conspiracies someone is likely to believe."

[https://today.yougov.com/news/2016/12/27/belief- conspiracies...](https://today.yougov.com/news/2016/12/27/belief-conspiracies- largely-depends-political-iden/)</comment>


Why do we need modules at all? (2011) - <AUTHOR> http://erlang.org/pipermail/erlang-questions/2011-May/058768 <comment><USER2> [https://news.ycombinator.com/item?id=8572600](https://news.ycombinator.com/item?id=8572600)

</comment><comment><USER3> This is why computing needs to be reinvented from first principles on up: the existing models are brittle, having been designed for 1975 problems, and they break down under 2015 workloads.

Eliminating modules and namespaces is one of the problems we solved early on in the Burpit project. Modules and namespaces just add unnecessary cruft to the program text, are still prone to collisions, and are not globally unique -- hacks which do not actually solve the problem in the manner of Java's com.xyz.whatever.SomeClass notation notwithstanding.

In the Burpit programming language, Poon, all functions are named according to a globally unique, 1024-bit hash of their representation in the Kock VM, which has been transliterated into a human-pronounceable string of CVC units, such as %pip-yod-rat-bag-hej-mig-wab-lik-sac-duf-top-kek. This is a bit hard to remember, but for the low introductory price of 100 BTC you may reserve a "quark", or block of 32-bit function names such as %pip-yod-rat. We've eliminated the need for tools like git too: all publicly available Poon functions live in the Burpit network itself in a distributed blockchain database indexed by these hash names.

This means you have to give up human- _meaningful_ function names, but in practice this has been shown not to be a problem: the Burpit developers have no problem remembering what %zoq-fot-pik does, and you can search on a function's description in the global database.

There are some functions, called _traps_ in Burpit, which are the equivalent of system calls and do not follow this convention. For example, the trap %sporc creates what is roughly the Burpit equivalent of a process (called a _kite_ in Burpit).

</comment><comment><USER4> Joe talked about this in Strange Loop 2014, and it seems to me that the idea is far less crazy than it seems. The more functional programming I do, the more sense it makes.

A major reason for modules in OO languages is to manage mutability: There's some hidden state, and some conventions surrounding that state, that the module tries to abstract away from us. But the price is very high: We have to make sure our executables are built with the right versions of modules, and avoid incompatibilities: What we know as dependency hell.

But why do we need dependency hell at all? For instance, in Scala, why do I have to do gymnastics to use a modern version of Shapeless along with spray- routing? Because the JVM is not happy with multiple, incompatible versions of shapeless in the same classloader.

Under Joe's plan, all of that disappears. It's just a question of how much we lose in exchange for sidestepping a problem like this. Given that any libraries I write nowadays tend to have just a few hundred lines of production code, I am very tempted.

<comment><USER5> > Joe talked about this in Strange Loop 2014, and it seems to me that the idea > is far less crazy than it seems. The more functional programming I do, the > more sense it makes.

Someone (sorry, don't remember who) also mentioned this at ICFP in 2012 wrt. Hackage, the Haskell community's package archive - that the better method of delivery is a function, not a library. This makes sense in the Haskell community where you have Hoogle ([https://www.haskell.org/hoogle/](https://www.haskell.org/hoogle/)) by your side.

<comment><USER6> Modules serve a useful purpose in Haskell too, since they can hide "dangerous" functions, ie. ones which violate invariants (which can't/aren't enforced by types, for whatever reason) when called in particular ways. This is similar to private methods of a class.

Personally, I dislike hiding such functions _completely_ , and usually expose them via a ".Inner" module (similar to Python exposing "private" things with _underscores)

</comment></comment></comment><comment><USER7> I am not on that mailing list, but I'd like to point out Emacs Lisp, which doesn't have modules (they would rather be called "packages" as in Common Lisp, but anyway, they just are not there).

Instead, the idiom has emerged to prefix every function name with its "package name". I'd take a deep look at the discussions in the Emacs Lisp community, in order to see the matter from the other side.

<comment><USER8> Though Common Lisp 'packages' are not really 'modules', they are namespaces for symbols. Common Lisp does not really hide things. It also does not allow fine grained control of interfaces: the class FOO and the function FOO with be both exported, when exporting the symbol FOO. Packages are also no compilation/deployment targets - there is for example no mechanism to compile or load a package.

</comment></comment><comment><USER9> I would like to structure my codebase as a _relational_ database and have my editor based on a view of that database, rather than subordinating the organization of my code to the file system of data organization, or a flat key-value store.

Modules can then be views and I think they would still be useful. I think the coincidence we currently have where modules are files makes it seem like mutual exclusivity and tree-like hierarchy is a defining feature of modules. We can throw that out. I think a lot of Joe Armstrong's complaints go away now.

Modules are still useful for human purposes. They are useful units of responsibility, accountability, maintenance, learning, and presentation. In fact, these facets of modules are enhanced if modules can intersect as views into a codebase: Overlap and dependence of code can be modeled as intersections and joins of modules-as-views. That these can be _computed from the structure of code_ rather than implicitly understood on top of the directory hierarchy of a file system, or worse, forcibly mangled to fit into a tree-like hierarchy like files is a tantalizing possibility.

<comment><USER10> I've been considering writing a "programming system of the future, backwards- compatible with the cranky programmers of today" by having just such a relational (or key-value) underlying representation... and then a FUSE server that presents an editable filesystem+text view of it.

Among a thousand other benefits, the "cutest" one is that all code gets canonicalized on save. The filesystem will literally reject a write(3) that can't be translated into a valid AST to be stored into the underlying DB. It's like a super-powered version of running "go fmt" as a git pre-commit hook.

<comment> vezzy-fnord RelFS was an experiment circa 2004-2005 in blending RDBMS with FUSE: [http://relfs.sourceforge.net/](http://relfs.sourceforge.net/)

</comment></comment></comment><comment><USER11> " there are no "open source projects" \- only "the open source Key-Value database of all functions"

There would be a function name rush in open source (similar to domain name rush) to claim cool, short function names.

<comment><USER12> I don't think so. C has been around since the 70s and there's no shortage of (short) names to use as your prefix.

<comment><USER13> If you are using a prefix that's unique to you, then you've just created a namespace.

</comment></comment></comment><comment><USER5> Sometimes, a module is much more than just a collection of functions. Sometimes, a module is a framework, or a whole embedded domain-specific language. At least, it usually encompasses a way of thinking about a given problem.

Erlang is simple-minded about this: frameworks get a special place in Erlang, and EDSLs are hard to come by since you can't declare, or override syntactic structures.

Taking modules out (in any language), you remove the programmer's option to semantically structure what they deliver into a holistic "thing". This may be a good thing: you can avoid monolithic modules.

So I think both options would be nice.

</comment><comment><USER14> Wikipedia uses a flat namespace for millions of articles, so it can be done. However, it's centrally administered, you need quite a few disambiguation pages, and there needs to be a way to rename articles when someone didn't get it right the first time. Also, by the time a concept is worthy of a Wikipedia article, there's already a pretty good idea about what to call it.

Hierarchical namespaces can certainly be overdone, but they do allow for quick, local decision-making.

<comment><USER15> Why not go further?

In some old Fortran compilers, names of functions could be at most 6 characters long and I am not sure, if upper and lower case where distinguished, I guess not. But with only lower case letters and digits, you roughly get 1.5 billion different names. That is a lot -- you will have a busy time to use them all!

The only problem is, that the overhead remembering such names is huge, but _it can be done!_

I still think, that in programming, managing complexity is key. You need different levels of simplification -- and here come modules in. Even when you want to use some kind of key-naming scheme without modules as described -- you at least will end up better of, when you use common prefixes to make life a little bit easier ... (and one could come up with the idea, calling the prefixes "module").

Beside that, modules bring other advantages into the game besides naming.

</comment></comment><comment><USER16> Modules are for us. They provide context. You want to use a function name as a namespace and that creates problems for organization and conceptualization. Any compiler should be able to look at foo() and module:foo() (with identical side effects) and optimize. So what if I duplicate code? There's no clear advantage to focusing on that as a problem. Let the machines do the machine optimizations and you do your code organization (which is a harder problem).

<comment><USER17> _So what if I duplicate code? There 's no clear advantage to focusing on that as a problem._

Sure there is: it makes it much more likely that fixes will only be applied to certain copies of the function.

A better solution would be to convert modules in groups: a function is not "in" a module, but it can be added to one or more groups, like emails in a tag system or hardlinks in an Unix filesystem.

</comment></comment><comment><USER18> The idea is appealing to me, because I always thought, that there should be much more meta data on functions, than module can provide.

I always thought about it like about dimensions.

1\. "Logic/test dimension" I can have functions doing actual logic and for tests. Do I put it in one module (to make it easy to change both if I need to) or in separate module (to make business logic more easy to follow).

2\. "Data structure dimension" I can have functions operating on different data structures like lists and sets.

3\. "Operating dimension" I can have functions operating on "Enumerables". Do I put _map_ in the Lists module or Enumberable? I need to know, where someone else put it when debugging. Database operating on meta data would solve that problem.

4\. There can be metadata for time/space complexity, so I can easily make tradeoffs between functions that do the same thing in different ways.

5\. "prod/stg/dev dimension" is another one. Maybe I want to use completely different logging mechanism for stg and prod, because I pay per logline...

6\. "Quality dimension" could show, what is the code coverage for the function or if it follows naming conventions/practices.

7\. "Popularity dimension" could show, how often is given function referenced, which would show most important functions and where to focus on optimizing.

Some of this problems are solved in different ways. IDEs can jump from function usage to its implementation. If you follow conventions, you can jump to a test code for given function. In Elixir, you can jump to protocol implementation. I can use inversion of control for switching implementations between environments. Those problems would have single solution, if there was a central database for functions.

There are many, many more dimensions and even relations between them.

</comment><comment><USER19> The prerequisite for such a way of programming is to use plain universal interchangeable data structures.

It does not seem possible in mainstream languages where the OOP dogma tells you to obfuscate your sets, lists and maps and turn them into non-reusable classes.

<comment><USER20> Or simply have a repo per language. That at least dedupes across each language (where there are often many projects reimplementing the same functions)

<comment><USER19> What I meant is not incompatibility of basic types across languages but the tendency to create named classes where they are not needed. For example the OOP tells us to create UserList.java instead of using List<User> because it allows attach behavior and preserve encapsulation.

Having 325 results for UserList.java in Krugle:

[http://opensearch.krugle.org/document/search/#query=userlist...](http://opensearch.krugle.org/document/search/#query=userlist&language=Java)

I can't image how to create globally reusable function that has the list of users in the signature.

<comment><USER20> Oh, interesting, thanks for clarifying.

</comment></comment></comment></comment><comment><USER21> This idea works quite nicely for "stdlib" sort of things. At least I've done this with JS - albiet using a very function / immutable style (so I don't know if this could work for OOP like languages).

Anyway, you end up with packages named "map" and "filter" or "toString" that export functions of the same name and are all very easy to require and consume/understand/test. Then on top of these you can build your libraries or apps.

"the only place where modules seem useful is to hide a letrec." \- JS already has this via require you can easily choose what you want to export.

"The unique names bit is interesting - is this a good idea. Qualified names (ie names like xxx:foo/2) or (a.b.c.foo/2) sounds like a good idea but but when I'm programming I have to invent the xxx or the a.b.c which is very difficult." \- I agree 100% with Joe here, with a few developers it works beautifully without any namespacing for the sake of it, I can attest to this. You have a canonical "isTextNode" function for example which you can use when you want to know if a dom node is a text node, its simple and its much easier than remembering the whole namespacing of things like org.example.subrouter.MyRidicClass...

So in summary I really like this idea, I've really liked it for a while now in js, I just don't know how well it would work at a larger scale where "anyone?" (or who exactly) can plop funcs into the DB.

</comment><comment><USER22> Discussion on LtU in 2014: [http://lambda-the- ultimate.org/node/5079](http://lambda-the-ultimate.org/node/5079)

</comment><comment><USER23> The scaffolding to do this in JS and try it out could probably be setup in a weekend. Pair it with one of the various JSFiddle, CodePen, etc. sites and see where it gets you.

Then realize that the mini-trend not so long ago to make NPM modules a single function was a freaking nightmare, scratch the whole idea, and remember that modules were invented for a reason.

If two, seemingly unrelated modules contain an equivalent function, does that not suggest the need for a third module? And if that module happens to only contain that one function, aren't we just at the same point as the suggestion of uniquely naming all functions, yet not stuck with it as the _only_ way to invoke functions?

But seriously, this thread title needs a "(2011)" on it. It's been 4 years. If someone thinks this is a good idea, just freaking try it already and see what happens. Lead by example.

</comment><comment><USER24> Interesting. I believe the better question is: How to manage context? In a hierarchy or flat or ...? Natural languages have the same problem and a plethora of solutions mostly based on conventions or rules. You make even break them to end up with a joke or confuse your opponent. Scientists often think 'this makes no sense in given context' and rely on very strictly defined contexts. In common language the situation at hand loosely defines a context leading to all kind of misunderstandings when strangers meet. However, communication can drastically improve if a shared context exists and was found.

Is there a progamming language where one can construct/negotiate contexts in a clever way? Something more powerful than Python's 'import' or Javascript's 'with'?

</comment><comment><USER25> It sounds like rather than modules, OP wants a _vocabulary_. That could be interesting but it seems like the inevitable conclusion is function names that are so long and explicit that they're as long or longer than the composition functions they're made of. At which point, there is no point.

Less constructively: what is described gives me flashbacks to pre-OO PHP4, endlessly looking up function docs. Maybe there is a a better way, but the proposed solution doesn't seem to provide fundamentally different/improved paradigms from a Big List Of Functions.

</comment><comment><USER19> _" There's a good an bad side to modules: Good: Provides a unit of compilation, a unit of code distribution. unit of code replacement"_

I think that Joe ignores the major rationale for modularization.

Modules provide the way to cut out the fragment of a complex project and apply local reasoning to it.

In other words a module is the way to "divide and conquer" the complexity that crosses the border of the single mind's capacity.

As such a module is not about code compilation, distribution and upgrades. It's about human cognitive abilities.

</comment><comment><USER26> If you really think about this type of thing, eventually you will realize most of the structures originated from the early constraints, i.e. complex textual source in individual files.

If you keep going down that path, eventually even smart people run into a cognitive wall, because the sad reality is that programming is defined by difficult to parse textual code in a bunch of text files.

Good luck trying to break through that wall.

</comment><comment><USER27> The node-machine project for JavaScript is worth a look here

[http://node-machine.org](http://node-machine.org)</comment>


Build Your Own Lockitron With Twilio, Arduino, and Node.js - <AUTHOR> https://www.twilio.com/blog/2014/03/build-your-own-lockitron-with-twilio-arduino-and-node-js.html <comment><USER2> Great to see things like this back on the front page. This is what HN is about rather than tech stocks, IPO, Tesla public announcements and things that belong on Reddit. Thanks a bunch, that being said I will working on this tonight!

<comment><USER3> Glad you like it! Let me know how it turns out - my ideal would be to evolve it to use a 3d-printed servo mount rather than cardboard and duct tape, but it's a good start!

<comment><USER2> Great start indeed. Simple and good execution !

</comment></comment></comment><comment><USER4> Rather than only allowing access from a given phone number, you may want to do what I did in another project: allow access from anybody in a given google contact group.

My project allows people in a given contact group to open my garage. A phone number is posted outside my garage and a sign that says "Text OPEN GARAGE" to this number."

Twilio contacts my nodejs script and if they are in the google contact group, it sends a message to the SmartThings API to trigger my ZWave relay.

This isn't very well documented, but if anyone has any questions let me know:

[https://github.com/klinquist/GarageAccess/blob/master/garage...](https://github.com/klinquist/GarageAccess/blob/master/garageopener.js)

Note this was my first real node project. :)

<comment><USER3> I love that approach, I believe SmartThings uses Twilio as well.

Another potential approach is to do access control using Twilio (make an interface to add/remove authorized numbers via SMS) and store that in a DB on your server

<comment><USER4> I actually did something similar to that for a bachelor party - there were 10 of us, combinations of iphones and androids. Rather than having everyone exchange phone numbers for a group SMS, I asked everyone to text their name to a twilio phone number. (XXX-XX-PARTY)

If the twilio number received a text from someone not in the db, it added it. If it was in the database, it would prefix any message they sent with their name: and send the text to everyone else in the db.

Worked out great. Cost me about $20 for the weekend though. :)

<comment><USER5> Github the code?

<comment><USER6> Just threw together something that works really quick for you: [https://gist.github.com/yefim/9823281](https://gist.github.com/yefim/9823281)

<comment><USER5> Very awesome of you. Thanks!

</comment></comment></comment></comment></comment></comment><comment><USER7> i've been reading Hacker News forever and just now created an account to share my project similar to this...

I built mine a couple years ago. I 3d printed most of the parts on a Makerbot Thing-o-matic. It uses 24 rare earth magnets built into the feet to attach to the door over the deadbolt. There is a 3d printed sleeve that slides over the deadbolt lever and turns with a servo.

A piezo sensor on the frame of the device detects knocks on the door. knock the correct pattern (shave and a hair cut, two bits, for example), and the servo turns the deadbolt.

It is easily modified with an ethernet sheild to be controlled with my phone when within range of wifi outside the house...

I still plan to do a proper write-up and share the source code and stl files for printing- i just havent gotten around to it yet. I've got a few other unique projects I'd like to share as well, I just need some time to organize some photos and info.

photo: [http://now.oldman.ca/lib/img/bg/heimdall.jpg](http://now.oldman.ca/lib/img/bg/heimdall.jpg) video (early test): [http://www.youtube.com/watch?v=5zFRAlZB0Sw&list=UUl6Pnlqx1eh...](http://www.youtube.com/watch?v=5zFRAlZB0Sw&list=UUl6Pnlqx1ehH9iRW0I_NKog)

<comment><USER3> That's awesome - do you have the 3D printer models up on thingiverse?

<comment><USER7> thanks! no, I don't have the models up on thingiverse, but I plan to put them up there and to document the build. I'd like to start documenting more of my builds as well. I'm going to work on promoting myself and my work better as it's something I've not spent much effort on recently.

I enjoy reading stuff like the original post here and am always looking for such content but so easily forget that I could be sharing my projects and methods... perhaps time to stop lurking so much :)

</comment></comment></comment><comment><USER8> If you have your own home, or perhaps a very forgiving landlord, an electric door strike is much superior to a servo twisting a lock. eg, this one is $40 [http://amzn.com/B003TN1HAM](http://amzn.com/B003TN1HAM)

It won't interfere with the regular operation of the door, and can be operated by a simple relay -- the more complex mechanical bits are handled for you.

You may also be able to use an electric deadbolt with keypad like [http://www.amzn.com/B0045Y1LNM](http://www.amzn.com/B0045Y1LNM) with your existing keys, or even the existing outer facade so it isn't obvious to a passerby (say, your landord) that you've swapped it out.

<comment><USER9> Yes, and the one configured as fail secure is probably the most popular. When power fails, it automatically locks: applying the 12V power opens the strike.

The only downside is installation cost? isn't it a job for a locksmith to install, especially when your existing strike faceplace is metal. Also, you'd need some power hooked up to it, on the inside of your door frame.

I have this one, which I bought from a local electronics supplier - AU $29.95 - [http://www.jaycar.com.au/productView.asp?ID=LA5077](http://www.jaycar.com.au/productView.asp?ID=LA5077)

<comment><USER10> Probably a fire code violation if a power loss prevents you from opening the door to escape.

<comment><USER9> Assuming your door has a traditional door knob & lock fitted as well, an electric strike doesn't prevent you opening the door when its in the locked position. The way an electric strike unlocks a door is by swivelling a part of the strike plate away. When its 'locked' its really just like a regular door with a fixed strike plate, as per this diagram ... [http://www.hometips.com/wp- content/uploads/2012/06/doorknob_...](http://www.hometips.com/wp- content/uploads/2012/06/doorknob_lock_parts_diagram.jpg)

</comment></comment></comment></comment><comment> jon-wood I keep thinking about building something like this but the thing that ours me off is the possible implications in the case of having to claim on insurance if someone robbed my house.

I have very little doubt that the insurance company would take a dim view of my front door lock being connected to the web, and leap on the chance to deny any claims on the grounds that the intruder could have broken in via my code, making it equivalent to leaving the door unlocked when going out.

<comment><USER11> There doesn't really seem to be any need to have it hooked up to the web. Not sure why not BTLE or just local WiFi.

<comment><USER3> The original workshop for Makerland actually offered 2 options - RFID or SMS, it's totally up to you which you use

</comment></comment></comment><comment><USER12> Lockitron can't even build their own Lockitron. My order has been delayed around 6 months now :(.

<comment><USER13> I've had the same experience. Delayed 3 different times, for about two months each occurrence. :(

</comment></comment><comment><USER14> I've been building a lockitron clone using a raspberry pi. The key functionality selling point for me was being able to lock/unlock the door base on proximity like lockitron's "sense" feature.

Turns out this is much more difficult than it sounds because bluetooth le rssi is pretty unreliable. I've figured how to get it working for my particular case but I would be curious how lockitron configures it to work consistently for a wider range of locations and devices.

On a separate note, the servo can be attached to the door without duct tape or modifying the door if you have a door like [1]. I simply bought a piece of rubber tubing that fits over the knob and then configured a smaller piece of rubber to fit the servo arm to the lock piece on the knob. This design is also nice in that if the device malfunctions a key can override it.

1 - [http://www.happynews.com/living/livingimages/remove-door- kno...](http://www.happynews.com/living/livingimages/remove-door-knob.jpg)

<comment><USER3> That's a good solution, did you just mount the servo to the door itself?

<comment><USER14> The servo is mounted to the piece of rubber which is then mounted to the doorknob. The only thing keeping the servo on the lock is friction.

</comment></comment></comment><comment><USER15> I've done this project before, except I used Tropo + Arduino Ethernet + Twitter's API. Coding the server in Node.js is way easier, but requires a computer to remain on and connected to the Arduino in order to work.

Also, the duct tape will come off after around 100 locks/unlocks, so I eventually had to remake the whole thing with a 3D printed frame and shaft that would be secured to the door. My initial version was horrible, held together by glue/duct tape/cardboard/prayers.

If you want to turn the lock without the motor, you need to have the Arduino detach the servo after the rotation is complete. If you don't detach the servo, you'll damage the motor if you turn it by hand, because the internal tachometer will fight as hard as it can to maintain the servo's position.

Overall a very cool project and a great primer into using Node with Arduino.

<comment><USER3> Thanks, glad you like it! My eventual goal is to evolve it to use a 3d-printed servo mount, but sadly I do not have a 3d printer handy. Would love to see your model though.

<comment><USER16> Great project. Here's an idea - my neighborhood needs a timed garbage can lock. I can't take the garbage can out at night for the garbage truck in the morning because people dig through trash and leave a mess. It is annoying because I hate walking out in the cold half awake.

</comment></comment></comment><comment><USER17> Last year I built something similar with Lego Mindstorms and a bluetooth control app.

[http://kuxhausen.com/legoitron/](http://kuxhausen.com/legoitron/)

However, I stopped using it as the command strip's velcro would come apart whenever the door was slammed shut.

<comment><USER3> That's a cool setup - does it manually turn the little lock thing?

</comment></comment><comment><USER18> Cool project. I recently did a similar project that involved controlling an Arduino from Node.JS. A friend suggested I use Firmata, which is a standard protocol for talking to Arduinos via the serial port.

[http://firmata.org/wiki/Main_Page](http://firmata.org/wiki/Main_Page)

Very painless to use, and the script for the Arduino is included on the Aruidino SDK examples menu. You can get up and running in Node.JS in just a few lines of code.

For what it's worth, my project involved playing the brass bells on a christmas ornament from a game of 2048.

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

<comment><USER3> Hah, I love 2048 hacks. Also, Firmata is the ideal way to handle something like this - I was just trying to be barebones and keep things raw.

</comment></comment><comment><USER19> This is very cool, and great to see a full writeup. I actually built a very similar hack at the 2012 TechCrunch DisruptSF Hackathon: [http://techcrunch.com/2012/09/09/meet-the-disrupt- sf-2012-ha...](http://techcrunch.com/2012/09/09/meet-the-disrupt- sf-2012-hackathon-winners-livebolt-takes-grand-prize-auctopus-and-heatdata- are-runners-up/)

We used an electric imp and we 3D Printed a aperture for grabbing the deadbolt handle.

Interestingly, this was about 4 weeks before lockitron announced the presale of their current product...

Great work!

<comment><USER3> I think I saw that, actually. Really great hack - did you post the 3D model anywhere? Would love to evolve my duct tape/cardboard into a 3D print at some point.

</comment></comment><comment><USER20> I built something similar too: [https://vine.co/v/hmu5IlBj2pQ](https://vine.co/v/hmu5IlBj2pQ)

Mine uses NFC keys. Arduino does a lookup over GPRS against a web service to check if the key is permitted to unlock.

As someone else has commented, this uses an electric door strike rather than a servo.

You can register new keys using the webapp, make them allowed for certain time periods etc.

</comment><comment><USER21> I don't recall much being proprietary about the first Lockitron -- it was off the shelf insteon components for the lock and the controller as this post highlights can be done in a number of ways.

It's nice to see different homebrew options popping up -- hopefully it will lead to an open source equivalent that can be 3d printed eventually :)

</comment><comment><USER22> I considered doing this for a while (although probably sans-twillo), but had a hard time finding reliable information on servos you could read information from. Is the Servo type used in the code in this project built in to the arduino libraries? I've never seen it before.

</comment><comment><USER23> When I get my Tessel I'm going to try to implement this in 100% Node.js With the Tessel I should be able to communicate with Twilio directly from the microdevice via Wifi without needing to start up a separate server on my computer and communicate via serial port.

<comment><USER3> That's an awesome idea. I was going to use either a Raspberry Pi or Arduino Yun for mine (to remove the computer from the equation) but a Tessel would be even better!

</comment></comment><comment><USER24> Cool project, and really smart of them to put this on their blog. I know it seems obvious to a lot of us, but there are a lot of people out there that would never think of doing this.

<comment><USER3> Glad you like it! I love doing hardware hacking and am certainly happy that Twilio is open to publishing things like this.

</comment></comment><comment><USER25> This is so awesome! Question: (I haven't used servos much) Will this still allow the regular key functionality to work? Can you turn the servo manually or is it resistant?

<comment><USER3> You'll likely need to add some kind of method to turn off the servo when it is not actively in use. When a servo is powered, it resists being turned manually.

<comment><USER25> ah, I see. Still extremely useful-- my roommates and I lose our keys all the time. Also love the idea of adding "groups" of cell numbers to the permission list.

</comment></comment></comment><comment><USER26> This is great, not just for the idea, but how detail the writeup is. I feel as though I could do this even without much Arduino and Node.js experience.

<comment><USER3> Really glad you liked it!

</comment></comment><comment><USER27> I can't quickly tell, but does/could this support a mortise lock? If Lockitron did, I would've ordered one years ago.

<comment><USER3> As long as the lock/unlock control is a 180-degree (or less) turn it should be fine, though from my understanding most Mortise locks would not fit this criteria

</comment></comment><comment><USER28> This is incredible. I am always amazed by what you can hack together with Twilio.

<comment><USER3> Thanks!

</comment></comment><comment><USER29> I will take you out for steaks at Keen's if you build me one of these.

</comment><comment><USER30> This is a really cool alternative to the $179 lockitron. Nice job!

<comment><USER31> probably get it faster too.

</comment></comment><comment><USER32> Does this work with international numbers?

<comment><USER3> Yup. You can use any SMS-enabled Twilio number (or voice-enabled number if you change some of the code to respond to dial-tones) - list can be found at [https://www.twilio.com/international](https://www.twilio.com/international)

</comment></comment><comment><USER33> Super!

</comment><comment><USER34> Awesome!</comment>


Cheri C/C++ Programming Guide: Capability Hardware Enhanced RISC Instructions [pdf] - <AUTHOR> https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-947.pdf <comment><USER2> Here's the CHERI project home-page, which may be more approachable than the paper:

[https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/](https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/)

</comment><comment><USER3> People were already worried about cache effects of transition of pointers from 32 to 64 bit, and this doubles the size again to 128 bits. Performance implications are as of yet unknown, but I wouldn't get surprised if it gets shown that a managed environment (.net, jvm) outperforms c/c++ code adapted to cheri. JVM already does pointer compression.

<comment><USER4> I guess the whole point is that while many of security conscious developers would like to replace C and C++ with managed solutions, there are millions of lines of code that will never be rewritten specially those from POSIX environments, so hardware mitigations like these seem to be the only good solution going forward.

</comment></comment><comment><USER4> This is really the only way to tame C like languages, short of some Safe C variant (like MSR Checked C) ever gains adoption outside research labs.

CHERI is an welcomed addition to the SPARC ADI and ARM MTE efforts.

</comment><comment><USER5> CHERI is quite interesting; I think it has the potential to actually usher in architectural memory safety where other efforts have floundered. Given that I hear Morello boards might be available fairly soon I'm curious if anyone has done serious research on what kinds of practical attacks might still be possible in this model. Perhaps we'll see this once more specs come out?

<comment><USER4> I wouldn't consider Solaris SPARC ADI, what Apple and Google are pursuing with ARM as floundered efforts, even though they aren't quite there, better than on plain old CPUs.

I also would like to see Checked C succeed where others have failed, but that is probably wishful thinking.

</comment></comment><comment><USER6> This could have used an earlier definition (as in IN THE ABSTRACT) of what the CHERI system hopes to accomplish. A dialect for memory safe pointer access and other architectural capabilities built into pointers</comment>


Hackurls.com: One Day Python Project (source included at the end of the page) - <AUTHOR> http://www.hackurls.com/index.html

<comment><USER2> Where is the link to the source? I must have missed it on the website.

<comment><USER3> It's the icon at the bottom: <http://www.hackurls.com/hackurls.py></comment></comment>


Be careful with those seemingly private 'share this report' links - <AUTHOR>

Do a Google search for:

  site:https://qualaroo.com/share/
 and you'll see what I am about to get at. That's the tl;dr.
My bet is that most of the owners while aware that their share URLs were publicly accessible to those who have the link (> Qualaroo says explicitly that the URL is public <), they perhaps weren't intending for them to be easily accessible via Google.
As to whether this is a problem or not? It's a  clear trade-off between convenience and privacy control and the answer may depend on the type of information being shared. While Qualaroo strips IP addresses and other identifying information, I do see some personally identifying information in those results (Qualaroo has no control over what its customers ask of their audience using Qualaroo, or over what responses are provided).
I believe vendors have a duty to their customers to provide them with control  strong tools to protect their information.
As to how they ended up indexed by Google? Who knows - maybe they're getting better at indexing the Deep Web. Either way, the vendor should have robots.txt'd this from happening.
I hope this was at least mildly interesting to some and at best a warning to others! <comment><AUTHOR> Does Google's crawler 'discover' and index URLs shared in Google Mail, Gtalk? Thinking around ways in which these obscured links find their way into Google.</comment>


Complete List of Mac OS X Snow Leopard Enhancements - <AUTHOR> http://www.apple.com/macosx/refinements/enhancements-refinements.html

<comment><USER2> Things I wish could be fixed with 10.6

\- Cut and paste a file (no you can't with the finder)

\- Maximize the windows

\- This annoying audio "pop" I can hear when my Macbook's line out is connected to a hifi system and no sound is playing.

<comment><USER3> Add:

\- Breadcrumb in Finder Windows. This is uber-annoying.

\- Revamped open/save dialogs. What do you mean I can't right click to rename a folder in the save dialog?! What do you mean I can't search for a file in this folder?

Sadly the Finder has nothing on Windows Explorer.

<comment><USER4> The Finder has at least something on Windows Explorer: one thing I always miss on Windows is the ability to drag a file or directory onto an open/save dialog and have the dialog immediately navigate to and select that file or directory. Saves you from repeatedly navigating the filesystem.

<comment><USER5> Slightly related: I recently discovered you can drop a file directly onto file upload fields on web pages without even opening the open dialog.

</comment></comment></comment></comment><comment><USER6> Oh, thank the good lord:

      Date in menu bar.
      The date can appear alongside the time in the menu bar.

Seriously - This missing feature has driving me CRAZY - Windows XP has been able to do it since the beginning of time. Finally I can look at my screen and figure out what the date is without having to Click on the Time (or leave iCal in my Dock)

<comment><USER7> I've had this in Leopard for a long time. It's not obvious, but it's possible. See

[http://lifehacker.com/software/mac-tip/display-the-date- on-t...](http://lifehacker.com/software/mac-tip/display-the-date-on-the- menubar-316029.php)

</comment></comment><comment><USER8> > Restore deleted items to original folders: If you put an item in the Trash, > then change your mind, you can restore it to its original location. Just > select the item in the Trash folder and choose Put Back from the File menu.

Well lookitthat! They finally got around to making OS X's finder behave like MacOS's finder, bringing it into the 1990s. I think I used this feature twenty years ago.

Apple claim they don't copy Microsoft. Why should they, they are busy copying themselves!

<comment><USER9> Yep. Bertrand Serlet's comments on stage pretty much summed up Apple's attitude: _they_ love the Finder in Leopard. They either don't know or don't care about just how much the Finder has really lost, nor do they focus on major UI issues in the Mac OS X Finder (that have been documented extensively in many blogs and articles), issues that create daily frustration or confusion for many users.

I'd bet that even this Put Back feature will be a poor imitation of the old one, just like everything else. Scrollable stacks that can dive into folders? Please, Mac OS 8.5's pop-up windows were brilliant, _scrollable_ windows that could do everything else that Finder windows could do, and it doesn't even look like Stack pop-ups can be resized.

</comment></comment><comment><USER10> Wow, it appears that they finally made an attempt to FTFF.

One feature I really, really, really wish someone would do would be to allow me to explicitly disable my DVD drive until I actually need it. This is partially a Finder problem, no doubt, but I would say that 90 percent of the time it spins up, it is unnecessary. I've looked into fstab alterations, but on Leopard when you open it up, you're greeted with a very ominous and threatening message:

IGNORE THIS FILE. This file does nothing, contains no useful data, and might go away in future releases. Do not depend on this file or its contents.

<comment><USER11> I am absolutely amazed that my brain was able to parse "FTFF" as "fix the fucking finder". A cursory Google search for it doesn't show any places I think I have ever been, but it actually was on Urban Dictionary. Wow... the internet has clearly affected me...

</comment></comment><comment><USER12> LOL at this paragraph:

"Boot Camp now includes HFS+ read support that enables you to access the files on your Mac OS X partition from Windows. It's read-only to prevent PC viruses from affecting Mac OS X,"

</comment><comment><USER13> these caught my eye:

Multi-Touch gestures in older Mac models.

Static analysis. (for Xcode)

<comment><USER14> Static analysis has been available outside of Xcode for some time now. Clang is a great tool.

[http://www.mikeash.com/?page=pyblog/friday- qa-2009-03-06-usi...](http://www.mikeash.com/?page=pyblog/friday- qa-2009-03-06-using-the-clang-static-analyzer.html)

I haven't tried valgrind yet but there is a little buzz about it.

[http://www.mikeash.com/?page=pyblog/friday- qa-2009-06-05-int...](http://www.mikeash.com/?page=pyblog/friday- qa-2009-06-05-introduction-to-valgrind.html)

<comment><USER15> valgrind is available for the Mac?! Oh happy day! I was seriously considering installing a Linux VM on my MacBook Plus just to get valgrind....

</comment></comment></comment><comment><USER16> > Gamma 2.2. > The default gamma has been changed from 1.8 to 2.2

I've heard designers getting angry about this. Is there really such a big difference?

<comment><USER17> Enough to mess up color calibration for WYSIWYG workflows. (Though using ColorSync profiles is _supposed_ to make this moot, not enough files contain such profiles, especially if they are Windows originated or unedited after camera capture.)

This seems to be a concession to web browsing. When visiting web pages, many Mac users complain about images showing up as too dark, when they appear "just fine" on Windows browsers. Safari was supposed to fix this, but third-party browsers like FireFox and Camino never bothered to deal with color correction, so this default is a work around, since so much work is done on the Web anymore. /-: (Funny how Windows users never complain about images appearing too bright or washed out. I guess Windows are used to problems dealing that OS. (-: )

(Not that this should 'ffect me much, I'm using a ColorSync profile on my home machine that changes the white point to a grey tinge to match the lighting in my apartment anyways.)

<comment><USER18> Too bright you mean. Gamma 1.8 is lighter than 2.2

<comment><USER17> I never could get the complaints straight myself. My personal Mac and the Macs at my former employer all religiously used color calibration, so we never had problems. It was mostly from end users, clients, and message boards was where I fielded complaints in the past.

</comment></comment></comment></comment><comment><USER19> Customizable Services menu and Service authoring from Automator is just awesome... but it's a long time coming! Most people don't even realize the menu is there.

<comment><USER9> Agreed. In the NeXT days, Services was a top-level menu that couldn't be missed. I always found it silly that they buried it in Mac OS X, especially considering that far less useful menus were not buried (such as Help).

</comment></comment><comment><USER20> I hope bootable ZFS is there somewhere. Sadly I don't see it in this list

<comment><USER21> [http://www.appleinsider.com/articles/09/06/09/apple_backtrac...](http://www.appleinsider.com/articles/09/06/09/apple_backtracks_on_safari_4_0_tabs_on_top_zfs.html)

</comment></comment><comment><USER9> It's funny to see them market the fact that Mac OS X takes up less disk space. While this is true, I'm sure the only _reason_ is because all bundled apps and frameworks no longer contain PowerPC chunks in their universal binaries.

<comment><USER22> Bertrand Serlet said something about compression in the keynote.

Also note that the largest part of application size is not in binary, but in resources (images, nibs, etc.)

Edit: also, all major apps are compiled with 64-bit support (and should run on 32-bit systems), thus it's minus ppc, but plus x86_64, which has a larger code size.

</comment></comment><comment><USER23> Split View Terminal Windows. Awesome.

<comment><USER9> It was a feature of older Mac OS X versions, but mysteriously disappeared.

</comment></comment><comment><USER24> With all the 64-bit happiness: does anyone know whether the first Intel Core Duo (Yonah)-based MacBooks are still supported?

<comment><USER25> Phil Schiller said all Intel Macs, past and present, so I would say it's most likely that the 32-bit Macs are supported.

</comment></comment><comment><USER26> How about allowing us to set windows for when Time Capsule backs up files? I don't need to have backups run every fifteen minutes through the night.

Also, I'm never going to use Safari unless they make a bookmarks pane on the left as FF and IE do. Message to Apple: don't put being different ahead of being useful.

</comment><comment><USER27> They mentioned during the keynote that the Snow Leopard family pack is only $49. Does anybody know if that is __just __for upgrades from Leopard? I have 3 Macs: 2 are running Tiger and 1 is running Leopard.

<comment><USER28> $29 for a single license of SL. $49 for the family license.

Also, it's important to note that Snow Leopard will only run on Intel Macs.

<comment><USER29> Those are upgrade prices from Leopard.

</comment></comment></comment><comment><USER30> But no Java 6 as a default Java, and on 32-bit machines.

</comment><comment><USER31> That is where PR people from FreeBSD or Linux should learn how to write. Not just "we were upgraded gcc to 4.3 and now we have x86_64 builds".

<comment><USER32> You mean like this: <http://www.ubuntu.com/products/whatisubuntu/904features/> ? Or this: <http://www.kubuntu.org/news/9.04-release> ?

P.S. FreeBSD and some linuxes don't exactly target the same kinds of users as apple. You know, the typical FreeBSD or Debian user probably cares about which version of gcc is default, and probably couldn't care less about photo editing software. Their PR seems adequate to me :D

<comment><USER33> No, I don't think those measure up. The Ubuntu listing is too short and too non-specific to be much good. They also overuse acronyms and pack them too densely (PSP, MP3..).

The Kubuntu listing is better than the Ubuntu page, but still not there. There's overuse of bullet points, which limit detail. Everything is generally too terse and badly-organized.

They rely on prior knowledge and don't explain what the improvements mean to the users. What is this? "The new plasma-widget-network-manager replaces the old KNetworkManager applet." What does that mean to me, a new Kubuntu user?

Apple does it better. They have nice delineation of features, so you don't have to go looking for information. It's also listed in much more detail, which is the main problem with the OSS lists.

Actually, looking at both pages, it seems like the Kubuntu people are doing something fundamentally different. They're listing new versions of software, briefly detailing the changes, and pointing to the software changelogs. Apple is talking about the OS as a whole and dividing it into parts. They're not saying "iChat updated to version X"; they're saying "iChat in Snow Leopard has features Y and Z."</comment></comment></comment>