Relativistic Statistical Arbitrage - <AUTHOR> http://www.cfreer.org/papers/PhysRevE_82-056104.pdf

<comment><USER2> This thread is not complete without a link to Paul Krugman's paper, "The Theory of Interstellar Trade". Abstract:

 _This paper extends interplanetary trade theory to an interstellar setting. It is chiefly concerned with the following question: how should interest charges on goods in transit be computed when the goods travel at close to the speed of light? This is a problem because the time taken in transit will appear less to an observer travelling with the goods than to a stationary observer. A solution is derived from economic theory, and two useless but true theorems are proved._

<http://www.princeton.edu/~pkrugman/interstellar.pdf>

<comment><USER3> The forward footnote from the 1978 paper to "Theory capital and travel light- than-faster (Krugman 1987)" is delightful. I hope he remembered to write it!

</comment></comment><comment><USER4> I notice they restrict themselves to the surface of the earth. Out of curiosity, is it feasible to use modulated neutrino beams to communicate straight through the center of the earth? You could theoretically shave up to 24.3 ms in latency this way.

<comment><USER5> Detector size would be a problem ( <http://upload.wikimedia.org/wikipedia/en/6/62/Super-k.jpg> )

<comment><USER4> Not really, it's only about 40 meters in diameter. With trillions of dollars at stake, I imagine they'd find a way to bury one under lower Manhattan.

I've found some figures here -- this is an experiment which creates a focused neutrino beam with an accelerator, and sends it through 810 kilometers of earth to a distant target:

<http://nwg.phy.bnl.gov/~diwan/nwg/fnal-bnl/report.pdf>

If I'm reading Table IV correctly (page 26, and I doubt it), their expected signal rates are up to 10^3 counts per [(megawatt beam power) * (10^7 seconds time) * (kiloton detector mass), for μ-neutrinos. Some reasonable parameters (skimming in the article) are on the order of 1 MW beam power and 10^2 kilotons detector mass, for a theoretical maximum of 10^-2 counts per second. (But I'm not sure if the accelerator can run continuously, or just in pulses). For a 10,000 km beam the signal rate would up to 100 times lower, because of quadratic beam divergence (though attenuation is negligible). So that's 10^-4 counts per second. To send 10 bits (as on/off pulses) in 10 ms, you'd need a lower bound of 10^3 counts/second. That's 10^7 times more than this experiment. So basically feasible, if you have the resources of a hedge fund: scale the total beam power to ~3 gigawatts (by linear extrapolation ~$300B, but probably much less), and the detector mass to ~300 megatons (of liquid argon?) (also ~$300B by extrapolation. This about 6,000 times Super-K, or a cryogenic sphere ~3 km wide. Or an array of smaller spheres).

<comment><USER6> One big problem with your theory - is there even that much argon on the earth? Argon, like all noble gases is extremely rare.

<comment><USER4> Not really. It's not rare, it's 1% of the atmosphere or about 50 trillions tons. And it's not essential for neutrino detectors anyway.

<http://en.wikipedia.org/wiki/Atmosphere_of_Earth>

Besides, I'm certain my numbers are large overestimates. I extrapolated numbers from a completely different scale; surely optimizing for this problem would yield very different designs. Like more focused neutrino beams. They have a large fraction of their neutrino beam going out >6 km off-axis (at 810 km distance); at 8,100 km, this would be >60 km off axis. So there's maybe 6-7 orders of magnitude potential in designing a lower-divergence beam.

<comment><USER7> There's more argon in Earth's atmosphere than CO_2. There's a fun fact for ya.

</comment></comment></comment></comment></comment></comment><comment><USER8> I'm a fan of dry satire, and this is the best commentary I've seen so far on high frequency trading.

<comment><USER8> Now that I've finished reading it, I'm kinda bummed that they didn't incorporate the high-res gravitational map of the earth. I wanna see some lorentz transforms in the mix :/

<comment><USER9> >I wanna see some lorentz transforms in the mix :/

it is somewhat present as they said "for spacelike".

There is also another opportunity - by locating your data center on higher floor where gravitation is lower and thus time is flowing faster you'd get your computers work faster compare to the ones on the ground floors.

</comment></comment></comment><comment><USER10> What are the two exchanges shown as being about 500 miles east of the Carolinas and five hundred miles east of Madagascar?

<comment><USER4> I would guess Bermuda and Mauritius, in order.

(edit) That is the case, although it's rather a joke because these exchanges are _ridiculously_ tiny...

<http://www.world-exchanges.org/member-exchanges>

Although I suppose they'll grow in importance as this relativistic arbitrage stuff becomes mainstream.

<comment><USER10> Well, I feel OK for not realizing Mauritius is there, but alas, I am guilty of being grossly wrong on where Bermuda is, and I can't even blame the thing that taught me how the Caribbean is laid out, Sid Meier's _Pirates!_ for the Commodore 64, which does in fact include Bermuda [1]. (Though for obvious reasons I didn't spend much time up there.) Mea culpa.

[1]: <http://project64.c64.org/maps/Pirates%20map.jpg>

</comment></comment></comment><comment><USER11> Oh boy... So many friends of mine went to finance precisely because they didn't like physics...</comment>


Linux on an 8-bit microcontroller - <AUTHOR> http://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bit <comment><USER2> This always manages to put a smile on my face. This is a pointless but awesome technical achievement, and in the spirit of the old definition of "hacker".

<comment><USER3> So next, let's run Windows on a DEC PDP-10?

Why DEC PDP-10? Gates and Allen had neither an interpreter nor even an Altair system, for their first Altair BASIC product of Microsoft. However, Allen had written an Intel 8008 emulator for their previous venture Traf-O-Data that ran on a PDP-10 time-sharing computer. [1]

Another fun fact, Apple used Cray XMP supercomputers to design Apple hardware [2] while Seymour Cray used an Apple desktop some of the time when designing the Cray-2 [3].

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

[2] [http://wiki.c2.com/?AppleCrayComputer](http://wiki.c2.com/?AppleCrayComputer)

[3] "Cray and Apple, seemly at opposite ends of the computer spectrum, do have some subtle links. It was known that Seymour Cray used an Apple desktop some of the time when designing the Cray-2. It is also known that Apple had a sequence of Cray machines starting in March 1986 with an XMP/28 followed by another XMP in Feb 1991. A YMP-2E arrived later in 1991 and finally an EL from Dec 1993 to Jun 98. It is said that Apples first XMP was bought by Steve Jobs after he just walked into the Cray facility in Mendota Heights." [http://wiki.c2.com/?AppleCrayComputer](http://wiki.c2.com/?AppleCrayComputer)

</comment></comment><comment><USER4> Any Turing-machine can emulate any other Turing-machine. Speed?? Well, that's a different matter. Amount of RAM?? That too needs tweaking.

<comment><USER5> > Any Turing-machine can emulate any other Turing-machine.

True, but technically, a requirement of a Turing machine is an "infinite" tape. However, though most of the computers we use can represent something like that, limitations like not enough RAM show that what we have are not _universal_ Turing machines. We don't have universality, so some things aren't possible to do, without greater resources.

<comment><USER6> An implication of your observation is that all the classical impossibility results, like for example the halting problem, concretized to the machine at hand become solveable theoretically, and maybe even practically. The turing machine abstraction is too idealized, I think.

<comment><USER7> Have you seen how quickly busy beaver functions grow with the size of the program? It'd have to be a pretty restricted system to be tractable...

<comment><USER8> Those are still predicated on having an _infinite_ tape.

With finite storage, every program becomes a finite-state machine; and to "solve" the halting problem, one only needs to use the usual cycle-finding algorithms.

<comment><USER9> With more than a handful of bits of state ever this restricted form of the halting problem is not solvable in general in practice. It's like saying "reading AES encrypted stuff is easy, you just have to try all keys"

</comment></comment></comment></comment></comment></comment><comment><USER10> > It takes about 2 hours to boot to bash prompt

While Bellard's JSLinux can boot to bash prompt in seconds. Still both are mind blowing projects!

<comment><USER11> jslinux has a multi-GHz 64-bit CPU to play with

</comment></comment><comment><USER12> (2012) but still awesome :)

see also previous discussion [https://news.ycombinator.com/item?id=5581851](https://news.ycombinator.com/item?id=5581851)

<comment><USER13> and this [https://news.ycombinator.com/item?id=3767410](https://news.ycombinator.com/item?id=3767410)

</comment></comment><comment><USER14> One might say it's running on an microcoded ARM processor. If you're not too picky about exactly what microcode is.

<comment><USER15> Right. Microcoding used to be (and still is, as an idea) radically different from emulation; today, it probably means "emulation in hardware" more than what it meant originally.

</comment></comment><comment><USER16> I expected something along the lines of [http://www.dougbraun.com/uzi.html](http://www.dougbraun.com/uzi.html) (link to code broken) or the more ambitious (a Unix-like OS on Z80, 6809, 6502, 68000, and others) [https://github.com/EtchedPixels/FUZIX](https://github.com/EtchedPixels/FUZIX) (with 'Lots more bugs right now' than UZI)

This is a nice hack, but not as cool as those projects.

</comment><comment><USER17> A great book for stuff like this.

"The Embedded Linux Primer" by Christopher Hallinan.

[https://read.amazon.com/kp/embed?asin=B004AE3IA6&preview=new...](https://read.amazon.com/kp/embed?asin=B004AE3IA6&preview=newtab&linkCode=kpe&ref_=cm_sw_r_kb_dp_8HxjAbQ6BJ865)

</comment><comment><USER18> This is so stupid and so inspiring. Thank you.

</comment><comment><USER19> Nice to see Dmitry on the front page :)</comment>


To a refrigerator dying young - <AUTHOR> https://www.washingtonpost.com/opinions/to-a-refrigerator-dying-young/2018/08/21/7d542068-a561-11e8-a656-943eefab5daf_story.html <comment><USER2> _— the kind that quietly chug along decade after decade while needing only minor repairs — really are a thing of the past_

There's plenty of them out there, they're only a thing of the past for those that must have the typical massive american style fridge with all the frippery.

For an american style fridge which will last, choose from the likes of Liebherr or Panasonic, but they are not cheap.

Tip - door seals are often symmetrical so with a split at the top edge, simply turn it 180° so the split is at the bottom unseen.

Tip 2 - tomatoes and strawberries slowly lose flavour when refrigerated; stored outside the fridge they should taste that bit better.

</comment><comment><USER3> Simplistically, there are three eras worth considering.

-Ancient refrigerators with mediocre seals and energy sucking compressors. -Modern refrigerators circa 15 years ago, with efficient compressors, good seals, no frost. -Today's technocraptasmic refrigerators.

A refrigerator that boots, emails, needs firmware updates, takes photos? This immediately turns me into a "get off my lawn" jerk. I see it as tech gone awry, causing regressions, and not improving people's lives. Yeah, let's pay more for nonsensical complicated crap that will break sooner. Are we bored out of our minds?

Back to the modern refrigerator: those compressors stand a good chance of lasting 20 years, as will all the duct work and seals if you keep them clean. And really there are a handful of mass produced models, that end up getting skinned by many companies who don't make refrigerators. They're the Toyota of refrigerators, you can find new replacement parts easily. The most common point of failure, is the compressor starter relay. I've replaced several, which just so happened to be the exact same Whirlpool part for a Kenmore refrigerator, and a Kitchen Aid refrigerator. They probably made millions of that base refrigerator and then skinned it. ~$40 part.

Need a new refrigerator? You might find a used one someone's getting rid of that "doesn't cool, makes clicking sound" and at worst it's actually a bad compressor and it'll cost you $350 but last 20 years. Chances are it's the starter relay.

</comment><comment><USER4> > Nor can I decide that I'd like to trade higher electricity bills for a > longer life span; _the government has already made that decision for me_. > Frustratingly, _it's not even clear that this is good for the environment_ , > because it takes quite a lot of energy and materials to manufacture the > appliances we're regularly throwing away.</comment>


GhostMail going enterprise-only, losing free tier - <AUTHOR> https://www.ghostmail.com/ <comment><USER2> >In general, we believe strongly in the right to privacy, but [only] to the enterprise segment.

I can't tell which would be worse: a financial decision wrapped up and hidden behind "the terrorists", or a decision that privacy doesn't belong to anyone wrapped up behind "strategy".

What an awful direction to take.

<comment><USER3> Worse for whom?

What's best for you may not be best for someone else. And I can understand their trepidation to provide tools to people who could use the tool to do harm.

Like say an arms manufacturer who only sells to the armed forces.

</comment></comment><comment><USER4> If you want to send end-to-end encrypted email with any email account, try Inky via inky.com or the app stores. It's free for the 1B+ people with gmail.com, outlook.com, and iCloud accounts. Security white paper here: [http://inky.com/secure](http://inky.com/secure)

</comment><comment><USER5> Boon for Proton Mail.</comment>


Should kids be taught cursive writing in school? - <AUTHOR> http://www.sfgate.com/cgi-bin/blogs/sfmoms/detail?entry_id=56277

<comment><USER2> yes

<comment><USER3> why?</comment></comment>


Gently break out of your filter bubble with this app - <AUTHOR> https://www.fastcoexist.com/3067311/fund-this/gently-break-out-of-your-bubble-with-this-app-that-acclimates-you-to-different-vie <comment><USER2> I'm a pretty big fan of realclearpolitics, which makes a point of alternating between links from opposite perspectives in its news section, often making for amusing juxtapositions.

Unfortunately most people aren't interested in breaking out of their filter bubbles --- after all, those people on the other side of politics are just so stupid, and wrong, and probably evil, so why listen to them?

<comment><AUTHOR> Creator here — there are actually a decent number of folks who have expressed an interest in finding news sources from the "other side".

For some, this is because they were shocked by the election results (Brexit, Trump) and want to understand what people on the other side are thinking so that they can try to find common ground.

For others, it's very much an opposition research play — they've realized that if they don't know what news (or "news") is circulating on the "other side", then they can't effectively combat it.

It's true that there are many people who have no interest in reading news that doesn't make them feel right/smart, and we're not trying to tell folks that they •should• feel this way. We're just building something for people who have decided that they want to get a view from the other side, either for their own personal edification, or to be aware of how the "other side" is positioning things.</comment></comment>


Show HN: Whalebrew – Homebrew, but with Docker images - <AUTHOR> https://github.com/bfirsh/whalebrew <comment><AUTHOR> One step further towards my goal of having nothing installed on my laptop except Docker.

It doesn't _quite_ work with everything – things like `parallel` and `watch` assume they can run commands in your PATH. Things that need to be really fast also don't work very well (booting a container takes a few hundreds milliseconds).

Any requests for packages?</comment>


The Spacing Effect: How to Improve Learning and Maximize Retention - <AUTHOR> https://fs.blog/2018/12/spacing-effect/ <comment><USER2> SRS is very helpful for learning. I've been using it to study different technical fields and languages.

Nicky Case recently made this interactive explanation of how it works, which is itself an SRS system: [https://ncase.me/remember/](https://ncase.me/remember/)

</comment><comment><USER3> I have been using SRS for everything in my life for the last 2.5 years and I have no doubt I will be doing ANKI flash cards on my death-bed someday (as depressing as that sounds). It's the single most important productivity hack I have ever discovered (when used effectively). I successfully used ANKI to learn a 2nd (and now 3rd language) and retain a lot of knowledge I acquire from books:

Other things I use it for:

* extending my english vocabulary

* wine knowledge

* retaining math theories

* world history

* receipts

<comment><USER4> I think what really puts me off is the effort of building those cards. It's not quite a productivity hack if I'm having to sit and spend hours making those cards (vs. someone making those cards - and effectively - for me in exchange for $$). I like memrise a lot for some languages though, and they've long been advocates for this technique by building an entire business around it. Not much good material for math/CS on it last I checked.

<comment><USER3> studies have shown that if you do not create the cards yourself, you do not retain the info as well. there is no free lunch.

<comment><USER5> Exactly, making the card is half of the trick to remembering. If you can't commit to making your own materials you might as well forget about using things like this. Yes it's harder, but no there is no shortcut for learning in life. Just like exercise you can't fake doing the work.

</comment></comment></comment></comment><comment><USER6> This gets used a lot in language learning, especially in the Japanese learning community where people are trying to memorize thousands of Kanji characters. Like the article says, the idea is that recalling a fact when you are on the verge of forgetting it causes it to be reinforced, increasing the interval before you will next forget it. Using the Japanese language SRS tool WaniKani ([https://www.wanikani.com](https://www.wanikani.com)) I've memorized around 900 vocab/characters in the past three months (which is actually kind of slow compared to most people).

This has been a fun experience for me. I've always felt like my memory was poor compared to most people, but now I have proof that with the right strategy I can remember anything I want.

> Some researchers also believe that semantic priming is a factor.

When learning a new Kanji in WaniKani you are given a mnuemonic to associate with it. I find that my retention is much better when the mneumonic feels strongly associated with the shape/meaning/reading of a character.

Another thing that I've found helps retention outside of SRS is using/encountering an item outside of a study session. The surest way for me to remember a new word is to hear it in a show or song where I fully understand the context it's being used in. Also if the thing you're memorizing more of an abstract idea, then explaining it to someone else is a great way to reinforce it for yourself.

<comment><USER7> When I looked at WaniKani some time ago, I got the impression (based on their description, I didn't try it) that they first teach you radicals, then kanji made out of those radicals, then words made out of those kanji. Is that correct?

I didn't try it because the approach seemed to lack context to me, and also because I already know Chinese, so learning Kanji wasn't a priority (I wanted to focus more on pronunciation, vocabulary and grammar). Instead, I built my own sentence-level SRS by taking examples from the Tatoeba corpus, segmenting them with Mecab, adding audio using Open JTalk and then scheduling reviews based on the probability of not knowing one of the words in a sentence. I've been dog-fooding it for three months now, and in theory I should be able to understand 14310 sentences from the corpus.

<comment><USER6> Yeah, it does build up from radicals->kanji->vocab over 60 levels. I agree, for someone who knows Chinese already WaniKani is probably not the most effective way to study. But for people who are unfamiliar with the Chinese/Kanji character set learning radicals first really helps with mentally parsing characters with high stroke count. However as I'm sure you know Kanji readings can be a lot different from the Chinese characters they came from, so there is still some memorization work to be done.

Also WaniKani doesn't touch on grammar at all, so it works as only a part of an overall study routine. I do wish there was a similar SRS service for grammar/reading. Building up your own decks is such a huge amount of work, and for someone who is just learning it's nice to have a curated deck that is verified for correctness. Sounds like you have an awesome system that's working for you though.

</comment></comment></comment><comment><USER8> I did a big surge of learning this way for a post-graduate exam in 2010. It was very effective, much better than any of the 'usual' ways of learning.

However, once the exam was over, there was no way I could maintain the 1 hour plus of card review each day. Eight years later I remember very little of what I learned.

Admittedly I was studying quite hard, ending up with nearly 4000 cards after 6 weeks, perhaps there is more luck with less intense schedules. The material was also complex and esoteric.

<comment><USER9> "Education is what survives when what has been learned has been forgotten." B. F. Skinner

<comment><USER10> anyone quoting BF Skinner should get an Audrey Watters reply: check out [http://teachingmachin.es/timeline.html](http://teachingmachin.es/timeline.html)

</comment></comment></comment><comment><USER11> Dr Ali Abdaal runs a YouTube channel (about studying medicine at Cambridge University) and one of his videos is on "Evidence-based revision tips", with citations for the studies he's working from - here: [https://www.youtube.com/watch?v=ukLnPbIffxE](https://www.youtube.com/watch?v=ukLnPbIffxE) it's about 20 minutes.

He says that spaced repetition is effective, but basic repetition of re- reading, re-watching, re-listening is not effective.

Spaced repetition with "active recall" comes out significantly more effective - instead of exposing yourself to the same material over and over, challenge yourself to recall the material at the time when you're on the edge of forgetting it; the active mental effort of doing that appears to fix information in memory much more effectively than reading or hearing it again.

A consequence of that is his suggestion that notes and review material should not be facts you want to remember, but questions that will prompt you to think and recall what you want to remember. " _Writing questions for yourself makes you engage in cognitive effort, and the more brainpower it takes to recall a fact, the better strengthened that connection seems to get, according to the evidence at least "_.

</comment><comment><USER12> Spaced repetition is so effective. I'm surprised it's not more ubiquitous.

I recently published a Chrome extension to review knowledge in a new browser tabs after trying and failing to use Anki post-graduation. [https://chrome.google.com/webstore/detail/forgetmenot/nncbpj...](https://chrome.google.com/webstore/detail/forgetmenot/nncbpjiiekiakcifiiomalecfnipahbj)

Check it out if you have the chance. I'd love some feedback (and for more people to use spaced repetition in their everyday lives)!

<comment><USER13> Any chance of getting this for Firefox?

<comment><USER12> Hm, I'll probably develop mobile before Firefox so FF would be long way out, but not out of the question! You can follow @ForgetMeNotBot on Twitter for (very infrequent) updates.

</comment></comment></comment><comment><USER14> Useful review. One caution I have while reading posts like this, is that the author does not distinguish between the testing effect, and the spacing effect.

While the value of testing (and especially spaced testing) is well established [1], the value of spaced restudy (e.g. you see both the question and answer together) is less established (but see this Bjork paper [2], which argues there is some benefit to spaced restudy).

[1]: [https://journals.sagepub.com/doi/abs/10.1177/174569161771887...](https://journals.sagepub.com/doi/abs/10.1177/1745691617718873)

[2]: [https://journals.sagepub.com/doi/10.1177/0956797615617778](https://journals.sagepub.com/doi/10.1177/0956797615617778)

</comment><comment><USER15> There was a popular discussion on this topic somewhat recently on HN[1] when a Wired article from 2008 entitled _To Remember Everything You Learn, Surrender to This Algorithm_ made the front page.

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

</comment><comment><USER16> 2 apps I've used in the past for this that I like are mnemosyne ([https://mnemosyne-proj.org](https://mnemosyne-proj.org)) and Anki ([https://apps.ankiweb.net/](https://apps.ankiweb.net/)).

</comment><comment><USER17> [https://www.supermemo.com/en/blog/did-ebbinghaus-invent- spac...](https://www.supermemo.com/en/blog/did-ebbinghaus-invent-spaced- repetition)

</comment><comment><USER18> This sounds a lot like learning an instrument. You should be practicing consistently in short bursts every day. You don't have to practice for more than an hour or two. The consistency is what's key. You'll develop better technique faster if you practice 30 minutes a day as opposed to 3.5 hours every Sunday.

</comment><comment><USER19> What I'm curious about is how can I use something like this for books, or podcasts? Re-reading entire books or re-listening to 1hr+ long podcasts is obviously not realistic.

Should I be re-reading/re-listening to certain chapters? Keep notes and refer back to them often?

How do you all do this? I'm very curious.

<comment><USER17> There is something called "Mindmaps", learn about it, it is very useful.

With mindmaps and using the "pause" button in a podcast you can take notes WHILE you listen or read that are minimal. The trick is that you do not need more than a few words-images-sounds in context to reconstruct all the podcast or video or book.

What is context? Imagine you have a screw and a piece with a hole on it. Where the screw goes? There is only one possibility. You do not need to store the info "where it goes". You can reconstruct it on real time.

With multiple elements interacting, reduction is enormous,in fact neurons work extracting connections of key elements. Take japanese "r, l sound", because the language does not make the distinction,a monolingual japanese could not differentiate between a "Ra" sound and "la" sound. The additional info is of no use so reural connections prune it.

You hear the additional info, but discharge it.

With context you could reduce information to remember more than two orders of magnitude(100-1000 times less).

What you do normally is forget most of what you hear. I believe re reading entire books or podcast is completely realistic if it is a good book that is important to you. There are not so many.

If you have read lots of books or podcast you know which ones are essential.

For me for example it could be "The C programming language" or "Structure and interpretation of computer programs". I have created a C and LISP compiler so those books are sacred. For Einstein, it was Newton's or Faraday's work.

I read books that I could reread 5 times and I learn something important and new every time. As I get deeper, I become a master that could understand concepts and ideas that myself as a novice could not grasp.

</comment></comment><comment><USER20> Interesting. This is basically something I learned in college and am relearning through necessity with my son (11 years old), who has ADHD. Long study and homework sessions are impossible and, for him, tremendously discouraging. We've learned to take things in 15-30 minute chunks with breaks in between and we spread things over several days and the results are positive. Getting homework and projects done isn't such a chore and he feels better about himself since he's better prepared for tests.

</comment><comment><USER21> I used Anki back in 2008 to help me learn Japanese. The best result was memorizing 10,000 vocab inside a 12 month period during my second year of study. That did phenomenal things for my Japanese in combination with decent amounts of conversation.

The power of SRS if you are someone who can take a little bit of pain and who is good at devising learning strategies is off the charts.

I guess the best way I can put it is there are some things for which the traditional model of learning would only take you so far but that through a cleverly devised SRS strategy you could take yourself to places that would be traditionally not attainable for you.

Maybe that's a bad explanation, I don't really think I'm doing it justice.

Something I've settled on attempting in 2019 through SRS is learning psychology. Now SRS is only ever PART of a strategy, it's never the whole thing. But my strategy to get me to the next level that just reading pop psychology books isn't getting me to is that memorize all the replicated and highly cited studies in psychology across as many branches of it as possible. This takes the format of remembering the names of the study/paper, the year it was published, who the authors were, what journal it was published in. The second part is memorizing and being able to verbalize a summary of the the study and it's conclusions.

Think what you will about what that will do for my ability to understand psychology but I can tell you this for sure: rote memorization of all the facts then frees your mind up to get to the next level then connecting all the dots between the facts. People often criticize rote learning because they think learning is more about connecting the dots and that's what we should focus on. It's exactly backwards. First focus on getting all the dots into your head and then inferences start to come thick and fast naturally.

The key to devising an SRS strategy is think in terms of "pieces of information" and to find good sets of "pieces of information" that have extremely good power to weight ratio.

There's two things I'll say there... You COULD use SRS to memorize an entire introductory psych textbook. You COULD. But it would be the exact wrong way to go about it. If you memorize the relevant category of information you can use that to Intuit all the explanations .

The other thing to say is the "pieces of information" should have the same shape. They should be in the same category. They shouldn't be random, but highly cohesive. For medicine this would be like you start with anatomy first and you do all of that before moving on. You go in layers.

The next key is then your search stategy on how to locate the information.

The next key is defining different phases of your strategy which boils down to figuring out which set of pieces of information to after in which order to achieve which specific goals.</comment>


Ask HN: Video Equivalent of HN? - <AUTHOR> Can you share a video website/app with a link, that you recommend which has videos that satisfy the HN constraint of 'anything that gratifies one's intellectual curiosity'?<p>Thanks, stay safe and healthy. <comment><USER2> Youtube.

No, seriously. Once you train its algorithm a little bit you can always find something neat to watch. My personal recommendations are a mix of niche music theory, urban geography and computing deep dives. If I load up the front page over lunch or something there'll always be something I want to watch through.</comment>


Ask HN: Built a news stories classification engine ... now what? - <AUTHOR>

For the past 2 months, I have been working on a news stories classification engine. I believe to have reached a stable stage and the application can be viewed at http://babeligg.com/. I have so far approached it as a technical challenge. Right now I have two interrogations which I submit to the HN community: * Is it possible to run some test suite to independently confirm that the performance are superior? * How can such tool/API be monetized?<p>Thanks. <comment><USER2> To answer your first question, you should simply benchmark against the average Mechanical Turk worker's ability to classify links. Build a set of tests from the workers and every time you update your algorithm, you'll need to run against the dataset to see if you've improved anything.

For the second question, your product would be most valuable as an aid to contextual advertising (what ads should I display?), and its possible that you could charge per 1K requests. I have a need for this myself, so I would be happy to be a beta-tester.

</comment><comment><USER3> I haven't looked at it in detail yet. But first thoughts, lose the name. It's highly forgettable and ugly on the tongue.

EDIT: For a second i was confused, was i supposed to enter some words or a URL. So i tried random words, hoping it would give me stories classified accordingly. Tried "django", and some others. It classifies everything into sports.

Seems to do a decent jobs with some random URLs i threw at it. Seems to get startup news into the Business category, which is fine.

Gets technical articles wrong, but those are tough: eg. <http://blog.doughellmann.com/2007/07/pymotw-subprocess.html>

</comment><comment><USER4> _Is it possible to run some test suite to independently confirm that the performance are superior?_

Just think harder about that question. It raises all sorts of philosophical questions about machine, intelligence, language and meaning.

Of course, there ARE benchmarks, at least one bundled with each classifier tool ;-) but there couldn't be _one_ ideal benchmark, no.

This might give you a start though:

[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.38.4...](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.38.4841)

</comment><comment><USER5> Would be nice to have some examples ready where it shines</comment>


GNU Typist (2017) - <AUTHOR> https://www.gnu.org/software/gtypist/ <comment><USER2> I love Gtypist, but wanted it to have a lesson focused on programming keys like !@#$%^&*()-=[]{}\|

So I wrote one: [https://github.com/codesections/gtypist_programming_characte...](https://github.com/codesections/gtypist_programming_characters/)

It builds up to typing out the full code of a (very small) compiler.

</comment><comment><USER3> I used GNU typist when I taught myself touch typing with a Das Keyboard back in the day.

One thing I found annoying was that it insisted on two spaces after a period. I found that annoying so I replaces ". " with ". " in all tutorial files.

<comment><USER4> > One thing I found annoying was that it insisted on two spaces after a > period.

GNU Emacs' manual has a good explanation:

 _The sentence commands assume that you follow the American typist 's convention of putting two spaces at the end of a sentence. It is useful to follow this convention, because it allows the Emacs sentence commands to distinguish between periods that end a sentence and periods that indicate abbreviations._

<comment><USER5> Thankfully this is customizable, like everything else in Emacs

      (setq sentence-end-double-space nil)

</comment></comment></comment><comment><USER6> Interesting to see this pop up now, I recently finished building an open source command line typing tutor myself! The idea of mine is you pass it an existing text file (plain text, markdown, source code, etc) and it tests your ability to re-create that file. This way you can practice typing in any syntax. [https://github.com/wtfaremyinitials/monktype](https://github.com/wtfaremyinitials/monktype)

<comment><AUTHOR> Very cool!

I never formally learned to type, and have picked up some bad habits over the years because of that. I found GNU typist and finally decided to learn how to touch type "correctly".

I'll definitely supplement GNU typist with your tool for practicing.

</comment></comment><comment><USER7> I would like to relearn typing and "do it right" this time. I've tried in the past, but end up reverting to my old habits. What can I do? (⊙_◎)

<comment><USER8> The ortholinear layout of my current keyboard forces me to use the right fingers for the right keys - it's actually hard to do it wrong intentionally in some cases. Switching is frustrating in the first couple of days, though.

However, in the end I don't know if it really matters that much if you type "correctly" or not unless you have problems with accuracy.

<comment><USER7> I think I over-rely on my right hand and it causes some strain. "Correct" typing feels very comfortable but also very slow right now. Other than that, I think you're right and it doesn't matter.

</comment></comment></comment><comment><USER9> This program should have a special mode for programmers who need to learn the !@#$%^&*()-=[]{}\| keys.

<comment><USER2> > This program should have a special mode for programmers who need to learn > the !@#$%^&*()-=[]{}\| keys.

I thought so too, so I wrote one: [https://github.com/codesections/gtypist_programming_characte...](https://github.com/codesections/gtypist_programming_characters/)

(I submitted it upstream, but the pace of development lately hasn't been all that fast)

</comment></comment><comment><USER10> I used this tool to learn Dvorak a few years ago... worked pretty well for me :)

<comment><USER11> I also used this to learn Dvorak, back in 2016.

</comment></comment><comment><USER12> A thread from 2012: [https://news.ycombinator.com/item?id=4967075](https://news.ycombinator.com/item?id=4967075)

</comment><comment><USER13> I used it a while ago when I decided to learn Colemak. It served me well enough, but I never got around to using Colemak full time.

</comment><comment><USER14> fun to take the speed tests for a whirl and see you can accurately type 80-90wpm.

<comment><USER15> One thing I've noticed with speed tests is that the results vary massively with content. Common, easy English words with no punctuation or capitalization? Easily 100 wpm and more. Source code with all the symbols, numbers, and capitalization? Can dip below 50 wpm...

<comment><USER16> Bottleneck is the brain, English is not my first language and I usually score 10 wpm less than my native language.

</comment></comment></comment><comment><USER17> That seems like the kind of program for which it is much better to be delivered through a website with some Javascript on it. No need to get the whole classroom to download anything and stuff.

<comment><USER18> I really dread the future of computing where every application is a website, and the supercomputer sitting under my desk becomes useless whenever the internet goes down.

This is an enormous retrograde step. There's no reason for everything to be running on someone elses computer. Gigaflops are so cheap that I have more of them in my pocket than could be found in the worlds fastest supercomputers only a few years ago.

<comment><USER19> Your future is just the regular bleak one, my dark future is the one where there is no supercomputer under the desk but instead a glorified web terminal that is meant to run the web apps for the next 2-3 years until support ends (regardless of computing power) and the terminal doesn't get any more updates so it cannot run most of the newer stuff (think iPad/Chromebook, except larger). Obviously nothing works without active internet connection and local storage is only used for caching - all your data, programs and (of course) licenses for said programs and media are saved on the cloud.

Everyone can make their own software as long as it exists on said cloud (ie. a computer owned and controlled by someone else), they are able to access any of "their" files from anywhere - be it their home, work, their friend/parent's places, the terminals at the cafe, their mobiles or whatever and work from anywhere they'd want. Parents love that the terminals of their kids filter out anything that could be considered inappropriate and the more knowledgeable of them customize these filters for their and their friends' kids.

Some may have at the back of their mind that some of that could be abused and have a vague idea of how that could be done, but as it doesn't affect their day-by-day lives they do not pay much attention to it.

Big computers still exist but they are prohibitively expensive for personal use by the vast majority of people.</comment></comment></comment>


Stack overflow meetup - <AUTHOR>

http://blog.stackoverflow.com/2011/03/stack-overflow-meetups-april-6/<p>In what all cities across the world SO meetup is happening and when ? <comment><USER2> These meetups happened a year ago (note that date for blog post is 2011)

<comment><AUTHOR> Yes correct, here is the updated link. <http://www.meetup.com/stackoverflow/></comment></comment>


Being Thankful for Free Software Developers - <AUTHOR> https://fosspost.org/opinions/people-be-thankful-for-free-software-developers <comment><USER2> This is a starry-eyed blog post. I like it, and I miss not having more of these. We need more starry-eyed dreamers because they get good things done.

I just spent some time with the Debian crew at the last Debconf here in Mtl. I've always liked their attitude and I love their operating system -- and so does everyone else who has ever created a Debian derivative. Others at Debconf felt the same. Bradley Kuhn even said something like what a breath of fresh air it was to not have to apologise for being a free software supporter. I love how organic Debian is and how the conference was perfectly run with livestreaming and IRC bots keeping us abreast of the next event. These polychromatically-haired dreamers know how to get things done.

So, it's good to see that the starry-eyed blog posts haven't stopped.

<comment><USER3> Why would someone have to apologize for being a free software supporter? I consider my FSF membership a point of pride.

<comment><USER4> I'm all for free software. Really, I am. I just have a problem with the idea that free software is absolutely the only way to go. I have no problem with people who refuse to run non-free software. I have a problem when they insist that I'm doing it wrong by running Windows.

Sent from my Fedora-running laptop.

<comment><USER5> Free software activists and advocates are often accused of "user shaming". And they often do. Generally speaking, it's difficult to both consider and balance others opinions when you have a hard-line stance on something. It's a sign of experience and empathy when you can. Not everyone can.

With regards to software freedom: we wish that nobody would have to sacrifice their four freedoms to use proprietary software, but if they wish to do so, that is their choice. But we have an obligation to discourage it---not only because we are opposed to it, but because others' use of proprietary software in effect encourages others to use it as well. For example, the GNU operation system would never prevent users from installing proprietary software. (Actually, it can't, because someone would consider that to be an anti-feature and simply remove it.) But GNU and the FSF would never endorse distributions that encourage you to do so.

So you're not "doing it wrong" by running Windows in the sense that you're free to do your computing however you wish, and me insisting that you do otherwise would be disrespecting you as much as if someone insisted that I use proprietary software. I may not respect proprietary software, but I respect that you've given consideration and have decided to use it.

<comment><USER6> > Free software activists and advocates are often accused of "user shaming".

What do you mean with "shaming"? I've been at many DebConfs and I have never heard any other DD calling people names just for using some closed source software.

<comment><USER5> > What do you mean with "shaming"?

Making users feel put down in some manner for using proprietary software, even when they might not be aware of the issues surrounding it. Users might be made to feel like they're hurting themselves and others in doing so. While being made to feel personally responsible (intentionally or not), they might then be exposed to a barrage of statements about how proprietary software is bad/evil and all of the problems surrounding it, which might make them feel even worse about their position.

This can have mixed results. If a user _didn't_ feel personally attached to those problems, then he/she might find it informative and a good illustration of the problem. Otherwise, users might become defensive or angry. Some might feel ashamed or bullied.

rms can come off that way, for example, even though he legitimately doesn't intend for that to happen. He has to balance his writing style with other concerns. One of his articles[0] was the topic of discussion on an internal GNU list where I and others provided some feedback to reduce the sense I just described. He makes strong, important points in the article, but it can be off-putting to people who aren't a part of the free software community. So for free software advocates reading it, it might seem informative and an excellent example of the issues, whereas someone not familiar with software freedom might experience the issues I mentioned above. It can be difficult to convey that using proprietary software is doing harm by encouraging others to use it, for example.

[0]: [https://www.gnu.org/philosophy/is-ever-good-use-nonfree- prog...](https://www.gnu.org/philosophy/is-ever-good-use-nonfree-program.html) (compare with earlier versions on archive sites)

</comment></comment></comment></comment></comment></comment><comment><USER7> I really liked this post. Obviously everyone has different motivations, but at its heart FOSS is an enormous collection of cooperative and/or charitable work, and the industry as a whole should be really, really proud of it.

One other option for giving back - just send an email saying thanks, and that you love the project. I get such an email once or twice each week for my open source project, and it really brightens up my day. I'm lucky enough to not really need any donations, but everybody needs their spirits lifted from time to time.

Knowing that your contribution has made a positive impact on someone else's life is a powerful thing, and from the user's perspective costs very little to do.

</comment><comment><USER8> I love that open source exists and am very grateful that people have given their time to make stuff that I get so much pleasure out of using for free. I feel like the article suggests that programmers are the only people who ever produce work on a voluntary basis though.

"If you ask an engineer, a doctor, a professor, a teacher or a farmer to give you one of the products they do for free, probably they will just refuse. You won't find a professor working full time in a university for free. You won't find a civil engineer working on building houses for free. You won't find a farmer giving you vegetables for free."

If you ask Adobe to give you Photoshop or someone who makes a piece of $10 software to give it to you for free they will probably refuse. There's a difference between offering something voluntarily and offering something for sale then being asked to provide it for free. Engineers do sometimes work for free eg. on charity projects as do many other types of business. Even ad agencies I've worked at did a certain number of free projects for charity. A farmer does regularly give me vegetables for free. I've made software for free but I've also spent a lot of time making props, art and other things for free. A friend runs a small charity, she works long full-time hours unpaid and often has trouble getting her own bills paid. I've also known more than a few selfish coders...

I'm certainly not arguing against the premise of being thankful for free software ( _thank you programmers_ \- I really mean that, I've sent messages of gratitude to devs in the past and am reminding myself to do it more in future) but let's not start thinking that software developers are inherently better human beings than anyone else. Feels a bit myopic :)

<comment><USER9> Doctors do provide their services for free. Doctors without Borders is a prime example of this. Professors give research, their primary product, away for free as well (Other actors do still profit from their work though. Movements such as Open Access tries to address this problem).

</comment></comment><comment><USER10> Inspired by this I went over to donate money to Arch Linux, since I've just been getting nothing but joy from using it for the last 2 years.

They use Click2Pledge which, frankly, is a UX which is a tad frightening, but I'm not a snob so I carry on.

And then I find that of all the countries in the world they seem to have left Ireland out (Eire, Republic of Ireland, no, nothing). I mean they have the Isle of Man - but not Ireland. So, I cannot complete their payment form.

So what all these guys need is a separate FOSS organisation exclusively dedicated to fund-raising.

<comment><USER11> Careful with re-invention. I was going to suggest SPI, but funny enough they're already on the list at:

[https://www.spi-inc.org/projects/](https://www.spi-inc.org/projects/)

I see the arch linux web page links to "click to pledge" service as reported, which apparently is extremely limited in legal coverage area, but the SPI Inc web page for arch links to a paypal link, and paypal seems to "work" in most countries on the planet.

Back when it took 5000 bitcoins to buy a pizza and my 486 software miner was generating about 100 coins per week, I donated 5 BTC to the FSF who promptly wanted no part of the accounting and legal problems so they got rid of my 5 BTC. At the time that 5 BTC was worth like 50 cents but now would fund somewhere around 2 or 3 gradstudent-years of development, Oh Well. Anyway BTC should be a viable transfer mechanism.

<comment><USER10> Oh that's great. I'll do it there now. They really should link straight to that page instead of the Click2Pledge...

</comment></comment></comment><comment><USER12> I always like to think Free/Open source Software is the only known occurrnce where socialism works. You give 100% of what you have for free as a programmer, but in that very same moment you make everyone, including yourself, richer and more free. As software does not get consumed, everyone's assets rise.

<comment><USER13> Tikhon Jelvis, Lead Data Scientist at Target (2016-present) has a very good answer to "Is free software socialism?" at [https://www.quora.com/Is-the-open- source-movement-socialism](https://www.quora.com/Is-the-open-source-movement- socialism) \- I will quote the answer in its entirety for the benefit of this thread...

No. The two are not related in any useful or meaningful ways.

The first thing to note is that there are actually two core ways of thinking about open source software: the "open source" movement and the "free software" movement. While the two work together perfectly well—and most people probably share some of the views from both camps—they are philosophically distinct.

The open source movement is pragmatic at heart: the main idea is that developing software in the open leads to better software. More eyes and more diverse opinions on your codebase is a strength that often overshadows the commercial benefits of keeping software proprietary. This is the camp more often associated with more "permissive" licenses like MIT and BSD, and mirrors the philosophy I've seen at most companies that release and maintain significant open source projects (often based on their own internal tools).

This movement has no parallels to socialism whatsoever. It believes in open source collaboration as a strong model for software development but doesn't opine at all about property rights.

The free software movement, spearheaded by the Free Software Foundation (FSF) and Richard Stallman, is more ideological at heart. It originally started from the idea that you, as a consumer, have the right to understand and modify the software that runs on your machines. This is codified in the four freedoms that Free Software aims to protect:

* The freedom to run the program as you wish, for any purpose (freedom 0). * The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this. * The freedom to redistribute copies so you can help your neighbor (freedom 2). * The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

These freedoms are often enacted with "copyleft" licenses like the GNU Public License (GPL). The idea is that you have the right to read, modify and distribute software under the GPL (including selling it commercially) as long as you distribute it under the same license. You can do more or less whatever you like as long as you provide all your users with the modified source to your software and give them the same rights.

The motivation behind the movement is to protect the rights that you have over your own devices and software, which is not significantly related to socialism at all. If anything, it's a way to strengthen what you can do with your own property!

There is one way you could see the Free Software movement in a way that parallels socialism: it's a collective effort and stands against "intellectual property".

However, this view misses some important details. Unlike socialism, Free Software is not concerned with property and how it is distributed in society; rather, it simply does not view "intellectual property" as property at all. In fact, many people in the movement don't regard "intellectual property" as property at all; instead, they view the term as a misleading way to group together several fundamentally unrelated laws into a single concept.

Richard Stallman wrote an interesting essay on this topic: Did You Say "Intellectual Property"? It's a Seductive Mirage. His style is not for everyone—he comes off as very certain, almost fanatical, about his views—but it makes the idea eminently clear. The core idea is that copyrights, patents and trademarks are all fundamentally different from each other and fundamentally different from physical property; the term "intellectual property" is misleading because it groups these three disparate concerns together and implies they are variants on physical property.

There is nothing socialist about that view whatsoever. Trying to reform the laws and cultural norms around "intellectual property"—especially when you realize it's fundamentally distinct from other notions of property—is entirely orthogonal to socialism.

Both the Open Source and the Free Software movements are fundamentally unrelated to socialism.

<comment><USER14> I find your argument that OSS and FLOSS are "fundamentally unrelated to socialism" rather strange. So much so that I had to google definitions of socialism:

1)a political and economic theory of social organization that advocates that the means of production, distribution, and exchange should be owned or regulated by the community as a whole.

2)(in Marxist theory) a transitional social state between the overthrow of capitalism and the realization of communism.

Regarding OSS you wrote: "This movement has no parallels to socialism whatsoever. It believes in open source collaboration as a strong model for software development but doesn't opine at all about property rights." That seems to fit the part of definition 1 about means of production quite well. Actually I'm talking about design rather than the traditional means of production you might call replication.

As for Free Software, yes they are against the notion of intellectual property. But it is for pragmatic reasons actually. If you buy/obtain some software under traditional IP rules you are not allowed to modify it. That is in contrast to regular property laws - you can buy a car and modify it in all kinds of ways and resell it.

Where things get interesting is in the means of production in the traditional sense - producing copies. Software has the odd property that it can be replicated at nearly zero cost. In traditional industries from farming to manufacturing, production is a big deal and is where a lot of the costs are. You have resources and then you have utilization of those resources. People like to stake claims on either the resources, the means of production, or when that isn't enough, the design (IP) of the product. In contrast, communism want to take individual ownership of the resources and production away and claim it as community property. Free software also aims to strip that proprietary nature away from software and make it more of a community asset.

It may not be a perfect analogy, but to say it's fundamentally unrelated seems really strange to me.

</comment></comment></comment><comment><USER15> Interestingly, free software development often pays off in the best interest of the developers. In terms of networking with other developers and building a resume which leads to real jobs with real pay. Not to mention the value of real world developer experience.

Be thankful, yep - but as someone with a background in OSS, I'm quite happy with the intangible dividends it's already paid.

<comment><USER16> > Interestingly, free software development often pays off in the best interest > of the developers.

While I know that is true first hand, I think that's largely due to network effects.

You've most likely _built_ your own open-source project on top of other existing open-source projects, an existing free platform. That means that there's a big bootstrapping cost you didn't have to pay for in terms of commercial software or developer-time (if you'd instead had chosen to make that platform yourself).

And since you got off so lightly, it's easy to think "I'll just give this away too". What if making that first release had cost you 10x more effort, or hundreds of dollars?

But now your project is FOSS and you get the benefits in the terms of people using your software and submitting patches back. Do you think you'd have something equally compelling to offer if you had to make it all from scratch? Or do you think you'd get contributors if using your product depended on a wide range of other commercial software?

Basically, your open-source project "works out" because of other open-source software. Even as a developer, you should be thankful for free software developers.

Just how much free software do you depend on? A text-editor? A programming- language runtime and toolchain? A operating system for that to run on? A platform SDK for the developers of that platform? A kernel surely?

And for each of those "high level" concepts there, you probably need to account for the very same thing recursively and more: server-software running their project's webpages and mailing-lists and other developer infrastructure. Plus whatever _that_ recursively depends on.

The amount of free effort involved seems to defy enumeration. I guess it _is_ turtles all the way down.

I think open-source today has come a long way compared to where it was a couple decades ago, and can't imagine how much perseverance and persistence this has required from how just many people. It's an enormous achievement.

My hats off and thanks to all of you, everywhere :)

<comment><USER17> I agree, however: > Just how much free software do you depend on? A text- editor? A programming-language runtime and toolchain? A operating system for that to run on? A platform SDK for the developers of that platform? A kernel surely?

there are many people who use closed source editors (sublime/VS), on a nonfree tool chain (VC++) on a nonfree OS (windows) with a closed source SDK And kernel.

<comment><USER16> What about the servers you deploy to? What about the toolchain used by the upstream platform developers you depend on? What about the software powering their CI-systems?

Whatever free software they depend on, you indirectly depend on too.

<comment><USER17> Not everyone works on web applications, and I don't claim to have any knowledge of the platform that they develop with.

My point wasn't that I don't depend on free software (I absolutely do, and I do donate to the software I use every year), but that it is possible to be a developer and have very little interaction with free software.

<comment><USER16> But the projects you do depend on probably have web-pages, even if none of you are into web-development primarily.

And thus more open source dependencies unravel :)

</comment></comment></comment></comment></comment></comment><comment><USER18> I hope crypto currencies will eventually enable people and companies to more easily donate with micro payments to free software developers without the need for the greedy/stealing paypal or other banks.

I have dozens of free/open-source projects that make me 0 dollars while some of them are being used quite a bit. I currently cannot find spare time to improve on those projects because I need to work for a company to pay the bills..

I would love to have some income out of it, but I refuse to use paypal. First they take a proportional part of the sum as fee, second they take another proportional part by making up their own exchange rates for converting currencies. I refuse to support those companies and I truly hope crypto currencies will nullify them.

<comment><USER19> Obligatory post asking for links to your projects.

(But I truly am curious.)

</comment></comment><comment><USER20> Cached version: [https://webcache.googleusercontent.com/search?q=cache:P1Yw34...](https://webcache.googleusercontent.com/search?q=cache:P1Yw346ZwAoJ:https://fosspost.org/opinions/people- be-thankful-for-free-software-developers+&cd=1&hl=en&ct=clnk)

</comment><comment><USER21> It's a huge generational gift, and people should now be concerned about how to sustain the free software movement. There is clearly an ongoing shift from a generation of 'starry eyed' ideologues to hired open source developers.

Some may argue that's moving forward but it's diminished in many ways by losing its core essence and 'motivation' to exist.

Companies can contribute by open source by supporting developers and projects without seeking influence by hiring or acquiring them. But then many don't even bother doing that.

We need to find a way to develop a ecosystem that has sustenance from businesses and especially individuals and yet leaves the developers and projects 'independent'. Leaving it to sort itself out has already led to a sort of centralization and will eventually lead to loss of control and accountability.

</comment><comment><USER22> As much as the introduction and the first two sections motivate the post, I think the last "Don't Just Feel Pleasure, Show It" section is the one that contains the main take-home message in my opinion. If one has benefited by using FOSS, one must acknowledge that it cannot get better and magically sustain itself without support from those who use it or appreciate the principles underlying the movement. The level of transparency and freedom of choice that FOSS offers to users, the DIY ethic and a sense of community it encourages is indeed something to be grateful for, and deserves a generous (subjective) contribution!

If one does not contribute directly by submitting bugs or developing FOSS itself, supporting organisations such as...

* The Free Software Foundation ([http://fsf.org](http://fsf.org))

* Software in the Public Interest ([http://www.spi-inc.org](http://www.spi-inc.org))

* Electronic Frontier Foundation ([https://www.eff.org](https://www.eff.org))

* Let's Encrypt ([http://letsencrypt.org](http://letsencrypt.org))

... I believe can go a long way. I'm sure there are more - when one feels grateful for the service the software has rendered them, one just needs to make the effort to find out who has written the software and whether there's a "Donate" button somewhere through which this can be expressed, however small the actual amount.

<comment><USER23> \- Is LE worth contributing for, given it's a joint Google initiative?

\- FOSS really need to send out proper invoices, donations are a corporate risk and I have to spend time to my accountant to justify the necessity of donations, every year.

<comment><USER22> I didn't realise that LE was a Google initiative. I know that it's supported by the Chrome project (and thus Google), but also by Mozilla, EFF and a lot of other supporters. Could you please point me to any article that discusses its Google affiliation? Thanks!

</comment></comment></comment><comment><USER24> I like to think of Free Software Developers as rational actors. So while they certainly deserve my gratitude, I disagree that we owe them any other compensation that they didn't specifically ask for.

As the author notes, developers, doctors, lawyers, etc. know their value and charge accordingly. A developer who charges $0 for his work product must, therefore, be making up that value elsewhere. Most major Open Source projects certainly are.

Chrome, Linux, MySQL, and lots of other big names all have corporate backing. Large companies paying people to build software to advance their agenda. Commoditize the Operating System to sell more servers. Control the Browser to keep the rug un-pulled from your web empire. There's really not a lot of pure charity to be found.

True, you do find the occasional artiste working away for no money, living the officially sanctioned stereotype for what an open source developer is supposed to look like. But I tend to hope that he knows the score and is therefore looking out for his own interests.

There are lots of good reasons to develop open source. But I don't consider "charity to big companies" to be one of them.

<comment><USER25> > A developer who charges $0 for his work product must, therefore, be making > up that value elsewhere._

No, even assuming that they're "rational", they must _have expected to_ make up that value elsewhere. It's entirely possible to write something useful, in the expectation of some amount of praise and recognition, and get nothing but a lot of whining in return for it.

</comment></comment><comment><USER26> People often underestimate the effort and motivation behind open source software. They download it and never come back again. We should be thankful to those developers who are working just to facilitate us without any monetary benefits. We should always donate even if it's $1.

</comment><comment><USER27> I get the sentiment but the request is awkward. IF OSS developers don't want to code for free then there's an easy, fool-proof solution.

If you're going to try to argue Debian is worth $30 billion then I'll try to argue that it's generated $30 billion in free publicity.

</comment><comment><USER28> I wish it was that attractive to just switch from "expensive and evil proprietary software" as the author suggests.

1\. The article claims that Microsoft Office 365 is $100 a year. In reality it's about $70, home license for up to 5 users is $80.

2\. The article does not mention that every Office 365 user gets bunch of additional services. For example, a tebibyte of space in Microsoft OneDrive for each user, 60 Skype minutes per month, etc.

3\. Each Office 365 user can install Office apps on 3 devices: his phone, tablet, and computer. Office apps are available on Android and iOS as part of the package. $70—$80 a year price tag includes not only Windows apps, they work perfectly fine on smartphones. Personally I make grocery lists in Excel, open them on my phone, fill my shopping cart with items, and track how much I'm going to pay or if I'm eligible for coupons.

4\. I'm not aware of any decent OneNote alternatives. I researched it some time ago because I desired to self-host my notes. There are pretty much no comparable open source or free cross-platform apps which can work with notes in cloud or on a remote server from your mobile device. With OneNote all of my notes are available on my mobile devices. I strongly believe that OneNote is one of the best apps Microsoft came up with in recent years.

If you look around, you can see that 1 TiB of cloud storage alone costs $100 (Google Drive) or $120 (Dropbox). Office 365 offers not only that but also quite possibly the best office suite on the market for $70 for 1 or $80 for 5 people.

Note that so far I have not touched the question of quality of software at all — only the most basic functionality and packages. Microsoft Office is the most popular office software package for a reason. My exposure to open-source office packages is limited but here is at least one dealbreaking example. I tried recreating my spreadsheet for tracking caloric intake in LibreOffice Calc. It was extremely painful — among many other features Calc does not even support tables like Excel does.

I use another software package mentioned in the article — Kaspersky. I'm going to assume the author is talking about the package I'm using — Kaspersky Internet Security — since the price is stated to be $40.

Like with Office 365, KIS is not only an antivirus. It's also a firewall, parental control tool with a list of inappropriate websites, an adblocker, etc. It provides quite a lot of functionality, some of which, frankly speaking, should be in Windows itself. For example, KIS can autoupdate software.

Like with Office 365, article does not mention that $40 buys you a license for up to 3 devices. KIS is also available for Android and macOS.

But overall, an antivirus is not necessary in modern Windows system, so you may skip on these $40.

<comment><USER29> And when you start looking at professional level software (e.g. CAD), very often you will find that there is literally no FOSS alternative in existance. If it exists, it will most likely be a buggy mess that has far fewer features and a horrible interface. LibreOffice is a great example. I tried writing my masters thesis in it and it was a complete disaster. I don't regret going back to office.

<comment><USER30> > And when you start looking at professional level software (e.g. CAD), very > often you will find that there is literally no FOSS alternative in > existance. If it exists, it will most likely be a buggy mess that has far > fewer features and a horrible interface.

We wanted to help FreeCAD[0] grow as a leading FOSS CAD application, to help it reach out to other developers. That is why we invited Yorik van Havre[1], one of its main developers, as a main track speaker to FOSDEM 2015 [2].

I'm not asking you to do something similarly constructive, but... Next time you state your opinion about "professional level FOSS software (eg. CAD)", please think first if it is necessary or even useful to gratuitously throw around negativity. Even if the tools are not useful at all (yet?) for your task, why discourage its users and developers? Chances are, the FOSS app _will_ be useful and even the only option for some.

[0] [https://freecad.io](https://freecad.io) [1] [https://github.com/yorikvanhavre](https://github.com/yorikvanhavre) [2] [https://archive.fosdem.org/2015/schedule/event/freecad/](https://archive.fosdem.org/2015/schedule/event/freecad/)

</comment></comment></comment><comment><USER31> As a user of Debian, Firefox, LibreOffice and etc. I agree :)

</comment><comment><USER32> The should be thankful, but they do not know. FOSS doesn't spend money on PR.

Few know that free Linux lurks under Android, and OS/X an iOS have large parts of BSD in them.

<comment><USER33> > free Linux lurks under Android

Not only that, but the GUI is also FOSS: [https://source.android.com/](https://source.android.com/)

> OS/X an iOS have large parts of BSD in them.

I think this gives the wrong impression. The interesting parts of macOS and iOS are GUI and drivers, which are proprietary.

<comment><USER34> _The interesting parts of macOS and iOS are GUI and drivers, which are proprietary._

The best parts of OSX are brew, iTerm2, and FileMerge.

 _(Edit in reply to below: Yes, that 's my point. brew and iTerm2 are FOSS, FileMerge is part of XCode)_

<comment><USER33> Those aren't part of OSX though.

</comment></comment></comment></comment><comment><USER35> Apparently the source got hugged to death.

</comment><comment><USER36> This is why I built www.thankyouopensource.com At least you can write a thank you note to the maintainer.

</comment><comment><USER37> Also on being thankful for Free (Scientific) Software Developers: [https://stactivist.com/2016/12/10/code-of- gratitude/](https://stactivist.com/2016/12/10/code-of-gratitude/)

</comment><comment><USER38> I love the list of ways you can help at the bottom - each of these is tremendously valuable but most people think "well, I can't help if I can't code". Another thing that's super helpful: volunteer to triage tickets on the bug tracker.

</comment><comment><USER39> It would be nice if big repository services such as Github offered a simple way to donate.

</comment><comment><USER40> companies too.

</comment><comment><USER41> Just to put it out there, Apple offers quite a bit of free software when you purchase their hardware. This includes OS upgrades and their office suite as well as Xcode and Garage Band, among other things. It's quite nice and they are well made.

There are a few asterisks though, most notably support life for the OS. My 2009 MacPro won't run the latest OS for no other reason than Apple decided it couldn't (end of life). The 2010 model is allowed to run it and there is no discernible difference in the hardware.

Having said that FOSS was truly paradigm changing. I lived in a world before Linux and everything was prohibitively expensive on the PC. There was a lot of freeware and public domain software available, but most of it wasn't very good or niche stuff. It's quite amazing that the FOSS movement it was able to happen, let alone gain so much traction with such great software. I mean today, you don't have to buy a damn thing except the hardware.

<comment><USER42> > Apple offers quite a bit of free software when you purchase their hardware. > This includes OS upgrades and their office suite as well as Xcode and Garage > Band, among other things. It's quite nice and they are well made.

Most of that is not "free software" in the way this blog post is talking about (FOSS). XCode has FOSS components, parts of the OS are FOSS, etc. However, much of it is not.

<comment><USER41> Yes, I was mainly talking about the free as in beer. Not as much free as in freedom regarding Apple's stuff.

Apple used to charge for all their software. I give FOSS credit for changing that. I think Lion was the first free OS upgrade. I credit FOSS for Microsoft giving a real copy of Visual Studio away for free. They've done it in the past, IIRC, but it was so hobbled, it was useless.

<comment><USER43> >Apple used to charge for all their software. I give FOSS credit for changing that.

I give the credit to Microsoft's market share. The fact is ~99% of Mac switchers like me previously owned Windows boxes and ran mostly proprietary Windows software. The free applications you get with a Mac are a way to cushion the blow of giving those up and in some cases offer features you just can't get direct equivalents for on Windows. Offering Time Machine, Photos, iMovie, Pages, etc for free has nothing to do with the existence of Libre software and everything to do with marketing the platform to switchers from Windows.

Clearly Libre software has had a huge effect on OSX, in fact the OS itself is based on free software and large swathes of its base components, tools and services are free software of one sort or another to this day. But none of those are name check features marketable to consumers other than just as MacOS.

In the dev tool arena yes, free software has had a huge effect. Specifically I think making very capable versions of VS available free was a response to the existence of high quality free .NET development tools. MS want people to develop on Windows using their own tool chains and if roughly equivalent free tools exist and become popular, there's really no cost to offering an equivalent for free any more given VS has to exist anyway.

<comment> psy-q > The fact is ~99% of Mac switchers like me previously owned Windows boxes and > ran mostly proprietary Windows software

And now it's mostly proprietary macOS software. As you mention, the hard hitters in Apple's lineup are proprietary (Time Machine, Photos, iTunes, etc.) and the average user doesn't care that they can use BSD utilities on the command line. It's not dissimilar to the PS4, Switch etc. not being OSS consoles despite running a BSD kernel. Just because they use some FOSS parts for their OS, a FOSS ecosystem doesn't automatically appear.

I also think there's very little to no real community around Apple's FOSS, at least for their homegrown projects, not counting e.g. CUPS or KHTML/WebKit where they got the community for free when they took over or adopted the project. Note that even that didn't go without problems (e.g. with the KDE project) and Apple first had to learn how to behave as a good FOSS citizen.

Other community bits weren't as successful. OpenDarwin for example has shut down and PureDarwin needs a release still. Swift might be an exception and maybe we'll see more of that. I may also be very wrong here, I don't follow their projects too closely.

To even develop on macOS "officially", you need Xcode, thus an Apple ID, thus there is forced registration. You're transmitting your personal details to a US company and you agree to their terms and conditions, which can already be a problem. Are Iranian developers excluded? Cuban ones? Oh, it depends on the whims of the current US administration, you say? The GPL for example does not tolerate such limitations.

I don't know, but I think the atmosphere on macOS today is more like FOSS is present, but not really encouraged by the platform owner, and that's important. It's not like it was when macOS was still OS X and everyone was all "ooo, look, Ruby comes preinstalled!". Now that they managed to attract some critical mass of developers for macOS to be viable, they don't seem to care that much about FOSS anymore.

</comment></comment></comment></comment></comment><comment><USER44> Free non-commercial and non-free commercial software are both wildly different products in practice.

I installed some package recently that fucked with my X config, or my kernel modules, I don't know. But my hybrid graphics is now fucked and I have crazy artifacts all over my screen. The default install of this distro does not result in a working config, and I had to spend three days to figure out the insane set of software and configuration I needed to make it work last time. (Also, I added extra RAM, and now hibernating doesn't work)

There is no commercial support for this laptop running this distro. My free software has no "revert to a last known good working system state" button, like some non-free software. Doing all the work to fix the graphics again may literally be more expensive than buying a new Windows laptop.

Thanks, Free Software.

<comment><USER45> Windows support is provided by the manufacturer of the laptop. Linux support is provided by a finite supply of free labor.

Instead of whining that not enough volunteers provided free labor to make whatever laptop you already invested in work better perhaps buy machines that are well supported or even better ones which come with Linux.

This approach has worked well for me for 14 years.

<comment><USER44> Or I can buy a machine which is not only supported, but actually works, with basic features and quality testing baked in. But that's not the point.

The point is that free software devs asking for a thank-you is like a dog owner asking for a thank-you when you don't step in their dog poop on the sidewalk. They weren't walking the dog for my benefit, and I'm not going to thank them for getting to walk around their crap.

<comment><USER45> What is wrong with your skewed perspective

</comment></comment></comment></comment><comment><USER46> > It means that someone has just donated hundreds of hours of work for you. > Free of charge!

I think that misses something of the ethos of free software. It's not like somebody donating their valuable time to work in a soup kitchen. It's much more like somebody too lazy to spend thirty seconds doing a menial task like everyone else, so they instead spend three months creating a program that automates that thirty second task-- with the side effect that the rest of computer-using humanity gets out of doing that menial task, too.

So in a way it does require a thank you. But in another way releasing it as free software is the least they could do given all the time they wasted just to get out of doing work.

<comment><USER47> I for one have spent over 20 years continually expanding my application, as free GPL software, and I stopped counting the hours long ago.

It is a gigantic amount of effort to design non-trivial software. Heck, just keeping everything stable and up-to-date is a project in itself (periodically having to adopt modern platform APIs, for instance).

And usually I receive very little feedback. I can see downloads in the thousands and I doubt I've had more than a few E-mails a year.

You might be misled by the tendency for people to hack random things together and dump them on GitHub, never to be touched again.</comment></comment>


Ask HN: What happened to Google's programming-related search results? - <AUTHOR> Historically, Googling tech questions would yield a link to the appropriate section of the official documentation, relevant posts from Stack* or personal tech blogs, and maybe a wikipedia/c2 article.
However, as of late (~past 6 months), 30-50% of the results are w3schools-esque sites like "tutorialspoint.com", "thegeekdiary.com", "cyberciti.biz", "geeksforgeeks.org", "thegeekstuff.com", "appdividend.com"... all providing some ugly, ad-littered rehash of the real documentation. This occurs even in an anonymous Google session [0].
While the official docs are usually still first, they are increasingly getting overshadowed by these terrible results, particularly in the Google featured snippet [1]. Both ddg and bing seem to suffer from the same problem.
Is the pagerank of these sites legitimate, or the result of some new SEO tactic? Is this phenomenon actually as recent as it seems? Is there a centralized list of such websites somewhere that I can blacklist?
[0] https://i.imgur.com/U0CKhrf.png [1] https://i.imgur.com/TyWoKgS.png <comment><USER2> > ad-littered rehash of the real documentation

It could very well be that ad-contaminated content is preferred because it's what pays Google's bills.</comment>


Using Python to load JavaScript packages into any website via browser automation - <AUTHOR> https://github.com/seleniumbase/SeleniumBase/blob/master/help_docs/js_package_manager.md <comment><AUTHOR> Here's the main website: [https://github.com/seleniumbase/SeleniumBase](https://github.com/seleniumbase/SeleniumBase)

</comment><comment><USER2> Selenium to the rescue!</comment>


PostgreSQL Bloat: origins, monitoring and managing - <AUTHOR> https://www.compose.io/articles/postgresql-bloat-origins-monitoring-and-managing/ <comment><USER2> Does anyone knows of a good blog comparing pg against other major rdbms( oracle, mssql, mysql) and especially how they deal with transactions, and replication ( and why, for example pg is the only one in my knowledge having this vacuum issue) ?

<comment><USER3> >why, for example pg is the only one in my knowledge having this vacuum issue

Because other DBMSs have different MVCC implementations. Basically they keep that "snapshot" row versions in other places, not in the table itself. For example, in Oracle they go to undo segment; in MSSQL to tempdb (or you can just disable MVCC); and in MySQL with InniDB to rollback segments similar to Oracle (not surprising :).

Other MVCC implementations have their own drawbacks of course.

<comment><USER4> _> in MSSQL to tempdb (or you can just disable MVCC)_

In fact you have to explicitly turn it _on_ in MS SQL Server. Twice: enabling ALLOW_SNAPSHOT_ISOLATION at the database level and setting transaction isolation level to READ_COMMITTED_SNAPSHOT for your connection/transaction.

In MS SQL Server it is an optional enhancement (added in MSSQL2008 IIRC) that you chose to use if your use case fits it, rather than being the primary method as it is in postgres. A great many developers using MS SQL Server don't even know the option exists.

<comment><USER5> > A great many developers using MS SQL Server don't even know the option > exists.

Yes, default behavior is so prone to locks - I learned it the hard way. Switching READ_COMMITTED_SNAPSHOT ON brought new life to our DB.

</comment></comment></comment></comment><comment><USER6> Upcoming 9.6 has a great feature to speed up vacuum (thus keeping bloat controlled ).

<comment><USER7> Not really. What's much faster is the wraparound protection vacuum which is a special more thorough vacuum that runs at a configured interval which defaults to every 200M transactions against a database.

Only that one is sped up to now run roughly at the same speed as the normal vacuum

<comment><USER6> It looked to me that the freeze map allowed vacuum to skip pages not touched since last run, so avoiding a lot of work between runs.

<comment><USER8> That's not new though - the visibility map has done so for years (8.4 IIRC).

</comment></comment></comment></comment><comment><USER9> The second problem the author mentioned, where a normal (non-FULL) vacuum has added dead tuples to a free list but the free regions are still scattered throughout the database files, seems like basically the same phenomenon as fragmentation in a filesystem. The symptoms are the same: extra I/O operations required due to inefficient packing of files/rows in the partition/data file, and inability to shrink the partition/file to the amount of actual data being stored inside (in the filesystem case, if the user explicitly requested a shrink; in the database case, automatically). pgcompact seems analogous to a typical explicit defragmentation tool, and VACUUM FULL probably has filesystem equivalents, though I haven't heard of them.

But I've heard that in "modern filesystems", fragmentation is basically a solved problem, with defragmentation handled incrementally behind the scenes. Why do we need some random hacky script to do it with modern PostgreSQL?

<comment><USER10> PostgreSQL is a great modern database when it comes to operational features and functionality but is not very modern at the infrastructure level. Stuff like backups, replication, scaling, data file maintenance, etc., are still not well developed.

The answer to your question is that the work just hasn't been done yet. It seems like the pace has been picking up recently, and I certainly like the new features, but I do wish the team would focus more on the behind-the-scenes infrastructure stuff more.

<comment><USER11> What's the reference point here? To my mind a lot of the advantages in Postgres are around it's mature tooling for backups and replication; autovacuum is more than sufficient for fairly complex workloads when it comes to data file maintenance, and really the only somewhat-sore point is horizontal scaling - but even there, a lot of the pain comes from there being _multiple_ viable solutions in-the-wild, with none having decisive buy-in across the userbase, and as such no out-of-the-box solution in the standard DB (which is, happily, recognized by the developers and very much a focus of current development work).

But, I'm comparing with mostly MySQL(/it's myriad descendants) and the whole NoSQL ecosystem; for all I know the tools available for PG are hopelessly primitive for people coming from of Oracle/IBM/SQL Server/Ingres/Teradata(/others? I pretty regularly learn of new DBMS engines with shockingly large companies and engineering orgs behind that that I've just never heard of; I'm sure there's plenty more.)

<comment><USER10> You have it covered in the last sentence. There are tons of 3rd party tools, scripts, packages but nothing seems mature and ready for production use. It all feels like hacking things together, especially when comparing to the bigger commercial databases, which is a major issue when that's the market that postgres is targeting now.

</comment></comment></comment></comment><comment><USER12> Excellent article - it reminds me of this comment:

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

In Oracle you can set the amount of MVCC storage, can any experienced PostgreSQL DBAs confirm if bloating is a big issue they must deal with?

<comment><USER13> We do provide PostgreSQL support/DBA for a lot of customers, and while I don't have any detailed stats I probably can make some general conclusions ...

I'd say that for most deployments bloat it's not a big issue. But of course, once in a while a customer gets bitten by it and we have to intervene.

There's a variety of reasons for that:

1\. disabled autovacuum

Hey, we've disabled autovacuum because we can't risk it affecting production! Hey, we do know our workload patterns much better! Hey!

2\. default autovacuum configuration (or bad tuning)

The defaults are very conservative, and generally require tuning (cranking up) on large databases. But people tend to do exactly the opposite, driven by the misconception that it will make autovacuum less intrusive.

3\. doing things that are known to break things

Like, keeping transactions open for a long time.

4\. pathological workload patterns

There are a few workload patterns that result in bloat (particularly in indexes), and autovacuum can't really fix that. For example large bulk deletes may cause this.

This is probably the one thing that can't be fixed by configuration changes, etc.

<comment><USER8> Re 4) Bulk deletes causing index fragmentation isn't really related to MVCC tho; and it's certainly something non mvcc engines also have troubles with.

</comment></comment></comment><comment><USER14> To the author: those code snippets would be 10x more readable if you got rid of the useless "admin@aws-eu-west-1-portal:compose (session 1)" preceding each input line.

<comment><USER15> And/or get rid of the insanely narrow fixed-width centered column and let the user resize it along with the window. So many programming blogs put code samples in a fixed-width unresizable column.

<comment><USER16> Not sure about this suggestion. Long lines of text are difficult for eyes to track. That's why you'll see tools like "Clearly" format text into narrower columns. Apparently there is an optimum number of words per line.

Here is one write up on it: [http://baymard.com/blog/line-length- readability](http://baymard.com/blog/line-length-readability)

<comment><USER17> Short lines are definitely good for prose (books makers have known this centuries), but I find that code is different. I tend to find code that has longer lines is _much_ easier to read than code that rigidly adheres to (say) an 80 column length limit.

I think it's because I tend not to read code in order. I like to see the shape of it, look at just the beginning of the line to see what might be going on in that line and only looking at the whole line if it seems relevant to what I'm doing. Normally just seeing the first 20 or so characters (or pulling some keywords out from syntax highlighting) is enough to understand the broad strokes.</comment></comment></comment></comment>