Rare-earth mining rises again in United States - <AUTHOR> http://arstechnica.com/science/2012/05/rare-earth-mining-rises-again-in-united-states/

<comment><USER2> One impediment has been heavy restrictions on thorium, which is a waste product of heavy rare earth mines. Some people are trying to get those restrictions modified, to allow both rare earth mining and development of thorium reactors.

</comment><comment><USER3> This is perhaps too soon, but I had read of asteroid mining a few weeks back. Do asteroids harbor these rare earths? The mining process seems pretty messy. I wonder if we could get minerals that way, there would be no need to do more damage to our environment.

<comment><USER4> It'll be a decade or more before asteroid mining goes anywhere. Probably decades even.

And mining this is not any messier than mining anything else.

<comment><USER5> Not all mining is the same.

Copper / Gold mines tend to be extraction of a concentrated deposit by either open pit or tunnel, while there are exceptions they tend to be limited in surface area affected.

Mineral sands mining for rare earths is often akin to strip mining for large broad area coal seams - very large areas are turned over just to access a thin layer - where mineral sands occur beneath old growth forest it's often the case that the entire forest would have to be removed, as opposed to a gold mine that might simply tunnel beneath.

Other techniques of note include uranium leach mines where a well head pumps fluid underground and other well heads extract dissolved salts, this leads to relatively small amounts of surface disturbance, and (for the hell of it) marine based alluvial diamond dredging - performed by barges across deposits from current or ancient river mouths. Again, not a lot of surface disruption.

The extraction of a billion dollar lead/zinc deposit two thirds of the way up a mountain in Greenland will be very different to any usual rare earth extraction.

Greenland Deposit :: <http://www.youtube.com/watch?v=BvUol1aS8UA>

</comment></comment></comment><comment><USER6> I work in mining so I'm greatful to have found this and read it.

It baffles me, however, how could this ever make it on hacker news?

<comment><USER5> Technology.

China currently has a massive grip on rare earth production, ergo a massive influence on the future of iPods & mobile widgets. Without alternative mines the bulk of technology production in the world that's centred about rare earth usage will migrate to China for the costs breaks ...

</comment></comment><comment><USER7> Is there a chance to gradually replace these rare-earths by more common stuff?

<comment><USER4> No. rare-earths have very unusual properties not found in other elements.

BTW, don't let the name "rare-earth" confuse you - not all of them are actually rare, they are just called that.

<comment><USER8> Actually Japan has invested heavily in creating replacements for certain rare- earths since China (temporarily) cut exports to them a while back. So has the US. See "Research: Removing rare-earth" [1]

[1] [http://eandt.theiet.org/magazine/2012/04/releasing-the- rare-...](http://eandt.theiet.org/magazine/2012/04/releasing-the-rare- earths.cfm)

</comment></comment></comment><comment><USER9> Exciting to see some good news for California's economy!</comment>


Swarm App by Foursquare - <AUTHOR> https://www.swarmapp.com/

<comment><USER2> "Keep up and meet with your friends." That's all the information I get for my e-mail address?

I can keep and meet up with my friends using Facebook and gchat. Why do I need Swarm? You haven't given me a reason to.</comment>


Ask HN: Open-source alternatives to AWS/GCP/Azure services - <AUTHOR> What are the open source alternatives to cloud services that you can run on your own <comment><USER2> MinIO is like an S3 replacement: [https://docs.min.io/docs/minio-gateway- for-s3.html](https://docs.min.io/docs/minio-gateway-for-s3.html)

</comment><comment><USER3> A raspberry pi.

Can you be a smidgen more specific? AWS offers over 175 services; some are easy to replicate, while others are completely impossible.

<comment><USER4> Agreed, we need more specifics.

OpenStack might be the closest to what you are looking for but there are hundreds of different services, some of which alternatives exist and others do not.

</comment></comment><comment><USER5> OpenShift? OpenStack?</comment>


Ask HN: What to Ask in a Job Interview in Response to "Any Questions?" - <AUTHOR>

I just about always say that I don't have any questions.  I speculate that makes me appear rather lame. <comment><USER2> Despite what many people will tell you this isn't the time to ask some carefully crafted question which will make you appear to be a better candidate. Sure, there are interviewers who believe this, but anyone who thinks that way is not someone I really want to work with anyways.

Instead, this is your opportunity to fill in any blanks you might have regarding if you actually want to grace them with your presence. IMO "no" is a perfectly valid response to that question as it _is_ possible that any question marks you had were already discussed during the interview itself.

When dealing with more standard tech interviews (multiple panels of 1-2 people largely consisting of tech questions) I usually try to use that time to get a better sense of the day to day life working there from that interviewer's perspective. What do _they_ do, how do they work, what don't they like, etc.

</comment><comment><USER3> Remember that you are interviewing them as much as they are interviewing you. So you can ask any "interview" type question. What do you feel are this company's strengths compared to the competition? What are the biggest challenges or opportunities the company will face over the next 5 years? For startups, ask about profitability, revenue, growth, investment plans.

<comment><USER4> Ask them to do FizzBuzz?

</comment></comment><comment><USER5> Things I asked in my successful interviews for a data scientist position with Microsoft:

* What is your favorite part of your job?

* What are the most frustrating aspects of your job?

* What will my first few weeks look like?

* Why are you interested in me as a candidate? How do you think I will contribute to the team? (I don't have a data science background.)

Good questions give the interviewer a chance to talk about themselves, let them convince you that you should work for them, and assume that you've got the job offer ("What will I be doing?" not "What would I be doing if I get the job?"). Leave questions about benefit specifics until after you get the offer, unless it's a follow-up to something they bring up.

Don't be afraid to ask follow-up questions while they're asking questions--a conversation is much better than one-sided questions.

</comment><comment><USER6> If they haven't gone over it in complete detail yet, ask them about their development cycle. Do they use Scrum/Agile? What version control do they use? How do they do estimates? If they use git, how do they do branching? Do they do testing? If so, do they do unit testing, continuous integration, etc.? Do they have a QA team?

Revealing questions:

1.) What happens when the estimate is off? Does it happen often? This should give you a hint as to how much overtime you'll be working.

2.) Do you like working here? Look for what their reaction is. If they pause or stammer, it can be a red flag.

3.) How many weeks of vacation did you take last year? Some companies have "unlimited" vacation time policy, but you might feel awkward taking 5 weeks if everyone else takes 3.

</comment><comment><USER7> Well, a flat response of "Nope, don't have any questions," or something similar would possibly make you appear more uninterested than lame. Depends on how engaging the conversation was beforehand.

In general, you should have a few top things that you are trying to uncover during your interview. The interview process is 2-way. If you've gotten answers or impressions to your top few items and you truly have no additional questions, you could respond by saying, "I was most interested to find out about A, B, and C. This is what I heard... I don't have any pressing questions beyond those right now. But could I follow up with you if something else comes up?"

</comment><comment><USER8> Tell me, from your perspective what does success here look like?

Let's assume you and I are talking 12-18 months from now. And we've accomplished 3-4 important things working together... what would those achievements be?

This question shows a focus on their perceived problems and priorities. It's also interesting to take note whether or not multiple interviewers are aligned.

</comment><comment><USER9> If they've already answered all of your questions, let them know what you were intending to ask, and what your take on their answer was. It shows that you did have questions, were intersted in the answers, and that they did a solid job of explaining the company/position to you.

</comment><comment><USER10> I always ask my interviewer "How does the company treat you?"

"You've seen my resume'; what new things would I learn working here?"

"Do you validate parking?" (Just kidding)

</comment><comment><USER11> "What surprised you the most?"</comment>


Zach Holman on Photos.app - <AUTHOR> https://github.com/holman/feedback/issues/679

<comment><USER2> I think many of us feel the same way. Before Photos.app there weren't tools that allowed people to have their entire library almost everywhere.

Yes, you could sync all the library to flickr, and it would work like a charm (btw they updated the mac uploader, worth a try), but you would still lose all the benefit of having them in your computer.

Now that's possible, and you can also have less disk space and "reclaim" the real photo whenever you need it.

That's a big improvement.</comment>


Want to be a great programmer? Step 1 – Grab a Copy of "Let us C" - <AUTHOR> http://www.simplyfy.co.in/blog/index.php/2009/06/27/divine-conspiracy-chronicles-learning-to-program-in-c/

<comment><USER2> hey ankur. Do i know you? You seem to be following my blog very much, let's get to be friends.</comment>


Sysinternals Live, debugging tools published via UNC and browser - <AUTHOR> http://blogs.technet.com/sysinternals/archive/2008/05/28/updates-process-explorer-v11-20-zoomit-v2-0-sigcheck-v1-53-handle-v3-4-and-introducing-sysinternals-live-beta.aspx

<comment><AUTHOR> I've had the "fun" of having to do low-level hacking and troubleshooting on PCs for portions of the last 15 years or so. If you've had to try to make sense of Windows internals, you've almost certainly had to use one of Sysinternals tools like Regmon, Filemon, Process Explorer, etc. The cool thing now is that you can access this sort of stuff from a UNC like this: \\\live.sysinternals.com\tools\<toolname>

e.g., \\\live.sysinternals.com\tools\Regmon.exe</comment>


FBI didn't prosecute gamergate death threats, even with confessions - <AUTHOR> http://www.businessinsider.com/gamergate-fbi-file-2017-2/ <comment><USER2> I don't think they took them seriously because video games, and because the entire thing appeared so unbelievably silly from the outside. I wonder if they might take them more seriously now?

<comment><USER3> [https://thelastpsychiatrist.com/2014/05/cyberbll.html](https://thelastpsychiatrist.com/2014/05/cyberbll.html)

Her article seems to be about what could be done to stop anonymous trolls from terrorizing and threatening women. How about prosecuting them, since terroristic threats is already a crime? Unfortunately, as Hess discovers, the police don't care much about online stalking, which is consistent since they don't care about IRL stalking either.

<comment><USER4> The Supreme Court has ruled that only _specific_ and _credible_ threats can be prosecuted. Other threats, distasteful and disgusting as they are, are protected as free speech. It's gonna be very hard to prove that an online troll mouthing off constitutes a specific and credible threat. And the Justice Department is usually not interested in borderline cases, both for efficiency and out of fear of creating unfavorable precedent.

This is a country where you're allowed to burn someone in effigy and call for their execution, protest soldiers' funerals and celebrate their death as punishment for America tolerating gays, call for the overthrow of the US government, hold up a mock severed-head of the President, publicly hope for his assassination, etc. We take a rather expansive and absolutist view of free speech.

<comment><USER5> Does ringing a wonan's Phone number and threatening rape, torture and murder count as a death threat?

What about turning up on her doorstep and threatening her in person? At what point does a threat become specific and credible?

<comment><USER6> It varies on a case by case basis.

</comment></comment></comment></comment></comment><comment><USER7> The FBI doesn't prosecute anything; it investigates, and the various US Attorney's offices prosecute.

<comment><USER8> And the article at hand, as opposed to the headline here, names the one of those U.S. Attorney's Offices that decided not to prosecute.

</comment></comment><comment><USER9> Off topic but, is it me or does Business Insider hijack the back button on mobile? And why do websites forward to a country domain and not the actual domain you are trying to visit?

What's with this terrible web?

</comment><comment><USER10> > They used 4chan and 8chan — websites linked to the distribution of child > pornography — to organise their movement, the FBI says.

What? 4chan is linked to child pornography? This paragraph alone is casting serious doubts on the journalist's objectivity and seriousness.

<comment><USER11> It's not? Since when?

<comment><USER12> That's like saying the internet is associated with illegal drug distribution because sometimes people buy drugs over it. It's true, but not representative. That's not how most reasonable people would summarize it.

<comment><USER13>
      That's not how most reasonable people would summarize it.

Only because a reasonable person would choose a more subjective statement, to convey the full breadth of depravity a visitor could expect to find on 4chan.

I mean, you've also got the gore pics, the incitements to racial and political violence, the fucked-up hentai, the homophobia, the raids on children's games, and the incessant insistence that everyone kill themselves.

<comment><USER12> Or they might not take it so seriously, and describe it mostly as a bunch of bored immature people trying to blow off steam and entertain themselves and each other. And they take it too far somewhat frequently.

But maybe people at your middle school were more mature than at mine, and never tried to gross each other out by tricking them into checking out this really cool site called goatse.

</comment></comment></comment></comment></comment><comment><USER14> Can you imagine if the feds prosecuted every idiot who made a death threat online? They have criteria for identifying particularly egregious cases worthy of prosecution. One of the criteria, mandated by the Supreme Court of the United States, is that the threat must be credible and specific. That's gonna be impossible to prove for online trolls mouthing off.

When people play the "I'm getting death threats" card, put on your skeptic's hat and realize that _every_ person who arouses any controversy gets death threats online. It's awful but it's inevitable. Ask yourself if they're just trying to deflect from whatever controversial thing they did in the first place.

<comment><USER7> > Can you imagine if the feds prosecuted every idiot who made a death threat > online?

I imagine there'd be a lot fewer death threats if there was _de facto_ official tolerance for them.</comment></comment>


Several grumpy opinions about remote work at Tailscale - <AUTHOR> https://apenwarr.ca/log/20200309 <comment><USER2> >I eventually turned off Slack notifications entirely, after experimenting with many different variations. @here is an abomination; notifications in each "other Slack instance" need to be set separately; it spams your @#$!! phone with every single message anyone types, even while you're on your PC. Forget it, notification privileges revoked, and I've been much happier since.

Eh, I've found Slack to be highly competent at presence management, when it's working correctly, which is most of the time. It's usually smart enough to know I've walked away from my computer, and to start pushing the notifications to my phone instead, and then stop again. And I'm pretty sure it dismisses its own mobile notifications once I've cleared them on desktop, too.

> Third, it's highly integrated, not to say bundled, with Calendar, to the > point where it obnoxiously auto-schedules a Hangouts meeting id even for > your team lunch.

This is a setting in your GSuite Admin panel.

Also, I feel like Hangouts Meet (the evolution of Hangouts itself) is a much better product in general, and the Hangouts Meet Hardware is surprisingly decent, if expensive. Hangouts even has auto-captioning, which is kind of cool!

Surprised the author didn't call out Slack video calls. They're... also decent! And baked right into Slack! (So no incremental cost!) But they only work for meetings with people in your Slack workspace, so that's a bit auto- limiting.

<comment> t-writescode I've used Slack at 3-ish different companies.

Each company has different practices when it comes to Slack; and, as someone who has used Slack so much that it's mentioned about him at those companies (not always in a positive light?), I have a few thoughts and rules about the best Slack usage that I think help, in general.

1) At any not-small company, you're going to want to almost immediately change your Sidebar from "Everything" to "Unread and starred conversations".

2) Star all channels that you personally need to keep track of (or want to keep track of for a certain amount of time) and all people that you want to talk to or are currently in an important conversation with.

3) Unstar channels and people where #2 is no longer the case.

4) Create private channels for any conversation / project or issue that will ever require more than the people that are currently in a 'multi-person private message'. Archive them when the issue is over.

5) Use @here sparingly and @channel way more sparingly. If you're at a company that doesn't use @here / @channel sparingly, mute them for the channels that use them in excess. My current company has a meeting room shortage, so every single time a meeting room is freed up unexpectedly, there's an @here in one of our channels. That channel has @here notifications disabled.

6) If you can, in your broader "all the devs hang out here and can chat about work stuff" or "talk with ops here" channels, consider adding group aliases, so you can say, in those channels @ops, or @team-ops to notify just that group when things are important.

7) Use @here sparingly, yourself. Use it only for extreme situations.

8) Give chatty bots their own channel. Having the pull request bot for your dev team in the same channel as active development is going on, or in the same channel as other teams are supposed to come in to talk to you about a project your team is working on is just not the best.

9) Current, unproven experiment: at my current job, my team is experimenting with a heavy use of threads. Previously, we had multiple projects occurring concurrently and historical knowledge on features is spread across the team with a lot of new members, so we can't use the tricks of private channels per project to as much effect. Threads have a lot of weaknesses when it comes to readability and following; but, they do reduce the chances that someone's important message will get lost in a swarm of other messages on more pressing issues.

edit: Whoops, thought of more.

10) Use snippets for any bit of code even slightly long. I'm thinking like 7 lines or more. There's syntax highlighting, and they're collapsible, saving precious screen real-estate

11) Use Posts for large format messages you want to post to a channel or multiple channels. They have formatting, headers, and so on. They're also collapsible, again to save on screen real-estate.

12) Personal preference: try to not send multiple, short messages, unless that's your company's culture. It breaks up the conversation and makes it a bit hard to follow where a thread is, if you're using threads. For example, which message do you put the response on? The part where the situation got confusing? A random message in the middle? The last one? The first one?

edit 2, 3: more adding (I'll just add more after this and not say I'm adding more, if it happens again), and some removing some unnecessary information

13) Mute channels that you want to remain in, but don't want to be bothered by (maybe unmute @here and @mentions on this channel). This could include your company's random chatting channel, or the operations channel, or even your personal team's channel if you're currently heads down in a major project, but you might need to be pinged for something serious.

<comment><USER3> My biggest irritation in Slack is when people direct message me with 'Hi' and then wait for me to respond before they tell me what they need from me.

Please just tell me immediately what you need, so I can decide how urgently I need to reply. I don't want to reply to you, and then have to wait for your to type out what you need for me. It's a big distraction.

<comment><USER4> Yes.

      > Hi
      < Hi.
      > Do you have time for a question?
      *internal sigh*
      < What is it?

It wastes both parties' time.

But some people consider it more courteous. In general, courtesy is a low- level de-optimization (non-productive words/interactions) striving to avoid higher-level impediments (taking offense, etc.)

<comment><USER5> No Hello: [http://www.nohello.com/](http://www.nohello.com/)

Previously discussed on HN:

\- [https://news.ycombinator.com/item?id=19648415](https://news.ycombinator.com/item?id=19648415)

\- [https://news.ycombinator.com/item?id=14868294](https://news.ycombinator.com/item?id=14868294)

</comment></comment></comment></comment></comment><comment><USER6> Missing from the list of videoconferencing tools: Google Meet. Hands-down the best and most reliable tool we've used because it "just works", and is already included in GSuite so there's no extra subscription to deal with. Probably spend at least one hour per day using it and can't remember having any trouble with it, ever.

The app works even in unrealiable network conditions and somehow doesn't skip a beat when switching between wifi and mobile network.

The only annoyance is not being able to share a single screen on Linux, but that's a Chrome limitation.

<comment><USER7> Is it the same as hangouts?

I've only used hangouts and it uses all my CPU destroying battery life and causing loud fans.

<comment><USER6> No, it's a separate product and has none of these issues.

Classic Hangouts is going to be turned off for GSuite customers such that there's exactly one conferencing tool, and one chat tool remaining. Hooray!

</comment></comment></comment><comment><USER8> "Airpods (when connected to iPhones or iPads) have very low latency, not detectable by humans. " "Linux bluetooth is hahahahaha sorry I forgot what I was going to say."

Makes me seriously doubt any other latency measurement done by him.

The AirPods (even when connected to an iPhone) are said to have a latency of around 250ms [1] with the Pros having around half of that, 120ms. This makes both of them terrible as far as wireless headsets go. Even within Bluetooth headsets, the original AirPods are absolutely terrible, with the Pro now being in a much better position, but still nowhere near "low latency".

No surprises, since AAC is nowhere near a low-latency codec (this is not AAC- LD, it is plain old AAC-LC). The latency actually _improves_ when connected to BlueZ [my experience], likely because SBC is actually a much better codec when properly configured, something that few Bluetooth stacks do [2].

[1] [https://9to5mac.com/2019/12/22/airpods-latency- test/](https://9to5mac.com/2019/12/22/airpods-latency-test/)

[2] [https://habr.com/en/post/456182/](https://habr.com/en/post/456182/) [https://habr.com/en/post/456476/](https://habr.com/en/post/456476/)

On another topic 150-200ms of latency is definitely human noticeable, even for me, that I don't have very good hearing nor reflexes. Still I would say most likely not noticeable in a meeting room environment, except for one-person videoconference.

<comment><USER9> In music applications, 10ms is considered noticeable, which should give us an approximate idea of the physiological bounds. Asserting that 150-250ms is "not detectable by humans" is _way_ off.

<comment><USER10> You really start to notice even at ~250ms because people start talking over each other without realizing it during a conference call.

</comment></comment></comment><comment><USER11> I don't think Keybase is getting a fair shake in this post. The author is using the ChromeOS Android app. This seems like a fairly unusual setup, but maybe Chromebooks are more popular than I think? Plus the low amount of memory in Chromebooks guarantees that this is probably not going to turn out well.

Most people are going to use the Electron App on either Mac, Windows, or Linux on a laptop with a decent amount of memory. Also, the part about no "GitHub integrations" is false too, because I'm looking right at githubbot that is maintained by the Keybase team. Maybe it doesn't support all the things the author is looking to do, but that is different than saying there is no GitHub integration at all.

<comment><USER12> A number of great Keybase features have only appeared recently which may be why there's a mismatch between the blog post and Keybase's current features. In the last few months there's now:

* Ipad support (nascent but works)

* Bot integration (VERY interesting permission structure [https://keybase.io/blog/bots](https://keybase.io/blog/bots))

* Neat SSH CA

</comment></comment><comment><USER13> I'm curious why people want to have work slack available on their phones. I can imagine some specific roles where it may be useful, but in general... why? I can't imagine it being more than an extra distraction. What's the use case for it?

I'm asking because I've seen many people complaining about the phone notifications from their work.

<comment><USER14> For me it's partly about being responsive - if I'm away from my desk grabbing lunch, in front of the TV, picking up the kids from school, if I can unblock a colleague that's a win in my book.

But even for a fully remote company, we have occasional client meetings. That often means meeting up beforehand, coordinating things on the fly as travel times change and maybe some people have to skip meeting before and go straight to the client, etc. Slack on a phone gives a consistent, single comms route for this rather than switching to text/WhatsApp/etc even if you know their numbers.

<comment><USER15> Be mindful about setting toxic company cultural expectations from your generosity. Others within the org may not want to give their time away for free.

<comment><USER10> Sometimes taking 3 minutes to respond to something at the right time gives a much better impression and more uplift than 30 minutes chained to a desk at any other time.

<comment><USER15> Until that response time is expected nights, weekends, holidays, and while on vacation.

</comment></comment></comment></comment></comment><comment><USER16> I expected this article to be about the downsides of being forced to work from home (possibly due to recent events). But it's just a list of 4 SaaS tools that this company happens to use. And they just happen to be fully remote. I don't see the correlation.

Any chance of changing the title to something more...I don't know, accurate? It's a good write-up otherwise and I enjoy these kinds of posts.

<comment><USER17> "Several grumpy opinions about remote _working tools_ at Tailscale" would do it.

</comment></comment><comment><USER18> At my employer we've used Skype, Lync, Slack, Teams, Slack again, Zoom for our meetings and whilst some have started to become OK now (Slack and Teams), it's laughable to me how bad the voice experience still can be considering how this has been a solved problem in the gaming community for what, 15 years?

Today? If I could choose, I'd just use Discord. The only annoying limitation is the 10 people screenshare/Go Live limit but that's only really a problem for company-wide meetings but thankfully in my case they're usually not very, ahem, informative (and thus not essential), plus they get recorded anyway.

<comment><USER19> Most of the videoconferencing tools support the state-of-the-art Opus codec. If people are not using headsets though, echo cancellation is required, and that can seriously mess with the audio quality.

Gamers use high-quality headsets with good microphones. Anything Bluetooth is still rather low quality because of the codecs used by the legacy hands-free profile. This will improve with Bluetooth LE Audio.

</comment></comment><comment><USER20> Did you try jitsi meet for videoconferencing ? [https://meet.jit.si/](https://meet.jit.si/)

</comment><comment><USER21> As a long time (paid) user of whereby (aka appear.in) I've been pretty disappointed by recent changes. You used to be able to visit appear.in/anything and get a room. Now there is an explicit and annoying "create a room" step. It's still much simpler than Zoom, which is why I still pay for it, but if someone created a service with "the old appear.in experience" I'd switch a heartbeat.

<comment><USER22> What's complex about Zoom? My experience matches the article, which is "it's easy and seems to work for everyone".

The app UI can be confusing for advanced features (annotations and the like and people sometimes have a hard time groking single window sharing [or remembering that's what they did]), but basic video and full screen sharing "just works" IME.

<comment><USER21> You need to install an app. That's a massive hurdle compared to "visit this link", especially when interacting with customers.

</comment></comment></comment><comment><USER23> > We're using Notion as a team wiki and note taking app. It's ... okay. I > mean, it's probably the best tool for the job, and it's great in some ways, > but it's severely limited in others.

Has anyone had experience using Org Mode files in a Git repo to achieve the same effect as Notion or a team wiki? Seems like it checks many of the same boxes (forgive the pun): todo lists, easy links, hierarchy, tables, Kanban (with org-kanban), formatting. I think that it would address the issues, too: 'show me what changed' would just be git diff, comments could live in comment blocks, todo lists and reminders are rather insanely powerful & flexible, and it's very extensible and, of course, free software.

<comment><USER24> Everybody needs to use Emacs to get the benefit, so it's a non-starter. I wish it weren't.

<comment><USER25> So I thought, but there seem to be vim and IDE addons as well.

</comment></comment></comment><comment><USER26> > The "show me what changed" view is nearly useless; tons of updates about > tiny clutter changes, but no good way to give me a deduplicated list of all > the docs that changed. Virtually any wiki's RecentChanges view is better.

We use Quip ([https://quip.com/](https://quip.com/)), it's very equal to Notion.so, and suffers from the same issue. But Quip has a small API, and every hour i just grab my stared documents, flatten them to plain text and `diff` them. Changes are sent to email by a cron job. [https://github.com/torvald/quipdiff](https://github.com/torvald/quipdiff)

</comment><comment><USER27> Has anyone managed to replicate the linked Gmail guide[1] on Thunderbird? I currently am able to reply+archive[2] some emails, but the todo emails hang around in my inbox till I complete the task and then archive them.

Ideally, I would like to not see the ToDo emails till I am ready to look at them.

[1] [https://klinger.io/post/71640845938/dont-drown-in-email- how-...](https://klinger.io/post/71640845938/dont-drown-in-email-how-to-use- gmail-more)

[2] Ctrl+R, compose reply, Ctrl+Enter to send, A to archive message.

<comment><USER27> I figured out a workable solution, using Thunderbird tags.

1\. Customize Thunderbird toolbar and "View" button/menu to your toolbar. This reveals some hidden functionality that I discovered by accident just now.

2\. Go to your Inbox folder and Tag some messages as "To Do" (default shortcut "4"), and then archive them.

3\. Go to the Archive folder and from the "View" menu select Tags->To Do. This will display all "To Do" emails in the folder.

4\. Under the same "View" menu, select, "Save view as folder" option. Select appropriate settings on the popup window and create your shortcut.

5\. Now you have a shortcut folder in your folderpane that displays your ToDo items. At this point, you can revert step 1, as the toolbar button is not needed.

Now, if I can't deal with a message before the end of the workday, I can do "4 A" on the message to make it disappear from my inbox, while still keeping it handy. The only downside of this system is that I need to select "Archives" folder to update my local copy of the folder. Otherwise, newly ToDo-ed emails won't show up under the shortcut.

</comment></comment><comment><USER28> Having spent two decades in online meetings and conf calls with many partner companies, both SME's and Corporates, in my experience the only thing that 'just works' right of the bat under all circumstances is GoToMeeting [1].

For in-company meetings you can of course use whatever you feel comfortable with, but when it comes to large meetings with many external parties, some of which will phone in, many of which are very restricted in what they are allowed on their computer, nothing beats GoToMeeting (no affiliation), and I have tried or been forced to try a lot of different solutions.

For email we use O365/Outlook. Although I use GMail for personal/family stuff, I find the Outlook client still beats everything else out there for business matters, and O365 mail has been pretty solid the last few years.

As for planning, notes, follow up, tracking etc. We use Tasks in a Box [2] (full disclosure, I am affiliated with an investor in this company). It integrates very well with Outlook and has been pain free and solid since the 2018 release.

I don't like Slack, nor Teams. Skype used to be fine for persisted chats but they ruined it. I'd love Discord for business. I use it with colleagues and some like-minded companies, but as of now it is not acceptable for many businesses.

[1] [https://www.gotomeeting.com](https://www.gotomeeting.com)

[2] [https://tasksinabox.com/](https://tasksinabox.com/)

</comment><comment><USER13> Another one for the videoconferencing is AWS Chime. It pretty much just works. It doesn't try to be an amazing product on its own which makes it free from weird features and bloat. The best one I've used so far.</comment>


Book review: The Lean Startup - <AUTHOR> http://www.ft.com/intl/cms/s/2/8a022f32-de33-11e0-9fb7-00144feabdc0.html

<comment><USER2> I already have a copy and actually have it right by my laptop as I type this into the wee morning. The book is fantastic so far and I haven't been able to put it down. I'm not reading it in a linear fashion but treating it like a reference book. It's literally a tool I've been able to put into action immediately. The book has a level of rigour to it that I really appreciate.

For instance, we're all familiar with the concept of runway on Hacker News right? How many of us think it's the amount of time that we have left or money left in the bank? Ries writes this on the subject:

"The true measure of runway is how many pivots a startup has left: the number of opportunities it has to make a fundamental change to its business strategy. Measuring runway through the lens of pivots rather than that of time suggests another way to extend that runway: get to each pivot faster."

How many entrepreneurs feel like they're barrelling down the runway and just crossing their fingers that something's going to change? "Apple will feature my iPhone app and I'll get a thousand users, I can just feel it!" Or, "I'm sure we can just get some angel funding, it's a hot market right now."

With Ries' view of the runway, you can literally rely on Pivotal Tracker to show you whether you're extending your runway or shortening it, and that's damn more effective than praying/crossing fingers/refreshing Google Analytics every half hour to see if your product has gone viral, etc.

EDIT: The book of course goes into when you should/shouldn't cut costs to extend runway and when you should pivot faster. It also explains what it means to pivot faster (e.g., validate your assumptions more quickly, not necessarily code features faster). I just wanted to clarify that given my PT remark above.

</comment><comment><USER3> What I'm curious is how much practical counsel it has. I'm a huge fan of Rob Walling's "Start Small, Stay Small" because it is just overflowing with actual, concrete advice. One example is that he comes out and gives you some actual numbers for product prices.

A lot of "great business books", like Crossing the Chasm, on the other hand, can be fairly easily summed up in a few pages, even if the ideas are certainly good ones.

I'll probably get it anyway because I'm a sucker for business books, but honestly with many of them you're not missing anything if you read the summary.

<comment><USER4> There are a lot of real-world examples which makes the whole thing worth reading and not just the summary. I took my own notes, but it would have been nice to have a summary of key points at the end of each chapter.

</comment></comment><comment><USER5> The Lean Startup model works because it's rooted in evolution. Mutations are made and tested and the weaker one dies off. Biology has been testing it for much longer than we have been creating businesses.

We're starting to realize that you can't guess and strategize for future occurances, you just have to try them out and react accordingly. You have to get a little bit better one day at a time and not just think about how you great you want it to be.

That's the biggest hurdle with trying to change the world, we spend too much time thinking and arguing over what's better while key opportunities are passing us by every day.

<comment><USER2> The jury is still out on whether Lean is a model that "works", that term being defined by most entrepreneurs as letting _them_ succeed. I have absolutely no doubt that Lean works as a model for revealing "truth" as Eric Ries claims.

Here's the alarming thing that the book suggests: that we are all scientists trying to reveal market insights. Some of us manage to find out that our hypothesis was true and we are rewarded. Some of us disprove a hypothesis, which is a perfectly scientifically admirable thing to do, but we are penalized for it. 100 years from now, will people laugh at how our society was naive enough to let entrepreneurs who fail go personally bankrupt in some cases? Will they even consider revealing market truths to be failure? I'm guessing that 100 years from now we'll have reached a point where these things are true:

1\. We won't see so many half-baked products get to market (e.g., Blackberry Playbook) because conventional wisdom by then will have prevented those kinds of products from getting as far along in the product development stage as they do now without having fundamental assumptions about them get validated earlier on.

2\. There will be a market that rewards entrepreneurs for revealing insight into their "failures" because these failures provide truths about the market and are just as equally applicable as truths about the market that validate assumptions.

<comment><USER6> Most. Startups. Fail.

If your startup operates on the assumption that your vision is flawless, you're not causing your vision to be less uncertain by refusing to notice the risk.

You're shooting the messenger. You've conflated trying to measure whether a strategy is flawed with causing it to be flawed. Pull your head out of the sand. It is not the fault of the book that people who have flawed ideas won't get rich without fixing their ideas.

<comment><USER2> I suppose I wasn't very clear, but what I was trying to say is that a lot of entrepreneurs are turning to Lean for a framework that will lead them to success. That's about as big of a misunderstanding as thinking being able to predict the weather will allow you to force a sunny day tomorrow. Eric Ries has never claimed to be able to do the latter, and I was just pointing that out. But right up there with misunderstanding #1 about Lean (i.e., "Lean means bootstrapped cheap right?") has got to be this particular misunderstanding.

What I meant by jury is still out, is that we might find that the framework suggested in The Lean Startup actually increases success rates amongst startups in addition to being a model for revealing truth. Revealing truth faster will allow startups to extend their runway and if we find that most successful businesses only require X pivots on average before they start to profitable, we very well might see startups be able to accomplish these X pivots succeed where they may have followed a more traditional launch and pray model and achieved fewer than X pivots, running out of runway.

If it sounds like I'm trying to be negative about the book, I'm not. It's fantastic and I'm absolutely suggesting everybody buy a copy :P

<comment><USER7> > _a lot of entrepreneurs are turning to Lean for a framework that will lead > them to success_ ... _But right up there with misunderstanding #1 about Lean > ... has got to be this particular misunderstanding_

I agree with what you're saying but when the strap line of the book is "How Today's Entrepreneurs Use Continuous Innovation to _Create Radically Successful Companies_ " [emphasis added] the misunderstanding is, well ... understandable.

<comment><USER2> You're right, it's on the cover. I have jumped right into the book but haven't read anywhere in there claims that Lean will cause success. It's pretty modest in the claims. I find it interesting that it's blatantly on the cover though. I'm not convinced this would let me succeed but I am convinced it would help me from driving off a cliff into a disaster of a situation where I have wasted a lot of time and effort on a product that it turns out the market doesn't want.

</comment></comment></comment></comment></comment></comment><comment><USER8> Next up: Get your certification as a Lean Startup pivoteer, Lean Startup domain expert or Lean Startup MVP (yes, even you can be the product!).

Certification consists of a 4 hour workshop starting at only $4200.

Disclaimer: Lunch not included, though you can split-test dishes at the Minimum Viable Café at competitive, pivoted, market-driven, customer-verified, inflation-adjusted price models, with guaranteed* radical results to your entreprenurial execution capabilities.

* not guaranteed.

</comment><comment><USER9> Can't wait to get this. Got to see the startups at Lean Startup Machine London on Sunday and was interesting to see them follow the lean startup culture.

<comment><USER10> LSM was good - watching all the great ways people came up with to test their ideas. The dog team and their little photocopied A4 sheet with tear-off tinyURL's. The travel team producing printed brochures and trying to sell them on open top buses.

</comment></comment><comment><USER4> Got the book pre-launch thanks to Flashpoint[1] and read it cover to cover. It crystallized a lot of "gut instincts" I had had into a complete, coherent set of tools and answered many many questions we had spent hours pondering as a team.

Got my pre-ordered copy the next day and gave it to our first hire and bought 3 more copies for the senior guys on my team.

Get it and read it, it's worth the time.

[1] <http://flashpoint.gatech.edu>

</comment><comment><USER11> Is Lean the Agile of startups?

<comment><USER12> Sort of.

I haven't read the book yet, but from Eric's blog, he mentions three books as big inspirations: Beck's "Extreme Programming Explained", Poppendieck's "Lean Software Development", and Blank's "Customer Development".

The first two books were also important in the Agile community. (Although in my view what now gets sold as "Agile" has watered both of those down almost to the point of meaninglessness.) The third is new, and provides an approach to business that complements Agile software development practices very well. So you could look at the Lean Startup approach as Agile (or perhaps the best of Agile) for startups.

So far, though, the Lean Startup movement still has substantial depth. I think that's because startup people all know they're in a do-or-die situation, and they are willing to work very hard for a competitive advantage. The real question for me is whether the Lean Startup community can retain that depth as it gets more popular.

Business is terribly faddish, and now all manner of large companies are going to want to pretend they're lean startups. They will pay people lots of money to help them pretend. Let's hope that money isn't enough to corrupt the actually useful material in the Lean Startup approach.</comment></comment>


How Not to Network a Nation: The Uneasy History of the Soviet Internet - <AUTHOR> http://journals.uic.edu/ojs/index.php/fm/article/view/6689/5482 <comment><USER2> One more author rant before the thread vanishes, here are a couple points from the book.

1\. The Soviet internet is a sideways allegory for the present. The Soviet Union, once we work through its parade of horribles, helps separate us from and then rethink our current network values. General secretaries, whether state or corporate, have long been trying to privatize our information.

2\. The reasons the Soviets did not develop a network are not the reasons we often like to think: it's not because networks are anathema to censorship and control structures (think cybersecurity and dictatorships today), it's not because of technological backwardness (que Soviet military networks since the mid 1950s), it's not exactly because their genuinely screwed up command economy was either too rigid or hierarchical (que the rest of the book).

3\. The Soviet story is a tragedy of big science and state support gone wrong, as well as a cautionary tale for how we go about building the network future in those terms.

And a link dump: enjoy!

Review by David Strom

[http://blog.strom.com/wp/?p=5287](http://blog.strom.com/wp/?p=5287)

Review by Michael Gordin in Nature

[http://www.nature.com/nature/journal/v532/n7600/full/532438a...](http://www.nature.com/nature/journal/v532/n7600/full/532438a.html)

Podcast segment with Kerri Smith (starts at 6:50) in Nature

[http://www.nature.com/nature/podcast/index-2016-04-28.html](http://www.nature.com/nature/podcast/index-2016-04-28.html)

Conversation in The Atlantic.

[http://www.theatlantic.com/technology/archive/2016/04/us- res...](http://www.theatlantic.com/technology/archive/2016/04/us-research-and- development/477435/)

<comment><USER3> So, I'm getting the sense this is related to Glushkov's work on pricing right? My understanding, please correct me if I am wrong, was to try and track all items and use computer systems to optimize production and pricing. Was that integral to the network he envisioned? Do you touch much on the various economic debates in the Soviet Academy at the time on how to run a non-market system, like Kantorovich's ideas?

<comment><USER2> That's right. The network project was the means Glushkov envisioned for realizing both economic optimization and a series of other technical upgrades, both wild (like mind uploading) and mundane (like paperless office). Yes, Kantorovich, Glushkov, and the economic cybernetic regulation of market without the market (contra Kosygin-Liberman reforms) figure squarely into the central chapters.

</comment></comment></comment><comment><USER2> Thanks, pjc50, for the helpful reference. This is the author of the book here. Your instincts are sharp. As it happens, I deal with exactly your last argument in the book, so let me gently suggest that if in fact there were "no way" for anything but central control, this book would not exist because there would be no story to tell. However, it does, and the three-decade Soviet story told here, whose protagonist is a leading theorized of in fact decentralized power, might deserve another glance...

<comment><USER4> The same thing happened in France, kind of.

For a while (in the 70s and 80s) there were _two_ competing, state-sponsored networks in France: Minitel, based on x25 and made by French telcos, and Cyclades, based on datagrams and made by French CS research labs. The telcos lobbied the government to cut funding for Cyclades, which they saw as a competitor, and it eventually happened (under Valéry Giscard d'Estaing, probably neither Pompidou nor de Gaulle would have made that mistake).

There is a very good book (in French) about that story, called La France en réseaux, by Valérie Schafer. It is one of my favorite tech history books. I will certainly read yours and hope it is as good!

However, I saw it is only available as hardcover. Any chance you can make it available for Kindle?

<comment><USER2> Thanks, catwell. Super helpful. Schafer's work comes highly recommended. I'll get to it!

MIT Press put out an e-book version, and the soft cover comes out later this year. (A pdf is probably out there too...)

</comment></comment></comment><comment><USER5> A number of African nations are currently struggling with this -- attempting to bootstrap nationwide networking from zero, while having economies which are very much command economies (although in Africa, that's due to corruption, rather than being baked into the law).

In one small African nation the government was intensely interested in building a national system for finding lost cows. (This was a much-touted presidential initiative.) Basically, farmers would be able to text their cow's ID and the system would tell them if another farmer had found it.

In spite of the simplicity of such a system, it took them years of 'research and development', and enormous budgets spent, for a system which they discovered in the end, didn't work. It turned out, they couldn't figure out how to procure and install a server for it to run on.

<comment><USER6> Western developed economies are quite capable of doing this, such as the Canadian gun registry which somehow managed to spend billions of dollars without achieving anything.

<comment><USER7> CGI, which built the registry, is the parent company of CGI Federal, known lately for the Obamacare site.

<comment><USER8> Let me guess... they're absurdly well connected though?

<comment><USER9> You don't get large federal contracts without being well-connected.

<comment><USER10> And this sub-thread is one, if tiny and partial, solution. Sunlight (public knowledge and understanding), bleaching out such stains. I appreciate the pointers.

And... we shouldn't let these people simply re-organize under new names.

Just as I'm likely to look askance at anyone with Goldman Sachs in their resume. Only, I prefer to know and respond more specifically.

</comment></comment></comment></comment></comment></comment><comment><USER6> See also "Project Cybersyn" for another attempt at making a computerised command economy work. It's referenced in the article.

While this looks like an fascinating read, it's worth remembering that the thing that makes the Internet the Internet, distinguishing it from other Western systems like X25, Minitel, and telecoms in general is its peer-to-peer nature with minimal central arbitration(+).

The Soviet Union rationed access to photocopiers. There was no way it would ever build a network that was not entirely subject to central control, and this must inevitably handicap its usage and development.

(+) Minimal, not zero. The central point for a long time was Jon Postel.

<comment><USER11> Project Cybersyn is interesting as a kind of alternate-history thought experiment, but imo it's not _that_ useful as an example to study historically to learn empirical lessons from, because of how early it was canceled (due to military coup). It was first proposed in mid-1971, with design and prototyping starting in 1972, and Allende was overthrown in 1973, when it was still at a prototype stage. If it had run for a few more years, there would've been a lot more to go on.

</comment></comment><comment><USER12> Actually if you compare the cost and quality of internet service in US and some of the states formerly part of USSR it will make you very sad. An equivalent of comcast $50 plan will run you $5 and that's with no caps or shaping . Looking at less then stellar origins of internet in USSR you can see how monopolization f$%ed up US ISP market.

<comment><USER13> Former Soviet states have lower incomes, which means both a smaller ability to pay for services, as well as a lower cost of providing services (building and maintaining infrastructure, installation, support, those types of wages) on behalf of the ISP.

Other European states that were never Soviet also have much cheaper much faster average internet connections than the US... but these places are much smaller and more easily connected and maintained, I suppose.

Anyway, the picture isn't so black and white, maybe we get screwed in the US, but maybe we don't or not as badly as you suggest.

Tangentially, I am amazed you can get unlimited satellite cell internet for $125/mo from Iridium now, I'm sure that plan is slow as molasses but... its global and that's amazing to me.

<comment><USER14> _Other European states that were never Soviet also have much cheaper much faster average internet connections than the US... but these places are much smaller and more easily connected and maintained, I suppose._

If this were truly the cause of the US's bandwidth backwardness, then denser pockets of the US should have been wired with gigabit access around the year 2000. Instead, urban areas often have much worse speeds and prices.

</comment></comment></comment><comment><USER15> From what I understand, in Soviet Russia/Eastern Bloc pretty much everything IT-related was copied from the West - various clones of IBM, DEC, Intel architectures. There were some original designs but they didn't really take off.

So given that I'm not really surprised 'soviet internet' didn't come to fruition even though I'm sure the book is an interesting read from the historical perspective.

<comment><USER2> This is a reasonable instinct, although, as I argue in the book, it really only explains things after the 1975 KGB-advised decision to harness the Soviet IT industries to cloning western innovations. Before that decision, between 1959 and 1975, when the Soviet networks are getting their start, the Soviet computing industry is often pioneering and interesting. After 1975, Soviet deliberate technological just-behindness does not equate to technological backwardness. One of the takeaways of this story is that peerless imaginative foresight, technological wizardry, and political prowess are not enough to change the world.

<comment><USER16> > between 1959 and 1975, when the Soviet networks are getting their start, the > Soviet computing industry is often pioneering and interesting.

And when you really decide to see what was so pioneering in Soviet computing industry, it all boils down from 'pioneering' to only 'interesting'.

Which helps to get a perspective on a true scope of Soviet CS research.

After all, layered copying of Intel x86 CPUs also was 'pioneering and interesting'.

<comment><USER17> > After all, layered copying of Intel x86 CPUs also was 'pioneering and > interesting'.

It was; at some periods I think Soviets were world leaders in electronics reverse engineering. Those techniques were rumored to get used well after USSR death in some Asian countries.

MESM -> BESM-6 machines I've heard had some abilities like a number of simultaneously supported IO ports (AS system for space program?) - which may or may not be considered pioneering. Another example is Setun ternary computer; of course that's providing we should consider some computers after ENIAC 'pioneering enough'.

<comment><USER10> That's the one that rings a faint bell, for me -- ternary systems. Although I've no background to speak of and suspect, based on their work in mathematics et al., that there is considerably more to the story, including and perhaps especially on the theoretical side.

</comment></comment></comment></comment></comment><comment><USER18> This is really interesting! I ran into hints of this when I was doing the lit review for my dissertation. Not so much the internet part, but there was a RAND corporation memo on the Five-Year Plan of 1970 that mentioned the goal of placing all industrial production under rational, automatic control. I suppose I could have inferred an internet from that, but I was more interested in the idea that they wanted to run their economy with a giant linear program. (Which is an idea that was also briefly popular in the U.S. during the late 1940s and early 50s.)

<comment><USER2> Sevensor, I'd LOVE to read more about this. Is there more in your diss?

<comment><USER18> Not a whole lot. I mention it in passing. You can get the Rand corporation's 1970 _Soviet Cybernetics Review_ here: [http://www.rand.org/pubs/research_memoranda/RM6200z1.html](http://www.rand.org/pubs/research_memoranda/RM6200z1.html) It makes for fascinating reading.

Edit: If you're interested in the late-40s zeitgeist in the US, Tjalling Koopmans' 1951 Charnes Commission report is available here: [http://cowles.yale.edu/sites/default/files/files/pub/mon/m13...](http://cowles.yale.edu/sites/default/files/files/pub/mon/m13-all.pdf). My apologies to Yale for hotlinking.

Edit 2: That's _Cowles_ commission, not _Charnes_ commission. Charnes might have been at the meeting (I forget off the top of my head) but it wasn't his commission!

<comment><USER2> Excellent! I know the 1970s RAND review and am delighted to learn about the Cowles commission material here.

</comment></comment></comment></comment><comment><USER19> > Least of all did I imagine that this story would throw me headlong into a > study of Soviet bureaucracies.

That is kind of like trying to understand the history of the Internet without understanding how the US Congress, DoD, (D)ARPA, and NSF relate and work.

<comment><USER2> Precisely

</comment></comment><comment><USER20> Internet could not exist in a country whose existence was based on censorship and information control.

<comment><USER21> China seems to be handling it fine.

<comment><USER22> The Internet is a relatively new thing to China, so is GFW, the rapid upgrade of GFW, iirc, began appeared on somewhere after 2014. Before that, VPNs and Proxies were very stable, and minimal maintenance was required.

To the reason why it looks fine right now, my guess, is that the Chinese community is very much self-sufficient[1], plus, the majority of Chinese readers don't use any other language than Chinese itself. So it might not be about how it was handled, it's about what China is like.

\-- [1] [https://chinadigitaltimes.net/chinese/2016/04/%E5%A4%A7%E8%B...](https://chinadigitaltimes.net/chinese/2016/04/%E5%A4%A7%E8%B1%A1%E5%85%AC%E4%BC%9A%EF%BD%9C%E6%B1%89%E8%AF%AD%E5%AF%B9%E7%8E%B0%E4%BB%A3%E6%96%87%E6%98%8E%E7%9A%84%E8%B4%A1%E7%8C%AE%E6%9C%89%E5%A4%9A%E5%A4%A7/)

<comment><USER2> Really interesting. "About what Russia is like" is the short story of this book, and there's huge room for more comparative work on the networks between these two giant socialist states without democracy on the Eurasian steppe. As best I can tell, this book may be translated into Mandarin before it makes it into Russian.

</comment></comment></comment></comment><comment><USER23> From 6th paragraph:

> The first global civilian computer networks developed among cooperative > capitalists, not among competitive socialists. The capitalists behaved like > socialists while the socialists behaved like capitalists.

Great contrast! What is the deeper lesson here?

<comment><USER2> Thanks! There's many. Here's a couple: liberal economic language gets the cold war wrong. Our policies are often at their best when we start by doubting inherited commitments to either markets or states. Mixed economies have long been the default. And Hannah Arendt got something right: the cold war is not so much about a clash of competing ideologies as it is the rise of parties that privatize social (network) power. Etc.

</comment></comment><comment><USER22> Turns out GFW isn't so original after all. _sigh_

</comment><comment><USER24> Ireland has been doing this for very long time

</comment><comment><USER25> Ehm... The author of the article barely scratches the surface. He has no information on Soviet military networks, especially those decentralised ones introduced in anti-air missile system in the last decades of the USSR. КСА «Рапира-Ц» for those who really wants to know. And that guys, was the thingy. Also search for АСУ «Пирамида» if interested.

<comment><USER26> Unfortunately, that's how all discussions of Soviet technology inevitably end up: but ooh it's space or ooh it's military. This mindset is well captured in the famous track "Аквалангисты" by Mango-Mango.

Most of it was pretty mundane and touchingly backwards, just less shoddily built than civilian equipment. I took apart a fair quantity of BMP-2 and T-72 instrument panels; call it my contribution to arms reduction and the world peace. My first joystick was converted from an ATGM control station. I've been with ZGV in East Germany while it's equipment and supplies were hustled away by entrepreneurial NCOs and officers. I worked with some of the guys who copied ЕС ЭВМ series from IBM products with cracking stories about realities on the ground.

There's no secret sauce, despite no shortage of impressive Cyrillic acronyms and chest thumping.

<comment><USER25> So you admit, you never served you duty at ПВО. While you had been getting dirty selling diesel from T72 for Marlboro blocks in East Germany, other guys invented proper original communication systems and did their best. АСВТ designed and developed fully automatic Искра network, of which you probably never heard, listening to Mango Mango and other jazz.

<comment><USER26> "у нас есть такиииие приборы.. но мы вам о них не расскажем!"

Well, neither you served in air defence, so other than some bizarre personal attack am not sure what your point was here. It is however remarkable how you paint me a greedy traitor for bringing a dose of realism to your unrestrained pioneer enthusiasm.

I worked with a bunch of people from NII SA, the principal developer of ES series. Some of them ended up as mobile mounted C&C elements for the military and on relay com stations, including strategic networks. They were equally shoddy however (and clones of the Western architectures to begin with). The shortest guy in the team once had to sit inside a panel fanning an overheating assembly with a piece of plywood during military acceptance test.

Soivet computing in 1980s was pretty stale. And it simply doesn't happen that people making sad shit for civilian side become sudden geniuses when switching to defence orders. Computing systems were inadequate on factories, research bureaus, power grid, they simply could not not suck in the military too. There were no separate research institutes designing computer architectures for military only, no factories producing separate component base just for military. If anything, the civilian production was a side business at most enterprises and were manned by same people. General state of research, production culture and scientific effort determines the baseline, and USSR was behind on all three in CS.</comment></comment></comment></comment>


Netflix: Run Consistency Checkers All The Time To Fixup Transactions  - <AUTHOR> http://highscalability.com/blog/2011/4/6/netflix-run-consistency-checkers-all-the-time-to-fixup-trans.html

<comment><USER2> The described approach just _feels_ wrong to me. I understand that the problems Netflix faces are challenging, but usually when I run into messy systems like that, where you do one thing to address one problem, and then have to do four or five other things to fix the problems that one workaround caused, there's a fundamental misengineering in the mix somewhere. Systems should be simple and consistent as much as possible -- doing something like this across the entire service is crazy.

I understand if they do it a little bit to test things, or whatever, but I think if they sat back and were willing to carefully consider this problem, they could come up with a much simpler workflow. The ability to do that is a key part of quality engineering. A big cascading infrastructure of workarounds that eventually only kind of gets things in a correct state is usually a sign of a problem.

<comment><USER3> > Systems should be simple and consistent as much as possible

CAP theorem says otherwise.

Distributed systems are complicated, almost like reality. You can feel the constraints of physics and math everywhere. You simply cannot get the best of all worlds (e.g., consistency, availability, and partition tolerance). If you have the money and need the scale, which often go hand in hand, you're simply better off avoiding hard consistency models, because the other two are more important to your business.

I love their approach. It's exactly what I think people should do to scale up their system. Avoid two-phase commits and other elegant availability mine fields and go for pragmatism. Note that this is only relevant for a few dozen companies.

<comment><USER4> It is not 100% clear from the examples cited that scaling should necessitate the consistency issues they have. Surely it is quite straight forwards to scale user private data (i.e. 'sharding' on user data) such as position in play and the queue.

For the data which is cross user, such as that which drives their recommendation system (are there other parts, I don't know, not a user) then consistency would be compromised - but given the soft/heuristic nature, presumably also more or less irrelevant. Here eventual consistency would be good enough (and ideally should not require extra processes)?

Like the halting theorem, the implications of the CAP theorem are only unavoidable in pathological cases. Until it is identified as a pathological case then I believe it is premature to invoke such theorems.

<comment><USER5> Scaling does not imply availability. Sharding user data certainly is a good strategy to achieve scalability (i.e., support a large number of users, distributed across a fleet of commodity hardware), but it doesn't a priori make that data highly available.

Let's imagine my personal netflix data (queue, ratings, etc.) live on a lightly loaded (since things are well shareded) DB instance. What happens if the hardware hosting that DB fails? Ok, let's replicate to a slave, and put into place automated failover mechanisms to promote the slave if the master goes down (since with many shards it's really hard to effect a failover manually in a timely fashion). Should the master and slave be in the same datacenter? That after is all is the failure scenario Netflix originally wanted to address -- what happens if your single datacenter goes down (which eventually will happen, no matter how much redundancy you think it may have)?

Fine then, separate the master and slave in different DCs (with fat and fast pipes so 2PC or synchronous replication can keep things consistent without impacting latency too much). Now where does the auto-promotion logic live -- the DC with the slave or the master? What happens if my client can reach both DCs, but there are connectivity issues on the links connecting the DCs? Network hardware can fail like any other kind, backhoes accidentally sever buried optics, and routing protocols do take time to converge.

P is now rearing its ugly and inevitable head, and you're faced with the C/A decision -- can I see and alter my queue (leading to inconsistency) or is it unavailable? Is this scenario pathological?

<comment><USER4> Sorry, but this argument is the worst kind of wrong - it is half true. 100.00000% consistency/availability is of course impossible in any circumstances.

'It is only relevant for a few dozen companies'

... because of size/volume. Your argument would make it relevant to all companies, unless netflix and other large companies have to live to a higher standard - which i do not think is being argued.

The CAP theory really is about bottlenecks, high volumes of possibly conflicting data to different nodes cannot be synchronised with guarantees.

It is possible to have distributed transactions on lightly loaded servers. These could complete in a timely fashion (<10 secs) 99.9% of the time with, theoretically a geometric drop off for the probability of longer delays.

The answer to the disconnected data centre is to have 3 with majority rule. Then the loss of a single link can no longer break consistency.

What is more, the article talks about the data being internally inconsistent (dangling references... etc.) this seems to be totally unnecessary for something like private user data. For the rest (recommendations), as discussed other strategies can be employed that at least guarantee internal consistency of a node.</comment></comment></comment></comment></comment>


Ask HN: What (technical) skills would you recommend to your younger self? - <AUTHOR>

What languages, skills, or just general ideas/topics would you recommend your younger self focus more on, develop and work with. What things do you find yourself using every day, and similarly, what things could you have comfortably survived not slogging away on. Not limited to computing or technology (e.g. public speaking, networking etc). <comment><USER2> I'd recommend my younger self to lay off the gaming and latterly web browsing so that the computer could be considered more a tool for creation than an entertainment device.

It's a bit sad that I didn't write a line of code until I started university despite mammoth computer time.

<comment><USER3> IMHO, that is like saying I wish I became a painter before becoming an art lover (from a consumer POV). I think you're being too hard on yourself here.

<comment><USER2> There's definitely the initial formation of interest, but beyond that I'm conflicted as to whether such computer use is a clear ramp up.

As a gamer (who also went on to develop games), I think I may be one of the few such people that doesn't fly off the handle in a dismissive rage upon coming across a 'games are bad' article or sentiment. I've no doubt that, for example, thousands of rounds of running around Counterstrike maps shooting people was a net negative for intellect and general mental health.

</comment></comment></comment><comment><USER4> Formal logic, probability, statistics, Microeconomics, information theory, game theory, artificial intelligence, databases, web-programming, math, more math and math.

</comment><comment><USER5> I'd recommend learning functional programming from the beginning for myself.

In fact, I'd recommend that everyone's first language should be a functional one. It would make my life, convincing everyone that referential transparency and immutable state are good things, so much easier.

</comment><comment><USER6> Self-awareness, financial intelligence, and confidence in doing the things you enjoy will always get you far.

Aside from that, I'd love to be further ahead with geospatial python and statistics than where I am now.

</comment><comment><USER7> Understand maths, algorithms and game theory.</comment>


Desktop.com – A Desktop for the Web - <AUTHOR> https://desktop.com/ <comment><USER2> This appears to be tab groups with more steps.

Try Firefox Containers + [https://github.com/kesselborn/conex](https://github.com/kesselborn/conex) for a similar experience (all for free, unlike desktop.com)</comment>


Show HN: Change Python code while it's running using a reloading loop - <AUTHOR> https://github.com/julvo/reloading <comment><USER2> i wrote something similar a while ago, and it gave rise to a pretty head- scratching bug... my code was doing something like

      if type(x) is Foo:

and mysteriously failed for some data around the reload. turns out that Foo objects from before the reload were using a different class object than Foo objects after the reload (which makes sense in hindsight, as Foo was redefined). fun times debugging that!

<comment><AUTHOR> That's a pain to debug. A similar thing happened to me with reload from Python's importlib. In the case of the reloading loop I think this will only happen when redefining the type within the loop, either through a class definition or an importlib reload.

<comment><USER2> yeah, importlib.reload caused mine as well! i'm wondering if there's a way to avoid that... maybe a @reloadable class decorator that saves a reference to each object you instantiate and switches out their .__class__ upon reload? obv not great for performance, but could be useful during development (which is where i'd mostly use hot reloading anyway)

<comment><USER3> I did a talk on this recently at EuroPython. Hot reloaders are really, really really hard to implement in Python in the general case (I.e not an IPython shell). You run into corner cases like this, and it basically comes down to reloading the whole app anyway.

<comment><USER4> link plz?

<comment><USER3> [https://youtu.be/IghyoR6ld60](https://youtu.be/IghyoR6ld60)

I didn't go into as much detail as I would have liked about hot reloaders, but the tl;dr is that if you have a _single_ reference to something, then hot reloading it is somewhat simple. The problem comes when you want to hot reload a single module inside a large program.

Hot reloading a loop like this is super cool, but it only works if you're just changing constants and not defining anything. The moment you want to change the definitions of an object in the loop and hot reload it then you're in a lot of pain.

Here's the source code for IPythons autoreload magic command: [https://github.com/ipython/ipython/blob/cd54f15544eee69449cc...](https://github.com/ipython/ipython/blob/cd54f15544eee69449cc5b3e926665bda5afb9fa/IPython/extensions/autoreload.py). Take note of the Caveats section.

</comment></comment></comment></comment></comment></comment><comment><USER5> When I first read this I couldn't think of a good use case. Then the example shown seemed like something I deal with all the time and wish I could do. But then I realized I would need to remember to add reloading to the range before I commit to the long loop I wish to change. Pretty damn cool though.

If it doesn't add much overhead this would be amusing for something like game dev, swapping out how the game works while running it.

<comment><USER6> This is how Lisp developers have worked for decades. It's been used for games before, too, e.g., [https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp](https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp)

</comment></comment><comment><USER7> Like ESR said: "these languages [perl, python, ruby] subsequently become more like lisp" (paraphrasing)

<comment><USER8> Are you paraphrasing ESR paraphrasing Greenspun's Tenth Rule of Programming?

"Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified bug-ridden slow implementation of half of Common Lisp."

Ref: [http://philip.greenspun.com/research/](http://philip.greenspun.com/research/)

P.S. This is not a comment on TFA. Congratulations to the author on making Python even more interactive.

<comment><USER7> I am not so sure anymore where I read it. This is interesting:

[https://mail.python.org/pipermail/python- dev/2003-January/03...](https://mail.python.org/pipermail/python- dev/2003-January/032674.html)

It refers to this, I guess. [http://www.paulgraham.com/lispfaq1.html?viewfullsite=1](http://www.paulgraham.com/lispfaq1.html?viewfullsite=1)

"If you look at these languages in order, Java, Perl, Python, you notice an interesting pattern. At least, you notice this pattern if you are a Lisp hacker. Each one is progressively more like Lisp."

This is the basic thought. Turns out PG wrote it more explicitly than ESR.

</comment></comment></comment><comment><USER9> This is great work, I could not believe the fact that it keeps state (like the current epoch number, and of course all the current model state). Makes Python even more dynamic.

Nice that you could condense it to less than 100 lines of Python!

</comment><comment><USER10> This is a great debugging tool for deep learning. Often your code might have been running for 20 hrs on 16 GPUs and you just don't want to restart from scratch again.

<comment><USER11> You don't have to without this tool, you can save and load models from/to disk already from provided APIs for frameworks/libraries (e.g. [1]). Handy for when you need to hard reset, move, and/or share data.

[1] [https://pytorch.org/tutorials/beginner/saving_loading_models...](https://pytorch.org/tutorials/beginner/saving_loading_models.html)

<comment><USER12> Yeah. But wouldn't it be nice / cool if the training process is interactive, reproducible, recordable and replayable?

<comment><USER11> Not sure I totally agree that this achieves those goals, but I can't argue they would be ideal goals.

>interactive

AFAIK, as you type python code it will execute with the changes incorporated in the next loop execution. That's a heavily constraint "interactive" (forward propagating changes against an active execution). I mean, wouldn't a python shell with shell history be more interactive and hit all your goals? Sure the advantage of this is you can change code based on output feedback, but if you are too slow, you have to backtrack, and if you are too fast, you just wait anyways in both cases. And if you want to add code to earlier loop executions, you are kaput for earlier loop executions since those are set in stone against a different version of the code?

> reproducible

How can you get this, i.e. reproduce any loop changes outside of IDE/editor code undo/redo stack. It's hiding all the magic of what code outputted what with the "reloading" function.

> recordable, replayable

This moves the "history" to the IDE/editor code undo/redo stack. I think this is worse, cause, what happens when you close the IDE/editor without recording which specific console output was for which version of the code?

My main gripe is this sentence in the README:

> This lets you e.g. add logging, print statistics or save the model without > restarting the training and, therefore, without _losing the training > progress_.

If the italicised is the prime concern, and the purpose of this is to solve that, I'm just saying PyTorch already lets you save/persist training data, maybe the author didn't know about it + python shell combo?

</comment></comment></comment></comment><comment><USER13> Really nice tool! I often develop in a similar pattern (though not quite as functional) using IPython and it's %autoreload magic. This looks a lot cleaner.

</comment><comment><USER14> Could be very nice for live coding music/visuals etc.

</comment><comment><USER15> Ah, something Common Lisp has had for over 30 years.

</comment><comment><USER16> It'd be cool to be able to use this as a method decorator too!

<comment><AUTHOR> Brilliant idea. That would make it useful for Keras, too, using decorated callbacks during training

</comment></comment><comment><USER17> Anyone else getting this error? I tried on Debian 9 and MacOS 10.14.6 after installing via pip.

      import reloading
      Traceback (most recent call last):
        File "<input>", line 1, in <module>
          import reloading
        File "/home/lucas.mccoy/.local/lib/python2.7/site-packages/reloading/__init__.py", line 1, in <module>
        from .reloading import reloading
        File "/home/lucas.mccoy/.local/lib/python2.7/site-packages/reloading/reloading.py", line 87
        exc = exc.replace('File "<string>"', f'File "{fpath}"')
                                                             ^
      SyntaxError: invalid syntax

<comment><AUTHOR> It only works with Python 3. Thanks for reminding me that I should add a note to the Readme.

<comment><USER18> It does work in Python 2 with the following patch:

        diff --git a/reloading/reloading.py b/reloading/reloading.py
        index 1d28e2f..1a5f981 100644
        --- a/reloading/reloading.py
        +++ b/reloading/reloading.py
        @@ -84,9 +84,10 @@ def reloading(seq):
                     exec(body)
                 except Exception:
                     exc = traceback.format_exc()
        -            exc = exc.replace('File "<string>"', f'File "{fpath}"')
        +            exc = exc.replace('File "<string>"', 'File "{}"'.format(fpath))
                     sys.stderr.write(exc + '\n')
        -            input('Edit the file and press return to continue with the next iteration')
        +            print('Edit the file and press return to continue with the next iteration')
        +            sys.stdin.readline()

             # copy locals back into the caller's locals
             for k, v in locals().items():

<comment><AUTHOR> Brilliant, thank you. I'll patch that.

</comment></comment></comment></comment><comment><USER19> FYI there's also reload(module) which is a built-in function. One great use- case I've come across is in developing a network proxy for game packet interception, see:

[https://youtu.be/iApNzWZG-10?t=641](https://youtu.be/iApNzWZG-10?t=641)

</comment><comment><USER20> Django's development mode aka "runserver" behaves a lot like this (as does a ton of different Node/JavaScript systems, many of which are much more precise on what sub-components to actually re-load). It's a big win for development pacing.

Being able to loop a specific segment of code looks like a great tool for my toolbox when writing data processing code, particularly for spatial data. I will have an input dataset and be iterating on the algorithm(s) as I watch the output (often rendered in QGIS) update dynamically but requiring me to re-run the test script.

<comment><USER16> Agreed, but to clarify-- django's runserver is a simple restart process upon file change. Webservers don't have heavy startup costs, so that's fine.

Being able to modify code during a run, where it has a heavy startup cost, is a different beast. I also wonder if Django's runserver could incorporate something like `reloading`, for even speedier reloads?

</comment></comment><comment><USER21> This is awesome. A nice improvement would be to have the loop continue with the old code when there are errors (rather than pausing iteration).

<comment><USER22> How would that be possible without having to essentially keep track of two files? Nice idea though.

<comment><USER23> Basically, you just need a double buffer system:

\- Always run from the back buffer

\- Always scan the updated file into the front buffer

\- If the front buffer is fresh AND the front buffer contains no bugs, bufferswap

</comment></comment></comment><comment><USER24> Change Bourne shell code while it's running:

      $ vi ~/.functions   # fix
      $ . ~/.functions    # load latest

</comment><comment><USER25> Python is almost as good as Lisp now.</comment>


Hackernoon/Medium Fight Continues - <AUTHOR> I received this email: "Hello,
We are writing to you today because you may have received communication regarding your post(s) that are part of Hacker Noon, and we wanted to clear up some confusion that we've gotten from writers who received this email.
First, we want to clarify that your content is published and hosted on Medium.com. Hacker Noon is a publication that exists on the Medium platform.
You own the copyright to, and have complete control over, all the content you publish on Medium.com. This is regardless of it being part of any publication, including Hacker Noon. These are your rights as defined in our Terms of Service.
Any Medium user can create a publication on the Medium platform to organize a team of writers and their posts. And while Hacker Noon may appear to be an independent website, it is not. It is a container that exists on the Medium.com infrastructure, much like a Facebook page.
Publications on Medium are bound by the Medium Terms of Service, and they have no right to your content that you do not explicitly grant them. That includes exporting, copying, or reposting your content to any website that is not Medium.com.
If you do not want your content to be moved from Medium.com to the new Hackernoon.com, you should not consent to the email. Your post(s) will still be available on Medium.com.
Additionally, you can remove your post(s) from Hacker Noon, or any Medium publication, at any time. Simply navigate to the post, click the "..." menu in the lower right corner, and remove the post from the publication. Watch this video for more details.
Apologies for any confusion, and please let us if you have any additional questions or concerns that we can clear up for you.
Thanks for writing on Medium,
Medium User Services" <comment><USER2> What fight is this can you elaborate? I got the same email but have no idea hackernoon was even a thing, I thought it was like a publication to share articles, but it seems like it's a business of some kind?

<comment><USER3> [https://www.startengine.com/hackernoon](https://www.startengine.com/hackernoon)

Hackernoon crowdfunded one million dollars late last year to separate from Medium due to the latter's extensive revenue model changes in 2018. Presumably in the intervening days since funding, their 2.0 business has progressed far enough to requesting from authors the rights necessary. to republish elsewhere than Medium the content previously contributed by Medium authors. It follows that, having received a clarifying email from Medium about the steps necessary to either permit or deny this rights transfer, the OP here is both one of the referenced Medium contributors and previously received some sort of rights transfer communication from Medium, Hackernoon, or both. While the communication(s) prior to this one are not shared, the email from Medium implies that the transfer requires explicit consent, and thus the author simply need not comply to deny Hackernoon republication rights.

I wish OP or anyone would post a link to a blog post about this detailing the communications to date, but in lieu of that, perhaps the above will help.</comment></comment>