C Books and C++ Books You Don't Want    - <AUTHOR> http://www.cs.technion.ac.il/users/yechiel/CS/BadBooksC+C++.html <comment><USER3> I love books that go straight to the point. I appreciate terseness, and appreciate it orders of magnitude more when it comes with no loss in clarity. Its amazing what some authors can pull off with so few words.

You can guess K&R is one of my favorites.

I understand that C++ is a huge complicated language, Scott Meyers puts it very aptly by stating its a federation of languages, and this makes hard to write pithy pedagogic books. In spite of that, the ever too common 800+ page tomes have always worked against me.

Stroustrup's 3rd is probably a mighty fine book to learn from, its just not for me and its definitely no K&R.

I think my favorite is a little known book by Dirk Vermier [http://books.google.com/books/about/Multi_Paradigm_Programmi...](http://books.google.com/books/about/Multi_Paradigm_Programming_Using_C++.html?id=9xfGehPHFCgC) It should definitely not be one's first programming book, perhaps not even one's first C++ book. A shade shy of 300 pages, it did serve me well with its terseness, correctness and clarity. The only thing is that its too pricey for its size, its a bit dated now because it covers c++98.

I think C++ is best understood from one pithy book that shows you the just the language to get started, and then a series of Scott Meyers, Andrei Alexandrescu, Herb Sutter style books to get good at it.

<comment><USER4> "Accelerated C++" by Andrew Koenig and Barbara Moo is pretty good and somewhat along the lines of K&R.

<comment><USER5> there should be a new version for "accelerated c++" hopefully soon,

i have sent koenig an email asking about this, and he replied, and said he will start working on a new version with barbara moo as soon as she finishes working on the new version of C++ Primer

</comment></comment></comment><comment><USER6> AFAIK worst book on C Programming Language in existance is "Let Us C" By "Yashavant Kanetkar"

<http://www.ksetindia.com/books/let-us-c>

Ironically this book is quite popular with students in Indian Universities (I guess mainly due to ignorance)

Even the wikipedia page for the author admits this fact

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

<comment><USER7> That guy has written more than 40 books according to Wikipedia - quantity over quality, I suppose. I wonder how he justifies having 9 editions for "Let Us C". It's almost as if he is doing solely to be able to force students to buy the new version (as opposed to the used version in the university bookstore).

<comment><USER6> Correct. And the general misconception among students is that the newer editions contains contain updated stuff.

The gross thing is that the content is toatally based on Turbo C/C++ compiler for windows and is full of errors, with no attention paid to standards

<comment><USER8> The high-school C++ curriculum in India is taught on Turbo C++.

</comment></comment></comment></comment><comment><USER9> This web page is really quite awful. There's no sense of a uniform level of treatment -- there's a condemnation of assert() right next to page-by-page book errata. The comments are not incisive at all. There's no table of contents. And the rotating gifs.

<comment><USER10> "There's no table of contents." Really? Did you look at the top?

<comment><USER9> You are right. Of course, the page is still a travesty of form and content.

</comment></comment></comment><comment><USER11> I remember using the SAMs books (which make the list). I learned more from correcting the errors, of which there were many, than I did from the books themselves. Simply horrid books that should have had much more time spent on editing.

<comment><USER12> SAMS, Cue, Cybex, Wrox: the doorstop publishers!

<comment><USER13> Wrox actually has some nice books, especially in the C#, Java department that I know of.

</comment></comment></comment><comment><USER14> He lost me at this -

> _assert is used for algorithmic error detecting instead of for debugging > only. This is a serious error, common to many, otherwise good, books. But > here it is very widely used._

One man's error is another man's programming style. Using asserts as comment- like statements to declare invariants is a very useful a well-established practice that leads to a more concise code. Perhaps it's a nuance not fit for the novices, but to call a book _bad_ because if that is unreasonable at best.

<comment><USER10> I think you missed the point: I agree that using assert() is good for declaring invariants - but it is used only at debugging (as the quoted text says). If you don't turn assert() off at production (NDEBUG) you are in a deeper problem. The main thing should be that assert() does not replace if() or other conditionals (say for testing successful scanf()), and moreover, assert() should be used in a textbook when teaching debugging - not when teaching the basics of programming (likewise, only a very advanced student- driver is taught how to restart a stalled engine while in 60mph motion on the freeway - not a beginner one).

<comment><USER14> > _If you don't turn assert() off at production (NDEBUG) you are in a deeper > problem_

In a deeper problem compared to when I don't turn it off? Are you sure about that? The only reason asserts are turned off in the production code is the performance considerations, nothing else.

<comment><USER10> Sorry to hear that. The problem with assert() at production code is that it crashes the program. IMNSHO, it's a medicine worse than the disease (is this why we get a "blue screen" on a popular OS?). Most, if not all tools should be lenient about errors - both user errors and system/environment errors - <USER2> just safety systems. There are very few cases that a tool should say "there is a problem, please contact the vendor" - and even then it is unreasonable to do it while crashing (maybe the user is willing to give up the last task but wants to start over with a different task). If you are not convinced, I am not able to explain it in any simpler and clearer way. Thanks for your time.

<comment><USER15> "Sorry to hear that"? Seriously?

You have fundamental misunderstanding of what asserts() are for. As GP said, they check for invariants not errors. Here -

      +</comment></comment></comment></comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--+
      |                                |
      |   ASSERTS ENFORCE INVARIANTS   |
      |                                |
      +</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--+

They aren't meant for checking if socket() returned -1 or user entered an empty string. These are not invariants. An invariant is a condition that must always hold true or the code that follows will go off rails. An ordered list to be ordered, a pointer passed to a function to be pointing at a valid and consistent representation of a respective data type... this sort of thing. A foo(void * ptr) not being called with NULL may or may not be an invariant depending on what foo's documentation states. For internal code it probably will be, for a library version is probably won't. In any case, these invariants is what you assert().

If your code runs into a broken invariant and you let it continue forward, you simply push the problem deeper and let it metastasize. Compare abort'ing program to letting it go on, fubar'ing user data and then over-writing a disk file with the resulting garbage. A medicine worse than a disease, eh?

<comment><USER16> Well, I find this discussion very interesting - esp. because it reveals so many misconceptions about programming in a tiny nutshell. Let me start by emphasizing that you were reading into the previous comment something the author didn't write. "If your code runs into a broken invariant and you let it continue forward ..." - I don't see anything even remotely associated with it: The claim was just that "abort()" in most cases is too strong a response. Indeed "ASSERTS ENFORCE INVARIANTS" - but during debugging. And invariants may be enforced using different mechanisms, assert(), as a very general tool/technique is simply and understandably very crude. My view of assert() is two fold: 1\. It's a shotgun. In real life not every "crime" deserves capital punishment (and not all broken invariants are the same). 2\. All asserts are connected: They can only be turned on/off together (yes, you may use conditional compilation to overcome this problem, but in this case conditional compilation can be used for just a better system - where there are various severity levels for asserts).

All you have to realize is that not all problems need the same cure. Using your example, if it is found that a list broke it's invariant, isn't it enough to stop using this list (isolating it, not freeing it) and then gracefully terminate the program? There is more to elaborate here, but most readers can draw the correct conclusions. Maybe this discussions exposes how much more we need to learn about software quality - where my page on bad books (the ones I have encountered) is just a very narrow opening to the real problems.

</comment></comment><comment><USER17> Best c++ book is "The c++ programming language" by Bjarne.

I own the 3rd special edition: [http://www.bookdepository.co.uk/C-Programming- Language-Speci...](http://www.bookdepository.co.uk/C-Programming-Language- Special-Edition-Bjarne-Stroustrup/9780201700732)

and have pre-ordered the 4th edition which includes c++11 info: [http://www.bookdepository.co.uk/C-Programming-Language- Bjarn...](http://www.bookdepository.co.uk/C-Programming-Language-Bjarne- Stroustrup/9780321563842)

I've only probably read like 5 c++ books, but this one kills all the others for explaining how things work, teaching good programming style, and giving you a great all round understanding.

</comment><comment><USER18> Interestingly, "C++ For Dummies" is absent. I wonder if he just missed it, or really thinks it's not that bad. I learned C++ from it, and I think it did a decent job.

</comment><comment><USER19> Ha! I still have a Schildt C/C++ book on my shelf. I used it back when I was learning C with Mark Williams C on my Atari ST. Probably about time to retire it to the landfill.

</comment><comment><USER20> Thank you for the article. Many of us share the hatred for Microsoft Corporation but perhaps we should let go of the M$ shorthand out of context?

<comment><USER21> The article was written in 1998 when such slang was common, as was the design elements used (like animated gifs).

I don't think being disdainful of Microsoft is interesting either but it makes more sense in context.

</comment></comment><comment><USER22> I learned a ton from SAMS "teach yoursefl C++ in 21 days". Yeah I didn't think I would either, but it was given to me at work, and I went through about 75% of it and it was pretty damn good.

</comment><comment><USER23> I've read two of the books on this list and both, while having their faults, were very useful and helped jumpstart my programming experience in my teenage years. The things this person is complaining about are limited to a tiny minority of pages regarding unspecific topics that changed significantly over time and were not necessarily incorrect when written.

Overall, the website comes across as bitchy and pretentious. especially considering how their own HTML comes across as flagrantly hideous.

</comment><comment><USER24> Rants about void main seem archaic, unjustified, and pretentious.

<comment><USER25> How so? The argument as I understand it is that all C89 standard-compliant compilers work with "int main" (and work correctly), regardless of whether or not the target OS has exit statuses. Not all compilers work with "void main", and those that do will yield executables that always produce an exit status of zero. While there are times you might write C code that doesn't need to be portable (in which case "int main" and "void main" are effectively the same if your system doesn't use exit statuses), there is no good reason for a C textbook to teach the non-standard approach that only works in certain non- portable cases. If a textbook does so, that's likely a sign that the authors made other poor decisions.

<comment><USER26> No, compilers that accept "void main" do not necessarily produce executables that produce an exit status of 0. I just tried it with gcc on Ubuntu, and the exit status was 1.

And the validity of "void main" doesn't depend on whether the system uses exit statuses. An implementation may accept forms of main other than the ones defined by the language, including "void main()" -- but if it doesn't, the behavior of such a program is undefined.

The rules are different for freestanding implementations, which are generally for embedded systems; for such systems, the program entry point is entirely implementation-defined, and might not even be called "main". But for hosted implementations, there's no advantage at all in using "void main" vs. the correct "int main(void)".

<comment><USER25> > No, compilers that accept "void main" do not necessarily produce executables > that produce an exit status of 0. I just tried it with gcc on Ubuntu, and > the exit status was 1.

Interesting. I wonder why gcc does it that way.

> And the validity of "void main" doesn't depend on whether the system uses > exit statuses. An implementation may accept forms of main other than the > ones defined by the language, including "void main()" -- but if it doesn't, > the behavior of such a program is undefined.

I don't think we're disagreeing. I'm saying that "void main" is never preferable to "int main", and the only time it's equal to "int main" is if you're writing code specific to an implementation for which "void main" is not undefined and which lacks exit statuses, making any return statement in "int main" equivalent to returning from "void main".

> But for hosted implementations, there's no advantage at all in using "void > main" vs. the correct "int main(void)".

Agreed. That's why it makes no sense for textbooks to teach void main.

</comment></comment></comment></comment><comment><USER27> This list is unfortunately missing the O'Reilly-published "Practical C++ Programming" by Steve Oualline, which is a truly terrible text, and the only O'Reilly book I actively tell people to burn. It's filled with errors, code samples riddled with syntax errors, and non-idiomatic style.

</comment><comment><USER28> Didn't everybody in the world already know K&R is the only C book worth touching?

<comment><USER16> Not really. You need at least "The C Programming FAQ", by Steve Summit (it has a very useful Internet (partial) version) and one or two more. Those who understand K&R2 and C-FAQs know better than 90% of C programmers.

</comment></comment><comment><USER29> Without looking at the list I K&R isn't on it. It's really all you need to get started, you can find code snippets and experiment to get past that.

Has anyone noticed how many books on C are 4 times the size yet leave you with less valuable information than K&R?</comment>


Redecentralize: Quietly, some geeks are decentralizing the net again - <AUTHOR> http://redecentralize.org/ <comment><USER3> I'm one of the founders of Redecentralize.org.

My own main motivation wasn't just privacy, but also resilience (against, say, hurricanes) and fun (the web doesn't have the same joy it once did).

So my favourite interview so far is the mobile mesh network one [http://redecentralize.org/interviews/2013/08/14/04-paul- serv...](http://redecentralize.org/interviews/2013/08/14/04-paul-serval.html)

I also think it is important that new algorithms like DHT (Kademlia), BitCoin and GFShare get known and used to their full extent.

Please get in touch if you've a project that would like interviewing!

<comment><USER4> Please see and respond to the comments above about the ineffectiveness of using only videos to communicate your messages. Whatever they are.

<comment><USER5> Yeah, its very annoying, I want to get into this and see what its all about, but Im not gonna turn on a video just for that.

<comment><USER6> tldr;

[https://github.com/rossjones/alternative- internet](https://github.com/rossjones/alternative-internet)

</comment></comment></comment></comment><comment><USER7> For those of us (probably most of us) that would rather read quickly. Links from talks,

[http://www.servalproject.org/](http://www.servalproject.org/)

[https://arkos.io/](https://arkos.io/)

[http://mediagoblin.org/](http://mediagoblin.org/)

[http://cryptosphere.org/](http://cryptosphere.org/)

[https://www.zerotier.com/](https://www.zerotier.com/)

[http://drogul.us/](http://drogul.us/)

</comment><comment><USER8> While this is a subject I would be interested in, I took one look at the front page, saw that it appeared to be video-only, and gave up.

This is precisely the reaction that news sites get from me when I click on a link to a story and find video-only content.

Am I the only one, or would it be a really good idea to provide transcripts of the interviews?

<comment><USER9> > video-only

Videos are a lower-bandwidth medium than text for explaining things. I can read a lot faster than I can listen to a person talk.

Seriously, _this_ website doesn't realize that?

<comment><USER10> #1. A commenter is not a website.

#2. There are a lot of considerations apart from bandwidth when it comes to disseminating information. For eg., having to use speakers or even reach for a set of headphones is reason enough for me to skip to the text.

<comment><USER11> I think csense meant bandwidth in the sense of rate at which the audience takes in the information, not network bandwidth. You're in agreement with one another.

<comment><USER9> Yes, by "lower-bandwidth" I meant "video usually [1] takes more of my time to transfer ideas from the author's mind into mine than equivalent text." I wasn't referring to bytes-on-the-wire [2].

[1] Sometimes video is more efficient than text. E.g. with respect to video games, gameplay videos can convey a lot of information in a short time. Basically if you want to teach someone about some system that changes over time, showing how it changes in video is often a lot clearer and faster than trying to describe it with words or static diagrams.

But a video that just involves listening to a person talk -- or, worse yet, read slides from a projector -- usually just ends up wasting my time compared to equivalent information presented as text.

[2] It's obvious that video consumes way more bytes-on-the-wire than text.

<comment><USER10> I see. Yes, I misread your comment. Apologies. We are, as another commenter eloquently put it, 'in violent agreement'.

</comment></comment></comment></comment></comment></comment><comment><USER12> This is the way forward.

If most all internet services can be implemented with open source, and processing and data storage is all virtual, then the logical place we're headed is either 1) big, centralized services that treat the details of our lives as fodder to sell products, or 2) renting cycles and storage out and decentralizing everything.

For anybody concerned with privacy and not looking forward to becoming part of some hivemind, option 2 seems most logical. I don't think cost would be prohibitive, and looks like this site is interviewing guys working in the problem area on new product development, which means that there is a future there. Anybody's bet if it actually happens, though.

</comment><comment><USER13> The idea behind the site is to make decentralised, privacy preserving, resilient (and fun!) tech more accessible to people who don't already know about this stuff. Hence videos and user focused questions. We want to expand the appeal and plan to do podcasts and meetups too.

We hope to engage digitally literate people and show them that there are concrete existing software and app options they can use now that aren't selling your data, are interesting, easy to use and open.

However, we also need to be pragmatic - aiming to use decentralized open software ourselves when it works for our use case, but not if it stops us doing this quickly.

Please do sign up to the mail list or email us because we have ambitious plans that could use help and would love feedback (esp on stuff like if videos are really much less useful to people etc) :)

Cheers, Ira

</comment><comment><USER9> It's quite ironic that a website about decentralization is using Github [1].

Gitlab [2] would is an alternative with similar functionality that's more consistent with the ideology they're trying to promote.

[1] [https://github.com/frabcus/redecentralize- website](https://github.com/frabcus/redecentralize-website)

[2] [http://gitlab.org/](http://gitlab.org/)

<comment><USER14> Is it that ironic? Git is inherently decentralised, github is just a publication method. Everybody's repo is still good if github gets nuked and can be used as the new public. It's nothing like, say, Facebook where They Have All The Data And You Don't. Self-hosting with Gitlab is no different, except to have the public repo sit on a different server.

<comment><USER15> Its not just a publication method. If you loose your github repo for some reason you loose

      * the issues
      * the wiki
      * the community because your local repo is fine,
        but nobody knows any other remote than github.

<comment><USER16> Good points. However:

Issues - I'm sure these can get recreated, even the discussions. In many cases, people will have those threads in their email.

Wiki - In Github's case, this is also a git repo.

Community - GitHub is rarely the _only_ mechanism used to manage a community. There's likely a domain name and mailing list of some form.

Losing all of the above is certainly painful but I'm trying to point out that it's not _irrecoverable_. A better question might be _how painful_ would it be to lose that (and the likelihood of losing it) as compared to other options.

<comment><USER17> You know, sourceforge was once the place to be for hosting your SVN projects, forums, etc., and nobody batted an eye when they ceased to be the community centroid. Similarly with github, if it shut down or something new and shinier came along the projects would move there before you could say "merge conflict."

<comment><USER18> And now I dread seeing a sourceforge link on a project site. Absolutely, chest-clenchingly dread.

</comment></comment></comment></comment></comment></comment><comment><USER19> decentralizing is the only way to scale everything - from privacy to security, from resilience to performance.

concretely tho, it generally means hosting stuff on your own machine, on a connection you pay for. That's okay. But it's hard for non-specialists.

I think the way forward is actually to create standardized, easy ways to decentralize. The idea is shared by many and there's several attempts, although none seems to have matured enough yet.

Basically, those boxes and all allow you to store your data on your end. The part that's missing is that you need the devices you use _today_ to be compatible. That means ios, android, etc.. have to be able to sync your pictures, movies, contacts, emails, what not there. That's the hard part.

<comment><USER20> > concretely tho, it generally means hosting stuff on your own machine, on a > connection you pay for. That's okay. But it's hard for non-specialists.

To this end, I'm optimistic about lightweight containers, especially a la docker.io[1]. Releasing an application as a container can help solve dependency hell. Nesting containers for a complex application (i.e. with multiple disjoint services) looks promising to me, as well.

[1] Not that LXC and/or docker are ready out-of-the-box for non-specialists (yet) - but that seems achievable. A friendly wrapper around vagrant might do the job.

<comment><USER21> It solves simple dependency problems. It does nothing for your interdependent "decentralized" services which are talking to each other. That's where the real hard work is.

<comment><USER20> You're right. There is hard work in managing a system of services where any service endpoint can change at any time. It appears to me protocols for negotiating upgrades between services are important and there's no widely deployed solution for that yet.

</comment></comment></comment></comment><comment> Su-Shee Quietly, some geeks never stopped having their own services and didn't even get centralized in the first place... ;)

That's not really "the way forward", that's actually quite back to the roots. :)

</comment><comment><USER22> Celluloid, Cryptosphere, it seems like Tony Arcieri has found a way to bypass the 24-hour/day limit. Awesome.

</comment><comment><USER23> What are the best channels to follow discussions on decentralized social networks? I see too many alternatives coming up and it is getting too time- consuming to follow all of them. Friendica (BTW this one is missing on the list in wiki), Buddycloud, Diaspora, to name just a few - where do they coordinate their efforts and how can an interested developer follow discussions of these projects?

Also it would be interesting to exchange experiences made with these new apps, so that not every developer has to check every network, what is not possible in one life - the already existing listings of alternatives are of great value, but a more systematic approach in collective knowledge gathering and exchange would be even better.

Hey, that´s what the internet was built for, wasn´t it? Still does no software for this exist? :)

<comment><USER24> Honestly there isn't a lot of coordination, but many of the people most interested in decentralization participate in one or more of these networks. As one of the architects of Tent ([https://tent.io](https://tent.io)) I spend a lot of time talking with others on Tent about similar projects.

<comment><USER23> I can not see what I am looking for there, sorry. The Tent protocol certainly is interesting, but I was asking for an open place where it is possible to share / exchange / collect and extract knowledge and experiences about decentralized social network software.

I was hoping for an open, easily available information source that can be followed.

<comment> w0rd-driven I would hope this project could be that hub. Propose an interop data exchange format where information can be freely shared among all "exchanges". I'm definitely not seeing this as an easy problem to solve but it would make all of this more accessible to the grandmas of the world.

The major problem I see is geeks always think their idea is perfect and have a hard time justifying the technical cost of implementation when it doesn't directly affect them ("You mean I have to make feature x to help my competitor that's actually doing way better than I am at this? Psh!") Openness shouldn't only be about the ability to export and keep that information but to also interop and play nice with others.

I think it sucks that Disapora didn't have the traction it should have and I would hope that a data exchange format among all social networks would be beneficial to all. Unite _against_ the Facebooks of the world. I believe united we can do this much better but its clear we haven't found the perfect disruption yet. I'm glad we haven't stopped trying because it's out there. Somewhere.

</comment></comment></comment></comment><comment><USER23> "That's why we don't think the network will be taken over by child porn. You have to have someone accept what's on your node in order for them to pass your traffic around," he says. [1]

So instead of a guaranteed right to access information freely we make every mesh node a potential censor.

I do not want to depend on the likes or dislikes of mesh participants to be able to access or distribute information.

Here seems something fundamentally broken by design. I hope, I am misunderstanding the concept.

[1] [http://www.newscientist.com/article/mg21929294.500-meshnet-a...](http://www.newscientist.com/article/mg21929294.500-meshnet- activists-rebuilding-the-internet-from-scratch.html)

</comment><comment><USER25> I think this idea would be even better if instead of recommending services (since people will be divided anyway), they would recommend protocols/standards, for each case. OFC cases like bitcoin, that is really stablished, should just be named as the only suggestion.

"Oh you're on Diaspora? Too bad, I'm on Kune and they don't talk with each other." You get the idea.

</comment><comment><USER26> One of the first things we need is p2p/webrtc/blah video conferencing so all those cool geeks can get off Google Video and Skype.

<comment><USER27> From the list given, looks like that would be Tox. It's got IPv6 and everything.

[https://github.com/irungentoo/ProjectTox- Core](https://github.com/irungentoo/ProjectTox-Core)

<comment><USER28> Unfortunately [http://tox.im](http://tox.im) says "Tox isn't ready yet, downloads will be available soon!"

</comment></comment></comment><comment><USER29> Great interview (the one I listened to). This stuff interests me, but how to choose a project to get behind? For example Diaspora and Gnu Social might be two scattered groups both trying to build the same thing separately, or there might be important design/philosophy differences that neither of them felt the need to explicitly state. FreedomBox sounds perfect for me but the last news/release was more than a year ago - have most of the developers moved on? What other projects are similar to it?

A redecentralizing hub is a great idea, can the list be more cross- referencable like a wiki - allowing project descriptions to be linked to similar projects, with information about what makes the "similar project" different. Appraisals of how projects are going etc.

Judging from the existing list, cross-referencing would have to be introduced by the redecentalize guys before we could start adding the info.

* gnusocial is another project that can be added to the list.

</comment><comment><USER30> Wireless community networks are where there is much research going on for fully decentralized systems. Check out Guifi.net, the world's largest wireless community network with over 20,000 nodes. All the protocols are decentralized, from DNS to routing to HTTP Proxies for internet access.

</comment><comment><USER31> Does anyone else dislike the sentence 'Quietly, some geeks are decentralizing the net again'?

<comment><USER32> Also, it's a third party site interviewing geeks about what they're doing, so 'Quietly' might not be the correct word.

That aside, the site is a good idea and covering projects of this nature is important.

<comment><USER3> Yep - the idea was that it isn't generally known about. There's lots of interesting stuff going on that we wanted to highlight - hence the site!

</comment></comment></comment><comment><USER33> We still have huge user experience issues with decentralized systems which make it more awkward for the average person. It's sad, because I (like most programmers) want a distributed system, but it's rather hard to get it right.

<comment><USER34> BitTorrent Sync seems to have done a really good job of making a decentralized system easy to use. Their pre-shared-key method of connecting computers is really simple for people to understand, and supports a wide variety of potential use cases.

Incidentally, I'm working on an open-source competitor to btsync called clearskies ([https://github.com/jewel/clearskies](https://github.com/jewel/clearskies)).

</comment></comment><comment><USER35> In the Cryptosphere talk the author says that you can use a cryptosphere address to reference the latest version of a git repository but I thought cryptosphere was content addressable. How does this work?

</comment><comment><USER36> I wrote this about 2.5 years ago:

[http://myownstream.com/blog#2011-05-21](http://myownstream.com/blog#2011-05-21)

<comment><USER19> keep writing, this stuff its picking up a lot better these days

</comment></comment><comment><USER37> Couldn't find writups about the mesh networking in Serval. How scalable is this? Last time I did some digging around mesh networks, they didn't scale too much. Every message has to be broadcasted to every node (and every client had to maintain a list of all nodes and their routes), or something along those lines.

</comment><comment><USER38> If you're looking for a decentralized & encrypted communication platform (messaging, chat, file tranfer, etc.) to get behind, head over to [http://retroshare.sourceforge.net/](http://retroshare.sourceforge.net/) and consider developing plugins for any missing features.

</comment><comment><USER39> Retroshare is missing, it's actually quite good project and it's usable, it's not just talk. [http://retroshare.sourceforge.net/](http://retroshare.sourceforge.net/)

<comment><USER28> It's on the list - [https://github.com/rossjones/alternative- internet#retroshare](https://github.com/rossjones/alternative- internet#retroshare)

</comment></comment><comment><USER40> Obligatory self promotion link: [http://timepedia.blogspot.com/2008/05/decentralizing- web.htm...](http://timepedia.blogspot.com/2008/05/decentralizing-web.html)

</comment><comment><USER41> There's also Steven Frank's [http://decentralizer.com/](http://decentralizer.com/)

</comment><comment><USER25> so to decentralize we would need to host everything ourselves? PC turned on 24 hours and awful gaming latency since you'll be using lots of upload traffic. please tell me I'm wrong, this would never work for lots of reasons.

<comment><USER42> Do you need to distribute things when you're gaming? For most interactions, I imagine that when the user says "save", replication of the user's data can start at that point, and for most things, ought to finish within a minute or two, freeing up the network/CPU, at least if you're doing it across a private cloud. I imagine that for most of my data, 3 copies in disparate locations would more than suffice. How long does that take?

Having a machine on 24/7 is perhaps a bit wasteful, but what is the electrical use of a mostly idling machine? If you really cared, you could perhaps get something with less power, like a raspberry pi.

<comment><USER25> Oh I got the wrong idea, I wasn't able to check the video and the "about" is really bad. But now that I'm home I opened the Github page. So it's just not giving control over the data for a central corporation, but we're still using datacenters.

I thought it was the same folks that wanted us to self-host diaspora (as in OUR home pc/network). If this works, the *aaS market will explode even more.

</comment></comment></comment><comment><USER23> There seem to be a lot of discussions going on inside each of these projects. There should be some central hub for research and exchange ;)

Disconnected knowledge-islands with people not knowing about already existing solutions to problems they are trying to solve seems to be one downside of scattered communities.

Decentralization is needed for private communication, but there are downsides - creating x parallel nets will not help in finding each others - <USER2> knowledge evolution of the internet is driven by the desire of the human brain to connect all available information.

Imagine the NSA decided to create an open and freely available API to the centralized information they have collected - good-minded people certainly will extract useful knowledge from that data, possibly world-changing new ways of thinking about everything could be the results.

The human brain wants this central intelligence (the real one, not the agency) to solve the evolutionary problems we are confronted with today - it must be seen as an ironical evidence of this need that the first biggest data collections that might be useful for all humans on this planet are collected exclusively by paranoid psychopaths to have better tools for control and oppression.

But even if misused, it does happen - the human brain wants to connect. It will not be happy with decentralized knowledge - it is the reason, why the internet exists and it will not want to go back.

This does not mean that decentralized networks are a bad thing in itself (as I said before, needed for private talk urgently!), but it means that we need some information harvesting entity that makes it easy to connect.

It is not only marketing what makes google and facebook so successful - it is the biological meta-programming of our brains that make us want to use these possibilities to connect to the global information pool.

The global brain is the destination - of course it should be untouchable by insane sadist that want to control our life. This evolutionary force will lead to social changes - it does already.

Re-Decentralizing the internet, from this point of view, only postpones the real challenge: build technical and social systems, that can not be misused or at least make it easier to detect and eliminate misuse - we have already concepts for this, we need to apply. Real-life IDS will warn you if you consume fake information or are following the wrong leaders (or if you are following at all). Real-life social SIEM will prevent a group of people misusing the system just for their own profits. Most probably "profit" will be an ancient word that will be remembered only with shame, like being confronted with the primitive life of our ancestors, that were living in caves.

Decentralization will not rescue us from our duty to expand participation.</comment>


Apple reports Q3 results - <AUTHOR> https://www.apple.com/newsroom/2020/07/apple-reports-third-quarter-results/ <comment><USER3> Apple, Alphabet, Amazon, and Facebook, which combined are worth almost $5 trillion dollars[1] all releasing earnings on the same day seems crazy. From what I could find, that is 14% (5T/35T) of the total stock market posting earnings on the same day [2].

I'm curious if anyone has thoughts on what effect that has on the overall market in terms of volatility? (I really have no good idea as to how any of this works) Could we see other stocks dip/rise as money is reallocated?

[1] [https://www.cnbc.com/2020/07/29/big-tech-including-apple- and...](https://www.cnbc.com/2020/07/29/big-tech-including-apple-and-facebook- report-earnings-late-thursday-which-could-mean-a-crazy-market-day-on- friday.html) [2] [https://siblisresearch.com/data/us-stock-market- value/](https://siblisresearch.com/data/us-stock-market-value/)

<comment><USER4> There is only so many trillions to be invested in stocks (because, where else?), and they have already been invested. Stock markets have for so long had a totally irrational relationship with day-to-day news, that they probably won't move the needle much.

<comment><USER5> First and foremost, the stock market is not the economy. Second, stocks are primarily traded on their expected future value, not current profits, hence why companies like Tesla have a price to earnings ratio that is absurd.

<comment><USER6> Tesla's stock price makes zero sense in any plausible scenario. I understand the narrative, but unless Tesla becomes the only car company on the planet, it can't be worth 10x Ford

<comment><USER7> Robin Hooders + solar energy + funds that buy Tesla after 4 x profit profitable quarters + China + ...

Still doesn't explain the crazy valuation

</comment></comment></comment></comment></comment><comment><USER8> Wow, iPad revenue up 31% YoY after being down ~10% in the last few quarters. Similar numbers to a Q1 (holiday season). I guess it makes sense that the tablet form factor is popular when so many people are indoors.

Also, services revenue grew YoY but it's the first time it didn't grow QoQ in a long time, so it seems to have stagnated. Services include a lot of recurring revenue so they should be consistently growing QoQ.

Wearables growth also slowed, this may be the other side of the coin when people are indoors and don't want to buy a watch for fitness tracking.

<comment><USER9> >Wow, iPad revenue up 31% YoY after being down ~10% in the last few quarters. Similar numbers to a Q1 (holiday season). I guess it makes sense that the tablet form factor is popular when so many people are indoors.

I wonder how much this has to do with the release of iPadOS 13, which has made the iPad a significantly more capable "computer" than previous versions of the operating system. For the majority of users (you don't fall into this category, fellow Hacker News reader), the capabilities of iPadOS are quickly approaching that of macOS.

<comment><USER10> iPadOS 13, the new keyboard with trackpad and a cloud VPS mean even for typical HNers the capabilities of iPadOS are quickly approaching that of macOS. For me, it's totally replaced my laptop. I still need a desktop because a fair number of very specific things are a PITA on the iPad but in general it offers a much nicer UX than my previous ThinkPad.

<comment><USER11> I dunno man. I spend my life in the command line. I don't think anything could replace a Linux laptop right now for sheer flexibility and power.

<comment><USER12> With Blink you've got an amazing terminal that supports Mosh. Rarely use my MacBook anymore.

</comment></comment></comment></comment></comment><comment><USER13> For people who like charts.

[https://sixcolors.com/post/2020/07/apple-q3-2020-results- eve...](https://sixcolors.com/post/2020/07/apple-q3-2020-results-everything- up/)

</comment><comment><USER14> >The Board of Directors has also approved a four-for-one stock split to make the stock more accessible to a broader base of investors. Each Apple shareholder of record at the close of business on August 24, 2020 will receive three additional shares for every share held on the record date, and trading will begin on a split-adjusted basis on August 31, 2020.

<comment><USER15> So interesting that Apple does this around $400... meanwhile Amazon's over $3,000 and couldn't care less.

It's very curious to me how and why different companies decide whether this is important or not.

<comment><USER16> Berkshire Hathaway is at almost $300k per stock.

<comment><USER17> Buffett refuses to split BRKA so yes it's that much, but BRKB has split before and so is ~$200/share.

<comment><USER18> Also consider the difference in voting rights. Voting rights at berkshire require one to literally be rich. Funny that SNAP got shunned by S&P and literally was the genesis for a new rule [1] for excluding new stocks with split share classes yet BRK, GOOG, FB, CMCS, NWS, etc. can still exist in the index. Heck, companies like F & BF have separate voting shares to give families voting rights.

[1] [https://www.cnbc.com/2017/08/01/snapchat-excluded-from- sp-50...](https://www.cnbc.com/2017/08/01/snapchat-excluded-from-sp-500-what- does-it-mean.html)

<comment><USER17> My understanding from that article is that SNAP's public shares are entirely non-voting whereas all the other companies' shares have (diluted) voting rights so I don't think it's quite the same even though in practice it pretty much is.

<comment><USER18> Thank you for pointing this out, I thought BRK.B had no voting rights. I looked it up and learned that BRK.A shares have 6.66 the voting power of the equivalent dollar amount of BRK.B shares. Specifically, each BRK.A share is 1,500x the economic value of BRK.B but 10,000x the voting power. [1]

It turns out that there are indeed share classes of these companies with no voting rights (GOOG, class C) but I haven't found an example of a company that doesn't have some voting shares in non-insider hands.

It's still shitty that the S&P indices barred SNAP while turning a blind eye to the existing inequities. I'm perfectly okay with them barring new split share listings but at least begin to apply it to others that benefit from the lack of corporate governance.

[1] [https://berkshirehathaway.com/compab.pdf#:~:text=Berkshire%2...](https://berkshirehathaway.com/compab.pdf#:~:text=Berkshire%20Hathaway%20Inc.%20has%20two%20classes%20of%20common,Class%20A%20share%20%28rather%20than%201%2F1%2C500thof%20the%20vote%29).

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> Given the high rates of unemployment in the US and around the world (with possibly worse to come) this kind of consumer spending on luxury goods is pretty remarkable. Wonder how sustainable it is.

<comment><USER20> Unemployed Americans have (temporarily) discovered the world of fare living- wage unemployment that expires tomorrow.

If you don't live in NY or CA, those extra $600 a week can go very far, and have probably helped stimulate the economy greatly

<comment><USER21> What planet are we living on?

600 a week is 2400 a month, which way over any entry level salary in Europe.

How inflated are the salaries in US? Or are people used to some really abnormal level of living?

<comment><USER22> Rent for a low-end 1BR in Silicon Valley is about $2000/month. Low-end 2BR = ~$2600/month, high-end 1BR = ~$4500/month. Houses are ~$10K/month and up.

Entry-level tech compensation is ~$180K/year, mid-career = ~$600K/year. If you're not in tech you're screwed here - formerly middle-class professions like teachers/police/firemen live 4 to a 2BR apartment, or they buy houses an hour or more away. Even mid-career finance professionals get screwed - <USER2> for CEO of a local (not nationwide) bank is in the ~$150-200K range, and barely competes with a new grad at Google or Facebook.

<comment><USER23> > Houses are ~$10K/month and up.

That's way high. A million-dollar house on a 30-year fixed-rate mortgage, assuming a 20% down payment, is ~4800/month including property tax. With a 10% down payment it would be about $5800/month.

To get to a $10k/month housing bill you need to buy a place that costs close to $2 million. The median sales price in Santa Clara county is closer to $1.3 or $1.4 million. Most people are paying a lot less than $10k/month for their house.

<comment><USER22> The median buyer in Santa Clara County buys a condo - that's what's going for $1.3-1.4M.

Low-end SFHs - we're talking a 3/2 built in the 1950s - go for about $1.8-$1.9M in Mountain View, $1.6-1.7M in Sunnyvale. A SFH like what you'd get in most of the rest of the U.S. - 4/2.5 or 5/3 on 1/4 acre lot, built somewhere between the 70s and 00s - will run about $2.4-2.8M.

<comment><USER23> No, the median SFH sales price in Santa Clara county is ~1.4 million. I just looked it up. [https://scc.rereport.com/market_reports](https://scc.rereport.com/market_reports)

Mountain View is one of the most expensive cities in the county, second to Palo Alto and maybe Los Altos. Most of the area is cheaper.

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> Anxiety induced shopping is a real thing. Leisure travel is another huge wallet share that's been nonexistent for several months now.

<comment><USER25> Anecdotally that is totally the case for me - I've been spending money on lots of tech and random fun items. Despite my purchases though my spending is overall down because I'm not eating out, going on trips/vacations.

</comment></comment><comment><USER26> Really unexpected that YOY revenue is up for Mac 22% and iPad 31%. Also unexpected that service revenue growth seems to have slowed.

</comment><comment><USER27> iPhone sales moved up 2% from last year to $26.4 billion in the June-quarter. Apple earnings infographic: [https://news.alphastreet.com/apple-inc-nasdaq- aapl-earnings-...](https://news.alphastreet.com/apple-inc-nasdaq-aapl- earnings-a-snapshot-of-q3-2020-results/)

</comment><comment><USER28> When did Apple started distributing dividends? I remember them being known for not doing so.

<comment><USER29> I believe around 2013 Apple altered its buyback and dividend practices, as large shareholder Carl Icahn seemed at the time to be trying to manipulate the company and shareholders to his own advantage.

Several articles discussed such around the time. Here are a few.

[https://www.latimes.com/business/technology/la-fi-tn-carl- ic...](https://www.latimes.com/business/technology/la-fi-tn-carl-icahn-apple- stake--20140122-story.html)

[https://www.marketwatch.com/story/carl-icahns-2-billion- appl...](https://www.marketwatch.com/story/carl-icahns-2-billion-apple-stake- was-a-prime-example-of-investment-inequality-2016-06-07)

[https://www.forbes.com/sites/chuckjones/2017/11/10/carl- icah...](https://www.forbes.com/sites/chuckjones/2017/11/10/carl-icahn-sold- apple-too-soon-it-cost-him-3-7b/#366f46d32cea)

</comment></comment><comment><USER30> :( and here i am still waiting for Apple product to reduce its price, coz i thought in pandemic, people will keep money for groceries, medical bill and not electronic devices.

<comment><USER31> Their phones start at $399. Do you consider it too high?

</comment></comment><comment><USER16> Would you agree that the Tl;dr would simply be "unstoppable"?

</comment><comment><USER32> It's Q2 right? Or do they not use the calendar year for accounting?

<comment><USER33> They don't use the calendar numbering, but I don't really know why

<comment><USER34> When you start a company, you choose a "tax year" by filing a tax return. From then on out, you file your tax return the same month every year.

If it's a small business, you probably find it most convenient to have the tax year be the calendar year and match up with your personal filing.

Many businesses have some concept of a "selling season" that makes it really convenient to not use January through December. A retailer, for example, probably prefers not to close their books on December 31 every year because of all the post-Christmas gift returns. Walmart has a January fiscal year (February 1 through Jan 31).

If you sold stuff to schools, you might choose a June fiscal year; most universities use a June fiscal year so an entire school year stays in a single fiscal year.

I have no idea why Apple chose September, but it was probably a rational decision.

<comment><USER35> Possibly related: new iOS and iPhone versions are released in mid-to-late September.

<comment><USER36> Apple's calendar year was set in stone about 30 years before the iPhone was invented.</comment></comment></comment></comment></comment>


Alice and Bob: A History of the World's Most Famous Cryptographic Couple (2017) - <AUTHOR> http://cryptocouple.com <comment><USER2> When I met Bob Morris ([https://en.wikipedia.org/wiki/Robert_Morris_(cryptographer)](https://en.wikipedia.org/wiki/Robert_Morris_\(cryptographer\))) in the 1990s accompanied by his wife I was disappointed that she was Anne and not Alice.

</comment><comment><USER3> If you're interested, you can find a more comprehensive cast of cryptographic characters on Wikipedia:

[https://en.wikipedia.org/wiki/Alice_and_Bob#Cast_of_characte...](https://en.wikipedia.org/wiki/Alice_and_Bob#Cast_of_characters)

</comment><comment><USER4> >Some people have suggested that the 1969 movie Bob & Carol & Ted & Alice was the origin of Alice and Bob. While it is possible—even likely—that Rivest, Shamir, and Adleman might have been familiar with the movie, there is no evidence to indicate that the movie influenced their naming decision. More likely, since Alice and Bob are common English names that start with A and B, the names were chosen without much forethought.

If their speculation, that the names are arbitrary, is true, why make so much out of it?

Compare with Smith and Jones, popular in philosophy.

Would also have been nice for the website to have supported https.

<comment><USER4> >there is no evidence to indicate that the movie influenced their naming decision

I'd like to add that the existence of a popular contemporary movie whose title is simply a list of names, half of which are the entirety of the names in question (said movie supposedly being a cultural touchstone for RSA's generation, the Boomers), makes the latter hypothesis the less likely one by default, in my view.

<comment><USER3> Carol is also commonly used as the 'C' when a third agent is necessary.

</comment></comment></comment><comment><USER5> I thought Charlie was the husband, always trying to mitm the conversation to check if Alice was being dishonest.

<comment><USER6> Usually the passive eavesdropper is Eve, while the MITM that actively modifies messages is Mallory (she can be defended against by non-malleable cryptography). Also, Charlie is sometimes Catherine, as there is a tendency to alternate genders (Alice, Bob, Catherine, Dave, Eve, etc.).

<comment><USER7> That's a surprisingly comprehensive ruleset, we always used Alice, Bob, and Carol, possibly continuing with the alternating genders for people in the conversation and Eve for the attacker. Never heard of Mallory.

Also reminds me of this: [https://xkcd.com/1323/](https://xkcd.com/1323/)

<comment><USER8> * Alice, Bob, and Carol are generally parties one, two, and three to the conversation.

* Eve is a malicious eavesdropper.

* Mallory is malicious, and able to participate at will.

* Trent is the trusted third party.

* Victor is an independent verifier.

</comment></comment></comment></comment><comment><USER9> > In the history of cryptology, women tend to be either systematically > excluded or reduced to objects.

I would have loved to see some more examples of this, since I wasn't aware it was an issue. Speaking specifically to exclusion, I thought a lot of the foundational work in cryptography was done by women. Disappointing to hear about systematic exclusion and marginalization in this field.

<comment><USER10> A probable explanation in the other thread: [https://news.ycombinator.com/item?id=14804399](https://news.ycombinator.com/item?id=14804399)

</comment></comment><comment><USER11> Odd not to mention [https://en.wikipedia.org/wiki/Bob_%26_Carol_%26_Ted_%26_Alic...](https://en.wikipedia.org/wiki/Bob_%26_Carol_%26_Ted_%26_Alice)

</comment><comment><USER12> Discussed at the time: [https://news.ycombinator.com/item?id=14801883](https://news.ycombinator.com/item?id=14801883).

</comment><comment><USER13> Not related to cryptography, but this reminds me of Alyssa P. Hacker from SICP.</comment>


How Much Sleep Do Fitbit Users Really Get? - <AUTHOR> https://blog.fitbit.com/sleep-study/ <comment><USER2> I'd take all of this with a giant pinch of salt. If the data is anything like the sleep data generated by my Garmin vivosmart HR+ it's not much better than garbage.

It frequently counts me as sleeping when I sit down to watch TV in the evening, or read a book in bed. Sometimes I stay up until 1am reading and it always tracks me as deep sleep from 10pm when I got into bed. I usually take it off for my morning shower (It is waterproof, it just annoys me when washing) and it nearly always counts the walking from bed to shower as a few minutes of restless sleep and the shower itself as deep sleep.

I'm not sure how it makes an assesment of my sleep level. I don't know if it's just based on movement or if it takes heart rate data into account but it does have a heart rate sensor. It seems to usually be wrong.

In theroy it would be possible to know about these limitations and adjust your use of it to make it more accurate, but unless the participents of the study are aware of that and have been manually correcting the data then that won't be the case.

(Not a general critisim on the device, I like it for everything else, but it's sleep data is clearly rather inaccurate)

<comment><AUTHOR> These are all worthy considerations for these trackers... I can only speak for the Fitbits, specifically the Charge 2 (which has a HR monitor too).

Fitbits have 2 measurement modes for sleep - normal and sensitive. Normal pretty much tracks me as sleeping like the dead for 8 hours each night (however long I'm immobile in bed). Sensitive, on the other hand, tracks much more detail and can tell when I'm restless, sleeping deeply, and even when I get up in the night and move around. _I highly recommend the sensitive sleep setting for Fitbit users - it gives you more data to play with!_

Fitbit recently re-worked the way they track sleep in its HR-monitor-equipped devices (Charge 2, Aria HR, etc.). It introduced more details (it was just tracking restless/deep before) and this upgrade greatly improved the sleep tracking for me. Before Sleep Stages, it would track only 3-4 hours of my sleep each night. Now, it catches the full 6-9 hours.

Now, all of this is to be taken with a grain of salt in terms of accuracy, but to compare _among Fitbit users_ and _to yourself over time_ , this information is incredibly useful!

The strongest example of the usefulness of this for me so far has been the effect of moderate alcohol consumption on the quality of my sleep. I am far more restless and get much poorer sleep after drinking just 1-2 beers on a full stomach. This has led me to cut back almost completely on alcohol and the quality of my rest has dramatically improved!

<comment><USER3> How do you know if it's "catching" anything other than noise? Have you done any kind of comparison against a gold standard method like a sleep study?

From what I can tell, none of these accelerometer-based methods work at all and the companies pushing these as sleep trackers are making false claims.

<comment><AUTHOR> Like I said, accuracy isn't so much the goal... The readouts I get show pretty _consistent_ measurements over time, which gives me enough confidence to compare them to other Fitbit users among my friends/family as well as to myself over time (see the alcohol anecdote above).

Setting the sensitivity to "normal" just raises the noise floor in their filter so high that it obscures the data.On sensitive, I've never had issues with it identifying "sitting" as "sleeping", yet it still effectively tracks my sleep (including periods of wakefulness immediately pre- and post- slumber in bed as well as mid-night disruptions that wake me up). This suggests that I'm getting pretty good data (though not equivalent to a sleep study with ECG/EKG equipment). In this case, "good" is good enough for my uses.

</comment></comment></comment></comment><comment><USER4> FWIW I have been using a flex 2 for two weeks now and I couldn 't believe how I messed up my sleep. I was a trainwreck and going for no more than 5 hours per night while misevaluating my sleep time to 7-8h. I decided to break the cycle and I have been sleeping much more for one week and already can see the difference. I think I should have bought an alta or a charge to get the benefits of the HR monitor. Still, I am glad I bought one. It was a reality check. And I bought it because I really wanted an vibrating wrist alarm.

<comment><USER5> Similar story here. I always thought I slept like the dead and nothing short of a force of nature could wake me.

Fitbit rolled out their new sleep types tracking and I find out I'm actually a super light sleeper. Most nights I don't get anywhere near the low-end benchmark for Deep Sleep and I overshoot the high-end benchmark for Light Sleep by many points.

It's weird because my subjective experience and the data that Fitbit shows are so out of whack. I could swear that I sleep well, but nope.

<comment><USER6> I hate to be so pessimistic but since Fitbit doesn't measure brain waves (among many other things) any "sleep" data generated by the Fitbit is somewhere between those novelty love tester machines and random bits in accuracy. Don't trust it over your subjective experience.

</comment></comment></comment><comment><USER7> I know that fitbit thinks this is really cool, but this is really creepy.

Everyone who owns a fitbit has doubtless signed off on being part of these kinds of studies if you dig all the way into fitbits EULA, but I bet none of them actually got an email saying "click here to opt in/out". For a lot of fitbit users, they will never see this study and it will never cross their mind that they're being studied.

This is why I searched high and low for a fitness tracker that doesn't have an online component. I eventually settled on a garman fitness watch plugged into turtle sport: [http://turtlesport.sourceforge.net/EN/home.html](http://turtlesport.sourceforge.net/EN/home.html)

<comment><USER8> I don't really worry about this kind of data being in The Cloud(tm). All the GPS integration is disabled, and I've explicitly forbidden the app any access to location services, so it's not tattling to the world about _where_ I am, and the level of exertion I'm hitting at the present moment, or the extent of time during which I'm asleep, isn't something in which I see any significant potential for exploitation.

</comment></comment><comment><USER9> These types of articles often have a correlation vs causation problem. For example, the article says that if you want better deep sleep, then move your bed time to between 9 and 10 PM. Ok, sure the data shows that people who go to bed at this time have more deep sleep, but why? Maybe it is a longer window to sleep in without light/noise? Maybe people with fewer sleep problems go to bed earlier? Is it because going to bed at 9:30 is magic?

What am I supposed to take away from this?

<comment><USER10> > Is it because going to bed at 9:30 is magic?

I guess, the inner clock is adjusted to that time because that's when the sun goes down in summer, and when melanin increases, because of changing light levels, we become sleepy.

just , a shot in the dark so to speak ;)

</comment></comment><comment><USER11> It's interesting insight into how much sleep people actually get, but the article mixes up actual statistics with some random data pulled from elsewhere. What's missing is, for example, the data on how the amount of deep sleep impacts the individual's short-term memory, activity and "feeling refreshed" (sic).

We don't actually know where those stats come from, so this conclusion is a bit far-fetched: "these findings further support the general recommendation that most adults need to consistently sleep 7 to 9 hours per night".

</comment><comment><USER12> Since noone's asked this question yet, how accurate is using movement / heart- rate as a proxy for EEG when estimating sleep patterns?

<comment><USER13> Mine didn't have HR monitoring, but I found the movement (aka actigraphy) to be pretty much useless. Fitbit was counting all the time I was laying still trying to fall asleep as "deep sleep", and looking at the chart I couldn't differentiate movement at 12:00 when I knew I was awake from movement at 6:00 when a noise woke me up but I fell right back asleep.

The movement data is probably enough to tell when I've slept better or worse, but I wouldn't trust the absolute "number of hours of sleep" they report.

<comment><USER14> Fitbit does not attempt to track sleep stages w/o HR monitoring; it's just Awake, Restless or Asleep. Yes with nothing but accelerometer data stillness can be mistaken for Asleep, but I think you're misremembering when you say "deep sleep".

</comment></comment></comment><comment><USER15> I try to run or bike several times per week. Will be adding tennis soon if I can. What seems to affect my sleep is occasional restless leg. I have to get up and do stretches or use something like the TigerTail to be able to stop the nerves from firing off. I'll toss and turn if I don't address it.

<comment><USER16> I've similar issues once in a while. Taking a month's course of magnesium usually helps. Your reasons and results may vary though, I'm not a doctor.

</comment></comment><comment><USER17> I was doubting the effectiveness of my CPAP machine and decided to take the night off. I usually sleep close to eight hours with 3 to 4 hours of deep sleep; without the machine I sleep about the same time but log only 30 minutes to an hour of deep sleep.

<comment><USER18> > _I usually sleep close to eight hours with 3 to 4 hours of deep sleep_

Sounds like you are getting better sleep than most healthy people. I always wondered if one could benefit from a CPAP machine even without suffering from sleep apnea.

<comment><USER17> My partner sleeps poorly and I have wondered the same.

You are right, I should be grateful for the machine. But the mask is a hassle and I find myself getting cranky about it. Still, I wear it every night. It was definitely reassuring to see what a difference it makes.

I should try and talk my partner into trying it. ;-)

</comment></comment></comment><comment><USER19> Data from Fitbit can help you see patterns which otherwise you won't notice. I used to stay near a Railway Station, and my sleep used to get disturbed every 30 mins. I did not realize this until I saw the data from Sleep tracking. I was getting less than 50 mins of deep sleep and I could easily see that the deep sleep was disturbed at exactly the train timings daily. With this knowledge, I moved to a new place with less disturbance during night. Now my Deep Sleep is increased by 50% after this move.

</comment><comment><AUTHOR> I am almost exactly typical in hours of sleep and mix of sleep type to the aggregate. What's hidden is all the volatility in my sleep... In my last week, there is a range from 5.5 to 8.3 hours of sleep in a given night. The longest sleep nights don't necessarily follow the short sleep nights either, so it doesn't appear to be catch-up sleep. Weird body is weird.

Other interesting notes:

1\. Women need an extra half hour?

2\. People sleep less as they age?

3\. "Generation Z" is what we're calling kids these days?

<comment><USER15> _2\. People sleep less as they age?_

In my experience a lot of older people seem to say this. Note sure why it's true.

<comment><USER20> In the case of my own family members, this seems to stem from physical maladies that are correlated with age - back injuries, for example, or weight increases aggravating sleep apnea. I'm not sure how things look for old people who are extremely healthy, though.

<comment><USER21> [http://www.sciencedirect.com/science/article/pii/00319384879...](http://www.sciencedirect.com/science/article/pii/0031938487903210):

 _" The mean sleep duration (from PAM) equaled 7.29±0.8 (S.D.) hr compared to 7.84±0.62 hr as estimated from the daily diaries. Neither parameter was correlated significantly with age (p>0.05)"_

(N=43, 9 days, age range 21-83)

</comment></comment></comment></comment><comment><USER22> According to my Fitbit _(which I wear constantly)_, I get on average ~3h45m of "sleep". It apparently doesn't count restless as valid sleep, so it heavily eats into my sleep. Most of the ~8h chunk I'm asleep it marks as restless.. probably not a good sign lol.

Though, I don't think I'm using their new sleep phase metrics, as my Fitbit app doesn't seem to have it.

<comment><USER23> For me, the fitbit overestimates my sleep by a wide margin (and I stopped using it for that purpose). It assumes if I am not moving that I am asleep.

<comment><USER24> I had to switch it to sensitive mode for the same reason. It's also more useful as a relative metric than specific number.

</comment></comment></comment><comment><USER25> > People who sleep 5 hours or less a night deprive their body of the > opportunity to get enough deep sleep, which occurs near the beginning of the > night.

I'd like that explained to me. If it's something that happens near the beginning of the night how does duration affect it?

</comment><comment><USER26> At least it has chance to measure sleep. My Android Wear device (Huawei watch V1) has no battery by evening and has to spend the night charging.

</comment><comment><USER27> The sleep tracking from my FitBit is my favorite feature. Even the cheapest FitBit Flex provides good analysis of my sleep (restless, awake, duration, etc). I use it more to make sure I get 7-8 hours to sleep than to count steps.

Disclosure: volunteer beta tester

</comment><comment><USER28> It'll be really interesting to see the sleep data compared against other countries or continents. Sex and age is interesting but you can't tell much from this data. Could comparing it with other countries correlate with a country's economy, culture, general state of affairs? Also, if there is a year to year trend cross reference with country.

If this data is accurate, it could be useful in determining a country's future economics. Ie. perhaps a general population's 5 mins of average less sleep means more stress which means more economic downturn/changes?

</comment><comment><USER29> The only accurate sleep detection I've had from all the devices I've tried is, surprisingly, my $20 MiBand (both the original and the MiBand 2). I don't think it's a hardware issue, I'm pretty sure it's just stupid software.

The results I've gotten from the SleepCycle iPhone app - all the way back in 2009 - are more precise than any of those other fitness trackers. It used to rely on the uber-sensitive iPhone accelerometer but they "recently" switched to using the microphone for some reason.

</comment><comment><USER30> Average is such a useless measure, what if there is a bi- or tr-modal distribution, or a huge number of outliers in one direction or the other? I wish they would include modes and medians.

</comment><comment><USER31> I've tried sleeping with my Fitbit Charge HR 1 but often found that it hindered my sleep. The green light that monitors activity would show ever so slightly and ruin my sleepiness.

<comment><USER32> Fitbit Charge 2: if you move your arm while trying to fall asleep, the display lights up right in my face. Apple's cinema mode for the watch sounds good.

<comment><USER33> This bothered me, as well. If you disable "quick view" then the display only lights up when you tap it. That's a big improvement, IMO, though if my hands are full it's harder to check the time.

<comment><USER34> Disabling "quick view" also saves a chunk of battery life. Which is always helpful.

</comment></comment></comment></comment><comment><USER35> TIL Gen Z is a thing. I feel old. Also, I'm guessing most Gen Z fitbit users are in college because there's no way high school kids can wake up at 8:12AM and go to school.

<comment><USER36> Interestingly what is the next generation after Z - are we back to A again?

<comment><USER37> AA probably. That's the column to the right of Z in Excel.

<comment><USER38> Nothing post-gen-Z'ers relate with more than Excel.

</comment></comment></comment></comment><comment><USER39> This info would look really nice as stacked bar charts. And the average sleep / wake times would look great as parallel timelines to show start / end times of sleep.

</comment><comment><USER40> Looks like my pattern I wear a mii band it was 20 bucks baby

</comment><comment><USER41> Is there a monitor like this that won't send your data to the cloud?

<comment><USER42> Well.... any device not connected to the internet will plainly not send your data to the cloud. Then it's the matter of parsing the data on your own, which at least for Garmin devices should be possible once you figure out the format. (If someone hasn't already, was a while since I explored that.)

<comment><USER34> The FIT file format is available online (might have to sign up to the ANT Consortium or something, I forget.)

But...it was designed and implemented by embedded engineers who looked at TIFF and thought it wasn't batshit enough.

[http://garmin.kiesewetter.nl/](http://garmin.kiesewetter.nl/) is useful for converting them to CSV and extracting the data that way.

</comment></comment></comment><comment><USER43> Does it track snoring?

<comment><USER34> I don't think any Fitbit has that functionality yet. SleepCycle for iOS has "snore detection" if you use the microphone mode (I suspect other apps have similar options by now.)

</comment></comment><comment><USER44> Unless there is some kind of sensor in the pillow, which can calibrate your sleep. None of these fitness trackers can accurately measure your sleep.

<comment><USER45> What makes a "pillow sensor" more accurate? Is there anything like that on the market?

<comment><USER44> Sony has patented in this area. [https://www.engadget.com/2013/02/08/sony- patent-application-...](https://www.engadget.com/2013/02/08/sony-patent- application-puts-electrodes-in-a-pillow/)

<comment><USER45> You're honestly comparing the accuracy of a product out in the market, with one in the patent stages back in 2013?

I understand being skeptical of the accelerometer + hr monitor solution, there are certainly more involved ways of analyzing patterns that are available to sleep specialists. But how does it help the discussion to dismiss it in favor of a non-existent product?

<comment><USER44> My point is, a sensor in the pillow might be more accurate in tracking your sleep than a fitness tracker. Thats all!

</comment></comment></comment></comment></comment><comment><USER46> Average? Mean or Median!

</comment><comment><USER47> I have a Fitbit and love to use it for step counting but I sure as heck don't sleep with that thing.

</comment><comment><USER48> Well, those of us with the top of the line model, the Surge, can't really contribute to this discussion. Why can't we contribute? Because Fitbit has, for whatever reason, chosen not to include its highest paying customers with the same features they've given to their lesser models.

[https://community.fitbit.com/t5/Feature-Suggestions/Sleep- St...](https://community.fitbit.com/t5/Feature-Suggestions/Sleep-Stages-for- Surge/idi-p/1908806#comments)

<comment><USER8> That's a shame! Perhaps a model closer to the middle of the range will suit you better.</comment></comment>


Formatting floating point numbers - <AUTHOR> http://www.zverovich.net/2019/02/11/formatting-floating-point-numbers.html <comment><USER2> Author of Grisu here.

It's really surprising, how long it took to find the most efficient algorithms for double-conversions. In 1980 Coonen already published a good algorithm, but that one was kind-of lost.

For a long time Steele & White's algorithm was the state-of-the-art (with some improvements here and there over time).

Now, Ryu is by far the fastest algorithm out there, but that took ages...

Unfortunately, there doesn't seem to be an easy-to-use, complete library for Ryu yet.

The Grisu library ([https://github.com/google/double- conversion](https://github.com/google/double-conversion)) is probably still the go-to library if you don't want to implement it again...

<comment><USER3> My understanding is that _fixed-length_ conversion to string is more or less trivial, the tricky part is writing a fast algorithm to compute the _shortest round-trippable_ conversion to string, correct?

<comment><USER2> Depends.

"Correct" conversion, where the length doesn't matter (which could be called "fixed length" for a certain length that is big enough) is easier, because one can avoid a lot of rounding and imprecision issue: using the right technique, just produce enough digits until the imprecisions don't matter anymore.

However, fixed length is as difficult as the shortest, if the length is limited, since the last digit sometimes lies on the boundary and thus runs into the same difficulties as the shortest digit. Think of it this way: needing to decide whether 6 digits is enough, is often similar to asking whether the 6th digit is a 0 or a 9 (roughly speaking). This means that producing the best fixed-length representation (for length 6) runs into the exactly same question.

</comment></comment></comment><comment><USER4> This highlights, for me, one of the reasons why our obsession with "human readable" serialization formats is so misplaced. You're burning up a lot of CPU power here, potentially creating a synchronization point, just to do something that could be addressed with a simple 4 or 8 byte memcpy.

<comment><USER5> It also creates a lot of misconceptions of how accurate floating point math is.

An interesting aspect of decimal formatting is how it frequently masks representation error (i.e encoding of 0.1 etc), because the error is symmetrical in the formatter/parser it makes such non-representable fractions appear to be stored perfectly to unsuspecting users.

This can be quite deceptive, if more users were aware of just how many of the simple rational decimals they input were converted into imprecise representations they probably wouldn't trust computers as much as they do. To confuse things more, when operating upon periodic representations the result often matches the representation error of the the equivalent accurate decimal value encoded directly (i.e there were errors, but everything canceled out through formatting) - when they occasionally do not (e.g 0.1 + 0.2) it makes the problem appear all the more elusive.

I think this detail is often lost in explanations of 0.1 + 0.2, that is: representation error is extremely common, 0.1 + 0.2 is merely one of the cases where it both persists through the formatter AND you notice it because the inputs were short decimals, and it's so obvious that the output should be a non-periodic decimal..

TL;DR formatting floats to decimals makes us trust floating point math far more than we should - it's healthy to remember that the formatting process is necessarily imprecise and that you are merely looking at a proxy for the underlying value. Remember that next time you look at _seemingly_ non-periodic decimal output.

<comment><USER6> Or perhaps it makes us mistrust more than we should? How often are we working on problems where the difference between 0.1 and 0.100000000000000006 is of any practical importance?

When I format a float out to 5 decimal places, I'm sort of making a statement that anything beyond that doesn't matter to me.

<comment><USER5> > When I format a float out to 5 decimal places, I'm sort of making a > statement that anything beyond that doesn't matter to me.

Yes, it's true the vast majority of the time it doesn't actually matter. However decimal formatting does such a good job at giving us the impression that these errors are merely edge-cases, and calculators automatically formatting to 10sf etc further that illusion. If people are not aware it's only an illusion (or just how far the rabbit hole goes) it can be dangerous when they go on to create or use things where that fact matters.

<comment><USER7> > I think that illusion can be a bit dangerous when we create things or use > things based on that incorrect assumption.

I'd be curious to hear some of the problems programmers have run into from this conceptual discrepancy. We've got probably billions of running instances of web frameworks build atop double precision IEEE 754 to choose from. Are there any obvious examples you know?

<comment><USER8> Operations that you think of being associative are not. A simple example is adding small and large numbers together. If you add the small numbers together and then the large one (e.g. sum from smallest to largest) the small parts are better represented in the sum than sum from largest to smallest. Could happen if you have a series of small interest payments and are applying it to the starting principal.

<comment><USER9> I've worked with large datasets, aggregating millions of numbers, summing, dividing, averaging, etc... and I have tested the orders of operations, trying to force some accumulated error, and I've actually never been able to show any difference in the realm of 6-8 significant digits I looked at.

<comment><USER10> JavaScript is precise for 2^53 range. It's unlikely that you're operating with numbers outside of that range if you're dealing with real life things, so for most practical purposes doubles are enough.

<comment><USER11> > JavaScript is precise for 2^53 range

What does this mean to you? It's very easy to get horrible rounding error with real-life sized things. For instance

        document.writeln(1.0 % 0.2);

The right answer is 0.0, and the most it can be wrong is 0.2. It's nearly as wrong as possible. These are real-life sized numbers.

btw: I think IEEE-754 is really great, but it's also important to understand your tools.

<comment><USER10> I'm talking about integer numbers. 2^53 = 9007199254740992. You can do any arithmetic operations with any integer number from -9007199254740992 to 9007199254740992 and results will be correct. E.g. 9007199254740991 + 1 = 9007199254740992. But outside of that range there will be errors, e.g. 9007199254740992 + 1 = 9007199254740992

<comment><USER5> You are are describing only one of the types of numerical error that can occur, and it is not commonly a problem: this is only an edge case that occurs at the significand limit where the exponent alone must be used to approximate larger magnitudes at which point integers become non-contiguous.

The types of errors being discussed by others are all in the realm of non- integer rationals where limitations in either precision or representation introduce error and then compound in operations no matter the order of magnitude... and btw _real_ life tends to contain _real_ numbers, that commonly includes rationals in use of IEEE 754.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> We had such floating point printing performance issues in java once that i needed to implement a grisu variant that didn't fall into bignum calculations and had few other tweaks to short circuit the printing and improve some common cases. It made a decent impact especially on garbage generation (it was specifically zero gc). Since been ported to a couple other languages, and I was thinking of redoing it lately for another project and using the newer algo. [https://github.com/jnordwick/zerog- grisu](https://github.com/jnordwick/zerog-grisu)

</comment><comment><USER13> To me the most complicated thing about formatting and parsing floating point numbers is usually if it uses decimal comma or decimal dot. It never seems to be what you expect if using a mix of different language operating systems.

<comment><USER14> As someone from a country which uses commas as a decimal separator (Norway)... Just use a dot. If you're not going to make a _serious_ commitment to actually make your software work well in all the various locales, use a dot. People will understand it regardless.

You're probably going to do something stupid like showing the user a comma- separated list of numbers at some point, which will be needlessly hard to parse for a human when your numbers use a comma as a decimal separator. You (or someone else, or your users if they are technical) will probably at some point make something which tries to parse some output, and that will break if you switch between points and commas arbitrarily. Your users will want to copy a number your software prints and paste it into a calculator or REPL or something, and that probably doesn't work with comma as a decimal separator.

Half-assed "localization" from people who don't know anything about how other countries work is just needlessly annoying to be subjected to.

That's at least my perspective as a Norwegian who experiences a lot of _bad_ localization even though I know English fairly well and configure all my computing devices to use English. The perspective of someone from a country where English is less well known might be different.

<rant>

Examples of horrible localization from clueless American companies or organizations include:

* A lot of software will use your IP address to determine your language. That's annoying when I'm in Norway and want my computers to use English, but it's horrible when abroad. No, Google, I don't want French text just because I'm staying in France for a bit.

* Software will translate error messages, but not provide an error code. All information about error messages online is in English on stackoverflow or whatever. If Debian prints an error message in Norwegian, there's absolutely no information about the error anywhere on the web.

* There was a trend for a while where websites would tick the "localization" checkbox by adding a Google Translate widget, so English websites would automatically translate themselves into completely broken Norwegian automatically. That would've been useless if I didn't know English, and it's even worse considering I already know the source language just as well as Norwegian. Luckily, most websites seem to have stopped doing that.

</rant>

<comment><USER15> Adding to this: ALWAYS use spaces as thousand-separators.

Resist the temptation to use commas or dots as thousand-separators. Seeing a number with a dot as a decimal separator instead of a comma will be fine for most people (even if proper localisation would mean using a comma), but if you throw in commas that mean something else you WILL confuse people. And I imagine the inverse is also true.

<comment><USER16> A space between numbers makes two separate numbers.

<comment><USER16> I would love to hear why that's wrong, when we use whitespace to separate pretty much everything in textual representation.

<comment><USER17> Well, SI did standardize the thousands separator as space, so there is at least precedence for using spaced numbers there.

I personally don't like it though, and tend to prefer either the swiss system (ie, 3'800'000.0), or maritime system (ie 3_800_000.0) if separators must be used

</comment></comment></comment></comment></comment></comment><comment><USER18> Life is so much easier when you use decimal to represent your numbers [[http://speleotrove.com/decimal/IEEE-cowlishaw- arith16.pdf](http://speleotrove.com/decimal/IEEE-cowlishaw-arith16.pdf)]

</comment><comment><USER19> Can this formatting provide round trip for all double floats? The article don't say it.

<comment><USER20> I'm not sure, but generally speaking converting doubles to strings will fail to round trip at least the NaNs

If round tripping is important, my recommendation would be to output something that directly corresponds to the binary representation of the float. For example, printf %a

<comment><USER21> See this article for an in-depth look at implementing these conversions: [https://research.swtch.com/ftoa](https://research.swtch.com/ftoa)

</comment></comment></comment><comment><USER22> I don't understand why anyone would write a new Grisu conversion, with Ryu 3x as fast. It might have educational benefits, preparing you for a Ryu conversion, but shipping it?

<comment><USER23> Ryu is only a year old. Grisu is 10 years old. It takes time for people to absorb these things.

</comment></comment><comment><USER24> This is interesting. I have learned to just use whatever operating system/RTL utilities are provided (like Apple's NumberFormatter class).</comment>


Why You Probably Haven't Started Investing Yet - <AUTHOR> http://blog.hartleybrody.com/2012/03/why-you-havent-invested/

<comment><USER2> Uhhh... That would have been true if you started investing in 1980, but if you were born in 1980 and started investing in 2000 you'd have had a very hard time doing better than inflation unless you'd gotten a position in gold or inflation indexed bonds very early.

When wall street is performing well, compound interest is on your side, but when it can't outperform inflation, it's somewhat more rational to have a "carpe diem" attitude.

</comment><comment><USER3> 8% returns, where does one get that?</comment>


Confirmed Apple to Release iTunes Streaming Service - <AUTHOR> http://www.trendslate.com/2010/11/15/apple-to-release-itunes-live-stream-service/ Checkout the screen shot amidst the install of iTunes 10.1 <comment><USER2> Far from a confirmation. It would be prudent for them to put out a music streaming service with Google's music streaming service soon to be released.

</comment><comment><AUTHOR> At least it is based on evidence, within the install.</comment>


Why Women Are No Longer Catching Up to Men on Pay - <AUTHOR> http://fivethirtyeight.com/features/why-women-are-no-longer-catching-up-to-men-on-pay/ <comment><USER2> I've seen some research to indicate that a large part of the pay gap between men and women is explained by salary negotiation behavior. This is supported in part by the fact that the pay gap is largest for the high skill, high compensation jobs where negotiation is common.

</comment><comment><USER3> "Men make up a bit more than half the full-time workforce, but they account for more than 70 percent of those working 50 hours a week or more."

This is why I question whether the 'total pay gap' is an issue worth addressing. Men choose to work more and have more money, women choose to have more time outside of work.

Personally I think women are making the more intelligent choice. Maybe we should campaign to convince men to stop working so much and spend more time with families, community, personal development, health....

<comment><USER4> Or maybe we should ask what allows women to make that choice, or what force men to spend that much time on getting money. There might be more to this than an intelligent choice.

Maybe we should ask why men write about earning potential in dating profiles while women don't. Why is it that the method of advertising ones dating attractiveness include pay rates for men?

And lets not forget to question why there is a cultural acceptance that a woman can be economical dependent on a man, while cultural accepted to shame men who is economical dependent on a woman.

<comment><USER3> > There might be more to this than an intelligent choice.

Yes, you are correct. I was over-simplifying and over-generalizing to keep my point simple and clear.

For _some_ women (and also some men), making less money is a conscious choice that rests on a well considered value system. And for _some_ men (and also some women), going to great lengths to make more money is the result of questionable values and drives.

You make interesting observations which are rarely given much consideration by those I have seen using the 'total pay gap' to further their political agenda.

</comment></comment></comment><comment><USER5> _Pay rising faster for those who work the most_

Well at least it's an equal, and somewhat more fair way of discriminating.</comment>


Climate scientists withdraw journal claims of rising sea levels - <AUTHOR> http://www.guardian.co.uk/environment/2010/feb/21/sea-level-geoscience-retract-siddall <comment><USER2> Retracted, it must be noted, after several other studies indicated the sea levels would actually rise much higher.</comment>


I Sold My Startup For Millions, Then Worked at McDonalds - <AUTHOR> http://www.businessinsider.com/meetup-ceo-scott-heiferman-mcdonalds-2010-7

<comment><USER3> I worked at McDonalds. It was an abomination. So much so that I never ate there again, and that was well over 8 years ago. I didn't need the job. I basically picked it up as a second job when all my friends went off to college and I still had another couple months left because our school started late. It wasn't worth the extra cash. I was derided on a daily basis by customers who looked down upon me (despite the fact I was going to be majoring in Physics). When my manager noticed that I was reasonably intelligent, they took off early and left me to run the entire restaurant which was utterly exhausting. No one respected health codes. The other employees were living proof of how destructive the food is to your body. In fact you could almost tell how many years (or months) they had been there just by estimating their weight.

Working at McDonalds taught me a few lessons. 1) Never date anyone who eats at McDonalds on a regular basis. They don't care about their health and well- being. 2) Always treat others with respect. 3) Be happy and grateful for the opportunities you have in your life. There are less fortunate situations you could be in.

<comment><USER4> My first job was at a McDonald's. My parents made me start working when I was 14, and that was the only place that would hire me. That was almost 10 years ago, and I had a similar experience to what you described, but it appears to me that the quality of most of the chains has gotten better (at least in my area). I still don't eat there, though.

Embarrassing story: Since I was only 14, I was pretty shy when working the counter. One of my managers encouraged me to make small talk with the customers while they waited for their food, provided we weren't busy. I was helping a large woman, and mistakenly thought she was pregnant. I asked her "how long until you have your baby?" and she said "Excuse me!?!?" Turns out she was just fat. Needless to say, I don't ask women about their pregnancies anymore, unless they bring it up first. Sounds like a cliche story, but it really happened :(

<comment><USER5> Dave Barry once said something like "never assume a woman is pregnant unless you actually see a baby coming out of her".

</comment></comment></comment><comment><USER6> A good job for talking with real people is working as a telephone market researcher - basically a poller. You have a huge list of randomly generated phone numbers, and a handful of questions about brands, current events, and politics, and you just call people randomly, asking what they feel and how they like subject X, Y, or Z.

I worked as one for a month. It was a very enlightening experience - <USER2> listening to what people wanted and felt - and answering to the hostile respondents as well. On any given day, I would talk to over 100 of my fellow citizens, and got them to tell me their income, what they felt about politicians and the law, which banks and credit cards they use, how they like their barbecue set up, how often they surf the web, which websites they repeatedly visit, etc.

It was great fun at times - but a hard, grinder of a job - the turnover rate was massive.

<comment><USER7> That really does sound like an awesome job. Was the grinding the reason you left?

Did your opinions change after hearing other people's woes, or did it help to reaffirm them?

<comment><USER6> The grind and performance targets were the reasons I left. That and the low pay. Every time you hear on CNN or on TV that according to so and so opinion poll or market research company ... it means that a whole army of pollers had to call a ton of people to get that information. The pressure is on to get a statistically meaningful sample, and there are tough time constraints. To make things even worst, you are encouraged to be automatons, and need to follow the script.

It was a total grind.

But it did change my opinion of people, their wealth, and how they know their world. I've spoken on the phone with people who routinely charge hundreds of thousands of dollars a month to their credit cards, and they'd turn out to know not much more about the world than the average joe in a suburban home, with 3 kids and a hospital bound spouse.

The seniors are who you need to watch out for! They're smarter than every other age group, and know what you're after - they make you work for every answer. They don't hesitate to challenge whatever you ask - sniffing out trick questions and assumptions built into the surveys. And also offering the most amount of reasonably intelligent alternatives for tough questions and current events issues.

My personal opinions about the issues at hand usually didn't change, but talking to people did teach me a ton. During the presidential elections, I got a professor of political science on the line, and he basically dissected the entire political landscape and tried to tell me why Obama would win. It didn't help me with the boss though - they were concerned that I was spending too much time on the call.

</comment></comment></comment><comment><USER8> he probably worked there for a few weeks, so that he could use it as an interesting tidbit in his interviews

<comment><USER9> Yea, that's exactly what he did. He actually says he worked there for a few weeks. Total interview attention whoring in my book. "Oh, I made millions, then immediately connected with with real people by working the grind at McDonald's." BS. No way, did he make any kind of connection in that amount of time other than the ability to score interviews with that "intriguing" introduction.

He does have interesting things to say in the interview, but you can tell the McDonald's thing was relatively meaningless to him. Now, had he done it for a year and lived solely off the wages from working shifts at McDonald's that would be something that likely would have provided a real connection for him. It probably also wouldn't be a story he'd tell in a mere 30 seconds with a smile on his face the whole time.

</comment></comment><comment><USER10> I'd be more interested in knowing why he quit McDonald's. I had (teenage) friends who busted their asses there...many say it was the toughest job they had.

Sounds like he wanted to experience life as part of the proletariat, but discovered that "American Beauty" was well, just a really good movie.

<comment><USER11> I worked in a McDonald's (UK) for 3 months during first year at university. It was the toughest job I ever had or have had since.

(Also, my experience of McDonald's is that it is the cleanest, most hygienic restaurant I have ever worked in (I worked in a bunch of restaurants while at uni) more so than people's homes even.)

</comment></comment><comment><USER12> I have a long list of places I like to work given a certain level of free time and financial security. McDonald's isn't on it, but UPS is.</comment>


Ask HN: How to send GMail from command line? - <AUTHOR> There is a utility called ghi that opens and lists github issues from command line. Is there anything that has a similar interface to send and list GMail? <comment><USER2> As GMail uses SMTP/S for sending from an email client, a cursory google search for 'linux send smtp/s command line' gets you something like this:

[http://www.binarytides.com/linux-mail-with- smtp/](http://www.binarytides.com/linux-mail-with-smtp/)

As for listing your inbox and folders, searching for a command line IMAP client should net you something as well.

</comment><comment><USER3> If you prefer an interactive (curses-based) terminal application take a look [http://www.mutt.org](http://www.mutt.org) .

Mutt can easily be set up to fetch mails from gmail via smtp.

      set email@example.com'
      set firstname.lastname@example.com'
      set folder=imaps://imap.gmail.com/
      set smtp_url=smtp://$firstname.lastname@example.com:587

Mutt can send mails both interactively and non-interactively.

      echo non-interactive | mutt firstname.lastname@example.com -c email@example.com -s 'greeting'

</comment><comment><USER4> python and smtplib works nicely</comment>


Tips for Model Driven Software Development - <AUTHOR> http://www.dynamicalsoftware.com/mdsd/closure

<comment><AUTHOR> I noticed some increase in activity in MDSD including discussion over on quorum and some recent conferences. With the promise of accelerated delivery for resource constrained pivoting SMB, do you see any future for MDSD in the world of the high tech start up?</comment>