Ask HN: Feedback for quiz-based learning tool  - <AUTHOR>

Last year, I got the chance to meet my wife's extended family in Japan. However my Japanese vocabulary was nonexistent. So I built a prototype tool for myself to learn new words.
Recently, I decided to try and make the service useful for other people. So over the last week or so I've prepared and launched the prototype at mrflashcard.com. The primary feature is a quiz-based study mode, where the questions get increasingly more difficult.
It's running on Google App Engine and costs little per user. My plan is to offer pro subscriptions or to sell companion iOS and Android apps that have offline syncing.
If anyone here has a few spare minutes, I'd love to get any feedback from them. After clicking "Create new Deck", there is a button to add some example cards to try out. Thanks for taking a look! <comment><USER2> I've never used cards but it's kinda cool. I like your idea but I'm my opinion you should make plenty of cards of maaaaaany topics.

It's really boring and takes too much time if I have to submit my own cards.

<comment><AUTHOR> Good point. My plan is to take open data from things like Wiktionary and Wikipedia and dynamically generate up-to-date cards from them.

</comment></comment><comment><AUTHOR> Clickable link: <http://mrflashcard.com/>

<comment><USER3> Nothing happens in IE8 when i click on "Create Deck". I get blank.

<comment><AUTHOR> Whoops, that's embarrassing! I'll take a look. Thanks for catching that.

<comment><AUTHOR> Okay, fixed. Thanks again for letting me know.</comment></comment></comment></comment>


Ask HN: What's the best client for gmail for mac? - <AUTHOR>

I am looking for a client that allows me to integrate tools like rapportive, yesware, bananatag among others.
Thank you for your help! <comment><USER2> Airmail ([http://airmailapp.com/](http://airmailapp.com/)) is a very good Gmail client for mac and it has plugins. I don't know if rapportive, yesware and bananatag are supported though.

<comment><USER3> It also has a GPGtools plugin.

</comment></comment><comment><USER4> I've always stuck to gmail.com (although I'd consider switching to inbox.com if I could get over my inertia).

I've never really had any serious issues with it. It did have a patch of slowness a year back but that seems to have been resolved.

I'm not sure how the offline capabilities have matured - as I'm very rarely away from a data connection.

I don't want to hijack the thread but what are your prime reasons for wanting an alternative interface?

<comment><USER5> I've been very impressed by Inbox, especially the UI. It feels the way Gmail did when it first came out ~10 years ago.

</comment></comment><comment><USER6> Personally I've found Unibox a better fit for my usual conversation flow.

It's a bit new and not as polished as it could be, but when the chains get long, identity-based conversation threads seem much easier to manage.

</comment><comment><USER7> I just use Mail. It's fine. Still miss Sparrow though.</comment>


Continuations and advanced flow control - <AUTHOR> http://www.ibm.com/developerworks/linux/library/l-advflow/index.html <comment><USER2> There was a whole raft of discussions in 2006 on Lambda the Ultimate and elsewhere about using continuations for page flow in webapps, and ultimately the most persuasive argument (against) was that continuations implied linear flow whereas web-page flow could be non-linear, what with the back button, hyperlinks, and all that.

However, I think that continuations are still very cool, and are _especially_ cool when they can be serialized or written to disk/transmitted/etc., because this essentially lets you "time/space-shift" your thread/process, since it's just bits.

Right now, "suspending" a process is something that happens when you close your laptop or pause a VM, but I think that being able to do this at a much more fine-grained level of detail is what will allow general cloud-based computation to really take off, because individual threads would be portable across computing environments.

<comment><USER3> Btw, it is possible to suspend Unix processes from the command line by sending them the SIGSTOP signal.

      ;playing a song with iTunes
      $ ps ax | grep iTunes
      401   ??  S      5:29.21 /Applications/iTunes.app/Contents/MacOS/iTunes -psn_0_213044
      $ kill -STOP 401
      ;the song stops playing, and iTunes's CPU usage drops to zero
      $ kill -CONT 401
      ;the song resumes exactly where it was

I've done this to, say, Firefox, and resumed it sometime later with no ill effects that I've been able to detect. (Firefox usually has a secondary Flash plugin process; the interaction between the two when one is suspended is kind of interesting, but seemingly benign.)

I've found this useful when I've wanted to throttle some application's CPU/other resource usage (usually on a laptop) but didn't want to completely quit it. Also it's just kind of awesome.

<comment><USER2> That is awesome! I wonder if the process could be read out via procfs and continued elsewhere?

<comment><USER4> I dunno about procfs, but one Linux implementation of <https://en.wikipedia.org/wiki/Application_checkpointing> is <http://cryopid.berlios.de/> or apparently <http://dmtcp.sourceforge.net/>

</comment></comment></comment></comment><comment><USER5> i gave a lightning talk this week, maybe someone will find it helpful:

"lets make a blocking API not block. wait, what? (a practical introduction to continuations)"

<https://docs.google.com/present/view?id=dv9r8sv_82cn7dngcq>

</comment><comment><USER6> Does logic programming really count as flow control? To me, it's an entirely different paradigm, where there is no real flow at all; all statements operate simultaneously.

<comment><USER7> Prolog might be a "logic programming" language, but the flow control is explicitly based on backtracking. Each possible solution for each statement is iterated, _one at a time_ , and the results are fed into the next statements. The program is basically run as a search through the constraints in depth- first order. [http://www.doc.gold.ac.uk/~mas02gw/prolog_tutorial/prologpag...](http://www.doc.gold.ac.uk/~mas02gw/prolog_tutorial/prologpages/search.html)</comment></comment>


Hashima Island – An Abandoned Island City - <AUTHOR> https://en.wikipedia.org/wiki/Hashima_Island <comment><USER2> I visited half a year ago (feels like forever!) - it's like an island version of the Kowloon Walled City. Unfortunately, recent hurricane (?) damage has rendered the island unsafe to land on, so you can only observe it from the boat (a few months ago, at least).

<comment><USER3> That's likely the damage caused by Typhoon n.19 (I don't remember its name, I watched the Japanese news about it and they only number them).</comment></comment>


The True Size Of - <AUTHOR> https://thetruesize.com/ <comment><USER2> Cool idea... the continental US outline doesn't fit over the continental US though.</comment>


In 75 per cent of cases, the tumour disappeared and had not come back - <AUTHOR> http://www.wholesaleinvestor.com.au/seeds-of-cancer-breakthrough-right-here-in-far-north-queensland/

<comment><USER2> I couldn't find the title in the article, this is against the site policies.

The experiments are only in animals that have a short lifespan (~ 10 years) than humans (~80 years). Also the drug is only 7 years old, so it's not enough time to see a cancer return.

> _"WH1 (has) the potential to treat wounds created by necrotising bacteria, > for example from spider bites and chronic wounds such as pressure sores, > tropical ulcers, diabetes-related ulcers," she said._

OK, this drug is so good that not only kills cancer, but also kills bacteria. This is too good to be true.

Is this published in any peer review journal???</comment>


Adopting TypeScript at Scale – Brie Bunge (On Airbnb's Transition to TypeScript) - <AUTHOR> https://www.youtube.com/watch?v=P-J9Eg7hJwE <comment><AUTHOR> this was previously discussed on HN when the talk was first given: [https://news.ycombinator.com/item?id=19131272](https://news.ycombinator.com/item?id=19131272)

this talk has been finally posted on youtube so i have shared it here as many wanted to see the actual talk</comment>


Ask HN: How does one register a .ly domain - <AUTHOR>

I see the availability of the domains etc... But I cannot find the actual pages to register anything. Anyone registered one of these lovely little properties able to help?<p>[http://www.ltt.ly/en/personal/hosting/index.php?c=13] <comment><USER2> avoid it if at all possible. libya has some extremely restrictive content laws.

having said that, <http://www.libyanspider.com/> or <http://www.101domain.com/ly.htm>

</comment><comment><USER3> also you should look see if you can get the .com as well. There has been at least one case of libya taking a domain away from the owner because of content they disapproved of.</comment>


Iceland plans to welcome back tourists by June 15 - <AUTHOR> https://www.washingtonpost.com/lifestyle/travel/iceland-plans-to-welcome-back-tourists-by-june-15/2020/05/15/656c489c-96bc-11ea-91d7-cf4423d47683_story.html <comment><AUTHOR> >The number of confirmed cases has dropped to four so far in May</comment>


John Gruber on Apple's 30% cut: To the victor goes the pricing power - <AUTHOR> http://www.niemanlab.org/2011/03/john-gruber-on-apples-30-cut-to-the-victor-goes-the-pricing-power/ <comment><USER2> Apple pioneered a new sales and marketing pipeline, and gave it extremely low barriers to adoption for both consumers and developers. None of apple's competitors have been able to produce a competing service (based on community size), and until that happens apple will see no competitive pricing pressure to reduce their fees.

The cost to run in apple's app store probably won't stay at 30% forever, but won't change until it faces real competition.

<comment><USER3> I don't think there's much reason for them to change it even with competition. If publishers threaten to drop them as a target, then they'll change it. And that threat has more to do with market share than anything else.

</comment></comment><comment><USER4> It's extremely refreshing to read something regarding one of Apple's unpopular moves that isn't laced with fanboyism of one stripe or another.

<comment><USER5> Please tell me my sarcasm meter is broken. It must be, for you to claim an article discussing John Gruber defending Apple as not being fanboyism.

When was the last time Gruber wrote something negative about Apple? My best guess is probably July 8, 1997, the day before Amelio was shown the door...

<comment><USER6> The headline for this article mentions Gruber, but the article is actually at niemanlab.org. Perhaps it is the actual linked article GHFigs was referring to?

</comment></comment></comment><comment><USER7> So the New York Times deserves the best deal in the App Store because they're such a big company with a great brand?

That puts a different spin on "to the victor goes the pricing power."

</comment><comment><USER8> I suppose I can accept the capitalist argument that Apple is the big player with control of the game, so short of monopoly abuse they get to set the rules.

However, they do seem to adopt rather hostile policies toward the people who put the real value into their ecosystems, mainly the app store developers and content publishers. The good will of these communities has a lot of value, which a brand like Apple relies on. I won't have much sympathy if either or both communities abandon Apple platforms on a large scale if the alternatives evolve a similar level of functionality and more provider-friendly pricing and support policies.

Then again, in the mobile space, the "competition" appears to be organisations like Google, Microsoft, Amazon, and RIM, all of which have serious problems of their own. Until at least one of them gets their act together, or something remarkable happens built on some disruptive new platform, I doubt the Apple execs are going to be losing much sleep. I expect they can get away with the cash grab for long enough to be worthwhile, even if it does cause them a PR headache with developers that requires some pain to fix if and when there is more effective competition.

</comment><comment><USER9> Gruber has been getting nervous; Jobs hasn't praised him by name recently.</comment>


Ask HN: How can I prevent myself from being doxxed? - <AUTHOR> I imagine my practices are similar to many other HN readers. I follow some privacy best practices but don't generally seek anonymity online. You can google me and find my social media accounts, some articles I've written or for which I was interviewed, and figure out what city I live in. That is to say, my online persona is not entirely locked down.<p>Let's say I wanted to prevent myself from being doxxed. What steps could I take to make it more difficult? <comment><USER3> 1) Promptly stop saying anything interesting under your real name. Opt out of all social media except to post messages like "Congratulations on the baby!". This will prevent you from making any enemies who know your real name, and reduce the chances anyone will _want_ to doxx you.

2) Start adopting new pseudonyms. Use a different one on every site, and a password keeper to help you stay logged in. If you happen to forget, don't worry. Treat every account as disposable. These are not "you". This is not "your brand". These are merely tools that allow to into a walled garden party wearing the mask of anonymity.

3) Do _not_ mix your two online personas. Keep your politics, jokes, and personality in your pseudononymous accounts. Keep your boring safe opinions and pictures of dogs in your primary account. Don't talk about _anything_ in your real life in your pseudonymous accounts, even the weather. Reserve that kind of discussion for in-person friends only. If you make a mistake, just delete the account and make a new one.

<comment><USER4> One loophole here is that statistical/machine learning analytics tools may still be able to correlate these posts as coming from the same writer.

We should probably also use a tool that just converts our posts into a generic style and remove any personal touches like the usual vocabulary, expressions, punctuation styles someone might use. Is there anything like that out there?

<comment><USER5> easily fixed: google translate your writing through a few languages before back to English

<comment><USER6> Reporter: how did you catch the suspect?

Police: it turned out Google Translate had a record of all their posts!

</comment></comment></comment></comment><comment><USER7> If you are just worried about someone trying to steal your identity to abuse your credit or so, you probably already practice good basic security (like 2-factor authentication, not recycling your passwords etc. etc.) and have no particular need to worry about. You are more likely to have your security compromised in a corporate data breach than someone taking the time to dox you.

If you get in fights online or are a member of some group that frequently experiences abuse (from inside or outside your community) then you should consider rebuilding your social media identities, giving up some of them, compartmentalizing your digital life so that your work or business don't overlap with your friendships or public persona etc.

If things have gone sideways and you think people are already motivated to go after you, a determined person can pull your details together very quickly with a mixture of software tools, access to commercial databases, and some detective work. It's not difficult for someone with experience. In such a situation you should probably work with a commercial service like [https://privacyduck.com](https://privacyduck.com) which will do the work of erasing your digital footprints.

It's not cheap, last time I looked they charged $600/year or so and depending on your circumstances and vulnerability that might need to be budgeted as an ongoing expense. I'm sure there are other competitors int he same field but am not sufficiently informed to make comparisons.

<comment><USER8> I'm looking at their list of websites [https://www.privacyduck.com/services/](https://www.privacyduck.com/services/) and it looks like this is pretty similar to services that will pay to remove your mugshot from the internet... It will probably help deter people who aren't trying super hard but it's unlikely to actually help defend a dedicated attacker

<comment><USER7> I haven't had to use privacyduck for myself but I'm willing to give them a qualified endorsement based on the testimony of people I know who have used their service and said they were quite dedicated rather than just being an easy cash shakedown.

That said if they're more useful if you have reason to expect you're going to be doxxed. If it has already happened and your info found its way onto the dark web then you've got bigger problems.

Luckily that's not the OP's situation, but for a person who finds themselves unwillingly in the public eye and whose information has been exposed to malicious actors it's a difficult judgment call. If they're experiencing such harassment as to fear for their physical safety, that requires a lawyer's help, and probably involves moving home setting up a shell company to manage financial affairs/bills/property titles. That would generally be enough to shield one from inquiries other than law enforcement, but is obviously going to be very expensive. I'm not qualified to advise anyone on the specifics of how to go about that.

If you don't have such resources, think about moving - not so easy to track if you sublet - and most important, _change your phone number_. Switch to a pay- as-you-go service and use gift cards to develop a parallel financial identity. Your phone # is the biggest giveaway, followed by bills and property records. That won't hide you from private detectives or professional snoopers but will be sufficient to avoid an internet hate machine.

<comment><USER9> > Your phone # is the biggest giveaway

How does that work? (Sorry for maybe a bit silly question)

> setting up a shell company

Can't the doxxers find out who owns the shell company?

Or they won't know about the existence of a shell company? Or how does it work

> use gift cards

One would buy gift cards to oneself, use them oneself, right?

<comment><USER7> People like to hang on to the same phone # so that makes it super-easy for data brokers/snoops to track. Yes, people could find out who owns a shell company, but that's the kind of work private detectors or financial investigators do, and they don't do it unless they get paid, which is an investment most doxxers wouldn't want to make.

Transparency varies from state to state, but some states let you set up corporations with very little transparency, iirc Delaware specializes in this to the point that it's become a problem for financial laundering/tax avoidance, eg [https://www.theguardian.com/us-news/2016/apr/06/panama- paper...](https://www.theguardian.com/us-news/2016/apr/06/panama-papers-us- tax-havens-delaware)

You can buy gift cards that work with Visa or Mastercard, and some vendors will let you reload them (I think Walmart does this). That would give you a fair degree of privacy for doing things online and in combination with other things make you invisible from all but very dedicated investigators (or law enforcement).

by the way, this article, while aimed at political activists, has lots of useful information and links on how to prevent and/or deal with such a situation: [https://crimethinc.com/2020/08/26/doxcare-prevention-and- aft...](https://crimethinc.com/2020/08/26/doxcare-prevention-and-aftercare- for-those-targeted-by-doxxing-and-political-harassment)

<comment><USER9> Thanks for the explanations and the links. The doxx prevention article was very informative

</comment></comment></comment></comment></comment></comment><comment><USER10> This is an interesting question. Given your admission that your identity is loosely linked to your online accounts, I don't think it's possible to prevent someone from doxxing you-- someone just needs to tie it all together.

I agree with sibling comments here that the only way to really prevent someone from identifying you from your online personas would be to start over. If you want to truly be anonymous, you need to build these new personas with OPSEC in mind. The process includes 5 general steps:

1\. Identify information you feel is critical. In your case, this could be anything that ties your online activity to your real life identity.

2\. Identify your threat. This can be simple or complex depending on your needs. Are you concerned about hiding from pissed off gamers, hacktivists, or a nation state? Knowing the enemy you face will help you better understand their potential capabilities to find out information about you and how they could use this information.

3\. Assess your vulnerabilities. Look at yourself from the viewpoint of the attacker. What information would you use to dox yourself?

4\. Assess your risk. This can also be pretty involved depending on your vulnerabilities and threats. What could someone do with this information? How bad could you be hurt?

5\. Apply countermeasures. Figure out how you can mitigate the risk you found above. This may include closing old accounts, creating new accounts, creating alternate personas, disinformation, heading off potential impact from a dox, etc.

Hope my ramblings helped.

<comment><AUTHOR> Fortunately, I'm just asking this question out of curiosity right now.

Putting this in an OPSEC perspective makes the problem a lot clearer. Your reply complements anigbrowl's sibling comment, which gets into some options for countermeasures.

</comment></comment><comment><USER11> Find the courage to post under your real identity. Society can't cancel everyone. In my experience whatever political activism you're engaging in (you mentioned as much in a sibling comment) will benefit far more from association with a real humans than with "internet commenters". Politics happen in the real world, the internet is not representative in that respect. There are very few things that require true anonymity, and in a liberalist society political speech is not and should not be one of them, despite trends of late. The only effective response is to fight back and speak up for what you believe is right. Don't be a coward. I mean this in the most sincere way possible.

<comment><USER12> Why would you let an online hate mob ruin your real life? They generally have little relation to reality, and there's a decent chance they themselves are just being manipulated and used by others.

I do feel that I have a place in some online battles (or I'm just yelling into a whirlwind that someone else is controlling, but it can be fun), but I never link any of my identities. I take the stance that ideas are more powerful than solid identities.

Edit: Yes I agree, real world actions are much more powerful, and we should all spend less time online.

<comment><USER13> Well, yes, why would you let them? I don't want to live a life which could be ruined by a mob simply pointing out something I have said.

I can't help but wonder if people afraid of "doxxing" are paranoid or really posting stuff they'd never say in person (in which case you probably don't want to be posting them).

I understand that people get unfairly fired for social media posts. But that's what it is, an unfair firing. Why work at this kind of a place? And if you're very open about your beliefs you probably won't get yourself into this kind of a situation in the first place.

<comment><USER14> People die from doxxing, by getting "swotted".

I have a friend who had death threats sent to her parents. These people are vicious and relentless.

</comment></comment></comment></comment><comment><USER15> What I do for things like Reddit and HN, is that I create a new account every few months to make it harder for them... and of course I try not to post information that could personally identify me. As a bonus, you almost stop caring about karma points ;) But of course the provider could still doxx you unless you take some additional steps to stay anonymous (like Tor, maybe).

<comment><USER16> I've started doing this too. Also email every few years now. Its nice not to care about karma.

</comment></comment><comment><USER17> What is your threat model? Whom you are hiding from and what will happen when the info leaks?

If you are the generally paranoid though, never publish photos from around your home, never make online purchases with home delivery, but choose midpoints like post stations to collect them.

Assume that if you type your info somewhere, it would be sold and will pop up somewhere. Currently my name, home address, and phone are published in a american data broker website. If I want them removed, I need to send them an id with even more personal data and even then they insist that it will be hidden from public view, not deleted. I need a lawyer if I want the situation delt with properly.

<comment><AUTHOR> I haven't looked into data brokers yet. (Not tonight's problem!) How did you go about verifying what data of yours they have?

<comment><USER17> I just googled my name one day. It is unusual enough to have a limited number of results and this website popped up with my name, home address and phone. They must've slurped from some dodgy website where I've shopped or the like, not sure.

In case that you have too much results on your name, you can add keywords like "home", "home address", "phone number", and the like. Additionally, you can add the exact values, but those will be visible for the search engine, and maybe for someone who is smart enough to go through all queries in google trends that include your name.

</comment></comment></comment><comment><USER18> Create many accounts similar to your current ones or buy existing accounts with activity and change their information to be similar to yours. Muddy the water enough that anyone googling your real name can never guess you and misdirect people into clicking unsafe content.

You will leave traces of information no matter how hard you try if you spend enough time on any site.

Btw, did you know that even if you ask dang to rename your account - <USER2> can easily find you by searching on hn.algolia.com because they don't auto update indexes on renames?

Same for many other sites. There are many indexes and archives that never update old data and won't care about GDPR requests.

</comment><comment><USER19> One approach is to simply not care if you are doxxed. What would really happen if someone figured out who you are? If the answer is not much, maybe don't worry about it. This approach makes less sense if you are saying things that will get you in hot water.

<comment><AUTHOR> I'm not likely to say things that will get me in hot water, and I'm not a public figure by any means. That said, I see doxxing as a tactic increasingly employed against those who participate in political activism, which, like many, I am increasingly involved in.

<comment><USER3> This is a key point missing in your original post. If being politically active using your real name or real face is required, you'll need to just accept that people will be able to tie your name and face together eventually.

You can additionally try to make yourself not stand out in real life: Choose a non-flashy style of dress. Black hoodie, hat, glasses, mask. Something that dozens of other people will be wearing at such events.

<comment><USER20> _mask_

It's interesting how the virus has caused far more widespread acceptance of wearing a mask in public, something that would arouse suspicion only a year ago. Covering most of your face no longer causes others to notice you.

</comment></comment></comment></comment><comment><USER21> Brian Krebs (krebsonsecurity.com) has a lot of fascinating stories on his blog on doxxing and revealing identities of people for whom remaining anonymous was vital (spoiler alert: they couldn't).

Keeping totally separate identities across different services is key (using unrelated usernames, avatars, emails for every service). It's also extremely difficult and unpractical to pull off.

In most doxxing cases perpetrators manage to get access to a single service and use it as a foothold to penetrate to other services. For example, someone learns your email from a forum, somehow hacks your email, gains access to Dropbox and finds the scan of your passport, driver's licence and social security card. Email in general is the key one's digital kingdom so the surest way to minimize the blast radius is to keep everything separate and unrelated.

Edit: typos

<comment><USER22> Fyi: Brian Krebs. No C. [https://krebsonsecurity.com/](https://krebsonsecurity.com/)

<comment><USER21> Thank you! I fixed my comment.

</comment></comment></comment><comment><USER23> Start new accounts with no reference to your old ones, your name or your location. Be careful about what you put online publicly. I think most people would be horrified at what the likes of Facebook, amazon or google knows about them.

<comment><USER24> I'd add to this use some sort of random word generator to come up with usernames since humans are bad at not picking patterns.

</comment></comment><comment><USER25> I'm actually trying to address this problem by creating a place for "kind, clear and constructive" discussion online, which uses anonymous identities, so that all users can express themselves in safety. Of course, the hard thing is to have _both_ high quality discussion _and_ anonymity, take a look at conferacity.com if that sounds interesting.

<comment><USER26> Doesn't moderation solve the quality problem? Content is only low quality when the admins intentionally don't moderate.

<comment><USER25> Yes, but what we're really trying to see is what happens if essentially _everyone_ is a moderator? Or more specifically, what if the only people who can take part in the discussion are those who can care enough about high quality discussion to ensure that they and others adhere to some set of principles that encourage that kind of discussion. Those are obviously the kind of people who should be moderators, but if the whole community of contributors is that kind of person, maybe you could maintain the quality of the discussion as you scale?

Of course, you'd grow _much_ slower, and maybe it's impossible to get that kind of site to a critical mass of contributors. But it seems worth trying :)

</comment></comment></comment><comment><USER27> "You can google me and find my social media account"

Why can i do this? Sounds like you know the problem already and want a push ;)

A lot of people I know have, no photo of their face, and not their real full name, and goes without saying totally private. Use Facebooks feature to check you have no accidental public ones.

Using photos people have taken from their house, I've found the location and unit numbers before. So all these need to be private if you are really worried.

Wives/husbands/family are good attack vectors. Not much you can do here to begin with. But you want things locked down to at least friends of friends.

I shouldn't be able to easily escalate from necessary public profiles to private ones.

But it's all about working towards the goal. Just make a start. Every little bit reduces the chance you'll get doxxed. You might just have to be the stronger gazelle.

Maybe privacy is dead, maybe it's about having a job you can't be fired from or a gun in the house? Some peoples incomes depend on the public profiles.

<comment><AUTHOR> Perhaps I've put too much trust in social media companies' privacy controls. I trust you can find my accounts but see very little of my profiles or posts of relevance to my offline life. Perhaps it's time to make myself less searchable.

<comment><USER27> A real interesting point someone else makes is, it's probably like a code review. You'll find it hard to find your own errors, but it's always fun for someone else to find your mistakes.

</comment></comment></comment><comment><USER28> _Extreme Privacy: What It Takes to Disappear_ by Michael Bazzell

[https://www.amazon.com/dp/B0898YGR58](https://www.amazon.com/dp/B0898YGR58)

This guy sells books on both sides, OSINT and privacy.

</comment><comment><USER29> Interestingly, nobody seems to have talked about email.

I run my own mail server, and I have a domain registered for handling incoming mail. Every single website, and I mean every single one, has a different email address under that domain.

Now, while it could be relatively easy to correlate all usernames with domain part of the email, I make it as difficult as possible.

Additionally, some handles are further separated. For example, my professional handles (so stuff I use at work but on my name, my GitHub public email, and similar stuff like that) are under other domain names from a professional (paid) email service. And even those aliases get changed over time (damn you automated email crawlers).

So even if the database of a website was leaked and my mail was in that database, I would , as soon as I'm made aware of the breach, delete the account immediately and instruct my mail server to discard all incoming mail to that address. Of course, every online identity of mine has a different name. This onr has a Japanese name, but I have others with common American names, tongue twisters, and sometimes keysmashes. Good luck correlating it all.

</comment><comment><USER30> At the most basic level, don't say anything online you wouldn't want seen again. Not in discord, not on twitter, nowhere. Always treat anything you disclose online as if it's public knowledge from that point on. Even if you delete it, there's a tonne of third parties that archive data you post, even on more "ephemeral" services.

<comment><USER6> Isn't it a given that the OP still wants to take part in online society.

You're comment is more like "stop your eyes stinging when you're in the pool by never going in the pool", but they're looking for mitigations not avoidance.

<comment><USER30> That's not the same. I'm not suggesting giving up social networks. What I mean by "never say anything you don't want sticking around" is that you should never disclose things that could be used to dox you. Never give anything more than a very general general area for location, or speak about which college you went to, or where you work. Talking about hobbies is fine, preferably on multiple accounts so nobody can link them together into a complete profile.

</comment></comment></comment><comment><USER31> [https://jameswmontgomery.com/2020/08/15/how-to-create-a- pseu...](https://jameswmontgomery.com/2020/08/15/how-to-create-a-pseudonomous- identity-on-the-internet/)

</comment><comment><USER32> If you're trying to prevent an online persona from being tied to your real identity, then you just have to be incredibly paranoid about anonymity. It's not enough to hide your name, you have to consider hiding anything that makes you identifiable. If I knew somebody was a software engineer, well I wouldn't know how to find out who they were. If I knew they were a software engineer from Arkansas who contributed to Rust projects, all of a sudden my search would have been narrowed down significantly.

If you want to prevent somebody who knows your identity from finding your phone number, address, etc... good luck. Whether somebody can find that would pretty much boil down to how much effort they're willing to invest.

Source: I used to do some of these sorts of OSINT investigations as part of a fraud investigations team.

</comment><comment><USER33> The problems are not kids, the problems are grownups. Like police, border control, visa applications, which can harass you if you dare to voice your opinions.

Which is a problematic turn of events. When I grew up, the western world was not like China or Eastern Europe, as it is now. So you didn't use pseudonyms, because your name was your brand. Only immature kids or lgbt people used pseudonyms, the rest was honest, and it helped you with your job prospects. Now a new wave of fear, bullshit and lies has taken over cooperate and public matters. You can now even trust the Eastern Europeans more than westerners.

</comment><comment><USER34> Have your lawyer transact your business. Have your holding companies own shell companies that own your assets.

The above is not complete snark: a friend's brother, whose daughter's _fiesta de quinceañera_ I'd attended, was put in a coma working full-time for a fellow who employed two full-time accountants as part of his "family office" but who was not only too cheap to carry insurance but then even explicitly said the brother, as an independent contractor, should've had his own and refused to contribute anything towards his medical bills. I spent an afternoon trying to track down assets, and the structure I managed to reveal was ... interesting.

<comment><USER26> What are you trying to say?

<comment><USER34> that following recommendations of the first para makes doxxing difficult (the second para is to say I can confirm).

</comment></comment></comment><comment><USER35> If it can happen, it most likely will happen if someone really wanted to (ie by doing phising attacks, looking up public records, hiring private investigators, etc), so the best thing to do is to think about what can be done to minimize any collateral damage after the fact (ie protecting your image, securing online accounts, keeping your home safe, etc), since any sensitive information (ie confidential or embarrassing) they can acquire can be used to blackmail. It's pretty hard to remain anonymous online for a long time given how everything is connected and archived on the internet these days.

</comment><comment><USER36> The easiest way is to be insignificant. But it's still no guarantee.

<comment><USER37> People have landed in hot water for something they wrote or said decades ago. I'm guessing the OP is asking for a strategy that's reasonably future-proof.

<comment><USER26> Insignificant people? Who?

</comment></comment></comment><comment><USER38> It depends on what you mean by being 'doxxed'. It is trivially easy to find out what city I live in and a few other non-identifying details. It's harder to pinpoint my real name or address without the active cooperation of website owners (and maybe not even then).

Miniscule levels of risk are not worth worrying about, unless you are a figure in the public spotlight or likely to be a person of interest to police or intelligence orgs, in which case you should probably seek advice specific to your situation.

<comment><AUTHOR> > in which case you should probably seek advice specific to your situation

This is really the key takeaway I'm getting from your comment and others so far: what is meant by doxxing and what I can do about it are very context- specific.

</comment></comment><comment><USER39> Easy, just dox yourself first.

</comment><comment><USER40> Effectively you've already doxxed yourself. The ability to associate a real name with an address without excessive effort predates the internet and these days it is even easier, so with the internet the only winning move is not to play. Stop using your real name, period. Creating fame and an online persona that can pay your bills is directly at odds with maintaining privacy.

</comment><comment><USER41> Essentially any info you have posted that you remember that can be linked to any of your real ID can be traced to you. Sometime it doesn't need to be public as hackers sell a lot of these info from hacked sites. I would say difficult to hide unless you don't really use the internet or you are so careful it takes the joy out of it.

</comment><comment><USER12> Don't use your real name online. I don't have any complicated privacy best practices, I'm just not on social media and don't use my real name online if I can at all help it.

Edit: Sounds like it's too late for you, but don't be an activist online using your real name unless you have some real, physical security.

</comment><comment><USER42> Avoid politics at all costs.

Stay quiet and mainly share content about food, gardening, and occasionally programming.

</comment><comment><USER43> You have to define your threat model. The easiest way to not get doxxed is to always use a throwaway account. Don't bother having persistent identities online.

</comment><comment><USER44> Google your full name (and any variations, Edward -> Ed, etc) and remove yourself from these whitepage direcetory type websites that people can look up your past/current residences

do your family a favor and remove them too

</comment><comment><USER45> 1) get a "burner" cell phone, pay in advance service that isn't tied to you. Use cash to buy "gift card" or prepaid ahead of time for anything you do with this phone or online. Disable location tracking.

2) get a chromebook or other cheap laptop that isn't connected to "you"

Use the laptop and phone for anything you do online. Do not connect to public wifi, or use the accounts on other devices or your personal accounts on these devices.

You should be able to stay relatively anonymous this way. You will have a phone and laptop to run whatever operations/statements or other activities you want to remain private from your real life person.

You may want to go a step farther and use a pre-paid VPN service for all activities as well. But by all means, don't mingle your devices...

</comment><comment><USER16> Its almost worth changing your name if you have an unusual one. It must be great to be have a name like John Smith because no one can google you to find anything interesting.

</comment><comment><USER46> Read everything ever written by thegrugq and apply it.

</comment><comment><USER47> One thing: Delete url of your HN bio with information about who you are and hide your real name in the footer your website.

</comment><comment><USER48> Maybe adding false information?

Harder in blog articles if you already have an identity and a real name, but if you are in twitter or reddit, you can post about fake locations, hobbies, family members etc. This way at least is harder to be doxxed by automated tools and add some plausible deniability.

</comment><comment> bra-ket I'd say, vote.

</comment><comment><USER49> ask gwern

</comment><comment><USER50> My technique is to use my real name and offer only opinions that I think are quite reasonable. Of course I still run risks, but I imagine everything is knowable to someone determined enough to go looking for you. I'd hate to have posted something I wouldn't be proud of later.

<comment><USER51> That lets you live as a person of integrity (in the sense of "integral", that is, there's only one of you).

But it's not going to save you from the mob. Things that are quite reasonable can still set off the mob, because the mob is very much _not_ reasonable.

</comment></comment><comment><USER52> It seems to me that the whole threat of being doxxed relies on two things: (1) that you've done something in one sphere of life that would be reprehensible (and maybe actionable) to another sphere of life, and (2) that the unholy Russian Twitter not mob can influence that other sphere of life.

It may not be possible to have different spheres of life cohabitate peacefully, especially if the doxxing involves shining light on old character flaws you've since remedied, but thanks to the digital world we live in, can be easily surfaced. I'd say "get off social media forever" to at least prevent your self 20 years in the future having this same worry about whatever it is you are innocently sharing this month, but that always seems to draw a gasp from people who apparently can't imagine life without the internet.

Seems to me that everyone who has ever been doxxed is doing "something" that draws attention to them. That doesn't make it right, but I haven't heard of doxxing of any quiet Amish families, or guys building cabins in the woods minding their own business.

It's usually some loudmouth on some open source software forum, or some politician's operative, or someone being a potential whistleblower.

What you are asking is, in essence, how can I keep from getting punched in the mouth? It's not too difficult, if you think about it. Someone randomly punching you in the mouth "for no reason" is about as statistically probable as being struck my lightning twice in the same week.

Some people attack punches more than others. I'm not saying it's right, or even deserved. Just that there are life choices that can increase the odds.

Maybe what you're really asking is how can I avoid the risks of some life choices I am making or want to make?

All the advice here will only partially mitigate the risk. The only real way to eliminate it would be to make different choices to stop unwanted attraction.

I somewhat laughed at all the "privacy" tips here. My friend, if you tick off the wrong person, they will find you or hire someone good to do it for them. And if doxxing is their chosen revenge, you can't choose to then decide to be a quiet mild-mannered ordinary citizen when you already opened your mouth and drew attention to yourself.

I'm sure everyone who flips someone off across the street wishes the same when they see the scrawny guy reach into his jacket and pull out a gun.</comment>


Ask HN: What Learnings can you share from Being a Software Architect - <AUTHOR> In my company I am going to conduct a session on 'Being an Architect'. I have my own insights, experiences to share from playing the Architect role for 10+ years. But I thought it will be great if I can also learn from the experiences of others playing a similar role and share it with the attendees.
I would love to hear any insight, perspective, experience, opinion on Being an Architect. But if someone is looking for some specific questions then I have attempted to come up with few of them as below:
+ What aspect of the Architect role do you like the most and Why? + What challenges do you face in your role and how do you manage them?
+ What is your process of arriving at an Architecture for a given requirement? + How do you identify the key requirements to be addressed by Architecture and the ones to be addressed by the later design phase? + How do you manage competing Design concerns/constraints while Architecting? + Do you seek contributions from others while Architecting? How do you elicit contributions from others? + How do you review your Architecture? + How do you build acceptance for your Architecture within the Team? How do you build consensus among stakeholders?
+ How do you self-evaluate your effectiveness in playing the role of an Architect? How do you decide the aspects you have to improve on? + What Qualities, Personality Traits, Habits do you think have help you become effective in your role? Similarly what Qualities, Traits, Habits became a hindrance in playing the role? + What is your process of Continuous Learning? How do you identify technologies/skills for learning?
+ What in your opinion are some great examples of well Architected Systems and Why? + Who are your Role Model Architects and Why? + What will be your advise to aspiring Software Architects?
I am already going through some other similar threads <https://news.ycombinator.com/item?id=23152092> but would love to hear more from the community. <comment><USER2> Aspect I like most: Communicate the solution. Draw lots of pictures to standard models, maintain many views to cater to different stakeholders and relentlessly communicate the solution.

Most architectures fail at integration points. so focus on interfaces first. The way to build acceptance is to distribute ownership of various aspects of the architecture across the team

How to evaluate the architecture and your own effectiveness - The product is delivered on time and within budget

Identifying key requirements \- Strength (NFRs) \- Functionality \- Elegance (Documentation, clean code, multiple visual models)

The architect should know the cost of building each and let stakeholders decide the priority. If the arch believes the choice is wrong he/she should challenge that but understand that politics will decide the choice. In which case document and move on.

<comment><AUTHOR> @javamantra, Thanks a lot for your elaborate inputs. These are valuable insights.

Thanks.

</comment></comment><comment><USER3> My main learning as an architect for over 10 years.

The best architectures come from teams not individuals. If you don't have buy in from the team, you will fail. Listen to them, some will need your help, some won't.

The boxes you draw on a white board won't survive 5 minutes when real development starts. Make sure you have used the tech yourself either previously or via a PoC before you recommend it.

Complexity is the enemy, make it simple. It's very easy to add complexity but almost impossible to remove it again once it hits production. Production turns software into concrete.

Document the team decisions in a architecture decision record. [https://github.com/joelparkerhenderson/architecture_decision...](https://github.com/joelparkerhenderson/architecture_decision_record) This will really help the next set of developer who are trying to figure out why you did what you did.

Setup your CI/CD pipeline very early on. Make sure testing is integrated including browser testing if applicable.

<comment><AUTHOR> @1ba9115454, Really appreciate your inputs. Thanks.

</comment></comment><comment><USER4> \- No design is ever perfect

\- There are many correct ways to do things

\- It's all about constraints and trade offs

<comment><AUTHOR> @maps7, Thanks for your inputs.

Do you want to share any further insights about what factors you use to narrow down the choices about the correct ways? Similarly how do you go about managing the Constraints & Trade-offs - Do you change the scope? Do you negotiate to relax the constraints etc.

Thanks.

</comment></comment><comment><USER5> \- Reduce risks early on

\- Trade offs, everything is a trade off

\- Make desicions easy to change later

<comment><AUTHOR> @rails,

By "Make decisions easy to change later", do you mean, 1\. Getting the Module structure of the system correct with well defined contracts between them so that they can be changed, updated independently of each other.

Thanks for your inputs.

<comment><USER5> To move the project forward, at some point you have to make decisions based on incomplete information. Some of these decisions will be good, some will be ok, and some will be completely wrong. The problem is: You only know this after the fact, when parts of it or all of it is already implemented.

Because of this you should design for change and build a flexible architecture. My goto technique for this is to encapsulate everything regarding this decision into a module and put an interface around it. The interface stays the same, the implementation can adapt. How this interface looks like is not that important. You can build a library, it could be a REST API or some gRPC thing, whatever. So yes, the main idea is to create well defined contracts or interfaces (call them whatever you like), which will be be flexible enough to adapt to different implementations.

<comment><AUTHOR> Thanks @rails. Really appreciate the clarification.</comment></comment></comment></comment>


Show HN: Mercury Retrograde API - <AUTHOR> https://mercuryretrogradeapi.com/about.html <comment><AUTHOR> Hey HN!

I've noticed an impact on communications with others (especially our customers) when Mercury is in retrograde. I wanted to display whether Mercury is in retrograde or not on the dashboard of an app we have in production. I wasn't able to find any API to determine this, so I built one!

Happy to answer any questions!</comment>


What's Next in Graphics APIs? - <AUTHOR> http://www.slideshare.net/NeilTrevett/whats-next-in-graphics-apis-siggraph-asia-dec14

<comment><USER2> Better support for unified memory sounds interesting. It was always silly doing OpenGL ES on Android and having to deal with so much work copying the right texture atlas into graphics memory which was really just a different part of the main memory on the same system on a chip as the CPU and GPU itself. It makes sense on desktop and laptop machines with separate GPU processors and memory over a bus from the CPU and main memory, but it is silly on mobile phones.

</comment><comment><USER3> _Khronos working on open source sample implementation of OpenVX 1.0

Expected release on GitHub by end of 2014_

Well they better hurry up. Only one day left. /s

</comment><comment><USER4> The title should include [2013].

<comment><USER5> This is from SIGGRAPH Asia which just happened - it is from December 2014.</comment></comment>


It's time to pray for global warming - <AUTHOR> http://www.mlive.com/opinion/flint/index.ssf/2009/01/its_time_to_pray_for_global_wa.html <comment><USER2> I counter with data. World ocean temps were higher in 2005 & 2006 than in 1998. Every year after 2000 has been higher than all of the 90's except 1998.

<http://data.giss.nasa.gov/gistemp/graphs/>

</comment><comment><USER3> just another article explaining that "global warming" is not the best name for whatever may or may not be happening.</comment>


Desktop Invoicing Software Built with Electron - <AUTHOR> https://github.com/tngoman/Offline_Invoicing <comment><USER2> This looks pretty slick, congrats. Got to love HN I spent this morning googling for something like this to replace using Word, there's a few options but either Cloud from unknown vendor or desktop with a poor UI.

<comment><USER2> Also cool its open source, like the idea fo being able to add.edit features.</comment></comment>


Rechargeable vs. Alkaline Batteries - <AUTHOR> https://www.nytimes.com/2019/06/06/smarter-living/wirecutter/are-rechargeable-batteries-better-than-alkaline.html <comment><USER2>
      Electronics that constantly draw low amounts of power — such as
      some wall clocks, headlamps, or bike lights — work better with
      disposable alkaline batteries. Alkalines release power consistently
      right up until they die, whereas a rechargeable battery's voltage
      gets gradually lower and lower over time, slowing down the device or
      cutting off power prematurely.

This is very wrong, and makes me doubt the article's correctness. Every NiMH discharge curve I've ever seen is much flatter than a typical alkaline curve.

NiMH batteries drop down to around 1.25V pretty quick when discharging, but they stay around 1.25-1.15V for almost the entire discharge cycle. Alkaline batteries are almost dead by the time they get down to 1.2V.

So the reason why NiMHs drop out early on some devices isn't because they're out of charge, or because alkaline batteries have a flatter discharge curve (they don't). It's because some devices stop working at around a 1.2V cell voltage, regardless of how much charge is left in the battery.

<comment><USER3> Slightly related, and maybe you could provide more knowledge here: common knowledge for safety critical devices, such as avalanche beacons, is to only use disposable alkaline batteries. The reasoning I've heard is that due to the flat power curve of non-alkaline batteries, if you put a nearly-dead one in the beacon and check the battery level, it will read as fuller than it really is, and you run the risk of having it die on you during a normal usage period (maybe 12 hours). With an alkaline battery, when it's close to done, it will more accurately register as such on the device.

<comment><USER4> Alkaline batteries start off at 1.5-1.6 volts and the voltage follows the charge reasonably linearly down to about 1.0 volts. So that's correct, alkaline batteries at 1.5V per cell are 'good' full stop. Where a rechargeable at 1.2V might or might not be. Who really knows if it charged all the way[1][2].

[1] Gallant is careful to put his nmh batteries in the the charger each night. Goofus got high and forgot. In the morning Goofus swapped his dead ones for the ones in Gallants charger.

[2] Power went out between 11pm and 6am while everyone was asleep.

</comment></comment></comment><comment><USER5> I don't think this sentence from the article is correct: "Alkalines release power consistently right up until they die, whereas a rechargeable battery's voltage gets gradually lower and lower over time, slowing down the device or cutting off power prematurely."

If you look at the discharge curve for an alkaline battery (for example, [http://madscientisthut.com/wordpress/wp- content/uploads/2013...](http://madscientisthut.com/wordpress/wp- content/uploads/2013/12/Kirkland-1024x458.jpg)), it seems more linear than for a NiMH cell ([http://4.bp.blogspot.com/_7azY596Jbs8/TVHgoP3gUkI/AAAAAAAAG4...](http://4.bp.blogspot.com/_7azY596Jbs8/TVHgoP3gUkI/AAAAAAAAG4k/M2WIdx3gVKM/s1600/nimhChart1.png)). In other words, it's the NiMH cell that gives consistent voltage until it dies, whereas the alkaline battery will gradually lose voltage. (It's not totally clear, some other graphs of alkaline discharge curves do show more of a "knuckle", with a flat initial section and then a steep drop-off).

</comment><comment><USER6> _Electronics that constantly draw low amounts of power — such as some wall clocks, headlamps, or bike lights — work better with disposable alkaline batteries_

I use low discharge NiMH rechargables in all of my battery bike lights and they work great, they'll last for about 3 months of my usage (I run the taillights night or day), but I charge them all at the end of the month (I have 2 sets, so one set's on the bike and one set is charged and ready to swap out). I'm on the same set of Eneloops I bought 6 years ago. Every year or so I have my charger run a discharge test and they are still within about 90% of rated capacity.

I'd have thrown away 24 sets of disposable batteries in that timeframe (since I keep an extra set of batteries charged, so it's a ratio of 1:12). I paid ~2.50 each for the eneloops when I bought them, so cost wise it's been a good investment, works out to around 20 cents each so far (ignoring the cost of electricity)

It's getting harder to find non-rechargable bike lights, my main headlight uses a non-replacable LiIon battery.

<comment><USER7> It's a shame that so many products default to built in, non-replaceable LiIons now. For many products, it's nicer to have a replaceable rechargeable so you can pop in charged battery and go instead of having to plan for state of charge of yet another device.

<comment><USER8> I suspect building them is in an environmental benefit in a lot of cases, a lot of people just buy huge packs of alkaline disposables and can't be bothered with rechargeables unless they're built in. I'd be interested to see the statistics but I wouldn't be surprised if 80% of people use disposable batteries given the opportunity.

<comment><USER9> I just don't get why replaceable standard-sized lithium ion batteries have pretty much completely failed to take off other than those 18650 flashlights and vape pens.

The proprietary replaceable batteries are an improvement over non-replaceable but in anything other than cameras the replacements seem to get discontinued by the manufacturer by the time you actually need one.

<comment><USER10> One concern about lithium cells is safety. Shorting alkaline cells won't do much, and even nimhs are relatively benign, but lithiums can start fires or explode when mishandled. Shipping lithum cells is for that reason bit of a hurdle too.

<comment><USER7> I think that's why the raw cells aren't used as the level of swappable unit very often. If the battery is at all removable, they're often integrated into packs which have some level of built-in protection.

</comment></comment></comment></comment></comment></comment><comment><USER11> I was expecting an informative discussion on the impact of producing/disposing/recycling Rechargeable vs Alkaline? Instead I just got, rechargeable = better.

My gut tells me rechargeable is better, but only if they are properly disposed/recycled 100% of the time. We don't need more heavy metals in our air/water from rechargeables being incinerated.

Any recommendations for chargers that don't require paired batteries? Some of my recent devices need batteries in 3's and 1's.

<comment><USER12> The Panasonic BQ-CC55 charger will charge from 1 to 4 cells, AA or AAA, in any combination. I've got 2 and they've worked great.

<comment><USER13> For about $10 more, also see La Crosse Technology's BC700. It can do some neat things like measure the capacity that was charged or run a "refresh" cycle that repeatedly drains and charges a battery (up to 20 times) until the measured capacity stops increasing.

Like the BQ-CC55, it has four independent channels that can charge either AA or AAA in any mix. You can even run different modes on each channel, like charging 1 and 2 while refreshing 3 and 4.

<comment><USER14> I've had the BC700 (or possibly one of the identical builds under a different brand name) for years, but switched to the BQ-CC55.

The latter is "put in and forget". The former means fiddling with really bad buttons (because you can! Not really because you have to. But if I can manually set and micro-optimize the charging current, by God I will).

I worry much less about charging nowadays.

<comment><USER13> I can't say I've used the custom charging current options, but the refresh mode has rescued some batteries that (very unscientifically) did not seem to be holding much charge.

IIRC the default behavior is to charge at 200 mA and discharge at 100 mA.

</comment></comment></comment></comment></comment><comment><USER15> Photographers will tell you that using rechargeable batteries are the way to go when it comes to using flash/speedlights. They charge up much quicker than Alkaline and they either work or do not. Alkaline charges you flash at a slower rate and will give you weaker inconsistent power when they are dying (rechargeable give you all they can or just die out).

</comment><comment><USER16> Disappointing. No mention of rechargable lithium batteries than are extremely popular for use in flashlights, among other things. No mention of the non- draining NiMH (eneloop) in comparison to traditional NiMH batteries. Just a reminder to use alkaline in smoke detectors, and even there it failed to distinguish between alkaline types (some last far longer than others).

<comment><USER17> I think the article makes the assumption that modern NiMHs are all of the Eneloop type. I think that's fair -- it seems like almost all the NiMHs I see for sale these days are the same type. The longer Wirecutter test article it references does go into a bit more about the history of the Eneloops and all the batteries it tested are the same type (which it calls "Low Self-Discharge NiMH").

Also, despite the title, I think the article is really "rechargeable" vs. "single-use". It doesn't explicitly say that the 10-year smoke alarm batteries are alkaline. The ones I've seen are actually lithium.

</comment></comment><comment><USER18> Probably not much of a coincidence, but I was researching smart chargers about twelve hours ago and ended up going for Panasonic's flagship (bc55). (As depressing as always, one bloke with a credit card can out-do any other organisation's economies of scale when importing anything into Australia.)

I've re-embraced eneloops partly for cost (already covered by OP) but also because they perform better (last longer, fail less frequently) in cold weather. This bites me each winter with a bunch of residential grade irrigation computers that use 2 x AAA. Confidence / reliability also factors in - when those things die I might not notice for a couple of weeks, until some plants start to look unwell, but aggressively replacing all the alkalines every six months (they _usually_ last 9-12 months) worries me more from the rampant waste perspective than cost.

<comment><USER19> Supposedly IKEA LADDA batteries are rebranded Eneloops. It's not official, but the capacity and and discharge curves are the same:

[https://petapixel.com/2018/02/16/eneloop-pro-20-batteries- ik...](https://petapixel.com/2018/02/16/eneloop-pro-20-batteries-ikea- ladda-5-batteries/)

<comment><USER18> That's interesting. My first thought was it's probably another of those things that IKEA sells everywhere except Australia - but happily the LADDAs are available here.

Though with one small caveat - the white LADDAs evidently come out of the same Japan factory that makes almost all the other good eneloops, but the brown LADDAs are known to come out of PRC, and don't exhibit the same quality.

</comment></comment></comment><comment><USER20> Alkaline batteries are NOT good at low temperature.

The most reliable power I have found are the single-use lithium batteries, especially when the temperature drops.

I should also mention - use rechargeable batteries for devices you care about.

If they come with batteries, usually alkaline batteries, there's a good chance they will discharge, then start leaking and either damage or destroy the device they came in.

Meanwhile, rechargable batteries have much better sealing and rarely leak even if fully discharged.

Small(ish) price to pay to preserve an expensive device.

</comment><comment><USER21> I wish more products would adapt 18650 batteries. My flashlight can pump out over 2000 lumens or still very bright for a really long time. 18650 has very high density, can be charged and discharged rapidly depending on the cell, and has safety fuses. I've thrown away a bunch of rechargable AA batteries and not a single 18650.

<comment><USER22> With lumens like that you would want 28650 otherwise it wouldn't last for too long.

</comment></comment><comment><USER23> Is there an easy way to get rid of rechargeables once they're dead? I have a bunch of them sitting in a drawer, because it's a pain to go to the city recycle facility. I highly doubt most people go to the effort. This is the big drawback to alkaline batteries for me, since those can be thrown away in the trash.

<comment><USER24> Those "dead" rechargeable batteries may have more life in them. Don't throw them away yet!

If your charger won't charge the battery anymore (showing the battery as "null"), there's a way to make it charge again.[1]

The technique is basically to use a paperclip to connect the positive terminals of a working and "dead" battery while they're both in the charger, only (unlike in the video) I do this with the charger unplugged from the wall socket. This only needs to be done for a few seconds for the "dead" battery to come back to life.

I used to discard many rechargeable batteries that I thought were dead before I discovered this trick. Since I started doing this, I've been able to keep using my old rechargeable batteries continuously, except that after a while they seem to hold less and less charge, so eventually I do get rid of them, but I no longer do so simply because my charger tells me they're "null".

[1] - [https://www.youtube.com/watch?v=rFapDUSOgnY](https://www.youtube.com/watch?v=rFapDUSOgnY)

<comment><USER25> Whatever you do, do NOT do this with lithium ion batteries. At low voltages, chemical side-reactions start to occur which result in dendrite formation which can pierce the membrane, shorting the battery: the result is fire. LiIon batteries generally have protection that permanently blow a fuse if the voltage goes below a minimum safe voltage, but raw 18650 cells often do not. The video above refers to NiMH cells. Afaik, this is safe to do for NiMH.

</comment></comment></comment><comment><USER26> What about Lithium AA[A] batteries?

I'd use them for critical applications (flashlight during camping/desert travel)

<comment><USER3> I asked about it in another thread higher up [https://news.ycombinator.com/item?id=20502338](https://news.ycombinator.com/item?id=20502338)

In my trainings I've specifically been told not to use Lithium ion batteries in critical applications, like headlamps and beacons.

</comment></comment><comment><USER27> > Smoke alarms that are not hard-wired into your home's electrical system get > power in one of two ways: a built-in battery designed to last up to 10 > years, or a disposable 9-volt battery that you should replace once a year.

No, they definitely make smoke alarms that take two AA.

<comment><USER28> New York state banned the sale of smoke alarms with removable batteries earlier this year.

> Starting Monday, all new or replacement smoke detectors sold in the state > must either be powered by a non-removable battery good for at least 10 years > or be made to be hard-wired to buildings.

[https://www.nbcnewyork.com/news/local/Law-Bans-Smoke- Detecto...](https://www.nbcnewyork.com/news/local/Law-Bans-Smoke-Detectors- With-Removable-Batteries-for-Sale-in-NY-507915901.html)

</comment></comment><comment><USER29> > built-in battery designed to last up to 10 years

Good luck with that. I have yet to see any of those make it past 10 weeks, let alone 10 months. And when they false alarm, you have to destroy the device to turn it off.

</comment><comment><USER30> Great article, encourages me to go buy another battery recharger.

We have an XBox in the house, and 3 enthusiastic users. Lots of batteries....</comment>


Ask HN: What "new" programming languages will you be using in 2017 - <AUTHOR> <comment><USER2> Nim.

Main: [http://nim-lang.org](http://nim-lang.org)

NES emulator (compiled to JavaScript, runs in the browser): [https://hookrace.net/nimes/](https://hookrace.net/nimes/)

Simple 2D game: [https://hookrace.net/blog/writing-a-2d-platform-game-in- nim-...](https://hookrace.net/blog/writing-a-2d-platform-game-in-nim-with- sdl2/)

More examples: [https://nim-by-example.github.io/](https://nim-by- example.github.io/)

Nim has pythonesque syntax, with Pascal/Delphi roots, fast compile times, portability (compiles down to C, JavaScript, LLVM), strong metaprogramming support, seamless FFI, optional GC, and a lot more.

It doesn't have Rust's ultimate safety, although it has quite a bit -- e.g., it can track which thread accesses what for concurrency (in a limited but extremely useful way).

I'm a fan; It looks like the fun of Python but the speed of C/C++. I haven't had a chance to start a project in Nim - hopefully, in 2017.

<comment><USER3> Happy to see this mentioned here! My Nim book[1] is also going to be finally published in 2017. Lots of great things to look forward to in 2017 for Nim :)

1 - [https://manning.com/books/nim-in- action?a_aid=niminaction&a_...](https://manning.com/books/nim-in- action?a_aid=niminaction&a_bid=78a27e81)

<comment><USER4> Great dom96, I have the pre-release and i'm really enjoying it. When I get a hang of Nim I wanna create a set of Youtube "Learning Nim" screencasts since Nim based videos are scarce on Youtube.

<comment><USER3> Glad to hear you're enjoying it :)

Some Nim screencasts would be awesome. I would love to make some myself, if only I had the time...

</comment></comment></comment></comment><comment><USER5> I recently got into TypeScript, if that counts. I'm really enjoying it so far, but I'm running into some annoying things as a beginner:

* For many third-party libraries, needing to write `import * as Something from 'some-package'` instead of `import Something from 'some-package`.

* Not being able to import non-TypeScript files, further fragmenting my import style by needing to write stuff like `const styles = require('./something.scss')`.

* Module resolution in general seems to be close enough to ES6 that I'm usually okay, but different enough that I sometimes get really confused about why something doesn't work.

* There are _tons_ of incorrect type definitions in the DefinitelyTyped repository. A common thing for me to do is: 1) `npm install --save-dev @types/some-package` 2) notice that my app no longer compiles because a method supposedly doesn't exist 3) `npm uninstall --save-dev @types/some-package` 4) move on with my life, because the method does indeed exist and my code works. Once I have more experience, I'd like to contribute to the repo to fix these errors, but the repository itself is GINORMOUS. 1k+ issues, 3k+ contributors, 25k+ commits, and 87 open pull requests right now. I have to think that there's a better way to manage types of third-party libraries.

* I find the docs very difficult to read.

If someone has a good resource for learning TypeScript, I'd love to know about it! Specifically, my pain points are module resolution (as you can see) and types beyond the basics. For example, I recently tried to make a React component where the props could be some custom things I wanted, PLUS all the fields of HTMLAnchorElement. I tried, but couldn't figure it out, and eventually switched the props type to `any`. This is less than ideal :(

<comment><USER6> For packages with default export, you can use synthetic imports options in tsconfig.

For non-js imports, you can create global module declarations (like the below snippet):

declare module "*.css" { const value: any; export { value }; export default value; }

But you will still need to use some bundler tool like webpack. It will just stop TypeScript from complaining.

Type definitions are the biggest issue even today, but things are much better now. Most popular npm packages already have type definitions, but if you need some exotic package, then you can write your own defnitions (probably only necessary bits).

<comment><USER5> Oh nice, thanks for the tips! Those things will make my code so much nicer :D I am indeed using webpack, so that shouldn't be an issue (unless it doesn't work in conjunction with `target: 'node'`). Crossing my fingers!

</comment></comment></comment><comment><USER7> Definitely Kotlin. I had a meeting with my team and talked about the advantages of Kotlin and why I believe we should start writing a proportion of the new modules in Kotlin and have asked for their input. This is one of the cases where it needs to be unanimous decision, but so far everyone seems in favour of it and looks like we'll be writing a good amount of Kotlin in the coming months.

The reason why I believe Kotlin is a great way ahead is - Great java interop, removes a huge amount of boilerplate, results in very readable code and extremely easy to learn (one of the reasons we could not switch to Scala was the steep learning curve which would be a big problem for new developers joining us).

<comment><USER8> >one of the reasons we could not switch to Scala was the steep learning curve which would be a big problem for new developers joining us

I think this is overblown. Yes, the language has a deep learning curve, but you're really trading off language complexity for lack of framework complexity. Because the language is so powerful, you'll see a lot less 'magic' frameworks (no need for a DI framework, no need for AOP, etc) so applications tend to have a really low barrier of entry to work with. We hire new developers all the time and they are productive way before they master the language.

<comment><USER9> This attitude happens all the time FP in the job comes up and it essentially means the parent commenter's company has no time or resources for training or mentoring.

NoRedInk (among other companies) use non-mainstream FP languages and hire juniors all the time. Turns out that people can learn things quickly if they're smart (which is why you hired them, I hope) and are given mentorship.

</comment></comment></comment><comment><USER10> Rust - I've been looking at Rust from afar, and I like what I see. A coworker also has given it a glowing recommendation.

Elixir - This one is a maybe for me. I've wanted to get more into functional programming, but also not sure if I want to explore the Erlang stack since I've been burned by it at work.

<comment><USER11> Can you elaborate on how you've been burned? I want to integrate it into some work projects, so I'd like to be aware of potential pitfalls.

<comment><USER10> Take what I'm saying with a grain of salt. It was stuff at work with MongooseIM (a fork of ejabberd) and it was just horribly unintuitive to configure and run. That could have just been my outsider's view as a devops person trying to figure out how to run a poorly configured app for production though.

</comment></comment></comment><comment><USER12> New things I plan to pay attention to:

* Rust, for it's a sane replacement for C and C++.

* Elixir, for it's more consistent than Erlang, running on the same battle-tested VM.

* Clojure, because any JS code I write now gets transpiled anyway, so why not use a nicer language with a nice standard library?

* Crystal, because it might be a faster _and_ safer Python replacement.

<comment><USER13> I think that's not quite right.

Elixir is a subset (nay, it's a language within it's own right language now, the method chaining syntax is very readable) of Ruby running on the BEAM vm from Erlang.. not Erlang itself

Crystal is a native compilation of Ruby (or a subset at least), not Python btw.

<comment><USER9> Elixir is in no way a subset of Ruby.

<comment><USER13> Sure, perhaps incorrect definition, hence why I said it's a language in it's own right. It's definitely influenced by Ruby. [https://www.sitepoint.com/an- interview-with-elixir-creator-j...](https://www.sitepoint.com/an-interview- with-elixir-creator-jose-valim/)

</comment></comment></comment></comment><comment><USER14> I know I'm late to the game but Go. I've been wanting to play with it for a while but haven't had the mental capacity to really dive in after work. As it turns out the company I work at has a project or two slated for the new year that will likely be written, at least partially, in Go. I look forward to getting my feet wet.

<comment><USER15> In a startup now that is using Go. It has worked out extremely well so far. Some of the pieces like unused imports are errors, and checking for error return values in the end help to keep things clean. Performance is definitely impressive.

</comment></comment><comment><USER16> Rust: Because I like the idea of zero-cost abstractions in a rich ML-like data-oriented language that has modern facilities such as pattern matching, abstract data types, generics, hygienic macros and package management, without the legacy baggage of C++.

However, I think Rust went overboard with the line noise; the combination of very terse keywords, and a decision to rely on punctuation more so than keywords, means that it's a very dense, gnarly language.

Rust is also notoriously slow to compile, which worries me.

\---

Swift: For the above reason, I really want to explore Swift. For me, Swift has pretty much the ideal syntax. As with Rust, you have Pattern matching, abstract data types and generics, but its designers has also spent a lot of time on ergonomics, and aren't afraid of making backwards-incompatible changes (which, this early in a language's life, I think is a good thing).

But I'm worried that the ecosystem and standard libary are not there yet for general-purpose development outside the realm of iOS/macOS GUI apps.

\---

Nim: It's particularly interesting in that it's managed to retain a superb level of performance with a minimal, highly expressive, highly readable, fairly unintrusive syntax that combines the best of Turbo Pascal and Python. I'm less concerned about the fact that it's garbage-collected.

I'm admittedly less enamoured about some of Nim's {.weird syntax choices.}, and there are clear signs, in Nim's suprisingly huge feature set, that it was designed by a single person who had sudden ideas, implemented them about 80% of the way, and ended up with everything but the kitchen sink, without really considering the complexity or bewildering array of semantics that were incurred along the way — so many pragmas! Nim could do with a cleanup. I'm also disappointed that classical OO inheritance was kept.

That said, Nim looks terrific, and I hope to find a project to use it with.

\---

I'm also hoping that Jonathan Blow's Jai language sees a release this year, because it looks quite exciting.

</comment><comment><USER17> New: Rust, ATS; new to me: J, D. And working on the compiler for Kitten[1], which should be usable by the end of the year.

[1]: [https://github.com/evincarofautumn/kitten](https://github.com/evincarofautumn/kitten)

</comment><comment><USER18> If we extend the discussion to the query languages: GraphQL.

I will probably write a guide about how to create a simple and maintainable API with GraphQL and Node/Express, based on my own experience in 2016.

</comment><comment><USER19> rust, ruby, scala, typescript

\- rust => basically, it's not new for me, I've done several small toy project with it, but I want to create bigger project with it.

\- ruby => not new again, doing it only for work :((

\- scala => this year will be quite interesting year for this language since its library adoption for 2.12 are still on going and who forget about dotty anyway ? Full stack development (frontend + backend) will be quite interesting

\- typescript => I already try this, but still not getting anything quite done yet, sometimes it's still a bit awkward in getting some development tools working. It has some issues in getting js library working together since some js libraries weren't that friendly with typescript. (frontends)

</comment><comment><USER20> \- Nim.

Lovely syntax, great performance, fast compilation times. With templates and macros provides you can build just right amount of magic you need into your programs.

It desperately needs more developers to bring the language 1.0, and I'm hoping things will move faster in 2017.

\- Elixir.

For near-real-time, concurrent systems, I'm tired of using the tools I know (python, js), and I'm eager to start using the battle-tested solutions (BEAM).

\- C# (maybe?)

I mainly develop line-of-business applications, and python, with it's great ORM, sqlalchemy makes things so much easier. But I want more type safety, and I'm hoping C# and the ecosystem will reach maturity on linux front in 2017, so I can evaluate C# as my main language for line-of-business applications.

</comment><comment><USER21> Pony: [http://www.ponylang.org/](http://www.ponylang.org/)

</comment><comment><USER22> Rust. I think its got everything I want in a replacement for C. Plus the project I'm working on is considering using Rust to replace C for parsing untrusted input. I just need to get past the syntax.

</comment><comment><USER23> Rust and Elixir. i have a number of p2p projects i want to get started on. i've spent the last couple of years educating myself on the state of the art for this type of tech, and i have some ideas that i think may be interesting.

</comment><comment><USER24> I'm starting a greenfield project using Rust for the backend and Elm for the frontend. Strong typing and safety all around. Wish me luck.

</comment><comment> mike-cardwell I started learning Rust a few days ago. It's an interesting language and I can really see the motivation behind creating it.

</comment><comment><USER25> I recently joined Rust community to develop some crates. I always wanted to learn a system programming language but haven't had a chance to try C / C++.

I like the Rust community, friendly and helpful.

</comment><comment><AUTHOR> I'm personally aiming for Scala. I took the first coursera class and loved the language features so far. The main potential problem I see is a decreasing rate of adoption.

<comment><USER26> YMMV, but when I got back into functional programming years ago, I was excited to learn scala, but as it turned out, clojure was everything I expected scala to be.

<comment><USER12> Everything, including e.g. type inference?

</comment></comment></comment><comment><USER27> Well "new" is sort of relative (and thus nebulous) so lets ignore that. This 2017 as my company moves things closer to the data I have been using lots PL/pgSQL.

I may eventually port some of the code over to Rust once I play with postgres- extension.rs [1] to see if it is even possible. Probably not all of it because I believe you can only make extensions right now with Rust and not PL (ie loaded stuff) or maybe you can?

Postgres is no longer just a database... it is a pretty powerful platform.

[1]: [https://github.com/thehydroimpulse/postgres- extension.rs](https://github.com/thehydroimpulse/postgres-extension.rs)

</comment><comment><USER28> F# on .net core and linux.

Nim as mentioned by @beagle3.

</comment><comment><USER29> Rust, definitely. I'm actually most interested in the possibility of using it for some of the areas that people are currently using Go (CLI tools and back- end Web). Rust actually already has a lot of the selling points of Go and in the long-term I think that Rust will outdo Go in some ways, but the HTTP stack is still maturing.

Elixir, possibly. It may be a good next move for Rails shops, but I'll see if the community grows a bit.

.NET Core if we get interest from my employer's customers. Very preferably not on Windows.

</comment><comment><USER30> Rust. Have not had the time to play around with it. Am a full-time Go developer and I want to add Rust to my CV.

</comment><comment><USER31> Swift - It's cross platform, pretty and seems to be well maintained. JavaScript(ES2017, React, etc.) - I already use this now. I will just be adding on to what I already use from it now. GraphQL - I was looking for a REST replacement. GraphQL looks to be it. I feel like it makes sense to me.

</comment><comment><USER32> I am going to study Cray's Chapel [1]. I'm a cosmologist and regularly have to write/use codes that run on clusters. In the past years I have tested many different languages to substitute C/C++/Fortran for HPC development: Ocaml, Nim, Ada, and Julia. I must say that so far Julia has proven to be the best choice by far. However, I miss the C/C++/Fortran compilation phase, which spots missing parameters, mismatched types and other errors which Julia catches at runtime. Chapel might provide the best of two worlds: static compilation like C, and numerical-oriented features, like Julia.

[1] [http://chapel.cray.com/](http://chapel.cray.com/)

<comment><USER3> Hey ziotom78. I didn't realise you were evaluating so many languages. I'm curious, where did nim fall short? How can it be improved for your use case?

Cosmology sounds exciting.

<comment><USER32> Hi dom96,

Generally speaking, and exceptions aside, astrophysicists are not programmers. They usually write bad code, but most of them are aware of this. They are sometimes able to abandon an old technology and adopt a new one, but reasons must be very compelling! (Examples: astrophysicists are slowly switching from IDL to Python, as shown by T. Robitaille during the last ADASS meeting [2].) Given the current state of things, I feel that Nim could raise a lot of curiosity in my field, but it would not be compelling enough to do the switch. Nim has a beautiful syntax, and I love its many features (macros!). But there are many things that are vital in my field and Nim lacks:

\- No scientific stack. It's true it is extremely easy to create your own bindings to C libraries, but the number of libraries I routinely use are so many that the effort would be huge: FFTW, OpenMPI/MPICH, BLAS, LAPACK, GSL, and so on. Languages like Julia and Chapel have been designed for the scientific community from their grounds. Therefore, many of the routines provided by the libraries above are already available within the language itself or its standard library, in a coherent interface. Even writing all the Nim bindings to the libraries I mentioned above would provide a suboptimal experience. What would be lacking is a high-level layer which harmonizes the inconsistencies among the C libraries. A practical example: suppose you want to calculate the FFT of a nontrivial subset of the elements in an array, like array[10:320:4] (start from element 10, take 320 elements, but only one out of four). Using NumPy, is just a matter of calling fft(array[10:320:4]), but using C or Nim's bindings to FFTW requires an explicit for loop to create the temporary array to be passed to FFTW's functions.

\- Both Julia and Chapel provide native constructs to ease the parallelization of the code. This is a must in cosmology, which relies on very heavy calculations ran on clusters with thousands of computing nodes. C, C++ and Fortran here have the advantage of making both MPI libraries and OpenMP constructs available at the same time (and don't talk about the many alternative libraries, like Intel's TBB [3]). Chapel is extremely strong in providing alternative (and easier) ways to express the parallelism of numerical computations. Furthermore, there are plenty of ways to further help the C++ compiler in parallelizing loops, using the "reserved" keyword and a bunch of #pragmas. The last time I checked, very little of this was available in Nim; see my post here: [http://forum.nim- lang.org/t/1978/3](http://forum.nim-lang.org/t/1978/3). Apparently, nobody was able to answer my question, from which I concluded that the solution didn't exist.

\- I feel Nim's installation and environment to be a bit "fragile". In the past, I had a couple of occasions to show Nim to my colleagues. Both times I failed to run the installation process from the beginning to the end without problems, as there were little inconsistencies between what the documentation says and what install scripts really do. Just a few days ago I reported a new set of problems I experienced with the two latest releases, 0.15.2 and 0.16.0: [http://forum.nim-lang.org/t/2693;](http://forum.nim-lang.org/t/2693;) luckily, this time nobody was watching me :-);

\- (This is probably linked to the previous point.) The lack of a clear path towards version 1.0 scares a lot of potential users, including my colleagues. I wrote a set of codes in Nim for a paper submitted to Astronomy & Computing, and that paper was almost rejected because of the reviewers' feeling that Nim was not «serious» enough. (I was able to publish it only after I rewrote everything in Python!) I hope that when you'll finish your book [1], this will help people to think differently. I cannot avoid comparing Araq's promises for version 1.0 (see e.g., [http://forum.nim-lang.org/t/650/2](http://forum.nim- lang.org/t/650/2), a forum thread which dates back to 2014) with Rust' roadmap towards version 1.0 and beyond: the Rust community has done an impressive job in delivering versions 1.1, 1.2 and so on every six weeks, as promised. This is surely due to Rust's larger user base, but I think it also shows a different attitude. (From what I understand, Araq has decided not to speak of dates regarding version 1.0 anymore, which is good; however, it would be even better to provide a date and stick with it.)

\- Finally, I feel that a number of missing nice touches are hurting its adoption. The lack of decent IDE support, with refactoring and reformatting, is crucial. As I said above, astrophysicists are not programmers: often you have to incorporate ugly code, but you first need to refactor and reformat it heavily. Tools like `clang-format`, IDEs like Qt Creator and plugins for the most used editors are lifesavers! Last time I used it, Emacs' nim-mode didn't provide a confortable user's experience. Meanwhile, I have switched to Visual Studio Code, but I have not tried the Nim package [4] yet (however, I see that it still lacks many crucial features, like reformatting and debugging support.)

[1] [https://www.manning.com/books/nim-in- action](https://www.manning.com/books/nim-in-action)

[2] [http://www.adass2016.inaf.it/index.php/participant- list/15-i...](http://www.adass2016.inaf.it/index.php/participant- list/15-invited/28-robitaille-thomas)

[3] [https://www.threadingbuildingblocks.org/](https://www.threadingbuildingblocks.org/)

[4] [https://github.com/pragmagic/vscode- nim](https://github.com/pragmagic/vscode-nim)

<comment><USER3> Thank you for taking the time to write this. I almost missed it (wish HN gave notifications for replies). I will do my best to take your feedback into account :)

</comment></comment></comment></comment><comment><USER26> I really want to check out typescript this year. Seems pretty cool and I've been working a lot in JS (ES6) this past year, so I feel like it'll be a great experience to really feel what a type system buys/costs you.

</comment><comment><USER33> Elixir.

We are using it to build our newly minted startup, Metriculator - [https://www.metriculator.com](https://www.metriculator.com)

This is the first functional language we are using (long time Ruby/Rails devs). We are also using the Phoenix framework.

Reasons why we chose Elixir/Phoenix -

\- Immutability of data makes it easier to reason with and figure out exactly what is changed where.

\- Lots of asynchronous work involved. Elixir is built for this.

\- Real-time data push (Phoenix channels scale well in this respect)

\- Syntax, stability and a vibrant, helpful community.

</comment><comment><USER34> I'm re-learning Python! Not a "new" language, but I lost most of my (already poor) Python skills and I want to revamp them.

My Q1 goal is to build a simple game of Risk using text-based interface, and some AI that plays the other players - all to help my two nephews in Italy learn Python and have fun at the same time.

Not sure how long it will take, or if I'll ever be successful. Any hint (particularly on the text-based interface) would be really appreciated. I am now looking into Curses and Pygame.

</comment><comment><USER35> I'd like to get started using Rust for bare metal development.

</comment><comment><USER36> Elixir and Julia. Gimme those macros!

</comment><comment><USER37> I would like to learn some rust and/or elixir

</comment><comment><USER38> I'm going full Go. I've got it accepted as programming language for some software component I'm in charge of. It's for a scientific research application. For me it's a big change since I was full C++ for the last 15 years. I studied and considered D but there is not enough traction and tool set is lighter.

</comment><comment><USER39> I will actually take the time to learn nasm and do some low stuff. The goal is to explore real mode and bios interrupts.

</comment><comment><USER40> More Scala, starting to dabble with early versions of Dotty, Idris, Haskell, Nim, and very possibly Rust.

<comment><USER41> Isn't Dotty just the name of the new compiler for Scala?

</comment></comment><comment><USER42> Elixir. I started last week and already love it.

C++. I'm looking to get into LLVM and maybe even contribute (that is a lofty goal)

ES6 or Typescript. I'm doing front end work for the first time this year and am looking into those (as it seems like I shouldn't start a project with Angular 1.x)

</comment><comment><USER43> I'm hoping to get Rust into the mix at work. Will definitely be playing with it at home.

</comment><comment><USER44> I have a hard time choosing between Go and Rust, I really like Go, but I have fallen in love with Rust. But I think I will dive into Go just because of getting a job asap in 2017.

</comment><comment><USER45> Lua. Combine it with C to enjoy both of them even more! :)

<comment><USER46> I love Lua and I just mentioned it on the "old" thread, however! It's almost 24 years old :')

</comment></comment><comment><USER47> How do you define new? I'd say ES6 if that counts.

</comment><comment><USER48> I'd like to build up a shop of 50 devs using the golang toolchain and just see how much shit we can get done.

</comment><comment><USER49> Probably one of Rust, Go, Julia, or Scala.

</comment><comment><USER50> I'd like to give Rust a try for real.

</comment><comment><USER51> I started using F# at the end of 2016 and I'm excited to continue it through 2017.

</comment><comment><USER52> Swift and React JSX scripts (and lots of C#...which is neither old nor new)

</comment><comment><USER53> Eve because logic programming.

 _EDIT: I can 't believe nobody else mentioned Eve._

</comment><comment><USER54> ES6, does that count?

</comment><comment><USER55> VueActiveAngularEmbers.js v10.3.1 - A hybrid of the latest 4 hotnesses to hit the JS community. Because - yay new JS frameworks every 2 weeks!

</comment><comment><USER56> C++17

</comment><comment><USER57> Rust.

</comment><comment><USER58> I want to try Monte but the documentation isn't very good and I don't understand their IRC conversations.</comment>