Once payroll rolls out contributors set their own compensation.
Some more information on that can be found here: https://gratipay.com/about/features/payroll
Previously Gratipay was Gittip, and worked much like Patreon - essentially a donation or ~tip~ system.
There's still some work to be done, but I've been following this project for awhile. I've been working full time now on other stuff, but I keep up with their updates, and Chad (founder) is a great dude.
1) You work on an open source project and an altruistic company hires you to keep working on it. This is ideal, and I've only ever seen it once (Sendmail hired a couple of core contributors to keep making Sendmail awesome back in the 90s).
2) You work on an open source project, people see the work because they use the project, and then offer you a job to keep working on the project, but slowly over time you are working less on things that are great for the community and more on things that are great for your company. I've seen this a lot.
3) You get hired by a company that uses a big project, and they ask you to start making modifications that are useful for the company. It turns out what you did was useful for everyone so you contribute it back. Sometimes it turns out to be a huge win and so you keep working on it. I saw this with Cassandra and some of the folks at Netflix.
4) You create a cool project and your company lets you open source it. It becomes well known and then other companies want to hire you for either 1, 2 or 3. I saw this a couple times were people left Netflix to go to Facebook or Google to continue work on an OSS project.
If you work on Chromium or Firefox, you'll pretty much be limited to Google or the Mozilla foundation (with some exceptions). So if you want to do it to learn some great code but don't have a particular project that you love, I'd suggest one of the more infrastructure projects that are widely deployed if you want to increase potential job prospects.
In summary: There are lots of ways to get paid to write OSS, but you may not like them all.
My major source of income is my "Varnish Moral License" (see: http://phk.freebsd.dk/VML/index.html)
It is not particularly easy to shake money loose, but I'm making a living and I'm trying to explain to the world that free software is not the same as gratis software.
(See for instance: http://queue.acm.org/detail.cfm?id=2636165)
As others have pointed out, the browsers are all backed by actual organizations with employees, so that will probably be a tough row to hoe, unless the end goal is to get employed by one of them.
And to answer the inevitable question: many of my paid features are also available as 3rd party OSS plugins. Many companies prefer to pay for the commercial version so they know the features will all work well together and be supported years from now.
I had met some people from the company a couple of times and wrote something they wanted adapted to work with their products but didn't want to invest in it.
A few thousand to get me to do something I was going to do anyway at some point was a good way for them to get something that they wouldn't monetise directly.
Not sure how to get a gig like that though :)
Basically the idea is that the code is open and free, but if someone uses it a lot to make money they pay you a licensing fee.
Surprised nobody's posted it yet.
Other people are also posting their own, so here's mine: http://www.dougkoellmer.com/
Other job-hunt-specific efforts:http://www.dougkoellmer.com/portfolio/http://www.dougkoellmer.com/resume/http://www.dougkoellmer.com/games/
Can't be totally sure but I believe they've gotten me a job or two.
This is mine: https://ruph.inIt's something I threw together recently, but it's still missing some content. I like the style though :)
Stumbled upon this one yesterday, it's from a paper, but well written:https://mzucker.github.io/2016/09/20/noteshrink.html
A long time favorite writer:http://www.frankchimero.com/writing/the-webs-grain/
Stephen Wittens' site is another that comes to mind
You need to think of yourself as the product and work out what's the best way to describe and package the skills and experiences that you have already acquired and how they can be applied to whatever your target companies are looking for.
Also think about whether you are using your portfolio site for lead generation or lead qualification. Lead generation means that you'll have recruiters finding your portfolio off the back of your SEO and they contact you. Whereas lead qualification means you are selling your self to a hiring manager/expert after they've read your resume and decided that they want to check your credibility before interviewing.
Does gwern fall into this category? While I'd need to know more about what he's like in person, the author certainly seems like a technically competent individual.
A horrible website for horrible people (in the style of CAH): http://jefflombard.com/
(full disclaimer last one is my own site, anyone is welcome to clone it, it's based off of cards against humanity and available under creative commons: https://github.com/jefflombard/jefflombard.com)
These sites have set the standard of beautiful personal website for me. Despite their modern appearances, they're both just static sites, generated with bash: https://github.com/Jack000/Expose
Most of the time more people e.g.: watch my github page: http://github.com/wkoszek page than my real website http://www.koszek.com since its harder to find you on a separate website. This is unless you market it.
To summarise: enter the http://cr.yp.to/ and see how good the content is and how you're ok with no form too, if content is outstanding.
Recently redesigned. It used to be like this:
(Yes, I know, the new version is not as user friendly, it's not finished yet).
I love looking at people's personal sites though. I've got a small index of them from over the years at http://pinboard.in/u:icco/t:personal.
It's an interactive Game of Thrones map. It shows you where everyone is at a given time. You select who you want to track, drag through time and the character path trails show up on the map. The interface is genius, best I've seen for messing around with (thing, place, time) triples.
Minimalist modern design, sans any kind of framework (like Bootstrap for example) is the name of the game.
from scratch, no css framework responsive portrait by alisabishop.com
edit: feel free to use it as a template for your own site! https://github.com/panphora/davidmirandainfo
Main page: https://web.archive.org/web/20150801213611/http://lukaszkups...
Experience page: https://web.archive.org/web/20150826004819/http://lukaszkups...
About page: https://web.archive.org/web/20150826004912/http://lukaszkups...
Contact page: https://web.archive.org/web/20150826004918/http://lukaszkups...
Blog page: https://web.archive.org/web/20150826004935/http://lukaszkups...
I will release new design next week, based on brand-new static site generator ;)
Here is my site:
I optimized it for following:
1. Easy to understand layout
2. Images to highlight projects
3. A professional picture.
4. Contact & email information.
Don't bother fighting email collecting bots, they already have billions of them due to breaches and most likely yours if it appears on Have I Been Pwned. Rather I recommend optimizing on usability and making it easier for human reader to send you an email.
Note: The design looks slightly different on desktop and mobile. E.g. on desktop it loads institution logos and uses a two columns or efficient use of the space.
A jaw-dropping website by Steven Wittens that pushes the boundaries of what your browser can do. Nothing I've seen has ever topped this wizardry.
(You should view it on desktop, with WebGL capability.)
Sarah Drasner - http://sarahdrasnerdesign.com/
Assume whoever looks at your portfolio is going to scroll from top to bottom first, get a first impression, then _maybe_ click through things later.
So build for the question "What do I want people to see if they scroll through my site without clicking on anything?"
That said, I did try to create a single page of some of my projects so people can look at them more easily: https://www.stavros.io/projects/
The other day I also decided to give my resume some love, so I created a single page with side-projects I believe to be worthy of mention: http://resume.stavros.io/
Maybe those two will give you some idea. I've scrolled through some of the other responses in this thread, but I'm not sure I like the project sites that are tech demos themselves. They seem to conflate "optimizing the listing of projects" with "optimizing showing a project". Most of the linked sites are great tech demos, but very bad at getting me to click on the actual posts themselves. Then again, maybe mine is worse.
Kept it minimal :)
Also feel free to peep my old one: http://iheanyi.github.io. I didn't like this one because it was too image heavy, but I did like the layout of case studies better in this iteration than in my new one.
And I guess another old iteration I was using when I was looking in college: http://old.iheanyi.com. Yeah, I know. I re-design my website a lot.
Windytan: http://www.windytan.com/DJ Bernstein: https://cr.yp.to/djb.htmlFabrice Bellard: http://bellard.org/
Blog: https://axiomatic.neophilus.netPhotoblog: https://odyssey.neophilus.net
Particularly happy about the way the photoblog turned out. I think the interactivity of the globe, showing you where photos come from give it an immersive touch that isn't in your face.
It's a UI library for animating 3D web stuff, so it should look pretty. Suggestions to improve are welcome!
It's an auto updated portfolio with my github, dribbble, and some other social networks.
And a simple webpage for my work on laser projector video games:
My laser projector work has gotten me hired at a few places. :)
When I first saw this site I was blown away. Sure, the level of detail may be off putting to some people, but even from a purely engineering standpoint it's impressive.
Shoutout to Anand for the incredible work.
I had some good feedback on mine as well - https://tim.fyi - and I'm pretty happy with it (love to hear what other people think too though). After the intro though, it's more about highlighting recent specific projects and talks and articles, rather than acting as a full CV. Sounds like that might be what you're going for?
If I were you, I'd keep it simple. Go for a short simple intro that highlights what you're about, a two or three sentence summary of what you've done and what you're good at, and then keep the body as something that gives more of a feel of what you're about and up to right now. Links to blog articles, things you're tweeting about etc.
You can provide an actual CV for people who want to dig into the details of your list of achievements and research in more detail, but if this is the first place people hear about you and it's your personal site, then a sense of personality and active things going on is more important imo.
A one man hardware & software powerhouse. He is an old-school EE in Japan and his personal projects are astounding in breadth and depth.
His SD Card and FFT libraries are classics. His hand wired SMT circuits are works of art.
This is a site I built for myself, friends, and the public; however, I haven't promoted it much... Trying to get more users, but it's been under construction for a while. Nothing fancy, but I wanted to build something that was free for users.
Also to the poster: side projects are great, showing off your pet project is awesome, but I can say that a lot of employers don't even care to look at them... I cannot speak for ALL employers, but a lot of the time interviewers and employers don't have the time to poke around in your side projects - they're very busy too. It's kind of a shame
More a researcher type of site but it also showcases the work I've done, so perhaps it's useful.
I built an interactive unix-based terminal to navigate my projects and resume. I'm planning on adding a better layout though since it's been pointed out to me that the people actually looking at my site to hire me won't know what to do with a terminal :p.
Not sure if it fits the context but have a look at Matthias Noback website http://php-and-symfony.matthiasnoback.nl/
[NB Along with things like the restoration of Navigation and Bombing Computers from UK strategic bombers!].
Maybe not exactly what you're looking for, but its simple and clicking through any project makes me to want to work with and/or hire him immediately.
Perhaps a teaching-focused site that explicates all the tips and tricks you've gleaned about atomic microscopy. Maybe featuring a WebGL microscope simulator. And extensive Youtube tutorials for beginners.
Or a data bank. Resources that would appeal to researchers rather than students. Modelled after something like the Electron Microscopy Data Bank:
Your goal is simply to convey that when it comes to this particular characterization technique, you're the world's #1 expert. Not so different than the inbound-style, content-rich influencer marketing all of us are seeking to master here ;)
Disclaimer: I use the site
Has links to blog / slides / github and list of GitHub projects with search. Allows people and myself to quickly find something. Getting recruiters' pitches (and occasional hand crafted emails to join teams) every day.
It's a grid of all the "cool" personal projects I've made since I started coding.
http://okaysamurai.com/portfolio/okaydave2006.html - It was built in Flash over 10 years ago, but the skill and creativity behind it is a force that is absolutely still relevant today.
I got this up after getting my job offer in place, but for now I'm happy with it. One thing that's missing is my resume, but for me that's application-specific and I'd rather have people ask for it than display a fixed version.
Feel free to critique, HN!
Yes its a tad salicious, but its an interesting technical project.
I have a rather large email list that would be quite expensive to send to with MailChimp, Sendgrid or the like. I've been able to use Amazon SES to send large blasts, daily for next to nothing.
Edit: This is NSFW
Simple UI so that content is the king!Just 4 main pages but also organizes content in a way a user would like to see!
My issue is that I don't have a very impressive resume yet (though I should probably link a PDF of my current resume anyway), so I decided to keep it simple and lightweight but also stylish because I bill myself as the intersection of tech and design.
It was even helpful to kickstart conversations in meetups / other technical gatherings
Would love some honest feedback on it!
It's all client side. Runs on JSON, JS, HTML and CSS. Super cheap to host. I'm mainly documenting my journey into metal fabrication as a programmer.
The touchbar seems too gimmicky.
3. Xiomi mi notebook
4. New 13" MacBook Pro without screen
5. Refurbished 2016 Mac Air
Early in my career it was a real asset. There are lots of opportunities for generalists - if they are young, eager, and working at a low pay grade.
The problem is as you progress you get to a point where being too much of a generalist is a liability in the workforce. A jack-of-all-trades is a master of none. Employers know this, and they are keenly aware of it. And for good reason too - since the generalist is not particularly married to any one discipline the odds are increased that they are A) not as skilled in that discipline than a specialist and B) are likely to get bored of it and bounce to something else.
So at the end of the day, a highly-skilled specialist is significantly more valuable in the right role than a generalist. They can command higher pay and, in my experience, respect.
However - it depends on what speciality you choose. Many many specialists lock into a skill that will eventually become obsolete. So while these people may have earned more at their peak, they're in a far more stressful position when their skill declines in value. Definitely a balancing act
There are things only specialists can do and things only generalists can do.
There are people who are equally interested in a lot of things and people who are particularly fascinated by a single topic.
Which are you?
> We value T-shaped people. That is, people who are both generalists (highly skilled at a broad set of valuable thingsthe top of the T) and also experts (among the best in their field within a narrow disciplinethe vertical leg of the T). This recipe is important for success at Valve. We often have to pass on people who are very strong generalists without expertise, or vice versa. An expert who is too narrow has difficulty collaborating. A generalist who doesnt go deep enough in a single area ends up on the margins, not really contributing as an individual.
Where you choose to be deep should be an area of interest to you and which the market values.
Each new piece of knowledge you learn will give you a better base from which to learn more, and slowly the amount you are able to learn will increase to help you cope with the load.
After a while you gain the ability to reduce a problem you're faced with down to other problems in other disciplines, then things start getting boring because you can already figure out a way to reduce this problem, etc. So at that point it's time to mix it up a little and refocus.
Another thing that should be noted is that you should always make sure that you are out of your depth with at least one thing you are studying. You can only really improve by pushing yourself. However remember that you cannot push yourself constantly, sometimes you need a break. So in doing this, you should be driven by your own interest.
What I have found is that I am not necessarily able to do everything at once, so I end up doing a rotation of things I find interesting at that moment. Eventually I'll either discard some topic or problem or such, because I don't find it interesting or I will find something new that I find more interesting. If things get stagnant, mix it up a little!
I've been doing this for approximately the last five years, and I think the payoffs have been great, and I have learned so much more than I think I would have otherwise. However I have nothing to compare to! So we cannot be sure =)
Do what interests you.
-- Robert Heinlein
I wouldn't necessarily restrict this to "the digital world."
My salary increased once I marketed myself as having a specific specialization, but the difficulty of finding a job increased too.
It is a basic application of supply vs demand. As, say, a PHP developer, you're competing with millions of other PHP developers around the world. There are plenty of jobs, but there are also plenty of people who are competing with you, driving your price downwards.
If you narrow it down to knowing a lot about a very specific framework or PHP system - for example, you know a lot about Laravel or Drupal, then you're competing with fewer people, and people are willing to pay more for an expert, but there are also fewer potential jobs.
There's also an associated risk. If you specialize in Laravel and Laravel goes out of style, you will have to remarket yourself as a PHP dev again... Some people specialized intensely in Microsoft Silverlight, and they ended up like this - http://www.commitstrip.com/en/2015/07/28/betting-on-the-righ... (it's not a total loss, as some programming paradigms work across languages). With the risk comes increased reward.
Do both, as people always have. But start out a generalist to get an understanding of what is good to specialize in. Then pick 2, 3, 4 diverse areas to home in on.
Be somewhere between "mediocre and good" at many things, and be really good at one or two things. If you can be great at one or two things, that is nice, but not strictly necessary.
There's a lot to be said for generalists, or "T-shaped" people. Every single project requires a large breadth of skills all up and down the stack... and a lot of moving pieces (client, server, markup, JS, CSS, blah blah blah) that work together.
There is a place for specialists, too. In fact, we need them to make the world go 'round. But... there aren't as many of those places.
Here's a real-world example. I literally just finished troubleshooting this issue. Finding the bug and developing a fix involved (1) our iOS client (2) our React web client (3) our server-side auth, implemented in Rails (4) a messaging library with both client and server components (5) some other bullshit I can't even remember at this point.
I'm not the best at any of those things. I'm barely even good at them. Honestly, I don't even fully understand the auth fix that our brilliant (and I don't mean that sarcastically) programmer implemented. But I understood enough of those moving pieces to isolate the problem and get things into his hands.
It'd be really fucking great if I was the world's leading iOS developer or whatever, but if that's all I knew, this issue wouldn't have been fixed.
Last time I was looking for a job, the recruiter came back to me and said "I can find lots of jobs that need your skills, but none that will pay the salary you want."
So we discussed what my skills were. I was looking for a SW dev job, but I have degrees & experience in EE, SW, lots of time working with integrating SW, EE, and Mechanical motion control, more experience working with biochemistry and understanding how various physical movements can affect the way a reaction proceeds, and the repeatability, etc. of the output.
Finally she says, "hmmm, you're really a Systems engineer with a Software engineer title." Then a new set of job opportunities (that wanted to pay what I wanted to be paid) showed up.
And somehow I ended up taking a position as a software engineer/Manager... go figure.
To be employed, you'll do better as a specialist. If you pick the right specialization.
In the personal domain, the situation is the opposite. It's just not possible to outsource being healthy, financially sensible, romantic or a good friend to someone else. If you're really struggling with one of those areas of life, it's worth it to work on fixing up your weaknesses rather than just further developing your strengths.
Deep has the advantage that when specialists are in demand, you're really in demand. It's good to have someone on the team who knows absolutely everything about the thing you do. The downside is that when technology or your career moves on, you know nothing. You're stuck doing that one thing, and may have a harder time getting into something else.
And broadness has a specialization of its own. Knowing multiple things is particularly valuable if you know how to connect those things. If you can develop front-end with an eye on what's easier for the back-end, if you can design the graphics that you will need, rather than having to wait for someone else to get around to it. Knowing different unconnected things is less valuable, but even there you may find unexpected connections. But for the deep technical stuff, you may find that you'll have to ask a real expert.
When I first graduated from the university (at 23), I got a job as an IT support guy in a growing company (80+ employees at the time). I was the only IT support and my job was to help people with their issues and maintain the IT infrastructure. I managed to solve all types of issues which I guess people started to recognise. This was fine. However, since I also knew programming, my managers wanted me to help out on development (PHP), to ease the load on the developers. As time went on I became better with our framework and started to get more more complex programming assignments, while still being IT-support. For me this became a real struggle, completing programming tasks on time, maintaining IT infrastructure (servers, network, buying hardware, phone calls) and helping people with their issues. Somehow I managed, which my managers recognised (I assume, and hope), so I got additional assignments regarding "Big Data", basically get information, store it, connect the data with other data sources and so on.
At the end I was doing everything with IT. Data science, development, IT support, system administration and more. The reason it become like this, at least what I think, is because I had a sufficient grasp on most domains and tools so I just continued to get more stuff to do. When I finally quit, I actually realised that I was not feeling that great. I could feel the stress inside me slowly diminish.
"You ask me if I keep a notebook to record my great ideas. I've only ever had one."
"It's not that I'm so smart, it's just that I stay with problems longer."
At the same time:
"The important thing is not to stop questioning. Curiosity has its own reason for existing."
"I have no special talent. I am only passionately curious."
So I say follow your curiosity. If it wants to go deep go deep. If it wants to go broad go broad.
The important part is not to stop when you're finished. Pick up the next thing and do the same. After you go through a few phases you will have enough general knowledge to apply in many areas.
In this way you start a specialist and become a generalist. You'll know fully well what your tools and technologies will be capable of and you will be able to give reasonably accurate estimates.
As far as I can tell, unless you have an eye for design, it's generally easier to start on the back end and move to the front end. This way you can be productive and are able to move between companies. Front-end is still changing a lot. But there are a lot of promising releases/tools in the works that are making getting started a lot easier.
For your (potential) employer: be great at one thing, that they are willing to pay you a bundle for. Then use that money to buy all services you need to be happy.
I believe this article popped up on HN a couple of years back:
Are you planning on going into startups? In which case jack of all trades does very nicely!
The key is to be very good at some things but to also keep your eyes open and learn things outside your comfort zone - you never know where your new found knowledge can take you and often times it can make you better at whatever you chose to specialize in.
So senior architects who write APIs - for fucks sake (showing my background here!) - write the prototype client library - it will improve your API design skills.
Backend devs should write a front end or two or at least do some pair programming with the front end guys.
Bottom line - be very good at some things - but be open to learning new things and getting out of your comfort zone.
I see myself as an IT generalist, but in the workplace I have to specialize. Currently I focus on making Single Identities work across systems for large Corporates. It's quite niche, and at times monotonous work (the design is pretty much the same wherever you go), however in order to be GOOD at whichever specialism I'm pitching at the time I heavily draw on the cross knowledge I've gained over the years. This extra knowledge has ended up being invaluable in separating myself from the herd in the recruitment marketplace.
So in short. Early on you should generalize and learn as much about stuff that interests you; later on (10+ years) start to specialize based your preferences (or mortgage size, or whatever).
It can make you seem like a generalist, when in fact you are just a transcendent specialist.
I am not sure if this submission is tongue in cheek or not.
Once you have your small niche in a firm grip, you can expand outwards.
Now I'm a person that talks to many specialists and brings ideas together to create new research paths to go into. I talk a lot, I write a lot and do some programming. According to tests I'm an extroverted person with a short attention span who is motivated by frequent changes. My current position requires this of me.
If you prefer to just focus on getting a single, (complex) job done, introverted, away from other people, you're better of specializing imho. Me, I get new ideas by talking with others and can enjoy meetings. Many of my colleagues can't, they just want to get their current task done ASAP.
Extreme specialisation seems to be correlated with unhappiness so it might be better to be good at many things if you want to have a happy life.
Certified AutoCAD technician
Certified TIG Welder
Degree in Supply Chain Management
Certified Bicycle Wheel Builder
Proficient in 3D Modelling
Launched an ISP in 1995 that is still going
Project leader for a charity market garden supplying produce to a food bank
Assistant director / Assistant Producer of a feature film released on DVD (you can buy it on Amazon)
Producer of 4 music videos that have appeared on MTV
Made most of my own furniture from scratch - bed, table, freestanding kitchen unit, chairs
Was resident VJ at a successful rave series for 5 years
Appeared in stage plays for paying public
Qualified scuba diver
Arrested twice on TV on environmental protests
Occasional data analyst for a Superbike racing team at the national level
This isn't even my final form & this list is incomplete
Live life, box sets are for the dead to get buried in.
The problem with going deep is picking the right discipline. Since you may pick wrong initially, going broad first allows a chance to pivot to a different skill to go deep on.
The first skill is the ability to learn in a fast organized manner.
Source is here: https://spideroak.com/solutions/semaphor/source
Open source FTW
Work in progress: https://github.com/Cloud-CV/cvfy-frontend
It is a platform to build pipelines to showcase machine learning models on the web. You select input components, output components, and use the cvfy-lib python client to connect all these.
1. Spectacle (https://github.com/FormidableLabs/spectacle), Presentation Library
2. Victory (https://github.com/FormidableLabs/victory), Graphing Library
3. Radium (https://github.com/FormidableLabs/radium), Component Styling
There are simple components, and then more complicated concepts like higher-order components and factories. It has very good documentation, and is under active development.
"debugger.html is a hackable debugger for modern times, built from the ground up using React and Redux. It is designed to be approachable, yet powerful. And it is engineered to be predictable, understandable, and testable.
Mozilla created this debugger for use in the Firefox Developer Tools."
The code is also open source: http://github.com/nylas/n1
(I work at Nylas)
Contains documentation and unit tests, plus a few neat react tricks (like a custom React-router Route component and an accumulator saga), documented there:
* http://marmelab.com/blog/2016/09/20/custom-react-router-comp...* http://marmelab.com/blog/2016/10/18/using-redux-saga-to-dedu...
check it out here https://github.com/desklamp-js/desklamp and feel free to make pull requests and submit issues.
good luck in your tech journey
Source Code: https://github.com/codemy/invoiced-ui
Also: I would highly recommend getting familiar with both npm and Babel/ES6/ES2015 -- even if you're not a node developer.
I found that understanding the tech was one thing, but when I actually started building my own projects I sought out community help with specific questions I had.
They are also accepting of new contributors.
Just leaving this here for reference and as a resource.
It has just two reducers, uses redux-promise-middleware to make one ajax call, and uses Semantic-UI for the UI.
It even has user interface guidelines for the components.
A Guild Wars 2 Armory. Fairly impressive. You can view it live too https://gw2armory.com/
GitHub: https://github.com/ayxos/react-cellarWeb: https://react-cellar.herokuapp.com/
React Native, but same idea. There's also an excellent set of posts at http://makeitopen.com/ which run through how it was built and why.
It's responsible for a lot of my 'aha' moments about Flow type-checking and Redux.
The trick is to find the really good accounts to follow. To make that easier, I wrote a tool you can use to find the exactly the twitter account you're looking for: http://www.find70.com
I have a folder called "daypages" in my dropbox. Each day in my life becomes a file in this folder. Today's is "daypages/2016-10-26.org" That's about it. I don't really organize by project much.
Each day typically covers the tasks that I intend to get done that day, along with places I've been / friends I've met. The occasional tearful journal entry punctuates the otherwise mundane. Every morning, I spend a few minutes arranging today's daypage and rescuing forgotten tasks from yesterday.
No matter where I am or what I'm doing, a keybinding quickly flips to today's daypage. From there, keybindings can go back or forward by day or by week. I just jot everything down as I think of it or experience it. (I implement this with emacs/org-mode, but i'm sure you could extend this idea to any configurable text editor)
When I need to find something (whether "united frequent flier number" to "cool restaurant in SOHO" to a link that i captured six months ago), it's only a `git grep` away. Emacs has incremental search for this. If I need to schedule something, it goes in my calendar or in that day's daypage.
When I'm in the mood to reminisce, I just flip back to last year's daypage and spend the afternoon drinking tea and reading about the lovely things that happened last year.
It's like Google for the last three years of my life. Maybe this wouldn't work for you, but my small but growing collection of daypages is now one of my most prized digital possessions.
* Camera - https://www.simongriffee.com/photography/
* Simplenote - https://simplenote.com/ and Notational Velocity - http://brettterpstra.com/projects/nvalt/
* Website with tags powered by Hugo static generator - https://gohugo.io/
Someone please make a browser-based wiki that works offline (HTML5 local storage) and can be used on any computer, including pocket ones like iPhones, and keeps your information synchronized between them.
- To do lists (prev. Org mode, OmniFocus, Things, many others)
- Bookmark lists (prev. raindrop.io, Pinboard, others)
- Kanban boards (prev. GitLab, Trello, others)
- Wikis (prev. MediaWiki, Confluence, TiddlyWiki, etc.)
- General notes (prev. my own tool, OneNote, Evernote, Simplenote, many others)
- Photos (I share using Notion and use Google Photos)
- Files (I share using Notion, but still use many services for this, including S3, Dropbox, GDrive, ...)
I'm building an enhanced text editor that makes viewing/editing taskpaper files more convenient:
- Interactive programmatic access via an embedded scripting console - GUI for creating/editing tasks and tags (like calendar widget, autocomplete) - Enhanced views, for example: - Calendar view - Priority view (automatically sorted by @due(DATE) tags) - Bookmarks view - HTML "linkified" view - Recurring tasks
- Bkmks  - Drafts app  - Simplenote  - Notational Velocity 
- Todo lists and reminders. org-agenda. - Bookmark lists. org-capture and org-protocol. - Kanban boards. I don't use this, but kanban.el. - Wiki. Org-mode files and grep/ag with helm. - Financial tools. ledger. - Calendar/reminders. Org-agenda. - Files on disk. dired, org-mode. - General notes. Org-mode. - Literate programming. org-babel. - Mail. mu4e. - rss. elfeed, gnus, or rss2email. - git. magit. - irc. erc. - ...
It's a non-linear graphical (in two senses of the word) knowledge management software that stores universal links to all of your stuff, local and in the cloud. It also does notes, tags, and script nodes (which can for example be used as alarms / reminders) and represents EVERYTHING as a great big graph.
The main UI element is a TableTop, which is also just a node in the graph that acts as a visual slice through it. Nodes (normal and other TableTops) can live on any number of TableTops.
Non-nerd users can see the TableTops as an infinite number of large work tables with your de-duplicated documents on them.
I have to work on the TL;DR. I also have to work on not rewriting the prototype every few months. :)
Unscheduled todo goes into ~/todo.
Documents are in ~/d/org where org is the organization (school/company name). There are often subfolders, like subject name for school. Archive in ~/d/org/_archive/year. If a project is still running, it is still in the ~/d/org root, not in the archive, regardless of how many years it spans. I might sort by year inside that project folder if there are files ready for archiving.
Personal projects I generally sort by language (~/p/py; ~/p/php; ~/p/txt; etc.), for some reason that works well. Projects that I don't touch anymore (use nor expand) go into the archive folder (~/p/_archive). Maybe I should start sorting the archive by year as well, but it's not big enough to warrant that yet.
Collections like downloads, disk images, temporarily cloned git repositories, etc. go into separate folders, which makes them easy to manage and clean up. Unless they really belong with a project (code dependency) or cannot easily be re-downloaded, then they go in the project's folder.
This gives me: - A Git interface. - Integrated Kanban board - Integrated Wiki - Integrated CI - Integrated Slack Clone (Mattermost)
I now use Mattermost channels to handle most notes, bookmarks, etc.
I use the kanban board for ToDo lists.
I use the Wiki to document damn near everything.
I've also recently started using Amazon Drive ($60/year for truly unlimited storage) to backup everything. I run it on my NAS which hosts all of my local media and daily backups of all household computers.
Amazon Drive also includes Amazon Photos. Both services have web and mobile apps.
I use combinations of Mattermost and AWS Lambda to schedule/trigger things. (Build and deploy the wife's weekly webcomic every Wednesday at 8am, for example)
The goal of the tool is to use known commandline tools (for example taskwarrior (todo), khal (icalendar), khard (vcard), beancount (financial data), mutt (Maildir actually) and so on) and give the user the possibility to (semantically) connect the data of these tools. Then, one can do data mining on PIM data.
imag is in pre-alpha shape and only few things are there by now. 3 days ago I released version 0.2.0 with tools (we call them "modules") for the following "pim aspects": bookmark, counter (this was a first example module), diary, link (to semantically link data), notes, ref (to refer to files outside of the "imag store"), store (to do plumbing in the "imag store"), tag (to add tags to data), todo (basic integration for taskwarrior) and view (to view entries from the "imag store").
As said, we are in a really early stage of development and only few things are there yet. This is a hobby project I'm working on in my free time (also to learn Rust) and I only can make progress if I have enough time to do things.
I also write blog articles about imag every two weeks about what's currently going on in the codebase. Read about a use-case I'm thinking about in one of my blog posts - and yes, these are really ambitious goals!
Feel free to ask questions!
Edit: Fixed link markup. Sorry about that.
: https://github.com/matthiasbeyer/imag: http://beyermatthias.de/tags/imag.html: http://beyermatthias.de/blog/2016/08/07/imag-usecases/
- Bullet Journal
Major tasks, journaling, and goal tracking in a Bullet Journal on a per-day basis. Monthly goal lists live in a separate entry, and daily scheduling happens via a month page. Most self-driven work comes in through here, and I'll usually keep this open nearby while I'm working. The physicality of the journal helps a ton.
Inbox-as-todolist. "Starred first" view allows top priority tasks to be visually distinct. Most work from other people comes in through here, however it's really convenient to schedule or bounce things to the near future. Lots of people use Boomerang for this but I prefer followupthen.com - I can send/fwd an email to "tuesday", "january" or "3weeks" @fut.io and it pops back into my inbox that exact morning.
- Google Keep
Random unassigned tasks live in Google Keep, the Android "OK Google - Note to self, get new shoes" voice command saves directly into Keep. This is extremely convenient as a place to store random nagging thoughts while walking down the street. Having a Keep widget on my homescreens ensures that I see the list often.
I just throw in all my personal notes and to-dos in the text file. And remove them when things are taken care of. If it gets too crazy, I either get stuff done, or purge projects. LArger, long-term projects and pipe dreams go in the trello board.
Financial stuff runs automatically between direct deposit and auto-pay on bills. So I just put all mail or paperwork that show up on the desk in front of me, and if there are papers there, I do something about it, then put them in a filing cabinet.
Everything work-related goes into tracking systems at work.
So... just one text file, constantly open and with frequent edits, and a trello board I check out when I am caught up on things.
Bookmarks - Pinboard with weekly backup to json/text.
Notes - A bunch of markdown files in folders (diary,projects,etc). Every day is a new file. I have @tags littered all over my notes for searching. Beauty is that there are many apps that can write markdown and search plain text.
Finance - ledger-cli, well, actually my own version with better reporting abilities, in my opinion.
Task management - to-do.txt. Again, many apps to choose from to manage the file.
Syncthing - Sync all of the above everywhere, plus other stuff.
Backup - restic and rclone.
Also, everything I've mentioned is cross-platform. Maybe not the application, but the source data is, and has an application that can modify it on almost every platform.
* Also keep Slack open when I am working. If someone needs something, they can ping me on Slack and I will be available within 5-30 minutes.
* Gmail stars for everything I can't address immediately. Everything else is dealt with immediately and inbox count is 0 for most of the day (both work and personal addresses).
* Iphone calendar (with alarms) for everything I am putting off for later or need to schedule/remember
* Iphone notes for everything I am putting off indefinitely (movies/books/games to consume, gifts to gift, songs to learn, general goals for the next few years, travel destinations, events)
* Occasionally I leave things out of place so that I remember what I'm doing next time I leave the house (tennis racket on the bike + tennis shoes and shorts/compression shorts in my bag)
That's pretty much it. I really don't like having to keep things in mind. And when I want to zone out on a run or a vacation, I can safely do so knowing whatever I need to accomplish is on one of those lists and will probably get an alarm from my calendar if its urgent. I used to love using Pocket for reading papers/articles when I don't have a reliable connection, but its completely broken now and doesn't save pages consistently or renders pages unreadable.
IMO maintaining a wiki is way too slow and (depending on your work place) only accessible across VPN, which is incredibly inconvenient. Paying someone to act as scrum master/maintain a kanban is generally a waste of money/time as well, unless you work at a huge company (10,000+ people across hundreds of teams). But I'm biased and have always had a strong preference for small teams.
For Kanban's, I have used Trello, but got a little annoyed. I recently found this personal Kanban project:https://github.com/greggigon/my-personal-kanbanIt's use is very simple, and I find that it works well for me. A little difficult to share among a group though.
Finally for All the rest of my documentation: Keepnotehttp://keepnote.org/This glorious little tool handled nearly anything you can throw at it. It supports Windows and Linux ( I am not certain about Mac), and it is search-able. I have used it from all my work related notes, specifically for debugging solutions, like Binding Exceptions in Telerik.
I've used txt files/folders, then excell/word, then markdown (easy to write & read), and wiki.Then I found freeplane, started to play with it and never got out, its incredible: use plain text or html (to format your notes), insert images, links to external files/folders, the visual mind-map representation gives a great overview of your notes and lets you organize in a foldable tree (branches, parents, childs) your notes (like in deeper layers of detail).
After the initial text/html nodes, branches and folds, I started to use "styles" to add icons and automatically format certain nodes with a background color (ex: TODO=yellow backgrnd, DONE=green backgrnd, PROBLEM=red backgrnd, ...)
Why is freeplane better than the others methods I tried before? It organizes knowledge in a foldable tree, that gets bigger and bigger over time, and after a few years, its just easy to "find" in the notes. It also performs quite well (my maps are huge, huge, years old huge)
Have a look and decide for yourself.
My task-list is broken down into times and days like:Task ListAM - morningMD - middayPM - afternoonN - evening
Oct 25 AM - send email for x
For anything which I can't figure out a way to tie to one of my current goals, a helpful general rule of thumb is that, it may not actually be that important to hold on to. There are of course exceptions, but they're few enough that a nice folder structure on my hard drive can catch the rest.
I've been using Pinboard for a while as a bookmark list, but find the lack of any structure beyond tags a bit limiting. Just feels like I'm dumping links for the sake of it and will never really end up referring to them again.
Even finances and accounting: http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-l...
Over time I've figured out a good organizational system (folder hierarchy) that makes sense to me so I know where to find things when I need them.
The "safety" of plain text files feels good to me for such personal / important data (after years of trying different apps/services, only to have them go out of business or cease development or not work on a different platform or have sketchy privacy policies).
Cool quote in a book? Put it on a card and file it by theme. Reminder about feedback I want to write up for a colleague? Put it on a card. I did something really great at work and want to remember it at annual review time? Put it on a card and file it under Personal Achievement. Etc. Recipes, Writing ideas, presentation first drafts. Cards work well for all of that.
I'm really using a combination of two systems. The first is Ryan Holiday's index card system for harvesting the wisdom and interesting bits from reading. The second is an index card version of the 43 folders tickler file. It's not a perfect system, but I love t and I like that it is something I can keep doing forever independent of any stupid decisions by Apple or app developers going under.
To get started you need:
- Some nice index cards. I like the Exacompta ones.
- Tabbed divider cards. Smead makes really nice ones.
- A way to carry some with you all the time. Right now I'm using the Nock Co Fodderstack for this.
- A way to file them. You can get some crappy boxes on Amazon, or something nice and vintage off eBay or elsewhere. Index cards used to be a lot more widely used than they are today, so the old selection of index card furniture is much better than what's available new.
Documents, sheets and notes, are in nextcloud, as well as pictures and other things. Calendar is there as well. Its all in one server, with raid0 ssds, raid5 for massive storage, a few "service" VMs like for nextcloud, a few containers here and there, with easy access and overview of it all on the hypervisor. Android phone has notes which is nextcloud notes application for simpler reminders/buy-milk kind of things.
Boagworld has a great video on his setup and how it all works: https://boagworld.com/working-in-web/omnifocus-2/
Getting things done book: https://www.amazon.com/Getting-Things-Done-Stress-Free-Produ...
I use a file called ~/TODO for that in this format:
| % cat ~/TODO | == EASY == | todo/no/progress | . task/some/progress | x task/done | | == MEDM == | todo/no/progress | . task/some/progress | x task/done | | == HARD == | todo/no/progress | . task/some/progress | x task/done
I use a file called ~/SITES for that in this format:
| % cat ~/SITES | | begin category | http://link link name | http://link <b>more interesting link</b> | begin subcategory | http://link link name | http://link <b>more interesting link</b> | end | end
> * Financial tools
Just a XLS file with GNUMERIC/LIBREOFFICE for editions.
> * Calenders/Reminders
I use a file called ~/CAL for that in this format:
| % cat ~/CAL | 09/28 c car/something | 10/04 B birthday/someone | 10/08 x some/event/other | 10/12 N some/name/event | 11/10 B birthday/someone/else
| == | TODAY IS 10/26 B birthday/someone | 15 day(s) to 11/10 B birthday/someone/else | 22:54|hostname|dir % _ | ==
ZFS with LZ4 compression + GELI encryption on FreeBSD.
Very fast to make a quick list, but of course awesome filtering/calculation/lookups etc.
I have a to-do.xlsx for work, and one for home. Different sheets for to-read, to-call etc.
I have a file where I keep project ideas organized by category(webdev, ML, writing, etc).
And I have a file where I keep my daily notes(I write down most of my thoughts, it helps me to focus).
In that file, I use tags like:
- #pst and #vid for blog posts and video ideas
- #prj and #sup for project and startup ideas
- #ftr (or #bug) for feature ideas for my projects
- #link for useful links
- #jok for great jokes I've encountered or came up with.
That way I can always search through this file and easily find information I wrote down years ago.
I also put symbols >> and >>>> at the beginning of the most important ideas, so that I can easily search and find the most important epiphanies I've had this month/year.
Also, I highly recommend an app called Editorial for iOS. I use it constantly, it's incredibly powerful, and has amazing automation features. I can create shortcuts to auto-insert current date, some tags, etc. I can search through all of the dropbox files, and I can write python scripts to automate any text manipulation. It's amazing.
* Calendar as overarching to-do, covering errands, appointments, blocks of "do this work". Sometimes I follow it closely, other days it is largely a suggestion.
* Mindmapping to collect notes, outlines, brainstorm. Lately I've used Coggle  for its easy sharing. When I need to add details, the nodes may grow into Gdocs links.
* "Scratch" text file when I just need to jot work things down and I really don't care about the organization yet. If it becomes more lasting I tend to move towards the other tools.
* Trello when I want to cut out more discrete tasks over a longer period and log their status.
* Riot.im to talk to myself. This is something new I'm trying, which is that I can start a conversation without having someone in the room yet, by thinking "out loud". Then I can subsequently invite people in to continue it. A tiny nudge in context that distinguishes it from dumping a text document on someone.
Bookmarks:Pinboard, as well as pocket/instapaper for offline reading of bookmarks.
Financial tools: Mint by intuit to keep track of all my accounts, numbers/excel for budgeting.
Calendar/Reminders: Google calendar and macOS calendar. I use siri/google assistant to capture spur-of-the-moment things that I don't want to forget.
Files on Disk: Dropbox. Backblaze for backups. Google photos and icloud photos for extra photo backups.
Wikis/General Notes:Emacs org mode. I keep a journal.org file, that I sporadically update, as well as an ideas.org file for things I'd like to investigate/try build in the future.I use evernote for lists/notes from mobile devices as I haven't figured out a good way to use org files on iPhone/Android.
There isn't much overall integration, I just know that for important files I reference dropbox, Financials and Bookmarks have their own services, and then notes are going to be in emacs or evernote. Events/reminders handle themselves as I typically schedule them in the stock calendar/reminder apps and forget about them until I get a notification. I don't find the lack of integration to be a problem actually, as long as I know where to look for something based on what it is (e.g. notes -> orgmode/evernote, events -> calendar/reminders, files -> dropbox etc.)
* To do lists/Reminders - macOS reminders * Bookmark lists - Safari bookmarks * Kanban boards - Trello * Wikis - http://taoofmac.com (https://github.com/rcarmo/sushy for the engine source) * Financial tools - Numbers or Excel * Calendars/Reminders - macOS Calendar * Files on disk - Dropbox + a NAS * General notes - Evernote (now OneNote) * Mindmaps - Mindnode (works great on iOS) * Photos - NAS
* I left Evernote around 6 months prior to switching jobs because the app was becoming useless and migrated everything across to OneNote (which was free anyway). That gave me: * To-dos * Notes * Blog drafts (I wish it did Markdown, but...) * Occasional web clipping I want to keep beyond Pocket. * I started using Pocket more to bookmark stuff I'd want to follow up at home or on the move * I started using Chrome more (thought about Firefox, realized that Chrome also kept extensions synced the way I like it. Would switch if I could set up a private sync backend) * I started using OneDrive alongside Dropbox at home (I don't run Dropbox on my work laptop, but some files I might need at work like school schedules and stuff go on OneDrive) * Trello was replaced for work purposes by Office 365 Groups (works pretty well) * My NAS now backs up nightly to Azure * I use Outlook for work calendars, iOS to access everything (Outlook on iOS is pretty good and has its own isolated calendar, which suits me fine)
In general, I don't mix work and personal stuff (OneNote is an exception because it can _access_ different notebooks, but they're on two separate accounts. I generally access my "Shopping" notebook at work to check on to-dos and add stuff, then close it).
Right now my Trello board is organised based on the work I need to do for a week. I haven't really experimented with changing this frequency though as it pretty much works for me now. And a lot of times, I need to sub divide my weekly tasks and for that I use checklists. When needed, I create separate reminders for these sub tasks using the Reminders app(primarily because it is super fast and syncs well across my devices).
When I need to look for something, I first use Spotlight to search for it as it can search across all of these apps. Works most of time, but I have to search individual apps for better results at times.
I can be up-and-running on a new system in under an hour. Just install my IDE's, get the Adobe CC from the cloud and get started.
Calibre (https://calibre-ebook.com) for docs/ebook management (metadata), with Recoll (https://www.lesbonscomptes.com/recoll/) for full-text and metadata search on Linux.
notion.so looks also nice, but I can work more smoothly in dynalist
The journal I keep is on paper. I find that writing down helps me clarify things in my head. It works better than writing on a computer, perhaps because hand writing is a slower process and you get time to think things better.
-- Calendar for events e.g. Google Calendar
-- GoogleMail with its task function for emails
-- one file for yearly, quartely and weekly goals
-- a normal file structure, with a README in each respective project folder, all literature, documents contacts, work, etc
-- one hard copy lab book for conceptual work.
What all these apps and lists get wrong is the following: What you know and what you need to do are highly related.
Having said that, the things I come back to are Trello (Kanban-style boards), Pinboard.in, a personal wiki, and Google calendar. I like everything web-based so that I can access things wherever I am and whatever device I choose to use.
Over and above that, I use a paper-based daily planner that I've iterated over time. I pull everything to do that day on to it, then bin it at the end of the day.
Version 3 is here: http://www.slideshare.net/dajbelshaw/dougs-daily-planner-v3 (CC licensed)
I usually use a combination of OneNote & Outlook for office work organization.
- One note: For organizing web clippings, information, self help tutorials, information that I might need to reference back some day etc.
- Outlook: For my meeting requests, reminders, appointments, TODO tasks etc.
- Trello : For my goals and my self-learning stuff (which I rarely re-visit after creating it ;))
- Google Keep: For quick lists/reminders
- EverNote: For some important articles/algorithms/programs that I might need to refer time and again at an urgent notice over my smartphone.
- Google calendar: I failed at integrating this with Trello, but otherwise, this is an excellent tool for scheduling your day (exercise hours, recurring tasks etc).
Overall, I find OneNote to be an amazing tool at organizing information and I think this has the potential to be that solution for 'one size fits all' scenario. I'm really surprised MS just gives it away for free and doesn't market as much as its other Office tools. The only reason I don't use it for my personal tasks is due to the lack of a good android port. OneNote was(still is?) atrocious w.r.t memory and execution on android. The desktop/mobile app would hardly sync well most of the times and the layout design was messed up. Felt to me that someone just copy/pasted the desktop app on android with little modifications.
Only exception is when I am on the go and I want to take quick notes on my phone. For this I use google keep, making the notes sticky until I am in front of any of my laptops and dump the note into org mode again.
I still have found my holy grail : a kind of knowledge management software where I could just stuff things probably with tags.Not only links (I have pinboard for that) but ideas, snippets of knowledge etc.
This would be online (not necessarily self-hosted) and I'm willing to pay for that.
Accessible via smartphones and potentially with an email gateway would be great.
I don't think mindmapping software fit the bill. I really would like tag and/or full-text search.
Wikis come close but it's quite cumbersome to add a piece of info.
Goals - Streak (IOS app)
Tasks both timed & untimed - Any.do (IOS app)
Financial - Quicken (IOS + desktop app)
Long term notes - OneNote
Short term notes - Notes
Files - I have a disk structure that makes sense for me. Augments with OSX tagging to ensure documents that require timely deletion are dated & marked for deletion.
These all reside on my phone's first screen home.
The tools currently are Gmail and Google Calendar.
I've tried many times to try new tools and processes, such as Trello, Evernote, Remember The Milk, Getting Things Done, Kanban, etc. Pieces of those processes have made it into my workflow, such as weekly, monthly, and quarterly goals. But the tools still end up being email and calendar.
I often thought that store some information as Prolog facts would make it more accessible while being somewhat structured. I have not had time to build a proof of concept on this.
- Spurn ~. It generally gets cluttered with machine specific stuff.
- The primary goal is to preserve knowledge.
- The data should be easily readable in 20 years time on hw/sw not yet invented.
My 'digital life' goes in its own folder (eg /foobar), which is Syncthing'ed around to various machines, and backed up periodically. It's very big, and contains a snapshot of 'everything' I want to preserve.
Cron run various scripts to pull data from multiple services (e.g. Pinboard, DayOne, etc) so if they ever go down, I have the data I created on them.
I segment documents and projects that I create / work on from those I've just downloaded to use. This results in a fairly simple top level folder structure:
- docs: Documents and textual data
- dev: Projects, design work, development etc
- external: External tools, software, etc
- media: mostly video/audio
Projects of course do live in their own git repos.
- Emacs org mode for notes, todos, etc (best in class)
- DayOne for journaling and notes while mobile (integrated with org notes)
- Pinboard bookmarks
I'm not a huge fan of using fancy project management software tools, because fashions change, tools go out of date, data gets lost etc. Straightforward text files for most things is the best combination of usability and persistence for me. Wikis are great, but suffer from this - they need maintaining, software needs updating, the database format could change, etc. A bit of work to get a text based system going is totally worth it ;).
* To do lists/Reminders -> Google keep * Bookmark lists -> Chrome bookmarks (automatically synced, search works in content as well) * Kanban boards -> Trello * Wikis -> Nope * Financial tools -> Nothing * Calenders/Reminders -> Google calendar * Files on disk -> Total commander / Dropbox * General notes -> Asana * Music -> Google music * Videos -> YouTube
Instead we have what we have today: lots of alternatives that act as replaceable parts of a bigger web. Luckily most of them have API-s and things like IFTTT and Zaiper exists.
For side-projects kanban boards, I just use Gitlab issues' kanban view.
2) I don't. If it doesn't fit into the above-mentioned 2 page document it's not important enough to be categorized. Categorisation (control) used to be a major source of stress in my life.
3) For academic paper/thesis writing I am actually working on a software to organize all research/quotes and then keep references to them in a "main document". Contact me if you'd like to know more.
OmniFocus for ToDos/Reminders and synced issues from JIRA (work) and GitHub (personal projects)
Evernote for taking notes, capturing webpages/blog posts I want to save/read later
DevonThink for going paperless at home. Scanning everything that comes into the house.
Other than that, Simplenote for notetaking on web, android.
Lastly Google Drive is heavily used for the rest.
Evernote (coupled with a ScanSnap document scanner) ->
Documents Financial Statements Contracts Receipts Code snippets Infrastructure notes Invoices / POs / other financial docs
Email Calendar Bookmarks (Chrome) Spreadsheets Docs
To do lists Reminders Project Management (lists of to-do lists)
Notepad+ for iPad Pro (then shared to Evernote)
- managed owncloud for calendar
- managed, but small and lovely email provider with catch all on my own domain
- semi managed hosting (shared server with multiple non root users and ssh, unique thing) for website and quick online sharing of text or screenshots (upload via shareX+ftp)
My stack is becoming simpler as I declutter my life. On last update, I quitted Evernote and my notes are now managed on a text editor. I still use other tools for:
- collaboration (Trello, Slack, Gmail)
- finances (Spreadsheet: informal balance sheet updated every quarter).
- RSS (Feedly)
- image references (Pinterest: images with searchable descriptions. Unfortunately their search engine is bad, worse than Evernote's)
It is like Google spreadsheet and Trello made babies in my book when you utilize it's ability to add filtered Views and connect and link data across tables.
Attachments from other services, calendar views and ability to do low level formulas are other standout features imho and it just seems to fit how I actually think better than any service out there.
For pretty much everything else, I usually just keep text files in ~/Documents.
For email, I've really been enjoying Google Inbox, the ability to sleep items is nice, and the reminder function is quite a handy TODO list of sorts.
But mainly it's the vimwiki for me.
* Sometimes Google Keep for other random notes.
* Wunderlist for long term todos
* Apple Reminders for "remember the milk" type reminders
* Trello for work & personal projects
* Mint for budgeting
* Google calendar for calendar things
* Dropbox for cloud photo storage from my phone (may switch to Google photos at some point)
* Backblaze for offsite backup
For personal life, I have lots of old things in mails in Gmail (also notes in mails to self), scan paper administration type things and put them in a password protected ZIP in Dropbox, plan books to read on Goodreads, store contact info on my phone, chess games in Scid and other than that I rely on memory.
I like to keep them separate.
A Wiki (http://dynalon.github.io/mdwiki/#!index.md) works great for my work related stuff, while org-mode (http://orgmode.org/) works for everything else.
* Dropbox, for text files and code. To be replaced. * recently, Google Docs, used as an ad-hoc wiki. * Google keep for random 'check this out later' notes * Pinboard, for web bookmarks.
I like OneNote a lot more than I like Outlook, but the integration is reasonably good. You can create tasks from OneNote that give you reminders in Outlook, which link back to the rich-text "source material."
I sync most important files between 3-5 devices with Syncthing. Devices are small and portable, 2x laptop, raspberry pi, netbook, I'm going to replace it with external drive connected to my Omnia Turris soon.
I have a few external drives with photos, music, films I liked, everything is evaporating online, torrent trackers are disappearing, content on Netflix is expensive and getting worse and worse, so I 'data-hoard' everything and backup at least twice once per month.
Like a year ago I opened a spredhseet where I log all my bills and it works for me as financial database, ~20 categories of expenses, each has some subcategories.
* Kanban boards Yellow sticky notes on a fridge.
Still looking for an optimal solution for calendar though, and other information I keep in Dropbox, iCloud notes and on paper lists.
* Asciidoctor - for Notes, snippets, documents, Projects. * SublimeText + Material Theme + Plantasks for daily to do and journal. (synced through dropbox) * Wunderlist - For grocery shopping list
Unlimited list items
Tags (colored, private, public)
Search and filtering
Its nothing fency.
* Emacs Orgmode
* nvPy (https://github.com/cpbotha/nvpy)
* Asciidoctor files
Rest of the info I store in .txt files in a folder.
I am not a busy man :)
It took me a long time to find the right mix of tools that are ideal for my specific workflow. These are the tools I mostly rely on now:
- Outlook.com (with custom domain) for my personal email. I find Outlook's 'Sweep' feature a lot more feature rich than Gmail's filters. I have rules that automatically move newsletters over 3 days old to archive and then delete unnecessary emails over 10 days old automatically.
- I've grown to like Wunderlist a lot for personal tasks. It has its limitations but it gets the job done well. I don't bother with many folders etc. I just throw everything in the inbox and add due dates to it. Inbox is sorted by due date. Works great for me. Also, it integrates well with Outlook.
- Evernote is where is store anything that's remotely relevant to me. Again, I don't bother with multiple notebooks. I have 2 main notebooks - Inbox and Cabinet. All notes start in Inbox. When they are no longer needed for my day to day work, they are moved to Cabinet. All notes are meticulously organized with tags. I am contemplating having a 3rd notebook called Library (offline notebook) with all my favorite online articles tagged by topic. This might work better than a Wiki to be honest. I also use their browser extensions a LOT.
- I use aText snippets inside Evernote to log call notes, meeting notes etc. using a standard format. I have quite a few other snippets that I use in other applications as well.
- All my favorite articles are in Pocket
- All my personal files are on OneDrive. Work files are on Google Drive (it's easier to collaborate on Google because everyone I know uses Gmail / Google Apps).
- Work tasks are on Trello
- Photos automatically organized on Google Photos
- My code editor (Visual Studio Code) settings are automatically backed up on GitHub Gist using https://marketplace.visualstudio.com/items?itemName=Shan.cod...
I also use a few other tools occasionally but mostly rely on these for everything. Like most people, I wanted one tool to fit all my needs but I came to accept that it's just not possible considering the complex needs of each function. You might not think about it but, task management in itself is more than just a simple list of to-dos that requires a lot of programming to be done right. Stop trying to find a one-size fits all tool. Leverage multiple tools and integrate them together. For instance, Evernote talks to Gmail through a browser extension so you can always save an important email easily. You can also create more complex workflows using IFTTT. That would be the best way to organize yourself.
Evernote (I might be way too dependent on this)
* Google Calender
* Wunderlist for task today (life and work)
Over the years I've tried many planning methods, with very low success.
I tried GTD for 7 years before declaring it a failure. It does have some good ideas that I still use, but the TODO management didn't work for me. I think it'll work only for people who have fewer goals than I do. It doesn't handle large lists very well.
Some things I kept from it:
1. Filing cabinet - Instantly useful from day 1.
2. Calendars are only for hard deadlines. Don't put stuff in there that you merely want to do. I know this is the opposite of the submission here. For me, planning everything in the calendar, including things I could ignore, led to a mess. Keep it for things you really cannot ignore.
In general, any obsessive time based planning like this submission fails for me. GTD is not time based. I prefer planning my tasks for the week, not for the hour.
I like the idea behind Kanban, but I do not think it fits most of our personal lives. Very good for certain work environments, though.
Pomodoro technique: It's good, but not really for task management. It's just a good technique to stay focused. Worked for a few months until I got used to it. Now it does not keep me focused and I can easily get distracted by the web, etc.
These days I'm trying this:
I think it works better than GTD, and fills the gaps in it. If you do not want to buy the book, a condensed, down to Earth version is available as the 1 Minute Todo List:
Personally, I feel the book is better than the PDF at explaining the rationale behind the 1 minute todo list. Reading it was very calming. It explained all the problems I had had with GTD and similar techniques.
1. If you cannot examine your todo list inside of a minute, it is too long. So spend a lot of effort ensuring your daily todo list is not long.
2. Urgency and importance are not the same. We're hard wired for focusing on urgency, so do not try to make a TODO list purely based on importance.
3. Every week, identify everything that must be done in the next 10 days and put it on your list that you'll examine daily. Things you decide not to do in the next 10 days, keep in your "list to examine weekly".
4. Every day, multiple times of the day, look at the short list and do tasks from among them. If new tasks come in, add them, but keep the list short (no more than 20-25 items). If your list is getting too long, identify things to move to the "list to examine weekly" and get them out of the way.
5. If something needs to be done today, put it on the top of your list!
6. You'll also have "the list to examine monthly" as well as quarterly.
Very simple idea - works a bit better than GTD.
I think my biggest problem is that I need to reduce the goals in my life and focus on only a few. I have more goals than time in my life, and I keep jumping from one to the other. No task management system will work until I do this. Tough decisions need to be made!
Then for every task I would ever like to do at some point in the future, from bucket lists type things to project tasks which aren't yet scheduled, I have a huge WorkFlowy list.
Then for ToDo that I'be actually committed myself to I actually use Google Sheets where each mini-project has its own row with the next action defined and a history of all activities in the context of that project (both previous next actions and other things I did for that project) on the rest of the column. That allows me to keep a 'narrative' of each projects and to group them by meaningful time horizons (i.e. on a specific day this week, next week, the week after, the month after etc.)
This sheet works really well for me together with some Keyboard Maestro macros and allowed me to grow my perfect system but it is definitely time for turning that into a proper app though.
Whenever I get around to making that app I'd also love to include daily, weekly and monthly checklist/self-questionnaires/journals for additional level of planning structure.
Some of the most mildly interesting:
V9543XD Spacecraft collision injuring occupant, subsequent encounter
W5602XD Struck by dolphin, subsequent encounter
X35XXXD Volcanic eruption, subsequent encounter
X52XXXD Prolonged stay in weightless environment, subsequent encounter
Y0881XD Assault by crashing of aircraft, subsequent encounter
I stumbled into Venkat's blog about two and half years ago and I'm still trying to find my way out. The rabbit hole gets even deeper when you look at his list of recommended reading. The material on John Boyd and OODA loops in particular has been bouncing around my head for about a year. Ribbonfarm quickly turns into a choose-your-own-adventure type of experience as it's very easy to bounce between articles and start looking everything that you don't know.
If you're interested in getting below the surface level of how organizations, teams, and business cultures work Ribbonfarm is the best place I know of that really digs into the details. If you're expecting the typical "be a leader, not a manager" platitudes, then you'll be disappointed.
Some of the thought that goes into answers is really cool. Good ones from recently are:
Some particular good ones are:
Meditations on Moloch is one of my favorites:
For me, a close follow-up is the SCP Foundation:http://www.scp-wiki.net/
All the internet debates I saw when the confederate flag came down got me really interested in how so many people could know TOTALLY different things about the most historically significant event in the country.
Now I've got about 12 books covering things in different ways (and there are so many more). Thanks to the Library of Congress and Google's efforts to scan books it's really easy to check citations as you read when you're having those "There is no way that's real" moments followed by "Holy crap! That's real?!?!"
The whole thing has sparked an overzealous interest in history, which is the subject that interested me the least when I was younger. Now I give serious consideration to pursuing a doctorate one day with the aim of being a History professor when I get closer to 50 (which is still a decade or so off).
Accident reconstruction/investigation videos. NTSB, CSB, and OSHA have some really in-depth ones:https://youtu.be/tMsjJWJFBbAhttps://youtu.be/gDTqrRpa_ac?list=PLUXYDid45duP-lg8Kh_hSw841...
Also, +1 for TV Tropes
Edit: Also, http://www.scp-wiki.net/ has some classics.
Nuclear Attack: https://www.youtube.com/watch?v=JZIynuYDRVA
Alien Invasion: https://www.youtube.com/watch?v=FKre_8rufrw
Clown Sightings: https://www.youtube.com/watch?v=ZUugY4VfgZc
I always find the EAS activation tone to be kind of bone chilling (which I suppose is its intention). I hear it so infrequently here in Canada that it really grabs my attention immediately.
Listening to the fake ones online probably makes it worse, though. When I heard the emergency alert tone come on the radio while driving from Toronto to Ottawa, I checked the skies for UFOs. Ended up just being a tornado warning. :)
Discover new command line utilities or combinations of them to solve various things. Learned all kinds of useful stuff. Things like I know but always forget about:
python -m SimpleHTTPServer
Then there is silly stuff like:
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp
Which contains (apart from the obvious Murphy's law and Occam's razor) such pearls as the Peter Principle, the Dunning-Kruger effect, and Hofstadter's Law. 20+ tabs guaranteed!
The SCP foundation is also excellent, and The Digital Antiquarian is my new favorite.
Fallen London is a browser MMOCYOA on steroids, and it's glorious.
The Jargon File (before ESR ruined it with the latest round of updates) was amazing, and still is great fun.
Bash.org is another classic rabbit hole, although far from the best for that purpose.
And Youtube contains many rabbit holes, but my favorite by far is Tom Scott's youtube channel. Also of note is Tom & Matt's Park Bench, where he vlogs with Matt Grey on a semi-regular basis, Yahtzee Crowshaw's channel, where he used to play games with Gabriel Morton in his "Let's Drown Out" series, and Channel Awesome. Just, all of Channel Awesome.
This article  is a good start even though it's 6 years old. It's not vaporware anymore, I haven't checked it in a while, but it seems to be actively developed.
If you feel that you've learned enough programming languages that you have a problem finding anything new this may give you some dopamine.
I grew up when the History Channel was nicknamed the "Hitler channel". I've read Manchester's the Last Lion, Shirer's The Rise and Fall of the Third Reich, and will soon be ordering Ullrich's Hitler - Ascent. Saving Private Ryan is in my top 5 favorite movies of all time.
This is currently my wallpaper: https://upload.wikimedia.org/wikipedia/en/thumb/5/59/US_Army...
For example, "Vaccines to prevent influenza in healthy adults" concluded, in part: "Vaccination shows no appreciable effect on working days lost or hospitalisation."
 http://www.cochrane.org/evidence http://www.cochrane.org/CD001269/ARI_vaccines-to-prevent-inf...
The last one is great. I once discovered this gem:
My current fav is Sixty Symbols, endless very interesting videos: https://www.youtube.com/channel/UCvBqzzvUBLCs8Y7Axb-jZew
Also PBS Space Time, MinutePhysics, MinuteEarth.
* Art of the Title, in-depth analyses of movie title sequences: http://www.artofthetitle.com
* Damn Interesting, it's damn interesting: https://www.damninteresting.com
* LEGO subreddit, do I need to say more? https://www.reddit.com/r/lego/
The other one I haven't been able to track down. I'm hoping someone here can tell me what happened to it. It was an art site called "The Place" hosted by a university in Canada. It was a mixed media site with art, poetry and short stories. Does that ring a bell for anyone? I loved that site and wanted to visit it again many times. But "The Place" is a difficult term to search with these days.
Sample: https://youtu.be/whgu7nX0sZc?t=522 (debunking some Shostakovich myths)
Greenberg is a gifted speaker, a composer and and music professor himself. He's sharing with us a burning passion for everything classical. If not for the informational content, then at the very least it's worth listening to him in order to infuse with his passion.
After taking some basic notions about composers and music genres, I started a YouTube safari for unknown music and composers, I am 7 years into my search already. I listened to hours of classical every day since I started. YT is a treasure trove of historical recordings, you can do comparative listening and refine your listening abilities.
There are so many composers almost nobody heard about, even professional musicians, that it's mind boggling. After all, there is a long history of classical music, hundreds of years in the making, and the level attained by Bach 300 years ago was already (and still remained to this day) cutting edge.
Imagine how interesting it would be to browse videos and papers from 300 years history of computer programming. We are overwhelmed even with the production of the last decade. Classical music has such a wonderful deep history that is endlessly entertaining.
A list of Robert Greenberg's courses is here: http://www.thegreatcourses.com/professors/robert-greenberg/
I could read that thing all day. It's been around forever, and it reminds me of what the Internet used to be...lots of useful content, simple layout, "hypertext". LINKS!
He's been maintaining it for years and my go-to source for anything laser related.
The SCP foundation has been mentioned, but a lot of people don't know they have a sister site. http://wanderers-library.wikidot.com
The wikipedia articles about unsolved problems in physics and emerging technologies are huge click holes for most nerds:
Reading about neolithic archaeology is way more fun than you might think. 10,000 years ago people built these huge sites with literally stone age technology, and the nature of their rituals and beliefs are mostly unknown.
Shodan is a search engine for devices on the Internet. Looking at other people's queries is a good way to get started. Every time you think, there's no way someone would connect one of those to the Internet, you find out that at least 10 people have gone and done just that. https://www.shodan.io/explore
Running an NTP server in the public pool gives you the IPv6 addresses of all kinds of whacko IoT stuff. Every once in a while p0f can't figure out a TCP/IP stack that's connecting to my server, so I connect back and there's sometimes a really weird device with an open telnet or HTTP port or something. About once a month I have to call someone to tell them that they misconfigured their firewall when they turned on NTP and I'm logged into an air conditioner on a cruise ship or another bizarre combination of thing and place that I never thought I'd ever say out loud. Browsing the logs is a never-ending source of amazement.
PSA: connecting to public NTP servers exposes you to people like me, don't do it unless you have to.
Surprised MF has not been mentioned, yet.http://www.metafilter.com/
Also search youtube for conference video playlists.
I have my mythtv set up so downloaded conference videos show up as a channel just like a recording on my mythtv system, so I can just sit on the couch and watch a clojure conf or whatever just as if it were a recorded PBS program. Very convenient.
As a side issue I raided archive.org for hilarious black and white silent films of Buster Keaton who was quite a comedian about a century ago.
The Digital Antiquarian - a very well written running history of computer games, especially adventure-y ones from the beginning to about 1989 now.
It has links to architects and those pages in turn have links to beautiful buildings. Also the wikipedia pages of art museums tend to be awesome timesinks as well, you can click through every artist and all of their famous artworks.
I don't use YouTube at all for music recommendations/discovery but every once in a while, I'll chance upon something amazing.
A comment on an upload of Seventh Wonder's The Great Escape led me my discovering Shadow Gallery's First Light, which I enjoyed almost as much. (Almost. SW's track, based on Henry Martinson's 'Aniara' poetic cycle is, in my opinion, at another level. Martison was awarded a Nobel prize for his work but unfortuntely commited suicide as a result of fierce criticism against this decision).
I also love ribbonfarm, previously mentioned in the thread.
Useful sections include the one on tips to speed up mowing the lawn. Less useful ones focus on things like how to open soda bottles.
The nlab is a remarkable mathematical resource open to everyone. I've been using it to contextualize my mathematical learning since I was an undergraduate.
* Rogue waves (it is not that deep of a hole but for some reason I find it interesting).
* Knot theory and category theory (again not sure why).
* Social Psychology on wikipedia
* Ben Thompson's Badass blog (more for humor and a little old now. not sure if it is updated) 
* If you are an older mid to late 30 something like me X-Entertainment  used to be an awesome rabbit hole (no it is not a porn site). Sadly it is very very broken rabbit hole with collapsed tunnels all over. The author's penchant (Matt) for 80's crap ultimately succumbed to complete utter disorganization and proper backups. It is a 404 wasteland. I recommend googling "x-entertainment and he-man" (yes it is scary to google such terms but trust me)
For linear algebra, I have been watching this MIT OpenCourseWare lecture series taught by Gilbert Strang: https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algeb...
MITOCW is a great place for anyone looking to expand on their current knowledge base and an alternative for those seeking to take a course that they did not have the opportunity to take in college.
(disclaimer: I work on Are.na...it still contains my favorite internet rabbit holes, though.)
Related, for maintaining a path during rabbit hole seshs: https://pilgrim.are.na/
Even if you disagree with him on details, if you have similar taste, you can basically look up any album and see which songs might be hidden gems. It's also amusing to read his take on just when a particular band began to decline in quality.
There is always something stimulating and new in the archives, which go back years for some programmes.
Also, every episode of "Short Cuts" (available above) is usually something amazing that you've never heard of. "Resistance" and "Rivals" are both great starts.
This is a very under-the-radar organization funded by the whos-who of Silicon Valley. See the "Billionares Dinner" they host yearly in Napa.
They have great resources such as Philip Tetlock x Daniel Khanmen Superforcasting mini-course and thorough discussions by great thinkings around tech and ethics.
This is the rabbit hole you've been waiting for. Be warned!
The title truly says "A meaningful inventory of Life".
I get lost in the labryinths in that blog covering science, philosophy, literature & art.
1.1) My current favorite is reading about the Warhammer 40k universe: (http://warhammer40k.wikia.com/wiki/Warhammer_40k_Wiki and http://wh40k.lexicanum.com/wiki/Main_Page)
2) reddit.com is a never ending source of entertainment if you know how to use it:
2.1) Go to any sub which kind of interests you and sort either by "top" or "controversial" for "all time". "controversial of all time" is especially interesting if you apply it to subs like /r/relationships (if you are into that kind of thing).
2.2) Start with this post on interesting subs: https://www.reddit.com/r/AskReddit/comments/28il5s/what_is_a...
/r/UnsolvedMysteries and /r/AskHistorians are by far my favorite subs at the moment
2.3) /r/ThreadKillers/, /r/DepthHub/, /r/goodlongposts/ are also a good sources of interesting posts
3) If you are into DIY, building boats, woodworking, metal lathes, surface grinding, scraping, and stuff like that, then you will and endless supply of videos on YouTube.
/r/ArtisanVideos is a good source for interesting videos. If you want to find your own content you should have a look at this list: https://www.reddit.com/r/ArtisanVideos/comments/3v264a/meta_...
My favorite channels are This Old Tony (his newer videos are incredibly well made and very funny if you like dry humor. Check out his video on how to cut threads on a lathe https://www.youtube.com/watch?v=Lb_BURLuI70), Abom79, Clickspring, Keith Rucker, Keith Fenner, Stefan Gotteswinter, Walter Sorrells, ...
4) Reading trip reports on https://www.erowid.org/ is also a good way to waste a lot of time
some choice links Blaise Pascal's Privilege http://history-computer.com/Library/PascalPrivilege.pdf
Ada's Sketch of the analytical computer http://history-computer.com/Library/Ada/Sketch%20of%20The%20...
Bastard Operator from Hell
https://en.wikipedia.org/wiki/Limit_superior_and_limit_infer...--> https://en.wikipedia.org/wiki/Partially_ordered_set--> https://en.wikipedia.org/wiki/Binary_relation--> https://en.wikipedia.org/wiki/Real_number--> https://en.wikipedia.org/wiki/Cauchy_sequence...
Even if I think I know what's being discussed in the article, there's always some interesting extra detail or alternative way of explaining things that's worth reading.
Try this one for starters . The earlier ones are much more hardcore.
 http://math.ucr.edu/home/baez/twfcontents.html http://math.ucr.edu/home/baez/week236.html
San Diego Air & Space museum archives. Currently they have a quarter million photos there and they're uploading new ones constantly. They have received a huge number of collections from very interesting people. Where else can you see original photos of Glenn Curtiss' first airplane, crashed zeppelin skeletons from World War I and hyper advanced Convair Centaur rocket stage manufacturing? Fascinating people in the photos too.
Freeman's Mind: http://www.accursedfarms.com/movies/fm/
I'm actually wary of woodchucks because of that now :D
Even more recently, I've been indulging some nostalgia related to my time as a firefighter by spending a lot of time on Youtube looking at videos of structure fires from around the world. It's kind of addictive to play "arm chair incident commander" and sit there going "why'd they stretch a 1-3/4" line instead of a 2-1/2?" or "why didn't the first in engine lay their own supply line" or "why aren't they using elevated master streams here", etc., etc., etc.
Stories about the development of the original Macintosh.
So many gems in this collection, they get submitted to HN from time to time.
Another older one: (somewhat NSFW horror stuff): http://deathandhell.com/
TBH my current rabbit holes are YouTube and repeatedly clicking "random" on http://www.smbc-comics.com/ .
edit: Another couple old haunts:
Of particular interest was the bankruptcy of Target Canada:https://www.alvarezandmarsal.com/target-canada-co-et-al/moti...
The affidavit of Mark Wong, then General Counsel for Target Canada, in support of the filing, provides a lot of insight into how a large corporation would structure their business endeavour into another country:https://www.alvarezandmarsal.com/sites/default/files/Affidav...
These two channels together will give you everything you need to get started and document close to every known glitch in the pokemon games. Well that and perhaps TRRoses old website for background on what exactly is going on in these videos, but that got taken down. Bulbapedia probably still has what you need though:
A favorite example of mine:
First off: No Such Thing as a Fish: https://www.youtube.com/watch?v=TO6_PRaY3aY Or the podcast: http://qi.com/podcast
I have an interest in historical cooking. This one I've spent hours watching, despite the occasional advertising:https://www.youtube.com/user/jastownsendandson/featured
World of Batshit - and other stuff by the same author - got me through a bit and I occasionally pass it onto others. https://www.youtube.com/playlist?list=PLmWeueTF8l819bt3sC72s...
This is a Tumblr blog going back years of extremely disturbing medical imagery and art of the same style. Oftentimes there's almost no context given to the pictures other than a name of the author or a title which makes them that much weirder. The images also tend to be associated with fascism or BSDM. I've spent at least a few hours trying to find more about some of the pictures because they were just too weird to go without explanation. The guy has one post about how he really values quality and obscurity in his images and nothing else; no explanation as to who he is or why he collects such horrible and terrifying art. I've always wanted to email him and ask what the hell is going on but I'm kind of scared to know.
Obviously don't click on the link if you do not like gore.
There's a lot of stuff going around and some of it seems like wild conspiracy nonsense, but the more you dig into it, the more entertaining it gets.
Some games have a ton of unused content left in them
the you open your right eye:https://en.wikipedia.org/wiki/List_of_unsolved_problems_in_m...
and then you smile at the world:https://commons.wikimedia.org/wiki/File:Complexity_Map.svg
Patients given excessive doses of radiation. Lost and stolen troxler gauges and their recovery (or not.) Reactor SCRAMS and their various causes, artfully downplayed with technical jargon. Drunken contractors escorted off reactor sites. 30 year old flaws discovered in power reactors.
Someone's got to read this stuff...
So from now on I will stop reading and only take in consideration those links who will be posted in response of this comment, if any. Let's see if magic, or coincidence, works!
I advise you to do the same! (If only we could come up with an acronym for this thing!)
Fun to just peruse the stories and spend an hour or two reading. Some of them leave you shaking your head, others leave you feeling warm and fuzzy. And yet others make you want to defenestrate printers... Who knew how much fun* people had in tech support and IT?
*sarcasm for effect
Also enjoy reading the Bastard Operator from Hell stories: http://bofh.bjash.com/
I also love watching philosophy videos on youtube.
I also highly recommend BBCs "In Our Time" series. Quality broadcasting covering innumerable subjects about history and philosophy.
Many old things, but most ideas are timeless.
Definitely this one.
Reddit, Hacker News and more in one readable page.
Very good at exploding conflations and weakly argued conclusions by those who would popularize and construe results in neuroscience.
I could read this for days.
Another honorable mention is that I've been having a great time learning about AI techniques competing at codingame.com. It's something that's easy to get into, and hard to leave, for me.
Reddit can be, depending on your community.
But I miss Kuro5hin.
biblioteca pleyades: http://www.bibliotecapleyades.net/
Search anything medical. Don't know what a word means? Look it up on wikipedia... recursively. Read cited studies. Read studies that cite studies. You could spend the rest of your life reading this stuff. I've been doing it for years.
You can click thru 60 times!
The most remote inhabited island with a strange history with a few founding families, an exodus because of a volcano, an isolated economy/society and research into asthma as a genetic condition
Some's opinion, for which YMMV, but some of the stories... Like the one where he served a warrant on a meth lab while wearing a pink gorilla suit. I nearly suffocated laughing.
Google Scholar, legal edition
http://trenchescomic.com/tales/post/9810 (dead, but a lot of content there)
UI/UX is terrible now compared to early days but I can still get lost with hours of learning from some incredible writers.
It's a puzzle solving website. It isn't updated very regularly nowadays, but all the old "Theorems" are still there.
It gets weird.
https://mindhacks.com/ -- Neuroscience and psychology news and views.
It's an amazing compilation.
The Getting Stronger blog is another wonderful health and fitness blog which focuses on training the mind to thrive in difficult conditions, though it has really amazing insights on diet and training as well: http://gettingstronger.org/about-this-blog/
It's not high-brow by any stretch, but is's a great time waster.
Now, you wouldn't call that slow as molasses.
Quite nice now and again.
Just don't go there.
ps: sci-hub too
Some more information might be helpful for answering your question. I found LegalZoom to be very helpful for simple things like forming an LLC in my State. But it really depends on what stage your company is at. What kind of company do you have and what sort of legal needs do you have (or think you have)?
http://danielodio.com/remote-always-on-connecting-our-office... is a followup that mentions that the always-on connections would have problems.
Perch is a startup that's mentioned a lot in the comments, and I trialled it and it was pretty nice, but it just shut down last month: https://perch.co/blog/goodbye-perch/
If you have a couple of Macs to spare, https://papercutsoftware.github.io/teleportme/ looks interesting, but I haven't tried it myself.
But at the time, all I knew was a bit of Python. And while I could've learned Java, I figured that being yet another Java programmer in the marketplace, but with no experience and a liberal arts degree, was probably going to get me nowhere.
So I decided I had to learn something emerging. Something where there was nascent demand but not much supply. I chose Clojure because it looked weird, and all these bright people were talking about how great it is. I invested a couple of months learning it deeply, open-sourcing my side projects, and blogging about it. I also spent that time learning non-programming fundamentals.
When I felt I was ready, I started reaching out to people in the community and companies on "Who's Hiring" threads mentioning Clojure. Within a couple of months, I landed my first full-time programming gig at an investment bank.
I know that if it wasn't for Clojure, I wouldn't be here today.
I have been developing web applications on and off throughout my now 20 year career - all the way back when Applets were all the rage. Spent time with a host of technologies and approaches: JSP/Servlets, JSF, Struts, GWT, Backbone. React has been hands down the most productive technology I've used in web space. I'm so productive using it that I now enjoy doing front-end development again. I've recently moved away from ES6 via Babel to using TypeScript with React and have been even more productive as I'm now catching more bugs either in the editor or at 'compile' time.
I'm now looking at Elm.
There aren't many extensive tutorial materials available for K, so when I decided to learn it I pored over the reference manual carefully and wrote an interpreter to try to match the spec. I built programming environments on top of my interpreter which are probably only suitable for my own use, but they make me deliriously happy to use. I made connections with both seasoned K programmers and other enthusiasts through my open-source projects with the language. Eventually I was approached with a few offers, and I am now gainfully employed by a firm which uses K more or less exclusively for backend work.
If you find a niche that makes you happy, and you're willing to invest the time to develop an unusual area of expertise, a career can follow naturally.
I saw every config file differently, trying to see how the lines between config and code blurred. Method abstractions and bottom up design became much easier. I appreciated all those prefix-evaluation assignments in college. I found a new respect for languages with good REPL's. And finally, it opened my eyes to computing history, where I discovered newer is not always better. The elders of old really got many things right.
It took me several months to develop that muscle memory to increase my productivity. Today, I can log in remotely to my AWS instance, edit a few files and do it all without leaving the terminal. I hear similar benefits on the Emacs camp too.
The steep learning curve was well worth it. I don't think I've shipped any source file without opening/editing it on Vim before.
I'm yet to find a language that allows fast prototyping while being readable six months after you wrote it - I used to love Perl, it is on pair with Python on productivity and blows it out of the water in performance, but I can't say it is easy to maintain.
C# is a pleasure to work with. It's got generics and good support for asynchronous I/O. .NET Core is also very good, it's dead simple to spin up an API serving backend using .NET MVC.
Lastly, I think the community is great. I have jumped into a couple different projects - one is a MySQL driver and another is a MySQL implementation of the EntityFramework ORM. I was able to contribute after just a few weeks of working with C#. Microsoft seems very dedicated to continually improving the language as they develop in the open on GitHub and take user feedback.
Early in my career I noticed programmers around me with 10+ years experience still typing the "preying-mantis" way (thumb+index+middle fingers pecking at the keyboard, head frantically bobbing eye-focus between keyboard and screen).
I thought to myself that if I had the same experience as them and could touch type I would be immensely faster.
I was right. Typing faster = coding faster = learning faster.
That doesn't mean I do everything in JS, but I find I like the language a lot more than most of my peers.
I remember finishing college in the late 90s and coming across Emacs (actually, XEmacs back then) for the first time. What a weird editor, how could anyone even want use this voluntarily? Until some coworkers at the place I worked back then showed me some tricks. The touch of enlightenment hasn't stopped ever since and probably never will.
- Django has been simply amazing to work with. It is the framework with which I measure other frameworks. Its far for perfect, but it has the features I need. It can also be customized to most requirements. Sure, it has downsides, but they don't get in the way as badly as other frameworks.
- React took what I leatned from Angular and just made it easy to use. Which was my #1 issue with Angular. It was too bloated. React is so much simpler.
- Visual Studio Code made me open up to newer text editors and IDEs. I've mostly been a Vim user. But VSC has proven to be very nice to use. I have not abandoned Vim, but am doing more JS dev work on VSC.
- The Django rest framework is super amazing. It just works so well with Django and allows me to build great APIs without a lot of overhead. I wish there was something like it for Java.
Then a friend offered me a software development job that I couldn't turn down, developing in a language I hadn't used before: Perl. It changed my life. I could never handle large projects before because it was too much code and too much hassle to manage it all, but Perl is so good at letting me express what I want the computer to do that wasn't a problem anymore. Perl allowed me to make software development my career, instead of just one of the tasks I did as part of my career.
Sadly, Clojure has left me in a position where Python + Django in my day work disgusts me with its mutability and unnecessary OO semantics, but I don't have much choices in my area. Ignorance can be a bliss sometimes!
This taught me: Find the tool that does the job. Even if you think the tool looks stupid.
Go recently because it was my first truly compiled, statically typed language after almost 7 years of working (I know, right?). My entire career consisted of Python, PHP, JS, Ruby - you get the idea. Go changed that. On top of that, it is a very biased language that forces it's coding standards on you. Not all are good but you learn a lot about the design decisions behind them and why things work in the way they do.
Plus after working with it for a while, even other compiled, statically typed languages like C++ became a good chunk easier.
And as a extra, very recently: Elixir. Loving functional language, Elixir taught me erlangs genservers and process manage and oh boy! I don't understand why that's not the default tool we use for webservers all the time. It just seems like a natural fit vs other languages. Thanks to supervision trees, it is very easy to write fault tolerant, highly concurrent applications that span multiple servers, without the need for extra tools.
For example: You can spin subprocesses up at any point, communicate with them, kill them, let them crash without fearing that anything else in your application is affected. When previously you needed a queue server, a cache server, background workers, service crash recovery, long running requests processing and more to build a concurrent system, Elixir makes it very easy to implement these things extremely easily as subprocessed without the need to leave your application and grab tool X (upstart/cron/rabbitmq). Worried that something will crash? Just let it crash and the supervisor restarts it. Worried that the supervisor crashes? Then the supervisor of the supervisor restarts the supervisor.
Your background worker process is on server 2 and you want to dispatch something from server 1 from the same mesh? Just use it's PID and let BEAM handle the rest. Same for Queues, Stores, Caches or anything really.
I am highly convinced that learning Elixir is something every web engineer should learn.
Common Lisp and Haskell turned me into a grumpy, unemployable mess. Terrible ROI.
I went 180 and now I'm starting to appreciate (and making money with) Go.
(Also using IntelliJ IDEA for the first time in 2002 - opened my eyes as to what was possible for an IDE, and what was possible to do with Java.)
Today the learning process is far better and smoother using Elixir and Phoenix. Jump in and give it a try!
Arduino takes care of setting up the peripherals, gives easy to use functions to control the chip, and hands over the keys to a fully ready C++ build chain. When I finished my first project I was hooked and tried to use them everywhere I could for prototyping, and always aimed to make my hardware libraries as easy to use as Arduino.
Tool-wise: Vue.js (a single file for code, templates and style is refreshing), Now by zeit.co and Sublime Text are my three hombres.
And hot-reloading, for all those hours it saves me....praise be to Websockets.
Most of the time I saw it as a tool to use, when CSS wasn't powerfull enough.
After using NodeJS I was blewn away. NPM alone was a killer feature PHP was missing.
Functions as objects that can be passed around and closures introduced me to functional programming.
I credited it for don't fear and be good at use RDBMS. Also, the most productive dev environment ever.
To show me how good syntax and well design API make the difference. Also, I'm mostly on python after all this years so is my main income generator!
Delphi (until get too expensive and all the inestability...)
What RAD is. I was able to circle around some local competition that waste time with .NET or others tools. Better than any else for GUI, far better for DB development that many (except FoxPro, of course).
After the above, is from bad to worse. ALL other dev environments provide sub-par experience, more dev time, worse at RDBMs development, etc.
My main differentiation and second income generator. In my country (Colombia) the developers are mostly on Android. I'm one of the few that do "native" iOS development.
Because is my gateway to the ML family, AGDTs and almost as good as coding in python, except for the use of type inference.
Suddenly CSS became fun again and my time designing websites went down by a guessed factor of 5.
Then I learned Eiffel. Preconditions, postconditions and invariants, in a language with garbage collection. This was obviously a big step up from C++, and I spent the next decade trying to get everyone else to see it too.
As Java took over the world I looked around for the next big thing after OO, and decided to learn a functional language. Having seen how C++ made a mess of the structured/OO hybrid I went for the purest language available and learned Haskell.
So now my hobby language is Haskell, and I'm hoping to make it my professional language some time. Once you learn Haskell you realise that every type system in every other language you know was designed by someone who didn't understand what they were doing. You are also finally cut free from the Von-Neumann architecture, so you can pick whatever form of computation best fits the problem you are trying to solve at the time.
'Wow' moments: Working in a small publicly listed company early in my career showed me how inefficient and corrupt the stock market is, gave me a brief general education in business, and showed me a lot about the nature of international business. Travel showed me how there was an alternative to decades of 9-5 work, that I had nothing to fear from failure, and that I could actually afford to start my own companies. Starting my first company from concept to break-even revenue was a great learning curve.
Best decision: Moving to China. It gave me the opportunity to start a company and learn loads very quickly.
First Vagrant, then Packer, then Consul, and soon Vault and Terraform. Everything I've been wanting to do for years, I am now doing thanks to Hashicorp.
Learn a text editor deeply (Sublime) made me extremely faster than all my colleagues.
I, as an addicted to efficiency, found my job a lot funnier everytime I learn something that makes my common task less time consuming.
Forth also made me go "wow". I really understood that way of thinking. I also think Forth is amazing for its ability to keep you from getting discouraged by allowing a problem to be broken down into new words. Postscript was my Forth "wow" combined with art.
My biggest moment was when I finally learned and understood how artificial neural networks (ANNs) - and specifically back-propagation - actually worked.
It happened in the fall of 2011 - I took on the challenge of the Stanford University sponsored AI Class (Thrun, et al) and ML Class (Andrew Ng). I wasn't able to complete the AI Class due to personal issues, but I did complete the ML Class. In 2012 I took Udacity's CS 373 Self-Driving Vehicle course (and completed it) to "make up" missing the rest of the AI Class.
But it was the ML Class that really drove things home; learning and using Octave was a revelation for me (vectors as a primitive? COOL!) - and learning to think on how to parallelize problems for that (and then later learning that an ANN was just such an application) - woke up a lot in me. Finally - a practical use for a home Beowulf cluster!
These experiences have led me to this year, where starting on November 28th, I'll be participating in Udacity's Self-Driving Car Engineer nanodegree program. I believe that as we move forward in the future as software engineers, knowing and understanding ML and AI algorithms, etc will be something employers will increasingly want and expect of developers. I'm keeping my skills current - you should too.
/43 years old, been professionally coding since I was 18 - and coding in some manner or another since I was 11 (yep - TRS-80 Color Computer w/ 16k FTW!)
Seaside as a completely different approach on how to develop web applications which turns your thinking upside down when you are used to a typical request-response workflow.
Django as a godsaint after working on a medium-sized pure-php project without any clear structuring.
I haven't touched FoxPro in over ten years and work primarily on mobile now. But a stint at Microsoft opened up all kinds of opportunity, and that wouldn't have happened were it not for a small company in Toledo, OH cranking out desktop database software. Otherwise I'd probably still be in Indianapolis cranking out CRUD for some insurance company.
When CSS and "DHTML" came around, its potential was starting to dawn on me. Others saw it first, but that was when I started to approach it in earnest.
It's pretty crazy to see how far this little scripting language running on a Netscape browser has come.
Made programming fun again. Don't seem to get to use it at client sites as it's too extreme an approach :(
I don't use Clojure as much any more but everything I learned has had a lasting impact and much of it trickles into my other work now, in other languages (mainly C++).
Fast forward 7 years and a couple of increasingly lucrative and interesting jobs...
Scala. Getting a bit bored with the Erlang ecosystem, got offered an (even more interesting and lucrative) opportunity at yet another startup, that was running on Scala/Akka/Reactive Streams. Jumped at the chance and went through what was probably the most grueling 6 months learning curve I've ever been through. Got to appreciate the benefits of a strong type system and a thoroughly modern/flexible language. Also gained a renewed appreciation for the simplicity and practicality of Erlang and it's virtual machine :)
That's where I am now. What comes next, I am not sure. Maybe Haskell or Clojure. In any case, after all this it feels like I could handle anything anyone throws at me.
I work on many projects with many different modules, languages, databases... What this enables me is to be one single command and a seconds away from completely switching context while still maintaining basically identical environment. It encourages experimentation because you're language/project agnostic and it reduces friction to getting started which is a great boon for productivity.
When I landed my first job back in 2012, I used to be a PHP developer. As obvious, working in a startup will force you to be a jack-of-all-trades, I started picking up SysOps (Linux, Web Servers, Email Servers, Deployment..etc) tasks along PHP development.
In mid 2013, I stumbled up-on "Docker" and I started learning it immediately. Mostly, I used it to solve dependency and packaging issues for my PHP projects. Soon I became fluent in SysOps tasks too.
Early 2014, I wanted to get into a new job. But not sure to continue as a developer or get in-to DevOps. Instead of doing the same old boring development, I chose to be a DevOps and the opportunity was provided because I have working knowledge in "Docker", which is not an easy find at that point of time. Actually I got a pile of opportunities and landed in the best among them. After 2 years passed by now I'm at my third job in a different startup, which again I work mostly with Docker.
By looking at the Docker's growth and usability, I could even say, it's gonna get my future job also :)
First it was a weekend project, then a full project at work, now there is a full team working on it and my title has changed to "Data analyst".
All in 6 months.
I learned C and C++ in university. It was all either procedural or object-oriented.
Lodash's "chain" was my gateway into functional programming. I am avoiding getting too deep into that because it feels kinda cultish the way adherents claim its superiority, but it has nevertheless impacted the way I approach problems.
I'd messed with some of the ESRI server products and knew basic SQL but discovering PostGIS was a paradigm shift in terms of being able to easily and efficiently run more advanced spatial analysis in a database.
- fabric, the python library: https://www.digitalocean.com/community/tutorials/how-to-use-...
- sublime text package manager
I came back to it quite recently and it's advanced a lot, although I use its C++ sister product, C++Builder, which pairs the same UI tech with C++, a trick that is hard to pull off (Qt manages it, through many clever C++ tricks; C++Builder does it through a couple of neat language extensions which I feel is cleaner overall. I really like it. This year I started working at the company making it, so full disclosure there, but I work there because I like the tech so much.)
In that time, I've never been quite as excited about anything as I am about Virtual Reality, and specifically what Google and Mozilla are doing with WebVR. I don't think people understand how much 2D systems are holding us back. We've had the same WIMP interfaces since Xerox invented them in 1980. And we largely do the same things with our computers as we did in the 90s when the GUI finally captured majority market share. Making computers smaller and faster is not going to change that. Only a complete change in the user interface will change that.
I've always banged around working on graphics, stereo-imagery, and simulation as a hobby, but I seriously started on making something about 2 years ago (actually, I recently saw my first commit for some reason, and it was July 10, 2014). When my son was born prematurely earlier this year, it lit a fire under my ass. I know a lot of people think that they need to get the startup stuff out of the way before they start a family, but for me, my family is my purpose, my family is what drives me. I feel strongly that well-designed VR systems are going to enable a whole new level of accessibility, interconnectedness, empathy, and collaboration. I need to make that world for my son.
So because of the stuff I started 2 years ago, I now have a job where I spend 100% of my time working on VR. For the first time in my entire career, I look forward to going to work. I feel great. I have great coworkers. We do amazing things together. And it's because of WebVR.
Another wow moment was Perl, and its just three data types.
Currently I think that the most mind changing languages for me were SQL, and C++. I don't know why, I just love Postgres, and I love the C++ speed.
What I like is different: I like Python, Postgres, SQL, Java, and I'm learning currently is the newest C++, and a little bit of Rust.
I'm not sure why I still have problems with understanding Haskell.
However when I'm looking for a remote job now, all that doesn't matter. I get some strange interviews with 10 minute algorithm tasks (if you don't remember the implementation of this task, which you have never seen before, you have no chance to write it). Or even recruiters not understanding the answers to technical questions they ask.
And most of the job offers I get require 10 years of writing in one language, so I'm wondering if I did good learning all those different things.
Then ActionScript 2, which was the short lived phase of Flash where it evolved from a vector toy for making spinning logos into a JS-like language (they were in the ECMA committee and everything), but you could do all sort of crazy animation and sound too. Sadly ActionScript 3 and Flex ruined it all for me, turning Flash into Java. But it was fun while it lasted.
Luckily by then JS was reborn thanks to jQuery et al, and the next "wow" moment were all the APIs known collectively as "HTML 5" - from WebAudio to WebSockets to Canvas etc.
And finally ES6 / WebPack and React / Flux, finally we could break away from the MVC model that never sat well within a browser environment, and with a modern language to boost.
Six years ago i started developing android mobile apps, always in java! So java was my love and game changing language and i still use it today for both web and mobile projects (Spring is a beautiful and easy to work with web framework).
Being able to fully control a remote computer as if i were in front of it is a most.
The distributed nature of git still amazes me.
-> multiple cursors & fuzzy search
Sublime Text pioneered multiple cursors and fuzzy search over all the options of the text editor, now most modern editors have included it. I use Visual Studio Code btw.
Web development, deployment and configuration have been vastly simplified with this open source project.
-> NoSQL databases, in particular MONGO DB
My view of data fits way better with non relational databases, and not having to deal with migrations is a gift.
C/C++ -- learning C/C++ took me from being a backyard hacker who could figure out stuff to being somebody that could code close to the metal. It helped me understand how all other languages worked.
F# -- I wanted to learn FP and started with OCAML, moving to F#. Combined with lean startup principles, F# and pure FP showed me just how much time I had been spending fighting the tools instead of just delivering a solution. Changed the entire way I look at programming.
Scheme - it's so concise, clean, Wow!
CL - LOOPing macros, SETF, OOP is just a bunch of slots and macros. Wow!
SML, Haskell - static typing done right. Wow!
Erlang - Wow!
Scala - concepts from SML + design choices from Erlang.
On frontend I think Polymer and Web Components are a game changer - very low entry barrier and they feel like a proper way to do web development where everything is encapsulated.
Then Python, where I understood that a language doesn't have to be as toylike as TCL to be extensible and embeddable.
PHP, JAVA -> RAILS, PYTHON, JS
LISPS, ML family, SCALA, GO, RUST
Pow allows you to link an app to open it as http://app-name.dev
Powder is a rails gem that automates the process for you.
Docker and containers for packaging, shipping, and sharing.
Kubernetes because it fundamentally changes the way we design and build systems.
ML (and now Cozmo+RL) cause future.
Tightly coupled, distributed DB queried with prolog
Tightly coupled UI engine
Everything under emacs
And thats for real complex projects, not making LED`s blnik.
Smalltalk - Some of the best ideas in CS that were warped, misunderstood, or ignored. Commercialism at its finest killed this and ruined the ideas from it. The productivity in this language was huge for me and the environment was and still is a wow. The aesthetics have almost always been awful though so it really bugged me that no one ever gave a practical instead of theoretical effort to improve here. The day I saw things like Gemstone Smalltalk dumping entire running states into a bug tracker and then clicking on the issue and being thrown into the debugger was one of many incredible moments. A lot could be improved, but like Lisp, lots of imitators and few equals. In terms of impact, this really led to me truly learning OOP at a higher level and made me think about code entirely differently - as a living, breathing, environment that was somehow more real than what Lisp offered. The separations from the OS into its own world made it both incredible (I still feel like using files 1-to-1 for code is nonsense) and a pain to use (ex: integrating proper source control and existing tools because of files issue).
Clojure - Finally a practical Lisp-like experience that I don't feel like a crazy person trying to "sell" to coworkers to use on a project. Lots of things here I don't like, but even the author of the language agrees with me on most of those. I like the pragmatism, honesty, openness about what is good/sucks, and more here. It's really productive for me and I feel less in Smalltalk and Lisp land. The moment was like, "Rich Hickey, OK, this guy totally gets it."
Emacs - I hated it at first, but when the concepts started to sink in for me, it made so much sense. Licensing and politics aside, it's pretty incredible. I wish there was less crust or a way to magically rewrite it and have all the good add-ons also magically rewritten. It truly is its own OS for better or worse like Smalltalk, and can be used and abused accordingly. It just still makes so much sense to me in both Smalltalk and Emacs that I'm writing code and I can use code to do things to my editor, both in terms of add-ons and while it is running (ex: if I need a special toolbar, window setup, whatever).
Acme - It's an ugly editor, but wow it's full of great ideas. I didn't particularly enjoy the mouse chording but everything else is amazing. The relationships it had with the system using it in Plan9 just made it so powerful and full of possibilities.
Overall, my best decision to improve my work was to stop listening to the masses and just try to do my own thing, with confidence. That doesn't mean just anything, rather it means follow my instincts and balance things with a healthy dose of pragmatism and extreme skepticism. That also meant ruling out new and shiny things as well as old and awesome things like Smalltalk and Lisp on many projects. Once I learned the difference of being a contrarian vs. an educated independent thinker, I became both tormented by how terrible most software is and encouraged to think completely differently and abstractly about it all. Still trying to do some great things with that attitude, and it's more the non-technical daily life struggles that are the real challenge.
Next, JSP and Servlets, JDBC, and MySql, along with POJOS. Made it easier to write consistent, clean code, and along with the Java Cookbook, programming was a lot of fun for a while.
It all almost ended with JSF, Struts, Struts2, Spring MVC, Spring DI, Pico, Wicket, Tapestry, Hibernate, JPA... these were often the product of good minds and talented engineers, but, yeah, this almost ended my career in programming. I remember seeing a sysadmin and unix book on the desk of a web developer. I asked what he was learning for, and he gestured to a long row of Java related web books on his shelf. "I just want to be a systems administrator", he said, "I can't deal with this churn anymore." What had been fun now required a 2,000 page stack of books with constant churn, and so many little integration errors that doing even the simplest thing was a true slog. I wanted to secede as well, but many teams (and recruiting managers) absolutely insisted on this stack. I figured software was "over" for me, at least in web dev...
Then, Rails. Pretty much saved programming for me. I get it, it's not the new shiny anymore, but it was blissful to get back to such a productive environment. Although the Rails community was too brash and dismissive of reasonable criticisms and efforts to improve the stack, I understand the hurt that was behind this angry rejection of the "enterprise" world. Get stuck on an "enterprise" Java project in 2004, see nothing get done, and then watch as people try to shoot down Rails or Django, and you'll understand why the anger hit this level, why people cheered when the simple words "Fuck You" were offered as a retort to J2EE criticisms of Rails. It's better to be civil even as you disagree with everything you've got, though, (the Django community seemed to understand this better than the Rails one).
Lately, scipy and scikit-learn, I hope. The ease of doing formerly difficult things may lead to some awesome new directions!
I found Python around 21-22 and it completely changed everything. I could sit down and just flash through the whole process of idea to actual execution in one day and I didn't have to micromanage everything. Programming became exciting again.
A few years later I was having a hard time with some personal issues and I ended up trying to distract myself with SICP. SICP just lifted a whole layer of fog for me and while in the process of reading it I found Racket. So I went into the rabbit hole that is Racket and found myself just unmasking programming languages in general, making all of them so much simpler and easy to learn. When I was done I just had a new appreciation for language features and how to build them.
Not all that long ago I looked at Elixir and started playing with it. While doing so I realized that there is no stack that can make playing with processes as easy as the BEAM and what that means for the apps you're making. The BEAM changed the way I looked at multi-threading and concurrency and it's the platform I'd use for all forms of control systems, with the branches in those systems either running entirely on the BEAM or just communicating to external nodes in other languages when needed.
After about 4-5 months of Elixir I landed a job using Erlang at a game studio and I'm extremely happy to be using the BEAM professionally. We're allowed to create fairly amazing things and the things we build, even though I don't agree with the reason they're being built all of the time, are made possible only because of the BEAM (running interop with Lua, etc., running all communication through the BEAM).
Lately everything's finally clicked for me with Haskell and I find myself not having issues with the things I had issues with previously. I don't know how, exactly, but I think I let my brain finally absorb "Real World Haskell" (the best book, in my opinion: If you're only going to read one, don't let it be "Learn you a Haskell". LYAH is nice as a reference, but I don't think the demonstrations in it are very good, relevant and exciting) and so I was able to _not_ worry about monads and simply use them, letting the idea of them just emerge in my head because of familiarity with them from usage, instead of forcing monad tutorials on myself.
When I started to appreciate Haskell as just another language is when I finally understood why it was so great. It's amazingly practical and I've redone some of my older Python projects in Haskell only to find that I've got about the same LoC count even with types, which means that I've got more safety, more robustness and I can add things faster and with less headaches.
With these languages, there aren't many things that are impossible, and I feel like they've all changed something in me in terms of how I look at programming.
Amazon pays its Affiliates roughly 5 percent ("up to 10 percent") of a sale, so you generated nearly $20k in sales for promoting one particular product from the first day on, constantly? And you wonder Amazon is terminating this Affiliate account?
If the $7k revenue really accounts from Affiliate promotions for only one product and a time span of the first 7 days after approval, I'm pretty sure that rings a lot of bells in Amazons fraud detection systems. I'd really like to know how one could get to these numbers without at least bending the rules of the Affiliate program.