Ask HN: How many of you non-tech people wanted to learn to code and gave up - <AUTHOR> I'm wondering what makes people give up on learning to code even when they know the value in it. Why did you give up on learning to code even after you started highly motivated. <comment><USER2> I didn't give up but I have to admit I felt quite useless after finishing higher education.

I understand that higher education isn't there to teach you VB or Java but to teach you the principles... but IMO it certainly wouldn't hurt if there was some connection to real life.

I came in as someone who had already coded a while. I was best in class in several subjects IIRC, helped others but felt like I could never have a career in Java.

The reasons?

We were never taught how to work efficiently. Or rather: teachers actively restricted access to sane environments.

Code was supposed to be written in an old unsupported text editor.

For many of us this very smart idea teachers has about teaching things "from ground up" has the nasty side effect of demotivating many of the best students to the point where you consider doing something else.

I never even dared to apply for a Java job and only started after being picked up. I remember telling my first boss the truth: yes, I have been coding since I was a kid and yes I have passed Java in school but I cannot program it. Luckily he gave it a try and with good colleagues Java soon became my personal favourite.

</comment><comment><USER3> I'm a Canadian with no Bachelor's and I started to learn how to code over a year ago to work in the field.

I learned the fundamentals of Ruby on Rails with Michael Hartl's tutorial and built an e-commerce application on Heroku from scratch (html/css/js/jquery/postgresql) It featured an admin panel, inventory management, user accounts and a reasonable RSpec test suite. It took me about 3 months of plowing 90hours+/week. I used it as a portfolio application to start looking for jobs. After blasting hundreds of resumes (>600), I got about 20 interviews. None of them worked out except for two unpaid internships which I financially could not accept.

I gave up Rails, but I didn't give up coding, so I asked the internet what was more likely than Rails to land me a job? iOS was probably more niche and more in demand. So I spent a month learning the basics of iOS development with Swift and released 2 apps on the App Store over the following 6 months (build- learn-build-learn cycle), both using Parse, Firebase and a panoply of 3rd party APIs. They were well architected (imo) using fundamental OOP principles, as well as the classic iOS patterns, singleton, observer etc.

This time I sent over 3 thousand resumes over the course of 5 months, all over the world: Canada, USA, Mexico, UK, Australia, Netherlands, Germany, Argentina... you name it.

I got 2 remote pair-programming sessions, which I nailed, I also got about 8 coding assignments, which I completed within hours of receiving the instructions (4 of which never even had the decency to respond or give feedback). All in all response was the same. I even got a couple of absolutely ridiculous contract offers such as building a full fledged real time web and iOS landlord/tenant management system for 2000$, solo.

Without trying to start a pity party, I am now doing manual labor on a curtain assembly line, going door to door after my shifts trying to sell Wordpress websites, which are easiest to setup and sell.

I guess I had to stop coding because I couldn't find a job, because it takes up time I don't have and even though I am passionate about it, passion doesn't pay the bills.

<comment><USER4> One year isn't enough time to reach a professional level. I wouldn't even talk to anyone in your position who didn't have significant experience (years) working on real world projects with others and delivering results; and I was in your position at one point, so I'm probably about as biased as you might encounter in your favor.

If you really want to code, you need to figure out what libraries/frameworks/tooling/etc are popular in your area, and spend at least a year or two working on open projects which use them; learning them inside out.

The good news is that it's possible. I, and others, have gotten jobs without a degree. The bad news is you need to be damned good to do it.

It's a marathon. Not a sprint. You're looking at 2 to 5 years spending 20 hours a week on this. It will most likely not make you money during this time; so you need to love doing it.

<comment><USER3> Yeah. I spent in that year on average 10 hours a day coding. And some days I would just blast way past that.

So if you consider that (1yr)x(70hrs/week)=3640hrs falls right into the (2-5yrs)x(20hrs/week)=2080-5200hrs bracket, then in theory I have 'paid' my dues.

Otherwise if you're the kind to factor in the notion that "it takes time for the concepts to sink in", that's another story.

<comment><USER4> Yep, been there and done that. You're looking at investing that much time again. On top of what you've done already. But do it! It sounds like you really care about programming.

Specifically focus on working with others. Find an OSS project you like and contribute to it significantly. Or, better yet, find an OSS project that companies in your area want experience with and start contributing to that.

If I saw "Active contributor to Angular/D3/Entity Framework/SignalR/Mono/Whatever" on a resume, I'd definitely be interested in talking to that person.

<comment><USER3> I really don't have the time to contribute to OSS, and I have no shame in saying I don't have any interest either. I don't know how people find the time to. I really think you either have to be <20 years old living at your parent's house, or lacking your own ideas, or have enough disposable income to have time on your hands to do it (which is probably the majority). And then you need to really be interested in doing it. It's for a very, very small subset of coders.

I went totally broke learning to code. Now I have to donate my time to OSS? Something is backwards

If I had the time to be writing code, I would be building out a backlist of ideas I personally have.

Thanks for the input though

<comment><USER4> It's not about OSS,it's about maintaining and understanding other people's code and revision control.

If you don't have kids at this point, then I'd go with the Pat Rothfuss method: [http://blog.patrickrothfuss.com/2010/02/fanmail-q-advice- for...](http://blog.patrickrothfuss.com/2010/02/fanmail-q-advice-for-new- writers/)

If you do have kids at this point, your situation is significantly harder.

That said, if you don't have kids, are you really working/commuting 90 hours a week and don't have 20 to spare?

<comment><USER3> Sorry but your advice (that link) is good for an absolute antisocial geek who strives to live on the cheap in order to fulfill the ultimate goal of contributing to OSS. This is not advice for someone who wants to find a job fast.

You're essentially suggesting that I recluse myself even more than I did in the past year, in a low rent city (which in Canada will definitely have 0 tech scene) or far away in the burbs where the commute is long enough that I could code on it. Essentially, to become a full fledged renegade of society.

I prefer the more rational approach that involves being a city, and going to meetups, conferences and hackathons to meet other engineers that are actually working in tech.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> I started out with Codecademy and gave up lots of times (over about 6 months) before I decided to commit to learning full time.

My plan was to lock myself in a room for 3 months and teach myself Python, I ended up doing an in person course in Javascript (one of the rare free ones). Learning with peers and some support made the whole thing a lot less gruelling. Before that I would get stuck on very simple things for hours and hours not knowing what to google to find the way out of it.

I wrote about this in article a little while ago if you're interested in the full process I went through. Note (I didn't choose the title for this) - [http://www.gadgette.com/2016/02/19/how-i-learnt-to-code- in-a...](http://www.gadgette.com/2016/02/19/how-i-learnt-to-code-in-a-scarily- short-space-of-time/)

<comment><USER6> I think it takes a certain kind of person to teach themselves something they have never done before without much in-person interaction. Many times programmers will have at least a few other people around that can give them a second perspective and then it becomes a symbiotic relationship where both people benefit.

Some people can learn everything they need to on their own simply by knowing what they need to look for, if you don't know what you're looking for, the search becomes infinitely more difficult.

Edit: When I say a few other people around, I don't mean in person although that is common. Even just having people who respond quickly to messages or posts on websites will help tons.

<comment><USER7> While this learning style certainly suits more people than others, it is definitely a skill that can be improved.

For a lack of a better term, I'd call it researching. Expressed in another way, it is the ability to state (and constantly restate in new ways) a problem you are facing. The rest comes from pure grit in refusing to give up.

A few things I noticed from my own journey...

1\. Jargon matters: Learning the "nomenclature" (see, the jargon term for jargon) makes your life so much easier when researching. I recall reading a paper which sought to bridge the gap between biology and computer science, the author's first task was to instruct the reader on the "language of the space" and it was assumed the reader should otherwise be able to learn the concepts quite quickly. Being able to phrase your problem in the language of the field will give you much better leads when looking things up. When you encounter a new term, try to appreciate that term for what it is, avoid trying to constantly translate it back into your own terms, though this is definitely useful for gaining an understanding to begin with. A parallel to learning languages it to "learn like a baby" and to avoid translating a new term back to your mother tongue.

2\. All learning is good, no time is wasted. From experience learning and teaching others, there is a mental trap that time spent "looking for a solution" is time wasted - you're not learning your solution and you're not progressing through whatever learning materials you're trying to work through. This is not a constructive mental feedback loop as it breeds frustration. As mentioned above, research is a skill and time spent researching is practising that skill. You could even argue its more useful as its a far more general than knowing how to solve specific problem X in front of you.

Everyone has been in that stage where you were lost because you had no idea what a "mutable object" was or you read your first null pointer exception and had no idea where to start. Or worse, reading the poorly explained and formatted docs of some unfamiliar software, in an unfamiliar programming language trying to do something for the first time.

My advice to the people who are still struggling in this phase: stick with it, don't be disheartened if other people are seemingly picking it up faster or easier than you, everyone goes at their own pace and as long as you're learning, you're moving forward. Sometimes finding your way to the answer is the bigger lesson than knowing the answer itself.

</comment></comment></comment><comment><USER8> Engineering grad student here:

1\. Learned to code some C# in an attempt to distribute some of my simulations to other computers. Had a great time and managed to get something good enough up and running.

2\. Tried to pick up Haskell because I liked some of the ideas, and had a few projects I was interested in trying to do in a functional language. Had a bad time and quit after ~2 weeks. The environment and tools were garbage. I thought the old by-engineers-for-engineers software I used to build research models was user-unfriendly, but I guess that was just because I had never tried to work with the software programmers build for each other.

<comment><USER9> Haskell is mainly developed and used by academics in the field of programming language theory, and occasionally such academics who do some work in industry, so it's not really the whole story to call it "software programmers build for each other".

<comment><USER8> I'm talking about things like Emacs and Vim, not just the core Haskell packages.

<comment><USER10> Yeah, many programmers don't user them either (though some of the best ones do). Those tools are not beginner friendly. Actively resist GUI usage patterns, and are less useful to newcomers than a simple text editor.

They also include alot of cool timesaving features and are very customizable.

</comment></comment></comment></comment><comment><USER11> I think the reason that many smart people don't stick with programming is because a fundamental part of the job is struggling with intellectually trivial incantations specific to some configuration/OS/Language/Tooling.

I am a programmer and I have a lot of patience for that stuff. But I don't why I do, because objectively speaking it's crazy to spend hours ingesting this kind of ultra-specific, non-reuseable information.

<comment> open-source-ux _"...incantations specific to some configuration/OS/Language/Tooling"_

This is one of the things that I struggle with, much more than actually learning the programming language. I'm embarrassed to admit it because it's part of the DNA of programming environments, and it feels like no-one will take you seriously if you don't love or master the command line to perform tasks in your environment.

But I'll say it, I (mostly) hate the command line for the endless, excessive configuration/installation/tooling/updating tasks that are such an intrinsic (and unfriendly) part of "modern" programming setups. It also feels like there is zero interest in ever changing these things.

Anyone else want to admit they struggle or dislike this state of affairs? Or am I the only one?

<comment><USER10> I'm possibly the only one in my office who is comfortable on the command line. Most of this may be that we're in a Windows environment, but they all seem to use an IDE more than anything else. I feel like for web stuff at least, the command line is _easier_ because you know exactly WTF it's doing instead of having it hidden behind layers of useless and arbitrary UI.

But if the IDE or other tools is good enough for what you need to do, then I don't believe it makes a difference.

</comment></comment></comment><comment><USER12> I used to work in spreadsheets all day, or at least, 70% of the time, I'd have to collate 50x spreadsheets information into a singular summary page, etc.

I worked through ~20% of "Learn Python the Hard Way", then later, the intro CS 101 of Udacity which has a Python intro, as I wanted to be able to do more then vlookups and complex workarounds for Excel sheets.

My new career is in marketing automation, so I did some tutorials online, and bought a SQL book to pull PL/SQL queries for data segmentation. I also picked up HTML/CSS, but don't have any reason to really use Jscript. I can read it, and trouble shoot in some landing page uses, but I don't need it.

Learning to code was always a supplemental goal for career growth, and I find it fun. I was that IRC guy who loved scripting simple tasks like a music player/displayer, k/b wars, etc.

However, when I'm actually diving into learning actual code, I don't enjoy it. I don't think I'm built for it, just as I don't grok statistics, yet my sibling is a actuarial scientist, but he gets confused about things that come naturally to me.

Being in Marketing Automation, its more relevant for me to do "continued" (outside of work) education not in coding, but in platform research (Eloqua, HubSpot, Marketo), more SQL/data management (I am reading "Object Technology: a Manager Guide), and certifications in these platforms.

<comment><USER13> Your experience rings true to me.

I don't particularly enjoy coding other than figuring out a way to automate some boring task for myself or someone else.

I also don't entertain the idea of having to spend most of my free time learning how to comprehend some particular peculiarities of a language syntax and generally keeping track of technology updates.

Also, browsing the internet I realized that with the advent of sourceforge/github/stackoverflow, no matter how hard I try to write some piece of code, it has _always_ been the case that it's already been written and, with minor modifications will solve my problem, whether in the form of a code snippet or a full desktop application.

</comment></comment><comment><USER14> Coding for coding is irrelevant for non-techies and rightly so: outsourcing is so cheap nowadays. Coding in order to do something relevant within their particular field of knowledge is their main point and may be worth the fuss.

<comment><AUTHOR> I totally agree with you there. I feel like coding for the sake of coding is like poetry for the sake of poetry. That being said coding is not just about doing a programming job. In my opinion the biggest benefit of learning how to code is it develops the discipline of structured objective thinking.

<comment><USER15> Which is an inferior way of thinking, in certain situations.

There are many situations where structured thinking, of the sort that makes for good programming, seems a liability. Ever wondered why many programmers are poor at social interaction and big-picture decision-making?

<comment><USER16> Because they don't practice it.

Seriously, people devote so much time to becoming good at "structured thinking" that they spend less time talking to others, or doing big-picture decision making (the last one is easy - just start making decisions and facing the consequences of your terrible decisions, you'll get better).

Literally everything in the world can be solved through practice. (That's clearly an exaggeration, but its true enough).

I definitely don't think that "programmers" (whatever they are) are any worse at other things by virtue of their talents. They are less good at other things because they have not practiced those things.

</comment></comment></comment></comment><comment><USER17> I had two problems while teaching myself how to code; I'm not that passionate about it, and learning technical disciplines on line is not how I learn.

I viewed coding as a means to an end. Learn to code-->start a business-->get investors-->pay someone else to code. I didn't care much about what I was learning, only that what I was learning could potentially fulfill other goals. That, in and of itself, wouldn't necessarily deter someone from learning how to code, only...

I struggled learning through on-line tutorials (Code Academy et al). It's not how I learn. That was unfortunate, seeing that coding community spearheads this type of learning. I realized that if I wanted to make it work, I'd have to register for a class. Then I became scared that maybe the struggles wouldn't persist past on-line and I'd be financially committed to it. I wasn't willing to take that risk.

<comment><AUTHOR> I'm working on a video course myself but it takes a different take on things. Could you elaborate on the problems you face with current online tutorials? Why didn't it work out for you?

You mention you decided registering for a class is the only way to go, I would like to know if an online video tutorial teaches you to get the basics in a day and offers 100% money back if you aren't happy would you try it and how much would you like to pay for it?

<comment><USER17> There is something to be said for in person peer to peer learning.

My biggest problem was, I'd get hung up on a problem in some bizarre way. Often times when I'm learning in teacher to student only environment (or machine teacher and student), the teacher will notice the mistake, but have a hard time identifying the train of thought that got me there in the first place. Students have an easier time identifying mistaken amateur thought processes and fixing them. A typical (or automated) teacher is so far removed from amateur thought processes, they have a hard time empathizing.

Where online learning systems fall short is the peer to peer. Yes, there are usually forums where students can communicate with each other. But it is lacking. The biggest problem students have with each other is misunderstanding. In a classroom, sitting next to another student, that misunderstanding usually only takes a few minutes, tops, to resolve. In an online forum, that misunderstanding could take days, frustrating students and forcing them to drop the class.

I'm not sure if a video would help for someone like me. The problem is you're trying to streamline a process in how people learn. But people learn in all different ways. Accounting for all the different ways is hard. While I'm sure your video would work for some, chances are it won't work for most.

</comment></comment></comment><comment><USER18> Classes in Javascript were really hard for me for some reason, and I've never really passed that point. Also, the fact that programming is not solving anything by itself, you need to know the entire stack. After wrestling with classes for a while it's really demotivating to realise you have to know DNS, server-side languages, http_S_ and all sorts of things before you can actually create your app/website. It was just a bit too much for me.

Codecademy did a good job though and [http://www.theodinproject.com/](http://www.theodinproject.com/) too.

EDIT: Also, the job prospects did not look too good because of the fierce competition. What motivated me was doing my _own_ apps/sites (lego for grown- ups), or at least work on a startup, but the required resumes were really daunting. Sysadmin just didn't have the rockstar flavour to it (I think it's a fine job, just trying to convey the fact that a certain air of adventure needed to be present to lure me to stick with it- i.e. the same reason 13 year olds learn the electric guitar).

<comment><USER19> I got downvoted for this in a simallar thread, but it's my belief that you need to work backwards to start coding.

Use tools, apps, generators, scripts, whatever, to do as much of the work for you as possible. Use a yeoman.io fullstack generator to literally make you an entire webapp with login and security, and then figure out how to fill in the blanks.

Doing it this way, you won't get bogged down in all the technical bullshit to "make something appear on the screen". Let's be honest, you're not writing code for the space shuttle, you can take lots of shortcuts, and then correct your mistakes on a later project.

<comment><USER20> I think there's two approaches, and depending on what you are trying to accomplish as your motivator to program, the best approach may be different.

If you are looking to present something to others as an interface, using tools and frameworks can help tremendously. Your success is likely somewhat based on the perceptions of others, and this requires mixing a few disciplines (design and engineering), so getting what help you can to achieve that minimal level required for people to not reject it outright is important.

If you are looking to transform or create something for yourself, just learning the tool is often better. You want to spider some sites and present some stats on what you've found? Learn Python, Perl or Ruby and that will take you most of where you want to go. You want to write a small roguelike game? Learn whatever language you want and get to it. In many of these cases, learning the intricacies of a full stack and then how you have to tweak it to make it work for your needs mught be counterproductive, unless it's aimed specifically at your need.

</comment></comment></comment><comment><USER21> I've made a couple of attempts and I'm about to make another attempt to learn to code. I think the problem I run into the most is that a lot of the online learning is not project based, or takes too long to get started on a project. For example, I started the TeamTreehouse Flask Track and it takes a while before their tutorials challenge you to actually start building a site with Flask. I signed up for onemonth.com and I liked their approach much better, where you just dive in and start building something from the beginning. However, the OneMonth Python/Django course that I was taking shutdown right in the middle of the course I was taking, due to problems with the course material. It's also been very difficult to choose a language/framework, but I think I've settled on Python/Django. I'm thinking that I will resume my Flask course at TeamTreehouse and also give Code4Startup.com's new Django course a try.

<comment><USER22> The place to start really depends on what you are interested in. If you already know you want to do a bunch of web programming just start out with javascript.

If you think you might go on to do lots of types of programming then learning python is a great place to start

Check out reddit.com/r/dailyprogrammer if you want interesting things to work on them. A lot of those tasks are not so simple that they can be done in a couple of hours, but not so long as to be crazy hard.

I was a big fan or this one

[https://www.reddit.com/r/dailyprogrammer/comments/3fva66/201...](https://www.reddit.com/r/dailyprogrammer/comments/3fva66/20150805_challenge_226_intermediate_connect_four/)

<comment><USER21> Thanks for the info. I considered focusing on Javascript and node exclusively, but I'm really only looking to build CRUD web apps quickly, and Rails or Django seemed more beginner friendly for those purposes than node. Of course, I'd still need Javascript for the front-end of these CRUD web apps. I'm still kind of on the fence though between RoR vs Python/Django. I'd like to be be able to create MVPs quickly, so RoR is tempting even though I'd prefer to learn Python rather than Ruby.

</comment></comment></comment><comment><USER4> I've given up at many points over the last 9 years. I now program "professionally". I work on full stack web applications, networked desktop applications, and recently embedded applications.

The primary reason I gave up was that I wasn't willing to accept the amount of effort which needed to be put in to get the level of results that I wanted. I just couldn't comprehend that the skills I wanted to have required years of commitment.

The advice that I'd give would be to understand that this is a huge task. You won't learn everything quickly; even if you're very bright; even if you spend 14 hours a day on it. Those things will help, but they aren't the key.

If you want to be a good programmer you need to love learning. It's not about being clever, it's about being persistent. You constantly need to learn new tools and frameworks, and occasionally new languages. You need to understand the technologies you're interacting with and how they work. And you need to take all those tools, frameworks, languages, and technologies and use them daily.

But mostly you need to invest the time.

Don't give up if you let a big project go because it's too difficult, or don't understand something, or spend two weeks on something you thought would take an hour. Be disappointed, sure. But don't quit.

Keep going. Keep learning. Keep on picking up just a small amount of knowledge or skill each day.

In a year things that now seem complex will be obvious. And that will happen again and again every year that you continue learning. Eventually, your failed projects will turn into completed projects, but it could take years for this to start happening depending on how ambitious the projects were. You can't let that stop you. You just have to keep going despite it.

So keep going. But realize it's a long, slow, life-time commitment to constant learning. It's not easy. Even if you've been good at everything else in life, there's no exception for you. Mastery and skill will only come with significant time and effort. But they will come.

Also learn vim. That sh*t is awesome.

</comment><comment><USER23> I was messing with programming for years now but I can't manage build anything worthwhile, even for my own amusement. I was CS major but I got burned out on high level math and I switched majors.

Through out these years it's always been a struggle to learn to code and finish something. I've done some basic problems, some Project Euler, etc. I did countless tutorials, it just doesn't stick for me. I've been through so many languages that I can't even remember them all, name it and there's good chance that I've read a book on it.

It also seems like there is so many tools and programming today is so convoluted and over engineered that I just get overwhelmed. I also don't have anyone to talk about programming, I am just spinning wheels solo and get frustrated when I get stuck.

Right now I am giving my last chance of learning to code. I found out Lisp and eventually Clojure. It seems more straightforward and simple, there are no 'design patterns' to remember and break my head with. I feel like I can slowly build something from bottom up. I have high hopes for Arachne upcoming framework. I hope it will be accessible and I'll be able to make SPAs sites.

But yeah, I feel like I've burned out on this. I just get frustrated with code most of the time when I can't come up with a simple solution.

<comment><USER6> Have you ever worked with a team of experienced programmers?

I ask because I flew solo throughout college simply because it was difficult finding competent programmers at such a small commuter school. I spent some time learning my own things and trying to teach myself. But once I was placed on a solid team at a software company, my rate of learning increased at least by double.

What I'm saying is maybe try surrounding yourself with some folks who have more experience in what you'd like to learn. There are user groups pretty much everywhere for major languages, and meetup.com is a great way to make connections.

<comment><USER23> My friend got hired at the start up like that and now he is doing fine. The truth is that I am very honest and critical of myself, I just don't have the confidence in my abilities. He also had several years of experience, I don't. I might start hanging out at local meetups again but the tech scene is small.

</comment></comment></comment><comment><USER24> I've dabbled a bit with various online courses, and concluded that coding just doesn't spark my intellectual interest enough for me to get into it fully. Wrote about this, actually: [http://sonyaellenmann.com/2015/12/its-okay-to- not-learn-how-...](http://sonyaellenmann.com/2015/12/its-okay-to-not-learn- how-to-code.html)

<comment><USER25> Thank you for that perspective... from a graying beard. Unfortunately the social potential of the _idea_ of software and APIs is so much greater than its IRL application and usage. But congratulations nonetheless, it seems you have adopted the hacker ethic (re: OSS-as-duct-tape) and that's a great first step even if it's your only one!

</comment></comment><comment><USER26> Years ago I started coding qbasic with a photocopy of a book given to me by a friend of the family.

I progressed from there to medicore competency in PHP, rails, and c++. Then I went to university to study comp Sci...but almost immediately switched to aerospace engineering, and my coding skills plateaued.

By that I mean I can write basic stuff in all sorts of languages, but I'm miles away from writing a compete program or anything user friendly. Most of my code these days revolves around automating various things in the most sensible language. Where sensible often means something the next non-coding engineer to come along can understand.

I guess I stopped because I knew enough to do what I currently need to do. I'm content that, given time, I could learn to be a better coder. But at the same time I avoid jobs in my industry that are suited to decent coders because I know there are more suitable people for the role.

Every so often try to pick up some "hobby coding" but find that I don't really enjoy it like I did as a teenager.

</comment><comment><USER27> I'm an artist and since I've always been fairly interested in science in general too, I decided to teach myself HTML and CSS to code up my own site from scratch, for hosting my art (and miscellaneous other things). Am currently going to start learning CSS Flexbox that everyone's talking about, so that all parts of my site can be rendered form-factor independently. My plan is also to teach myself Javascript after CSS although I've no current need for any JS on my simple site. I did teach myself C years before and successfully worked my way through K&R2, but since professionally I was headed in a different direction I saw no reason to go further. Can't say I've given up on coding except for a short attempt at Java (again ~10 years back) which I gave up quickly since coming from the simplicity of C it seemed rather bewildering to me (at that time).

</comment><comment><USER28> I am having some problems with magic methods in Python. They are defined inside a class using built-in functions and are not directly callable. What are some helpful resources with this topic? Thanks.

<comment><USER29> Word to the wise: avoid anything "magic" when writing code.

<comment><USER30> Word to the wise. Better to stay silent and for people to think you stupid than to open your mouth and have them know for sure.

Python magic methods are not "magic" but are a very standard part of the language and are well documented.

<comment><USER31> And you wonder why some people never catch onto programming.

</comment></comment></comment></comment><comment><USER32> The only online curriculum I have had success with was: [http://www.javascriptissexy.com/how-to-learn-javascript- prop...](http://www.javascriptissexy.com/how-to-learn-javascript-properly/)

The reason it clicked was because at the time, a colleague offered to mentor me. This helped since he would assign me cases related to my skill level, show me how to ask better questions, and explain how things worked in context to our tech stack.

</comment><comment><USER33> First time I stopped, because I got stuck. I didn't have Internet at home, so I had nobody to ask for help. Second time I stopped, because of university exams. I was studying something completely different at the university and when exams came, I dropped the programming and didn't pick it up after. Third time was the lucky one. I made programming my most important priority and I didn't stop. Also, I had Internet, so I could ask for help.

</comment><comment><USER34> Because it was free.

I tried many of the free options out there but whenever I hit a roadblock I just quit because I had nothing to lose. I paid $30 or so for a swift course and never stopped because I had paid money. It's a tiny amount of money but I felt like I had to see it through since I paid money. I now have 2 apps in the app store, with another on the way this week likely.

<comment><AUTHOR> Wow! Thanks. I'm working on a 3 hour video series which I'm planning to price at $99. My thought process is exactly the same. people doesn't tend to value free stuff or stuff they got for free. Its counter intuitive but it works.

Obviously people ridicule the idea of charging for basic programming tutorials.

</comment></comment><comment><USER35> I've started and stopped a number of times. Mostly I don't have an itch to scratch that pushes me to make anything interesting.

I find myself particularly struggling when language walkthroughs get to libraries and code organization. Follow all the paths and dependencies is really tough for me.

<comment><USER36> I'm a coder. But I often do little side projects for things that I just wonder about.

Today I'm wondering how code is made into binary and how that flows through the processor and how the logic moves data to and from memory. I'm not sure how I'm going to code anything to represent that, but that's half the fun.

Last month I was a bit obsessed with organic tentacles and how to make them move using muscles. I coded this in javascript using canvas. Pretty fun. They make lots of interesting patterns.

Before that it was games like cookie clicker and candy box.

Before that it was neurons and AI - again I just coded little fish in javascript, hooked up a neural net, they gained score depending on how close and how much time they spent near food. Then breed them and repeat. Do this for half a day and they get really smart. It's cool how a few arrays and sigmoid functions turn out to be smart. Even though I coded it all, it still amazes me.

I think the thing is to find something that interests you. Maybe code your own blog. Or online text adventure. Or multiplayer pong clone.

Part of your problem is that you are trying to do too much. Libraries, code organisation, etc are all fixes to problems. You need the problem first (while you are learning) so write spaghetti code and it's not until you go 'OMG this is hard to understand' then you need to look up code organisation and only then use the minimum that is needed to improve your situation.

</comment></comment><comment><USER37> I learned. Then realized the value of having good ideas for what to work on.</comment>


Facebook Has Decreased Page Reach, And Here's Why - <AUTHOR> http://techcrunch.com/2012/11/16/facebook-has-decreased-page-reach-and-heres-why/

<comment><USER2> Im glad more people are pointing to this problem. Facebook is trying to silence the issue by implying it hasn't changed the reach of posts. In my case I saw a drop from 8.5 million people reached per week, to 2 million. Posting the same kind of content ive been posting for three years. Its a terrible thing to see that the people who have been creating content that has given facebook billions of ad pageviews, are now being squeezed in order to maintain the natural reach we once had.</comment>


Disconnect. Offline only - <AUTHOR> https://chris.bolin.co/offline/ <comment> mck- Beauty. Almost a piece of art.

I was on a plane yesterday (literally on airplane mode) and I finished a book I've been working on for a month, and prepped/wrote half of a presentation. Quite often I produce much of my writing on a plane.

I find myself very productive on a plane. Especially on cheap flights that don't have in-flight entertainment. Literally no distractions for a preset amount of time. You're not only offline, you're also physically stuck. Best way to make the time fly by is by being productive.

<comment><USER2> Agree 100%. Problem is though that many airline are starting to offer WiFi connectivity. I just hope that they've built shitty systems that won't work most of the time... :)

<comment><USER3> Starting? Like ten years ago they started and now it's in nearly every plane.

<comment><USER4> I'm in Europe, and fly 4-5-6 times a year. It's only in the last 5 years that you're allowed have electronic devices turned on in planes here.

<comment><USER5> Out of curiosity, why were electronic devices banned in planes on the first place? Is there any scientifical evidence either for or against it?

<comment><USER6> Great article here: [http://www.bbc.com/future/story/20130604-why-we-turn- devices...](http://www.bbc.com/future/story/20130604-why-we-turn-devices-off- on-planes)

Also good: [https://en.wikipedia.org/wiki/Mobile_phones_on_aircraft](https://en.wikipedia.org/wiki/Mobile_phones_on_aircraft)

</comment></comment></comment></comment></comment></comment><comment><USER7> For those interested in managing online time and getting ourselves offline regularly, the book _Deep Work_ , by Cal Newport, has some very useful ideas. One that I plan to start experimenting with is the idea of scheduled internet access - allow yourself to get online only at certain times of day. This isn't just for work. Even if you're, say, standing in line at the grocery store, you don't get to pull your phone out and check your email.

As the author points out, we've forgotten how to be bored. We need to learn to engage that part of our brain again.

[https://www.amazon.com/Deep-Work-Focused-Success- Distracted/...](https://www.amazon.com/Deep-Work-Focused-Success- Distracted/dp/1455586692/ref=sr_1_1?ie=UTF8&qid=1503497788&sr=8-1&keywords=deep+work)

<comment><USER8> > As the author points out, we've forgotten how to be bored. We need to learn > to engage that part of our brain again.

This sounds like a contradiction. Isn't boredom precisely the state that results when one fails to engage their brain?

<comment><USER9> Kind of. But you can see boredom as the desire for novelty, a cue to find something new so we can get that dopamine hit. Phones, internet and media are fantastic at giving us that little kick to keep us going, so we don't feel the need to engage our brain in more useful ways. Without that easy access to the dopamine treadmill that is your phone, you are encouraged to seek novelty elsewhere. This might be in wandering thoughts, seeking interaction with people or things around you, or some other endeavor.

To think a little further forward, doing this tends to increase the time until the next novelty, so you get practiced in not constantly seeking immediate gratification. It helps increase your ability to be patient and to concentrate, which in part is the ability to not switch tasks at the first hint of boredom.

</comment></comment></comment><comment><USER10> > your ability to Google something

In my opinion, this actually _is_ something that makes me valuable. It doesn't matter how well you can synthesize information if you can't find it in the first place.

Having the ability to take a problem, figure out what you don't know, reprocess those parts into a format that Googles™ well, filter out the noise from the results, and only then synthesize the information gathered is actually not as common as you might think.

<comment><USER11> I remember times when I had the PHP manual, the HTML reference, etc. saved offline to save bandwidth.

<comment><USER12> Yeah. Now I wish I could save Google offline :)

</comment></comment></comment><comment><USER13> The funny thing is, smartphones are all but useless for many tasks the minute you go into airplane mode. There are exceptions, but you're basically holding a client to a distributed operating system which has appropriated many of the promises of wearable personal computing for corporate profit.

So yes, if you've already ceded your right to not be inturupted by running apps like Twitter and Facebook in the background, then I can see the appeal of cord cutting.

Of course there also exists the possibility of at least trying to use these devices without ceding this autonomy in the first place, but that requires admitting just how little today's social media offerings will have to do with this approach.

And no, a smartphone is not the right place to do research anyway. In fact, neither is the WWW using off-the-shelf browsers, but it's the version of Hypertext we're stuck with for now.

<comment><USER14> Although I would prefer to be very strongly critical of the corporate model of the distributed operating system, (and particularly I'd like to relate it to Marx's concept of alienation, commodity fetishism and the tighter control of the 'free market of ideas' which turns out to be a 'free market' dominated by monopoly of Google in particular as they freqently turn out to be), I'm not sure what else I would do with a computer.

Say I want to program on a laptop - I can't program without access to the relevant documentation, access to download the libraries I need, and I'm often completely lost trying to debug a problem without access to SO or finding what triggers a particular error. Is this beacuse I have become over-dependent on the Internet for help, or even because I never learned how to program sans Internet? Probably, and it's a shame.

I honestly have no idea what I'd do with a phone without an Internet connection, other than the obvious phone calls and text messages. Take notes? Add stuff to the calendar? I could do that with pen and paper anyway, and not have to give that up during takeoff.

Social networking is weird, I feel like I'm supposed to be chasing something, looking for it, and when I find it then I'll latch onto it. It's like me with computer games. But I have found myself becoming bored with Mastodon and Facebook doesn't keep me for more than five minutes. Other peoples' lives, or at least to the extent displayed on FB, just isn't that interesting to me.

Twitter is a different matter, I always want to track the discussions, create witty replies, etc. (partly due to my political stance), but I don't think I'm obsessive yet. And where does it leave me? Less time to pursue my hobbies that take time to tease out their enjoyment; language learning, getting round to learning music theory, hobby programming, reading Marx, etc.

I suppose that seeing that this is happening is a good start.

<comment><USER15> I found Zeal to be of some use as you can download a ton of documentation for offline use.

<comment><USER16> Thank you so much for this! Often when I'm online, it's only to access documentation. This might be the way out...

I wonder if someone has written a readthedocs importer for it.

</comment></comment></comment></comment><comment><USER17> While I sympathize, that would be forgetting all that the net and online-ness has done for me. I would be a fundamentally different (and, in my current estimation, worse) person if I didn't have the net. It's been an engine of personal growth much more than one of distraction.

It might not be the same for everyone, of course. But I still think going offline is giving up too much.

The pendulum doesn't have to swing all the way to the other direction. Couldn't we just focus on being more responsible in our net consumption and promoting the good benefecial stuff instead?

</comment><comment><USER18> I got stuck into a bad habit of browsing the internet idly anytime when I'm at home and then having to rush to get to work so I've created rules on my router to disable web access in the mornings before work and late at night before bed.

It is quite effective and I suddenly do other things but I do worry that it's a psychological crutch which is just going to make self-control even harder in the long term.

<comment><USER19> If you are an alcoholic, would not having 24 beers in your fridge lower your willpower? I think it is the reverse, just like this. Not in house = fight won, so you have more willpower left for when you DO need to fight a fight (say, friend offers a beer after work).

Self control takes willpower. Willpower is a finite resource (you can find studies on it. This is why after a hard day of work you are more likely to say screw it and eat an extra cookie). You just saved having to use a little bit of willpower each day. Which means you will have MORE willpower to spend on other things, not less.

<comment><USER12> I realise that I might be off an a tangent but this is a not a good analogy. If I were an alcoholic, I would rush off to the nearest drug store and get a fuckin' beer. I would not even own a fridge. :)

A book that has personally helped me is Kick the Drink....Easily! The idea is that there is no such thing as will power. The more you fight it, the more the psychological crutches grow, and then its difficult to jump off.

What the upper thread mentions is very true for porn addicts. They do this all the time. Program the router to shut off at certain times. Does it work? I doubt it.

Distraction is a very real thing. Hell, distraction is recommended as an aid for anxiety disorder :)

Get distracted, be human. Get back to work.

<comment><USER19> I respectfully disagree.

My vice is cookies. Cookies in house, I eat entire bag. Do not buy, I do not rush out to the grocery store at 11pm to buy. The high is low enough that the extra work is not worth it. So by setting that barrier high enough, it stops me from eating cookies, and I lose weight.

</comment></comment></comment></comment><comment><USER20> Super nice idea. I remember when I was very young and the Internet was also young, maybe just two, three years, I experienced something strange. In this time we still used US-Robotics 56k modems to connect to the Internet. When I was offline my computer felt dead. Worthless. Useless. Only when I was online my computer felt right and I felt good.

You have to imagine that I loved my self-built PCs even before the Internet came. I spent so much time with them, upgrading them, spent night and day installing and trying new software, stuff like Sierra and Lucasfilm Adventures, Clipper/dBase, Turbo Pascal, QuarkXPress, Corel Draw, saving for hardware such as PostScript laser printers, AdLib later Soundblaster soundcarfd, SyQuest harddrives, flatbed scanners, all the typical stuff. And once the Internet came an offline computer felt like a dead computer.

<comment><USER21> I remember talking to somebody about this ages ago. I said exactly the same thing, a computer that is offline is of no use to me. Like a big expensive paperweight. That was also back in dial-up times with a 64k connection... (We had ISDN back then and i felt like a king when i discovered you could use both of our Channel Sand double the download speed! I was also pretty young back then...)

The thing is, we didn't even have internet access at home that long at that point. The transformation of my computer from a box of wonder without any connection, which i could spend hours in front of, to a mere gateway to the net, which seemed useless without connection, was very rapid and basically hasn't reverted to this day.

Needless to say i'm a pretty heavy internet user and smartphones with mobile connectivity have definitly taken that to another level. And i can't say that my attention span has benfited from that... These days I try to use the web less and get back to offline activities like reading books again.

</comment></comment><comment><USER22> Well done, I had the urge to google the second most commonly spoken language while reading the article.

I turned my phone in some kind of a "dumb phone":

\- Deleted all games, news apps, basically all the apps I don't regulary need

\- Turned off email. It's still configured, I turn it on if I need to read an email

\- No push notifications at all

Next step: Turn off mobile data for browser and only activate it if I need to read something. I'm just not ready yet!

<comment><USER23> Next step: "dumb" phone.

Next step: no phone.

<comment><USER24> Sure, the smartphone is a great thing to take with you when something unpredictable happened and you're forced to wait 1/2/10 hourse, and you didn't take anything with you (a book, your computer, etc).

But how often does this happen, and how often, instead, does a smartphone distract from better tasks? How often I choose not to pick a book when leaving, because I've got the smartphone "just in case" ? Of course I have ebooks on it, but many times I waste time on facebook/HN/twitter/surfing. It's TOO EASY to get distracted.

<comment><USER25> Serious, non-snarky question: In what way is a book better than a link on Hacker News or Facebook?

The problem I see (and have yet to get a good answer for) with all of these extreme productivity tactics like shutting off all internet access is that carry a value judgment that older > newer, for all values of information absorption. It reminds me of how some of the financial advice for people in debt is to eschew all forms of credit and live on cash only. Which is fine until you need to buy a house...

If the problem is being distracted from the real world, and that's truly a negative, rather than filling dead time that couldn't really be used for anything else (waiting in line, etc), being absorbed in a book is functionally no different from being absorbed in a newsreader app. With that in mind, where and why is this value judgment coming from?

I see a poster upthread mentioning we've "forgotten how to be bored".

I don't know about people here, but I saw boredom as an awful state of mind even before the proliferation of smartphones. Could someone help me understand what the bigger picture here is?

<comment><USER26> One of the major underlying issues people are calling out with the indictments of "smartphone culture", and trying to fix by going offline, is a sort of progressive shrinkage of the attention span. It involves progressively less continual attention paid to progressively more individual topics or items; the (current) apotheosis of this paradigm might be Twitter, where you read a constant feed of conceptually disconnected 140-character messages, and any longer-form thought needs unnatural gyrations of the underlying technology to express. Web surfing, or news reading, encourages this style of interaction, with the surfeit of links away to tangentially-related content that is usually not of a form to encourage deep immersion in a single piece.

Books, meanwhile, are of a form to encourage deeper immersion in a single input. Generally speaking, the obvious mode of interaction is to read a single book from start to finish, taking at least hours during which you remain focused on that topic. This kind of long-term focus is required to actually accomplish anything; therefore, a mode of information absorption that trains long-term focus is more effective of personal cultivation than one which encourages mayfly attention-hopping.

Nothing about this necessarily disparages the Internet; it's quite possible to focus on long-form pieces that are Internet-published, or to hop from topic to topic using offline media. But because friction costs encourage longer-term focus when offline, going offline is one effective way to incentivize it.

</comment></comment></comment></comment></comment><comment><USER27> I love this line:

"Do your research online, but create offline."

A lot of times, I'm working on something and in the zone and then all of a sudden I see an iMessage notification and forget my thoughts almost instantly.

</comment><comment><USER28> How is this page implemented for Chrome? It looks like it is using service workers. Is there a tutorial?

EDIT: Tutorial for Chrome here: [https://developers.google.com/web/fundamentals/getting- start...](https://developers.google.com/web/fundamentals/getting- started/codelabs/offline/)

<comment><USER29> I have a question after skimming that tutorial. When I knew there was some content on a web page in the past, and it was being obscured by some css/js code, I would often just view source and search for some of the content I knew was there. I'm finding this harder to do sometimes.

So if I go to this page (Disconnect. Offline only) and view source, I see a link to a js file. No matter where I go with this, I can't find the content of the article. But it's somewhere on my system, isn't it?

Is there a way to use dev tools to see this content?

<comment><USER30> I'm not sure what you're asking. "View source" will only show you the "source" text of the HTML page as the server sent it to you. Since this page is built with React without server-side rendering, said source just contains an empty div where the content would go (the one with id="root").

If you mean you want to see the DOM tree that has been generated with JS after you've loaded the page, you can see it in the corresponding tab in your browser's devtools. Eg in Chrome that's the "Elements" tab.

If you mean you want to know how the page works when you're offline, the information is again in the JS. You can use your browser's devtools to prettify it (both Chrome and FF have this feature) and search for "Do you want to be productive?" to see the code.

The Service Worker is only involved in that it returns the page and JS from its cache. It's the JS that detects whether it's offline or online and renders different content on the page accordingly. [1]

[1]: [https://github.com/chrisbolin/react-detect- offline](https://github.com/chrisbolin/react-detect-offline)

<comment><USER29> That's really helpful, thank you. I have no real understanding of how React works, and your explanation helps me know what to look for.

</comment></comment></comment></comment><comment><USER31> Somewhat brilliant in that by forcing me offline I was distraction free in reading the piece. Basically it fostered an environment in which I was more likely to read to the end of the article

</comment><comment><USER32> y'all have been very kind. the productivity tips are very helpful. here's my system:

\- sit down at my desk with laptop and phone

\- disable wifi on my laptop

\- turn my phone face-down on the desk, muted, with wifi/data still on

This lets me check if I have any new messages via my phone, but it is a polling system vs an interrupt system. I have to opt in to check. And I am very aware that using my phone looks and feels less productive, so I try to avoid using it too long.

I've been able to be pretty productive (as an software engineer) with this system. I find that I have to reconnect on my laptop about every 30 minutes to do something or another. Of course, every day varies.

<comment><USER13> This is a very interesting idea. I do like the strategy of separating connectivity along the boundary of phone and workstation, and with the phone face down / muted to create space for yourself.

As for having to connect your workstation now and then, I can't help but think we all ought to be running parallel, sandboxed VMs, and then importing resources like internet connectivity from the connected VM, but with limited scope. (Who would have thought that something like Plan 9 could have also implemented these kind of productivity hacks, along with all of its other superior approaches to things....)

</comment></comment><comment><USER33> I am probably one of the few techies in the world that does not own/use a smartphone. Since 2011 I have used a cheap Verizon flip phone for exactly this reason; I want more control over my life. NOTHING is that important that I need to be plugged in 24/7\. My wife has a smart phone which is great for when we travel (maps, Yelp, Fandango, Uber, etc.) Don't get me wrong, I was standing in a long line outside the Apple store the day the first iPhone came out. However, over the years I came to realize that in order to have the amount/type of work/life balance I desired, technology would have to take a back seat to my relationships and interests outside of my career.

I haven't looked back.

<comment><USER34> This seems a bit disingenuous - you definitely still use a smartphone, you just claim to not directly own one. You essentially said this:

> My wife has a smart phone which is great for when [I want to use a > smartphone].

If you don't want to carry a smartphone around that's totally fine, but you definitely still use one. I carry a smartphone myself and only use internet- aware 'smartphone' features like maps, yelp and uber when I need to. I don't use social networks.

<comment><USER35> > This seems a bit disingenuous - you definitely still use a smartphone, you > just claim to not directly own one.

I think you're misreading the comment (or at least not acknowledging the degrees of use that the author seemed to intend to convey).

There's "using a smartphone", in the sense of using one to respond to messages quickly, having an entertainment device on hand for idle moments, and generally "[being] plugged in 24/7".

Then there's "using a smartphone", in the sense of being able to borrow one for a specific use, then giving it back to the owner. The difference in usage patterns us the distinction that was being made.

<comment><USER34> To say "I don't use a smartphone" in order to qualify how disconnected you choose to be is dishonest if what you really mean is, "I don't use a smartphone for [some really specific context]." or perhaps "I don't use a smartphone because I lack discipline regarding notifications/social apps/etc."

Using maps/yelp/fandango/uber covers a majority of the functionality that a smartphone provides.

<comment><USER35> > Using maps/yelp/fandango/uber covers a majority of the functionality that a > smartphone provides.

What? That's a minority of my use.

Saying that the comment is dishonest or disingenuous implies that you think there was an intent to deceive, and I don't think there was any such intention. I'd say that you're taking an unusually and unnecessarily rigid interpretation of what was said and possibly ascribing deception where none exists.

Humans are imprecise. Natural language is imprecise. What ever happened to allowing some leeway for imprecision and even inaccuracy in a casually-written piece of text?

<comment><USER34> > What? That's a minority of my use.

I said functionality, not usage.

If we're having a discussion and not caring about being imprecise or inaccurate then we should all just stop wasting our time on this discussion.

Cheers

</comment></comment></comment></comment></comment></comment><comment><USER36> On old Nokia phones you could create profiles, like "work" and "weekend" and configure it's possible functions and also distractions.

I figure there's something like that for android but on iOS you can only put on: do not disturb. It works though.

</comment><comment><USER37> Using a WP7 device has really forced me to come to terms with all the online cruft and clutter I look at all day. When I only have email, calls and text, I really do seem to see a lot more in life.

</comment><comment><USER38> This article seems to discuss similar stuff to The Shallows [https://www.amazon.co.uk/Shallows-internet-changing-think- re...](https://www.amazon.co.uk/Shallows-internet-changing-think- remember/dp/1848872275)

</comment><comment><USER39> Doesn't work on FreeBSD/firefox? First I put interface down, so no network access, second try I physically pulled cable out. Nothing happens.

<comment><USER40> As a workaround, run this: window.dispatchEvent(new Event('offline'))

<comment><USER39> That worked, thanks.

</comment></comment></comment><comment><USER41> to me, using cron to disconnect my internet every half an hour just to remind me to break the loop has been immensely helpful. And annoying. But mostly helpful.

My brain switched to offline mode has about three times better focus.

Similarly to this, I'm using my browser in full-screen mode most of the time to eliminate distractions. It was very surprising to me, how big an effect it has, to not see the tabs.

<comment><USER32> a cron job to disconnect - love it! do you use the break to get up and stretch, too?

<comment><USER41> Most of the time, yes. But if you wanted a break from PC instead of internet, I can recommend workrave, it's built exactly for this purpose.

Cron job mostly serves to remind me to use internet as a tool, not as something that is constantly on. Building this awareness of how I am using it is immensely helpful.

</comment></comment></comment><comment><USER42> If you are, like me, interested in reading the post but do not want to get offline:

> window.dispatchEvent( new Event( "offline" ) );

<comment><USER43> The real mvp is always in the comments

</comment></comment><comment><USER44> The point about chasing links in articles is interesting to me. One of my favorite activities is loading articles up in Pocket for all-but-offline reading and Pocket's Listen feature, which uses Android's text-to-speech (?), to listen to articles.

The point about articles being written differently according to whether the author expects that the article will be read offline or not interests me, though, especially if a decent amount of background/context provision is outsourced via providing a link to documents that cover such material.

</comment><comment><USER45> In Firefox, just use Alt-F to open the File menu, and check "work offline" to view this page.

</comment><comment><USER46> I use an iOS app called Freedom to disconnect. I can block the entire Internet (excluding iMessage and FaceTime) or a list of sites (social media, news, etc) for a period of time. This way I can still contact people, but cannot browse idly.

Is it a crutch? Sure, but crutches work. If you were dealing with alcoholism, the best thing you could do would be to remove your ability to easily access alcohol.

</comment><comment><USER47> My phone bricked a week and a half ago and I've been using a phone I walked into a lake on accident two years ago that still completely works except for cell service, so it only updates when I'm connected to Wifi now. I also have google voice number, so my texting works from that phone as well, but again only where there's Wifi.

I'm going to make a claim, pay a deductible, and get a new proper phone at some point, but I've been a bit lazy and delaying it a bit because it hasn't been too bad going without.

Although I did have one bad experience since it happened (almost immediately after). My car's battery died and it required me walking for almost an hour next to a dangerous street to get to some place that had Wifi and sort out getting my car towed and being able to open Uber to have someone pick me up.

</comment><comment><USER48> It really does require a lot of discipline to stay focused nowadays. In my personal life I'm terrible at it. I wish I read more, like I did before the Internet are my life.

But at work, I HAVE to be disciplined. I start my day with 1 hour of communications catch-up, including stand-ups and slack. Then I turn off slack, and get to work. My phone is set to do not disturb automatically starting at 10am. I check messages when I'm on a break, going to the bathroom, on lunch, etc... But the messages are never allowed to interrupt me.

Works for me, at least.

</comment><comment><USER49> in your console put

> window.dispatchEvent(new Event("offline"))

<comment><USER50> This worked for me

</comment></comment><comment><USER51> I just created a new location on my MacBook's network settings, called it 'getitdoneland', and removed all the network services from it. Now my laptop has an 'airplane mode'. Thankfully, it takes just enough seconds for connectivity to return when I switch back to my regular location that I think I'll be dissuaded from distraction. Friction is good sometimes. Back to work...

</comment><comment><USER52> For those that don't want to, and 'miss the point'. View source and go to the .JS file

The text of the off-line site is about a third of the way down.

<comment><USER53> Or chrome dev tools -> toggle device toolbar on -> switch "Online" to "Offline".

Or run in your console: window.dispatchEvent(new Event('offline'))

<comment><USER54> Yup exactly what I did :D

</comment></comment></comment><comment><USER55> Console -> Network -> Offline [x] also works.

</comment><comment><USER56> Totally agree. Unfortunately, 90% of my work is development in a SaaS platform, so getting anything done will require my device to remain online.

Does anyone know of a Chrome Plugin/hack that might block all but a few web pages? Then I can enjoy the silence of working without distractions while still plugging into the application that I'm working with.

<comment><USER57> This is what you're looking for. Blocks everything except whitelisted sites:

[https://chrome.google.com/webstore/detail/whitelist- manager/...](https://chrome.google.com/webstore/detail/whitelist- manager/pocjkchlmhkjafdpmkklknmjhokobgmh?hl=en)

</comment></comment><comment><USER58> I would love to work offline. But my work involves constant use of a commercial software that won't run without a license check connection to its central license server.

edit: just occurred to me. I should try to script my connectivity, so the connection is established just before the software is used, and terminated soon after. Looking into it.

<comment><USER35> > But my work involves constant use of a commercial software that won't run > without a license check to its central license server.

Through your own choice, or something imposed on you by an employer or circumstance?

<comment><USER58> Circumstance. I'm under a bit of a deadline, and the software is complex enough that creating an open source version of it would take me a couple years, or more, of domain learning and s/w design and implementation (and of course I would need to be funded during that time).

</comment></comment></comment><comment><USER59> Doesn't work at all for me on Linux Chrome, Linux Firefox, Windows Firefox, or Windows Chrome.

Is it a joke? Or just poor tradecraft?

<comment><USER35> Doesn't work for me because my work internet blocked some Javascript that's necessary to fetch the post. I end up with a blank white screen. Apparently, other people are able to read it though.

<comment><USER35> Also: When used on a mobile device, it does something to detect whether the device is in airplane mode. It refuses to display the text of the article until it is.

<comment><USER59> I got it working on mobile, too. I don't get why he choose such a nom-standard way of doing it.

</comment></comment></comment></comment><comment><USER60> Personally just knowing that wasn't of much help, so I made a simple application to help me stay disconnected [https://github.com/mistnim/coin-op- web](https://github.com/mistnim/coin-op-web)

</comment><comment><USER61> What is the bounce rate on your page?

</comment><comment><USER62> The irony was that I was unable to upvote this well written post since I was in airplane mode.

</comment><comment><USER63> Au contraire, mon ami: javascript:window.dispatchEvent(new Event('offline'))

</comment><comment><USER64> Would be great if the website worked. Went offline and nothing happened.

<comment><USER65> (for chrome) open devtools, network tab, tick the offline mode box :)

</comment></comment><comment><USER66> The page is not working in Safari for me. I was struggling for a bit to understand that.

</comment><comment><USER67> With Firefox reader view do event listeners still work?

If so it'd be nice to have an extension or option that goes into offline mode when reader view is triggered.

</comment><comment><USER68> Thanks for that `window.dispatchEvent(new Event('offline'))` option though.

I had to be online and read the article at the same time :P

</comment><comment><USER69> Hmm, in Chromium developer tools, in the Network tab, I set throttling to "Offline", but nothing happened in the page.

<comment><USER70> It listens to the online and offline events (using [https://github.com/chrisbolin/react-detect- offline](https://github.com/chrisbolin/react-detect-offline) which is really cool). You really have to turn off your network connection.

Or fire the event yourself using window.dispatchEvent(new Event('offline'))

</comment></comment><comment><USER71> Ctrl+Shift+I on Chrome opens developer tools. There is an "offline" checkbox you can click.

<comment><USER72> or simply, in your browser's console, enter `window.dispatchEvent(new Event('offline'))`

</comment></comment><comment><USER73> This is too good. We should really re-think how life should be.

</comment><comment><USER74> dispatchEvent(new Event('offline'))

</comment><comment><USER75> Don't blame the internet, numerous sources of distractions existed long before. If you are easily distracted, the real cause lies elsewhere.

</comment><comment><USER76> The article won't load for me.

<comment><USER77> Same for me. Chrome (stable) on Fedora Linux. I flipped the wired connection switch in NetworkManager and nothing happened. Maybe Chrome on Linux doesn't fire "offline"?

</comment></comment><comment><USER78> Very cool</comment>


ARM's latest processors are designed for mobile AI - <AUTHOR> https://www.engadget.com/2018/02/13/arm-machine-learning-processors/ <comment><USER2> So... does this mean an A11 Bionic competitor? This are great news!</comment>


What the coronavirus forcing me into lockdown's taught me about cooking - <AUTHOR> https://www.reddit.com/r/Cooking/comments/f0qjm9/what_the_coronavirus_forcing_me_in_lockdowns/ <comment><AUTHOR> This is probably the most interesting thing I've read since the outbreak started; it's a really fantastic read. I think it gives a more authentic look at what's actually happening in China compared to the average news outlet's columns on it, _plus_ it goes into some really fascinating things on cooking. (The cooking is the main highlight, so maybe I got the order of that list reversed.)

<comment><USER2> Whoa, you weren't kidding. I was prepared for a low-effort Medium post given the formula "what a slight variation on trend X taught me about topic Y".

Instead, this is by turns an essay about: Chinese life under effective lockdown, the nature of creativity, the history of food, and actual recipes. And it does all of those things well!</comment></comment>


How Silicon Valley is falling behind Seoul - <AUTHOR> http://www.nytimes.com/2015/06/07/magazine/what-silicon-valley-can-learn-from-seoul.html?hp&action=click&pgtype=Homepage&module=mini-moth&region=top-stories-below&WT.nav=top-stories-below

<comment><AUTHOR> This provides a really interesting perspective on how the tech community can't be insular if it expects to succeed globally. The public works and infrastructure projects taken on by Seoul have expanded the possibility in design and development. While I love my Scandanavian minimalist design, it might, as this article says, have been a product of our limitations rather than taste.</comment>


Announcing Homer - <AUTHOR> http://blog.phonehomer.com/post/92779194365/announcing-homer

<comment><USER2> An angle for this could be a Show HN / Product Hunt for trendy new mobile apps.</comment>


Ask HN: Which Shift key do you primarily use? - <AUTHOR>

I just realized that I never use the right Shift key. Always the left. Do any of you primarily use the right Shift key? <comment><USER2> Left mostly due to gaming and mouse usage. Right does see some usage though. For example: when I don't have two hands on the keyboard; for Shift + Enter and Shift + Delete. It's a shame that Whatpulse can't tell the difference between left and right otherwise I would post the counts for both.

As an aside, it doesn't even recognise my shift key so I wrote a little utility to read its key frequencies file and print the data to the console. That tells me:

> Key 0x10: Shift, count 53170

</comment><comment><USER3> This was a more interesting question than I thought at first. I looked at my keyboard, and I see equal wear on both keys. I tried typing the first sentence using Title Case, and I find that I use the pinky of the opposite hand that's typing to make capital letters. I've never thought the right shift key is "far away" at all.

</comment><comment><USER4> I was going to say that I prefer the left shift key... but while writing this comment, I realized I'm using the right shift key.

(I'm right-handed and anchor my right pinky on the shift key. Somewhere, a typing tutor screams in horror. I use the left control key exclusively.)

</comment><comment><USER5> If you type properly using both your hands, you should use both of them almost equally. That's what I do. Use the left shift key for keys pressed by your right hands, and right shift key for keys pressed by your left.

</comment><comment><USER6> Heh. Here's some previous data: <http://news.ycombinator.com/item?id=486317>

</comment><comment><USER7> I always use the left shift. And instinctively use my left ring finger if I need an uppercase Q, A, or Z. The right shift is just too far away.

</comment><comment><USER8> Left, I don't think i've ever used the right shift key. I'm right handed, if that means anything. Maybe lefties use the right shift key?

<comment><USER9> I always use the left shift, and like you I never touch the right. But I'm a lefty...

</comment></comment><comment><USER10> Right shift for using uppercase letters and symbols, left shift for selecting text and for some key combinations.</comment>


Has Google Bribed TechCrunch? (90% of stories on front page about Google) - <AUTHOR> https://techcrunch.com/ <comment><USER2> No, when Google IO takes place tech crunch is going to report on everything that is announced.

<comment><USER3> direct link: [https://events.google.com/io/](https://events.google.com/io/)</comment></comment>


Who Does Colin Wright Use - <AUTHOR> http://whodoyouuse.feint.me/post/2743105927/who-does-colin-wright-use

<comment><USER2> Spooky! I feel an "I'm Spartacus!" moment coming on ...

No, I'm not the Colin Wright referenced, I'm a different Colin Wright altogether.

</comment><comment><USER3> Interesting. Have you considered having links on the page to the equivalent items for other people?

<comment><USER4> <http://usesthis.com/>

</comment></comment><comment><USER5> I don't know about this dude. "living the happiest (and therefore philosophically aligned) life you can"

Living philosophically aligned will not necessarily make you happy. Sometimes deontic action sucks. hard.

<comment><USER6> Not all philosophies recognize deontics as either real or necessary. At least not in the notion of "obligatory" actions; most do recognize permitted and forbidden actions.</comment></comment>


Becoming a Professor - <AUTHOR> https://joi.ito.com/weblog/2016/06/02/becoming-a-prof.html <comment><USER2> His media lab bio:

Joichi "Joi" Ito has been recognized for his work as an activist, entrepreneur, venture capitalist, and advocate of emergent democracy, privacy, and Internet freedom. As director of the MIT Media Lab, he is currently exploring how radical new approaches to science and technology can transform society in substantial and positive ways. Soon after coming to MIT, Ito introduced mindfulness meditation training to the Media Lab. Together with The Venerable Tenzin Priyadarshi, founding director of The Dalai Lama Center for Ethics and Transformative Values at MIT, Ito is promoting the contribution that awareness and focus can bring to the creativity process.

Ito has served as both board chair and CEO of Creative Commons, and sits on the boards of Sony Corporation, Knight Foundation, the John D. and Catherine T. MacArthur Foundation, and The New York Times Company. In Japan, he is executive researcher of KEIO SFC, and he was a founder of Digital Garage, and helped establish and later became CEO of the country's first commercial Internet service provider. He was an early investor in numerous companies, including Flickr, Six Apart, Last.fm, littleBits, Formlabs, Kickstarter, and Twitter.

Ito's honors include TIME magazine's "Cyber-Elite" listing in 1997 (at age 31) and selection as one of the "Global Leaders for Tomorrow" by the World Economic Forum (2001). In 2008, BusinessWeek named him one of the "25 Most Influential People on the Web." In 2011, he received the Lifetime Achievement Award from the Oxford Internet Institute. In 2013, he received an honorary D.Litt from The New School in New York City, and in 2015 an honorary Doctor of Humane Letters degree from Tufts University. In 2014, he was inducted into the SXSW Interactive Hall of Fame; also In 2014, he was one of the recipients of the Golden Plate award from the Academy of Achievement.

</comment><comment><USER3> From the NYT article in 2011:

"The choice is radical, but brilliant," said Larry Smarr, director of the California Institute for Telecommunications and Information Technology, a University of California laboratory that pursues a similar research agenda to the Media Laboratory. "He can position the lab at the edge of change and propel it for a decade."

Mr. Ito's appointment comes at a time when the Media Lab, as well as other information technology research centers, have struggled to reclaim the financing levels that were characteristic of the era of the dot-com boom. Although the lab gets the bulk of its $35 million annual budget from corporate and government sponsors, that amount has declined measurably as a percentage of the overall budget during the last decade, Dr. Negroponte said.

"Funding got tight in 2002 and even tighter in the last economic downturn," he said. That has made fund-raising the highest priority for the new director, he said. However, he added that Mr. Ito's particular leadership qualities made him stand out among the 250 candidates who were considered for the position.

"Joi is very good at enabling others," he said. "I've never met a 44-year-old who is able to enable others in this way. Most people who are at that age are into themselves and their career."

L. Rafael Reif, the provost of M.I.T., called Mr. Ito "the right person to lead the Media Lab today," describing him as "an innovative thinker who understands the tremendous potential of technology and, in particular, the Internet, to influence education, business, and society in general."

Mr. Ito's colleagues minimize the fact that he is without academic credentials. "He has credibility in an academic context," said Lawrence Lessig, a professor at Harvard Law School who co-founded Creative Commons. Mr. Ito is currently chairman. "We've been collaborators, and I've stolen many ideas from him and turned them into my own."

The Media Lab will benefit from a director who has Mr. Ito's global connections, said John Seely Brown, former director of Xerox's Palo Alto Research Center. "What they really need right now is to have a two-way connection to the outside world. Who more to do that than Joi?"

[http://www.nytimes.com/2011/04/26/science/26lab.html](http://www.nytimes.com/2011/04/26/science/26lab.html)

</comment><comment><USER4> Wow for an institution like MIT to offer a professorship to someone so clearly uncrdentialed sends a horrible signal to faculty and students. I will not talk about this persons lack of credentials because apparently that's a personal attack but I will say that academia and professorsship has everything to do with the philosophy of a subject not just its practice. I would never hire a surgeon who never went to medical school or a rocket scientist who didn't have a phD. Maybe they've achieved knowledge outside of academia, if that's the case that's where they should practice there skills, but to now have them share that unique and disorganized philosophy with students trying to learn structurally is unfair to the hard work and sacrifice those students have made to be able to get to MIT in the first place. They've earned the right to be taught and mentored by someone who has taken the same path they have and put in the time and admirable effort to study their subject academically.

Our prestigious universities like MIT are institutions that are aspirational to so many. Those who have taken the long and arduous path from student to researcher and then professors deserve the fruits of there labor. This is a slap in the face to so many people who have dedicated their lives to the advancement of knowledge.

<comment><USER5> It's also a pretty big insult to say that Ito doesn't deserve the job solely because he doesn't meet a cookie cutter list of credentials. MITs Media Lab is an amazing position and there is no way in hell they would've given the position to someone that doesn't wholey deserve it. Just look at the appointment of the head researcher for YC basic income project. New PhD student chosen over tenured professors from great institutions. Obviously, not everyone is the exception, but some people have qualities that aren't going to be noticed by someone reading an Internet article.

This sends a signal to students in the same way bill Gates sends a signal to students saying "drop out and you'll become a billionaire." you'd be an idiot to try and exactly replicate the unconventional paths of certain successful individuals. Do you _really_ think just because he didn't follow the same path he can't help students ? Do you really think he doesn't bring things to the table that others don't? Do you really think he will stop students from getting what you mention from, I don't know, everyone else who went through the same path? Give me a break.</comment></comment>


Ask HN: Stock for cloud space, would you do it? - <AUTHOR> I was thinking what if cloud storage companies traded cloud space for stock. If you were a small team and you were looking for a stop gap for a viral app/website between >$500/mo storage bills and big enough to get funded.  It would be a good way for a cloud company to win business/get lock in on potential great future customer. what do you think would you do it if they offered. <comment><USER2> I think this would be more work than it's worth. Legal overhead + the likelihood of the stock being worth anything for a low possibility of future revenue seems like a losing proposition.

They'd be better off focusing resources on their core competency and giving the cloud services away for free (up to a point). See the Microsoft BizSpark program for an example of this.</comment>


Pastenib: The friendly Pastebin alternative - <AUTHOR> Hey,
Today I launched pastenib.com - Designed to be an alternative for other pastebins due to it having fewer restrictions, such as: UNLIMITED paste sizes. Seriously. No captchas. No tracking, profiling, or adverts. Robot friendly: feel free to use Pastenib as a place for your IOT application to dump stuff. Ultra-simple to use and optimized for speed.
Basically, it's like every other Pastebin site out there, but without being unfair to the users. On pastenib, you can just paste your content and let us worry about everything else.
http://pastenib.com <comment><USER2> How do you intend to deal with preventing your service from being used as C&C for Malware/Bots? With no protection you'll likely get taken down by OVH pretty quickly.

<comment><AUTHOR> Firstly, we have a redundant server for if OVH does decide to take us down, OVH was basically just our starting point.

Secondly, we'll happily deal with any legal requests that get sent to us (will be adding an email address and a report form later today/early tomorrow). However, we're not just going to remove things on a whim like the other sites out there.

Thanks for the question.</comment></comment>


Firefox: browser ballot glitch cost us 9m downloads - <AUTHOR> http://www.pcpro.co.uk/news/377878/firefox-browser-ballot-glitch-cost-us-9m-downloads

<comment><USER2> I am quite surprised that this "glitch" ever happened. I am usually no friend of conspiracy theories, but I find the following coincidence a bit tasty:

* Microsoft is known for its obsession with rigorous testing.

* They had to pay around a billion for anticompetitive behaviour _and_ implement the "browser ballot". Failure to comply would cost them up to 10% of the annual turnover.

* There was a "glitch" that deactivated the ballot for 15 (!) months for a full service pack.

<comment><USER3> Do you really think that Microsoft would...

1) Pretend that no one would notice.

2) Do a risk to reward analysis, where they would gladly pay out 7 billion dollars if caught (over a few million extra IE installs).

3) Implement a fix within one day after notice, and offer to extend this ballot on their brand new OS for another 15 months.

The simpler explanation is that due to the nature of the ballot, their test Suite did not include the browser ballot in it, and was delegated to someone in the legal department that filed if away and forgot about it.

This ONLY affected 28 million PCs. That's a very small fraction of the user- base. And considering IE's market share, this bug would have only caused less than 1/2 of that number of non-installs of other-browsers... As afterwards, anyone could have just downloaded what they were looking for anyways.

 _Also note that for 15 months NO ONE (well, just a few people apparently) contacted MS or the EU Commission about not seeing the browser ballot._ I guess the browser ballot is as important as you might think it is to the people of EU.

<comment><USER2> I didn't say that they did it on purpose. My point is that this is incredibly stupid, especially for an organisation of that size and the projected fine. Yes, we usually don't test for edge cases, but the 7 billion edge-case? So how was this allowed happen?

Also, I don't think that this was not reported for 15 months. The problem only became widely known after the EU actually decided for a formal investigation. I found no coverage about when the problem was reported.

The 28 million-number is rather irrelevant, as the news coverage states that all of windows 7 SP 1 was affected, so they failed at a major release level. It wasn't 2% of the release or something. This could even have been cought by manual testing.

I don't care how important the ballot is in the real world (for the record: I hate the ruling). But this is one of the biggest companies in the world failing to comply with a pretty clear rule that came out of the most expensive ruling ever dropped on them.

<comment><USER3> My fault. I completely misread your comment.

<comment><USER2> My fault as well, I didn't make clear that I did not actually believe that, but that the coincidence really lends itself to one.

</comment></comment></comment></comment></comment><comment><USER4> The article's headline is inaccurate. From Harvey Anderson's blog post ([http://lockshot.wordpress.com/2012/10/30/windows-eu- ballot-s...](http://lockshot.wordpress.com/2012/10/30/windows-eu-ballot- screen-technical-glitch/)): "Cumulatively 6 to 9 million Firefox browser downloads were lost during this period."

<comment><USER5> The graph on lockshot shows 8.7m. I assume the author of the pcpro article just rounded up. I'm not saying the author _should_ have rounded up, because she shouldn't have. Journalists should strive for accuracy in paraphrasing the words of their subject. I wouldn't necessarily call it inaccurate though, since it falls within what Harvey estimates as well. I'd rather call it slightly overzealous reporting.

<comment><USER6> Rounding from 8.7 to 9 is perfectly acceptable, especially with something that's an estimate to begin with.

</comment></comment></comment><comment><USER3> Why does that graph show world-wide downloads? Shouldn't it instead show EU downloads only to give an accurate account of the effects of the glitch?

</comment><comment><USER7> It took 15 months for this to come to light?

A more cynical person might say this proves the silliness of the whole "browser ballot" concept.

</comment><comment><USER8> I can't help but question whether some of the higher download volume in 2012 was due to the new rapid release cycle rather than the browser ballot being implemented.

</comment><comment><USER9> Fair enough this will no doubt prove to be a costly mistake for Microsoft, but I seriously doubt the drop in Firefox downloads is due to Microsoft not implementing the browser ballot and most likely due to the fact that Chrome is a better browser and Firefox were slow to address plugin memory leak issues (which they only just recently fixed).

<comment><USER9> Why the downvotes?</comment></comment>