Writing Great Mystery Plots - <AUTHOR> https://www.vulture.com/2019/10/charles-finch-on-how-he-writes-charles-lenox-mysteries.html <comment><USER2> > I start by writing a brief, extremely dull short story ...about three pages > ... I refine it for weeks...

> that small story contains a full, straightforward account of the case my > detective must solve, told in simple English. It enumerates who committed > the crime and why, how they covered it up, and all the stuff of mystery > novels: clues, red herrings, false leads, bloody knives, mysterious scars, > anonymous notes, midnight rendezvous — in short, all the details I know I'll > have to omit from the real book I write, the actual mystery novel.

This is gold. Thank you.

<comment><USER3> Interestingly, it's quite similar to how Raymond Chandler taught himself to write - he took a popular short story (by Erle Stanley Gardner I think), wrote an outline of its plot, and then wrote his own story from the outline and compared it to the original. He clearly didn't keep up the process for his original works; it's interesting to wonder what the result might have been.

<comment><USER4> I did the same, except with Dan Brown. I wrote a bit about this process here: [https://gabrielgambetta.com/tgl_swiss_trains.html](https://gabrielgambetta.com/tgl_swiss_trains.html)

Every time this comes up, someone asks to see the actual spreadsheet. I've shared it here: [https://docs.google.com/spreadsheets/d/1HdlD_tmmm1D0zX1JgXzF...](https://docs.google.com/spreadsheets/d/1HdlD_tmmm1D0zX1JgXzFVSFB9nk6LT_DMDnsIPugl0M/edit?usp=sharing)

<comment><USER5> Cool, thanks for sharing!

</comment></comment></comment></comment><comment><USER6> > The first impulse of each mystery I write is some crime — or occasionally > some enigmatic and ominous image — that gets a grip on me. (A good test I > use for these is whether I'd listen to a whole season of Serial about > whatever I just made up. If not, I scrap it immediately.)

> But writers often falter when they simply ride that feeling without trying > to shape it, which is why Gone Girl is better than nearly every novel that's > been published since it came out. I'm not a complete inspiration skeptic — > once in a while, as Hemingway said, you get lucky and write better than you > know how to write — but it's a rare novel that can survive on it > exclusively.

Seems like good writing advice in general

</comment><comment><USER7> Good read. I recommend a similar essay by Ian Fleming on the topic that I love, "How To Write A Thriller" which contains quite a few gems:

[https://lithub.com/ian-fleming-explains-how-to-write-a- thril...](https://lithub.com/ian-fleming-explains-how-to-write-a-thriller/)

> Well, I describe myself as a Writer. There are authors and artists, and then > again there are writers and painters

> Writing makes you more alive to your surroundings and, since the main > ingredient of living, though you might not think so to look at most human > beings, is to be alive, this is quite a worthwhile by-product of writing, > even if you only write thrillers, whose heroes are white, the villains > black, and the heroines a delicate shade of pink.

<comment><USER8> > There is only one recipe for a best seller and it is a very simple one. You > have to get the reader to turn over the page. Yes, indeed :)

</comment></comment><comment><USER9> > This is why it's funny when literary novelists who couldn't write a > competent John Wick novelization (I put this challenge squarely to A.S. > Byatt) call J.K. Rowling a bad writer.

Neal Stephenson wrote a lengthy reply (item #2) to a question that touched on this topic, posed on Slashdot many moons ago, and is still a great read:

[https://slashdot.org/story/04/10/20/1518217/neal- stephenson-...](https://slashdot.org/story/04/10/20/1518217/neal-stephenson- responds-with-wit-and-humor)

</comment><comment><USER10> > I refine it for weeks, as carefully as Rudy Giuliani mixing his old > fashioned before he Skypes in to Hannity, because, like Rudy, I'm focused on > doing a crime.

Wow did this ever make me laugh out loud, unexpectedly.

> you can be as schematic as James Joyce, notable author of white-hot beach > reads,

Another one.

</comment><comment><USER11> He's basically explaining the snowflake method, right? Start with a most basic explanation of the plot, sometimes just a single sentence that people would use to describe the book. Then slowly build out from there, adding more details in each iteration, until the plot is fully fleshed out. The creative process then switches from "What is this about?", to "How does this go about?".

<comment><USER12> There's two plots in a mystery novel: what actually happened, and how the detective figures it out. My understanding is that the short story he describes is the former, and defines the puzzle part of the mystery: what clues are available, where are they, and what do they really mean?

The actual novel, though, is the story of the investigation. It can be written in any way the author likes, so long as the detective only uncovers clues that the prewriting indicates should exist.

One clear example of this distinction is the old Columbo TV series, where the murder happens onscreen at the beginning of each show. The bulk of the time is spent on the mental sparring match between the culprit and the detective.

</comment></comment><comment><USER13> To summarize: write a spec for the crime, that way when you get to development it is consistent and focused.</comment>


How WeChat faded into the silence in India - <AUTHOR> https://factordaily.com/how-wechat-faded-into-the-silence-in-india/ <comment><USER3> WeChat seems to have never tried very hard to adapt their app for international users.

The English interface is reasonably well-tested (many of my Chinese friends use it to practice their English), but other languages might cause overflowing UI elements because the translated text is longer than accounted for.

That problem also affects the English version in some places e.g. when adding a contact, the short introduction you can write to explain who you are and why you're adding them has a length limit. It's probably enough for Chinese text, but requires being very concise when using English.

Many features are designed to prevent virality. Comments on a friend's timeline ("moments") are only visible to your shared friends. Small chat groups can be bootstrapped by scanning a QR code or by typing a shared passcode simultaneously, but beyond 100 users newcomers need to be invited by a member first. Comments on public articles are hand-picked by the author and only the author can reply directly. There used to be a feature displaying trending articles, but it seems to have been removed.

Those limitations prevent regime-critical opinions from spreading too quickly, but they also mean that only users with a large social circle on WeChat are going to stick with the app.

The article mentions women being harassed via the "people nearby" feature. My impression is that it is mostly used by men looking for hookups and by "women" who are prostitutes or pretend to be prostitutes to scam those men.

Successfully entering a market without already-strong ties to China would have required making large changes about the way their app works.

<comment><USER4> The people nearby and friend invite requirements being in problem in India but not in China can be explained by:

> QQ messenger – already had over 750 million monthly active users by the time > WeChat launched. A user could port her entire QQ social graph to WeChat by > just logging in with her QQ ID.

It sounds like WeChat is really just a renamed QQ of sorts. So any adoption comparison of messenging app uptake in other countries with that of WeChat in China should use the QQ launch of 1999, which makes WeChat's rise to ubiquity far less impressive.

<comment><USER5> More impressive is that, while this was going on, the original QQ quickly pivoted the actual mobile version of QQ in competition with WeChat.

Mobile QQ had more users than WeChat until 2015, and even today, there remain parts of the country + user segments that strongly prefer QQ on mobile.

</comment></comment></comment><comment><USER6> It's interesting how ubiquitous whatsapp has become in India that it has become a verb. My parents and other older generation folks often say "whatsapp this to me".

<comment><USER7> WhatsApp seems to have similar widespread market adoption in Brasil[1] too.

[1] [https://www.washingtonpost.com/world/the_americas/whatsapp-i...](https://www.washingtonpost.com/world/the_americas/whatsapp- is-upending-the-role-of-unions-in-brazil-next-it-may-transform- politics/2018/06/09/777e537e-68cc-11e8-a335-c4503d041eaf_story.html)

<comment><USER8> Orkut too was much popular in India & Brazil, looks like these both countries have similar users.

<comment><USER9> From my limited experience, I know in India you can get a lot of SMS spam. I wonder if people migrated to whatsapp for that reason?

<comment><USER10> I think one of the bigger reasons was something the article touches upon - image sharing. Internet connections can often be sketchy, and Whatsapps compressed image sharing often ran circles around its competitors.

The other reason was the identity to phone number mapping and the ease of setting up communities with those identities.

Yet another reason was you didn't need to separately pay for a mobile data package and a SMS package anymore - WhatsApp replaced SMSes and it fit frugally into the data plan.

I know that in my circles these played a big role. Reason 1 was especially significant for my parents/older relatives since my conversations with them are not text heavy (maybe them getting used to a device to type in for casual communication is a factor) - we often share images, family photos - <USER2> WhatsApp killed it in this niche use-case.

</comment></comment></comment></comment></comment><comment><USER11> TL:DR WeChat was too big for phones back few years ago when many people didn't have space to spare and data was expensive and slow. WhatsApp compressed files so they loaded quicker and you could keep more of them.

Then in 2016, Tencent for some reason invested in Hike Messenger when it was already in trouble. Hike was created by the son of a telecom guy. Sorta if the son of Verizon's CEO created an instant messenger app and got investment and support from his dad and the company.

<comment><USER12> The last time I tried Wechat it slurped into the 300MB range after installation (apk + app data) - I have 3 contacts there.

Comparison:

        WhatsApp apk 39.86MB (2018-10)

I have a few leftover installers for ancient windows, eg. XP, for the fun and memories.

        1.9M Apr 18  2009 SkypeSetup.exe (2.6 I think)
        8.7M Dec 15  2007 trillian-v22.214.171.124.exe

I so badly want the ancient skype back.

<comment><USER13> Ancient Skype pioneered the concept of having a shim setup and downloading the actual setup.

<comment><USER12> That's... valid, though I seem to recall that particular version was skype itself. I need to install that on an XP without internet now to verify.

</comment></comment></comment></comment><comment><USER14> Can anyone tell us if WeChat's inability to flex to the Indian market was intentional and "arrogant" or was it unintentional? They call them "blind spots" for a reason.

</comment><comment> type-2 hike is dead, everyone uses whatsapp, the kids use snapchat, and people use telegram for large groups / interests.

<comment><USER15> I'm not sure what your message is supposed to be saying / bringing to the table.

Also, what a very localised generalisation. The article is about how the dominant app in China is faring in India. Other countries have different usages.

Eg near both india and china Line and fb messenger are dominating Thailand while Whatsapp has trouble there (lots of people have it, nobody uses it), snapchat is still hisptery/rare, wechat is limited to chinese expats and nobody has even heard of telegram.

<comment> type-2 Just my personal observations. I thought we were talking about use of chat apps in India so of course it makes sense for me to talk local. Another personal observation; the tibetan community in india uses wechat, snapchat is very popular among the youth, so is instagram. FB is for old people. The important thing to take away from the article was that _" India is divided into three consumer segments: the first 100 million, mainly the urban or affluent Indians and are the main targets of indulgent e-commerce brands; the second 100 million classified as the aspiring class; and the last a little over a billion — three segments he calls the splurgers, strivers and survivors."_ and wechat appealed to none

</comment></comment></comment><comment><USER16> Perhaps backdooring by the Chinese government?

<comment><USER16> To the downvoter: I'm sorry but this is not speculation but a statement of fact. All Chinese communication systems are state mandated to be backdoored, and given the industry, state officials get an automatic share in the company and a seat on the board. It's not too say the CIA/nsa/FBI hasn't tried to do the same in America, but it's _legal_ to provide secure software here, whereas in China it's illegal.

</comment></comment><comment><USER17> What supprised me is that you need to design your app around the fact that the entire country has a stalker problem. That really annoys me.

<comment><USER18> I think that point in the original article isnt 100% accurate.

The 'People Nearby' feature can be turned off in the settings, but you also have to click into it to use it - it's by no means automatic (ie. you sign into Wechat and suddenly it start getting random harassing messages). Your visibility expires after a few minutes.

It's never been used as a feature to add a contact - in China is was mostly used for hookups in the early days, and now if you're in a big city it's mostly prostitutes and/or people trying to sell products.

Chinese women using that feature would absolutely have received 'stalking' messages, but that's basically the same as women receive on _any_ kind of dating or hookup app.

The only difference I can see (speculating somewhat about Indian users) is that Chinese users have always seemed quite happy to use an app for their work/business/friends/school that also includes basically sex-on-demand type features. I know whenever criticisms of Wechat are brought up in the West, a lot of people focus on the fact that how could you recommend this app to your dad or gran or kids, knowing that it has this weird dark and nefarious corner in it.

So I dont think it's fair to say India has a stalking problem based on this - more like, Wechat has a weird feature that enables potential sexual harassment that Chinese users don't seem to care about.

<comment><USER3> > Your visibility expires after a few minutes.

Last I checked, it was 6 hours. You can clear it manually, but that might not be obvious to a first-time user who clicked through the explanatory pop-up without reading. (Or maybe that was added later.)

<comment><USER5> This is set differently based on account region. International users have a higher expiry time.

</comment></comment></comment></comment><comment><USER19> After reading the article, much more assertive on DO NOT USE Whatsapp. Hate being sent messages from strangers. Even I have someone on my contact, probably it is someone I somehow know from work or long-time-no-see met-once- person, why do you you want to have them on your social chatting app?</comment>


Lasersaur: The Open Source Laser Cutter - <AUTHOR> http://www.kickstarter.com/projects/405545346/lasersaur-open-source-laser-cutter-0

<comment><USER2> Maybe it's a non-issue, but I wonder what the legal/regulatory implications for this kind of thing are?

A member at our hackerspace (makehackvoid.com) has a cheapie CNC laser engraver that he's modified for GCODE and used to cut out some stuff. We looked at what it would take to put in our space, and at least for Australia the amount of regulatory/approval overhead is prohibitively huge, both for getting approval for the initial design and then for legally running it. No idea what it's like in other countries, though.

Also, I'm aware that the regulations exist for a reason. Big powerful lasers can do a lot of damage to unsuspecting humans.

<comment><USER3> In the US, you can do pretty much anything you want in your house, as long as nobody finds out. ("The right of the people to be secure in their persons, houses, papers, and effects, against unreasonable searches and seizures, shall not be violated.") Want to burn your eyes out with a laser? Have fun.

If you are putting it into industrial use, you probably have to have things like mechanical interlocks to prevent it from laser-ing off your employees' fingers, and you need to wear anti-laser goggles when using it. Things like that. Being open source or not from a big company shouldn't cause any problems, though.

As for a hacker space... well, how often do you get inspected? Never? Yeah. (I will point my friend at this comment, though, as he actually runs a hacker space. Having been there, I can't imagine there is a ton of regulatory oversight, however.)

<comment><USER4> As far as I know if you're selling things in kit form you're excused from any/all regulations and liability.

The kit airplane industry in the US was a reaction to strict liability laws that made private aircraft manufacture and ownership prohibitively expensive. (My old man has built and sold a few.)

I would guess if you can sell / operate an experimental aircraft without restriction you could do the same with cutting tools.

</comment></comment></comment><comment> bjelkeman-again This reminds me of the work the Open Source Ecology project is doing with a plasma torch table: <http://openfarmtech.org/weblog/?p=1424> <http://www.openfarmtech.org/index.php/Category:Torch_Table>

</comment><comment><USER5> Other people are doing this too, but it's still cool!

I know Neil Gershenfeld's students over at MIT are working on something like this as part of Fab Lab 2.0...</comment>


(Re)writing Reddit/Y.News in CakePHP - <AUTHOR> http://raminasser.com/2007/04/22/learning-cakephp-step-1/ <comment><USER2> I wonder how many of these posts we will see. Why spend time showing that you can duplicate a site using a certain platform when you could theoretically build an entirely new site in the same amount of time? Of course, the hard part is figuring out what you need to be coding, but I definitely subscribe to pg's philosophy of letting the code tell you. That is, just set out to do _something_ on the platform of your choice and before long, you'll find yourself doing something interesting.

Then again, this is probably a generalization of the procrastinator in all of us, that part of us that spends hours every day doing pointless activities, later lamenting that we don't have enough time to do X.

<comment><USER3> I have a different view. Taking exiting site as an "example" for "how to build a web app in X" type tutorial is quite useful, since the audience also know what to expect, and can have something working at the end.

Of course the true difficulty isn't in the surface features---scaling to thousands of users and millions of records, handling all sorts of corner cases of browers, etc... but that can come later, after the introductory tutorial.

<comment><USER2> Yes, I agree that these types of tutorials can be useful, and they should probably exist in some kind of "tutorial repository" associated with different languages. If that was the intention of the person who wrote it, then their time was time well spent in terms of how much they might help others.

Part of the feeling I get out of these submissions, though, is "Hey, our platform is just as good as RoR/Arc/x because we can do what they did _this_ easily." I was trying to point out that such activities are not really accurate depictions of how good a given platform is, because much of what makes a language or platform good is being able to "think in the language", to develop your design and ideas as you go. Once you have a solid design in mind, you could use just about any language to implement it.

That's why I thought it would be more interesting for someone to develop something new using a given platform, and show the kind of work that gets done that way. For example, pg often writes about how good Lisp is for writing programs when you're not sure of exactly what you want to do yet. It would be intriguing to see someone use a similar approach with their platform of choice, recording the process, in order to show how flexible it is and what kinds of issues come up from the very start. For example, how much re-writing occurs when a very small change is made? Does the platform provide enough abstraction capabilities to make the underlying implementation transparent?

As I've been reading On Lisp lately, I'm finally starting to get why pg likes Lisp so much. There's just something cool about being able to write macro- defining-macro-defining macros, and it turns out that it can make the development process much more liquid. Do these platforms (like PHP) support similar levels of abstraction? Judging from "For example, to display the time elapsed since a site was added, you could use: $time->relativeTime($site['Site']['created']), now that is awesome!" I think not, because there are definitely implementation-specific details there that hamper flexibility and would be better off being abstracted away somehow.

<comment><AUTHOR> Hey BrandonM, I am a big fan of CakePHP, the only problem with Cake is the lack of documentation, that's why i wrote this tutorial. I believe in giving back to the open source community, whether by writing code or writing tutorials. Also you make a good point about procrastination, guilty :), I will also give Lisp a try, especially that more developers are adopting it now.

<comment><USER2> If you wrote this to give back to the community, then I applaud you. Sorry to criticize.

</comment></comment></comment></comment></comment><comment><USER4> Didn't know this existed. Good to know there are people trying to framework- ize PHP. As PHP's my personal favorite web language, I'm hoping this'll gain enough momentum to knock my personal least favorite web stack off the top of the eager headhunter's resume keyword list.</comment>


Canada becomes second country to legalise recreational marijuana - <AUTHOR> https://www.bbc.com/news/world-us-canada-45806255 <comment><USER2> Meanwhile, [http://curacaochronicle.com/region/jamaica-just-planted- its-...](http://curacaochronicle.com/region/jamaica-just-planted-its-first- legal-marijuana-plant/)

<comment><USER3> Tho title does say it is the second country..</comment></comment>


Bill Gates: 'Death is something we really understand extremely well' - <AUTHOR> http://www.washingtonpost.com/blogs/wonkblog/wp/2013/05/17/bill-gates-death-is-something-we-really-understand-extremely-well/ <comment><USER2> > EK: The logistics of the operation seem basically impossible. How do you > ensure you hit every tiny village in a mountainous, rural, poor country?

> BG: We began using satellite maps and we're finding particularly in Nigeria > we were missing a lot of settlements, a lot of nomadic people. The thing we > were missing the most was a village would be on a border, and one government > would say, "Oh, that's on their side," and the other guy would say, "No, > that's on their side." So your chance of getting polio was super elevated if > you happened to live on the border between these local government > administrative boundaries.

How do they use that satellite data? Do they just have people scrutinising Google Earth? Or is there some kind of software solution to find settlements?

People have posted about how to find various things in images ('Where's wally / waldo?'; Coke cans; etc) so it'd be interesting to see if people can find small settlements on maps.

EDIT:

([http://stackoverflow.com/questions/8479058/how-do-i-find- wal...](http://stackoverflow.com/questions/8479058/how-do-i-find-waldo-with- mathematica)) and HN discussion (<https://news.ycombinator.com/item?id=3367865>)

(<http://research.google.com/pubs/pub37111.html>) (No HN comments)

(<https://s3.amazonaws.com/jsevart-web/waldo_public.pdf>) (No HN comments)

([http://stackoverflow.com/questions/10168686/algorithm- improv...](http://stackoverflow.com/questions/10168686/algorithm-improvement- for-coca-cola-can-shape-recognition#)) HN Discussion (<https://news.ycombinator.com/item?id=5002021>)

</comment><comment><USER3> Interesting points about how data analysis can drive understanding of health problems and solutions, world-wide.</comment>


Vdebug: a DBGP debugger client for Vim supporting PHP, Python, Perl and Ruby - <AUTHOR> http://joncairns.com/2012/08/vdebug-a-dbgp-debugger-client-for-vim-supporting-php-python-perl-and-ruby/

<comment><USER2> Works great, so glad to see someone did this! Way better than the previous attempts.</comment>


Why women are turning to newsletters - <AUTHOR> http://nymag.com/thecut/2015/10/why-women-are-turning-to-newsletters.html <comment><USER2> This is the third article I've heard about people moving from social to newsletters. Every single one mentions TinyLetter. I guess they have a really good social/marketing team.

</comment><comment><USER3> I wonder are we cycling back to old-fashioned curation from the river-of-RSS that became too much, through "intelligent curation" filtering on Twitter and Facebook that doesn't actually do what we want.

This time around might be better, or more dynamic, but it still relies on low- bandwidth human curation. All newsletters that I care about and don't stick in a later-bucket or immediately trash are curated by single individuals or tiny (two-three person teams). That won't scale, but I wonder is that the best solution until we code more intelligent spiders that curate for us.

</comment><comment> tefo-mohapi This makes sense. It could also spur an opportunity for "Newsletters as publications" as opposed to blogs, i.e. all content only available on a newsletter and nowhere else.</comment>


Craigslist explains why Yahoo Pipes were blocked - <AUTHOR> http://blog.craigslist.org/2009/12/pipes-faucets/ <comment><USER2> Well, that's short and terse.

</comment><comment><USER3> What? This doesn't clarify anything. All it says is, "we didn't like some people."

For an entity that purports to be such a healthy entity/community, Craigslist sure doesn't seem to be a very friendly internet citizen.</comment>


Mind vs. Brain: Confessions of a Defector (2014) [video] - <AUTHOR> https://www.youtube.com/watch?v=6Px0livk6m8 <comment><USER2> [https://youtu.be/6Px0livk6m8?t=245](https://youtu.be/6Px0livk6m8?t=245)

i found this to be articulated perfectly..

the notion that our current abilities in regard to interacting with complex networks: ~monte carlo; is analogous with copernicus's abilities to interact with planetary trajectory without calculus

i only have a tangential familiarity with scale free, but as i understand it scale free is more of the same in regard to interactions with networks

but i do agree that wholly understanding network trajectories will have a significant effect on our understanding of cognition, neuroscience, ai, and some yet undiscussed consequence

[https://youtu.be/6Px0livk6m8?t=4551](https://youtu.be/6Px0livk6m8?t=4551)

von nuemann anectdote and quote..

as remembered:

        however, if the brain uses any sort of mathematics,
        the language of that mathematics must certainly be
        different from that which we explicitly
        and consciously refer to by that name today

from the book(o):

        However, the above remarks about reliability and
        logical and arithmetical depth prove that whatever
        the system is, it cannot fail to differ considerably
        from what we consciously and explicitly consider
        as mathematics.

.

it took me some time and effort to find the lecturer's name: David Dalrymple; so i'll link it here(i)

(o) [http://www.amazon.com/The-Computer-Brain-Silliman- Memorial/d...](http://www.amazon.com/The-Computer-Brain-Silliman- Memorial/dp/0300084730)

(i) [https://en.wikipedia.org/wiki/David_Dalrymple_(computer_scie...](https://en.wikipedia.org/wiki/David_Dalrymple_\(computer_scientist\))

</comment><comment><USER3> Didn't he abandon the whole idea of playing with neuroscience, dropped out again, and went on to work at Twitter?</comment>


Mega's First Search Engine Gets Blocked - <AUTHOR> http://mashable.com/2013/01/31/mega-first-search-engine-blocked/?utm_medium=feed&utm_source=feedburner&utm_campaign=Feed%3A+mashable%2Ftech+%28Mashable+%C2%BB+Tech%29 <comment><USER2> Doesn't seem a script would be too hard to develop and implement which sends a takedown request for every link posted on these aggregator sites. Saw another go down the day after Mega launched and it was also a site of french origin.</comment>


Symbolic Algebraic Library written entirely in C# - <AUTHOR> https://github.com/ibluesun/SymbolicAlgebra <comment><USER2> I worked with GiNaC [https://www.ginac.de/](https://www.ginac.de/) and noticed that the bottleneck was variable substitutions, e.g., replace a variable with a constant and simplify the expression. I'm still dreaming of an efficient CAS.

<comment><USER3> [https://github.com/dsharlet/ComputerAlgebra](https://github.com/dsharlet/ComputerAlgebra) (disclaimer: my project) might do what you want, it lets you manipulate expressions and then compile them to "native" .net functions that can be evaluated with high performance.

<comment><USER2> Thanks! I'll have a look at it for sure. During my phd I developed a tool for reachability analysis of polynomial dynamical systems [https://github.com/dreossi/sapo](https://github.com/dreossi/sapo) I needed expression manipulation to compute Bernestein coefficients of polynomials

</comment></comment></comment><comment><USER4> FYI, small typo in the last line of your README.

vap p = SymbolicVariable.Parse("(sin(x)^3+cos(x)^5-x^3*y-3) | x");

should be

var p = ...

<comment><AUTHOR> thanks, your PR gonna be merged soon.

</comment></comment><comment><USER5> I wrote a simple algebra system in C# [1] that uses term rewriting expressed as algebraic identities to simplify terms. You can then compile them to .NET functions for efficient execution.

It uses a recursion limit, but I sketched out a design that eliminates the need for it by use of a specific data structure as used in the Simplify theorem prover to ensure termination in the presence of rewriting. Haven't gotten around to it unfortunately.

[1] [https://github.com/naasking/Algebra.NET](https://github.com/naasking/Algebra.NET)

<comment><USER6> You forgot to include [1], I think.

<comment><USER5> Ha, thanks, fixed!

</comment></comment></comment><comment><USER7> What is the license for this? Thanks.

<comment><USER8> There isn't one, so legally it's illegal to use

<comment><USER9> Sez who?

<comment><USER10> Copyright law

</comment></comment></comment></comment><comment><USER11> Nice!

Does it feature equation solving, variable elimination, etc? See for example:

[https://gist.github.com/dharmatech/a5e74ef03d98b3ff1c45](https://gist.github.com/dharmatech/a5e74ef03d98b3ff1c45)

<comment><USER12> are you trying to solve system of linear equations ?!!

<comment><USER11> That system of equations contains quadratic equations.

</comment></comment></comment><comment><USER13> Do you plan on supporting latex math expressions? That way we can visualize and run the same functions so we can make sure there is no typo.

<comment><USER12> I know latex expressions .. but I don't know exactly how do you want to merge them.

a use case would be helpful for me.

<comment><USER13> Suppose I find a paper submitted to a conference. The conference lets me download the original latex source of the paper. If I want to take the function they wrote out and take the derivative of it I'd currently have to rewrite the expression. Unfortunately this is very risky with extremely large and complex functions. Ideally it would be cool to just copy a latex expression into your "SymbolicVariable.Parse" method and tell it that it's written in LaTeX.

Copy and paste has a much lower chance to incur errors than rewriting an expression.

<comment><USER12> well I think that would be another layer before sending this to parser

so we can convert the latex expression and send it to the library after that .. I guess it is doable if we are limiting ourself to the math expressions only.

<comment><USER14> My hard-earned lesson is that representation and manipulation should not be commingled. Traditional mathematical notation is too irregular and idiosyncratic to be safely handled by a symbolic mathematics system. That's part of the reason why a trained eye can almost always spot the output of a CAS because though correct it almost always expresses stuff in vaguely 'mechanistic' and/or longwinded ways.

Mentioned elsewhere: I built an (incomplete) implementation of the Risch algorithm for symbolic integration and slapped a MathML-parsing front end on it, and frequently ran into ambiguous cases where the "abstract syntax" of the purported integral wasn't what any sane human mathematician would think it could be, yet these errors were self-consistent (limits on double- and higher integrals being circumstances that constantly vexed me).

No, don't suggest or try doing both of these things in the same place. Keep them separate. It's just basic software architecture.

</comment></comment></comment></comment></comment><comment><USER15> smath.info is much more advanced

<comment><USER12> you can check my opensource project that seems to make the same as smath

it is called Quantity System [http://QuantitySystem.org](http://QuantitySystem.org)

and it blends numerical and symbolic in the same context and it supports units in the context of quantities

check the specs and tell me your opinion.</comment></comment>


Ask HN: How often do you write code - <AUTHOR> <comment><USER2> Writing code has become like meditation to me. To imagine the scenario of what a code is supposed to do and then write it out.. its relaxing. Aside from my day job writing some code, writing code for any side projects, I usually do it at night when everyone is asleep, as it is the only time I can really find and actually concentrate. So I usually code from 1 AM until 5 or 6 AM... or until I fall asleep from exhaustion.

</comment><comment><USER3> Every day, and I would have it no other way :)

It's pure joy

</comment><comment><USER4> As a consultant I code about 4 to 5 hours every workday. Remaining work hours are spent reading code, docs or debugging.

</comment><comment><USER5> Every working day. Weekends are for reading, both tech and non tech, and traveling.

</comment><comment><USER6> I get about 27-28 days a month where I will code at least some.

</comment><comment><USER7> As a technical co-founder, 5-6 days a week if not 7 at times.

</comment><comment><USER8> Every workday.

</comment><comment><USER9> Daily! And I love it!

</comment><comment><USER10> 3 hours a day.</comment>


Evernote is moving to the Google Cloud Platform - <AUTHOR> https://blog.evernote.com/blog/2016/09/13/evernotes-future-cloud/ <comment><USER2> see this thread I posted last week [https://news.ycombinator.com/item?id=12489839](https://news.ycombinator.com/item?id=12489839)

</comment><comment><AUTHOR> Shocking that they've been hosting their own servers until now..

<comment><USER3> Running your own servers isn't rocket science, I'd hardly call it shocking.

<comment><AUTHOR> My point wasn't that it's hard to run servers. It was that they thought it would give them an advantage for storing their text documents.</comment></comment></comment>


Show HN: I built a repository of the best pricing pages in a week - <AUTHOR> https://bestpricingpages.com <comment><AUTHOR> Inspired by RGE and since pricingpages.xyz is dead, I felt this could be a fun project to build and an useful one.

Appreciate all feedback

<comment><USER2> What is RGE? Also I am curious about the process you took to select best pages.</comment></comment>


The State of Voice Assistants: Where's the AI? - <AUTHOR> https://rajat503.github.io/blog/post/virtual-assistants/ <comment><USER2> The issues are there from the 80's (NLU). The only advancements made in this field are speech recognition (which reached human level, and thus help in reducing error rates at the input to the NLU component), and maybe deep RF, to find the most optimal conversation response, however the machine still do not have a semantic understanding of users utterance, and will likely never have. I.e. if you solve the NLU issues, you are likely very close to AGI.

<comment><AUTHOR> You don't need NLU to be fully solved for assistants today which work on narrow range on tasks. For example - modern deep learning techniques can easily mark "Send a message to <person> \- What are you upto?" and "Check with <person> what he is upto" as similar. Assistants today respond correctly to the first input but not the second.

<comment><USER2> So I am talking about spoken dialogue system. I.e. system that can converse (I.e. at least 15-20 turns between the user and the system).For example, a system that can book multiple legs flight.

<comment><AUTHOR> Microsoft acquired Semantic Machines has the capabilities to do so. [http://www.semanticmachines.com/](http://www.semanticmachines.com/)

<comment><USER2> As I said. This is a problem from the 80s. Why would it would be solved now? and by a specific startup? what changed?. I think that in order to solve this issue we would need some breakthrough in symbolic AI and not just statistical AI. However, most of the research today is done on DNN and their derivative.

</comment></comment></comment></comment></comment><comment><AUTHOR> Reposting this post from 2018. Most of the issues still remain unsolved in 2019. Looking forward to the comments from the HN community.</comment>


CA Security Council – Myths about CA's - <AUTHOR> https://casecurity.org/myths/ <comment><USER2> This is truly impressive. Nine "myths" presented, of which _eight_ are self- evidently true. The only thing on this page that anyone can credibly argue about is whether SSL/TLS is so antiquated that it demands a ground-up replacement.

<comment><USER3> Obviously you know 1000x more about this than I do, so I'm interesting in your take on: "CAs do not provide value".

Is it really the case that anyone can get a CA to issue a certificate for "Wellsfargo.com?" Doesn't the CA provide some level of value to the consumer, that they really are connecting to someone who was able to prove they have control over the "wellsfargo" domain, or at least their DNS server? And, likewise, doesn't the CA provide some level of value to the Bank, who wants the nice "Green Lock" appearing in the URL bar?

Nobody is arguing that the system is bulletproof, that all consumers are educated to watch for a "green" HTTPS connection, and that 100% of certificates have always been assigned to the proper party, and only the proper party - but, by and large, isn't the job of a CA (and the value that they offer), to provide some level of assurance that you really are connecting to the website that you think you are connecting to? And, haven't they provided a lot of that value over the last decade or so?

<comment><USER4> SSL/TLS Certs are trying to deal with two separate problems:

1\. Over the wire encryption - where most of the criticisms in this thread are focused. Which I will also defer to tptacek's knowledge.

2\. Site identification as an anti-phishing mechanism. For even the cheapest certs (domain+email validated) - the CAs will reject SSL cert requests for anything that might be a phishing target. Detecting "wellsfargo.com" is pretty easy, where it gets tricky is things like "wellsforgo.com", "wellsfàrgo.com" etc.

This has even gotten weird as the browser makers have started to really de- emphasize domain certs vs ev certs (cheap vs expensive), to the point where in most cases now having a domain cert does not know green at all.

Screenshots: [https://www.expeditedssl.com/pages/visual-security- browser-s...](https://www.expeditedssl.com/pages/visual-security-browser-ssl- icons-and-design)

</comment></comment></comment><comment><USER5> "Hi, we're an association of all the people making money from _x_. Let us tell you why the highly appealing _x_ , responsible for saving the world from evil daemons, should remain in widespread use despite extensive evidence to the contrary."

"Those of us providing _x_ are really doing it well, and have to pass stringent checks, but those are too complex to go in to so please accept my hand-waving in lieu of actual evidence."

"We've been providing _x_ for so long, obviously we're great at it and it's something that needs to keep being provided."

"We have different flavors of _x_ , by the way: choose from vanilla, rainbow, or secure cookies and cream!"

"We go to conferences and sometimes talk to people. This makes us really important and stuff. Are you impressed yet?"

"Despite there nominally being 600 providers of _x_ , in practice only 65 are 'in the club', and 7 of us have formed an international cartel!"

"Some of us somewhat recently twiddled some configuration bits, therefore we are clearly on top of this _x_ -manufacturing technology stuff."

"It's true! Our reputation, as _x_ providers in the lucrative cartel, is of critical importance. We've even paid someone to draft this drivel. Are you convinced yet?"

"It's not true what those people say - 'Once you take _x_ there's no going back' \- you can vomit, have your stomach pumped, or induce psychosis or hypnosis for the duration of the undesired effects. Of course, you can't get anything done for that period of time, which may occur at the worst possible moment: when booking a plane ticket, making a critical banking transaction, or communicating about the human rights abuses of your government. But that's OK, because there's clearly a way to turn off our pervasive control of your 'highly secure' communications... right?"

</comment><comment><USER6> Remember that CAs were invented as a way to solve two UX and security issues:

1\. When I go to google.com, I want to be sure it's the same google.com everyone else connects to.

2\. When I go to google.com many more times, I want to get to the same google.com as I was visiting before.

It's relatively easy to do #2 (SSH was doing it for years), but it's very hard task to do #1 correctly. The first problem is essentially a problem of global consensus. It can only be solved using Bitcoin blockchain, poorly simulated with Certificate Authorities, or left alone as SSH did (which is fine for hackers connecting to their own machines, but not fine for global name system).

If anyone is interested in improving SSL/TLS, the way forward is to use blockchain to associate names and public keys so that users could know for sure that they connect to the same name as anyone else without trusting any CAs. Of course, that'd require development not only of a new DNS-meets-SSL protocol, but also robust lightweight Bitcoin nodes and correct UX conventions. That's hard, time consuming, but the only way forward out of the current mess.

Relevant quote from Nick Szabo ("leaving small holes unplugged"): [http://blog.oleganza.com/post/69174500046/leaving-small- hole...](http://blog.oleganza.com/post/69174500046/leaving-small-holes- unplugged)

<comment><USER7> >It can only be solved using Bitcoin blockchain

Could you please elaborate?

<comment><USER6> Proving that you see the same data as everyone else is Byzantine General's Problem which cannot be solved in information theory. However, it can be solved practically if there's a single hugely powerful chain of proofs-of-work referencing that data. Today it is Bitcoin's blockchain.

What you want to prove to yourself is that if "google.com" is associated with public key "04cafebabe", that association is also visible to everyone else (provided other people follow the same protocol).

The distributed DNS+SSL protocol could look like this (simplified):

1) To register a name "google.com", check that it's not registered yet (see below). If not, create a special Bitcoin transaction ("registration tx") that encodes both the name and the public key of the SSL certificate used by that server.

2) To check who owns the name "google.com", find the earliest "registration tx" on the blockchain (other people could add more, but only the first one is considered valid). If the name is 100 blocks deep, trust the public key associated with it.

The protocol can (and should be) extended to allow transferring the name to new public keys, you may check how Namecoin does it.

What you get in result is that every single user can be sure that they see the same up-to-date public key identifying "google.com" without any trusted Certificate Authorities who have failed at this promise multiple times already.

As a nice side effect, name allocation and trade is also decentralized. If you own name "google.com" and users respect the protocol, no one can take this name from you or censor your sale of that name to someone else. Also, you are free to register your own name without asking for anyone's permission and paying fees.

<comment><USER7> The fundamental problem is the first come first name nature.

It is not correct.

If I monitor DNS changes, and when new host names pop up. If I have the resources I can make a block-chain transaction automatically.

How will my transactions (provided I also create a new walletID) for each transaction be framed as fraudulent? Without community or authoritative over- site?

<comment><USER8> I don't understand this - domain names are first come first serve anyways. Why would it be bad to have the security part of the domain handled at the same time, in the same transaction as the registration part?

<comment><USER7> Namecoin works great in a vacuum. It would be amazing if DNS already didn't exist.

But using namecoin with DNS allows for duplicate and erroneous entries in one or the other. (DNS record != Namecoin record).

Currently most namecoin advocates pretend the former is the case. And it isn't, because have DNS currently. Namecoin is a complete re-invention of the system. Not a iterative improvement.

My issue is that in its current state one can make a namecoin entry that is correct as far as namecoin is concerned, and incorrect as far as DNSSEC or standard DNS is concerned. Thus rendering the system in a weird state.

</comment></comment></comment></comment></comment></comment><comment><USER9> _> As are subject to various checks and balances, including third-party qualified audits through WebTrust or ETSI and strict criteria set forth by leading browsers, before they are accepted in browser root stores._

yes. And in cases like DigiNotar and other less famous CA (and intermediate) compromises, we've seen how well that works.

</comment><comment><USER10> The big elephant in the room is the intermediate certificates; conveniently unaddressed in this glib "everything's fine" piece.

Everything's _not_ fine. We're only just beginning to tackle deep-seated problems in TLS and improve things, but we're probably stuck with some of the most regrettable decisions, like x.509 and the CAs.

We need Certificate Transparency most of all for intermediates. The roots may be small in number, and many of them a little outdated, but the number of still-unaccounted-for intermediates worries me. How many have no path and/or usage restriction? Who has them? Are _they_ all regulated? Because they should be. Some are likely in the hands of attackers. We should be accounting for them all.

The CA model, as it stands today, is inferior to DNSSEC for DV. Yes, under DNSSEC, those above you in the chain of authority can fake DNS responses, but at least no-one _else_ can. If the DNS root is removed from the control of a potential attacker (not that they'd ever get away with it, but still) then I view DANE pinning as strictly superior to DV certificates (although still not perfect, but nor is DNS). The CA model may still have use with EV.

The problem of a transparency equivalent for DNSSEC remains unsolved, and is under tension with it being considered a bad thing to be able to enumerate domains and hosts (although it is in practice very practical to do so anyway).

<comment><USER11> Mozilla addresses this problem by requiring all CAs to disclose every intermediary certificate they've issued.

CT will hopefully become widespread, given Chrome will kill EV indicators without it.

<comment><AUTHOR> Chrome is practically forcing CA's to adopt CT by removing green address bars for non-CT certs.

</comment></comment></comment><comment><USER12> Highly amusing that a security council refers to the technology it oversees using a name that was replaced 14 years ago because it was considered too insecure (and the IETF wanted their own name)

<comment><USER11> They're used interchangeably pretty much everywhere.

<comment><USER12> Don't you think that's just stupid, though? First of all they're not the same things at all, secondly nobody actually uses SSL 3.0, and third it's now broken due to POODLE. TLS rocks, SSL sucks. Yet we keep saying SSL when we mean TLS.

<comment><USER11> Do I think its stupid? Yeah. But honestly, it's used so people don't ask "what's that?". I don't think it undermines someone's credibility.

<comment><USER12> This is a page that purports to dispel misconceptions about the industry's core technology. This would probably be the perfect place to add a section called "I heard SSL is broken because <list of obsolete flaws in SSL>".

</comment></comment></comment></comment></comment><comment><USER13> Load of bs with some truth to it but avoiding to mention whats important. As per cab forum rules the 3rd party audit is about having scripts for generation, a determined (by yourself) set of ppl during ceremony.... Which you can tape and send to a paid auditor of your choice. Thats the only check/balance made.

The rest is in the same vein. Sounds good until you know the details. Then it doesnt sound all that safe or great anymore - more of a money making machine.

Turns out this site is made to defend these financial interests.

</comment><comment><AUTHOR> Is the CA Security Council doing a good job of providing information about what they do and why we should still trust CA's?</comment>


Things to Read to Become a Better Human and Developer - <AUTHOR> https://dottedsquirrel.com/everything-else/2020-reading-list-for-developers/ <comment><USER3> You _should_ read... _better human and developer_...

We all are individuals with different backgrounds, views, ways of living. Do you understand that your "better human" is different from my "better human", or your books did not teach it to you?

Maybe, "Self-reliance" by Emerson, Hesse's "Siddhartha", "Prometheus Rising", or something from Alan Watts can help you question your attitude, embrace the differences, and do not push your "shoulds" on others?

And do not make me start on book recommendations to become a better developer... :)

<comment><USER4> Maybe being less scornful and haughty in our answers would be a good start to becoming a better human

</comment></comment><comment><USER5> It seems like this is a list of popular books that most everyone has heard about, and just incidentally includes good ones. My biased opinion is that Rich Dad, Poor Dad and the Intelligent Investor won't be placed on the same list by anyone who has read both of them.

Since the author mentioned Gates, I do recommend just taking a look at books he actually read and reviewed as better recommendations: [https://www.gatesnotes.com/Books](https://www.gatesnotes.com/Books)

<comment><USER6> I second that. Gates' list is much better.

</comment></comment><comment><USER7> Self help books more or less carry the same advice, just told in variety of different ways and in form of different stories. They all seem to come to the same conclusions.

If you really want to read a good self help book, then toss everything from your shelf that has not been written before the year 1900.

Self improvement and ways to do it has been mastered by many people long long time ago. For those who write about it now, are milking the age old cow.

And it gets boring and repetitive real soon.

Also, I would like to talk about what does the Author of this post means when she says "Being a Better Human Being". What does it even mean? Isn't it just a definition or a set of definitions, conjured by some human(s), to force/condition other people to fall in line.

edit: typo/grammar

<comment><USER8> > toss everything from your shelf that has not been written before the year > 1900

best advice ever!

N.N. Taleb aggressively makes this point in _Antifragile_ too. After sticking to Taleb's advise for a year and reading only old things, not only did I stop writing myself, but I no longer think I have what it takes to contribute.

Everything that is worth writing about has already been written[1]. And if I contribute by writing myself I just dilute the pool of great prose by pissing into it. Most authors today (and 100% of authors on this list) have never read great books themselves and it's very obvious.

Reading new authors always leaves me with a feeling like I'm the rear end of the human centipede.

[1] anyone thinking about writing a book (or even a blog post) please before you start, proof to yourself that this sentence doesn't apply in your case (this is aka research and it doesn't stop with authors before your age - <USER2> fact it starts there).

EDIT: this list was created by Aphinya Dechalert ([https://nz.linkedin.com/in/aphinya- dechalert-7b782480](https://nz.linkedin.com/in/aphinya-dechalert-7b782480)) who works in marketing and her job seems to be making spammy lists like this one. Looking at the OP's other submission it seems all links go to either her medium or her blog. On this tweet she is amazed by all the traffic her site gets after posting this very link:

> _So...I relaunched[http://DottedSquirrel.com](http://DottedSquirrel.com) as > a community space a few days back. Went to have a shower and came back to > this. I checked and made sure it's not bots. It's not bots. #100DaysOfCode > #tech #learnToCode_ > [https://twitter.com/dottedSquirrel/status/120432373958576537...](https://twitter.com/dottedSquirrel/status/1204323739585765376)

<comment><USER9> Writing to contribute to the existing pool of knowledge is not the only reason to write! You may write because of money, fame, to learn a new subject or make a unique set of things already said or because you simply enjoy it.

</comment></comment></comment><comment><USER10> "The Alchemist". That was recommended to me and seemed to be turning up on people's lists of "must reads", so I read it. When I finished, I wondered; did I get rickrolled? Was the book just a longform version of the sarcastic-meme- popular, trite message that the real treasure was <something he already had / where he already was / whatever, you get the point> all along?

<comment><USER11> Worth noting is that The Alchemist was written in 1988. Maybe the idea was novel then? And many writers who had read it copied this idea and made it an overused trope.

<comment><USER10> Not impossible, although it does seem to turn up on people's reading lists from _this_ millenium and indeed, this decade.

</comment></comment></comment><comment><USER12> Good to see gems like the 4 hour work week and investing advice will make me a better human, I was starting to get worried.

<comment><USER13> I thought the same thing when I saw 4 hour work week. Apparently selling phoney brain supplements to golfers will make me a better human?

<comment><USER14> Well it might make you richer and as we all know - more money = better than.

</comment></comment></comment><comment><USER15> I wonder how bad people must be to always want to become a better and better? :D

PS to be clear I am not against improvement, I think it should be put to use as well, like 1 year to improve, next year you try to actually do something. Only improving and improving I see as a ridiculous exercise based on a sick idea that we are not "good enough".

<comment><USER16> I'm on a treadmill of Tim Ferriss podcasts and self-help books yet never make any products. It's debilitating.

<comment><USER17> Improvement treadmill can be seen as a subtle form of procrastination.

</comment></comment></comment><comment><USER18> The book on updating one's favicon missed the list. Tragedy, really.

</comment><comment><USER19> Read less. Do more

<comment><USER20> This is terrible advice.

<comment><USER21> Grothendieck (the mathematician) was at some point giving lessons at a place which had no library. Someone pointed out that there were not many books to read there, so he replied: "Here, we don't read books, we write them."

<comment><USER20> I've not heard that quote before, but I'm going to guess it was more an apology for the poor state of the library than a serious suggestion about how to achieve what Grothendieck achieved.

<comment><USER21> I never thought it could be an apology (it's kind of a material detail, they could still find books elsewhere), but rather a mix of sincerity (at least regarding his creativity), stimulation and joking.

</comment></comment></comment></comment></comment><comment><USER22> Any book list that includes Rich Dad, Poor Dad needs a giant asterisk emblazoned on it.

"Rich Dad" was made up. He does not exist. The author lied about that as well as his own financial acumen - he makes his money from $45,000 seminars promising riches and seldom, if ever, delivering.

Oh, and his company filed for bankruptcy last month.

<comment><USER23> Yeah, read this for a more thourough criticism of everything that's wrong with Rich Dad Poor Dad: [https://johntreed.com/blogs/john-t-reed-s-real-estate- invest...](https://johntreed.com/blogs/john-t-reed-s-real-estate-investment- blog/61651011-john-t-reeds-analysis-of-robert-t-kiyosakis-book-rich-dad-poor- dad-part-1)

However, one thing that is actually valuable from the book: The cash flow for rich people vs. everybody else. The idea is to own assets that generate cash. This cash (and only this) should be used to buy luxury stuff.

But of course, you don't need a whole book for this idea.

 __*

I add another "red flag" for such a list: "The Richest Man in Babylon". This is easily the most overrated book I have ever read. There is only one idea in the entire book and stretched over 100 pages or so: Reinvest 10% of your income.

That's it. There is literally nothing else in this book. There are like 5 stories or so set in a middle-age arabian setting or whatever about people who do exactly this. Invest 10% of their income, favorably in stuff they understand.

It doesn't go any deeper, nothing concrete, nothing helpful.

<comment><USER24> > That's it. There is literally nothing else in this book. There are like 5 > stories or so set in a middle-age arabian setting or whatever about people > who do exactly this. Invest 10% of their income, favorably in stuff they > understand.

Unfortunately, you'd be surprised at the sheer number of people for whom this isn't common sense and __need __to read this.

<comment><USER25> I think I must be one of those people. I wouldn't even know where to start to "invest 10% of my income favourably in stuff I understand." What does that mean? Examples?

<comment><USER26> I'm in an European Union country. Personally, I've given up on even trying to invest when I saw all the strings attached.

The bank I use has a service allowing you to put money in their investment funds, configured for different risk profiles.

You need to pay some fees to opt in. There seems to be an already paid yearly(?) fee when you opt in, but you probably need to pay yearly to keep the money in the system. When you decide to cash out, you have to pay income tax.

In conclusion, from my money, the bank needs to be paid, the state needs to be paid, and I doubt their 6% (assuming this is true) yearly return rate is going to net me anything than a loss unless I pump some 6 digit sum right off the bat and leave it there for decades.

<comment><USER23> I don't really understand your point. Yes, it is more complicated than simply putting money in a bank account and gain a minimum interest rate.

However, it's relatively straight-forward. Not sure about your particular bank, but many banks offer some automatic payments. You simply pay monthly to acquire shares of an ETF. Of course, this costs money, because every transaction on a stock exchange costs money. But generally, this share is yours and the bank keeps it for you. Usually, you can cancel the saving plans and get to keep the shares.

This already is so much easier than private retirement insurances and stuff like that where cancelling a contract comes with hefty fees.

And yes, if you make money on financial assets, you have to pay tax on the returns. This is even the case for the little interest on your bank account. Fortunately, the first 801€ (in Germany) are tax-free and also, the bank handles all of this for you.

I'd argue: If you read about this stuff for 1-2 hours, you know enough about the system and nowadays, it is way easier to do any of this than at any other point in the past.

> and I doubt their 6% (assuming this is true) yearly return rate is going to > net me anything than a loss unless I pump some 6 digit sum right off the bat > and leave it there for decades.

Well, 6% is the past performance and yes, this doesn't mean that it'll give you the same returns in the future. But generally speaking, it doesn't matter if you put in a 6 digit sum all at once now or acquire shares over the next 20 years.

The only general rule of thumb is: You shouldn't treat this money as a saving account. Don't expect to have access to this money whenever you want, because if you need the money RIGHT NOW, you might be forced to sell your shares at a loss.

</comment></comment></comment></comment></comment></comment><comment><USER27> I'd just advocate read non fiction, a lot of it, across many different subjects, there's almost no non fiction book that hasn't influenced my perception of the world around me and introduced me to new ideas

</comment><comment><USER28> Huh, I was hoping for more maths/CS theory/software architecture. What are some books that you feel really catapulted your understanding of a particular facet of programming to the next level?

<comment><USER29> Well, it very much depends on ones goals and ones context, doesn't it? Which impacts what ones brain pays wants and what it focuses its attention on, and what it filters out no matter how much you attempt to cram it in.

What I found a revelation and a bug eye opener - yes as a (CS degree) programmer - was: _medicine, chemistry (and org. chem and bio.chem), biology_. From Coursera and edx.org. When I did this it was all completely free, now they put some restrictions on some courses (Coursera more so than edX), for example that as a non-payer you cannot do all the exercises.

 _Even when /if the linked courses are over, accessing there content should still be possible. The courses are free, a certificate is not necessary. Some homework or exams may not be available for non-payers._

Best (university level introductory) course for biology: [https://www.edx.org/course/introduction-to-biology-the- secre...](https://www.edx.org/course/introduction-to-biology-the-secret-of- life-3)

Bio-chemistry: [https://www.edx.org/course/principles-of- biochemistry](https://www.edx.org/course/principles-of-biochemistry)

Physiology: I actually found a lot of lectures on Google better than any of the online courses, start from [https://www.youtube.com/results?search_query=physiology+](https://www.youtube.com/results?search_query=physiology+)

Fundamentals of neuro-science: [https://www.mcb80x.org/](https://www.mcb80x.org/) followed by "Medical Neuroscience" on Coursera: [https://www.coursera.org/learn/medical- neuroscience](https://www.coursera.org/learn/medical-neuroscience) \-- easily one of the best courses out there

A very simple course combining (very simple, beginner level) programming and (basic) biology: [https://www.edx.org/course/nature-in-code-biology-in- javascr...](https://www.edx.org/course/nature-in-code-biology-in-javascript) \-- what's interesting here for a programmer definitely isn't the Javascript code, but asking biology questions that can be answered with (even simple) code.

 _Staticstics_ is a huge part of medicine and biology - plenty of good courses on probability, statistics (all levels) and courses using R or Python, here a random example course: [https://www.edx.org/course/statistical-analysis-in- bioinform...](https://www.edx.org/course/statistical-analysis-in- bioinformatics)

On so many more levels than I can briefly write down here this "field trip" into bio-sciences felt soooo much better than learning yet another programming language. Let's keep in mind, regardless of C++, Haskell, Javascript, and/or whatever framework, the hardware underneath all of it is all the exact same architecture. Looking at differences between the programming languages now seems to me like looking at a surface that to a naked eye looks completely smooth, but if you zoom in far enough with an electron microscope it looks like a messy mountain area. But when you do that you lose sight of the big(ger) picture. The excourse into (organic and bio-) chemistry and biology helped me get a better sense of where we are, at least it feels that way. The neuroscience helps remaining grounded (and getting more cynical) when reading popular headlines about "neural network" and "AI" and the like.

</comment></comment><comment><USER30> Russell Brand was a wtf moment for me

<comment><USER31> I found his book Recovery to tell a very powerful story of his trouble with addiction, and how he has worked through it. He goes quite deeply into self introspection and analysis of himself and his character, and how he needs to remain constantly vigilant of the instincts and urges that took him down those paths to addiction many times before.

I found this book to be one of the most raw and honest things that I have ever read. I'd really recommend against discarding it because of not liking the man or his character.

</comment></comment><comment><USER32> The post lost me at: "The idea is not to _just_ move to a remote country and use the exchange rate as leverage..."

<comment><USER33> I love reading reactions to things posted on HN

</comment></comment><comment><USER34> I would add "The Black Swan: The Impact of the Highly Improbable" by Nassim Nicholas Taleb which is also mentioned and referred in "Think fast & slow". It also helps understanding the world by showing examples of human error and misconception.

<comment><USER35> Can I anti-recommend Taleb? Maybe it's his delivery that puts me off but I just find him absolutely insufferable.

<comment><USER36> +1

Taleb comes across as a smug asshole. I don't see any reason to spend time in his company

</comment></comment></comment><comment><USER37> ITT people saying some of the books are great and others are not despite the fact the whole idea is to read them, keep what works for you personally, and dump the rest...

</comment><comment><USER38> All this self improvement craze is just a neurotic outgrowth originating from the decline of religion/community and growing individualism, change my mind.

</comment><comment><USER39> It's always great to have book recommendations. Does anyone have other "must read" book suggestions that have had a big impact on them?

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

[https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...](https://hn.algolia.com/?dateRange=all&page=0&prefix=true&query=books&sort=byPopularity&type=story)

</comment></comment><comment><USER40> Tip: If you can't find the time to read books, see if there are audio books available.

</comment><comment><USER41> >Rich Dad, Poor Dad

Doesn't speak too good for the author's ability to judge quality books.

</comment><comment><USER42> Russel Brand, eh? Sounds like a contribution from Sponsoring Brand ;)

</comment><comment><USER43> Not a single woman author… this doesn't seem wildly statistically improbable to anyone?

What a crock.

<comment><USER44> The author of TFA is a woman.</comment></comment>


Show HN - Focus on what matters most in your life [iOS app] - <AUTHOR> http://focusofmyday.com

<comment><AUTHOR> OP here. We just released an iphone app that helps you keep focus on what's really important in your life / work. It's an effective tool to support ideas pg wrote about in The Top of My Todo List essey. The app is free till Wednesday. Enjoy!</comment>


Beautiful, simpler IRC - <AUTHOR> http://pilgrim.io

<comment><USER2> Beautiful, simpler? It makes noises and I couldn't guess how to get a channel list or what the next step actually was in 3 commands. If I had to guess, this mostly exists because the IRC protocol is easy to recreate. I'll stick to ircII if I want beautiful and simple.

</comment><comment><USER3> I don't see what benefit comes from changing the basic IRC commands, like /join and /nick.</comment>


First Chromebook preview, selling for 500$ at Amazon - <AUTHOR> https://groups.google.com/forum/#%21msg/comp.sys.next.announce/avWAjISncfw/0y2ZtbECLAQJ

<comment><AUTHOR> Click on the huge "Chrome" icon to access the preview. The message displayed is Tim Berners-Lee's original memo calling for people to help with his WorldWideWeb project.

</comment><comment><USER2> Thanks for the heads-up. It's apparently been sold out. Anyone get in on this?</comment>


Calculate Elastic MapReduce job costs and resource usage - <AUTHOR> https://blog.cloudvertical.com/2012/06/track-elastic-mapreduce-cost-usage/

<comment><USER2> I always keep an eye on my EMR costs. Now finally someone can do it on me and I can keep that eye somewhere else. What a relief!

</comment><comment><USER3> Great way to keep an eye on EMR costs ...which can get pretty expensive!</comment>


Dijo: A terminal-based habit tracker written in Rust - <AUTHOR> https://github.com/NerdyPepper/dijo <comment><USER2> Please note that "cargo install" is intended for installing Cargo subcommands and Rust-related tools for developers, not for distributing general software to end-users. [https://github.com/rust- lang/rfcs/pull/1200#issuecomment-120...](https://github.com/rust- lang/rfcs/pull/1200#issuecomment-120662273)

<comment><USER3> Not sure if `rg` or `fd` are of either cargo subcommands or tools for developers.

<comment><USER4> `rg` is distributed via multiple channels - most distros have packages for it.

</comment></comment></comment><comment><USER5> I just have to say how much I appreciate the design of this. You killed it. It reminds me of Ronin [0] or something you'd see on /r/unixporn [1].

Also, really cool that this is written in Rust!

[0]: [https://100r.co/site/ronin.html](https://100r.co/site/ronin.html)

[1]: [https://www.reddit.com/r/unixporn/comments/dekj2i/oc_a_spoti...](https://www.reddit.com/r/unixporn/comments/dekj2i/oc_a_spotify_terminal_user_interface_written_in/)

<comment><USER6> Indeed it was on r/unixporn: [https://www.reddit.com/r/unixporn/comments/hu35i5/oc_dijo_sc...](https://www.reddit.com/r/unixporn/comments/hu35i5/oc_dijo_scriptable_cursesbased_digital_habit/)

</comment></comment><comment><USER7> I love the terminal UI how did you create that

<comment><USER8> Looking at [https://github.com/NerdyPepper/dijo/blob/8b91a7c0b3d9bd4fac3...](https://github.com/NerdyPepper/dijo/blob/8b91a7c0b3d9bd4fac3b140f5bc8a40ac324289a/Cargo.toml), it seems like it uses [https://crates.io/crates/cursive](https://crates.io/crates/cursive)

<comment><USER9> In other words, the author did a lot of hard work to shape a fairly general purpose UI library into a very neat design. Kudos!

<comment><USER10> There is also the font selection and the borderless terminal which improve the aesthetics Without that it could look like this [https://i.imgur.com/TVwkQI0.png](https://i.imgur.com/TVwkQI0.png)

But I agree, the author did really good job in creating a clean an visually pleasing UI only using text and standard symbols

<comment><USER11> So to make it look like in the demo, you have to tweak the settings of your terminal?

Perhaps terminals should have cascading style sheets ...

<comment><USER12> I always find myself wanting just a little more terminal text style control. Usually I'm left wishing I had either an alternative font mode or double sized text. (Double specifically to avoid breaking the X*Y text cell grid)

But little wishes for extra expressiveness aside, i really don't think terminal UIs would benefit from anything like CSS. The terminal functions as my working environment. I rely on being able to visually pattern scan for errors, warnings, typical command output, time stamp and log alignment etc. I do not want anything messing with how I set all this up.

</comment></comment></comment></comment></comment></comment><comment><USER13> Where is this data stored? The Wiki completely glosses over this subject, and I cannot tell from the code where it might save anything to (to be fair, I have never written in rust).

<comment><USER14> Looks like it is stored in

      Linux:   /home/alice/.config/dijo/habit_record.json
      Windows: C:\Users\Alice\AppData\Roaming\nerdypepper\dijo\habit_record.json
      macOS:   /Users/Alice/Library/Preferences/rs.nerdypepper.dijo/habit_record.json

[https://github.com/NerdyPepper/dijo/blob/master/src/utils.rs...](https://github.com/NerdyPepper/dijo/blob/master/src/utils.rs#L37-L48)

[https://docs.rs/directories/0.8.5/directories/struct.Project...](https://docs.rs/directories/0.8.5/directories/struct.ProjectDirs.html)

<comment><USER15> I haven't run this, so perhaps the behaviour is different to what I'm expecting, but since it uses `XDG_DATA_HOME` (`data_dir` in the `directories` crate) I'd expect it to appear as

        /home/alice/.local/share/dijo/habit_record.json

on XDG compliant Linux.

<comment><USER16> That's where it is for me, and not under ~/.config. It's a bit puzzling, because that's where I expected it to be.

<comment><USER15> In general ~/.config is only for config; data should be in ~/.local/share, but a lot of programs get this wrong and abuse ~/.config using it for everything.

Even worse are the programs which use it to cache runtime data; I should be able to add the entire ~/.config to a dotfiles repo without accidentally including personal data (other than that which might reasonably appear in a config file) or ephemeral data.

<comment><USER16> Fair enough, I guess this is actual program data rather than the config, you're right.

</comment></comment></comment></comment></comment></comment><comment><USER17> I tried various digital habit tracking tools, including mobile, web, and terminal based, and the only one that has worked for me is graph paper. It's fast and in my face next to my desk and I never forget to use it and see it all the time.

</comment><comment><USER18> Can it track my time spent running vim in various folders? That would be useful for me since in some solo projects I don't really commit changes often.

<comment><USER19> I guess not by itself, but you can control it externally in the command line. You would have to write a daemon monitoring the folder yourself.

[https://github.com/NerdyPepper/dijo/wiki/Auto- Habits](https://github.com/NerdyPepper/dijo/wiki/Auto-Habits)

<comment><USER20> Or a vim plugin. :)

</comment></comment></comment><comment><USER21> This is great! Simple and elegant. Just an idea, maybe you put a cheat sheet under :help command. It would be very useful for people fluent in vim.

</comment><comment><USER22> Love it! Everything should live in the terminal

<comment><USER23> Progress, who needs it.

[https://gunkies.org/wiki/UNIX_Sixth_Edition](https://gunkies.org/wiki/UNIX_Sixth_Edition)

<comment><USER22> Progress isn't about having pretty apps. It's about giving people what they want.

I want a thing in my terminal that I can use to track my habits

<comment><USER24> Sure, that's what _you_ want.

I would argue that _people_ want a more traditional app instead, with what I'm sure you'd consider a bloated and inefficient GUI. Considering that most people don't even know what a terminal even is, and that form regularly trumps functionality in day-to-day lives.

<comment><USER25> Then they already have multiple options for them to chose from...

<comment><USER24> The parent comment is implying that people don't want "pretty apps" and want simple functional apps like this exclusively.

I am arguing that what the parent commenter wants is valid, but is likely not what the general population wants.

In that respect, not sure how exactly your comment is relevant.

<comment><USER26> I don't think the parent comment was speaking for anyone but themselves. They expressed a preference, it was rejected as opposed to _" progress"_. The comment about progress being giving people what they want was a refutation of that - like, "it can't be progress _for me_ if it's not what I want." The fact that other people may want what they've been given is great - for them, progress! but it's also irrelevant to the point being picked at.

Perhaps I'm being overly charitable to the original commenter.

</comment></comment></comment></comment></comment></comment></comment><comment><USER27> If you are interested in a Web or Mobile (PWA) version: [https://github.com/kissgyorgy/every-day- calendar](https://github.com/kissgyorgy/every-day-calendar)

</comment><comment><USER28> Funnily enough "un dijo" is short for "digestif" in french.

[https://en.m.wikipedia.org/wiki/Apéritif_and_digestif](https://en.m.wikipedia.org/wiki/Apéritif_and_digestif)

<comment><USER29> And it means "he/she/it says" (or the passive-voice "it is said") in Spanish.

<comment><USER30> More like the past voice. "Dijo" -> he/she/it said. The passive voice it's "fue dicho" (he/she/it was been told _).

_ Said can get a different meaning, such as the reflexive voice of "decir" (fué dicho) -> it has been said.

</comment></comment></comment><comment><USER31> Does anyone have any idea, what font the screenshot is in ?

<comment><USER32> Looked up the author's dotfiles repo[1], looks like it's Iosevka.

[1]: [https://github.com/NerdyPepper/dotfiles/](https://github.com/NerdyPepper/dotfiles/)

</comment></comment><comment><USER33> Wow, I tried to solve a similar problem in a similar way (command line based progress tracker) with a small personal project called Trackstar: [https://github.com/dorkrawk/trackstar](https://github.com/dorkrawk/trackstar) but this is SO much nicer!

</comment><comment><USER34> for those looking for another open source task tracker, taskwarrior[1] is a good cli option. You can use VIT[2], curses-based front-end to taskwarrior. I don't use VIT, but taskwarrior integrates nicely with vimwiki using taskwiki[3].

[1] [https://taskwarrior.org/](https://taskwarrior.org/) [2] [https://github.com/scottkosty/vit](https://github.com/scottkosty/vit) [3] [https://github.com/tools-life/taskwiki](https://github.com/tools- life/taskwiki)

</comment><comment><USER35> wow, I had no idea terminal UI can look good.

</comment><comment><USER36> The "fully scriptable" link (configure dijo to track your git commits!) seems to be broken.

</comment><comment><USER37> Wondering if and how this could team up with orger. Could be an effient combo.

</comment><comment><USER38> try this [https://pp.elsetech.io](https://pp.elsetech.io)

</comment><comment><USER39> Great work. Love it.

</comment><comment><USER40> Very cool! Did you consider writing it in Go?

</comment><comment><USER41> Cool piece

</comment><comment><USER42> I can't shake the feeling of how ugly Rust code looks in comparison to Python, Clojure and Go.

<comment><USER43> As I python dev I feel kinda the opposite: rust is surprisingly pretty with the exception of massive overuse of shift key to the point where I'd consider it a health hazard.

The only other low-level language that is pretty that I found is nim.

<comment><USER44> Nim is nice. I Don't Like It™ because it compiles to C, instead of a True™ compiler intermediate representation, but it's a solid language.

</comment></comment></comment><comment><USER45> The rust community's insistence on ending every sentence "written in rust" is only slightly more annoying than the python community's "for humans" fetish.

<comment><USER46> this is a tech forum, it is common for the tech stack to be mentioned here when showcasing a product, whether it was written in Rust or a lesser language. (last sentence is a joke, stay calm)</comment></comment>


7 Places to Find the Code You Need - <AUTHOR> http://www.sitepoint.com/blogs/2008/11/04/7-places-to-find-the-code-you-need/ <comment><USER2> Sadly, most of these fail horribly if you're looking for Common Lisp code.

For example, on Google Code Search, "lang:lisp" turns up Elisp files. "lang:cl" gives Tcl code (!), and "lang:commonlisp" returns nothing. There doesn't seem to be any way to search for Common Lisp code.

github Code Search has a popup menu with the entry "Common Lisp", which looks promising, but it returns a bunch of *.el files (which it labels "(Common Lisp)", strangely).

Other code search sites I've tried are similar. If I want to find Common Lisp code, the best place is still pulling Norvig or Steele or Kiczales off the shelf.

</comment><comment><USER3> PLEAC is the best

<http://pleac.sourceforge.net/></comment>


Identicons and Visual Hashing - <AUTHOR> https://terrykwon.com/blog/visual-hashing/ <comment><USER2> No mention of Robohash? Tch!

[https://robohash.org](https://robohash.org)

<comment><AUTHOR> Wow, that looks really cool. From [https://github.com/e1ven/Robohash](https://github.com/e1ven/Robohash) it looks like there are dozens of components (mouth, nose, etc.) that can be combinatorically assembled, each of which has been hand-drawn, which must've taken a great deal of work on the author's part!</comment></comment>


Ask HN: What's your favorite open source commenting sytem? - <AUTHOR>

<comment><USER2> If you mean commenting system as in Disqus etc., then here's my answer:

I'm very excited about Discourse - it's still a bit "young" but reasonably mature, BoingBoing's "BBS" runs on it: [http://bbs.boingboing.net/](http://bbs.boingboing.net/)</comment>


Calculating Trajectory – In Case You Find Yourself Near a Giant Slingshot - <AUTHOR> http://mikesenese.com/DOIT/2010/10/calculating-trajector/ <comment><USER2> I am determined to find a way to use this to improve my Angry Birds performance.</comment>


Linus Torvalds on git (video) - <AUTHOR> http://www.youtube.com/watch?v=4XpnKHJAok8

<comment><USER2> FWIW, this is the video that was cited by Chris Wanstrath (of GitHub) as what got him into Git (on, I believe, his episode of the Changelog Show - [http://changelogshow.com/105/2274-episode-0-1-0-chris- wanstr...](http://changelogshow.com/105/2274-episode-0-1-0-chris-wanstrath- from-github)). It was a video that caught my attention at the time too, but I didn't get on the Git train for at least a year or two after.. _sheepish look_

</comment><comment><USER3> Man, he really hates CVS.

<comment><USER4> Having dealt even superficially with a large CVS repository... don't we all? SVN is at least more stable.

<comment><USER5> This classic essay always makes me chuckle. Especially when svn branching or mergeinfo goes awry

"If Version Control Systems were Airlines"

CVS:

"Watch out for layovers, though. It can take hours to merge new passengers into the formation properly, and it might take several attempts to take off afterwards."

SVN:

"At checkin time at the gate, if more than one person arrives with a copy of the same ticket, they are ushered into the "merging room" and each person is given a brick. The door is closed, something magical occurs, and the one person that emerges still able to walk is allowed to board the plane."

[http://changelog.complete.org/archives/698-if-version- contro...](http://changelog.complete.org/archives/698-if-version-control- systems-were-airlines)

</comment></comment></comment><comment><USER6> This is a video from 2007 that's over an hour long. Executive summary, someone, please?

<comment><USER7> Summary: Linus hates CVS and, by extension, SVN. Talks about the importance of distributed development and pains of the centralized model. You can work offline. On centralized, trivial decisions can't be taken because they pollute the central repository and leads to bad practices. Creating branches is not the main issue, merging FAST is. Git performs/scales well, 22K files on the Linux kernel repo, about 4 merges a day for 2 years since being tracked with Git. Mercurial is good, but Git is better. Git uses SHA-1 hashes for the full history, brings security against attacks and RAM/disk corruption.</comment></comment>