Quirks of the arXiv - <AUTHOR> http://www.symmetrymagazine.org/article/quirks-of-the-arxiv <comment><USER2> I know absolutely nothing about physics. But I still found this paper enjoyable to read, because it's written in the format of a discussion between fictional characters: [https://arxiv.org/pdf/hep- th/0310077v2.pdf](https://arxiv.org/pdf/hep-th/0310077v2.pdf)

<comment><USER3> Accessibility is almost certainly a large part of the reason that the greeks tended to write in dialogues. The greek dialogues tend to be very approachable, due to the way they have to step through issues.

<comment><USER4> I'm on the opposite camp. Nothing makes me groan so deeply as dialogues. And I know I'm not alone either: plenty of people are bored out of Plato because of the dialogic writing, specially because every other line amounts to nothing more than "Why, indeed Socrates...".

Don't get me wrong. I like Plato (quite a bit). But dialogues seem as approachable to me as poetry. They might be approachable in the sense that, since they simulate a conversation between two people who might not know eachother, they necessarily lead to a much clearer exposition of whatever is the topic at hand. It's indeed as if you were reading two people try to make their ideas across when they're complete strangers eachother. But it takes completely different kind of "reading" from the one a person might use when reading prose or when reading a pure exposition.

Two cents.

</comment></comment></comment><comment><USER5> Another fun one: On the Impossibility of Supersized Machines

[https://arxiv.org/abs/1703.10987](https://arxiv.org/abs/1703.10987)

<comment><USER6> This comes off as snarky and towards a strawman position. Only a very small (possibly religious) fraction of AI researchers believe that superhuman intelligence is not possible.

<comment><USER7> That's not true. Even in a survey done by Nick Bostrom which was probably biased towards researchers who believed in possible superhuman intelligence, 41% of researchers thought it would never be achieved.

[http://www.nickbostrom.com/papers/survey.pdf](http://www.nickbostrom.com/papers/survey.pdf)

<comment><USER8> Note that "impossible" and "will never be achieved" are two entirely different propositions.

<comment><USER7> And on the other hand the question was asking a milder thing than super intelligence, just that we would be able to simulate all aspects of human intelligence, particularly learning. 18% said that no line of research (eg cognitive science, artificial neural networks) would even _contribute_ to the aim of human level machine intelligence. Moreover, the paper quotes one researcher who was against even taking the survey since they believed that even asking these questions was inherently 'misguided'.

It's interesting that we're even having this discussion: it wasn't so many years ago that the exact opposite discussion was common, i.e. that the actual AI researchers that think this is even a possibility are such a minority and are generally side lined that we shouldn't take their view much into account. In fact, I'm pretty sure that Bostrom's survey was done in part just to give evidence that there were real researchers who thought that human level AI was possible in the not-that-distant future.

<comment><USER6> I hope people stop citing that survey. NIPS and ICML authors are AI researchers, not attendees of PT-AI, AGI, or EETN (who are likely to be AI philosophers and singularists) or TOP100 authors who are likely to be be old, uninformed of current research. And anyone who agrees to such a survey is likely to have an extreme/controversial opinion (yes, surveyors were self- selected).

</comment></comment></comment></comment></comment></comment><comment><USER9> This is a bit OT, but it reminds me of the much under-reported aspect of Aaron Schwartz's document collecting:

As I understand it, he intended to analyze the resulting data set for patterns. Meta-analysis of said scientific literature, so to speak.

Of value in itself, for several reasons. Scientific. Personal interest -- interesting language and rhetoric.

One very important one -- that can be lumped under the important work of science as well as that of understanding human endeavor in all its aspects: Fraud detection.

We all have been reading about both mistakes and deliberate mis-representation in scientific publications. Including in some very influential works, subsequently retracted.

ArXiv is a step in the right direction. When we have all these scientific results locked up to the point where such meta-analysis and subsequent _science_ is impossible, we've greatly shackled the process of scientific research and our own human endeavor and progress.

By the way, with respect to recent public conversation with respect to economics, some view this as another form of rent-seeking. People who don't produce but rather gather the "rights" to the results of production, and then divert as much as they can of its value into their own pockets -- often diverting it away from investment in the actual work from whence it comes.

Or, eating your seed corn.

</comment><comment><USER10> I really enjoy how most of the abstracts in these papers are more like ELI5s, or just plain understandable. I think having an understandable abstract would be valuable for many papers to have to make large complex sciences understandable for people not in the field. Would there be any downside? The only one I can think of is that conclusions could sound more convicting in a simplified summary.

<comment><USER11> Having understandable abstracts is indeed very important for the success of a paper and scientists try very hard to come up with good abstracts. Writing the abstract is one of the harder parts of writing the paper. However, what you find understandable and what an expert in the field finds understandable is often very different.

</comment></comment><comment><USER12> The first one was really to the point in its abstract while another tells stories in it. Made me grin incessantly when I saw it.

</comment><comment><USER13> Here's a similar list from 2006 (some papers in common):

[http://backreaction.blogspot.de/2006/07/stupid-title- list.ht...](http://backreaction.blogspot.de/2006/07/stupid-title-list.html)

</comment><comment><USER14> Nice, it left me wondering how the dialog of Rovelli continued.

<comment><USER15> Well then read the paper! I'm in your same position. Also with "Would Bohr be born if Bohm were born before Born?".

EDIT: I started reading it and it gets into reeeally good stuff:

Simp – There are predictions from string theory as well.

Sal – Like?

Simp – Like large extra dimensions. Supersymmetry. Transitions that cannot happen in the standard model.

Sal – You mean that if we do not find the experimental consequences of large extra dimensions we conclude string theory is wrong?

Simp – Of course not, large extra dimensions exist only in very special models.

Sal – So, the experiments on extra dimensions cannot kill string theory?

Simp – No they cannot.

Sal – And if supersymmetry is not found at the scale we expect, we do not abandon string theory?

Simp – No we don't. It will be at a higher scale.

Sal – So, which experiment could kill string theory, in principle?

Simp – Nothing I could think off. The theory is very strong.

Sal – Seems to me is very weak. A good scientific theory is a theory that can be falsified.

Simp – I am not a philosopher ...

I'm rooting for Sal!

<comment><USER16> The author was pretty clear about who the protagonist was supposed to be...

<comment><USER17> Sal – I am reading a book, written long ago, where I just found this phrase: "perch`e i nostri discorsi hanno a essere sopra un mondo sensibile, e non sopra un mondo di carta." Roughly: "our arguments have to be about the world we experience, not about a world made of paper".</comment></comment></comment></comment>


Let's Bolt: low-level libraries designed to make developing mobile apps easier - <AUTHOR> http://blog.parse.com/2014/01/29/lets-bolt/ <comment><USER2> I actually wrote a promise library for iOS (and didn't release it). The postmortem is here: [http://sealedabstract.com/code/broken- promises/](http://sealedabstract.com/code/broken-promises/)

The tl;dr is that you can run into trouble on the iOS platform if you don't enforce a strict 1:1 chain of cause/effects and are very careful about the timing of adding new links to the chain.

This library doesn't appear to do that, and they appear to consider this a feature, and actively push you in that direction. For example, a bullet in the readme is that tasks are "fully composable" and another bullet point discusses adding new tasks to the tree on-demand. These can work on some platforms, but iOS isn't one of them, and so this really reads like someone familiar with JS or .NET trying to add "missing" functionality to iOS without considering why these patterns are not generally used on iOS. Plus, it's trying to achieve API similarity with Android, which is a code smell.

So I would really advise against using this library, at the very least use it a in a superficial way that would be easy to tear out later. If you really want to do this promises thing, I would push you toward Reactive Cocoa, which I am also skeptical about but it's been around much longer, seems to have a much more mature API, and I know at least some smart people who've used it successfully.

<comment><USER3> It really sucks that this is the top comment. To use the cliche: This is why we can't have nice things.

Please consider the following as a more frank replacement tl;dr:

"My promises implementation didn't work out _for me_. Maybe I just didn't go about it the best way, but judge for yourself by reading about my individual experiences, references from 70's papers, a bunch of 'what ifs', no code, no benchmarks, no constructive alternatives, and repeated use of 'we' instead of correctly using 'I'."

Is the above unfair? Maybe somewhat, but if so only as unfair as your representation. I enjoyed your GC article, but any good points to take from "Broken Promises" (or your above comment) are impossible to see through the thickness of pejoratives.

<comment><USER2> This probably isn't the right place to discuss the article, but I don't think your summary is either accurate or applicable. For example, the article does include code, it does provide constructive alternatives, it goes well beyond my experience by outlining a general proof for why the problem I was working on is theoretically intractable, it was hacked on by multiple people (hence "we"), and so on.

Even if that list of criticisms were accurate, the correct response to an article that has "no code, no benchmarks, no constructive alternatives" is to respond with code, benchmarks, and constructive alternatives. What you do here is essentially say "Because this does not meet some threshold of evidence I can ignore it" instead of what rational people say, "I should collect better evidence but in the meantime let's rely on the evidence that is available".

Finally, you don't really state an articulable position on the actual issue, so the discussion does not really advance. My position is pretty clear: promises work on the platform if and only if there are particular guarantees, and the README of this project explicitly says you don't get those guarantees, ergo this library is trouble. Clearly you object to this position but you do not say, let alone defend, any alternative theory that would have predictive power over whether or not promises will work for a project and for that reason, the comment does not add anything to the discussion.

<comment><USER3> > This probably isn't the right place to discuss the article

yeah, you're probably right.

</comment></comment></comment></comment><comment><USER4> This first "Bolt" is effectively a port of .NET's Task Parallel Library to iOS / Android. Even down to the method names (trySetException).

I may be biased, but if you're writing a complex app, you'd do better to get thee to:

* [https://github.com/Netflix/RxJava](https://github.com/Netflix/RxJava)

* [https://github.com/ReactiveCocoa/ReactiveCocoa](https://github.com/ReactiveCocoa/ReactiveCocoa)

<comment><USER5> Lots of people are rediscovering Functional Reactive Programming piecemeal on various different platforms. I agree with you that it is best to skip the piecemeal stuff and go directly to Reactive Extensions and its various ports such as the two links you mentioned. And for iOS/ReactiveCocoa, there is a good book on the topic [https://leanpub.com/iosfrp](https://leanpub.com/iosfrp)

<comment><USER6> These libraries have nothing to do with FRP, even Rx stops at just event streams that precede FRP by many years; reactive cocoa seems to be that plus some form of data binding. I'm not even sure if calling it impure FRP is correct.

</comment></comment></comment><comment><USER7> This looks like a step in the right direction. In previous HN discussions, Facebook's approach to mobile app development hasn't gone over so well:

Dalvik patch for Facebook for Android | [https://news.ycombinator.com/item?id=5321634](https://news.ycombinator.com/item?id=5321634)

      > I can't believe an app requires 8M RAM just for method names!

      > They actually did have the stonkingly huge arrogance to monkey patch the OS

      > Basically these engineers decided to be really clever, painted themselves
      > into a corner, smashed a hole in the wall so as to escape from said corner,
      > and then bragged about how great they are.

Updated Facebook for Android requires "Retrieve Running Apps" permission | [https://news.ycombinator.com/item?id=5543363](https://news.ycombinator.com/item?id=5543363)

      > Is there any good reason they don't split the functionality to the
      > appropriate applications? Then maybe they wouldn't have to hack dalvik to
      > run a simple facebook client.

</comment><comment><USER8> This looks really similar to an anti-framework I've been working on for a long while for RubyMotion:

[https://github.com/mattgreen/elevate](https://github.com/mattgreen/elevate)

IMO, tasks are the real unit of composition for UI-facing apps: "do this, update the UI in that way, and do this if cancelled". It sure beats writing ad-hoc state handling code every time.

Edit: Bolt's idea of tasks is a lot smaller than Elevate's. Bolt seems to take a promise-esque approach, whereas Elevate combines futures (for I/O) and GCD. It appears Bolt is closer to ReactiveCocoa in spirit.

</comment><comment><USER9> For Android at least, the async tasks pieces seem very interesting, although a little verbose. I guess it can't be helped in Java though. If Android adopts Java 8's lambdas that should clean up nicely though.

<comment><USER10> Or you could try programming in Scala, though it's an awkward fit to Android. Scala's standard library is large enough to strain size limits on an Android app, to the point that shrinking things down with ProGuard is pretty much a requirement.

That said, using the tools of more modern JVM-based languages can tighten up your code in all sorts of ways. An experiment along those lines is here:

[https://github.com/rst/positronic_net](https://github.com/rst/positronic_net) [http://rst.github.io/positronic_docs.html](http://rst.github.io/positronic_docs.html)

</comment></comment><comment><USER11> How is [https://github.com/BoltsFramework/Bolts-iOS#chaining- tasks-t...](https://github.com/BoltsFramework/Bolts-iOS#chaining-tasks- together) better than using group_dispatch signaling?

The latter would give you cleaner code and get rid of any nested blocks.

</comment><comment><USER12> i think reactive task (JavaScript style promise) paradigm's are great for the mobile interaction use case. small segmented operations that async update the ui. block style coding mechanism are also nice because you can see the callback code next to the invoke. very interesting . seems like combining this with an JavaScript runtime would be even more powerful

<comment><USER13> Here at Brightcove, we have been using ReactiveCocoa internally in our new iOS SDK. We expose some ReactiveCocoa to the consumers, but not a whole lot yet.

Overall I love working with ReactiveCocoa. The guys at github run an open source project the way it was meant to be run and are extremely helpful.

One downside is that it makes debugging memory leaks/crashes/retain cycles more difficult but that will be inherent in any block based API. It is still worth using it though.

</comment></comment><comment><USER14> OK, admit it. You also thought it was a reference to "My So-Called Life," didn't you?</comment>


The best stats you've ever seen (2006) [video] - <AUTHOR> https://www.ted.com/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen#t-857742 <comment><USER2> (2006)

See also [https://news.ycombinator.com/item?id=373041](https://news.ycombinator.com/item?id=373041)

1,631 hits for "rosling" here on HN [https://hn.algolia.com/?query=rosling&sort=byPopularity&pref...](https://hn.algolia.com/?query=rosling&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

His website for presenting data: [https://www.gapminder.org/](https://www.gapminder.org/)

I also recommend (from Max Roser): [https://ourworldindata.org/](https://ourworldindata.org/)

</comment><comment><USER3> "Don't Panic – The Facts About Population" is probably the ultimate Rosling presentation. Highly recommended.

[https://vimeo.com/79878808](https://vimeo.com/79878808)

</comment><comment><USER4> Hans's charts show convergence of undeveloped countries towards the West's standard of living. Globalization basically.

This is a optimistic story but notice how the two largest wars in history are mere blips. Only China's Maoist revolutions show up as periods of significant radical decline.

Do not let the apparent stability of the gapminder presentation give you the impression our society is on an ever upward trend. That belief is one we need to snap out of and fast.

Major questions need to be asked of the past. There are serious holes in the hypothesis that everything is getting better and better.

Why is it half a century since men walked on the moon. Almost 50 years. That is a long time! Blah blah 'politics' doesn't cut it.

Why aren't new effective medicines being invented and why is the cost of production in drug manufacture doubling every nine years while the costs of discovery (genome sequencing and x-ray crystallography) have radically declined.

Why are the majority of people in Western society's not getting richer over the last two-four decades? The diversity of things to spend on has increased without a real increase in the quantity of money in the bank account and wallet.

Why did African decolonization result in epic (and ignored) failure? Today's states are _poorer_ by most metrics than they used to be half a century ago. Take a look at photographs of Egypt, South Africa and Zimbabwe from that time period. The difference is undeniable.

Why aren't prices declining for basic materials in house construction? During the housing boom up to 2008 (materials should have been expensive) basic materials were _cheaper_ than they are now. It seems like nobody is talking about basic supply & demand being inverted. You cannot explain this with economies of scale or price rigging cartels, there are limits to those things. Prices have doubled for basic materials while demand radically dropped in the interim (at least in my country, about 5k builds last year in the capital). Does anybody understand what the fuck happened here? A new build today must be > 300k as a result. We'll have an epidemic of homelessness if this continues for much longer.

I can point out lots of good things that happened in the last half century, such as the Net, it is just that major questions are utterly ignored by the media and happy-go-lucky TED talkers.

<comment><USER4> Here is another post which might go some way to explaining my defiance of the Nordic data-hero Mr Rosling:

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

I love Han's charts too, I do appreciate the significance of growth for the world over the past few centuries but I just can't sit and as one fellow said: "lie back and allow the movie of the future to unfold".

In the 70s with OPEC, the Club of Rome, there was a lot of feeling in the air that we were plateauing, even declining. That turned out not to quite be true, but nonetheless it was some kind of important inflection point where something started happening or stopped working. If 2008 was a similar inflection point then it is time to consider the possibility we may be going into a stall ([https://en.wikipedia.org/wiki/Stall_%28engine%29](https://en.wikipedia.org/wiki/Stall_%28engine%29)) instead of progressing.

</comment></comment><comment><USER5> site requires javascript, here is link to plain video:

[http://video.ted.com/talk/stream/2006/None/HansRosling_2006-...](http://video.ted.com/talk/stream/2006/None/HansRosling_2006-320k.mp4)

</comment><comment><USER6> Funny: went to his site tho find out if he does more details on how he make so beautiful graphs, and the "labs" link has a error in database connection:-)

Does he use some specific developed software tho do his graphs and animations?

<comment><USER2> See [https://en.wikipedia.org/wiki/Trendalyzer](https://en.wikipedia.org/wiki/Trendalyzer)

<comment><USER6> Thanks! I'll try to use the API...

</comment></comment></comment><comment><USER7> Can we capitalize Rosling and add (2006) in the title?

<comment><AUTHOR> Sorry. Obviously I should have done that already when submitting, but I guess I did not think too much. I do not seem to be able to make the edit (not enough karma?)</comment></comment>


Pessimal Algorithms - <AUTHOR> http://www.cse.ohio-state.edu/~yusu/courses/780/pessimal.pdf

<comment><AUTHOR> I'm just going to quote this early part of the document as it summarizes the goal of pessimal algorithms - to design a program to always get closer, but as slowly as possible.

"Of course, we can get very slow algorithms by adding spurious loops before the first test of X against the Ai . However, such easy solutions are unacceptable because any fool can see that the algorithm is just wasting time. Therefore, we must look for an algorithm that does indeed progress steadily towards its stated goal even though it may have very little enthusiasm for (or even a manifest aversion to) actually getting there."

Zeno would be pleased.</comment>


The Great Brazilian Sat-Hack Crackdown - <AUTHOR> http://www.wired.com/politics/security/news/2009/04/fleetcom CAMPINAS, Brazil — On the night of March 8, cruising 22,000 miles above the Earth, U.S. Navy communications satellite FLTSAT-8 suddenly erupted with illicit activity. Jubilant voices and anthems crowded the channel on a junkyard's worth of homemade gear from across vast and silent stretches of the Amazon: Ronaldo, a Brazilian soccer idol, had just scored his first goal with the Corinthians.
It was a party that won't soon be forgotten. Ten days later, Brazilian Federal Police swooped in on 39 suspects in six states in the largest crackdown to date on a growing problem here: illegal hijacking of U.S. military satellite transponders.
"This had been happening for more than five years," says Celso Campos, of the Brazilian Federal Police. "Since the communication channel was open, not encrypted, lots of people used it to talk to each other."
The practice is so entrenched, and the knowledge and tools so widely available, few believe the campaign to stamp it out will be quick or easy.
Much of this country's population lives in remote areas beyond the reach of cellphone coverage, making American satellites an ideal, if illegal, communications option. The problem goes back more than a decade, to the mid-1990s, when Brazilian radio technicians discovered they could jump on the UHF frequencies dedicated to satellites in the Navy's Fleet Satellite Communication system, or FLTSATCOM. They've been at it ever since.
Truck drivers love the birds because they provide better range and sound than ham radios. Rogue loggers in the Amazon use the satellites to transmit coded warnings when authorities threaten to close in. Drug dealers and organized criminal factions use them to coordinate operations.
Today, the satellites, which pirates called "Bolinha" or "little ball," are a national phenomenon.
"It's impossible not to find equipment like this when we catch an organized crime gang," says a police officer involved in last month's action.
The crackdown, called "Operation Satellite," was Brazil's first large-scale enforcement against the problem. Police followed coordinates provided by the U.S. Department of Defense and confirmed by Anatel, Brazil's FCC. Among those charged were university professors, electricians, truckers and farmers, the police say. The suspects face up to four years and jail, but are more likely to be fined if convicted. <comment><USER2> If you can triangulate them then the solution seems fairly simple: automate the triangulation, and have a pre-recorded voice respond to transmissions randomly with a stern command in Portuguese: This is the United States Navy. You are transmitting on a restricted channel. Your location is _blah_. Cease communication via this channel immediately or we will take appropriate measures to protect our national security.

I think it would be more effective if you made the monitor random than if you made it deterministic and perfectly effective. If every transmission got the reprimand, it would sound like a joke. If it happens infrequently enough then the users will react like OH MY GOD THE FLOORBOARD IS CREAKING HOLY "#$"& THERE ARE MARINES OUTSIDE MY WINDOW. (Google "panopticon". Yay, I actually learned something in literary criticism!)

Incidentally: even if you can't triangulate them accurately, I'm going to bet that an illiterate truck driver told he was broadcasting from 38.89767 N, 77.03655 E would believe you. Even though he is most probably not attempting satellite piracy from the Oval Office.

<comment><USER3> Brilliant strategy. I remember a few years back a port scan of NSA.gov would give a stern "THIS COMPUTER SYSTEM IS PROPERTY OF THE GOVERNMENT OF THE UNITED STATES OF AMERICA. UNAUTHORIZED ACCESS WILL BE PROSECUTED."

As a twelve-year-old messing with netcat for the first time, it terrified the s!&t out of me.

<comment><USER4> Unfortunately Brazilians are not scared 12 year olds, and would probably not be so concerned with a pre-recorded warning that has little chance of actually effecting them (who's going to track down some random logger talking soccer with a buddy?)

<comment><USER5> Anatel and the Navy, according to the article.

<comment><USER6> They should fear Anatel. The US Navy has no authority here.

</comment></comment></comment></comment></comment><comment><USER7> If a bunch of impoverished Brazilians can use these satellites to communicate, is a Denial of Service possible if organized by a well funded group? I admit I don't know as much about this type of technology as I would like. I assume they could saturate every frequency?

Also, a thought to fix this problem. How much money do you think the US is going to spend to try to crack down on the hijackers? How much money do you think it would take to build a decent infrastructure to remove the motivation of hijacking? The numbers certainly are not equal, but they're probably closer than you'd think.

<comment><USER8> Impoverished? Brazil is actually a middle-income country, with the South and Southeast rapidly approaching european income levels. Brazil has 190 million people and 150 million cellphones. Most of the population lives near the Atlantic coast in large metropolitan areas.

<comment><USER7> I'm very well aware of Brazil's economic status as a country. I wasn't seeking to comment on the country as a whole, simply the segment of the population hijacking signals. I stand by my statement that this segment of the population has very little resources in the grand scheme of technical attacks. Seems as if you were looking for something that wasn't there.

<comment><USER6> Believe if I say the Brazilians who are doing this are not "impoverished". They just found a freebie and many of them don't even know they shouldn't do it.

As for the military implications, I don't know why the hell those birds were not DoS'ed before. If a couple clever civilians figured that out, I can't believe no bad guy ever tried that.

How effective a DoS on those satellites would be on denying US-Navy fleetwide communications?

Actually, I assume badguys are already using those satellites for short bursts of encrypted data that looks an awful lot like navy traffic sent via very narrow beams the satellite (and ground people) have no hope of finding where it came from.

Perhaps, instead of cracking down, the Navy should call the NSA and listen more carefully to what is being transmitted.

</comment></comment></comment></comment><comment><USER8> This is why Brazil has the safest banking system in the world: Brazilians are unruly and the police is ineffective.

<comment><USER9> Could you elaborate on what you mean here? Eg do you mean that if a bank flubs, they'll have a riot, so they take care to do things right?

<comment><USER8> I mean that because of past economic troubles, the whole system was integrated in the 80s. You can easily transfer between any two banks in any point in the country. The banks are also responsible for the safety of their ATMs and internet services so if your account is hacked, it's their responsibility and therefore they make sure it's safe (unlike in England where it's the customer's responsibility and the banks don't take security as seriously as they should). My card number was stolen once, and my bank immediately rolled back all the transactions the crooks had made. Also, if your bank goes under, your money is insured, but they rarely do because they are tightly regulated by the central bank. To sum it up: because we had so much economic turmoil, we ended up with a very safe banking system in both financial and technological terms.</comment></comment></comment>


Ask HN: What to prioritize if everything is impermanent - <AUTHOR> if impermanence is the nature of life and everything in it what are somethings that one should focus one and why ? <comment><USER2> Mindfulness.

By seeing things as they truly are, we can see that universal impermanence is poetry.

The poem is burnt, the sand-mandala blown in the wind, the code is deleted.

It is not the making, but the practice of making, that gives meaning.

I want to be wiser, physically more fit and more mindful every day. I want to be more vulnerable and more aware. I want to care less about outcomes and more about processes.

Excercise, meditate and make cool things on Github. Haha.</comment>


A better approach to determining gender from a first name - <AUTHOR> http://genderize.io <comment><USER2> Please just don't.

There is no point antagonising people by guessing information about them wrongly - particularly if it's something they've become sensitised to by it occurring frequently.

If you need to know someone's gender (and largely, you don't), then ask them.

<comment><USER3> It also assumes two distinct genders which is a fallacy.

<comment><USER4> Sure, but that doesn't preclude it from being a useful metric for something like ad targeting.

<comment><USER5> It does exactly that. Don't look for natural metrics in an artificial universe.

</comment></comment></comment></comment><comment><USER6> > {"name":"marijn","gender":"female","probability":"1.00","count":1}

Except, of course, that I am male. My name is used for both genders. The thing completely failed on a few other ambiguous names I tried. I'll second AndrewDucker's opinion—just don't.

<comment><USER7> The same goes for the following, a name used for both genders in Italy:

{"name":"maria","gender":"female","probability":"1.00","count":700}

<comment><USER8> failed with my name, too.

{ "name": "kay", "gender": "female", "probability": "0.93", "count": 57, "country_id": "US", "language_id": "en" }

<comment><USER9> How is that a "fail"? The probability is listed as 93%.

<comment><USER10> 100% of probability doesn't make it a certainty either.

</comment></comment></comment></comment></comment><comment><USER11> Interesting from a machine-learning perspective - but this strikes me as a solution looking for a problem.

If any service needs to know gender (and I'm having a hard time thinking of times you NEED to know gender - dating sites?) - why not just ask? surely in a situation where you're reliant on having accurate gender information, guessing from $firstname and getting it wrong is worse than asking.

<comment><USER12> Why not just ask? More form fields means less conversions. Using the service one can ask for the gender later during the registration process only if confidence in the sex detection is lower then a defined threshold.

<comment><USER13> You don't need to know the data for most things. The times you do (dating sites etc.), you need it to be accurate and should ask explicitly.

</comment></comment></comment><comment><USER14> I'm sure this is interesting from a statistical point of view, but does the tech scene really need yet more reinforcement of a binary view of gender?

<comment><USER13> You want an enlightened view of the complexity of sensitively handling transgender people, non-binary genders and other gender and sexual minorities?

This is Hacker News. Such enlightened thought is frowned on by our new brogrammer overlords. Here's your beer.

<comment><USER15> Wow, that's misplaced hostility.

If you wanted to deride the fact that many folks here won't spent multiples of effort on special, experimental, no-right-answers-and-likely-to-be-criticized- for-it-if-you-even-try cases that affect minuscule fractions of their potential user base, well...get in line behind the IE5 advocates, I guess.

Someone recommends using a free form entry for gender. No amount of normalization will fix the "ham sandwich" entries (except that we know they are nearly all male), so you'd trade the integrity of a small percentage of your data for the appearance of "making an effort" for the vanishingly small percentage. Net fail.

Just to be clear, my primary feeling here is that -- in the hypothetical case where gender matters -- you're best served by keeping it simple: (female | male | other/it's complicated | prefer not to answer). This should serve all cases equally.

<comment><USER14> ah yes, because trying to be decent & inclusive to persecuted minorities is the comparable to supporting an obsolete browser - yr analogy is a perfect illustration of the grotesque intersection between the Valley & bigotry.

also, "the hypothetical case where gender matters" is a glorious illustration of straight privilege

<comment><USER15> > a glorious illustration of straight privilege

Gender has nothing to do with orientation. Please don't propagate such normative misunderstandings.

If I may restate for clarity: in most cases of software implementation, a user's gender is not important data (obvious exceptions include medical and related fields).

Generally, gender should not be requested. Where requested, it should not be required. Where required, one should have no compunction against answering randomly.

That's prerogative, not privilege.

<comment><USER14> opted for "straight privilege" as an alternative to "cisprivilege"that I thought HN people were more likely to understand. I'd have thought it was obvious I wasn't actually talking about orientation

</comment></comment></comment></comment></comment></comment><comment><USER16> The "probability" return value appears to be a straight average; it returns 1 for "Peter", which is almost guaranteed to be incorrect - all it takes is a single female Peter, anywhere on the planet.

A better approach, in the absence of more complex models, would be to use Laplace's sunrise formula.

<comment><USER17> You're kidding right? Guessing gender for a "show hacker news" with a .io domain is a clear case of "done is better than perfect."

<comment><USER18> Adding 1 to the numerator and 2 to the denominator is a trivial improvement, not pie-in-the-sky whiteboarding that prevents you from shipping.

<comment><USER17> Yes, to fix the "girls named Larry" bug.

</comment></comment></comment></comment><comment><USER19> In morphologically rich languages (like Russian) the most discriminative feature for detecting gender could be the word shape of last name or middle name, not the first name. So in many languages there is no way to have meaningful gender prediction by analyzing just the first name. Relative gender frequency for the first name is an useful information, but it is just not enough for reliable gender prediction.

</comment><comment><USER20> I guess it needs a better training DB, it returns {"gender": null} for not-so- common names in languages other than English...

[http://api.genderize.io/?name=eloi&language_id=ca](http://api.genderize.io/?name=eloi&language_id=ca)

[http://api.genderize.io/?name=tomeu&language_id=ca](http://api.genderize.io/?name=tomeu&language_id=ca)

[http://api.genderize.io/?name=rigoberta&language_id=es](http://api.genderize.io/?name=rigoberta&language_id=es)

[http://api.genderize.io/?name=presentaci%C3%B3n&language_id=...](http://api.genderize.io/?name=presentaci%C3%B3n&language_id=es)

Credit for distinguishing between names in languages, though! Joan returns female in English, but male in Catalan.

</comment><comment><USER21> This project is a fine example of the "Falsehoods Programmers Believe About Names" [http://www.kalzumeus.com/2010/06/17/falsehoods- programmers-b...](http://www.kalzumeus.com/2010/06/17/falsehoods-programmers- believe-about-names/)

</comment><comment><USER22> Bear in mind that in some languages this problem doesn't exist. In Polish for example, all female names end with an "a". There is not a single exception from that rule, so if you see a name ending with an "a" it is always a female name.

<comment><USER23> And in Iceland you can reliably determine gender from a person's second name, ending in either -son or -dottir.

<comment><USER24> Yes, but probably there are people in Iceland and Poland with foreign names. I know that you both wanted to explain that there is a rule in some language and it's nice to find out about that information, but as long as it doesn't apply to everybody, I don't consider this a solution.

<comment><USER22> In Poland you cannot give children foreign sounding names. So unless we are talking about foreigners visiting,then it does apply to everyone. Like I don't know a single person to whom that rule would not apply.

</comment></comment></comment></comment><comment><USER25> I thought Hackers News had more people speaking more/other languages than english.

A lot of complaints, excluding the binary gender complaints, totaly forget about how languages like portuguese / french have male / female differences for nouns and other language constructs.

Let´s say I have to build a phrase where I have the user profession like engineer and I don't know upfront, for portuguese male would be "engenheiro" or " engenheira" for female. It does have a lot of practical uses. And with a big enough training, the decision to use for that user is on your hands.

</comment><comment><USER26> For Icelandic names, it's easy to identify the gender by looking at the last name. For example Bjarni Benediktsson is definitely male while Katrín Jakobsdóttir is definitely female.

Another strategy is to use gender-neutral terms until you find out the gender, as asking directly might be considered rude in some cultures.

<comment><USER27> Is the first name in Iceland the family name or is there something else going on here?

<comment><USER28> I'm just guessing, but..

"Benedikt-SSON is definitely male while Katrín Jakobs-DÓTIR is female"

(Hey, I swear it was before taking a look [http://en.wikipedia.org/wiki/Icelandic_name](http://en.wikipedia.org/wiki/Icelandic_name))

</comment></comment></comment><comment><USER29> Doesn't know my name. [http://api.genderize.io/?name=timofei](http://api.genderize.io/?name=timofei)

</comment><comment><USER30> { "name": "петя", "gender": "female", "probability": "1.00", "count": 1 }

Yeah, how about no.

</comment><comment><USER31> I like this from a usability standpoint. Just as some forms auto-fill the city/state based on the zip (and might get it wrong), this enables something similar. And it might get it wrong, but if your mom gave you a girl's name* blame her.

It also seems accurate:

Pat = about 50/50 David = All man Jessica = All woman

Also, wrt to "binary gender identity" complaints, are we all college freshmen here?

* my own name (Nord) sucks and gave a gender of null. Spent my whole life being called Nerd, Nora, etc. I'm not flipping out.

<comment><USER32> > wrt to "binary gender identity" complaints, are we all college freshmen > here?

We aren't, which is exactly why it's a problem.

<comment><USER31> Nobody is saying a form can't have "other", etc. as an option. Just that someone's MVP that guesses gender is allowed to do that without political- correctness police.

I fail to see how this API needs to accommodate transpeople in its 0.1 release.

<comment><USER21>
      I fail to see how this API needs to accommodate transpeople in its 0.1 release.

You have failed at empathy.

Speaking to the fluidity of human gender, "Other" is the majority of the spectrum and defaulting to binary is just as naïve as defaulting to ASCII as expected input in an application/API written in 2013.

Restricting yourself that early in the release cycle (and I'm still dubious of the merits of this project), doesn't bode well for its future.

Edit: I just read your comment history and, if I'm not mistaken, you're already biased. Or would you care to elaborate what you wrote here? [https://news.ycombinator.com/item?id=6451454](https://news.ycombinator.com/item?id=6451454)

<comment><USER31> >> Speaking to the fluidity of human gender, "Other" is the majority of the spectrum

I agree 100% about the fluidity of human gender, but rather than lecture people via a form/api etc. it is probably simplest to have words that most people use like male and female and something ("other", "trans", "enlightened", whatever) for the 3rd option.

>> I just read your comment history and, if I'm not mistaken, you're already biased. Or would you care to elaborate what you wrote here? [https://news.ycombinator.com/item?id=6451454](https://news.ycombinator.com/item?id=6451454)

First of all that was a joke in the spirit of the Hangover 2. Might not have been that funny, but was an attempt at humor based on what it was responding to.

Secondly, I believe you are "biased" :) because though it is chronologically juxtaposed to this comment that's probably a coincidence because if you go through my comment history it might be the only one touching on the subject (I think, no guarantees).

edit - I did make a prison rape joke a year+ ago ([https://news.ycombinator.com/item?id=4148572](https://news.ycombinator.com/item?id=4148572)) but I actually heard from people that it was hysterical* because of the play on "backbone".

* hysterical is a sexist word, I know.

<comment><USER21>
      it is probably simplest to have words that most people use like male and female and something...

The simplest is a text field with: "What prefix would you like us to use?" The End.

There are no assumptions, no assignment of labels, not one bit of imposing your cultural norms on anyone else. The hardest part of getting over biases is acknowledging that you have them.

Learn some sensitivity, please.

<comment><USER31> I'm either being trolled or bullied here.

A text field adds time to type out (which can lose customers, alienate handicapped etc.), all to accommodate an exception, rather than a rule.

I don't care if you have a slider, dropdown, circle, whatever, but for usability, a gender option should have poles that require 0 or 1 clicks to get to (though a text-field for further elucidation is okay). Continuing down this path, the further step is saying a shoe-size option insults amputees and lymphedema victims and should be a text-field...

Edit - Another fact is that the person filling out this form might not be the person described by the form (say for a CRM tool) in which case it matters more to KISS.</comment></comment></comment></comment></comment></comment></comment>


Introducing Pinry, a self-hostable Pinterest. - <AUTHOR> http://overshard.github.com/pinry/ <comment><USER2> I'm getting into Pinterest, trying to figure out what the sharing, socializing, and marketing opportunities are over there. Some of those members have millions of followers. Amazing. It's like having your own private newspaper.

But heck if I want to spend my time creating yet more content for some other third-party to make money on. So I can kind of see what they're getting at here.

What I decided to do was create a blog just for new stuff I'd share on Pinterest. I post to my blog and then pin from my blog. ( shameless plug: <http://i-heart.us/> Note this is mostly just Amazon affiliate stuff but I already have another blog dedicated to just interesting pictures <http://caption-of-the-day.com>)

I think if you could automate _that_ process, where instead of pinning you'd post on your own account and then pin, you'd get the best of both worlds. Having your site look and feel like Pinterest would be bonus points.

I like this idea a lot. To me having finer control over your own content is a much more important feature than nailing an exact Pinterest clone.

<comment><USER3> You can make money on Pinterest as well: [http://www.dailydot.com/news/pinterest-steve-amazon- spammer-...](http://www.dailydot.com/news/pinterest-steve-amazon-spammer- tells-all/).

I couldn't get Amazon referral links to work at first, but if you use amzn.to, your referral is preserved. :)

(I'm not saying you should spam the site, but it is possible to get credit for referring people from your pins.)

<comment><USER4> The guy in that article you cited turned out to be a liar. See the follow-up: [http://www.dailydot.com/news/pinterest-scammer-hoax- controve...](http://www.dailydot.com/news/pinterest-scammer-hoax-controversy/)

<comment><USER3> Interesting, thanks. Maybe Pinterest just don't "sanitize" shorturls yet.

</comment></comment></comment></comment><comment><USER5> "Because I don't like sharing."

I think you missed the point of Pinterest. This is to Pinterest what iPhoto is to Facebook.

But I'll be honest, I was first interested in Pinterest because I thought it would be a lovely bookmark aggregator. This does that pretty well from the look of it, but it's definitely a self-hosted image bookmarker with a Pinterest-esque interface, rather than a self-hosted curated web.

Might be splitting hairs over a title, but the difference is significant.

<comment><USER6> _I think you missed the point of Pinterest._

If you like the point of Pinterest, use Pinterest. If you just like the look of Pinterest, you can use Pinry.

<comment><USER7> Pinterest has recently banned pro-Ana/Mia pins.

I could see something like Pinry being useful for creating communities that respect freedom of speech / information / image posting, so long as the content is not illegal.

<comment><USER8> A search for "thinsperation" shows they're not doing a very good job of it.

I know (many) people with anorexia. They are amazing at hiding stuff. (Fishing weight shot sewed into bras; heavier weight sewed into hair scrunchies. This made the weekly weigh-in easier to pass while still starving.)

I'm glad Pinterest has made the gesture, but they'll never win.

</comment></comment></comment></comment><comment><USER9> Great to see this. I created Wookmark and it's a nice compliment that Pinry is inspired by it. Now let's see what I can learn from Pinry...

</comment><comment><USER10> Phantomjs (<http://phantomjs.org/>) is a nice headless webkit browser that can be used to generate screenshots of entire pages (or clipped portions). It's got a nice API and a reasonably straightforward install. I've also heard good things about ghost.py (<http://jeanphix.me/Ghost.py/>). These might be handy if you can't find a good image.

</comment><comment><USER3> I can't find it if there is one, but it'd be great to have an example site.

<comment><AUTHOR> There is none and I don't plan on creating one. I understand why you want one but I don't want to bother with hosting a dynamic website that I would have to manage. (Rather spend the time improving the app itself.) I include a screenshot and an example is wookmark or pinterest's websites. It functions like those. If you want a demo of this exact app then clone it and run it. It's free and open source!

<comment><USER11> > I don't want to bother with hosting a dynamic website that I would have to > manage.

Out of curiosity, after once deploying it, what're some responsibilities that entail from hosting a dynamic website vs. a static one? Isn't it basically a matter of writing (/copying a good one and retrofitting) a fabric script, perhaps doing just a few things with some Apache/nginx config files, and just putting it up? What exactly makes it more hands-on post-launch?

I had been under the impression that this process would not take more than a few hours by itself.

</comment></comment></comment><comment><USER12> Awesome! If I get some time I might hack this up into some type of self-hosted evernote thing. I just started using evernote and it's nice but most of my notes are pictures/sites and this looks to be a great fit.

Kudos!

<comment><AUTHOR> That's actually partially what I'm trying to do! I mostly just bookmark a lot of random sites and images and wanted an quick-view Pinterest like interface to put on top of that. If you create some nice features please pull-request. I'll gladly take a look.

</comment></comment><comment><USER13> I really like this, I'm looking forward to digging through the source and finding out how folks set up their django apps.

<comment><USER14> I came here to comment just this. I downloaded it for fun and was stoked to see manage.py! Interesting indeed to explore others' conventions. I particularly like settings as a module.

One thing I tend to avoid, however (of course this is just my personal taste) is templates in each sub-app. I feel like at that point there are just too many nested directories. I'd rather have one global templates dir for the entire project.

<comment><AUTHOR> I often-times argue with myself over this. I do agree that one global template dir is nice but it makes the apps less copy-and-paste-able and I feel like Django apps were meant to be somewhat self-contained.

However, sometimes you have so many cross-links between apps in Django projects that taking out a single app to use in another project basically breaks most of the functionality.

There are big pros and cons for doing it either way.

<comment><USER14> How often do you take an app, drop it somewhere, and never modify it? I stick to "my way" because I always end up modifying the hell out of templates.

</comment></comment></comment></comment><comment><USER15> Very cool, I already adapted Pinry to a direct PHP/MySQL implementation, as I'm not a Django user (yet). Applying the new UI to <http://www.myinfoq.com/> to make it easier to discover information about your interests and should help as a demo/reference site. Thanks overshard, hope I can contribute back to the community. @dugald3

</comment><comment><USER16> You should do a one click deploy and charge subscription fees. Sort of like wordpress.

</comment><comment><USER17> At first I thought this was to Pinterest what Yammer is to Twitter (i.e. a private ecosystem that companies can use, etc). But now I see that it is only for one person's images.

<comment><AUTHOR> Actually it uses the built in Django auth system, it has a registration page and everything already. You can have multiple people with accounts posting stuff on here if you wanted to expand it to multiple people in a company.

I'll create an issue to expand in this direction a bit though, great idea!

EDIT: Issue created here <https://github.com/overshard/pinry/issues/6>

</comment></comment><comment><USER18> I have been getting a error when I attach a new pin IOError at /pins/new-pin/ /Users/User_Name/Documents/pinry/media/pins/pin exists and is not a directory.

<comment><USER19> At the very least, ~/Documents is non-standard. I would hope it's configurable.

<comment><USER20> That'll be where nikunjk installed pinry. Pinry saves the files into <pinry>/pins/pin.

</comment></comment></comment><comment><USER21> If you don't like sharing, and don't want to self-host, there is also <http://www.clipboard.com>

<comment><USER22> Clipboard also allows you to clip almost arbitrary parts of web pages (text, images, embeds) with the style and most functionality preserved. See <http://www.clipboard.com/site/ycombinator.com> for examples of things clipped from Hacker News.

Disclaimer: I am the founder of Clipboard.com.

</comment></comment><comment><USER23> Side note, these github templates look beautiful.

<comment><USER24> agree

</comment></comment><comment><USER25> Very nice work.

</comment><comment><USER26> Can you put up a demo?

<comment><AUTHOR> No, I rather not deal with hosting/curating a demo site for something I advertise as being "self-hosted" and work on developing the item itself. Look to wookmark or pinterest websites, it works very similar to them.

You can also clone it and have your own demo up and running very fast.

</comment></comment><comment><USER27> Copyright is all-rights-reserved, but he's willing to let people host this and run it themselves?

?_?

<comment><USER28> The code is BSD licensed, you can modify and distribute it as you wish.

<https://github.com/overshard/pinry/blob/master/LICENSE>

<comment><USER27> Not used to seeing it without a header. Thanks.</comment></comment></comment>


Cassandra: Fact vs fiction - <AUTHOR> http://spyced.blogspot.com/2010/04/cassandra-fact-vs-fiction.html

<comment><USER2> Based on our usage, I think Thrift is the Achilles' heel for Cassandra. Some of Trift problems that we've seen:

* simple port scan can crash Thrift.

* Malform data can crash Thrift.

* inserting data too fast can crash Thrift.

Any of the 3 above cause NoServersAvailable error.

That said, do you guys have road-map for replacing Thrift? Apache Avro perhaps? Are there anyone actually happy with Thrift (besides Facebook)?

<comment><USER3> This is in the Summer Of Code roadmap:

[http://spyced.blogspot.com/2010/03/cassandra-in-google- summe...](http://spyced.blogspot.com/2010/03/cassandra-in-google-summer-of- code-2010.html)

</comment></comment><comment><USER4> Yeah I like this guy's tech-stuff-plus-marketing style, still it would be more honest to at least mention points where Cassandra has its rough edges (and it has quite amount of them)

<comment><USER5> This isn't "intro to cassandra 101," this is just fud busting.

</comment></comment><comment><USER6> Maybe off-topic but does anyone know of a Cassandra hosting service? I'd love to try out Cassandra and hopefully put it to production use but I'd rather not deal with managing the servers.

<comment><USER7> I don't know about putting into production, but it took me a couple minutes to get a 4-node cluster as virtual servers under Debian and OpenVZ. It's very, very easy.

</comment></comment><comment><USER8> Seems pretty biased. What about the flip side of this article?

</comment><comment><USER9> Clever marketing: include the objections which are false, ignore those are true.

<comment><USER10> what objections are true?

(i've not seen them raised anywhere?)

<comment><USER9> I meant this comment in a positive way: I genuinely think this is smart marketing.

I think the real objections would be things like (and I'm not necessarily saying these are true/false, just that they're the ones that people should really be thinking about):

* Are NoSQL databases the object databases of the modern era?

* Is our pain big enough that we're willing to be a guinea pig for any new technology?

* How will making this technology choice impact our future ability to hire and to work with future technologies?

* Is this the right time to adopt a new database, or will the world be so different in 3 months that we should limp along until then?

From my viewpoint (@ FathomDB), that last point is the most interesting. We're seeing the start of NoSQL convergence; I expect both rapid development and serious teething issues. We see FathomDB & VoltDB announcing early availability of scalable relational databases. Rackspace hired the core of the Drizzle team, so this project will likely start to bear more fruit. To borrow from the wife-selection problem, it feels like immediately getting married to the first attractive person you meet on your first day at college, when there's a freshman mixer that evening.

<comment><USER11> None of these can be definitively affirmed or rejected by facts.

They're interesting questions but they're either unanswerable (time, oodb) or entirely application dependent (pain, hiring).

<comment><USER12> Nor are they "objections".

<comment><USER9> They're certainly fairly big reasons not to use Cassandra, and as such I'd put them in the objections bucket. If you're objecting to the fact that I phrased them as questions, just pretend we're on Jeopardy :-)

<comment><USER13> No they're not, a "big reason not to use Cassandra" would be "it has critical bug X" or "it's missing critical feature Y".</comment></comment></comment></comment></comment></comment></comment>


Artisanal Framework Design - <AUTHOR> http://evolvingtrends.wordpress.com/2013/03/17/artisanal-framework-design/

<comment><USER2> There is no a thing as code-pollution since every program written express the genius of someone in at least some particular area which can be useful for anyone. NIH Syndrom is not a shame, it's not shame to reinvent the wheel, it is the way of learning, it is the way of rethinking problems and providing new solutions which at least solve the problem for the one who created it. No footballers learn football/soccer only by watching other programs kicking the ball.

Writing software is never a shame. Some softwares are successful but one should dive the ins and outs to understand their success. Some have historical power like Windows or in the hardware space QWERTY keyboard, or marketing power like Apple and Intel. Another comparison would be to compare software to languages not computer languages, Latin was codified by _some_ people, English by _the_ people, and I think everybody will agree that English is easier to learn and speak than Latin. Todays softwares are Latin. While still remaining as useful and as powerful.</comment>


Setting Emacs theme based on ambient light - <AUTHOR> https://matthewbilyeu.com/blog/2018-04-09/setting-emacs-theme-based-on-ambient-light <comment><USER2> I've had this in my vimrc for a little while:

      let hr = (strftime('%H'))
      if hr >= 17
          set background=dark
      elseif hr >= 7
          set background=light
      elseif hr >= 0
          set background=dark
      endif

Using a light sensor would be cool, but I actually work from a desktop PC most of the time, so no sensor. I guess the next best thing would be something like f.lux does: query some web service for the sunset time at your current location.

<comment><USER3> It is possible to purchase a small USB lux meter:

[http://www.yoctopuce.com/EN/products/usb-environmental- senso...](http://www.yoctopuce.com/EN/products/usb-environmental- sensors/yocto-light-v3)

I use one to automatically adjust the brightness of my Dell display.

<comment><USER4> what display and how do you control your display from your PC?

<comment><USER3> I have a Dell P4317Q, a great 43 inch display, and control it from my Mac with ddcctl: [https://github.com/kfix/ddcctl](https://github.com/kfix/ddcctl)

</comment></comment></comment></comment><comment><USER5> There is also circadian.el to change themes based on sunset and sunrise.

[https://github.com/guidoschmidt/circadian.el](https://github.com/guidoschmidt/circadian.el)

</comment><comment><USER6> I really like this idea, it's something I've been wanting to try out for a while now.

I'm curious if using `run-with-timer` causes any performance issues in emacs. If so one option is to watch the value outside of emacs and then change the theme using `emacsclient -d "(load-theme 'my-dark-theme t)"` from the script.

<comment><USER7> It looks like it could; the timer isn't the problem (they're just entries in a queue), but #'shell-command-to-string call might be. It's a synchronous, blocking call (at least on my Emacs 26, running (shell-command-to-string "sleep 5") hangs the whole Emacs nicely for 5 seconds).

Personally, I'd reimplement it the way you suggest - I'd put the timer loop in C code to save on repeatedly starting a process, and then make it run emacsclient -e "(change-theme-for-lighting %d)", where %d is a sensor value, whenever that value crosses a threshold.

Alternatively, if you want to keep the entire business logic within Emacs Lisp code, there's some way to make it work too. I'd look into documentation of #'make-process[0]. There's an argument :FILTER that would let you set a function that receives stdout from that process. Alternatively, #'start- process-shell-command with NIL for buffer, + #'set-process-filter should achieve the same thing. So the C program would be barfing out the sensor value every second or so, and the process filter would read it.

(You might also want to read through the sources of #'shell-command to see how it uses the above facilities to handle asynchronous shell processes - the ones you invoke with M-x async-shell-command - but I think it'll work out of the box, and the process filter will only be executed as new output arrives.)

\--

[0] - in Emacs, type: C-h f make-process. Gotta love the self-documenting features of this editor. Actually, half of my comment is based on what I just read in docs of various Emacs functions. Also, hint: make sure you install Emacs with sources - then you can easily jump from help buffer directly into code implementing the thing you're reading about.

</comment></comment><comment><USER8> You can leverage the existing sunrise-sunset function to determine if it is day on night and change your theme accordingly.

(defun daytime? () (sunrise-sunset) (let ((range (mapcar 'car (butlast (solar- sunrise-sunset (calendar-current-date)))))) (let ((sunrise (car range)) (sunset (cadr range)) (now (string-to-number (format-time-string "%H")))) (< sunrise now sunset))))

(if (daytime?) (light) (dark))

</comment><comment><USER9> is the background color really the problem? I though screen brightness was a more issue, for example: continue using your light theme but lower down the brightness, most of your websites are going to be white backgrounds, switch between dark and light background frequently strains more the eyes, looking for the link where I read this.

<comment><USER10> In my own experience, many devices either:

* do not offer granular enough control of the brightness on the low end (the backlight is either kind of dim, or nearly/completely off, with no in-between setting), or they

* do not have enough contrast at low brightness to read easily.

In either case, the display is more readable by having the backlight on bright, and darkening most of the display (by changing the background color).

Of course, this does not apply to all displays, but _every_ display has pretty fine control its total light output by changing the colors it is displaying.

</comment></comment><comment><USER11> That's why we need OLED displays to save our eyes. With OLED's pixels actually produce their own light and dark pixels are just not glowing pixels, pure dark background still provide maximum contrast on sunny days.

<comment><USER12> always-dark is the answer :)

</comment></comment><comment><USER13> How to do it on linux? there's a package iio-sensor-proxy but who knows how to read out the ambient light from terminal.

<comment><USER14> Only way I've managed is using pillow's ImageStat against a webcam image.

If Gnome can read your ambient sensor then monitor-sensor is the cli tool from that package to look at.

</comment></comment><comment><USER15> I sometimes do this manually:

M-x set-background-color snow2, snow3, or snow4

or wheat2, wheat3, wheat4. or MistyRose1, MistyRose2, MistyRose3.

</comment><comment><USER16> This is really neat, but I'm wondering if you are better off triggering the change by sending SIGUSR1 to the Emacs process [0]. This would remove the need to run the function in a timer every 1s.

[0]:[https://www.gnu.org/software/emacs/manual/html_node/elisp/Mi...](https://www.gnu.org/software/emacs/manual/html_node/elisp/Misc- Events.html)

</comment><comment><USER17> Thanks for sharing, this is really cool. I often struggle with my Emacs theme switching between light and dark traveling in and out of my windowless office which is filled with intense unnatural night. I once tried to write some Elisp for determining my theme based on the network I was connected to, didn't work out. I'll definitely try using this!

</comment><comment><USER18> Neat. I've done that on the occasional web site, although matched to time of sunrise/sunset. I imagine reading from a light sensor is more accurate, but it isn't available everywhere yet:

[https://caniuse.com/#search=ambient](https://caniuse.com/#search=ambient)

<comment><USER19> If you are running Linux, iio-sensor-proxy might be worth a try.

</comment></comment><comment><USER20> I'm not an Emacs user, but this is really cool. Are there any equivalents for vim? Typically, I just set my theme for my shell and vim through base16.

</comment><comment><USER21> Off-topic, is there a way to control chrome/firefox through emacs or elisp? something similar to [https://github.com/ChromeDevTools/awesome-chrome- devtools#ch...](https://github.com/ChromeDevTools/awesome-chrome- devtools#chrome-devtools-protocol).

</comment><comment><USER22> I have something similar, except it's based on sunrise/sunset. It hooks into my Mac's Night Shift timer to also enable dark mode and a darker color scheme in all my text editors when it's getting close to sunset, and undo it when the sun rises.</comment>


Linus Torvalds Explains How Linux Still Surprises and Motivates Him - <AUTHOR> https://www.linux.com/blog/event/lc3-china/20176/6/linus-torvalds-explains-how-linux-still-surprises-and-motivates-him <comment><USER2> A few weeks ago I started a simple open source project that got a little bit of traction over here in HN. Since then I've had 4-5 active volunteers contributing to the project and I'm ever so thankful for them. But I've got to admit, even 4-5 active volunteers is quite taxing on my time: I need to spend a fair bit of time reviewing stuff, triaging issues, updating the README or the code to be more newcomer friendly and what not.

I can't even imagine that in a 1000x scale, which is what Linus has done (I know that he has people working under him taking care of certain sections of the kernel, but it's still incredible how he has managed so many people, companies and organizations for so long so efficiently). Linux will always be one of the greatest man-made efforts ever.

<comment><USER3> It's very simple don't pander. Spend your time on the people who waste your time the least. It's a self fulfilling prophecy after that.

</comment></comment><comment><USER4> Linus never ceases to inspire me - he says so much so casually: "If you can be part of a community and set up patches, ... You'll have to spend a certain amount of time to learn a project, but there's a huge upside -- not just from a career aspect, but having an amazing project in your life."

</comment><comment><USER5> > For the first 3 to 4 years, the complaint about Git was it was so different > and hard to use. About 5 years ago something changed

It's still hard to use IMHO, once you deep dive into it, the complexity start to rise up to the point where a complete reset of the repo is required but anyway "what changed" is that Google Code close and suddenly every svn backed project looked for alternatives, the easiest one being "git" since it has a compat API for svn repos, later Jr's started learning git at school and ditched svn et al and now everyone chooses git for default, not because its great, but because everyone is using it and GitHub exploded in popularity due to "social coding" being the norm.

</comment><comment><USER6>
      >> The 2-3 weeks I worked on Git to get that started for example.

His side-project, kicked-off in 2-3 weeks :). This would be a lifetime project for most people.

<comment><USER2> There are now entire industries built around those 2-3 weeks :D But then again, when you write a pretty awesome kernel at the age of 21, you end up doing stuff like that.

</comment></comment><comment><USER7> It is GNU/Linux, also happy to know his sweet talk with VMware Head of (stealing) Open Source. Gold Linus foundation member status makes friendship and magic.</comment>


Review my Startup DomainMatcher.net  - <AUTHOR> http://www.domainmatcher.net Hey guys. I'm trying to evaluate whether domain sellers or investors would be interested in working with an intermediary that facilitates alternative payment options, like offering a buyer lease-to-buy terms on a domain they can't afford to buy outright. We've already got a lot of interest from the buyer side, particularly from founders and advertisers, and are curious to know if sellers can be persuaded to come on board. If you know any domainers or domainer mailing lists, feel free to forward this link. <comment><USER2> I tried signing up a couple of times. Somehow i could not. Everytime i tried to click on signup it just kept selecting 'recent additions to our inventory'. I tried on both firefox 4.0 and chrome. Is there a bug?</comment>