Ps. Cool stuff
Our particular domain is edible insects; we wrote this article about why entrepreneurs should get involved:
Conclusion? There's going to be a lot of energetic, healthy people with time on their hands -- even more than at present. So there will be many future opportunities in the areas of entertainment, computer games and travel.
Also, on the medical front, because psychiatry and psychology are in the midst of a historic meltdown, in the future society will increasingly look to neuroscience for guidance about the issues that psychiatrists and psychologists are mishandling right now. My favorite example showing what the possibilities may be, is the story of a severely depressed woman who didn't respond to the available anti-depression drugs and was finally institutionalized, her life essentially over.
But a new procedure has come out of brain research (not mind research) called deep brain stimulation, that shows great promise for addressing depression's cause, rather than its symptoms (the present treatment approach).
In this specific case, after electrodes were put in place, the neurosurgeon threw a switch that began stimulation of a location of present neurological research called "area 25" that seems to play a role in depression. The woman's depression lifted instantly -- instantly -- something that no other treatment had been able to accomplish.
This is still very experimental, and the procedure is still too risky for everyday use, but if it matures and is made safe, it will revolutionize the treatment of depression. It will also accelerate the present trend away from psychiatry and psychology toward neuroscience.
Presumably, the ultimate propulsion will be nuclear-boiled water ejected out of a nozzle as steam. I suppose you could do something similar with other low molecular weight (stable bonds), low atomic weight (plentiful in post-stellar debris) fluids, but water's on a sweet spot in terms of caloric density. Hydrocarbons would probably be good, so I suppose you could mine the atmospheres of the gas giants for those. Interstellar travel will involve strapping a reactor to a large iceberg lassoed from the Ort belt and accelerating for one half of the trip, then decelerating for the other half.
Space travel will require space mining (uranium, water, gold, titanium, lithium, etc)
Think of all the things involved: mining equipment, (robots) depots, transport, refueling stations, distribution. SpaceX has already shown vast industries are going to be largely robotic. But people will go to the same places as the mining, because something will always go wrong with something, and those will be the well-developed trade routes.
Those people will have all the same issues they have here. Governance, gambling, hepatitis, surgery. But there will be new issues as well. There will likely be founder effect: segments of humanity will venture off to planets many light years away. It will take decades to get there. How do you maintain the concept of "humanity" if they land on a planet with slightly more gravity, slightly colder, slightly less oxygen, so everyone becomes what we would consider a furry dwarf with an IQ of 170?
Synthetic genomics will be big in all sorts of ways, some related to the founder effects of space travel.
We will not travel faster than the speed of light and hibernation is a fiction. Our bodies just aren't made for that. I think this is a thing people haven't started really planning for very well. Interstellar travel is going to involve very large vessels.
but once we do Mars and the asteroid belt, there's not much left in this system.
I say this because if you look at the last ten years, the rate of births in the age ranges of < 18, 18-35 have been decreasing while the age of women getting pregnant in the 35+ range has been increasing.
The birth rate of the United States is only as high as is now largely because of the immigrant population.
As more women in developed countries choose to have careers and go through higher education, the median age of pregnancies will continue to rise.
An aging industry, small margins for the older economic structure of small/medium holdings, little existing use of new technologies at scale.
As the industry demographic shifts and as 'new' technologies such as drones, robotics, remote sensing, pervasive wireless data, vat-grown meat and mixed land/marine farming are adopted there will be a lot of money to be made feeding the world.
You can produce fully custom chips now but at any reasonable cost you have to use decade-old gate sizes making it hard to compete with general purpose parts. The lack of a busy market feeds back into itself making every step of the process more tricky and expensive than it needs to be.
Imagine the change from massive recording studio engineering to 'a laptop with pro tools' only in silicon instead of music.
Health, Space, Robotics and Food imho.
Health, to produce better treatments agaisnt sickness, cure for cancer and other applications like regenerative i guess will be the ones who will coin a lot of dollars, specially from labs.
Space and robotics to produce better transportation, manufacturing and other hardware potential advancements.
Food. The food industry will work for sure o new sintetic food, to mass produce as well to produce safe transgenic meat.
I'm with a startup called PetroFeed and we're looking to tap into the huge potential in the industry. Most startups in the O&G industry are concerned with building better drilling technologies, or finding new resource pockets; leaving lots of room for companies like ours. ;)
99.99% of online educational videos suck. For example, watching the video is so painful that all I can think about is "how do I get out of here?". (Possibly I am spoiled from watching too many popular vlogs on YouTube.)
The other 0.01% of online educational videos that don't suck prove that it is possible to make such videos. The best examples I can find are RailsCasts and "Math Antics" (the first is for grownups, the second is aimed more at children, but I would watch something like Math Antics that had more advanced content).
Self-treatments on demand: someday, you wont need to go in a doctor office for diagnoses, medical check-ups and treatments.
Marijuana, online privacy, personal defense weapons, batteries, patent law.
Ocean mining, fuel and energy, long-distance wireless communications, medicines, education.
Space travel - I'd love to predict fortunes in it, but it's still a wildcard and a dream.
Artificial/in vitro food
With county budgets being stressed and more areas considering converting paved roads to gravel roads, any kind of delivery system that can avoid roads will be a benefit.
-Transportation (if you can find a way to decrease fuel costs)
-Disruptive medicine (traditional drug companies will be making less and less money, but companies that develop cheaper cures to common world-wide ailments will be extremely successful)
Basically, things that are necessities for living. Media/entertainment will become an increasingly zero-sum game.
Much the home will be automated, includes search and storage and cleaning. It will get smaller, lose the need for a garage, and be easier to lease out, reconfigure, move, replicate.
Education, Medicine, Law, Jobs, Banking, Sins (Most already there), Importation (3d printers).
"Space is where the first trillionaires will be made"
I think google is years ahead of everyone else here, and it will be a product that will be high price, high margin. And the market is huge.
I really don't see how google could walk away from that one without gobs of cash in their pockets.
Fulfillment will be a place for fortunes to be made, as it always has been. Amazon has been executing exceedingly well in this area but it's not as though everyone else has been sitting on their ass. Over the next decades the sort of smart, high-tech, low latency fulfillment that we've come to associate with Amazon will be the worldwide standard anywhere and everywhere. Also look for infrastructural improvements along those lines. It used to be that people had visions of pneumatic tubes running everywhere. But consider some variations on that theme, a fully automated delivery system that could route standard sized containers across cities, continents, or maybe even the world. Maybe autonomous vehicles could play into that, but it seems as though building custom infrastructure would also provide a substantial RoI. Imagine how different the world would be if every housing structure had a 1m^3 "mail box" that you could receive packages in or send packages from which would immediately deliver them anywhere in the system 24/7 without human intervention. Economics changes a lot, consumerism changes a lot, industry changes a lot, and so on.
Fully automated manufacturing and configurable manufacturing. These may not replace all manufacturing but they seem likely to me to become a "big deal", and people will make a lot of money off them. Imagine if you could go to a web page upload a bunch of plans (3D models, wiring diagrams, etc.) and place an order for a factory to manufacture something you've designed. This is more than just the home manufacturing (3D printing et al) revolution, it's something on an entirely different scale. Imagine how this sort of thing would affect the cost of production of material goods. Imagine how it would affect the iteration speed as well. And think about how it would affect the mass production society we've grown accustomed to. What happens when a designer can produce a batch of a few hundred or a few thousand custom designed smartphones or what-have-you? Instead of everyone buying from a small pool of mass produced goods does the market change to focus more on boutique versions of such things? Do people start buying things that are more customized in functionality? What happens when you create factories that can effectively replicate themselves?
Education is slated to change dramatically over the next decades. Much of the world today lives in areas where formal education is not the norm. As those areas become developed there are education opportunities other than the traditional ones, especially when you consider the widespread abundance of computing devices in the future (see above). There is a huge market for learning software, on a multi-billion dollar per year scale, but a hell of a lot of work will have to go into creating all of that software to make it effective and practical.
Space will be big business too but that can be a bit hard to predict. Through the 21st century the cost of launching things into space will drop by at least a factor of 10 if not a factor of 100 or more. That will cause an exponential increase in the amount of stuff and people we put in orbit which will create substantial off-Earth economic activity which will gain momentum due to positive feedback effects. By 2100 I'd expect millions of people to be living off-Earth and trillions of dollars in revenue to be involved in off-Earth commerce and industry. This starts to get really interesting when you consider what sort of potential advantages building things in space might have. Obviously it makes it easier to test spacecraft, of course, since you have access to the environment they'll operate in right there. But there are also some other interesting aspects. Vacuum is abundant and easy to get at. As is zero-g or nearly any level of g-forces you desire. A lot of manufacturing processes would be very different if vacuum conditions were cheap and easy to get at.
But, I suggest that you initiate a local campaign to pressure Mercantile to make the process easier. Here are few ideas to consider -1. Bring this to the attention of Computer Association of Nepal2. Share this tragedy with tech-activists (Gaurab Raj Upadhyaya, Brijen Joshi, Bhupal Sapkota, Ankur Sharma, Akar Anil are few names that come to mind) and get their help raising the concern to the wider community (blogs, meetings etc)3. Meet with Mercantile management to make sure they are aware of the current hoops and communicate how backward the current process is. Also make sure they are not being asked to make it this way from govt. agencies. Offer help if they need it.4. Meet with government representatives and request them to facilitate the needed change.
Email me if you need intros to people I mentioned above or if there is anything else I could do.
Although, to spare yourself future problems, you could register nepalesefreedns.net and have people point nameservers for their .np domains to nsX.nepalesefreedns.net. Set up XName or a similar panel for it.
That way you will only have to endure the pain once. That is, until the registry breaks something else.
Not as bad as your problem but a mild annoyance nonetheless.
Would that be viable?
What also sucks is being asked for money to change name servers only:
.gr: 46.64 (74 USD) .cz: 14.57 .dk: 24.29 .hu: 17.49 .ro: 17.49
Here are my observations:
The Blackberry Vendor Portal.
1. App submissionAn absolutely dated interface for submitting applications. One thing that really upsets me is that Blackberry did not segregate the interface for pre-BB10 applications and BB10 applications. Throughout the submission process, I was constantly given the option to submit my Cascades/BB10 application as a pre-BB10 bundle. Even after I submitted my application as a BB10 application, I was given reports that someone had downloaded my application on their pre-BB10 device. How could this happen?
2. Viewing reportsAgain, a dated interface for viewing reports. Reports are only produced on-demand either as a ZIP file of CSVs or a static GIF that looks like it was exported with excel. I could imagine those who rely on BB apps as a source of income have written excel applications to process this data into a user-friendly format. Both iOS and Android have reports in beautiful charted format directly in their app portal.
3. Responding to usersI had a review on my applications in which the reviewer was requesting a feature. I did have this feature in my application, but due to a ux flaw, it was not easily recognizable. I would have loved to drop the user a comment notifying them of this feature. Regardless of denying/approving the review, I think this is a fantastic feature in the Android (Google Play) model.
iOS and Android app portals are built for the common developer. As they are built for the common consumer. Blackberry vendor portal is built for the enterprise, very much like their original phones.
4. I would consider myself a "Qt/QML expert", so from a programming standpoint, I find it much easier to convert complex UI designs into working code. This is thanks to the wonderful Cascades framework with QML syntax (originally built by The Astonishing Tribe, acquired by BB a few years ago). I think it's much easier to deploy code with BB compared to iOS/Android. This is of course dependent on the developer.
5. Blackberry, prior to releasing the Z10 in the US, released an "Application Generator". This generator converted RSS feeds into running, "native" applications for BB10. This flooded the BB10 app world with garbage applications. There are still hundreds of applications on the store that are blatant rip-offs of Android applications (search Maps on your Z10 and you will see several GMaps rebundles)
6. App services like advertisements and push notifications are still not up to par as iAd or Admob, and APNS.
-> It could mean "more working memory", in which case games of various kinds are helpful. Anything that requires maintaining a set of values or decisions in your head for a while: bridge & hearts (count cards) or poker, go (weiqi / baduk).
-> It could mean "more mindful", i.e., being more observant and aware of yourself and your surroundings. A lot of people today claim that meditation is good for this. I find that not owning a smartphone is helpful. Reading a hefty dead-tree book can be a good antidote for "Goldfish Attention Span Syndrome".
-> It could mean "better at reasoning", in which case some courses on philosophy would help (logic, epistemology).
-> It could mean "more domain expertise", in which case you should spend some time taking courses or experimenting in some area of expertise.
-> It could mean "broadening your experiences", in which case you should go out and start something completely new, preferably something which is a little bit intimidating.
-> It could mean "being more healthy", because poor sleep habits, poor nutrition, and poverty all effectively lower IQ and general intelligence. Fix some things in your life, get more exercise, learn to cook / eat better.
edit: get in touch with HN user tokenadult (https://news.ycombinator.com/user?id=tokenadult); he studies and works in the field of intelligence and education (and frequently writes very informative posts on the subject); I'm just a dabbler.
In general, these books are quick to read and act as a good launching point for a deep dive into any topics you find interesting.
Spend time around a lot of different people from different fields and always ask questions. They have alot to teach you, but you wont learn anything from them if you dont give them a chance to talk.
You'll be surprised how much stuff "ordinary people" know if you give them a chance to talk.
Do a lot of Math and calculus and try to solve complex coding problems.
Build things, release, get feedback and repeat. The experience will surely increase your intelligence understanding, awareness and your ability to recognise patterns.
Consume good media -- FoxNews is bad, MSNBC is bad. PBS Newshour is good, BBC is generally pretty good.
Don't spend your time on inconsequential things (this can be difficult to do -- e.g., news media is all about pandering and sensationalizing things, you'll see everyone partake in it and you'll find it difficult to stay out of it). I think a good way to keep yourself from getting sucked into that trap -- of keeping up with latest Miley Cyrus scandal or whatever, is to just stay away from the crowd that spends too much time on it. So no more Reddit frontpage (at least the default one), instead go to nytimes.com (or HN! :-) my favorite commenters are rayiner, tptacek, potatolicious, and some others -- reading their thoughts will probably do you good).
Keep on taking those coursera courses, do projects in areas that interest you. Along the way you'll start picking up more specific interests and feel compelled to explore specific directions. Hopefully then you can even become a community leader in some area... and then you can start showing the light to other guys newcomers in that area.
Have fun while you're doing all of this!
I mention this because I believe it'd be helpful for you to consider which of the two you want to improve in more. Knowledge can come from books and courses, like many people are recommending. I wish I knew how to become smart (perhaps if I was smart, I'd find a hack for it...), but I suspect it might help to get into the habit of questioning everything, and practicing lateral thinking. Perhaps it would also help to try and find abstract similarities between situations from very different contexts - often new insights can come from combining knowledge from different fields, and this will probably help you get used to seeing things in different contexts.
Considering the (no doubt intentional) vagueness of the question, I'm guessing you'd be interested in both. I think a good way to improve both at the same time is to often read, and then try and find something to read that says the opposite. That way you get a lot of knowledge, often from various sides, and it invites you to think about it more and question the assumptions.
I hope that helps.
I don't think it's improved my raw ability to think, but it definitely helps me step outside situations, think about thinking, and do meta-reasoning. Sometimes the best way to get more done is to think of a way to do less work :)
I'm an LSAT instructor. I'm convinced that for a couple of the sections the only way to become better is to improve how you think. No shortcuts.
Send me an email if you want some guidance on how to use the materials.
The types of books I'm looking for would include the Feynman Lectures, SICP, Art of Computer Programming, etc. What would be a good book series (preferably a classic one that's stood the test of time) on math (Algebra, various Calculus topics, Statistics, etc)? Principia Mathematica should go in here, but it would be nice to have something that includes modern notation. For general on-your-own in a cabin in the woods setting, I've been impressed with the topics covered in the Foxfire books. So what else? I'd like a good world history book, that ties in how everything is related to everything else (i.e, not just cover each civilization in isolation). Also, something covering Western and Eastern philosophy.
Remember that you are not your ideas or beliefs. At most those things are you at a specific point in time.
Being shown to be wrong about something does not make you a lesser or bad person. Merely wrong, and you can change that.
1) How rewarding and enjoyful you find learning new things. I don't mean learning pi to one 1000 digits, but higher level concepts like learning macroeconomics.
2) Generally enjoying thinking.
3) Being a perfectionist. For example, when I see some corner case problem in one of my "theories" of something (usually related to computers, economics or philosophy), it really bothers me (i.e. it has nothing to do with being smart, it's personality trait).
So perhaps if you try to nurture these traits, it could make you smarter, but that's just a speculation :)
More practical advice: read quora.com. There is a lot of really high-quality, interesting and thought-provoking content there, written by some incredibly smart people.
Traveling is very useful due to the all the same reasons. You learn a lot of new things and getting a new perspective.
Being physically fit plays a huge role in your mental abilities and it's proven by many researchers.
To sum it up, the more diverse is your experience and the more things you try the better.
I know someone who is very skilled at retaining large amounts of detailed information and he works as a high profile lawyer. However, he wasn't capable of figuring out how to change the battery in his remote control, let alone set up the TV channels on his newly bought TV. He reminds me of a lot of politicians I see on television; perceived as smart but actually quite dumb.
Then I know plenty of people who aren't highly educated at all but they are some of the most creative thinkers I have come across in my life.
I'm sure that reading a lot of books will broaden your horizon and awareness of one's "lack" of knowledge will put you into a good position since you're willing to learn and you're not assuming you know it all. That's good.
I'd also recommend reading up on behavioral economics, marketing, and design. This is more along the "toolset" line, but understanding why people make the decisions they do and how other people try to exploit those decision-making processes helps to understand a significant amount of otherwise relatively impenetrable behavior.
Oh, and read How to Win Friends and Influence People if you haven't already. As someone else suggested, talking to people can yield a great deal of knowledge, but trying to think from the other person's perspective (a major theme in the book) can yield a great deal more understanding of people in general.
and check : http://brainworkshop.sourceforge.net/
"A recent study published in PNAS, an important scientific journal, shows that a memory task called dual n-back improves working memory (short term memory) and fluid intelligence. These findings are important because fluid intelligence was previously thought to be unchangeable"
If I could go back in time, I would tell myself to stop reading so many programming books. I'd make myself write the code everyday. Rather than read about it. Figure out what it is that you want to learn. Then start practicing and learning the theory.
- Learn to really listen other people.- Learn to ask correct questions- Body language, gestures- Meeting new people from different cultures, especially people don't believe in prophets and hell and heaven stories
- Playing a musical instrument- Learning another spoken language- No TV, no football, soccer bullshit, not too much porn, talking about girls & boys or cars& houses, celebrity etc.
Gaining Knowledge:- Mathematics, Physics, Programming, Astronomy, Biology, Paleontology, Evolution, any science branch you are interested.
- On the other hand, i personally think, the best way to learn about a different culture is to travel whether it is local or not.
Some good resources:
- Here of course- wikipedia- documentaries- coursera- youtube, if you can avoid stupid girl podcasts, otw you will end up with bad recommendations.- Follow inspiring people on twitter
I will stop know, i also want to learn what other sugesstions are :)
"All Scripture is inspired of God and beneficial for teaching, for reproving, for setting things straight, for disciplining in righteousness, that the man of God may be fully competent, completely equipped for every good work." - 2 Timothy 3:16-17
1. Have awareness - smartness is nothing but being aware of yourself, your knowledge and surroundings. Way too many of us are living a routine life and we have trained our minds to keep working at certain optimum level. People who are aware often looks smart and more importantly make smarter decisions.
2. Read and Learn - your smartness and decision making skills is directly proportional on how much you know, people who knows more will always look and make smarter decisions.
Btw, one thing I can assure you, smartness can not be taught through books and classes, be your own teacher, make your own lessons.
here's a great introduction:http://www.gwern.net/DNB%20FAQ
1. The design is boring and tacky. You really need to ditch those flames at the top, flames to me are an immediate warning sign the site you are on is going to suck.
2. The designs lack any kind of design to them. I don't get the content of some of them and I find the shirt that says something along the lines of, "Popped my cherry" somewhat gross.
3. The container around the site is too big and the combination of the white and purple border is a nightmare for my eyes.
4. The site lacks content, consistency and is all over the place. My eyes don't know where to focus...
Hopefully that helps. I'm not trying to be rude, but extremely honest.
You'll need to either pick a niche, or outdo them in either designs, price, or variety.
If this includes a negative re-assessment of what you have accomplished or the importance of it be especially cautious. Retrospective ennui is a red flag.
Here's hoping it's just a minor glitch or short term burnout.
It is a difficult subject matter: instead of proving something about a specific program, you must prove results about all possible programs that achieve a task given some set of constraints.
IMHO, it is amazing that any results (e.g. ) are known at all in that field given how little structure they must work with...
Think of this field as the particle physics of CS---not very useful in the real world, but still very cool to learn about.
There are lots of medical problems and brain problems and large scale coordination problems we know about but haven't solved or reduced to solvability yet.
Working demonstration examples.
Testing for usability and ease of construction of applications and operations.
Built-in security for data storage and security of data transmission.
Ease of data portability, for both adding data and exporting data.
Community-building that leads toward growth and momentum of mutual support and exploration.
All towards figuring out what are the things that enable trying the project out, and reducing the impediments that deter potential users from trying out the project.
"High costs at a later stage when users multiply, vendor lock-in" -> it doesn't matter. 95% chance you won't get millions of users, so focus on that first.
For any such commodity as a service, the initial costs to you will be lower than if you had to build the service yourself. However, over time the costs will go up. The benefit to you will always be ease of development and having the time to focus on building the core features that will make your startup feasible. Most startups fail before they reach a point where they need to worry about rising costs and that's a good problem to have. (when you have it you can mostly pay someone to fix them for you)
My recommendations (having never used any of the above mentioned BaaS providers, do take these with a pinch of salt)
1. Look at how easy it is to get your data back if you need to host the services yourself or change providers. Does the provider have any processes for the same? Speak to the sales (and support) people about this before you decide on a provider. Look for the provider that is transparent about this.
2. Don't worry about what the cost will be when you reach a million users. Your time right now is spent wisely validating your idea. Cross that bridge when you come to it.
3. The only "complete no no" scenario I can think of would be if you were hosting sensitive information (credit card etc)
Hope this helps
You would face technical scaling issues no matter what you were using. If the BaaS is your bottleneck you could fix it then.
Another issue might be that the genuine poor who most need cars are those that use them - all day every day - to go to and from their low paid jobs. If you intend the cars to actually be shared you'll have to choose a way of addressing that.
The hazard I envision with ZipCar-lite is not only the monopoly the other commenter raised but also incidental costs (gas, accidents, etc) unless your plan is to subsidize those items, too.
Best wishes for your project, it could be great!
2) A really good text to speech app for news so I can listen to it in my car
I can't think of a third right now.
- he really doesn't use his PGP key all that often, had the same one for 16 years on god knows how many computers, and decided that if he's going to generate a new one, he might as well send a message with it.
Edit: I am located in the North Eastern part of the US.
Edit 2: perhaps we need a geolocation aware social network a la Square but just for notifying you of other nearby PGP users...
He has worked previously in mostly corporate and private context, so 2048 is just fine. Now he works with people and data NSA wants their hands on and he wants the data to be secure also in the future. It's just reasonable to move to 4096 key sizes.
>Dr Lenstra and Dr Verheul offer their recommendations for keylengths. In their calculation, a 2048 bit key should keep your secrets safe at least until 2020 against very highly funded and knowledgeable adversaries (i.e. you have the NSA working against you). Against lesser adversaries such as mere multinationals your secret should be safe against bruteforce cryptoanalysis much longer, even with 1024 bit keys.
See also: http://www.keylength.com
> 3) Assume that while your computer can be compromised, it would take work and risk on the part of the NSA so it probably isn't. If you have something really important, use an air gap. Since I started working with the Snowden documents, I bought a new computer that has never been connected to the internet. If I want to transfer a file, I encrypt the file on the secure computer and walk it over to my internet computer, using a USB stick. To decrypt something, I reverse the process. This might not be bulletproof, but it's pretty good.
I would guess Amazon, Facebook, or maybe a big Chinese corporation.
The patent portfolio will likely go to the highest bidder, independent of any company assets. No one needs their devices or the OS. Google, Microsoft, Apple, and Samsung are all candidates, or it may go to a consortium of some/all, as has happened in the past with the sale of Nortel's portfolio.
To be fair, I've not read these books; I attended a lecture of his at MIT, and he seemed to really know his stuff. If I wanted to study DB implementation, I'd start with his writings.
Pick a simple chore you do now manually by hand and try to automate it so that the computer can do it for you.
This way, you may have more motivation, because if you can automate the chore, you won't have to do it manually anymore.
Learning to code from the "how-tos" is hard if you are unmotivated because the examples they ask you to create are not something you'll ever need, or use, again. Therefore you have difficulty staying motivated because it all feels like busy work.
Note, the word "simple" above is critically important. You have to pick something that is within your skill level. So it has to be something "simple".
I'll ignore the obvious question of "why are you trying to do something you're not interested in?" because that's not what you're asking. I think most people are terrible at motivating themselves to do something they're not interested in, so the trick is to find a way to hack that.
I've seen so many people decide to learn to "program" because it was part of their Computer Science degree which they chose to pursue because that's where the jobs are. Many of them finished their degrees and ended up in a "software factory" churning out code for as long as they could stand to do it.
I don't see programming as an end unto itself (that "job" is not going to make you enjoy programming; it'll probably make you hate it). It's a skill that allows you to make things. To manufacture interest in programming, program something to enhance something you are interested in. Stick with easy things -- something you could learn to do from an hour long tutorial in your language of choice (and stick with an easy language). Don't stress over building something that is "right" or even attempt to understand best practices at this stage. Doing so will probably result in loss of interest.
Once you've made something that helps something you're interested in, the positive feedback from that experience might challenge you to look at more complicated tasks, further honing your ability. At some point, you'll encounter a problem that will be complicated enough that you'll have to go back and learn how to do things "right", and you'll probably be far enough along in your pursuit that you'll enjoy learning how to do it right.
I've done this myself with a few skills I wanted to pick up. I've always wanted to get into hardware, but could never manufacture the interest. Recently found myself purchasing an Arduino and a bunch of mysterious parts to make a device that will send me and my wife a text when the dryer completes its cycle. My interest in doing this was for task avoidance -- I hate ironing.
Why are you trying to force yourself to do something you aren't interested in? My first suggestion would be to really understand what you want out of it, and why you are doing this.
My second suggestion, if you decide it is something you really do want to do and you have a good story for yourself as to why you are doing it is to try to do learning with either a co-learner or a mentor who understands your motivation for learning, and to try to work with them to find real projects to apply what you are learning that relate to your motivation.
For this specific issue, I suggest you go to programmer meet-ups and make friends in person. Find someone you hit off with. Ask them to do a little hand holding and explaining. You might have to try this a few times before you find someone that clicks with you in the right way. Once you get over that initial hump, you will likely be fine.
Check out how my first project looks now: http://sudokuisland.com
There are now several thousand lines of code, both front end and back end. I can build handle all parts of the stack. The learning process took over a year but that was while working full time.
As much as I can't praise Udacity and Codeacademy enough, they aren't enough. Without a project you will forget everything you learned. I know my code inside and out, and can refer to it when I see a similar problem.
In short: why not sit down and try to code something simple?
A) It's better to give 100% for 30 minutes then 70% for 60 minutes. 30 minutes a day is a small commitment even for those with lack of motivation.
B) Don't judge your practice by how much you've accomplished that day but by how successful you were at "practicing perfectly" for your allotted time.
It is exceedingly difficult to just "learn to program". If you were to go to college then you would be set tasks that you would be motivated to complete (for a qualification of what have you) and you would thus learn enough about programming to complete the task.
Without the motivation for each stage of learning - the task of learning would be pretty dry.
That said, there is something to be said for just diving into the deep end, especially if you have a real world use for some software. Engineers and Scientists tend to learn programming this way. They download EPD Python or iPython, grab some experimental data, and start writing analysis tools to give meaning to their raw data. Is there something in your real life where you could solve a problem with software? If so, then relentlessly working on it a few hours a day will get you to your goal. And remember, real software developers use Google. The blogosphere and sites like StackOverflow are a developer's friend.
You need an actual task to achieve and you need to want to achieve it, otherwise why bother?
Forget about learning to program. Figure out what you want to make, and start making it.
I've been working on an Android app recently. This is my third or so attempt at learning the platform. This time, I've actually made good progress, because I have a goal. I started not by saying "Gee, I want to learn this", but by saying "Why does this app not exist? I could make it. I should make it"
Start with a basic "Hello world". After that, instead of going onto the next chapter, think "What's the easiest thing I can do next to advance my goal".
1) Programming is not the "the literacy of the 21st century." Come on. It isn't now and it never will be, unless languages evolve to be essentially AIs that you can just request features in English, and even then it won't be, since most people won't bother to make programs. I'll go to the mat on this one. Those who bandy this idea around are misrepresenting reality.
2) Dan Miller, a career guru/author, has a point in one of his books that you should not attempt to strengthen your weaknesses--because then you end up with "strong weaknesses". Instead, strengthen your strengths. If you are good at soft skills, selling, design, idea man stuff, DO THAT, and leave the Model View Controller stuff to those who live and breathe that. You'll (likely) never do it as well as they do, anyway.
3) If you insist on learning to programming despite these two admonitions not to, I agree with many here who wrote: pick a project, and do it. And not some dopey toy project that you don't care about. Something real. I had an idea for an application years ago and have been working on it in my spare time and now feel that I can program, at least to some level. If you are in a company, work with the tech people to contribute to one module or one class or one feature, and start there. Become master of that section, and then move on.
The best way I learned to program is to do it. No,seriously. Pick a project you want to make and make it. If a task like "user registration" is too tough, break it down further into subtasks e.g. create form to register, have form send info to db, etc.
Following tutorials and online sources that have you make useless things like "CREATE A CALCULATOR" I never found useful in trying to learn programming.
After reading 2000 books on the matter, python and all the stuff I learnt only by before having the need to build something.
When I found out I wanted to build something, I started to understand coding. When I found a stopper I went back to the books, Google, and so on. At the end, I built the product I wanted and learnt to code. I think it's the only way to motivate yourself and learn how to code.
If latter, and if you really want to be coding for the love of it, get real serious and focus. Figure out what area (systems ? web ? mobile ?) and just code. If web consider devbootcamp.com. Otherwise get a book and write code. I'm not a huge fan of online tools. Coding is like driving. The more you do, the better you'll get. No one can teach you.
I know the feeling with having trouble working through books. Quit trying to pound a square peg into a round hole. Find what works for you (your current approach doesn't!)
Don't learn/read things just because you think they are good for you. Do what you are actually interested in.
Bear in mind also that even though you've never heard of an audit of GPG, GPG is actually a pretty high-profile target. Smart people have already looked at that code pretty carefully.
Since GPG is an open source project, a better approach would be to find a way to sponsor a bounty for vulnerabilities in GPG. But here too you'll run into problems:
* It will take fo-re-ver to adjudicate what does and doesn't qualify as a serious finding. Google and Facebook manage this problem by hiring very smart vulnerability researchers and allowing them to come up with criteria pretty much by fiat. Here, you're going to end up in a 2-month-long argument about whether man page bugs are vulnerabilities because of the nature of the project.
* Output of these programs is nonlinear and unpredictable, so it'll be tricky to figure out how much money needs to be set aside to satisfy reward payouts. In the meantime: who holds that money? And where does it go when the bounty outlives its utility?
If you really want to do some good, consider starting a project (which would require no funding) to either:
(a) Build a replacement GPG in a more modern development environment, or
(b) Annotate all of GPG's source code.
Here's an overview of GnuPG's committers:
Werner Koch: 2677 commits over a period of 5764 days. David Shaw: 1197 commits over a period of 3807 days. Marcus Brinkmann: 202 commits over a period of 3753 days. NIIBE Yutaka: 53 commits over a period of 641 days. Moritz Schulte: 39 commits over a period of 1756 days. Timo Schulz: 29 commits over a period of 896 days. Stefan Bellon: 21 commits over a period of 765 days. Repo Admin: 9 commits over a period of 2634 days. Andrey Jivsov: 8 commits over a period of 37 days. Ben Kibbey: 6 commits over a period of 20 days. Neal Walfield: 5 commits over a period of 1 day.
This doesn't negate the need for a code review of some sort, but it does suggest that it would be difficult for an outside agent to silently introduce changes in master without the core developers noticing.
Word on the street is the code is horrific and last I checked was not even checked into git, in any way, yet.
Could be for example just a simple message "Audited, file: aaa/xyz.c, checksum 3ea1b.. revision 1c030.." signed with auditors public key.
So Scneier's blog is down and we can't tell if it is a freak outage or if it is an outside party. Scary times.
The site above does not check for https URL's.
Especially not Gmail, as every time I look at it, some other bullshit feature got added and the UI got more horrible.
I use gmail, yahoo mail (through an extension), connect several pop3(I tell it to leave messages onn server), imap servers for work (for which emails are occasionally harvested and sold to spammers somehow..) and my own mail server (Hey, I am a web developer. No excuse to not have a el cheapo vps with webserver and an email servers combo), local maildir and mbox delivery for testing crap I write, several newsgroups and a shitloads of RSS/Atom feeds. It also has some xmpp integration of dubious usability. I also have Lightning extension which is supposed to behave as a calendar but I am a disorganised person and rarely check email by contemporary standard of every five minutes, whole day. Oh, and local spam detection.
Sure I look forward to Mailpile (just checked the marketing blurb) which promises to not show me ads and perform faster than "cloud" while offering all the features that should exist in practice to justify calling itself an email client. Competition is good and thunderbird is going senile by every passing day anyway.
I hope they won't spin off their custom web server as a standalone project too.
I have used gmail to date simply because I must have a synched service between laptop and mobile. So gmail was just there as a IMAP/SMTP server for the iPhone mail reader
However as pg has pointed out, and the pretty good ActiveInbox implemented (hey ActiveInbox - apply for YC!) a mail inbox is really a task list.
And it must be linked to a contact book. All of which must be integrated at the event level.
So which mail client I use is less of the question than how do I solve
* capturing and synching contact details, contact events, email messages and tags across all these
I have a workable solution in gmail now, but I cannot capture events on my iPhone. Android appraently does so I will switch but its not all tied together neatly.
I have played with mutt and goobook but frankly I can see a good couple of weeks disappearing down this rathole. Yet it should be a solved problem. VCards, iCal, X-Headers, the solution is there. It just seems there is no RFC we can agree on
my rant on this subject: http://blog.mikadosoftware.com/2013/09/17/help-i-cannot-find...
Edit: am I just ill-informed (!) or has there really been no successful standardisation for "managing contact details events and tasks in a mailbox?"
I've just always felt that a desktop client just adds another layer where things can go wrong.
From there I read it with lumail, if I have problems I revert to mutt.
I've got webmail setup for those times when I'm travelling and cannot use ssh.
Since it's within Emacs there's great GPG support, familiar keybindings, and less contextual shift than switching to a browser. It's also fully searchable, usable offline, and non-blocking to other emacs operations.
Thunderbird was the first client I found that let me manage multiple separate accounts through the same interface, receiving and sending mail from each in a logical way. There's probably other ways to do that now, but I'm terrified of upsetting a system that Just Works.