hacker news with inline top comments    .. more ..    27 Oct 2016 Ask
home   ask   best   3 years ago   
Ask HN: What good open source projects written in React that I can learn from?
60 points by GutenYe  3 hours ago   21 comments top 19
jedireza 6 minutes ago 0 replies      
A website and user system starter. Server side is built with hapi.js. The front-end is built with React. Redux as the state container. Client side routing with React Router.



artellectual 8 minutes ago 0 replies      
I have a video series with source code, you can follow along if you want.


Source Code: https://github.com/codemy/invoiced-ui

rarrrrrr 1 hour ago 1 reply      
Not sure just what you're looking for, but SpiderOak's Semaphor is a desktop/mobile end-to-end-encrypted Slack alternative where the presentation layer is React, and the client side app backend (networking, crypto, database) is Go. That keeps the React code focused and easy to follow.

Source is here: https://spideroak.com/solutions/semaphor/source

emilong 2 hours ago 1 reply      
This is a nice, non-trivial, but not too big project in react and redux:


niftich 1 hour ago 0 replies      
I recommend 'debugger.html' [1] from Mozilla.

"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."

[1] https://github.com/devtools-html/debugger.html

praveenster 2 hours ago 0 replies      
The new Wordpress frontend code seems to be utilizing React:



umurkontaci 28 minutes ago 0 replies      
WordPress.com front end is written with React. It's one of the biggest React projects, and it is used in production. We are actively developing on GitHub and trying develop out in the open.


goo 32 minutes ago 0 replies      
https://github.com/callemall/material-ui is a great collection of components -- there's perhaps some insight into how to make (and document!) reusable components, since the project is built to be a component library for others' use
Sir_Cmpwn 33 minutes ago 0 replies      
I helped out a lot with this codebase, it's well on its way to becoming a production React SPA:


caterama 1 hour ago 0 replies      
ES6 React with react-router, server side rendering, and Webpack code splitting + tree shaking. It's based on the "huge-app" example from the react-router project.


Cymen 2 hours ago 0 replies      
If you're interested in component composition, react-bootstrap is a good one to look at for ideas:


They are also accepting of new contributors.

astockwell 1 hour ago 0 replies      
Mattermost[1]: Open-source Slack alternative written in React and Go.

[1] https://www.mattermost.org

rickhanlonii 1 hour ago 0 replies      
We wrote slack-like app for reddit called Breaker and the front-end is written in React:

- http://breakerapp.com/r/breakerapp

- http://github.com/larvalabs/breaker

boyter 1 hour ago 0 replies      

A Guild Wars 2 Armory. Fairly impressive. You can view it live too https://gw2armory.com/

whicks 1 hour ago 0 replies      
I had this same question awhile back: https://news.ycombinator.com/item?id=12497202

Just leaving this here for reference and as a resource.

hellothree23 2 hours ago 0 replies      
tbrock 1 hour ago 0 replies      
parse-dashboard: https://github.com/ParsePlatform/parse-dashboard

It's even got user interface guidelines for the components.

Ask HN: How do you organise/integrate all the information in your life?
256 points by tonteldoos  21 hours ago   223 comments top 96
gcr 15 hours ago 8 replies      
Honestly, I just keep everything in a journal.

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.

hypertexthero 13 hours ago 4 replies      
* Pencil (usually a small, well-used stub that fits in a shirt pocket) and paper (various notebooks, from Target pocket-size spiral-bounds to Moleskin to whatever is at hand)

* 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.

WWKong 20 hours ago 5 replies      
After years of failed attempts I gave up trying to organize everything and started to brutally eliminate most of it. It has been pretty liberating.
tekacs 15 hours ago 6 replies      
I now use Notion (https://notion.so/, I'm not affiliated) to replace all of the below tools that I have used in the past.

- 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, ...)

diegoprzl 20 hours ago 4 replies      

 - 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. - ...

cpbotha 17 hours ago 2 replies      
I hope to release TableTops next year.

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. :)

lucb1e 18 hours ago 1 reply      
Aside for scheduled items (they go in a calendar) and program-specific things (bookmarks go in Firefox), everything's a file.

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.

musicmatze 14 hours ago 0 replies      
I am developing a CLI-PIM suite (commandline personal information management suite) called imag[1].

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[1] 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[2] 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[3] - and yes, these are really ambitious goals!

Feel free to ask questions!

Edit: Fixed link markup. Sorry about that.

[1]: https://github.com/matthiasbeyer/imag[2]: http://beyermatthias.de/tags/imag.html[3]: http://beyermatthias.de/blog/2016/08/07/imag-usecases/

cypherpunks01 13 hours ago 0 replies      
I limit it to three organizational tools:

- 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.

- Gmail

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.

chrisanthropic 11 hours ago 0 replies      
I've recently begun migrating most everything to a self-hosted GitLab CE.

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)

howeyc 13 hours ago 0 replies      
I've given up on a whole unifying program or application. I've also been burned by either closed source apps or web apps. Very hard to get your data if support stops or you just don't have it. I try to stay as close to plain text as possible these days.

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.

laxatives 20 hours ago 1 reply      
* Emacs org mode to prep for meetings, maintain TODO lists, and general notes

* 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.

timeout27 19 hours ago 0 replies      
http://freeplane.sourceforge.net/wiki/index.php/Main_Page Freeplane - mind maps

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, ...)

Never really got into other freeplane features such as "notes" view or node-attributes. But it all went up to another level when I discovered that its possible to create http://www.freeplane.org/wiki/index.php/Scripting:_Other_lan... freeplane-scripts (in groovy or java or javascript, or any other JSR 223 language like Ruby). And using freeplane-script I started to make my own scripts, to automate repetitive tasks and improve its behaviour for my needs.

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.


jamesisaac 17 hours ago 2 replies      
Self-developed solution that gives a hierarchical structure to to-dos, reminders, and related information:


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.

jordanlev 13 hours ago 0 replies      
I've given up on task-specific tools -- because of both lack of structural flexibility and lack of data portability (several computers at home and work, mobile devices, family members you need to share a list with). Now it's all just text files in dropbox, with the occasional Excel spreadsheet for budget/money stuff.

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).

mbrock 20 hours ago 1 reply      
Org mode for Emacs does most of that.

Even finances and accounting: http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-l...

codingdave 14 hours ago 0 replies      
One text file and one trello board.

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.

antocv 20 hours ago 0 replies      
With many ~/development folders on various containers organized by "tag" and a ~/projects folder, a top-level todo.txt, and a todo.txt in each ~/development/project_name, with vim and ssh. Just use ssh + vim + a "server" at home, basic files and directories and containers to organize work.

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.

jonshariat 20 hours ago 1 reply      
GTF(Getting Things Done) method with OmniFocus

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...

OmniFocus: https://www.omnigroup.com/omnifocus

rayalez 12 hours ago 0 replies      
I use emacs with org-mode.

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.

blaedj 13 hours ago 0 replies      
To Do lists:emacs org-mode and agenda. I have one 'todo.org' file with top-level headings for each project. I keep an org-agenda buffer open to display the todo's scheduled for the current day. I try to go through my todo file once a week and clean it up, archiving 'DONE' items and deleting items that are no longer relevant or haven't been touched in a while. All my emacs org files are synced via dropbox. BTW, org mode really is amazing. I keep finding little nuggets that delight when reading about others' org-mode setups.

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.)

rukuu001 19 hours ago 1 reply      
This is deeply uncool, but I use Excel.

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.

rcarmo 15 hours ago 0 replies      
Up until recently, I used a Mac for everything, so everything was on the native services:

 * 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 
These days I have to use a PC at work (I'm at Microsoft), so a few things changed:

 * 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)
Mindmaps, reminders and to-dos are always with me on my iPhone (both work and leisure), so no need to sync them. My personal wiki only has public stuff and doubles as my blog, so the copious amount of public references I amass (see http://taoofmac.com/space/infoviz, http://taoofmac.com/space/dev/Python) is still useful regardless.

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).

vermaden 7 hours ago 0 replies      
> * To do lists/Reminders

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
> * Bookmark lists

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
I then generate HTML file SITES.htm with 'clickable' links with a script from that file in cron(1) hourly.

> * 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
... and everytime I spawn a new xterm(1) terminal a script that parses ~/CAL starts with 21 days upfront to remind me what I have to remember, like that

 | == | TODAY IS 10/26 B birthday/someone | 15 day(s) to 11/10 B birthday/someone/else | 22:54|hostname|dir % _ | ==
> * Files on disk

ZFS with LZ4 compression + GELI encryption on FreeBSD.



alinspired 2 hours ago 0 replies      
OneNote (both offline and synced) and https://github.com/greggigon/my-personal-kanban-server
buzzybee 19 hours ago 1 reply      
A lot of the changes I've made to my personal information architecture have to do with avoiding getting stuck on the things I don't need to worry about yet. I've tried to make personal wikis many times, for example, but the friction is too high. I do want more of a "searchable database" for my stuff, still.

* 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 [0] 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[1] when I want to cut out more discrete tasks over a longer period and log their status.

* Riot.im[2] 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.

[0] https://coggle.it

[1] https://trello.com

[2] https://riot.im

walterbell 14 hours ago 0 replies      
2Do (http://2doapp.com) on iOS/Mac/Android with devices synced to self-hosted CalDav server (http://sabre.io) on Linux. 2Do can deep link to other iOS apps/docs. It can auto-create tasks from email using regex filters. Multi-year track record of regular updates, privacy-oriented design, robust with large number of items.

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.

jurassic 12 hours ago 0 replies      
It's not a perfect system, but I find index cards to be superior to notebooks in almost every way. Notebooks are good for linear content, but for most of what you described index cards are better because they are modular, fileable, and sortable. Before the Internet, the world ran on index cards.

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.




mattbgates 15 hours ago 0 replies      
I created https://mypost.io/ for myself which is a web content creation tool and lets you put up a web page on the Internet in seconds. I find it handy when I'm with clients and I'm writing a list of things they want. I can use it as a checklist and later on, go back and delete it if I don't need it anymore. I have used it for demonstration webpages or just to keep track of projects I'm working on or to-do lists or for brainstorming. I even built in a feature that keeps a list of all your saved URLs so you can return back to them at any time. If I am working with a few people on a project, I just share the URL and give them the password and they can work on it as well. Definitely useful. And yeah, it's a free tool.
nithinr6 19 hours ago 0 replies      
I've a Trello personal board with To-do, Doing, Done lists along with a 'To read/watch/listen'. I send everything interesting that I see to the To Read list and once I finish going through an item, if it's interesting enough to be saved for later, I send them to Pocket and tag it appropriately. I've a special tag called 'Toolkit' to save frameworks and other techniques that I cross-tag with other generic tags. I also add notes for videos, podcasts etc as comments.

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.

eik3_de 15 hours ago 2 replies      
elorant 14 hours ago 0 replies      
I keep a detailed daily journal and every project gets its own journal with three separate documents. One to log progress, one for general notes and one for a to-do list. On the journal I write pretty much everything that I think needs further action. Then at the end of the day I move things from journal to the specialized lists/logs. Its a lot of documents, thats for sure, but its the only way Ive found to keep everything tidy, especially since I enjoy working on multiple projects.

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.

DrNuke 19 hours ago 1 reply      
I have a 16GB iPad, about 12GB available. I keep all I really need within 6GB and remove the dead wood weekly. It is still a few thousand documents but, alas, I am fully in control.
vcool07 13 hours ago 0 replies      
Office work:

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.

mikeleeorg 9 hours ago 0 replies      
I use a combination of:

* Email

* Calendar

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.

lcall 8 hours ago 0 replies      
The purpose behind http://onemodel.org is just this. The problem we have stems from working on piles of words, which makes knowledge hard to compute. The idea of http://onemodel.org is to treat knowledge at an atomic level, but still very efficiently for a human, so we don't have the constraints of other systems. More info under the "About" and other links at the web site. It's visually ugly and no mobile support yet but I use it daily and I (the author) think the ideas are needed.
rabboRubble 10 hours ago 0 replies      
Date events including timed reminders - Google Calendar

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.

wuschel 19 hours ago 0 replies      
As simple as possible, no "dashboards" needed :)

-- 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.

tytrin 13 hours ago 0 replies      
I have found that using a Bullet Journal ( a nice pen and paper solution) I can cover my Calendar, Tasks, and even general notes rather well.You can find instruction here:http://bulletjournal.com/, but the best part is that it will work with any notebook you have lying around!

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.

dajbelshaw 20 hours ago 0 replies      
As a knowledge worker, I've found that there is no 'best' way of organising information. It depends on what it is that you're doing.

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)

ews 15 hours ago 1 reply      
After trying many different options, I am sticking with org-mode (encrypted with ELPA) + dropbox or syncthing for now. I schedule weekly sessions (usually on Sundays) to sort out all information, check if my TODO items are done or blocked and make sure all my tagging is consistent.

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.

Gmo 16 hours ago 2 replies      
I'm piggy backing on this.

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.

personjerry 19 hours ago 3 replies      
Out of curiosity, is anyone interested in some sort of app for this purpose? Like, organizing references to all your other data, thoughts, relationships. I'm not sure how it would work - just thinking about it right now.
neals 20 hours ago 1 reply      
I Google Spreadsheet almost everything. All my files I keep in Dropbox. Code on Github and Bitbucket.

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.

staticvar 12 hours ago 0 replies      
This might sound crass but... use a computer. There are millions of applications that run on computers to do those things. If you are growing tired of the lock in of an application and want something that will work on all devices and for the rest of time, try using a computer in a basic way by just storing text files in a folder. I have one folder of text files that follows me around on every device thanks to Dropbox. My `todo.txt` is there, my `shopping-list.txt` is there, my `calendar.txt` is there, my `travel +notes.txt` is there. If I want to find an item with a particular tag I use what ever OS to filter by the files by `+tag-name`. I use `+` instead of `#` that twitter uses for tags because sometimes `#` will mess with an OS searching for files.
tmaly 16 hours ago 3 replies      
If it is super important, I write it down in a hard bound journal. I find things get lost in digital note keeping apps. Yes you can search, but there is no structure to the data so you get back a whole bunch of unordered keyword matches.

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.

kowdermeister 15 hours ago 0 replies      
I don't find the lack of integration a problem. I use PushBullet as an inter-device-person tool to share stuff. Not perfect, but more than good enough.

 * 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
There's no real one platform beats all and in my opinion there won't be because there are so many things to get right that it takes a huge company and tons of resources to get it right.

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.

rmhsilva 16 hours ago 1 reply      
I have a few principles:

- 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 ;).

unknown2374 14 hours ago 0 replies      
I have been using Turtl (https://turtlapp.com/) for notes, bookmarks, sharing files and journaling. It runs on Windows/Mac/Linux/Android (iOS coming soon) and have both cloud-hosted and self-hosted options. It helped me drop OneNote and Google Keep. It supports tagging the notes, but reminders are still lacking, I use Tasks (https://play.google.com/store/apps/details?id=org.tasks&hl=e...) on my Android phone to keep track of repeating tasks and reminders.

For side-projects kanban boards, I just use Gitlab issues' kanban view.

peterfisher 19 hours ago 0 replies      
* white sheets of printer paper for drawings and sketching out ideas* evernote for storing everything long term. from photos of notes, typed notes, and drawing made with iPad. (i have about 3000 notes going back to 2008)* omnifocus for todos* google calendar for events/meetings* simplenote/notational velocity for anything which doesn't need to stick around but needs to be recorded quickly
agilebyte 14 hours ago 0 replies      
1) A Google Doc that has different headings like Inbox, High/Medium/Low Priority, Scheduled and then Notes. I've been using this for 2 years and wanted to write an app that would extract the dates from the Scheduled category into a calendar, but found out a simple document such as it is is sufficient.

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.

0xCMP 12 hours ago 0 replies      
What we need is an org-mode for the web. Power of org-mode but designed for browsers and mobile first.

What all these apps and lists get wrong is the following: What you know and what you need to do are highly related.

zubairq 20 hours ago 0 replies      
I use a txt file edited in Lighttable
nazgob 18 hours ago 1 reply      
There was a great thread some time ago on HN about PKB (personal knowledge base). You might find there a lot of info. It prompted me to look for new solutions, I made a good progress but I'm still not happy. The best thing I use and can recommend is TiddlyWiki. I keep it in Dropbox so I can access it on mobile.
modoc 14 hours ago 0 replies      
While I understand the desire for a single integrated tool, I think it's better to use the right tool for each job. Especially since people work/think differently, the best way to handle a ToDo list for you may not work for me. Similar to the UNIX tool philosophy I think each person needs their own collection of tools to solve that long list of problems.

For me:

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.

blantonl 13 hours ago 0 replies      
My workflow:

Evernote (coupled with a ScanSnap document scanner) ->

 Documents Financial Statements Contracts Receipts Code snippets Infrastructure notes Invoices / POs / other financial docs
Google Apps ->

 Email Calendar Bookmarks (Chrome) Spreadsheets Docs
Doit.im ->

 To do lists Reminders Project Management (lists of to-do lists)
Handwritten ->

 Notepad+ for iPad Pro (then shared to Evernote)

Sir_Cmpwn 11 hours ago 0 replies      
For to do lists/reminders: https://f-droid.org/repository/browse/?fdid=com.icechen1.not... - it just puts them in my android drawer.

For pretty much everything else, I usually just keep text files in ~/Documents.

steaminghacker 8 hours ago 0 replies      
I used clouds to store files and my own app to store notes and calendars. Im thinking of open sourcing my app for the benefit of others. http://lexiy.com
anotheryou 16 hours ago 0 replies      
- flat file markdown wiki, md files synced to my phone with managed owncloud. Has a few main categories just to avoid the need to tag. i use it for todo, long written texts (writing my thesis in there), song sheets, arty collections, recommendations, documentation etc.

- 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)

postscapes1 14 hours ago 1 reply      
I have been using a service called Airtable.com (no affiliation) lately to organize tasks and projects.

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.

themoonbus 12 hours ago 0 replies      
* Evernote for web articles I find interesting (I love the web clipper), and for random notes

* 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

ofcapl_ 12 hours ago 0 replies      
I'm using mostly my e-mail (I was into "inbox zero" before it was a thing to be honest). I have couple dedicated folders for archiving tasks etc. If I have something in my main inbox - it means that it is related to some task that is not finished (and it motivates me to finish it). Normally I have 0-5 messages in my inbox.
galfarragem 19 hours ago 0 replies      
For the bulk of my personal organization (file organization, note taking and todo lists):


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)

Scarblac 14 hours ago 0 replies      
At work, I use what work uses -- currently Phabricator. So it goes.

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.

ivm 14 hours ago 0 replies      
Scapple[0] for non-linear todo lists and overall thinking, MoinMoin[1] stored in Dropbox for keeping information on each topic.

[0]: https://www.literatureandlatte.com/scapple.php

[1]: https://moinmo.in/

aszantu 14 hours ago 0 replies      
I have a box on my desk for Ideas, I use a calendar for appointments, since most of my work is just learning how to draw certain things that's something I just do without any system. I use anchors everywhere - eg. instead of to do listing them, I put items somewhere where I have to take them with me next time I leave the room
patrickdavey 19 hours ago 0 replies      
I use vimwiki for most things (in Dropbox), you can keep todo lists etc. in there. I'm moving towards a per-project wiki as well. I built a horrible hacky android app which hooks into any of the "sharing" menus which just appends a link into my wiki, so that's quite handy.

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.

aethertron 14 hours ago 0 replies      
My brain.

Supplemented by

 * 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 want to develop a better hypertext system for notes, drafts and essays.

astrostl 13 hours ago 0 replies      
https://culturedcode.com/things/ is the best, or least-worst, that I've ever used in terms of simplicity + power.
blindluke 20 hours ago 0 replies      
> life/work (...) in an integrated way?

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.

akerro 15 hours ago 0 replies      
I have nextCloud with Calendar, Contacts and Tasks plugins. I have my meetings, schedules, todo-lists. It contains a lot of different types of lists, like washing, shopping, todo, list of ideas, contact birthdays, I've go dozens of it. It really works, I have reminders, notes, scheduling, tasks, progress meters.

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.

pavs 13 hours ago 0 replies      

 * Asciidoctor - for Notes, snippets, documents, Projects. * SublimeText + Material Theme + Plantasks for daily to do and journal. (synced through dropbox) * Wunderlist - For grocery shopping list

hammock 14 hours ago 2 replies      
You forgot:

 * Google
Basically I give everything over to them and rely on their suite of services. It has worked out really well actually. And in fact isn't it their mission to organize the world's information?

the_jp 16 hours ago 0 replies      
Wunderlist was a gamechanger for me:https://www.wunderlist.com

Still looking for an optimal solution for calendar though, and other information I keep in Dropbox, iCloud notes and on paper lists.

williadc 20 hours ago 1 reply      
OneNote + Outlook works okay for what you're asking, but I have a hard time sticking with it because the interface isn't well-refined.

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."

flarco 13 hours ago 0 replies      


Markdown text!

Unlimited hierarchy

Unlimited list items

Printable checklists

Due dates

Tags (colored, private, public)

Search and filtering

Focus (hoist)


Colors (priorities)


List style

Word count

anton_a 11 hours ago 0 replies      
I've builded artsembler.com to organize information; Trello for job; Pocker for junk; oh, also, keepassx for sensitive data;

that's all

SticksAndBreaks 14 hours ago 0 replies      
I have a recursive folder for everything that did catch my interest for every year. It could be a git repository, but its neat to be able to search the pile of a month.

Its nothing fency.

lawpoop 2 hours ago 0 replies      
thallukrish 15 hours ago 0 replies      
Dont try to answer this question when it comes up. I have spent a lot of time personally, developed software (prototypes) and figured out that this is a holy grail.
schizoidboy 13 hours ago 0 replies      
I created an app for this: https://myplaceonline.com/
type0 15 hours ago 0 replies      
Different tools depending on the context

* Emacs Orgmode

* nvPy (https://github.com/cpbotha/nvpy)

* Asciidoctor files

* Gnumeric

iwintermute 14 hours ago 0 replies      
Camlistore anyone?
ozzmotik 13 hours ago 0 replies      
i throw it in a pile in my mind and usually forget entirely about it. probably not a helpful practice, and definitely has some influence on why my life is the way it is, but that's what I do
pawelkomarnicki 15 hours ago 0 replies      
I use Google ecosystem (Reminders, Inbox, Keep, Drive)
im_dario 20 hours ago 1 reply      
Evernote + Calendar + E-mail. Calendar and e-mail both provided by Fastmail.
nagarjun 20 hours ago 0 replies      
I think it's fair to say that there isn't a single tool that can satisfy all your needs. I'm meticulously organized but I doubt I can get anything done with just a Wiki or any other tool. You also have to remember that in many cases, staying organized also means collaborating with other people who may not share the same opinion as you about various tools.

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.

vowelless 16 hours ago 0 replies      
Doit.im GTD

Google Calendar

Evernote (I might be way too dependent on this)

xZhan3 15 hours ago 0 replies      
* Google docs

* Google Calender

* Wunderlist for task today (life and work)

DeveloperPanda 15 hours ago 1 reply      
I use Wunderlist for ToDos.

Rest of the info I store in .txt files in a folder.

I am not a busy man :)

Ixiaus 14 hours ago 0 replies      
Emacs and org-mode.
brudgers 12 hours ago 0 replies      
I don't.
PaulHoule 13 hours ago 1 reply      
BeetleB 12 hours ago 0 replies      
Wrote in a thread yesterday:

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.

Basic ideas:

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!

mtrimpe 13 hours ago 0 replies      
I use Evernote als a log for all correspondence, notes, checklists, clippings, articles etc. all sorted by creation time and tagged with relevant concepts.

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.

max_ 13 hours ago 0 replies      
Ask HN: What are your passive income sources?
152 points by introvertmac  10 hours ago   72 comments top 22
csallen 9 hours ago 1 reply      
I run https://IndieHackers.com where I interview developers/entrepreneurs about how they make money from their apps and projects. There are tons of examples there that fit into the "passive income" category as you define it ("making something that makes you money while you sleep").

A couple of good examples from the site:

- park.io (from Mike Carson) makes $125,000/mo taking domain backorders; he essentually wrote tons of scripts that buy expiring domains on behalf of his customers for $100 and that allow customers to bid against each other

- Instapainting.com (from Chris Chen) makes $32,000/mo allow customers to commission artists to turn their photos into hand-made paintings; it took him years to get to this point, but it's almost all automated and he rarely has to step in

Indie Hackers itself is my passive income source, although right now it takes a lot of work on a day-to-day basis. I'm writing a blog post about that that I hope to put up on my timeline (https://IndieHackers.com/timeline) by tomorrow. I'm doing just over $1000/mo right now, mainly from sponsors.

morgante 9 hours ago 7 replies      
A stock portfolio that I've built through consulting profits is my main passive income source. Anything else is not really "passive."

This probably isn't the answer you're looking for, but in my view the average developer is much better off simply selling their time at the maximum rate and funneling the profits into a well-managed portfolio. The median outcome for this is much better than the story on most passive-income businesses.

VyseofArcadia 8 hours ago 2 replies      
I've got a savings account. Interest on that baby is getting me upwards of 30 cents a month.
mjibson 7 hours ago 3 replies      
I run https://www.goread.io/ which is a subscription-based RSS reader. It's open source and runs on google app engine. It costs ~$2k per year to run and I make between $2k and $3k profit per year for nearly zero effort. Stripe handles payments and app engine keeps the servers running.

I consider it a high success because for the amount of marketing I've done in the last 2 years (exactly zero), it still has paying users. If I did a few months of code improvements and marketing pushes I could probably increase that income a few times.

jefflinwood 8 hours ago 0 replies      
I still get royalties from programming books I wrote about ten years ago - the content has been updated by other authors in the mean time, and the corresponding royalty split has declined, but I don't do anything active either.

On the not-quite-as-passive side, I have an iPad game that I had basically left out in the Apple App Store for several years, where it sold with no involvement or investment on my end. Only recently, Apple required all app developers to resubmit their older apps or face delisting - in my case, it involved updating cocos-2d to support the latest ARM architectures, and making a whole lot of changes for everything that had happened in iOS in the past couple of years.

I also run a small API-as-a-service, which runs on reliable infrastructure, and doesn't take much real work to monitor and/or run.

andrei512 8 hours ago 1 reply      
I run https://www.weheartswift.com/ the first site dedicated to the Swift Programming language.

I've wrote a book that teaches people how to code in swift from the ground up. https://www.weheartswift.com/swift-programming-scratch-100-e...

I've also made an exercise platform similar to codeschool/codecademy/etc that is available as a mac app using playgrounds or online by using our swift sandbox https://www.weheartswift.com/swift-sandbox/

The site generates about 30k/year in revenue growing at a steady pace. Operating costs are around 10k / year for servers/software/subscriptions/marketing.

I need to spend about 2 weeks yearly updating the book/app to the last version of swift. I also spend about 5 minutes per day replying to customer emails. It's not that passive, but really close. (ignoring time spent developing products/book)

DanHulton 44 minutes ago 0 replies      
I created http://www.ipaidthemost.com over a year ago, and I can proudly say it's earned enough to buy a couple coffees. Well, if you ignore hosting. And the few times I dropped $50 onto it to try to advertise it.

It's odd. Most people who see it think it's clever and neat, and a few will buy, but when advertised, people bounce right off.

protomok 7 hours ago 0 replies      
Portfolio of index funds based on http://canadiancouchpotato.com

 25% TSX (Canadian market) 25% S&P500 (US market) 25% MSCI EAFE (Developed market excluding Canada/US) 25% Fixed Income - cash,bonds,'high' interest savings account, etc.
Requires about 4-5 hours of time once per year to rebalance portfolio and update some partially automated Google Docs files to track performance.

Works for me...also planning to get a rental property at some point.

xchefhatx 9 hours ago 3 replies      
I have a card game business that's aimed towards women, PoCs & the lgbtq community - groups who aren't traditionally served.

Every couple of weeks I ship product to an Amazon warehouse and do a bit of advertising on Facebook. It brings in around $40k/mo and 3-4x during the holiday season.

bkrull 2 hours ago 0 replies      
I run BitPixels (http://www.bitpixels.com) that provides automated website thumbnails. I purchased Bitpixels from another HN member a few years ago and have continued to build and market it.

BitPixels currently makes ~$1k/month which is enough to cover the App Engine and DigitalOcean bills plus a bit extra. I'm working to find 1-2 more marketing channels that can drive sustainable growth.

shanecleveland 7 hours ago 0 replies      
Small tools and web apps that provide a quick solution to very niche problems. Mostly aimed at business. Primarily based on obscure forms that occasionally need to be filled out for shipping. If I find myself googling something but don't find a great fit for what I need or many relevant hits, I look into building it. Or if I find myself manually gathering and formatting data or info, I see if I can automate it. Some end up being useful/found by others. Some don't. I currently see about $300/mo through adsense. A few of these things could turn into something more if I was ever motivated to do so, but would no longer be passive. Some probably not. Most interesting is seeing what takes off and what doesn't and trying to apply that to duplicate the success.

I've tried a couple affiliate projects, but have not found a great fit yet.

whiplashoo 7 hours ago 1 reply      
I run https://mapchart.net which is a map chart creation tool. You can quickly create a map chart of World, USA, UK, Europe and more with custom colors and descriptions.

It is completely free to use and my only source of income are Adsense ads on the homepage and some sparse donations. Since May, when the site was featured on the front page of Reddit, my audience has increased with a steady rate, along with my ad revenue (almost $500 last month).

I don't really do anything maintenance-wise, except for answering questions from my users. I work on it from time to time, mainly adding new features or new country/regions maps, and I still enjoy it, as it was my first real programming project (I actually submitted it as a final project for EdX's CS50x course!).

mkoryak 3 hours ago 0 replies      
I make about 30 bucks per months on a single ad on my jquery plugin docsite[1].

I lose about 25 bucks per months on website for artists that I built over the course of a few years in my spare time[2]


Veratyr 4 hours ago 0 replies      
I'm invested in forex (foreign currency trading). There are 3 buckets I'm in:

- $3500 deposited, run since Jun 3 (~5 months), current balance is $5200 (48% total profit, 8%/mo).

- $5000 deposited, run since Jun 28 (~4 months), current balance is $4590 (8% total loss, ~-2%/mo).

- $3000 deposited, run since Sep 2 (~2 months), current balance is $3218 (7% total profit, ~3.5%/mo).

It's certainly not for everyone but it's an amusing hobby. I've made a net profit so far so I'm happy.

I came to this after stocks as the research I'd found seemed to show that foreign currency fluctuations were significantly easier to predict (and profit from).

ehynds 5 hours ago 0 replies      
About $300/mo on an app that provides real-time train tracking for Boston's commuter rail. Thankfully for me the MBTA is a mess, so each system meltdown (which happens about once a week) causes a spike in downloads.
ArturT 4 hours ago 0 replies      
What do you think about http://sidekiq.org gem approach where you have free open source tool and paid pro version. I did similar thing with my open source gem knapsack for test suite parallelisation in ruby. I run pro version at https://knapsackpro.com
shaunpud 3 hours ago 0 replies      
I launched https://askdns.com a few months back and making around ~AU$75/mo just from Adsense. There are around ~3M links in G now so the traffic coming in is slowly increasing.
atemerev 7 hours ago 1 reply      
I run a few high frequency trading algorithms on Bitcoin and other cryptocurrencies. These are research-grade and not scalable (I already make 20-30% of trading volume on some exchanges), however, it still brings me around $200 per month.
blahshaw 7 hours ago 0 replies      
Target retirement date funds, a handful of individual stocks for entertainment purposes. I also have dabbled with Lending Club (annualized ROI went from 15% to less than 5% recently) and the money saved on interest in paying back my student loans early.
Mc_Big_G 7 hours ago 0 replies      
$2/day on a simple ios/android app. Now I just need 1000 more apps.
badpixel 7 hours ago 0 replies      
A small portfolio, some adsense on a blog, a game on the play store.

By all their powers combined here comes 70$ a year.

sharemywin 10 hours ago 1 reply      
if you hire the right people anything can be a passive income.
Co-founder problem. Pls vote
7 points by ahaghotu  2 hours ago   4 comments top 4
roschdal 4 minutes ago 0 replies      
gamechangr 2 hours ago 0 replies      
You joined with this cofounder? I think you may have a problem too - like lack of self awareness :)

If you only have two options... you should chose Number 2.

I would go to the him and try to get feedback..."I see half our team has left. What can we do to try to learn from this situation? " > if he says "not pick bad people" = walk away.

His answer will help you decide.

Don't even consider #1. It's NOT going to be worth it for sure.

flashfive 2 hours ago 0 replies      
i spent 7 years fighting that exact problem. it just about killed me. walk away. it's not worth it.
noahwilde 2 hours ago 0 replies      
You're at the point where there's only one person out of 5 other original people you want to work with left?

Even if you got the other person out, do you think you could execute with just that one other person?

"Idea/direction wise it's going quite well" - Is it though?

Ask HN: IT Security
8 points by SkinFlute  3 hours ago   6 comments top 4
mtmail 3 hours ago 1 reply      
There was a recent discussion about (free) online training courses https://news.ycombinator.com/item?id=12786545

P.S. Welcome to HN. Prefix your question with 'Ask HN' and it will go into https://news.ycombinator.com/ask which requires less upvotes to get attention

zelon88 3 hours ago 1 reply      
There was another good post the other day that highlighted some good security blogs. The best in my opinion were http://www.schneier.com/blog/, https://threatpost.com/, http://krebsonsecurity.com/. In addition to these, joining some hacker forums to see the kind of shenanigans and tools they employ could be helpful.
nick1024 1 hour ago 0 replies      
I was a fan of this one. Lots of expert authors, lots of good information!


Ask HN: What is your favorite internet rabbit hole?
998 points by karim  2 days ago   449 comments top 187
IsaacL 2 days ago 8 replies      
I posted a list of them a while ago. For several years I was interested in alternative worldviews -- grand sweeping theories of reality. Here's my list:








Enjoy :)

r0m4n0 2 days ago 24 replies      
Browsing medical diagnosis codes... https://www.cms.gov/Medicare/Coding/ICD10/2016-ICD-10-CM-and...

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

analogwzrd 2 days ago 3 replies      
For me, it's definitely Ribbonfarm:http://www.ribbonfarm.com/

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.

octo_t 2 days ago 2 replies      
My current rabbit hole has been the world building stack exchange (http://worldbuilding.stackexchange.com/) which is (ostensibly) for writers working out scientific or historical justifications for the worlds they invent.

Some of the thought that goes into answers is really cool. Good ones from recently are:

- http://worldbuilding.stackexchange.com/questions/59175/what-...

- http://worldbuilding.stackexchange.com/questions/59171/is-th...

- http://worldbuilding.stackexchange.com/questions/58745/stand...

msluyter 2 days ago 6 replies      
Slate Star Codex: http://slatestarcodex.com/, for a lot of interesting socio-philosophical discussion on a variety of topics.

Meditations on Moloch is one of my favorites:


WCityMike 2 days ago 2 replies      
TV Tropes is the definitive rabbit hole: http://www.tvtropes.org

For me, a close follow-up is the SCP Foundation:http://www.scp-wiki.net/

brightball 2 days ago 2 replies      
The US Civil War has been mine for the last couple of years. The sheer volume of history and contributing factors, decades of build up, aftermath, affects on the US today, etc. My goodness, the economics of the whole thing are just fascinating.

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).

hexane360 2 days ago 1 reply      
Things I won't work with: http://blogs.sciencemag.org/pipeline/archives/2011/11/11/thi...

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.

tartuffe78 2 days ago 4 replies      
TV Tropes is always good: http://tvtropes.org/
yoloswagins 2 days ago 2 replies      
I'm partial to everything2.com. Back in the early 00's, everything2 tried to be a Wikipeida, where people could post multiple entries on a topic. The best part is reading 16 year old, long form essays about places. The recent stuff is short stories, but the essays of the bay area from the peak of the bubble are fascinating.


* http://everything2.com/title/The+NoCal+Super+Layoff+Unemploy...

* http://everything2.com/title/San+Mateo+bridge

rpeden 2 days ago 0 replies      
I enjoy listening to simulated activations of the EAS (Emergency Alert System) on YouTube. A few interesting ones:

Nuclear Attack: https://www.youtube.com/watch?v=JZIynuYDRVA

Alien Invasion: https://www.youtube.com/watch?v=FKre_8rufrw

Russian Invasion:https://www.youtube.com/watch?v=lYOlnuxZzNQ

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. :)

rdtsc 2 days ago 3 replies      

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
To server the current directory on port :8000

Then there is silly stuff like:

 dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp
To output your microphone to a remote computer's speaker [note: you probably shouldn't be using arcfour in general for ssh, and it might be disabled on your site].

bsandert 2 days ago 4 replies      

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!

qwertyuiop924 2 days ago 1 reply      
TVTropes is the big one, the vortex from which all other rabbit holes stem.

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.

adrianN 2 days ago 3 replies      
Secure Contain Protecthttp://www.scp-wiki.net/
jttam 2 days ago 1 reply      
The Bureau of Labor Statistics (http://www.bls.gov/) is just fascinating enough and just badly organized enough that I never seem to be able to get to the same useful piece of information twice. And thus I constantly find myself looking at other interesting facts about the US labor force.
comboy 2 days ago 1 reply      
https://urbit.org/ - deep and exciting one

This article [1] 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.

1. http://moronlab.blogspot.com/2010/01/urbit-functional-progra...

dopeboy 2 days ago 0 replies      
https://en.wikipedia.org/wiki/World_War_II easily.

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...

jackhack 2 days ago 2 replies      
Atlas Obscura - a collection of the world's most interesting/peculiar, and downright strange places. It's like a marriage of a world map + Ripley's Believe it Or Not.


tghw 2 days ago 0 replies      
Reading medical study meta-analysis published by The Cochrane Collaboration[0]. There's some fascinating results that run counter to current medical advice.

For example, "Vaccines to prevent influenza in healthy adults" concluded, in part: "Vaccination shows no appreciable effect on working days lost or hospitalisation."[1]

[0] http://www.cochrane.org/evidence[1] http://www.cochrane.org/CD001269/ARI_vaccines-to-prevent-inf...

cessor 2 days ago 2 replies      
I enjoy rabbit holes with much less meaning, such as:


The last one is great. I once discovered this gem:


hawski 2 days ago 1 reply      
List of unusual articles on Wikipedia: https://en.wikipedia.org/wiki/Wikipedia:Unusual_articles
roberthahn 2 days ago 0 replies      
Back in the mid 90's there were 2 rabbit holes I loved to visit. One of them was the Monty Python website :-)

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.

zichy 2 days ago 0 replies      
* C3TV, the Chaos Computer Club media library with hundreds of conference talks: https://media.ccc.de

* 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/

luos 2 days ago 4 replies      
Currently my favourite time wasters are learning channels on youtube. Especially not the "weird" ones like VSauce because I think those are pretty unwatchable. I like SciShow / SciShow space even though that's borderline weird :)

My current fav is Sixty Symbols, endless very interesting videos: https://www.youtube.com/channel/UCvBqzzvUBLCs8Y7Axb-jZew

Also PBS Space Time, MinutePhysics, MinuteEarth.

visarga 1 day ago 0 replies      
I listen to Robert Greenberg's classical music appreciation audio courses. He has published courses on Bach, Mozart, Beethoven, Liszt, Schumann, Mahler, Verdi, Wagner, Stravinsky, Tchaikovsky and also on horizontal subjects such as orchestral, piano, opera, baroque music, romantic music, symphony and quartets (and much more).

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/

iamleppert 2 days ago 0 replies      
Sam's Laser FAQ by far: http://www.repairfaq.org/sam/lasersam.htm

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.

heleph 2 days ago 1 reply      
It's a little bit dated now, but the C2 wiki is a fun place to read about software development. There are quite a lot of patterns, anti-patterns, practices, rambling debates and just generally interesting ideas:http://wiki.c2.com/?DesignByCommittee
trelliscoded 2 days ago 1 reply      
Orion's Arm is a collaborative world building project for the far future. The articles on monopole physics and wormholes are quite detailed, and the implications of higher levels of sentience are very interesting. http://www.orionsarm.com

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.

ashmud 2 days ago 3 replies      
One of the earliest www rabbit holes I remember visiting:https://www.chroniclesofgeorge.com/

Surprised MF has not been mentioned, yet.http://www.metafilter.com/

VLM 2 days ago 0 replies      
I enjoy watching conference videos.


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.

pinewurst 2 days ago 0 replies      

The Digital Antiquarian - a very well written running history of computer games, especially adventure-y ones from the beginning to about 1989 now.

runj__ 2 days ago 2 replies      

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.

livatlantis 2 days ago 0 replies      
Great question! YouTube.

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[0] led me my discovering Shadow Gallery's First Light[1], 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).

0: https://www.youtube.com/watch?v=UMjO7y-98Ak

1: https://www.youtube.com/watch?v=1-Qt1eqJ26s

draw_down 2 days ago 0 replies      
The Last Psychiatrist, http://thelastpsychiatrist.com . Excellent insights into the ways we lie to ourselves, how we react to the media, and how society operates.

I also love ribbonfarm, previously mentioned in the thread.

jclem 2 days ago 1 reply      
Ulillillia: http://www.ulillillia.us/sitemap.shtml

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.

danharaj 2 days ago 0 replies      

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.

genjipress 2 days ago 0 replies      
daxorid 2 days ago 1 reply      
This will not be at all well-received here, but in the interest of answering the question earnestly:


agentgt 2 days ago 0 replies      
* Unusual religions on wikipedia particularly Scientology.

* 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) [1]

* If you are an older mid to late 30 something like me X-Entertainment [2] 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)

[1]: http://www.badassoftheweek.com/list.html

[2]: http://www.x-entertainment.com/index1.html

snake117 2 days ago 0 replies      
Recently I have taken it upon myself to gain a basic understanding of philosophy and linear algebra. I found this primer book (http://www.qcc.cuny.edu/SocialSciences/ppecorino/INTRO_TEXT/...) and I try to read it when I have some free time.

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.

mpeg 2 days ago 1 reply      
http://everything2.com is (kinda) still going strong.
nicklaf 2 days ago 1 reply      
Encyclopedic, opinionated, humorous, and even quantitative guide to 20th century pop and rock, from the point of view of a Russian Linguist [1] who thinks The Beatles, The Who, The Rolling Stones, and Bob Dylan have never been topped:


[1] https://en.wikipedia.org/wiki/Georgiy_Starostin

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.

hkt 2 days ago 0 replies      

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.

tsunamifury 2 days ago 1 reply      

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.

o0-0o 2 days ago 0 replies      
WOW: http://drunkmenworkhere.org/archive

This is the rabbit hole you've been waiting for. Be warned!

tunap 2 days ago 1 reply      
damninteresting.com is where I 1st read about the Great Molasses Flood, amongst a slew of other bizarre non-fictional events & people. The wordsmiths make the bizarre accounts even more damn intetesting.

edit: link


manoj_venkat92 2 days ago 1 reply      

The title truly says "A meaningful inventory of Life".

I get lost in the labryinths in that blog covering science, philosophy, literature & art.

yoodenvranx 2 days ago 3 replies      
1) There is a Wiki for almost everything you can imagine. I am pretty sure you can spend whole weekens just clicking around in some random GoT, LotR or Harry Potter wiki

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

pault 2 days ago 1 reply      
Atomic Rockets by a wide margin: http://www.projectrho.com/public_html/rocket/
zerognowl 2 days ago 1 reply      
Permanently opened: https://pinboard.in/recent/
mcfrankline 2 days ago 0 replies      
All of this http://www.bofh.net/

Bastard Operator from Hell

davesque 2 days ago 1 reply      
Reading about any mathematical topic on Wikipedia. For example,

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.

Gravityloss 1 day ago 0 replies      

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.

mathgenius 2 days ago 0 replies      
John Baez, this weeks finds in mathematical physics [1]. He started blogging this in 1993! there's so much stuff there now. I keep finding amazing things in the TWF's, and not wanting to close my browser tabs because it's so precious. And you wouldn't believe what he can do with a bit of ascii art. Truly he is one of the heroes of the internet. (He doesn't do TWF's anymore, but there's a bunch of other places where he posts stuff.)

Try this one for starters [2]. The earlier ones are much more hardcore.

[1] http://math.ucr.edu/home/baez/twfcontents.html[2] http://math.ucr.edu/home/baez/week236.html

cousin_it 1 day ago 0 replies      
I love online fiction. Each of the following is very good and will take you many days full-time to get through.

Homestuck: http://www.mspaintadventures.com/?s=6

Worm: https://parahumans.wordpress.com/

Freeman's Mind: http://www.accursedfarms.com/movies/fm/

twic 2 days ago 0 replies      
http://unicode.org/charts/ - leads you off into reading about languages, writing systems, the history of civilisation, obscure technical fields, medieval typesetting, that sort of thing
fenchurchh 2 days ago 0 replies      
gwern. He hits the sweet spot and all topics are worth reading.http://www.gwern.net/
hazeii 2 days ago 0 replies      
The one I'm currently in.
Gmo 2 days ago 0 replies      
I lost countless hours reading the archives of The Internet Oracle : https://en.wikipedia.org/wiki/Internet_Oracle

I'm actually wary of woodchucks because of that now :D

ckozlowski 2 days ago 0 replies      
AirVectors is one of my favorite reads; containing well researched, highly detailed articles on aircraft. He updates once a month. The list is immense.


dmoney 1 day ago 0 replies      
I see someone already posted http://www.everything2.com/ (my used-to-be favorite) and http://www.fusionanomaly.net/fusion.html .

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:



carole1 2 days ago 1 reply      
What is a rabbit hole? Is it just an interesting site to waste time on?
mindcrime 2 days ago 0 replies      
Very recently I've spent a lot of time on ai.stackexchange.com and electronics.stackexchange.com, so I guess both of those are in contention.

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.

danesparza 15 hours ago 0 replies      
A list of UFO sightings (including some from ancient history!): https://en.wikipedia.org/wiki/List_of_reported_UFO_sightings
niftich 2 days ago 0 replies      
Scrolling to random places on Google Earth


Tiktaalik 2 days ago 0 replies      
If you want to peek into some obscure video games and history HardcoreGaming101 is a good entry point. http://www.hardcoregaming101.net
gelstudios 2 days ago 0 replies      

Stories about the development of the original Macintosh.

So many gems in this collection, they get submitted to HN from time to time.

alyandon 2 days ago 0 replies      
For me, it's any page related to astronomy on Wikipedia.
salzig 2 days ago 0 replies      
Starting today -> this post on hackernews: https://news.ycombinator.com/item?id=12778836
b34r 2 days ago 0 replies      
http://www.exitmundi.nl/ - a collection of end-of-world scenarios
agumonkey 2 days ago 1 reply      
Used to be c2.com. Oh it's been back up, a bit different though.


stygiansonic 1 day ago 0 replies      
I know it's weird, but I enjoy reading the court motions from bankruptcy proceedings. You can actually learn a lot about corporate structure this way.

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...

Broken_Hippo 2 days ago 0 replies      
I think I can safely pack myself away at home for a good, long while after reading this list.. and I'm gonna add to it.

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...

unimpressive 2 days ago 0 replies      
Pokemon glitches are an incredibly interesting rabbit hole. They provide a good mix of video games and low level programming goodness:



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:


isomorph 2 days ago 0 replies      
This website of Death Row information, including chilling last words...


Similar: http://www.goodbyewarden.com/#214

failrate 2 days ago 0 replies      
Pagat.com: someone attempting an exhaustive list of card game rules and variants (typically played with traditional decks, so no Magic the Gathering).
earleybird 2 days ago 0 replies      
Olegs tarpit: http://okmij.org/ftp/
Natsu 2 days ago 0 replies      

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.

subjectsigma 2 days ago 0 replies      
Something in a much different vein than other sites posted:

http://drtenge.com (NSFW)

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.

ed_blackburn 2 days ago 1 reply      
Wards' Wiki: http://wiki.c2.com/
azaydak 2 days ago 0 replies      
I spent lots of time reading this and following the linked pages while in graduate school. I learned a lot but it didn't help graduation to come any quicker. https://en.wikipedia.org/wiki/List_of_paradoxes
arethuza 2 days ago 0 replies      
"The Geograph Britain and Ireland project aims to collect geographically representative photographs and information for every square kilometre of Great Britain and Ireland"


crisnoble 2 days ago 0 replies      
MixesDB: A crude but detailed wiki of (mostly electronic music) live mixes and radio show archives: http://www.mixesdb.com/w/Main_Page, what sets it apart is the track listings.
jimmaswell 2 days ago 0 replies      

Some games have a ton of unused content left in them

donretag 2 days ago 0 replies      
Russian dash cams on Youtube.

Simple. Effective.

seizethecheese 2 days ago 0 replies      
AskReddit's top all time threads. Less intellectual, but very entertaining. Some of these have incredible human stories.


diyseguy 1 day ago 0 replies      
Back when the web was younger and sillier, I used to spend many enjoyable hours reading toastpoints (now defunct). But you can find archives of the limerick and bad fiction writing contests: e.g.: http://toastpoint.wordandpicture.com/limerick/limerick.html.
mr_pink 2 days ago 0 replies      
Discovering new human and bot algorithmic artists on twitter by searching for #generated:


topspin 2 days ago 0 replies      
Sometimes I read a few months worth of NRC (Nuclear Regulatory Commission) event reports.


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...

MrBra 1 day ago 0 replies      
Ok, now I have +20 tabs open and I'm only halfway through the comments.We know how most of the times we are compelled to read everything in a page until the end, but we also know how much does this attitude costs to us.

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!)

drewlanenga 2 days ago 0 replies      
zby 2 days ago 0 replies      
I have a feeling that it will be this thread!
zgniatacz 2 days ago 0 replies      
p4rsec 2 days ago 0 replies      
I have a favorite subreddit: www.reddit.com/r/talesfromtechsupport

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/

cooper12 2 days ago 0 replies      
I'd add https://publicdomainreview.org/ which I've found to have a large variety of topics covered. I could also spend ages looking through http://www.textfiles.com. Lastly, https://monoskop.org/Monoskop, "a wiki for collaborative studies of the arts, media and humanities."
gnarbarian 2 days ago 0 replies      
Mythology on wikipedia. Pick a category and you can get lost for days:


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.

tomphoolery 2 days ago 1 reply      
The start of World War II, how Adolf Hitler came to power in the Weimar Republic, why the Nazis gained power and what motivated them to do what they did. I'm especially interested in the "unknowing participants" of the Nazi regime, like Wernher von Braun and Albert Speer. People who basically bought in to the ideal of a better German world and didn't really consider what that might cost in money, lives, and culture.
adrinavarro 2 days ago 0 replies      
I do enjoy spending long amounts of time browsing the archive of WBW: http://waitbutwhy.com/
hossbeast 2 days ago 0 replies      
The (very long) Wikipedia article, "The Universe".


jamez 1 day ago 0 replies      
Like many others, my productivity has suffered since Wikipedia became a thing. You may consider me a wiki-binger. I even made a simple webapp to curb my addiction: http://www.wikibinge.com/Still haven't come out of the rabbit hole.
ap22213 2 days ago 0 replies      
For me, it's the History of Mathematics archive:


b3b0p 2 days ago 0 replies      
The Giant Bomb [0] and if you are a premium member [1] it's even better. There are hours of timeless premium only videos and podcasts. If you like video games at all or have any interest in video games it's worth every penny and second invested.

[0] http://www.giantbomb.com

[1] http://www.giantbomb.com/upgrade/

msnangersme 2 days ago 0 replies      

Reddit, Hacker News and more in one readable page.

pvitz 2 days ago 0 replies      

Many old things, but most ideas are timeless.

deutronium 2 days ago 0 replies      
http://www.halfbakery.com/ -- Awesome collection of people's ideas
shp0ngle 2 days ago 0 replies      
nicklaf 2 days ago 0 replies      
"How the brain wires itself up during development, how the end result can vary in different people and what happens when it goes wrong": http://www.wiringthebrain.com/

Very good at exploding conflations and weakly argued conclusions by those who would popularize and construe results in neuroscience.

unhammer 1 day ago 0 replies      
Github is the new Wikipedia for me. I recently ended up reading about https://github.com/maandree/ponypipe via the repo of some obscure window manager that I've already forgotten about etc.
grapeshot 1 day ago 0 replies      
The Alternate History wiki and forum. http://www.alternatehistory.com/
paradite 2 days ago 1 reply      
unoti 2 days ago 0 replies      
My favorite from an information perspective is The Great Leap Forward (https://en.m.wikipedia.org/wiki/Great_Leap_Forward).

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.

maartennn 1 day ago 0 replies      
One of my golden nuggets from ~15 years ago:60x 1.comhttp://11111111111111111111111111111111111111111111111111111...

You can click thru 60 times!

stinkytaco 2 days ago 0 replies      
http://www.edge.org is up and down, but mostly up.

Reddit can be, depending on your community.

But I miss Kuro5hin.

narrator 2 days ago 0 replies      
http://www.pubmed.com .

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.

numeromancer 2 days ago 0 replies      
dates 2 days ago 0 replies      
Wikipedia goes on and on and on and on. Here is a good facebook group with pointers to interesting pages I may not have found otherwise:https://www.facebook.com/groups/coolfreakswikipediaclub/
tjbarbour 2 days ago 0 replies      

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

mikevp 2 days ago 0 replies      
The Lawdog Files http://thelawdogfiles.blogspot.com/

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.

djfryer 2 days ago 0 replies      
Data Elixir - Definitely! http://dataelixir.com
personlurking 2 days ago 0 replies      
I don't have a favorite rabbit hole but rather I've developed a link-hopping habit that pretty consistently leads down the rabbit hole. Basically, while looking at a site/article that interests me, I usually end up doing a separate search for any concepts or organizations mentioned, then seeing what they have to offer. Rinse and repeat.
anigbrowl 2 days ago 0 replies      
kasperset 2 days ago 0 replies      
Browsing http://www.espncricinfo.com to read player profiles and then clicking on their first played games and then clicking on different player profiles and repeat.
manigandham 1 day ago 0 replies      
Quora - start with something interesting on the newsfeed and just follow recommended articles from there.

UI/UX is terrible now compared to early days but I can still get lost with hours of learning from some incredible writers.

minimaxir 2 days ago 0 replies      
larvaetron 2 days ago 0 replies      
The Cutting Room Floor: http://tcrf.net
VonGuard 2 days ago 0 replies      
Gallery of US Nuclear tests. Lots of info at this site, beyond just American tests.


samblr 1 day ago 0 replies      
Anybody remembers that old websites called books.. now kindle - best thing to happen since sliced bread.
wbhart 2 days ago 1 reply      

It's a puzzle solving website. It isn't updated very regularly nowadays, but all the old "Theorems" are still there.

k_vi 1 day ago 0 replies      
This is deep, never gets boring - http://textfiles.com/
maverick_iceman 1 day ago 0 replies      
I have been spending way too much time learning about nuclear propulsion of spaceships. Reading a lot about Project Orion, Dedalus, fission fragment rockets etc.
sidthekidder 2 days ago 0 replies      
Always good to keep the endgame of humanity in mind: https://en.wikipedia.org/wiki/Kardashev_scale
edem 1 day ago 0 replies      
I'm surprised that no one mentioned wait but why yet: http://waitbutwhy.com
bluebeard 2 days ago 0 replies      
Speaking of alternative world views and world building... I recently fell into a Wikipedia hole reading about the Islamic view of Angels, King Solomon and how he bent 72 demons to his will, Renaissance magic, and Hoodoo.

It gets weird.

fosco 2 days ago 0 replies      
Did not want to duplicate others but here is one I did not see on anyones list.

https://mindhacks.com/ -- Neuroscience and psychology news and views.

donaldihunter 2 days ago 0 replies      
jmspring 2 days ago 0 replies      
This is one of mine. I'm into history, in particular local and western history.


scythe 2 days ago 0 replies      
If you start looking up everything you eat on http://ndb.nal.usda.gov/, you know it's gone too far.
vincentbarr 2 days ago 0 replies      
DanBC 2 days ago 0 replies      
Here's a database of children's books that have won awards. http://www.dawcl.com/

It's an amazing compilation.

acdanger 2 days ago 0 replies      
https://gcaptain.com/ A maritime news site. Fascinating subject matter and the occasional naval disaster video.
lexhaynes 2 days ago 0 replies      
I'm very interested in health and fitness and often lose hours at Mark's Daily Apple (primal lifestyle and health blog): http://www.marksdailyapple.com/tag/dear-mark/

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/

arcaster 2 days ago 0 replies      
/r/datahoarder and /r/controllablewebcams
rhapsodic 2 days ago 0 replies      
http://www.shorpy.com - Old B&W photographs from the Library of Congress research archive.
stephenhandley 2 days ago 1 reply      
jturolla 2 days ago 0 replies      
http://www.yhchang.com/ I recommend "Subject Hello" and "AH"
Dowwie 2 days ago 0 replies      
Social science research Network: http://www.ssrn.com
erickhill 2 days ago 0 replies      

It's not high-brow by any stretch, but is's a great time waster.

Kenji 2 days ago 1 reply      
a wave of molasses rushed through the streets at an estimated 35 miles per hour (56 kilometers per hour)

Now, you wouldn't call that slow as molasses.

keithpeter 2 days ago 0 replies      

Quite nice now and again.

zynthax 1 day ago 0 replies      
backtoyoujim 2 days ago 1 reply      
do not venture into the contemporary board game landscape without several rooms to dedicated to humidity controlled shelf-space.
mathw 2 days ago 0 replies      
TV Tropes.

Just don't go there.

exolymph 2 days ago 0 replies      
slatestarcodex.com, I haven't nearly read all the archives and I'm always running into links to Scott's work
easymuffin 2 days ago 1 reply      
ktkization 1 day ago 0 replies      
Being obsessed with the MBTI personality theory for months
ktkization 1 day ago 0 replies      
Being obsessed by the MBTI personality theory for months
Mandarinas 2 days ago 0 replies      
I'm sorry but it tempted me, my rabbit hole is: xvideos.com
edem 2 days ago 0 replies      
Dwarf Fortress Reddit.
sahoo 2 days ago 0 replies      
Youtube, till I end in the weird side of youtube.
b34r 2 days ago 0 replies      
The Wikipedia random article button.
mmaunder 2 days ago 0 replies      
spy.org. Nothing there. Never has been since the 90s. It's intriguing.
rabboRubble 2 days ago 0 replies      
Hacker News?
chanandler_bong 2 days ago 0 replies      
oh god... why did I come here? Like I needed to find more rabbit holes.
int0x80 2 days ago 0 replies      
Right now, this thread!!
gprasanth 2 days ago 1 reply      
msldiarra 2 days ago 0 replies      
agumonkey 2 days ago 1 reply      

ps: sci-hub too

Ask HN: What cool development languages/tools changed your career?
248 points by mirceasoaica  1 day ago   301 comments top 124
votr 1 day ago 5 replies      
Clojure. Before learning Clojure, I didn't even have a career. I just wanted to get into software development.

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.

cagataygurturk 1 day ago 6 replies      
My wow moment was when I quit trying to do everything in the language I was comfortable with (PHP) and became a language agnostic engineer. Since then (2 years ago) now I can write in 3 programming language, nobody can realize that I am new at these languages and I know that I can pick a new language up now in a very short time. I had to study so much in these last 2 years but since I love engineering it was funny rather than tiring. You do what you like and they pay for it, that is perfect. Before I used to search for PHP jobs and end up in low quality companies. After forgetting about languages, removing my limitations and focusing in engineering more than stack, my career significantly improved. Actually I got a tech management job in a big American company that I'd never imagine before.
dsiegel2275 1 day ago 1 reply      
For web development: React.

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.

RodgerTheGreat 1 day ago 4 replies      
About 2 years ago I discovered a programming language called K. It's a very unusual-looking, extremely terse language in the APL family. It just "clicked" for me. I enjoy the ability to experiment with different algorithms and approaches in a few keystrokes, and learning to think in a "vector-oriented" fashion has opened my eyes to much more elegant formulations of old problems.

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.

dragonquest 1 day ago 2 replies      
Learning Lisp, more specifically Scheme. I became curious about it after reading ESR's "How to Become a Hacker". When homoiconicity and other Lisp goodies gradually permeated my brain, the computing world seemed different.

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.

tzhenghao 1 day ago 3 replies      
Vim. I was first introduced to this text editor back in college. It has super weird navigation rules and editing modes that would easily deter many beginners. 70-80% of my course mates gave up on it and chose something else that worked more like a normal text editor such as Sublime/Atom.

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.

drittich 1 day ago 0 replies      
Git. I had many years of experience with various source controls systems, but it wasn't until a few months with Git that I realized it took away so much of the friction I had been living with in terms of being able to do fast context switches, experimental branches, recovery from bad mistakes, and sheer performance of working with very large repos. It is a tool I rely on and admire almost every day of my life.
lmm 1 day ago 2 replies      
Scala, back in 2010. I realised that I didn't have to sacrifice productivity for safety, I could have it all: code that's more concise than Python, but safer than Java. Best thing I ever did was finding a way to try it in my then job (a low-risk standalone tool); over the next couple of years I shifted gradually into doing more and more Scala, and now use it full-time.
scardine 1 day ago 3 replies      
Python saved my but 10 years ago when I was transitioning from operations to be a full time software developer. Back then I made the wrong technology choice for a project (OpenLazlo, a discontinued RIA platform on the frontend and PHP at the backend) and the schedule was slipping fast. Then I tried Django and it really stands for the motto "The web framework for perfectionists with deadlines".

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.

caleblloyd 1 day ago 4 replies      
I have just started using C# and .NET Core after years of dismissing it when it was only available on Windows. Now it is open source and cross platform! I come from a PHP background but have been writing smaller performance critical code in Go lately.

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.

kentosi 1 day ago 1 reply      
Though not a language, nor a tool: A touch typing course.

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.

CalRobert 1 day ago 1 reply      
In a sense, Javascript.

But more importantly, when I read Javascript: The Good Parts by Douglas Crockford. It was my introduction (though I didn't realize it) to functional programming, closures, and thinking much more about scope. I went from thinking of JS as a pile of junk to a language with remarkable flexibility.

That doesn't mean I do everything in JS, but I find I like the language a lot more than most of my peers.

calebm 1 day ago 2 replies      
Python, coming from C/C++, Javascript (at least circa 2003) was like leveling up 10x in my programming superpower. I was able to explore concepts and domains so much faster, and those concepts have led to my career. I've talked with friends who only know something like C# or Java, and I feel bad for them - they have no language in which to rapidly play with things. And that rapid ability to play (like with the Python REPL) makes a huge difference in learning.
kleiba 1 day ago 3 replies      

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.

pryelluw 1 day ago 0 replies      
This is such a great question. In my experience:

- 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.

- Angular changed my opinion about front end development. My experience had been with Jquery heavy websites. Never with something better engineered from the start. Angular has issues that I'm very aware of, but it opened up my eyes to the world of better javascript programming.

- 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.

DougWebb 1 day ago 1 reply      
I'd been coding on the side from 12 years old right up through grad school; many different languages at many different levels. Assembly languages, BASIC, Pascal, C, C++, Cobol, Forth, Prolog, Java, etc. Through it all I thought I'd eventually go into robotics where I'd primarily be a Mechanical Engineer building things, and writing software on the side for tools and controlling my creations.

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.

Later on, I had a similar experience with jQuery. I had been using Javascript since it first came out, but it was such a hassle to deal with the DOM and cross-browser issues that it was never worthwhile to do anything important with Javascript. The maintenance cost was too high. So we added little nice-to-have enhancements to our webapp, but nothing that had to work. Then jQuery came along and changed everything. It was suddenly much cheaper to develop complex and required functionality in javascript, and client-side web development became a big part of the platform.

pvdebbe 1 day ago 1 reply      
Clojure, or maybe all these related Rich Hickey talks transformed my attitude towards systems programming. Before that, the Unix philosophy. But perhaps I can't say that the Unix philosophy changed my career because I adopted it very early in my programming and way before any career established.

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!

col_rad 1 day ago 0 replies      
I started as a backend Java engineer for a large ISP. I loved it, I didn't what to do anything else.When I joined a consulting agency they put me in a company that had pretty good backend engineers. What they completely lacked was the frontend part.The product developer and the customers demanded a more dynamic interface but none of tech seemed to care. All said 'it's not possible'. So I started learning JavaScript, learned AngularJS (which was brand new at that time and fitted great in the corporate/enterprise setting), built a couple of sideprojects and then started evangelizing Product and Dev.I was allowed to improve a first Product, which was a great success. Then every product developer wanted webapps.So I started teaching developers at the company and the consulting agency.

This taught me: Find the tool that does the job. Even if you think the tool looks stupid.

mping 1 day ago 0 replies      
Clojure with emacs+cider. The ability to interact with a "living" system in a homoiconic language where functional programming allows you to do some neat stuff was mindblowing. Specially because the LISP guys probably have been doing this for ages. Think React hot reload on steroids, applied to the whole app and with an interactive IDE where you can eval any expression and get immediate feedback, even if the expression interacts with a db (requiring a db connection) or whatever.
JackFr 1 day ago 0 replies      
I'm a Scala dev now, but when I was a Java dev, I went and learned Python, then Ruby and Rails. Never left Java (well until I got into Scala) but learning those absolutely changed the way I wrote code, and with respect to web dev finally gave a clear picture that was near impossible to see in the Java ecosystem.

(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.)

dvcrn 1 day ago 2 replies      
Go recently, and Clojure previously.

Clojure forced me to think in a radical different way than I was used to. I started with massive functions that easily became unreadable, and slowly adapted purity and wrote side-effect free code. The paradigm shift affected me so much that even in other languages, I started writing pure code and use function composition more and more often. Coming from an imperative background, functional programming was a bit difficult at first to wrap my head around, but now I love it! (Eventually I even ditched JavaScript for ClojureScript).

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.

TurboHaskal 1 day ago 1 reply      
Made a lot of money with Pascal, then Perl.

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.

unoti 1 day ago 0 replies      
My biggest oh wow moment came from learning Erlang. At first I had trouble adapting to its functional style and punctuation, so I gave up. Later when reading a book about another functional language (Scala) the concepts fell into place. The way Erlang works from a language and platform perspective changed the way I think about constructing both programs and systems as a whole.

Today the learning process is far better and smoother using Elixir and Phoenix. Jump in and give it a try!

carrigan 1 day ago 1 reply      
Arduino. I went to school for Electrical Engineering and learned programming for small embedded computers using assembly. While assembly can be fun as an optimization puzzle, it takes a very long time to code even a simple project. Additionally, these computers can have 1000+ page datasheets that you need to comb through in order to set their peripherals up.

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.

reustle 1 day ago 0 replies      
A lot of these answers give technical reasons, but career wise it is a different answer for me.

JavaScript. Once I got a solid understanding, the ability to do so much more visually and interactively on our own projects, bookmarklets and chrome extensions for sales / business department, etc, that was when they really started to notice my value at my first tech job. They felt like I was a wizard, able to modify the features of almost any existing web tool they used.

welanes 1 day ago 2 replies      
Knowledge-wise: Github. When I began learning Javascript I'd read through the source code of any libraries that appeared to do magic and figure out what the trick was. Very helpful in making things 'click'.

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.

mamcx 1 day ago 0 replies      

I credited it for don't fear and be good at use RDBMS. Also, the most productive dev environment ever.

Python (+Django).

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.

k__ 1 day ago 0 replies      
Coming from PHP (did it from 2006-2011) JavaScript blew my mind.

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 really thought PHP would go downhill after I saw the whole JavaScript hype and switched 100% away from PHP. Many web-companies here in Germany were just doing Java or PHP at that time (before 2010) and if you didn't know about one of those two languages you were screwed, but now I do 100% JavaScript development AND get better projects than with PHP. But I have to admit Facebook pumping money into PHP helped tremendously to make it better.

At the moment I have smaller WOW-moments with TypeScript, RxJS and NixOS. Smaller basically because I don't have work-related projects at the moment to use them, but they seem to fix a few pain points I had with JavaScript, React/Redux and Vagrant. (undefineds everywhere, realtime-data stream control and sane dependency management)

aloisdg 1 day ago 0 replies      
C# + Visual Studio (2010 back then). I used to code in PSPad (Webdev, Python), then Emacs (C, Shell, Python). When I discovered VS with its debugger and C# with all the sugar, I was changed. I never stop using them since.
mherrmann 1 day ago 0 replies      
Python, hands down. After 10 years of other languages (mostly Java) it opened my eyes to how simple programming can be.
chubot 1 day ago 0 replies      
Learning Python (in 2003). I use 5 different languages regularly and I've tried a half dozen more. I've worked in quite a few parts of the industry. Python seems to be the bread and butter -- it gets things done quickly and reliably in so many areas.
PaulAJ123 1 day ago 0 replies      
Back some time around 1990 it was C++ and SCCS (Source Code Control System). OO was clearly a major improvement on structured development, and SCCS was my first version control system. Before that we just had a shared directory and would announce "I'm editing foo.c".

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.

jtreminio 1 day ago 1 reply      
Hashicorp products. It's incredible how productive this company is, and how much I've come to use their applications throughout my career.

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.

cel1ne 1 day ago 3 replies      
Tachyons.css: http://tachyons.io/

Suddenly CSS became fun again and my time designing websites went down by a guessed factor of 5.

contingencies 1 day ago 0 replies      
Tools: Linux. IP. IRC. SMTP. HTTP. Wikipedia. SQL. RCS/VCS. Travel.

'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.

fsloth 1 day ago 0 replies      
The biggest impacts on my professional thinking were caused by learning Ocaml and F#. Those impacted greatly the way I approach systems design and programming in general. The second biggest impact was probably learning Scheme and writing a scheme interpreter.
cr0sh 1 day ago 0 replies      
Gonna keep this short.

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!)

protomyth 1 day ago 0 replies      
NeXTSTEP 3.3 changed my whole way of thinking. It was an amazing development environment with a separate interface builder that allowed me to spend a lot of time just thinking about the best way to do things. Objective-C is still one of my favorite languages. It was also my first BSD experience and lead me to FreeBSD and then OpenBSD. The difference between Objective-C / NeXTSTEP or Cocoa and C++ / WIN32 was amazing.

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.

alexmorenodev 1 day ago 0 replies      
Shell made me a lot more agile to do various simple tasks which would take me time for repetition.

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.

cbmueller 1 day ago 1 reply      
For me: https://d3js.org/Once i learned how to use d3 i was like: This is what i want to do.
mikestew 1 day ago 1 reply      
FoxPro for Unix. The FoxPro part is what kept a thriving consultancy going for years (which we sold before...). The Unix part is how I ended up at Microsoft, ironically (in the 90s) because I knew Unix and a hefty helping of FoxPro knowledge didn't hurt.

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.

mikeleeorg 1 day ago 0 replies      

This is way back in 1998, when there was still VBScript and JavaScript was still very nascent. I had no idea it would have the impact it has had on the Web today. I just found it a cool way to make rollovers and other effects.

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.

I created and played with so many cross-browser JavaScript libraries in that day. (Anyone remember 5k?) This is way before jQuery. Even made a bunch of widget libraries. Looking back, it was such a Wild West. Arguably, it still is.

Somewhere around 2003-2005, a bunch of colleagues and I started to apply formal computer science discipline and principals to JavaScript. Many others were trying similar things too. I even remember using an iframe to dynamically load and change content on the page without a refresh, a precursor to "AJAX" when it was coined in 2005. Somewhere around this time, I remember colleagues talking about using JavaScript on the server too, instead of just the client.

It's pretty crazy to see how far this little scripting language running on a Netscape browser has come.

txprog 1 day ago 1 reply      
Kivy (https://kivy.org) changed my career too. I make now a living mostly due to this project :)
bastih 1 day ago 0 replies      
For me that was Smalltalk. The environment, the tooling, the purity of the language. Not saying everything is great there, but it's pretty great once you get used to it.

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.

gowthamsadasiva 15 hours ago 0 replies      
It's "Docker" that changed my career and I still believe it has the capability and growth to change my career further too.

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 :)

petercooper 1 day ago 1 reply      
Ruby and Rails in 2004. I'd been a Perl developer for 8 years till that point but had basically given up on building anything substantial with it and was transitioning to being a freelance writer. Ruby and Rails got me straight back onto the development track and had a huge influence over my successes since.
tootie 1 day ago 0 replies      
When I realized language and framework choice have at best a marginal influence on product success and started focussing on identifying the right problems and getting to a solution quickly without letting developers get distracted by superficial decisions.
macca321 1 day ago 1 reply      
Building (certain) applications using in-memory persistent objects instead of using a stateless web app + database server, somewhat similar to a multiplayer game.

Made programming fun again. Don't seem to get to use it at client sites as it's too extreme an approach :(

sbalea 1 day ago 0 replies      
Erlang. I used to be a C/Java kind of guy with a little bit of C++ and PHP sprinkled in. Got tired of using GDB to rummage through core dumps in order to figure out C/pthreads concurrency bugs. So looked into this new fangled thing called Erlang that came with this weird programming model called "functional programming". Boy I was hooked.

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.

hellofunk 1 day ago 0 replies      
Definitely Clojure, both server and browser (clojurescript), and also using React from Clojurescript (Om). These in combination gave me a big new glimpse into the wide variety of expressivity among languages, and how UI development can be significantly streamlined.

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++).

p333347 15 hours ago 0 replies      
I have been a C++ dev for all my career (about 14 years), so JavaScript was pretty cool relatively speaking. For various reasons I had been a Luddite of sorts and late to the webapp party. But when I finally got in, (more like circumstances left me no choice, technically not financially or socially) mid 2015, I was amazed at the influx of ideas I had. I mean, not only am I porting my desktop apps to web, I am also tinkering with ideas that never made sense desktopically so had never occurred to me. I have to admit that JS was a PITA, albeit of a different kind from C++, but it has certainly made me more confident and viable in starting my own thing. (For those who care, the front end is in Vanilla JS and for back end I am planning ASP.NET and WebAPI.)
facorreia 1 day ago 0 replies      
Turbo Pascal for CP/M, and later for MS-DOS. It empowered me to develop business process automation software and jump-started my early career -- I moved away from older tools like COBOL.
synthmeat 1 day ago 0 replies      
Combo of vim+tmux+tmuxinator.

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.

cutler 1 day ago 0 replies      
Clojure and Rich Hickey's sermons from the Mount. Absolutely game-changing.
Vanit 1 day ago 1 reply      
I don't know if it was career changing, but NodeJS blew my mind when at the time our company was using a lot of PHP cron jobs.
xamlhacker 1 day ago 1 reply      
Ocaml, F# for programming languages and ZeroMQ in terms of libraries. And recently HTC Vive in terms of hardware.
doweig 1 day ago 1 reply      
Elasticsearch + Kibana.

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.

bocata_chorizo 1 day ago 0 replies      
For me it was JavaScript.

I learned C and C++ in university. It was all either procedural or object-oriented.

JavaScript made things a lot simpler, especially first class functions and higher order functions. It delighted me that you can just pass the function like it's a variable instead of messing with pointers. It's also delightful that a normal function can return an object. No constructors, instantiation, hierarchies, complications. Just spit out the object. It's simple!

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.

knz 1 day ago 0 replies      

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.

cx1000 1 day ago 0 replies      
- making gdb user friendly with this .gdbinit file: https://github.com/cyrus-and/gdb-dashboard

- fabric, the python library: https://www.digitalocean.com/community/tutorials/how-to-use-...

- sublime text package manager

vintagedave 1 day ago 0 replies      
For me it was Delphi. This was in the nineties and it was a beautiful language paired with a UI editor in a time when that didn't exist (there was only VB (ugh) or MFC, if that really counts as a UI designer.) It had a huge influence on languages, especially C#, which feels like Delphi-with-braces to many Delphi programmers. For me as a teenager, it was when I "got" OO programming and set me off on a programming career, which led to many adventures (sailing, natural disasters, etc.)

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.)

antaviana 1 day ago 0 replies      
- Turbo Pascal when I was programming in RPG II- Delphi when I was programming in Turbo Pascal- AWS
willthames 1 day ago 0 replies      
Ansible - I first discovered it from a comment here, thought 'who needs a new config management tool' then realised Michael Dehaan had also written cobbler so thought it was worth a crack. Since then my python skills have improved through reading and improving the ansible code base, I've written ansible-lint, ansible-inventory-grapher and ansible-review, and I've been on two long distance conference trips as a result.
Hyperized 1 day ago 0 replies      
Ansible. and maybe Puppet a bit. They allowed me to scale with my career. Going from a few hand-managed servers to 100k+ environments at ease.
belvoran 1 day ago 0 replies      
My wow moment was when I first found out something totally different than my comfort zone. It was SQL then. But it was 15 years ago.

Another wow moment was Perl, and its just three data types.

Then lisp.

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.

However for the last 15 years I've been commercially programming in C, C++, Java, Javascript, Python, Ruby, Perl, Delphi, PHP, SQL.

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.

cableshaft 1 day ago 0 replies      
Flash. Without it's awesome graphics, animation, and sound integrated with programming and its awesome community at the time, I might not have even gotten back into programming, as I had taken a two year break from it at the time after a rough college computer science experience with terrible professors.
fatboy10174 1 day ago 0 replies      
I Started with vb.net, and then quickly tranisitioned to C# at the advice of a manager about 12 years ago, naturally incorporating javascript and HTML and i've never looked back since. I had an 'wow' type of moment when i discovered MVVM (Knockout) and decided to bite the bullet and actually learn jquery.
gotofritz 1 day ago 0 replies      
Well I go way back, for me the first time it was PERL for web programming, that lovely write-only language.

The biggest one though was Javascript when Netscape first invented it. Suddenly FE development went from HTML without even CSS to actual programming, and one could see the potential of the platform.

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.

andretti1977 1 day ago 0 replies      
Java changed my (professional!) life. In 1999 i was able to develop desktop applications for both windows and linux without (too much) pain thanks to the JVM.It was love at first sight. After graduating i started developing web applications, always in java and it was very cool.

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).

During all these years i have become a proficient developer also with groovy (Grails was great, but sloooow and little adopted), with objective-c developing iOS apps, php and javascript so i agree with who said that it is fundamental to learn different languages, but my favorite one is still JAVA, even today!

IndianAstronaut 1 day ago 0 replies      
R. Until I learned R, I really never was able to do statistics and machine learning on the datasets I was given. Python just didn't cut it since it had minimal statistics compared to R and scikit learn wasn't able to fully handle a lot of the missing data problems I had.
dvd-darias 1 day ago 0 replies      
-> ssh + bash

Being able to fully control a remote computer as if i were in front of it is a most.

-> git

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.

-> docker

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.

FascinatedBox 1 day ago 0 replies      
When I decided to build my own programming language. I had a handful of smaller projects under my belt beforehand. Before that, I had never thought much about what goes into the design of a language, and how important that decisions are (as well as the interactions different parts can have).
gpsgay 1 day ago 0 replies      
Honestly? PHP hehhehee. PHP is a language that works for people who want to get things done on the internet in a very uncomplicated way :P... Plus, it is also quite powerful if you actually go into detail and access low level things as well. I hated Java for example... But PHP.. Oh, you can programme such wonderful things with just a text editor.
rwmj 1 day ago 0 replies      
Miranda[1] The language itself is a toy teaching language (and not even freely licensed), but it's so beautifully elegant - like writing mathematics - and it was a way in to ML and Haskell and other functional programming. In fact to do my homework I had to write a Miranda to Haskell translator so I could run the homework exercises on Linux.

[1] https://en.wikipedia.org/wiki/Miranda_(programming_language)

webmaven 1 day ago 1 reply      
Zope in 1998 was a complete game-changer.
davidspiess 1 day ago 0 replies      
React & redux. Through redux i came in touch with functional programming. During the first week learning it, i came home from work exhausted and with a headache but eventually it clicked and i was amazed how productive and bugfree further development was. I began to adapt the functional style in my PHP projects and started using real functional programming languages (Elixir and F#) to take my understanding even further. Still plenty to learn.
sconxu 1 day ago 0 replies      
For me it was when I discovered React-Native. As a one man show in the beginning of our mobile application existence, developing both for Android and IOS at the same time was a blessing.
maxencecornet 1 day ago 0 replies      
Meteor made me way productive
131hn 1 day ago 0 replies      
PHP developper since +10 years, I learned little by little client side Js through Mootools (object programming 5 y ago). I started nodejs 0.10 2y ago and got a serius wow when i realised node 4 & generators & tj/co could efficiently replace line-per-line how i used to work in PHP (async-co, pg-co) with so much more power (browserify, mocha, istanbul, npm, ...). I guess today the switch is complete for me
misterioss 1 day ago 1 reply      
Intellij IDEA <3
internobody 1 day ago 0 replies      
If not for Ruby/Ruby on Rails I'd still be doing support in Windows land, and not building fun and cool anything.
coygui 1 day ago 2 replies      
Nobody mentions RUST? I thought it,s popular here...
zubairq 1 day ago 0 replies      
Ruby, then Erlang, but most of all, Clojure!
codewritinfool 1 day ago 0 replies      
Borland Delphi. Beautiful IDE, native code output with no runtimes, lightning fast compiler.
kamalkishor1991 1 day ago 0 replies      
Trying out competitive programming really improved my coding ability in any programming language. Recently I tried out Ruby on Rails which blows my mind and changed my view about frameworks(It is really 10 times faster then java to create a web app). Previously I had written web apps in java and node js.
ergo14 1 day ago 0 replies      
For me it was Pyramid+SqlAlchemy - For me probably best python web framework if you want something more than CMS.

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.

vmorgulis 1 day ago 0 replies      
Rasmus Lerdorf about PHP Frameworks: https://www.youtube.com/watch?v=DuB6UjEsY_Y
pmontra 1 day ago 0 replies      
Rails circa 2006. I could develop a full web app in days or weeks instead of weeks or months with Java.
enapupe 1 day ago 0 replies      
React + ES6 imports = wow + peaceI got my first bucks as a developer more than 10 years ago. Only recently I felt like I have an actual good code structure. Having components and managing dependencies with es6 imports is truly awesome.
reacweb 1 day ago 0 replies      
Perl in 1998. When the purpose is not the program, but the result of the execution of the program, it is important to code fast. With perl, you code like you think. Autovivification keeps your code concise and easy to write. The syntax invites you to check for errors.
anythingbot 1 day ago 0 replies      
identity-fixing monotone (in the prefix relation, a partial preorder) maps of cancellative monoids. It is possible to use them as a model of abstract sequential computation, so they can be used for applications such as mathematical models of compilers, parsers, ...


AtheistOfFail 1 day ago 0 replies      
Pow and Powder for Rails Development.

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.

wastedhours 1 day ago 0 replies      
Moving from PHP to Rails in 08/09. First dabble with MVC and it really changed the game for me - and the gem ecosystem made things (at least feel...) a lot less hacky than taking random scripts from Google.
ceder 1 day ago 0 replies      
expect, TCL and DejaGNU. My first consultancy work assignment: "Paul had to go on an extended vacation. Nobody understands his code, but he says it is almost done. Finish it up, please!" Thanks to DejaGnu and expect, I could write an extensive testsuite, get good test coverage, fix the few missing pieces of code, and deliver a bugfree product in less than the allotted time. (Of course, I'm not sure it was bugfree, but nobody found a single bug in the next couple of years.)

Then Python, where I understood that a language doesn't have to be as toylike as TCL to be extensible and embeddable.

galfarragem 1 day ago 1 reply      
It would be cool if HN had kind of auto TLDR tool. The sentiment seems to be:


PERL (1998)




brooklyndude 1 day ago 0 replies      
Firebase. AWS. S3.
NickHodges0702 1 day ago 0 replies      
Delphi. By a mile. I had dabbled in Turbo Pascal for Windows, but Delphi was, and still is, the thing that gets me up in the morning.
verdverm 1 day ago 0 replies      
Golang - turned 30k C into 8k lines of Go, no more gdb.

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.

kaspermarstal 1 day ago 0 replies      
SimpleITK. Hands down the best medical image processing library ever.
Beltiras 1 day ago 0 replies      
Functions as first class citizens in Python. I knew that you could pass function pointers as parameters in C but there was something so foreign and new about it.
coldcode 1 day ago 0 replies      
Turbo Pascal 1.0 in 1983. First real IDE, fast as hell even on a IBM PC/XT of the day. It taught me the importance of fast build/test cycles.
andrei_says_ 1 day ago 0 replies      
Slim, never writing HTML again.
martiuk 1 day ago 0 replies      
It's not exactly a language but learning puppet has opened up a lot more opportunities for me recently and is what pushed me into contracting.
gaius 1 day ago 0 replies      
It's far from cool now of course but Java, in 1995.
xophishox 1 day ago 0 replies      
Terraform and Ansible so far have been insanely helpful additions to my infrastructure management tools. Actually, they are my only tools almost now.
valw 1 day ago 0 replies      
After about 8 years of Java only, JavaScript. Then Clojure.
doobiaus 23 hours ago 0 replies      
redis.Coming from years of old school "Web + DB + memcached" redis has blown me away with what it can do from searchable lists for typeaheads to pub/sub.
ivanceras 1 day ago 0 replies      
From Php to Java and now Rust. Though rust is not prominent yet, I'm sure I will have a lot of fun when it would go mainstream.
ilaksh 1 day ago 1 reply      
Wow moment for me was finding out about Nim which proved once-and-for-all for me that the idea of performance vs. code clarity/convenience having to be a trade-off was a fallacy.
lkleen 1 day ago 0 replies      
for C++ development: The usage of tracing tools like windows performance analyzer or instruments. windows crash/freeze dump analyzer. malloc guard or application verifier to find memory acess violations. Theese tools are often very helpful and speeds up our work to find the culprits for the really hard cases.
usgroup 1 day ago 0 replies      
Picolisp because:



Tightly coupled, distributed DB queried with prolog

Tightly coupled UI engine

Everything under emacs

nojvek 22 hours ago 0 replies      
Typescript + VSCode. That stuff is crack.
optionalparens 1 day ago 1 reply      
Lisp - It was one of my first few languages, but really learning it damaged my view of everything else. To use a real Lisp machine, Lisp debugging/backtracing, and have code as data was such a huge win over writing ASM, C, Fortran, and the many other languages I used a lot back then. I still feel almost all other languages are catching up, while Common Lisp itself I felt got ruined by a lot of nonsense even though I still use it sometimes. So both excitement and disappointment here. This is where I really learned to use functional programming and became productive. All of my code since, even in OOP takes things I learned here like data first, preferring operations on lists/sets of data, and meta-programming. This is also where I learned that syntax really doesn't matter and people while they might have preferences, they are generally too caught up on syntax for the sake of it and not what it can do for you (ex: code is data, macros).

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.

pheon 1 day ago 0 replies      
Verilog its like going from 2D -> 4D

And thats for real complex projects, not making LED`s blnik.

vsipuli 1 day ago 0 replies      
Linux and Emacs, circa 1997.
cutler 1 day ago 1 reply      
Django faster than raw PHP or Phalcon. I find that hard to believe. Are we talking PHP7?
q_revert 1 day ago 0 replies      
matplotlib. at times it can be tiresome, given the multitude of ways it's possible to do things, but it's always possible
alex4Zero 1 day ago 0 replies      
I would say not tools, but Agile mindset
jafingi 1 day ago 0 replies      
geebee 1 day ago 0 replies      
First, ASP and Microsoft Access. I know, I know. But it made it so easy to create a web based prototype. I was in grad school at the time, and I was able to put working software on the web as part of class projects. People were impressed with that back then. Man, it got me hooked.

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, javascript framework churn has pushed me back into the way I felt during the explosion of Java based frameworks. The difference is that I know understand that this will pass, it's a period of chaos that often accompanies a large shift in technology and focus. It will settle down, and what emerges will be simple, effective, and useful. However, I am also making an effort to find shelter from the storm. Eventually, this will be sorted out, but I don't want to get sucked up into the vortex for several years like I did with Java in the mid 2000s. Like a lot of devs, I'm looking to stay on the backend - though this has always been my inclination anyway.

Lately, scipy and scikit-learn, I hope. The ease of doing formerly difficult things may lead to some awesome new directions!

59nadir 19 hours ago 0 replies      
I started out doing a few years of C++ and ended up fairly disenchanted with programming. I had started when I was 14 and by 19 I was sure I didn't really want to sit down and program every day, because it just wasn't exciting enough anymore.

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.

dschiptsov 1 day ago 1 reply      
MIT Scheme, Common Lisp, SML, Haskell, Erlang.

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.

Java, JavaScript - Packers, packers everywhere...

DanielBMarkham 1 day ago 0 replies      
A couple of things:

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.

Javascript -- I really hate Javascript, even though I've been coding with it since it came out. But learning it gave me a front-row seat to watch the world evolve

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.

moron4hire 1 day ago 0 replies      
I have been a "general purpose" developer (I hate saying "full stack", because there are no stacks and I don't always work exclusively cross-disciplinary). Mostly web-focused, but I've done stints where I was 100% SQL or 100% desktop. There was even a brief period where I was exclusively doing embedded C. I've done JavaScript since it was invented. I've done C# since it was invented.

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.

Ask HN: Kubernetes vs. Nomad vs. Mesos vs ...
8 points by vamitrou  7 hours ago   4 comments top 2
schmidtc 3 hours ago 0 replies      
I run a small 4 node mesos cluster. So far it's been great, took a day or two to setup and has been running for about a year now with little to no maintenance. (I should probably update). I launch long running services through Marathon and crons with Chronos. I use haproxy for service discovery and load balancing. It's mostly used for data processing, but does serve data to a production web environment (~40k req / day).

The things I like the most about mesos is that it is light weight and removes a like of the friction in deploying new services. So I can test out a new idea without a big investment or f*ing around with the giant monolith. I found container based approaches too resource intensive for my budget.

user5994461 7 hours ago 1 reply      
I assume the topic is Docker orchestration to automatically start/stop/restart/kill/roll upgrade/canary/bluegreen the servers.

If you are on AWS, use auto scaling groups. It achieves more than these software, it works and it's stable. (Bonus: you don't need docker at all).

If you are on GCE, use Google Container Engine (i.e. their kubernetes). That's the only [sane] way to have kubernetes running in production.

I'm planning a blog post about all that later.

Ask HN: How do you present your SaaS offer to potential customers?
47 points by crabpeeps  1 day ago   7 comments top 4
simonswords82 1 day ago 1 reply      
I'm going to guess based on what you've outlined here you're selling B2B? Perhaps at enterprise level?

All things being equal, the content of what you're sending is more important than how you send it. PDFs, Google Docs, whatever - who cares...if the content outlines concisely how your SaaS offer makes/saves the customer money and the other associated benefits you can afford to send it on a frickin' napkin :)

You're over thinking the other stuff. You include a number of pages that is essential for the conveying of useful information to the prospect. Customers aren't going to scoff at a proposal because it's < 10 pages! Just don't pad it out with a load of corporate shit, keep it on point and yes a picture says a 1000 words so if a picture helps to sell the vision, include it.

I presume given you're engaged in selling your wares you've carried out competitor analysis? What do they send to their prospects? If you don't have competitors (I doubt it) what do companies that you like send out? If you've not secret shopped them already I recommend you do. Smart Bear (https://smartbear.com/) are one of my go to companies for researching how to go about software sales.

I do this stuff for a living, if you want any other feedback or perhaps examples of what does/doesn't work hit me up. My details are in my HN profile.

jamesmcintyre 1 day ago 0 replies      
For those answering, what do you think of designing a "free" product to let the client use as a "gift" for their time. Perhaps your pricing tier has no freemium but after getting a meeting with the client you offer a special freemium version with the sentiment being "look, whether you choose our service or not let me give you this product which can help your operations even if you don't pay a dime"

I think for most this would seem like a good idea. You are both giving the potential client a chance to use the service and maybe signaling that you aren't desperate for the sale that you are just as happy if they just get value out of the free gift. But then there's pricing theory, maybe just giving away what is supposed to be so valuable "cheapens" your product and signals that in fact you're desperate to sell so you're giving it away.

I'm sure striking a balance is required here but I'm curious where on this scale from "generosity signals abundance" to "scarcity signals value" do your recommendations fall?

endswapper 1 day ago 0 replies      
In engaging potential clients focus all of your time and energy on the conversation and the close.

Collateral materials are helpful when you are casting a wide net and you have the resources to take a shot-gun blast approach. It sounds like you have limited resources, which makes the leave-behind a very low priority. Today, gathering the data on what to present and how is the priority.

If you are the only person doing sales, or if there are only a few of you, the best approach is to use email. You should be sending a follow-up email anyway, even if you leave something behind to move things forward to the next step. It's direct, personal and it can be customized quickly and easily for each customer. Then you can use the experiences using email to inform the needs of collateral materials down the line.

Finally, when you do put something together that checks enough boxes based on real client responses it should be available everywhere. Meaning, something printed when you leave the meeting, an attachment in a follow-up email, a link in your email signature to something viewable on your site. You'll find everyone will access it differently, so provide everything. Today, I have enterprise contacts that will ask for a fax. That always amazes me, and then I send an efax.

relaunched 1 day ago 0 replies      
You need to start reading https://www.saastr.com/ immediately.

Jason Lemkin has great insight into how to sell to SaaS products, how to run SaaS businesses and everything else SaaS.

Good Luck!

Ask HN: Open-source requirements management?
5 points by Tomte  19 hours ago   3 comments top
dekhtiar 19 hours ago 2 replies      
If you mean an open-source project I don't know.But if you need something free for open-source : https://gemnasium.com/
Apple Rejected My App for Using Google Sign-In
59 points by rdowty  2 days ago   10 comments top 5
rdowty 5 hours ago 0 replies      
I got a reply to my appeal today.

"While we understand your app is using a Google login, it still provides access to Pokemon services without the necessary permission. It would be appropriate to ensure that your app does not include the Google/Pokemon login."

My response was this."Somehow the reviewers seem to think that because I use Google Sign-In I can access all the data from any other app that uses Google Sign-In which I can't. I can no more get Pokemon data than I can access the users Gmail. My app only asks for basic information which is just the username (i.e. Ronald A. Dowty)."

analogmemory 2 days ago 1 reply      
"try as I might I could not convince them that my using Google Sign-In does not link to Niantic or the Pokemon Company"

Seems they're getting stick on this point not that you're trying to use Google sign-in

maxt 2 days ago 1 reply      
> I submitted an update which was rejected by Apple because I used Google Sign-In

Friendly reminder you are at the whim of Apple Store admins who like to play the role of gatekeeper. I got tired of developing apps for them only to have them rejected for pithy reasons. I stress the word 'for', because it really felt like I was trying to please the Apple Store, and not my users.

nerdbites 1 day ago 0 replies      
Please do post what happens now that you've raised the issue with the resolution centre. I look forward to seeing how they justify this.
chetanahuja 2 days ago 1 reply      
Welcome to the walled garden of love. At least this walled garden "just works".
Ask HN: What software do you depend on for day-to-day tasks?
15 points by sc4th1s  1 day ago   18 comments top 12
brak1 1 day ago 0 replies      
On my local machine for normal work stuff: Phpstorm, git, rsync, vim, os x terminal, chrome, firefox, omnifocus, sequel pro, photoshop, 1Password, etc

Less common stuff, but thing I install on any new computer (os x) - I think they are all from the App Store for a few dollars each:

Color picker (puts an icon in bar at top of screen, i click it then click anywhere else and it puts the colour hex code in the clipboard.

CommandQ - makes me hold down command + q to quit an app. I hate the default OS X way of clicking command + q to quit an app. Not from app store - https://clickontyler.com/commandq/

Flycut - remembers 100 clipboard items. Cmd+shift+v, then i can 'scroll' through 100 previous clipboard items with left/right arrow keys.

Disk inventory X - see what kind of files are taking up space

Skitch - for quick screenshots with nice annotations (from evernote)

p333347 16 hours ago 0 replies      
Search and Replace for Windows (that nifty little tool with blue binoculars icon), HxD - Hexeditor, Sublime Text, Visual Studio Express (web and desktop), Beyond Compare, MS Paint, GIMP, sometimes Inkscape, Calculator, Glary Utilities (This was a lifesaver when I accidentally deleted source copy instead of last modified backup copy of code I had written all day. I learnt a lesson - never do file delete at 2 AM when tired and sleepy). All these are pinned to the task bar, except calc which I can just start->run.
arconis987 13 hours ago 0 replies      
It's silly, but after trying all kinds of different todo systems, the most effective I've found is an "Ideas" Google Doc. Psychologically, I think my mind prefers that the doc is a list of ideas that are optional rather than a list of mandatory todos.
wallstprog 1 day ago 2 replies      
The one tool I wouldn't want to live without is BeyondCompare (http://scootersoftware.com/)
lcall 1 day ago 0 replies      
My organizer: it is how I think & keep track of things, efficiently. For me, like GTD only very efficient and ~"infinitely" nestable & fast. I wrote it because it is what I wanted. AGPL. Details under "About" at: http://onemodel.org
tedmiston 1 day ago 0 replies      
For dev tasks nothing fancy -- a terminal, browser, and Sublime mostly.

For non-dev tasks, I spend a ton of time reading with a Safari Books subscription, Instapaper, and the Kindle app for iOS.

For business tasks, I use Reminders.app as a tickler file (GTD) and Due for OS X / iOS. Google Keep is pretty nice for re-usable checklists.

niosus 1 day ago 0 replies      
Apart from sublime text and terminal for work and a browser, there is a nice piece of software called pomello. It works with trello and essentially builds a pomodoro timer on top of it. It helps me very much with getting things done.
samblr 1 day ago 0 replies      
Webstrorm with lot of live templates + terminal with lot of aliases. Related files backed up to Dropbox again via an alias.
elechi 1 day ago 0 replies      
Chrome, cygwin and notepad++.
atesti 1 day ago 0 replies      
Total Commander (ghisler.com)
SixSigma 1 day ago 2 replies      
I try to depend on as little as possible.

A text editor & access to some sort of programming language. If my terminal dies I want minimum downtime. If my laptop dies, ditto.

That's not to say tools aren't useful but relying on them is trouble.

altern8 1 day ago 0 replies      
Atom, Google Chrome, Google Inbox, GitHub, Whatsapp, Spotify.
The new ng-conf site doesn't use AngularJS
7 points by mmilano  12 hours ago   2 comments top 2
dangrossman 11 hours ago 0 replies      
It's a premade WordPress theme for conference sites


rpeden 7 hours ago 0 replies      
That makes me think more highly of the conference organizers.

It's a small indicator, at least, that they've got a decent amount of awareness of when using Angular is a good idea, and when it would be overkill.

Winter 2017 Batch
10 points by RBBronson123  1 day ago   9 comments top 3
reidkersey 1 day ago 2 replies      
I could have sworn when we submitted our application that the date was Oct 28th...Weird...

Oh well, can't wait!

albertomr3 1 day ago 0 replies      
They have been sent today 25th, I though it was 28th as was the date on the app.
angeliyuson 1 day ago 1 reply      
Supposed to be today, 25th October
Ask HN: YC W2017 Applications. Who got invited/accepted?
23 points by traviswingo  1 day ago   9 comments top 4
will_brown 1 day ago 0 replies      
Rejected: MedicareMTM.com

Customer: Walmart Health & Wellness

Founders: James Brown, M.D.; Andy Megna, RPh, PharmD; Will Brown, Esq.

IP: Patent pending business method to facilitate Medication Therapy Management in real-time. (e-scripts for MTM)

RBBronson123 1 day ago 1 reply      
Just invited: 70MillionJobs.com
tatvamasi 10 hours ago 1 reply      
Invited as well - Trail Answers - trail.finitepaths.com
angeliyuson 1 day ago 2 replies      
Invited as well: todobot.io
Ask HN: What are the best web tools to build basic web apps as of October 2016?
111 points by arikr  3 days ago   81 comments top 44
sandGorgon 3 days ago 2 replies      
Are you an experienced web programmer and already know how to manage migrations, CDN, REST apis, etc ?

If not, I would still go with Rails. Its massively productive, batteries included... and forces you to learn some practices that you can later take to other frameworks (migrations, asset pipeline, etc).

I dont know of any other framework that forces you to adopt these. On HN, you will find a lot of rhetoric against that - which may be true for experienced programmers.

But for sheer productivity from someone new to all this... Rails really cannot be beaten.

In the JS world, you will spend atleast a couple of days figuring out Requirejs vs AMD vs commonjs vs webpack vs browserify vs npm vs yarn.

I'm not so sure if it is worth it...unless learning JS frameworks was your goal all along.

xiaoma 3 days ago 2 replies      
If you're building a basic webapp, you shouldn't be using a front-end framework at all!

React has one of the gentler learning curves of the front end frameworks, but it's still a lot more work than just rendering everything server-side and adding whatever minimal effects you need with jQuery.

I second sandGorgon's recommendation to use Rails. PHP is another good option. It's absolutely amazing how many successful new software companies are being built off of WordPress and/or Laravel.

I say this as someone who was using React in February 2014 and who loves to geek out over newer more powerful technologies. The thing is, your users don't care. Groupon was launched as a crappy WordPress site + a mailing list, built way past its breaking point, migrated to Rails, broke again and was a $5B company in 5 years. Many, many startups with harder-core technologists started years earlier still haven't reached where they are now even with a perpetual string of problems and failures from their IPO until now. Teespring started on Rails long after that was cool and they're a juggernaut.

Use something productive and ship it.

blaze33 3 days ago 1 reply      
1. I work with Django, Django Rest Framework, React, works well. I heard that Vue might be an interesting option. Honestly there's a myriad of tools/framework around there, you have to ask yourself what are you trying to achieve? Is it a one shot app you'll build over the week end? Something that you'd like to maintain over time? That may scale? Are you working alone on this or not? Is it an exercise to learn a new stack? I started a startup 4 years ago, asked a friend who's a ruby/rails dev for advice about tech/stack, his answer, yes rails is awesome but as you already know python go for Django as my goal was primarily to get stuff done business-wise not so much to learn cool new tech. So be aware of your options and definitely spend some time to know them but in the end they're just tools, don't forget why you use them in the first place.

2. I stumbled upon http://stackshare.io the other day, I can't vouch for it but seemed nice to have a quick overview of what languages / framework / services are used around.

machiaweliczny 3 days ago 1 reply      
1. I would go with VueJS for frontend - see example https://vuejs.org/examples/tree-view.htmlDefinitely can recommend handling of complex state through redux/vuex.

For backend: Go with anything that you are proficient with. If you aren't familiar with anything I recommend starting with RubyOnRails/Sinatra/Django/web2py/Phoenix.

2. Yes - http://bestof.js.org/ See also http://stateofjs.com/2016/introduction/ ,

eterpstra 3 days ago 0 replies      
Meteor is still pretty great. It's an all-in-one (including database) framework that uses JavaScript for both back and front ends. It's build tool also saves you from having to configure things like Babel, Webpack, SASS, etc...

The documentation for beginners is top notch as well:https://www.meteor.com/tutorialshttps://guide.meteor.com/

There's plenty of options, too. You can throw together a few files and have a simple app going in a very short time (an hour or two), or build highly modular apps with a React or Angular front-end.

aban 3 days ago 1 reply      
I'm going to go out on a limb and suggest this stack (especially if you're into functional programming):

Haskell + Elm or PureScript + Postgres

The best part about it is that it helps you catch many errors at compile time, instead of having your app crash at run time.

For keeping your Haskell and Elm data types in sync while maintaining sanity, I recommend elm-export [0], which will automatically generate the Elm types and JSON decoders from your Haskell code, using GHC Generics. Watch the author talk about it [1].

Choosing Elm over JS already gives you a head start, but you might hit a productivity wall at some point, and PureScript gives you all that extra power with its advanced type system. Some related discussion here [2].

Check out Matt Parsons' blog [3] for more on Haskell, Elm and PureScript.

Lastly, for database you can use Persistent [4] which gives you a type-safe API for data modelling and data store, and can automatically generate and perform migrations for you.

[0]: https://github.com/krisajenkins/elm-export

[1]: https://www.youtube.com/watch?v=sh4H8yzXnvw

[2]: https://www.reddit.com/r/haskell/comments/569cax/

[3]: http://www.parsonsmatt.org/

[4]: https://hackage.haskell.org/package/persistent

P.S. Do take my suggestions with a grain of salt as I don't have much experience with any of the fancy JS frameworks.

tptacek 2 days ago 2 replies      
If you're a committed, heavily-invested user of a specific language, and well into your professional career: use that language.


If you like Python, Django.

If you like Ruby, Rails.

Otherwise: Flip a coin.

Heads? Rails.

Tails? Django.

A lot of very smart people will tell you that PHP is as good an option as Rails or Django. The problem with PHP is that while the upside for PHP is, as they're observing, just as good as the Rails/Django upside, the downside is way worse.

Counterintuitively: I think you should really know what you're doing as a developer before you decide on PHP. PHP isn't by itself going to teach you to be a better developer. Python will.

Avoid Javascript frameworks until you really understand what you're doing. Also, know ahead of time that "really understanding what you're doing" might result in you continuing to avoid complicated Javascript. A trap I can tell you about from recent experience. :)

Probably don't build front-end web applications in Go.

protomikron 3 days ago 1 reply      
The comment section reads like a satire. :) So the conclusion is probably:

"No one really knows."

renke1 3 days ago 1 reply      
Frontend: TypeScript, React, MobX

There is (in my opinion) no reason not go with TypeScript. It's strictly better than ES6. React and MobX because of their simplicity.

Backend: Go

No particular reason to choose Go other than it's fun. TypeScript with Node is also a good choice.

Edit: I am talking about SPAs.

echelon 3 days ago 0 replies      
I predict you're going to get a lot of different answers and that you may not find a strong consensus.

My advice is that there is no clear winner. Each technology serves a spectrum of needs, some better than others. If you're experienced enough to know what you need, then vet each technology in terms of what they offer to solve your problem. If not, my advice is to pick something that appears reasonable and go with it; you'll learn a lot, and eventually you'll arrive at the conclusion that all of these things are just tools--your own experience is the strongest thing you bring to the table.

tanin 3 days ago 1 reply      
For frontend, I prefer PolymerJS with vanilla JS. The way it scopes CSS/HTML/JS is cleaner, and this is the right direction. (I never use ReactJS.. but it might be similar).

For backend, I prefer Play + Scala over Ruby/Python because of the static typing.

hunvreus 2 days ago 0 replies      
I spent recently some time re-evaluating tech stacks to get back into prototyping apps. My team [1] primarily uses React/Node.js, but from experience it seemed overkill for my needs (IMHO, great at scale but can get in the way of smaller apps).

I settled for Flask[2], SASS (using egg, my own boilerplate/micro-framework [3]) and Vue.js [4].

Simplest to get started with, gets the job done and scale nicely.

[1]: http://wiredcraft.com[2]: http://flask.pocoo.org/[3]: http://wiredcraft.github.io/egg/[4]: https://vuejs.org/

tschellenbach 3 days ago 1 reply      
React/Redux + Django + Django request framework + Postgres
qaq 3 days ago 1 reply      
Best tools are the ones that are appropriate for solving a given problem and that your team is productive with. React seams to be the most popular for new projects at the moment, but it tells you nothing about it being a good choice for your particular problem or situation. React is significantly more popular than Vue but say you happen to be planning a Laravel project and in that community Vue is way more popular than React. It would appear that Vue is a solid choice for you new Laravel project, but then you get a requirement that you have to build mobile apps and they should share as much code as possible with your SPA yet use native widgets, now it appears you better of using React. So in general it's pointless trying to base your choice on how popular something is.
djmashko2 3 days ago 0 replies      
I think you can build a simple web app very quickly using Create React App on the frontend, and a REST or GraphQL API on the backend.

One great thing about this architecture is that it can scale as the app gets more complex, since you can just add more components to the UI, and more fields to the GraphQL schema, without needing to re-structure anything.

I work on Apollo, a set of tools to make it easy to create and use a GraphQL API, and we have a hello world client [0] and server [1]:

[0] https://github.com/apollostack/frontpage-react-app[1] https://github.com/apollostack/frontpage-server

bnt 3 days ago 0 replies      
What problem are you trying to solve? Are you building a basic todo app or a massive CRM tool? Are you more concerned with performance or speed of development?
santa_boy 2 days ago 0 replies      
I'm a fairly novice programmer and mostly build business applications. I work with Meteor, Django and PHP (Code Igniter).

If you are looking at building basic webapps, I will really recommend Meteor. It is very intuitive, flexible and Javascript across the whole stack. It can easily integrate with Vue and React, which are again JS friendly.

Django is very neat and you can learn how to code within a week looking at the sourcecode of Wagtail.io ... I did it that way.

PHP is very straightforward and pretty much every issue that you run into would perhaps have a solution ready for you on StackOverflow.

BjoernKW 3 days ago 0 replies      
Basic can mean very different things depending on the purpose, audience and market the app is targeted at.

If you're building simple CRUD apps for a business audience both Rails and Spring Boot would be good choices for instance.

In terms of front-end development I'd suggest vanilla JavaScript and HTML5. Keep things simple. A basic web app doesn't need any complex framework.

That said Angular, React.js and Vue.js are equally valid choices for building complex applications but each of them is way beyond a 'basic web app' scope in my opinion.

noobermin 3 days ago 1 reply      

If you're really unpatient, I'll click on the first link for you[0]...which reveals the popular frameworks. This is based on real data since it's a survey, not just one or two comments on HN.

[0] http://stateofjs.com/2016/introduction/

Cal3bos 2 days ago 0 replies      
1. Interesting applications in October:

CSS ICON: http://cssicon.space - Generate CSS icon.

INITIALIZR: http://initializr.com - Generator HTML5 templates (Classic/Responsive/Bootstrap)

BUDDY GO: https://buddy.works/buddy-go - Git hosting on your server.

LAYERSTYLES: http://layerstyles.org/ - Crate CSS from Photoshop Layer Style.

FFFFALLBACK: http://ffffallback.com - It bascially scans the pages CSS and creates a clone page where you can test and analyze different fallback fonts.

mcs_ 3 days ago 0 replies      
I spent 2 weeks times ago learning react. My family was in vacation, no kids no wife... so as a diligent nerd I decided to understand why half of the world is now convinced that css, js, html must live together.

Curiosity, one of the project I want to rewrite is an old .net 2.0 using Ajax 1.0 (someone remember that...) having response.write (literally anything)

The idea was understand also how to combine babel and webpack to work with an external api (couple of weeks before create-react-app that you should check in any case)

I'm not using react in production yet, the application I have are full of data entry and very few nice things like stars and likes or profiles with nice icons but

Spend some time on

VUEJS (use their vue-cli)

react (use create-react-app) and check react router.

If you still don't get them after few weeks html and jquery will always rescue you (at least for next 5 more years)

Backend... cause you are learning ES6... you probably want to check



Express session (maybe using mongo as data storage)

But becauseyou also want basic...

Check out

GitLab pages

Github pages

Both have nice solution for static framework.

Good luck with this.new.world.

sova 2 days ago 0 replies      
Well in my experience I must say: Node.js+Express is the way to go for making simple page-serving servers that can handle many many clients. If you wish to do something more complex with the front-end, I have been using socket.io and also Angular.js. Angular adds to the mix a "controller" that holds a per-client state so that you have your node "server," your angular-based "client" and then the view (which is the browser/html+css).

So, since your question says "basic" I'll leave it at that.

ergo14 3 days ago 1 reply      
For frontend: Polymer/VueJs, for backend Python+Pyramid+SqlAlchemy are great options.

For database Postgresql is your best bet.

rsj_hn 3 days ago 1 reply      
I don't know, but unfortunately the answer will be completely different in October 2018.
ojiikun 1 day ago 0 replies      
If you are comfy with Java, consider Ninja Framework for your backend. Dead simple configuration and ramp-up time. All of my sites based on it have been so fast (page loads < 50ms), I have had no need for AJAX at all.
davbeer 3 days ago 0 replies      
Frontend: Typescript, React, Redux

Backend: F# or Elixir

I liked how easy it was to learn Redux. It teaches you functional principles, not only useful for your specific web app but also for your career as a programmer.

rrrrrraul 1 day ago 0 replies      
Currently using Sinatra in my latest side project. I realize it's no longer the heyday of Ruby, but for simple apps its easy to get started and enables the possibility of using the vast amounts of Ruby gems in my project.
idlewords 3 days ago 0 replies      
PHP :-)
Lazare 3 days ago 0 replies      
The issue with your question, I think, is over the exact meaning of the words "best", "basic", "web apps", and "popular".

By many measures the best and most popular stack would be mysql, php, html, css, and maybe a little jquery sprinkled on top. It powers an enormous amount of the web, it allows very rapid development, and it's about as cool and hip among the hacker news crowd as a cod liver oil enema, and with good reason!

Of course, you can improve it, but you need to figure out what metric you're looking to improve it on. If you rule out PHP or jquery or whatever, then other answers start to look like the most popular.

> Seems like React frontend

React has a lot of buzz, and it widely used for new projects trying to build web apps with heavy client-side functionality. Of course, there's simply an enormous amount of Backbone, Angular 1, or random jQuery client-side apps out there, plus an even more enormous amount "traditional" webapps with minimal client-side functionality (like hacker news). You have to define your search quite narrowly to make React look like the most popular tech.

> perhaps Vue

In the last couple of weeks Vue has probably got more buzz in terms of people talking about it on HN and /r/javascript than React, yes. From a certain point of view that makes it more popular than React; from basically all other points of views it's much, much less popular. Then again, why do you care about popularity? The wisdom of crowds is probably least useful when judging hype-driven popularity contests.

> and Node being the popular backend?

For small hobby projects among people who mostly know JS and have no particular reason to choose anything else? Yes. And low barriers to entry mean it's used in a large number of projects.

On the other hand, in many ways it is an objectively inferior backend. And in others it's objectively excellent. It really depends what matters to you.

> Is there a site that keeps track of [...] how their popularity progresses?

Depends how you want to measure that. You can use google trends, or compare github stars, or npm downloads, or the number of topics posted about it on /r/javascript, and get different answers.

Realistically though...

...none of it matters. Any vaguely functional stack is good enough; the odds of your project failing because you picked Rails instead of Django, or Mysql instead of Postgres, or Coffeescript instead of Typescript is nil. What does matter is that you pick a vaguely functional stack and start writing code.

martin-adams 3 days ago 0 replies      
Someone sent me this which highlights the complexity of web development these days. Sad but quite amusing:


This question reminded me of it

westurner 3 days ago 1 reply      
wcummings 3 days ago 0 replies      
Basic? PHP + Apache.
szastupov 3 days ago 1 reply      
Frontend: React (via create-react-app), good old Bootstrap

Backend: backend as a service like Firebase or Horizon/Rethinkdb. Vendor lock-in is a big concern here but you can get your prototype done so fast with those tools.

qwertyuiop924 3 days ago 2 replies      
I would say mithril.js for the frontend and Flask for the backend is pretty good, but that's just my favorites. There are plenty of other good ones, and neither of those are particularly popular.
boraturan 17 hours ago 0 replies      
.net core with react?
IndianAstronaut 2 days ago 0 replies      
Crazy suggestion, but if you want basic,I suggest using Shiny with the R language. It is by far the simplest way to get a basic page up and running.
snippet22 3 days ago 0 replies      
It depends how much time you want to spend on it. If it's a simple app you'll never touch again then ms stuff is meant for turn and burn apps without learning anything.

If you want just Templating and always open connections for building backend site builder tools then PHP is your language.

If you want free and scalable with as little code as possible with building files you never have to write again then Python Django restful API and angular2.

If you plan for this to be worked on indefinitely and it'll be customized every day and you know the greatest will stay with you with high risk, then vanilla js and nodejs.

If you want as quick as possible but with a scalable price then reactjs and firebase.

jecjec 3 days ago 0 replies      
If I were starting totally clean. I'd use Rails 5 in API mode and React/ReactRouter. Add in Redux if you need more complexity.
programminggeek 3 days ago 1 reply      
przeor 2 days ago 0 replies      
The React Convention www.reactjs.co (ReactJS and React Native Redux, the right way)
vladimir-y 2 days ago 0 replies      
Does someone use TypeSript on both sides (backned for NodeJS and frontend)?
jbpetersen 3 days ago 0 replies      
On a similar note to OP, what are currently the best tools for building scaleable webapps?
nrjames 3 days ago 0 replies      
For a basic web app, I would just Flask and just use Jinja templates to render views.
bwackwat 2 days ago 0 replies      
Notepad on Windows, vi on Linux.
Ask HN: Why does Google get away with such bad recruiting practices?
72 points by frustrated_90  11 hours ago   66 comments top 29
busterarm 10 hours ago 1 reply      
A buddy of mine interviewed for a fairly senior role at Google (SVP equivalent) and he had about 6 or 7 in-person interviews within a week or two before they went radio-silent. 6 months later they contacted him and asked him to come in for another round of interviews -- at which point he told them he was going to pass.

Edit: This was a half-decade or more ago.

adamveld12 10 hours ago 0 replies      
I had quite a memorable experience where a Google recruiter accidentally CC'd their post interview survey email instead of BCC. After the initial "haha" moment we discovered that almost all of the ~2k people in the email list were African American. A private LinkedIn group was started after that, although I haven't followed up with it lately.

Also for that particular interview, I waited for an hour and a half in the lobby before a recruiter finally showed up. It turned out that my recruiter was let go the day before and my interview time fell between the cracks. Pretty much the worst experience I've ever had interviewing.

PaulHoule 11 hours ago 0 replies      
People want to be on the side that is winning. Also, they want minions and one characteristic of a good minion is unlimited tolerance for abuse. You might as well start early in the process.

If you join Scientology, for instance, the second thing you do is TR0 Bullshit where somebody screams as you and you just sit there and don't flinch. After that they'll scream at you all the time and if you complain they'll tell you to "keep your TRs in.". If you really cant stand getting abused they don't want you on board.

coldcode 10 hours ago 3 replies      
Most big companies are terrible at recruiting. Google requires massive numbers of people so they can't spend much time or concern on any one position or one recruitee. Even my employer (non SV) can't even post positions for engineers that make any sense (which is why we get so few candidates).
M_Grey 10 hours ago 1 reply      
Because they're huge, they have gobs of money and influence, and people want to work for them in the hopes of getting a piece of both. Greed is a powerful force, especially when backed by a complaint ideology.
codegeek 10 hours ago 2 replies      
I am not defending Google here but plenty of reasons I would guess:

- Lot of people want to work for Google. Plenty of supply

- Cost/Benefit. The cost of contacting everyone is not worth the benefit. Probably too many applicants to respond to

- Because they can. They are Google.

- They are big. Perhaps a certain division/HR team is worse than others. So it could come down to specific HR team who is the culprit.

I bet if the supply of candidates go down and they need to find people, they will respond a lot more.

contingencies 10 hours ago 0 replies      
Go someplace decent which gives you space, respect as an adult, money and ethics instead of joining a centralized, politicized, authoritarian spy network that will treat you like an eternally incapable teenager.
umbs 10 hours ago 1 reply      
Like with any BigCo, there are always bad apples (recruiters) and things slip through cracks. But compared to other similar sized companies, Google is quite focused on improving their interview processes. You can find lots of resources online from Google employees explaining it. The one I found very enlightening is from Moishe Lettvin given at Etsy: https://www.youtube.com/watch?v=r8RxkpUvxK0

My own personal experience couple of years ago was good. I failed the interview though.

strathmeyer 11 hours ago 3 replies      
Lol I graduated with a CS degree in 2004 and have been searching for an entry level software development job ever since. Google was the first and only company to call me back to tell me I didn't get the job. I think things are getting worse out there.
rhapsodic 10 hours ago 0 replies      
> Shouldn't bad recruiting practice like this hurt the company's reputation?

I imagine it has, to an extent, among their pool of potential candidates.

> And shouldn't people be more hesitant to apply to companies knowing that they will be treated badly?

I'm sure there are people who have decided not to pursue employment at Google based on the what they've heard about Google's interview process. But, apparently, there are still many thousands of good developers who are undeterred by Google's reputation. So for the time being, in their cost-benefit analysis, Google has decided they're better off without making major changes in their hiring process.

secure 10 hours ago 0 replies      
If you have any contacts at Google, try asking them to contact the recruiter directly. That usually works.

Of course, this is not an excuse for the poor treatment youre receiving, and Im sorry to hear that.

amingilani 9 hours ago 0 replies      
Can we have an explanation on why this was flagged?
infodroid 10 hours ago 0 replies      
Is your only complaint that the recruiter went silent? Or is that only one part of the problem? Because it wasn't clear to me from your description what else went wrong during the process for you to conclude that they have bad recruitment practices.
southphillyman 10 hours ago 0 replies      
3rd party recruiting agencies get a bad wrap for many justifiable reasons, but this is one area where they provide value. Even though a company may be using dozens of agencies each agency will still have an stream of communication to get real updates no matter how "busy" the hiring HR department is.

Edit: this is assuming the recruiter doesn't go ghost on you themselves that is....

ajeet_dhaliwal 8 hours ago 0 replies      
Because people, even very good people, especially very good young people put up with it. I did. Would I now? No. If a Google recruiter contacts me now I saypass. Ain't nobody got time for that (at a certain age or when you've gone through it enough).
elizabethab 10 hours ago 1 reply      
I've had the opposite experience. The recruiter proactively provided updates and kept me up-to-date in terms of expected timeline.
TheMog 7 hours ago 0 replies      
I've interviewed there a couple of times over the years and I was less than impressed by the process.

Doesn't stop people from applying and they seem to end up with the candidates they want, so it's probably working for them. They have to standardize on some process, this one seems to produce the desired results and with the number of candidates they get, I assume that they're not worried about false negatives, but are worried about false positives...

jinkies 6 hours ago 0 replies      
I had a good experience with Google. The recruiter contacted me at every chance with updates about where things were. It took two months from first being contacted but after I had another offer they sped up the process, scheduling an in person interview two weeks out. After that it was still three weeks until I received an official offer. What probably made the biggest difference was having another offer on the table. It put more urgency on getting me through the process.
khedoros1 10 hours ago 0 replies      
I had a good experience interviewing with Google earlier this year. Sometimes there were a couple weeks between steps of the process, but I always had a clear sense of when I'd be contacted next, and the recruiter and interviewers always held to the schedule. I was rejected, and got the notice promptly (a few days after the interview).
thefastlane 10 hours ago 0 replies      
any response at all following an interview puts a company at above average these days.

that said, my experiences with google have been way above average. probably one of the few companies where i genuinely enjoyed interviewing (i usually hate interviews). follow-ups were very informative as well. sounds like you got a flaky recruiter.

MrZipf 10 hours ago 0 replies      
Could be that the recruiter left. My perception is that recruiters have greater churn in bi companies.
SysArchitect 10 hours ago 1 reply      
Google called me back and let me know that they position they were hiring for was filled and that they would keep my information on file.

Have been getting their recruiters calling every 6 months since, and that was almost 8 years ago now.

oldmanjay 8 hours ago 0 replies      
Do you feel like you needed a little bit more emotional support from people you probably won't see again?
chinese_dan 11 hours ago 2 replies      
They can get away with it because they have an endless supply of intelligent engineers that want to work there. It's the same effect we see when there is a monopoly over the marketplace.
mercurysmessage 10 hours ago 0 replies      
From my experience, this is very normal. I'm surprised you don't find it normal.
rajacombinator 5 hours ago 0 replies      
the sooner you stop expecting employers to treat you well, the better tbh.
tofupup 10 hours ago 0 replies      
if you get the job make sure it doesn't happen to the next person.
theremightbe 10 hours ago 1 reply      
Dell did a very similar thing to me a few months ago. I think its just a symptom of large companies
no_wave 11 hours ago 2 replies      
They pay a lot
Ask HN: What are some productivity hacks for remote employees?
14 points by introvertmac  1 day ago   12 comments top 7
rpeden 1 day ago 1 reply      
It helps to have a location in your home or elsewhere that is only for working. A separate room that serves as your office can help.

If you're in a city, you might try working out of a co-working space a few days a week. It would also give you a chance to socialize with other developers when you need a break from working. This can be a good thing, as long as your don't spend the whole day socializing. :)

If you live in a house and have a decently sized property, you could try building a 'Shedquarters' (Google it, there are some pretty amazing examples out there). Alternatively, you could park a camping trailer on your property and work from there.

At the end of the day, nothing will be a substitute for good work habits. And make no mistake, staying focused and on task is a skill you can develop and improve over time. Getting started is the hardest part.

In the past, I've found it helpful to ban myself from using the internet after my work hours are done for the day. Pick up some good books, and spend a couple of weeks worth of evenings just reading non-stop. It'll be hard at first, and you'll be tempted to go online. Keep on reading regardless, even if you really don't feel lie it. I've found that after a week or two, the urges to go waste time diminish. And interestingly, the strength to avoid distraction and keep plowing forward even when I don't feel like it carries carries over to the work day. I realize that this might only work for me and nobody else. But it might be worth a try if you're looking for a starting point.

endswapper 1 day ago 0 replies      
First, discipline is critical to what you mentioned. Figuring out how to develop habits that avoid procrastination or other problems with your productivity are wildly different for each individual. Some people work well with a TV on, while others are completely distracted by it, and up paying attention to the TV instead of being productive. Some people take 15-20 minute naps and wake up ready to rock. Others, fall asleep for long periods of time, don't reboot and waste a day. You have to know which one you are and tailor your routine around you.

Having a routine is important.

Additionally, here are a couple of things that you might consider hacks that have worked for me:

1) Front-load your day - I start my day at 4am and I start work immediately. This has a couple of benefits. For me I know I am most productive the first half of my day. Starting early eliminates a long list of distractions and interruptions simply because no one else is up to bother me. Plus, if I find myself dragging between 4pm and 6pm I don't feel guilty about cutting out because I have already put in a pretty solid day overall. This is something I read not to long ago that validated what I was already doing: https://news.ycombinator.com/item?id=12346307

2) Walk - Any time I am feeling distracted or stressed I take a walk outside. It reboots my mind and I come back refreshed. If something was eluding me before the walk it typically reveals itself quickly after returning from the walk.

3) Diet - This is from my response to this post (https://news.ycombinator.com/item?id=12684180): "In order of volume and priority...Coffee, leafy greens(in all forms, especially cabbage - all types, kale, napa, green, etc.) and protein in all forms, diversity is important, animal and vegetable sources.I mix in other fruits and vegetables for flavoring and variety. Also, I eliminated salt and that relieved my stress in a significant, noticeable way.I start my day at 4am, if I eat heavier, carb-based items, I notice a crash somewhere around 3 or 4 pm and the last few hours of my day are a struggle. If I stick to what I listed above, I power through the afternoon and feel more balanced when I end my day."

martiuk 1 day ago 2 replies      
I've found that a 'fake commute' works well to make me feel like I want to work; travel to your nearest coffee shop and enjoy a morning hot drink and head to work.
orky56 1 day ago 0 replies      
I found the Pomodoro technique to be even more effective when working remotely. It forces me to work hard at manageable stretches as well as to write down what constitutes a 30 minute chunk of work. I'll write out a list of items that fit within these chunks at the end of my day including items from my backlog. These can even be learning new skills.

Distractions are usually a consequence of being burnt out. That means you need to take more _effective_ breaks and/or work out your discipline muscle, meaning you can go longer and more effectively.

tedmiston 1 day ago 0 replies      
Taking a break and going outside for a short walk. Having a short conversation. Jason Fried and DHH discussed this more in Remote [1], and I really think isolation is the biggest challenge of fully remote work.

(Then again, my "problem" is the opposite and I think it's something a lot of remote workers experience you work even more hours and even harder than in a typical office environment.)

[1]: https://37signals.com/remote

ahazred8ta 1 day ago 0 replies      
Open a videochat window, shrink it down, put it in a corner, and ask your buddy to ignore you unless you're goofing off, in which case administer moral support. Also, https://google.com/search?q=virtual-coworking is a thing.
autotune 1 day ago 1 reply      
Take 15-30 minutes before starting your day to meditate. I don't work remotely, but really any series of tasks that involves effort I've found tends to be easier to transition into and focus on if I've meditated beforehand.
Ask HN: Is Node.js recommended in the long term?
7 points by applecrazy  22 hours ago   8 comments top 5
maxharris 22 hours ago 0 replies      
Yes, Node is fine. Check out the long-term support schedule: https://github.com/nodejs/LTS
deathtrader666 21 hours ago 0 replies      
Check out the PEEP Stack - https://medium.com/peep-stack

Since it is a side project, you can swap out Ember and try Elm.

bbcbasic 22 hours ago 0 replies      
Is Mongo recommended in the long term?
rohithv 19 hours ago 2 replies      
I would simply say no..
murukesh_s 21 hours ago 0 replies      
Yes it's fine..
Ask HN: Which Go web framework should i use in 2016?
3 points by Mooty  17 hours ago   6 comments top 5
tmaly 9 hours ago 0 replies      
Matt, there a tons of frameworks at different levels.

There are ones like Beego (https://beego.me/docs/intro/) that others have mentioned that have all the batteries included.

Others like Gin (https://github.com/gin-gonic/gin) that have a lot built in and offer an stable API and good performance.

Gorilla (http://www.gorillatoolkit.org/) offers pieces you tie together but are at a lower level of abstraction.

If you use the standard library, you have to build a little bit more, but you do not have to deal with dependencies or changes in 3rd party APIs.

purans 10 hours ago 1 reply      
First question I would ask is do you really need a web framework? With Go, the way language is built or designed - you don't need crazy frameworks. Having said that I do use gorilla package a lot to re-use some of the common middlewares and packages which wouldn't make sense to re-write. But, for API endpoints and all that I am directly using Go.
dsparkman 15 hours ago 0 replies      
Another one that has gotten quite mature in the Go space is Beego: https://beego.me/

There is even a fairly good book on using Beego to develop web apps with Go. https://astaxie.gitbooks.io/build-web-application-with-golan...

alecthomas 17 hours ago 0 replies      
I don't know whether those are high level frameworks, but if they are, a Go equivalent is probably Revel [1]

1. https://revel.github.io/

kasey_junk 15 hours ago 0 replies      
If you are looking for a "framework" in the php/rails mode go is likely not a great fit.

The best I can point to would be Gorilla.

Ask HN: What are examples of open source projects with excellent tests?
5 points by adt2bt  1 day ago   2 comments top 2
tbirdz 1 day ago 0 replies      
SQLite has a lot of tests. You can read about their testing strategy here: https://www.sqlite.org/testing.html
ColinCochrane 1 day ago 0 replies      
SQLite is one of the best examples I can think of.


Ask HN: Weekend wasted again
99 points by vaibhav228  3 days ago   72 comments top 39
464192002d7fe1c 3 days ago 2 replies      
Not sure what HNs opinion of this will be....

I used to have similar issues. It was mostly down to procrastination and overwork/stress.

Weekends were really bad since I was so busy/stressed from the week that I would get into an attitude of "i'll start doing it in an hour" and eventually it was so late that it was too late to get any work done. I had a lot to do, just very little impetus to do it now.

Fixed it by starting to smoke pot. Not even kidding. I set a timeline for my weekends for when I was working and when I was done. When I work, I work. When I'm done, I go smoke. Basically every weekend for a few months.

I've probably tripled, if not more, my weekend productivity by giving myself a defined period of work and a defined period of relaxation and a reward for getting there.

p333347 2 days ago 1 reply      
When this sort of thing happens to me it is usually because either I didn't have a concrete plan on what I was going to do beyond describing it as "useful" (or the project wasn't really interesting), or I had been deprived of relaxation due to being very busy for more than a week and the mind is "reclaiming" its time.

If the reason is latter, I wouldn't worry too much. But in order to make my weekends or off days productive, I try to sneak in a small share of web browsing on working days - it basically works like rest/sleep. As for former, I let the interest or necessity generate naturally and not force myself to do something useful and think its a crime to relax.

gaurav-gupta 3 days ago 0 replies      
The solution might be how you spend your weekdays, finding out what you "really" enjoy doing and how you approach the weekend project.

If your stress level steadily rises from Monday to Friday, you'll need the weekend to wind down. This is the first problem to solve. Do fun things in the week days to wind down before the weekend (ideally wind down every day). What are fun things? I can recommend some ideas, but its different for everyone, but getting some form of physical execise is a BIG plus. Walk, run, swim, play... whatever floats your boat.

How to approach the weekend project? This is what works for me. Breakdown the weekend project into really small pieces. I don't mean you make a project plan for the weekend project. Just find the first one or two mini goals, something you can accomplish in an hour. Hit the mini goals. If you don't feel motivated to hit the mini goals. Find out why and iterate. Maybe try a 15 minute goal. Maybe a different project. The point is make really small nudges in the direction you want to go. If it doesn't work, find out why and fix it. When small nudges start working, it'll build up momentum and will eventually become a full weekend project! Have fun! That's the whole point of weekend projects!

anexprogrammer 2 days ago 0 replies      
I have ADHD, so I've done this a lot. :)

First take a look at this from a few days ago: https://news.ycombinator.com/item?id=12734671 on a book: Deep Work. Basically just some of the tactics ADHD people have been using for ages.

The whole world seems to have developed some mild sub clinical ADD thanks to social and phones. So first off don't be surprised you're struggling.

Understand that web browsing and social are variable reward machines. Click a link and you have another new snippet to read, or video to see. Each one gives you a reward and a small dopamine boost. Now compare with preparing for interview, or thinking about a side project. Where's the rewards? Later. Maybe not even today! It's a luxury cheesecake vs diet fruit portion question.

Look at the pomodoro technique and break tasks up with small rewards. 25 mins productive, 5 mins social (if you can stop at the next beep). Get a cheap $5 kitchen timer to sit next to you. If your willpower is lacking, add a browser extension to set limits on social cheesecake sites. If the phone is main distraction add an app to silence notifications, or remove the strongest distractions - the social ones!

Same goes for desktop on your laptop - remove the candy, set it up for productivity. Maybe separate logins - one for productivity, one that permits you near the fun stuff. :p

For god's sake don't keep todo lists and such on your phone. Turn phone off, use a notebook, post it or pad, or text file on the laptop! Otherwise you're now holding the crack, and hoping not to be tempted. Just 5 minutes, I can handle it...

Accept that your attention will wander, and get used to checking in and trying to bring it back. That timer helps. If you struggle add another timer to beep every few minutes - as a checkin. Don't get depressed if you trip up. Forgive yourself, and try again - you're building a new habit, and that will take time and many mistakes.

Last, lots of exercise, fluids, healthy eating and breaks away from keyboard will keep you fresh.

peller 3 days ago 1 reply      
This entire thread is worth checking out:The "I want to do everything but end up doing nothing" dilemma: https://news.ycombinator.com/item?id=9049208
Regic 2 days ago 0 replies      
Maybe the problem is not where we search for it. There is a theory that willpower is a limited resource [1]. If this theory is true, it means productivity hacks cannot work, because the problem is not in our weekends, it is in our weekdays: in our work that demands all of our willpower, in our relationships, social interactions, or in our inability to relax.

I read an article some time ago that I cannot find. It stated that extreme procrastination is the result of a form of drug abuse: we need our daily dose of fb, youtube, etc to keep us functioning, but that takes all the time, and when we realize we wasted another day, it makes us sad, and the cycle begins anew. It is also no secret that these sites are designed to be addictive.

This article might help you too (well, the original, but I couldn't link that because, most likely, the author of the original essay procrastinated the renewal of the web page for too long, and it cannot be reached): https://www.theguardian.com/lifeandstyle/2012/sep/07/change-...

[1] https://www.apa.org/helpcenter/willpower-limited-resource.pd...

ddavidn 1 day ago 0 replies      
Sorry I can't shed much light on how to get through this. I'm stuck in the middle of it as well, ending my weekend being frustrated and angry that I wasted it. I don't believe that lack of enthusiasm is necessarily at play here. However, I used to be very good at this, putting in several hours of work and several hours of learning/projects over the weekend. Things that I believe (but haven't tested) helped me then: Feeling accomplished during the week, not sleeping in on Saturday, optimizing my home work environment for productivity, and setting very small/realistic goals.

To that last point, I believe both of us could benefit from the "GTD" (David Allen) approach. In particular, utilize the "Clarify" step to write out 1-3 small things you want to do each day. Instead of setting yourself up to "build a small thing" or "learn a subject," split the day's tasks into easy stuff like "init git repo" or "read first chapter of intro to Go."

But, if your week burns you out (my main motivation for a lack of will on the weekends) you may be better off resting. Schedule your downtime in addition to your learning/project time. Give yourself time before and after your project to zone out and click links aimlessly. And, if it suits you, get a buddy to be accountable with. Someone who's going to ask you on Sunday evening if you've taken at least one step toward your goal. Hope this comment helps.

SnacksOnAPlane 2 days ago 0 replies      
I started volunteering. Most Saturdays I'm out early in the morning building a house with Habitat for Humanity. Then I go home and nap, feeling content that I did something worthwhile with my weekend.

After that, it's easier to actually work on computer-y things. Don't fool yourself into thinking that you can do thought-heavy things all the time. You need physical activity! Mind and body must both be healthy in order for either of them to work at the highest levels.

boyter 3 days ago 7 replies      
Genuine question here. Why is it that some lack the discipline to just do things that they want to do?

Its a common theme that appears in most books (heck Just Fucking Ship is a whole book on this) and I have noticed this over time with different people but never understood it.

Is there a psychological reason behind this? Is it something that needs to be overcome with the ways listed here? I guess what I am asking is why is that many cannot just decide to do something and do it without trying to hold themselves accountable using techniques.

dmitripopov 2 days ago 0 replies      
1. Set the daily goal

2. Identify steps required to reach it, write them down. It's better to do it with pen and paper, no to-do apps or anything like it.

3. Take the first step right away, do not postpone it.

4. Log your progress and time on each step. Archievements and failures too.

5. At the end of the day look through your log, asess your achievements on 10 grade scale, set goals for tomorrow.

nautical 2 days ago 1 reply      
This is what I have done : using password generator to have a password I cant remember + 2fa . Auto destruct cookies in browser . It actually prevents me from trying to login to fb , gmail etc as its too much work . After some time now I have a control over my urge to login . And start working friday night or early saturday morning .
jdmoreira 2 days ago 0 replies      
I just finished 'Deep Work'. It's a book from Cal Newport that I think it might be helpful in your situation.

Here's the link:http://calnewport.com/books/deep-work/

tacky 3 days ago 0 replies      
I ban the time sinks like Reddit and Facebook till after the work is done whenever that is. But it's unrealistic to keep working all day without browsing internet even for a little while if you're addicted to clicking links. To solve that I allow myself visits to a number of sites that are updated (with new links/stories) less often. Vice and Snapzu, for example. I let myself visit them as many times as I want for as long as I want during work. Since these are "slower" kind of sites, you'll start spending more and more time with your own work rather than chasing clicks. By the time work is done and Reddit is unlocked you'll be so exhausted you'll only spend a little time on it. After a while this breaks your addiction to Reddit. The best part is you don't have to time your work time vs leisure time.
shubhamjain 2 days ago 0 replies      
The benefit of any productivity hack / book / app is ephemeral before you are back to your "mindless" browsing (I wrote about it sometime back [1]). It's a great business isn't it? Write a book / app about procrastination something that everyone is looking to "fix" and start raking money. You can write daily / weekly / monthly goals for all you want but a "guilt-creating" laundry list of tasks doesn't really help.

Although, I do have my share of procrastination but I have gotten a lot better than I was an year back when I used to spend all the free-time on movies. This weekend, I read lots of New Yorker articles, a small book, and finished writing an article. To an extent, I think I can do better by working on a small side-project but then again, there is always room to feel guilty.

You just have to hate wasting time and gradually, things will get better. There is no secret sauce towards working; if we had Facebook wouldn't be a multi-billion dollar company.

[1]: https://shubhamjain.co/2015/06/28/why-productivity-tricks-do...

jillav 2 days ago 2 replies      
What you need is basically to become more aware of the value of your time.

Every day you get 86400 minutes offered to you. You can either not do anything with it or use it to accomplish your goals.

Time is on of the only things you can't buy. Every one is equal on this level, this si the most precious and the most volatile ressource everyone has.

But first you must define your goals precisely.

So stop whatever you are doing, get a piece of paper and write what you want to accomplish within 1 week, 1 month, 1 year.

That done, try planning your week ends so that you get shit done and eventually your accomplish your 1 week, 1 month, 1 year goal.

Helpful to keep to you schedule : identify your "time stealer". All those things that wast your time like useless tv, uninterested facebook posts and so on. Realize that every minute you spend doing something you consider useless is wasted.

Then, most important, try getting some rest BEFORE being tired : that way you won't procrastinate in the "I might rest just a little while before i get to it" spirit.

I hope this can be helpful to you. I just spend the last year trying to get out of the loop you're talking about so I know exactly how you feel about it. I'm succeeding one little step after the other.

It's a lot of discipline, but I can tell you the trip is worth the effort.

fuqted 3 days ago 0 replies      
I'm going to answer this two-fold and relate it to what I'm going through. Feel free to shoot me some advice as well.

On the surface, you clearly don't have passion driving what it is you want to do.I can relate to this because I'm learning to code. It was a struggle until I found Codewars, at which point I was able to easily turn on some music and sink hours at a time solving coding challenges. Turns out that the skill of solving these things doesn't transfer to.. anything. I struggle to sit still going through any tutorial and I still have no idea how to build things.So, on the surface, find something that motivates you.

Digging deeper, this inability to finish anything I start seems like a personal issue. I've worked a lot harder than this before.I think there are facets of my life, and probably yours, that need to be put into order first.

There's a satisfaction with life that I've had before and currently it's missing. I'm unable to stick with anything because I immediately seek cheaper forms of satisfaction. I think attaining a more genuine satisfaction with myself would eliminate this urge.Maybe you feel similar.

Also it obviously sucks to do things alone. Meetups, even when they lead to nothing, are still a big source of motivation. Personally I notice my productivity correlates with how often I'm going to meetups.

afarrell 2 days ago 0 replies      
My tools for combating this:

- https://freedom.to/

- Have a specific plan in mind, not a generalized "learn something new"

- On Tuesday, post on facebook asking a friend if they want to do a work-along day on any hobbies. Then hop on appear.in together or hang out in person.

- Keep yourself well-fed and well-rested.

Kaibeezy 2 days ago 1 reply      
I was doing OK until the election news started getting superheated. Weekends, evenings, weekdays, all chopped up now. Hoping I can get things back together after 8 Nov, but worry I'll be susceptible to the the next new major news story. Damn you Nate Silver!
mcotton 3 days ago 0 replies      
The best thing I did was get a hobby that got me out of the house. For me it is drone racing, but it could be jogging, swimming, or even go fly a kite.

Once I get back into the house, I've burned off some energy and can focus on my side project. For whatever reason if I sit in front of the computer all weekend I have a hard time getting started.

bronlund 2 days ago 0 replies      
Get kids! You'll never have a single moment to yourselves ever again. Problem solved :D
ak39 3 days ago 2 replies      
We all require some sort of forced schedules. Don't beat yourself too much about this.

Next weekend try this:

For every 55 min of YouTube/Facebook etc, put in 5 min of serious work. Just 5. But be disciplined about this schedule. Time yourself so that you don't do a minute more of the work!

Learn the schedule habit first.

l33tbro 2 days ago 1 reply      
I become productive based on deciding I'm going to do something.

Pause on that word: decision. We all have impulses, wishes, desires, etc. But you're only ever going to progress when you stop, think about what you want, be realistic with if you can actually achieve that with everything else going in your life - then DECIDE that you are going to do it.

Once you've decided, that is when you follow through every time (if you've done the first steps correctly). Then it's basically autopilot and you don't ever feel like procrastinating. I dunno - works for me.

abraham_s 2 days ago 1 reply      
1)I get up early in the morning on weekends (relatively early like 7). I have sleep at a sane time on the night before to do this, instead of staying up and watching netflix till 3 in the morning on the night before.

Waking up at noon ruins the day for me. YMMV

2) Limiting the things you want to do. I had this nagging feeling that I should read all the interesting articles that come across in HN etc. I solved but installing a "save to wunderlist" chrome extension. I tell myself that I would read it later (which rarely happens).

goo 2 days ago 0 replies      
Side projects are hard to get around to sometimes -- I don't try to force it, because it's much worse to waste your time and build bad habits than it is to just admit that it's not happening today and make the most of your time.

I try to get outside and move every day that I can. I surf on weekends and it makes my life a lot better. Then the day is already in the "win" category, so if I feel like working on something, there's less pressure.

joeclark77 2 days ago 0 replies      
What worked for me is, this fall I canceled my smartphone service and bought a flip phone from Walmart. Saves a ton of money, but more importantly, I hardly even look at the Internet on weekends and evenings now.

Failing that, have you considered getting a cabin in the woods? Or maybe a boat? Get as far as you can from an internet connection, as often as you can.

resonantjacket5 3 days ago 0 replies      
I set a timer that just went off every hour.

And if i was doing something unproductove like youtube facebook etc I closed the tab.

Another thing was that instead of theorycrafting and worrying about O(n) for the smallest projects ever I just went ahead and got something running. Its pretty easy to be disappointed if you cant see your results.

For preparing for interviews you dont really need the internet. Just get a piece of paper and use the cracking the coding book.

abraham_s 2 days ago 0 replies      
You said "prepare for interview". I was doing it a few months back and I didn't enjoy it. One reason was I was thinking in the back of my mind about all the interesting (for me) thing I could be learning instead of the interview prep. I used to devote sometime to study something that genuinely interested me, regardless of whether it was helpful for interview.

Again, this helped me a little bit, YMMV

gpsgay 3 days ago 0 replies      
Get up early, and try not to do anything before getting started on what you wanted to do. If you have a place you can go to that is not your home to go do it, go there and avoid staying home. If you are depressed like now, because Sunday is already gone, plan to get up at least a couple of hours earlier than you normally would tomorrow, and use those two hours to at least start doing some of what you wanted to do.
mbrock 1 day ago 0 replies      
Catch yourself off guard and just do something.

Internalized guilt over not being "productive" isn't helpful.

Fix your home environment so that it doesn't encourage you to sloth.

mixedCase 3 days ago 1 reply      
Well this is the latest trick I'm pulling on myself, and I can say it does help, but due to its nature YMMW: https://chrome.google.com/webstore/detail/go-fucking-work/hi...
meric 3 days ago 0 replies      
I sometimes go to the library. I also quit facebook.
venkateshkumar 3 days ago 2 replies      
Simple. I quit facebook and dont watch TV.
life_is_short 3 days ago 0 replies      
Start working on a project Friday afternoon and well through the night. It sets the tone for the weekend.
DamnYuppie 3 days ago 0 replies      
So I have found that I do best if I schedule time for slacking off. I generally will do 30 minutes of work followed by 15 minutes of downtime. This downtime can be anything from watching YouTube, browsing HN, or doing some household chores.
bbcbasic 3 days ago 0 replies      
Ask a friend to be your 'boss' and make sure you get it done.
k__ 2 days ago 0 replies      
I didn't do it for a year anymore.

But I used to plan such things like trips.

Met with a friend (or alone) and we coded the weekend (or week) away.

oxplot 3 days ago 0 replies      
I go somewhere where others are working on their own projects. Hackerspaces and coding meetup groups are examples.
bluecat 2 days ago 0 replies      
I use the wasteNoTime plugin to block websites on safari. Also, hide the plugin so it makes it even more difficult to unblock the website. http://www.bumblebeesystems.com/wastenotime/
Ask HN: Does anyone else hate startups and their culture?
20 points by sayelt  2 days ago   12 comments top 6
ericzawo 14 hours ago 0 replies      
With the companies I've experienced, I try very hard to hate the game, not the player. With that said, there's only so many buzzwords, tee shirts under sportcoats, sizing-me-up-and-letting-me-know meetings, assumptions that I'll work for free, emails and conference call gcal invites on federal holidays (like Christmas Day), and more that I can take. Primarily, the peacocking and existential fear to fit in has crippled nearly all the would-be CEOs of actual companies (that turn a profit, even of the ramen variety). Instead, the one round of seed capital (whether its with the suits over in California or daddy's golf friends) tends to get to their head.

I've often thought of becoming my own boss out of spite, but I'm a little too inexperienced and don't quite have my own idea fleshed out to put my whole life on hold just yet. I like the show Silicon Valley, but they tend to (obviously) over-exaggerate the stereotype of start-up types. There's a very real undercurrent of the schoolyard need to "fit in" that weaves through most startup-y people, and the closer I get to it all, the funnier it is.

mtmail 2 days ago 0 replies      
Given how often "Fuck You Startup World" (https://medium.com/@shemag8/fuck-you-startup-world-ab6cc72fa..., https://news.ycombinator.com/item?id=12682944) got submitted lately there are many. The HN search doesn't show all, there were at least 30-40 submissions.
p333347 15 hours ago 0 replies      
I have never been involved with one, directly or indirectly, so I can't comment on the culture. I am planning to start one though.

However, as a strict outsider looking at things, I find it amusing that every startup claims to disrupt something or the other, many times things that have already been claimed to be disrupted by others, and there is hardly anything to separate one from its competitors in terms of technology. I find it no different than every bigco claiming they are leader in something or the other (which could be arguably true in some cases) but often simply recreating the same technology the competitors have for any number of reasons. In both cases there is tremendous amount of cliche in the way they talk or present their ideas while overselling themselves, which sometimes amuses and sometimes annoys.

AnimalMuppet 2 days ago 1 reply      
As mtmail said, there seem to be a lot of people that hate them. But then again, there's lots of people who hate BigCorp and its culture. There's lots of people who hate government IT and its culture.

I've been a software person for a long time, and I've learned that there's no perfect environment. Some are less toxic than others, though. And which ones are "less toxic" isn't necessarily a function of whether it's a startup (though there may be a higher fraction of people who don't know how to manage - or even how to be a grownup - in the start up world).

If you're in a reasonably sane and healthy environment, don't casually leave it. A better deal may be much harder to find than you think.

sayelt 2 days ago 1 reply      
Startups are the reason I can't have a stable/steady job because they all require me to work 15 hours a day and also work on weekends, if I don't appeal enough to the get-rich-quick boss, I'm fired.

Seriously, I hate startups and their culture.

Mz 1 day ago 0 replies      
I think HN was a lot healthier when YC was new and young and their ethos was they a give a few bucks to two or three young guys who shoot for ramen profitable. And that succeeded and now they have all kinds of dough and are trying to find and fund The Next Unicorn.

Kind of like how HGTV started as a low budget thing aimed at DIYers and turned into Lifestyles of the Rich and Shameless after it got successful enough.

I don't know how or even if "startup culture" can be returned to its roots, but I think that's the problem right there. Now YC imagines it shall save the world or some crap and is running a Basic Income experiment and has, imo, lost its way.

I don't hate startups, but I hate what has become of the culture recently. It wasn't always like this.

Ask HN: How to make remote work a success?
14 points by alltakendamned  1 day ago   11 comments top 6
GFischer 1 day ago 1 reply      
I've worked remotely twice.

The most important thing is communications, definitely.

The best results I had were on a fully remote team, using Slack heavily.

I'm currently on a half U.S. based / half remote team, and it's harder, as much of the stuff communicated on the U.S. side doesn't reach us. We do have weekly meetings over GoToMeeting.

Some very good articles on the subject are Scott Hanselmans, and Jeff Atwood's and Stack Overflow:




See also:



jabv 1 day ago 1 reply      
I have made this transition in stages with the same company (office-based --> home-based but working closely with regional clients and teammates --> home-based and don't see anyone else much).Motivation and discipline are still occasional issues. I am definitely inspired by working physically next to a colleague. For me, I find a morning routine is a critical component of a successful day (consistent wake-up time, consistent set of activities before working, etc.).To feel like I am "part of something", I try to focus clearly on the business needs my work resolves. I work to maintain a perspective that shipping a batch of work will definitely lead to a particular experience for colleagues or users.
pcmaffey 1 day ago 1 reply      
Develop your own rituals. You have to replace the 'going to the office' structure and routine with something that works for you. That you can slip into and easily get into work mode.

For some people, that means getting dressed up. Keeping a dedicated home office. Strict time routines, etc. The what doesn't matter so much, as long it provides you with familiar structure.

The key in the beginning is to over-emphasize discipline (and communication) until you find a good balance.

(I've been working remotely for 10+ years)

hijinks 1 day ago 0 replies      
Most local teams that I've worked in have mostly been centered around a tool like Slack anyway. I've sat next to people but talked to them more on slack then in person. It really depends on culture. Do most people use a tool like Slack or HipChat?

For working remote, what I found that was the best was making a place in your house or apartment that is the office. Try to do everything in that part and only do work there. It will help you get into a work mode at home.

ddorian43 1 day ago 0 replies      
That Mitchell and Webb Look - Working from homehttps://www.youtube.com/watch?v=co_DNpTMKXk
endswapper 1 day ago 1 reply      
In addition to what's below there's no reason you can't pop-in on the team with bagels, or attend a group lunch. If that's generally not geographically feasible then make an extra effort to do it when you are able. I have been in sales a long time, as long as you are not intruding or interrupting, people will appreciate that fact you were thinking of them and you made the effort. This is important in maintaining any relationship and important for the morale of a team.

There is a similar thread here: https://news.ycombinator.com/item?id=12788080

For convenience, here is my post to that thread:

First, discipline is critical to what you mentioned. Figuring out how to develop habits that avoid procrastination or other problems with your productivity are wildly different for each individual. Some people work well with a TV on, while others are completely distracted by it, and up paying attention to the TV instead of being productive. Some people take 15-20 minute naps and wake up ready to rock. Others, fall asleep for long periods of time, don't reboot and waste a day. You have to know which one you are and tailor your routine around you.Having a routine is important.

Additionally, here are a couple of things that you might consider hacks that have worked for me:

1) Front-load your day - I start my day at 4am and I start work immediately. This has a couple of benefits. For me I know I am most productive the first half of my day. Starting early eliminates a long list of distractions and interruptions simply because no one else is up to bother me. Plus, if I find myself dragging between 4pm and 6pm I don't feel guilty about cutting out because I have already put in a pretty solid day overall. This is something I read not to long ago that validated what I was already doing: https://news.ycombinator.com/item?id=12346307

2) Walk - Any time I am feeling distracted or stressed I take a walk outside. It reboots my mind and I come back refreshed. If something was eluding me before the walk it typically reveals itself quickly after returning from the walk.

3) Diet - This is from my response to this post (https://news.ycombinator.com/item?id=12684180): "In order of volume and priority...Coffee, leafy greens(in all forms, especially cabbage - all types, kale, napa, green, etc.) and protein in all forms, diversity is important, animal and vegetable sources. I mix in other fruits and vegetables for flavoring and variety. Also, I eliminated salt and that relieved my stress in a significant, noticeable way. I start my day at 4am, if I eat heavier, carb-based items, I notice a crash somewhere around 3 or 4 pm and the last few hours of my day are a struggle. If I stick to what I listed above, I power through the afternoon and feel more balanced when I end my day."

Ask HN: How to market your open source project?
7 points by murukesh_s  1 day ago   6 comments top 4
flukus 25 minutes ago 0 replies      
Is there a need to market it?

Most OSS starts off with an itch to scratch and then if other people have the same itch they should be able to find you via google.

tmaly 1 day ago 0 replies      
try reading the book Traction that is co-authored by the founder of Duck Duck Go. There is also an audio version.
roschdal 1 day ago 0 replies      
Mz 1 day ago 1 reply      
Are you working on a specific project? If so, you might get better answers if you either talk generally about the thrust of the project or link to it (or do both -- some projects are not well explained on their site).

I think you either need to think of marketing open source pretty much exactly like any other marketing effort, or you need to not think of it as "marketing" at all. If marketing seems inappropriate, you need to think of it as how to get the word out or how to reach the people who could benefit from it or would be interested in it.

Thinking of it as marketing may be problematic because most people think of that as being about a) self promotion and b) making money. If neither of those is a comfortable fit, you still need to think about how to connect with prospective interested parties so as to further the mission.

How you do that will depend on the particulars of the project. Please give us some idea of what, if anything, you are working on. Hopefully that will lead to better answers.

Ask HN: Why is everything in JavaScript changing so fast?
205 points by blohs  5 days ago   292 comments top 56
lacker 5 days ago 3 replies      
The open-source-JavaScript community right now is just the largest, most active open source community that has ever existed. Check out the stats that GitHub recently announced:


Open source JavaScript activity as measured by pull requests has doubled (!!) in the past year. It's more than the next two languages (Java and Python) combined.

Most of the top repositories on GitHub are JavaScript too: https://github.com/search?q=stars:%3E1&s=stars&type=Reposito...

Demand for JS developers is growing too, as websites become more complex, Node.js becomes more popular on the backend, and frameworks like React Native (more popular than any other iOS or Android library on github) start to pick up mobile developers.

JavaScript performance is also starting to be significantly better than the other scripting languages, e.g. https://www.quora.com/Is-JavaScript-v8-faster-than-Python . Not because of anything inherent about JavaScript, more that it's worth a lot of investment from big companies in JS performance.

Basically, it's not just the number of frameworks. Everything about JavaScript is taking off right now, and leading to a network effect where all the other aspects get boosted too. Sort of funny to have this happen twenty years after its invention.

bloomca 5 days ago 8 replies      
The problem is that everything in JS exploded during just few years (Node was published in 2009), and it took few years to build tooling around Node to start utilising all this power.

And then everyone started to build "rich" web applications (it is called differently every year), with the "best" tool existing. I personally see two major problems usually cool startups who can afford using the bleeding edge will die soon (or will get enough money to completely rewrite it), so 'maintanence' in idiomatic way doesn't work here life cycle is extremely small, and it reflects in the way libraries are written in JavaScript. Also, the barrier is low, and therefore we have a lot of complex websites built by novices, running in development mode in the actual production.

Community also is very "poisoned" with the idea that you _have_ to work in your evenings (contributing to OSS, writing your own or just playing with hot technologies), and therefore new stuff is baked extremely quickly. It is usually very low quality, and you have to cope a lot in order to make it work, and often you have to dive into source code, and it is considered as normal, which is quite sick from my point of view.

Also, it is truly "hype" community, which is super excited about what is hot now and it means that today kings will be overthrown very soon (right now stuff like Cycle.js and Vue.js is gaining traction). Nobody wants to maintain their libraries and very often you can see projects with a lot of stars completely abandoned.

Recently, Babel.js was defined as _defacto_ standard, and it basically started transpiling era, which is not going to end in the foreseeable future. It shakes the stability, and makes extremely easy to add new features (like stage-0), and people just used to unrealiable tools.

So, all of this works as a snowball, which only speeds up. People create more and more complex web applications, and also js is going into other fields (like microcontrollers, Node.js grows in popularity, React Native is super hot now). When it will stop? Nobody knows. Maybe WebAssembly after implementing will stop it (people will spread over competing technologies), maybe no.

nickstefan12 5 days ago 7 replies      
In an industry without a guild / license / what have you, the incentives skew towards articles of proof. Articles of proof could be demo websites, screen shots, and open source libraries.

Being the creator or top two contributor of a library is now worth so much more than being a small time contributor that the incentives are skewed towards everyone just making a new thing, always.

It's their way to stand out.

So why is this more prevalent in JavaScript? Front end inherently has more new comers. Long time hackers or cs grads feel less of a need to prove themselves making free software?

I think it's natural that the web programmers would understand web self promotion better than other languages. Guess who's better at Twitter? The js people! Why? They were writing the web to begin with!

I wish it would stop. Our qa engineer is writing web driver tests in JavaScript and I don't understand why! There's nothing about testing that NEEDS to be async! The python API would likely be no slower and much easier to write and debug.

Sane defaults are an important part of tech, and default async is a terrible setting. Python sync is easier, and Go routine concurrency is easier. Always on async just seems like a terrible default. For speed I'd do Go, and for all else Python.

dandare 5 days ago 1 reply      
The answer is bit paradoxical: It is because JavaScript itself can change only very slowly. What you see changing is everything around JS but JS itself, while powering the whole web, is still to an extent the same scripting language that Brendan Eich prototyped in 10 days back in 1995. Why is that? Simply because the JS runtime environment - the browser - is not controlled by a single entity that could plan and enforce radical change. Instead all the big players have to progress together, which is usually not in the interest of all of them at the same time (It used to be Microsof who was not interested in progressing the web standards, now it seems to be Apple. Not because they are bad people but because it makes sense in their situation.) Plus you have to maintain backward compatibility with older browsers, one can still not simply use ES6 in production website because it would not work in significant portion of the (older) browsers. That is why everything around JS changes so fast in an attempt to find the best workaround, polyfil, transpiler, module etc.
combatentropy 5 days ago 2 replies      
Is it because it lacks a shepherd?

Perl has Larry Wall. Python has Guido van Rossum. PHP had Rasmus Lerdorf and later Andi Gutmans and Zeev Suraski (Zend). Ruby has Yukihiro Matsumoto, and Rails has David Heinemeier Hansson. JavaScript came from Brendan Eich, but it was like a work for hire, wasn't it? Microsoft and Netscape just kind of ran with it.

Then I guess it did have a shepherd, the W3, and all the browsers followed its standard, except the one that had 90% of the market. At long last, in the past few years, market share has passed to companies that are much more willing to follow open standards.

But at the same time, the user base is huge, a churning mass of millions of programmers of every level of ability, and each one of them can now publish their framework on Github. Plus there are several large web companies that are competing with each other.

Thankfully at least the language itself has a single standards track. Cross-browser agreement isn't perfect, but it's much better than it used to be. It's just that we don't have a standard library, like Perl's CPAN. Instead we have NPM.

I wasn't paying enough attention when Perl and these other languages developed, so I don't know for sure why they're different, or even if they were that different at this stage. Even they have their different web frameworks to this day.

rhizome31 5 days ago 6 replies      
Because nobody has yet invented a compelling way to write JavaScript applications, so people keep trying. We're still waiting for the Ruby on Rails of frontend development.

I'm not saying Ruby on Rails is the best backend framework (I don't use it anymore), but when it came around everybody understood that it was getting something right. It popularized a new model for server-side web development that all other communities started to follow and improve. When it came out, most developers who were already working with the web could see that it would be very useful, it solved real-world problems they had, it just made sense.

This is much less clear with JavaScript frameworks. They usually have a tough learning curve and the benefits are not always coming as expected. So people keep trying to find a model that works well.

prewett 5 days ago 4 replies      
I think all the churn is a sign of several problems. First, the language was not designed to do what people are trying to use it for. Second, I question whether the framework makers are familiar with "native" UI APIs (e.g. Java, Qt, NextStep), which solved a lot of these problems years ago. Notice the lack of churn in native UI APIs (exception of Microsoft). Third, it seems like the frameworks try to build on top of HTML, which I think is a mistake, because HTML was not designed for layout flexibility and pixel-perfectness (unlike native widget APIs). Furthermore, HTML was poorly designed for anything but simple word-processor documents: why is there no <block> element that is inline-block?! That's the first thing I end up assigning to everything. But the whole declare-your-document approach is inherently too simplistic for much beyond a word-processor document. Note that PostScript, and PDF which is an enhancement, has been pretty stable and standard for years, which indicates it is a good solution to the problem. Ultimately, you need to be able to program your documents and put pixels exactly where you want them. But even just sending over a blank HTML page and then having JavaScript add everything programmatically is probably better-suited, despite having to ultimately get squeezed into the HTML approach.

In my opinion, we need to realize that webapps are not documents, and document-oriented HTML is the wrong tool. I don't think things will get better until we start looking at webapps as essentially drawing on the screen, like native UI APIs. I think we need a standardized virtual machine, like a lightweight JVM (or, better, a heavyweight Lua), which would allow people to use whatever language they prefer, as long as it can compile onto the instruction set. Static-type people can use a statically-typed language, and dynamic types can use dynamically-typed languages. Make an instruction set that maps well onto native CPU instructions, and provide well-thought out input and drawing primitives. We essentially need a PostScript for apps.

gravypod 5 days ago 1 reply      
I think many people are missing what's happening here. This isn't the first time we have seen lots of churn. Every time some group discovers something "new" they latch on to it and try to shape it in their image of what is the best. This is natural and important.

Even looking back about 20 years, how many companies where making CPUs? How many different architectures where there? How many companies where making PC clones?


 RISC is going to change everything - Hackers 
We get fanatical about random things every few years because the technology is generally good, then we all thing "that's stupid I like it better like this" and after a few years of unmaintainable messes we settle on the middle ground that most people are ok with (x86).

This is natural the world isn't ending

mambodog 5 days ago 2 replies      
A lot of comments here seem to suggest it's just because of people creating projects to get attention. I think this reason is massively overstated, and appeals to the unfortunate HN meme of disparaging other people's work to signal that the commenter is smarter than the herd.

However, I would suggest that we are now building applications at a level of complexity which has not previously existed on the web before (unless you include non-standard tech like Flash/Flex or Java Applets, which both had their shortcomings).

If you accept that some of the things which are being built actually unlock new possiblities in terms of user interface fidelity, and therefore has at least some purpose, then I would point out that the level of churn can be explained by the following:

1. JS has become very widely used very quickly, which means that there have been lots of hastily built things, which have been replaced by better things (and for every 'better thing' there are many alternatives which fell by the wayside), and a larger pool of people to build them.

2. It's easier than ever to build new tools (or any kind of app, for that matter), because the npm ecosystem makes it trivial to combine existing smaller pieces of code into new combinations.

ronilan 5 days ago 1 reply      
It may not be the common view, but I think that what you are witnessing is, to a certain extent, "deliberate".

Every framework has a "sponsor". Every strong "sponsor" either has a vested interest in the web, or, a vested interest in some other platform with which the web competes.

The importance and power of the web are obvious. So, it is a dance. "Embrace, extend and extinguish". And, hop, here we go again.

Illniyar 5 days ago 0 replies      
I have a pet theory about that.

I think it based on two factors:

1. the size of the community, JavaScript popularity is huge, it's probably the biggest programming community in the world, even the not so popular frameworks have a bigger community then the biggest frameworks in other popular languages (as a not at all accurate measurement, see vue.js and Python's django github stars/followers).

If you look at js frameworks/methodologies/libraries compared to the sum of the other languages' frameworks then the pace of change in Javascript compared to how many people use it is not as bad.

I had a similar experience with Java when it was the king of the web frameworks - JSP, JSX, JSF, Spring MVC, Struts, Stripe, Wicket and a dozen others.

Java was big enough to contain all of these frameworks, and it was big enough for people to support new ideas rather then iterate on existing ones.

I'm not familiar with C/C++ enough, but I think it has a similar amount of change to Java (which is somewhat less the JS)

2. the other big factor is how decentralized it is - JS is extremely decentralized, there are tons of big organizations contributing to it's advancement, to frameworks even building their own compilers (all the browsers).

Java is very similar in this regard, even in their governing model (a collection of companies that decide on standards together, though Java has drifted from that model with Oracle's lead lately).

C# is the opposite, it's one of the biggest languages but doesn't have a lot of change in it - everything is dictated by the central authority (Microsoft) and competing frameworks that don't get popular enough.

There are other factors of course, but I think most of those can be seen in other languages with less change, and are less relevant overall.

fiedzia 5 days ago 1 reply      
Imagine that you have a furniture factory. There is one room where one guy who works for you produces tables. In next room there is another who produces sofas. And then another one who makes chairs. The demand is great, so routinely you hire more people to produce more things.

As you walk, you realise that each of them uses selection of screws and chisels and screws and wheels, and types of wood and door handles and all of them are somehow different. Not because they have to be, but because they were acquired independently by each worker. You come with an idea that if you standardise on some set of commonly used wheels and handles and chisels. This means you will need less of them, it will be easier for each worker to acquire, reuse and combine them, less time spend relearning different tools and a lot more other benefits. Once you did that, you may realise that the things built on top of that - like drawers, doors, covers - can benefit from the same standardisation. And so you do and keep improving your factory.Notice however that such idea would never come from single worker.

So JS is stuck at being early-stage factory. Main thing that it lacks is a boss that looks at it and improves it. Any proposed change has to gather momentum, convince some committee and even than it takes years to push it. It takes so much effort that most of the time anyone who tries just gives up. Where in other languages its enough to send complain email and propose a solution to one mailing list to get someone involved and get proposed change deployed in the next release a month later, you can't do it with js.For the same reason there is nobody to make a sweeping change and wipe this disaster from earth. Too much politics involved. So everyone hack his way around it, and hacks are not very maintainable, so you'll need to redo them on next project, but very differently. Making any two projects incompatible and hard to build one on top of another.

Java had its Sun, Python had BDFL Guido, JS has no such thing.

inimino 5 days ago 0 replies      
First, Web technologies (not just JS but HTML, CSS, DOM, etc) are implemented by multiple browsers, who compete and have other agendas, as well as backend and non-Web platforms. This underlying technologies are just messy in a way that only a world-wide, massively distributed, twenty-year-old platform can be.

There's nothing quite like this anywhere else in tech, as most platforms are dominated by a single vendor. Imagine what Windows development would be like if, in addition to the need for backwards compatibility, there were three or four competing vendors of Windows, each with different feature sets and bugs.

Second, tools and libraries can overcome many of these problems, but these fixes come with costs, including library maintenance, cognitive overhead, security risks, complex build and deployment processes, and retraining and hiring issues. Because JavaScript is used across many industries and teams of all sizes, what is perfect for one may be completely inappropriate for another. Many projects, like GWT, meet the needs of the environments in which they were designed, while being so much a product of those environments that they become anti-productive elsewhere. So we have a very diverse set of tools on top of a very messy and relatively old set of underlying technologies.

Finally, many new programmers come into this incredibly diverse, sometimes frustrating, environment every year. It is an environment that encourages open-source contribution. It's no surprise that many new tools and libraries are released every year, and some of them gain adoption.

viraptor 5 days ago 0 replies      
My interpretation of this is that js was a pretty cool idea, but it was used as a hack on top of websites initially. (Think Netscape times) It was held back for a long time by lack of improvements, no real coding environment, no real modules apart from copy pasting. It was held in place by a huge rubber band while people actually tried to pull it their way.

Relatively recently the standardisation, improvement of the language itself, real origin policy, common frameworks and finally npm released whatever was holding it back. It shot out from the rubber band and it's trying to catch up in months where other languages had years to find the way. You may notice that even though a lot is changing, not much is really new. Async existed before, so did dynamic languages, so did MVC, so did immediate mode UI, so did many other things. Js is now going through all of those ideas quickly because the path is known and clear. It will slow down though. There's only so many paradigms that we know. At some point people will run out of easy ideas and will have to start slow experimentation just like all the others.

dpweb 5 days ago 0 replies      
The perceived benefit of creating a new framework is large (I'll solve programming the internet!) and the cost is quite small (easy to write js with little knowledge), there's a huge number of devs, and no one really owns the space.

Compare it to say, creating a new operating system. Sure the world could benefit from a better OS, so why not make one? The perceived benefit is small (why do this when Linux exists) and the cost is large (it's hard and you need a lot of knowledge).

Also a lot of half baked ideas. The number of js writers is huge but on average very inexperienced compared to other languages.

douche 5 days ago 0 replies      
It's because JS is, at it's core, a shit language. All of this flailing around and creating a new framework every week is like the poor sods trying to struggle through the mud at Passchendaele. The more you fight it, the deeper it gets.

Better languages have sensible defaults, and a decent standard library built in. If we could run Python or Java natively in the browser, nobody would bother with all of this illogical complexity that has arisen to try to make writing Javascript moderately tolerable.

dancek 5 days ago 0 replies      
I think it's because of historic baggage and politics.

JS used to be a horrible ecosystem where different browsers behaved differently, the language itself had various pitfalls and most code was written in classical script kiddie style. This has been changing for the better for a long time in small steps, but frankly something has always sucked, warranting the next evolution.

The second point is politics: JS is huge these days, and there's still a lot of room for improvement. Everyone wants to be the company behind the de facto standard library for web apps.

twblalock 5 days ago 0 replies      
Coming from a Java background, it seems to me that a lot of what is going on in the JS world is similar to what enterprise software went through over the past 20 years: the "framework" craze.

This is appropriate because websites and web apps are more complicated than ever before, and face the same challenges that traditional enterprise software faces: large codebases that stay around for a long time and need to be maintained and refactored, integration with various APIs, asynchronous communication, separation of concerns, separation of model and view, business logic, test coverage, development of different parts of the application by different parts of the engineering team, etc.

At some point, the benefits a framework provides outweigh the time it takes to adopt and learn the framework. A framework provides an overall way of doing things that gives structure to the project and makes a lot of the challenges I mentioned easier to deal with. Frameworks significantly reduce the number of "how do I implement this feature?" questions that are bound to arise, by providing a standardized way of doing things. They make it easier for teams to collaborate, because the codebase is relatively consistent and engineers aren't constantly dealing with other team members' idiosyncratic code. (Yes, that means there is less room for individual creativity and expression, and it makes programmers interchangeable to some extent. Welcome to the world of business.)

So, why are there so many more JavaScript frameworks than Java frameworks? I suspect it has to do with the low barrier to entry of programming in JavaScript as compared to Java. I also think that dissatisfaction with whatever frameworks are current is a major driver behind the creation of new frameworks. (I suspect that a lot of the dissatisfaction with the current frameworks is misdirected and is really due to the nature of JavaScript as a language, and TypeScript is an example of an explicit reaction to that).

Another reason for the proliferation of frameworks is that the playing field keeps changing. Most recently, it has been smartphones and social media that have revolutionized the way people use the web. Before that, it was streaming video and "Web 2.0." Whatever the next big thing is, I'm sure it will inspire a new flurry of new web development frameworks.

HelloNurse 5 days ago 0 replies      
There is a high rate of change in fads, not in reality. What is actually worth learning and following has a normal change rate.Fads are governed by a vast community of hipsters who clearly prefer to spend time and effort on earning 15 minutes of celebrity with some library or tool than on more productive tasks like improving their own web site, working for customers or learning principled computer science and software engineering. Meanwhile, web standards like HTML, CSS and ECMAScript and web browsers evolve at a reasonable pace and in a saner way: doing more things and doing the same things in a nicer way. The traditional design attitude of figuring out how web standards and imposed technology allow to do what is needed and only then selecting tools and libraries that look useful is the main way to ignore fads.
hoodoof 5 days ago 1 reply      
Cause JavaScript is used in browsers so it is the language of the web, and because it has turned out to be incredibly flexible and adaptable, and because it's pretty simple once yo get past the async thing, and because alot of effort has gone into making it fast.
SFJulie 5 days ago 0 replies      
It is because JS does not change much that there are all this libraries around that changes a lot to try to give an underfed horse more power.

In comparison, java, PHP have undergone some more than welcome mutations in terms of syntax clarity. Evolution in JS is made by adding features in frameworks, not in the core definition of the language.

You could see JS as the assembly language of the browser and all the frameworks as some C/fortran/C# that translates into JS.

The problem is the web would look definitively balkanized/ghettoed between old and new computers if you made a non backward compatible change of JS ...

JS is the most ducked taped language of the landscape of computers. And it is leaking memory, performance, abstraction from everywhere.

ggregoire 5 days ago 0 replies      
> For example angular 2 is not compatible with angular 1, so before you even learn a framework its API is different and when you finally learn it, probably is considered outdated

Angular 1 has been released in 2010 and Angular 2 in 2016. Obviously, if you started to learn Angular 1 last year it can be frustrating (specially with Angular, it's not the easiest framework to learn out there [1] [2] ). But I would say the majority of Angular developers has used it for 3 or 4 years now and most of them probably enjoy to have the chance to learn a new modern framework that fixes the design issues of the first version.

To generalize: The front-end world is surely overwhelming for the new comers (but is it not the same in all the other fields of programming?). However, after some years into it, you realize that you have mostly sticked to the same tools for years. [3]

[1] https://www.bennadel.com/resources/uploads/2013/feelings_abo...

[2] https://i.imgur.com/5rJH3co.png

[3] https://gist.github.com/ggregoire/f41ae88bb8e192ad70be690f19...

neilsharma 5 days ago 2 replies      
Slight tangent, but if someone were getting started in JS today and wanted to build medium-complexity, async-heavy, web apps with decent-sized backend, what stack should he invest his time on? React, angular, node, elm, express, etc?

Let's assume he wants the skills/tools to still be relevant in 1-2 years time in a sizable percentage of the job market (noticed that many startups don't like people with web experience that isn't in React/Angular/Node).

btbuildem 5 days ago 2 replies      
Because the ecosystem is mostly built by people with no formal education and little experience -- they're literally re-inventing everything from the history of computer science.
intrasight 5 days ago 2 replies      
I'd say the opposite - it's changing way to slow - at least in browsers, where IMHO is the only rational place to use JavaScript. The big change will be the arrival of webassembly.
pmarreck 5 days ago 0 replies      
First of all, Angular sucks (/opinion), so that's a bad example.

I think it's due to the fact that Javascript is so terrible at any scale, yet is so pervasive, that working with/around it becomes this deer-in-headlights thing you can't ignore... since most HAVE to work with it in some form, doing any Web stuff.

I recommend Elm, as a way around Javascript's problems while still allowing you to run in browsers: http://elm-lang.org/

anilgulecha 5 days ago 0 replies      
I think it's because of certain new paradigms that are opening up so many opportunities.

With HTML5, CSS3 and ES6 being released, and seeing wide adoption, the web-application layer and APIs suddenly have access to a magnitude more functionality, and we're essentially in the early romantic period where we're pushing these new features to the max, and figuring out what sticks.

Over the next year, we'll settle at the maxima of efficiency and usefulness with the web framework. Despite some negative voices, IMO these are very exciting times for the web :)

daxfohl 5 days ago 0 replies      
Because you can write a new JS/HTML framework in a few days. Compare this to e.g. Qt or GTK or WinForms or WPF. Each of those would require man years of effort to reproduce from scratch.

Also these JS frameworks tend to be opinionated with how databinding works etc, such that there's always something that you have to work around when you're using the framework in real-world projects. People get annoyed enough that hey it's easier just to create another framework.

sebringj 5 days ago 0 replies      
NPM + Github + Node.js + JavaScript is easier + JavaScript was already front-end ubiquitous came together in a perfect storm to allow JavaScript packages to be created and spread like butter on toast. JavaScript is the easiest to develop with, has the most adoption, runs client/server and has the easiest package manager to both publish and use. Why is this even a question? This is not an argument for JavaScript but merely stating why it is changing so fast.
whostolemyhat 5 days ago 0 replies      
I think it's due to the new version of Javascript being released recently after years of stagnation. ES4 was abandoned and ES5 was mainly standardising existing practices, while ES6 has added a lot more - new syntax, new types, iterators, generators, modules and so on.

A lot of the churn going on is due to people trying to work out the best way to use these new features, along with whether or not to keep backwards-compatibility with existing frameworks and libraries.

bbbbbbbbbbb 4 days ago 0 replies      
There are two different questions there.

Angular 1 was written by people who knew nothing but OO programming. JavaScript isn't OO. So they spent a lot of time square pegging a round hole because they were ignorant of what they were doing (probably a group of young coders).

People are now starting to get on the functional train (which JavaScript is more like than OO), and angular is trying to now fix the fact they were short sighted and too opinionated about the wrong things.

JavaScript, in general, has always been in a rapid state of change. Or, more broadly, the UI of the web. From flash and silverlight to mootools and jquery and CSS animations and canvas... there isn't a good way to do web UIs yet. There is a lot of trial and error happening which makes for some rough waters.

dfabulich 5 days ago 1 reply      
JavaScript is a programming language that was frozen in amber for a decade, and is only now starting to thaw.

Brendan Eich initially designed JavaScript in an infamously short time--he coded and designed the first prototype of JS in just 10 days.

It quickly became the only programming language you can use in a web browser, with multiple vendors, including Microsoft, owning mostly compatible implementations. Due to trademark disputes they couldn't even call the language standard "JavaScript," so the language standard is called "ECMAScript."

Microsoft didn't want/need JavaScript to change or grow at all. Once Internet Explorer 6 became the dominant browser on Windows, (which was and still is the dominant PC operating system,) they stopped releasing new major versions of IE for five years (2001-2006), and IE7 wasn't a very big upgrade, especially in terms of JS language features.

Mozilla unilaterally released new language features that only worked on Firefox, so nobody could use those language features in practice on the web; in many cases, new language features wouldn't even parse in IE.

In 2007, there was an attempt to build a major new JavaScript version (ECMAScript 4) with a ton of new features, (classes, a module system, optional static typing, algebraic data types) but it was scrapped due to disagreements between Mozilla and Microsoft. They wound up implementing a much more modest upgrade (ECMAScript 5) which shipped in IE9.

In all this time, there was essentially no interest in running JavaScript in command-line tools or on the server side. That changed in a big way in 2009 with Node.js. It used V8, Google's JIT engine for JS, and it was surprisingly fast.

This is when the language really started to unthaw. IE declined in dominance as Chrome rose, and the demands of server-side development started to be felt more strongly in the JS community.

ECMAScript 6 started to add back in a number of cool features, and by this time, JS developers were desperate to use them. This lead to the development of "6to5," (now called "Babel") which allowed you to write code in ES6 and "transpile" it into older JavaScript versions, so developers could experiment with new language ideas without pushing them through the standardization process.

Languange evolution kicked into high gear at that point. There are a bunch of interesting pluggable transpilers out there, including TypeScript, JSX, and Flow, and countless non-standard plugins for Babel.

And that's just the language itself! The "standard library" for JavaScript for years was just "whatever IE6 could do" and that wasn't very much. IE6 was pretty buggy as well. jQuery became popular as a library to smoothe over differences between browsers, but mostly to work around bugs in IE.

Client-side frameworks were tough to implement on IE6, not least because IE6 was just so darn slow. As newer, faster browsers came out, it became possible to trade off some performance to improve developer productivity.

And everybody has their own ideas about what those trade-offs might be like!

At the same time as IE6 started to decline in popularity, the mobile web on iPhone and Android rose in importance. Smartphones include a bunch of new sensors (GPS, orientation, camera) and new limitations (RAM, slow/unreliable network). This spurred on browser vendors to "compete with native apps," adding features to the browser platform, inviting developers to respond to these with new frameworks.

As for the JS server-side, Node.js is still a relatively young platform as these things go, and so it's not surprising to see a lot of churn in server-side libraries/frameworks, especially given how much churn the language itself is undergoing.

Node.js is also the first major platform to be born in github, which IMO encourages experimentation (and flame wars) via forking.

Node.js's standard library is designed to be small, (they call it the "core" and resist Python's "batteries included" philosophy,) forcing folks to rely on libraries and frameworks to keep the lights on. Even most libraries themselves need to take dependencies on other libraries, because of this "small core" philosophy.

I think it's going to be at least a few more years before things start to cool off a bit. Enjoy the ride, if you can!

techbio 5 days ago 0 replies      
JavaScript was originally a way to create interactive webpages, but because it broke or replicated MVC, became the backend too.

The variety of backend requirements, and the flexibility of UX, led people to solve many individual workflow bottlenecks or generalize to any/many.

Then so, like the English language, exploded to the simple-->jargon range of overloaded usage and niche comprehension, very quickly fragmenting, but universally powerful.

Developing a framework as a startup for a particular use case may take more time than prototyping on an existing framework--this is why the prototype should be discarded, and a critique of how open source/reusable code has always been a source of technical debt apart from the rare, shining outliers.

scotty79 5 days ago 0 replies      
It's due to openness of npm ecosystem. Any other language you'd have 50 different angulars at the same time but almost noone would know about any of them because they'd be confined to the companies that spawned them.

Frameworks as a popular thing started because people (rails?) started sharing their code and no other can share code as easily as JS and npm.

Angular 2 should be called Begular because it doesn't have anything to do with Angular but inspiration. You can stay on Angular but don't be surprised that people will prefer to develop something else since Angular folk painted themselves into a corner so hard that to make framework that sucks less they need to go back to drawing board.

mgalka 5 days ago 1 reply      
I've wondered the same thing. My guess is that it's because node is still pretty new, whereas most other popular languages have been around for a while and the "right" way to do things has already reached some consensus.
tomphoolery 5 days ago 0 replies      
The change in JS isn't "out with the old, in with the new"...it's just "in with the new". There are more choices than ever before, because you can build about 100x the kinds of apps that you could have before with JavaScript. Prior to 2009, JavaScript was pretty much only good for web applications. Now, you can build servers, embedded devices, native applications for every platform imaginable, you name it. Pretty much anything that can be built, can be built with JavaScript.
m_mueller 5 days ago 2 replies      
To piggyback here: How long until we can just use whatever language we like, including Std.-Libs, package ecosystem, sandboxed FS (and thus DB support) and JIT it to JS in all commonly used Browsers?
wiseleo 5 days ago 0 replies      
JavaScript is being redefined. The language is flexible enough because of prototypal inheritance that every method can be redefined at runtime. ES6 added many missing features.

That's unusual. These frameworks extend the language. Angular's developers reasoned that anyone smart enough to figure out Angular 1 will be able to migrate their code to Angular 2. It's looking more like C++ and less like CSS. :)

Take a look at Meteor's code sometime. It does things I never expected possible with JavaScript.

spion 5 days ago 0 replies      
I touch on it a little bit here:


TLDR: I believe its mostly due to the lack of basic language facilities in pre-ES6 JS. With ES6 covering the basics this will probably slow down (At the very least people will stop writing their own module and object systems)

fibo 5 days ago 0 replies      
Cause we are living in a transition period. Remember the CVS war, cvs vs subversion, then hg vs git.Now git seems to be the winner and there is no big change since few years.In these days there are a lot of progress going on, let's wait things get stable but it Will take a very long time considering: es6, es7, vr, webgl2, serviceworker, webaudio, http2, webassembly and a lot of other stuff in some way related to js.
nodesocket 5 days ago 0 replies      
One could make the argument that the JavaScript / Node.js community are uber early adopters and push technology more often and further, but I'm not certain that is what is really going on.

However, moving fast does percolate down from the top. Look at Node.js and how often they release new versions.

agentultra 5 days ago 0 replies      
Because there's a lot of investment in the language and its ecosystem. There's more money pouring into V8, *Monkey, and other JS compilers than goes into most any other that I can think of. With popularity comes rapid evolution.
jerf 5 days ago 0 replies      
Javascript and the browser environment it is still pretty much glued to (Node notwithstanding) has several major architectural flaws and some unique challenges that are particularly acute for Javascript, and a lot of energy has been expended trying to figure out how to use the not-very-strong tools in a way that can support high-quality applications without too much developer effort.

Also, some of these things are getting addressed over time, so I'm kinda going to talk about the state of JS over the past decade rather than the state it is in right now. Some of these things are being mitigated (very few things are really being "fixed"), but it's still early. These issues have historically included, but are not limited to:

1. Poor modularity brought on by being not just a "scripting language" like, say, Python, but a language actually designed to write small event handlers that fit into a single HTML tag attribute. "x = 56" defaults to putting x in the global namespace. The language did not provide modules or very much in the way of separation by default. You've pretty much always been able to namespace things, but you had to really work at it; the language did not help. (I'll also toss in the dynamic typing here, just because I don't want to give it a full slot here, but it does inhibit making big projects easily.)

2. Very poor control-flow management ability due to the choppiness of event-based programming. There has historically not been a way to maintain a call stack across events, which strips away all the tools of structured programming, a set of tools so fundamental to how we operate that we often don't see them as a fish doesn't see water. Promises and generators allow us to try to mitigate this, but at the cost of spending design budget; promises for instance introduce a second entirely new set of control flow mechanisms that mirror the base language's looping and flow control constructs, particularly annoying because you must control both error and normal flow on both of these levels.

3. The browser's interface to JS is the "Document Object Model", which due to historical reasons is a Java-designed API bolted on to the side of JS. A native JS model could have been much more powerful and easier-to-use, requiring us to burn less design budget on simply interfacing to the browser in a reasonable manner. A lot of the design churn is attempts to answer the question "How can we make manipulating the DOM more JS-native?" There are also several performance issues introduced by the fact that the DOM model, combined with the rendering model, is extremely rich; things like manipulating a node on a page vs. detaching the node, manipulating it, and reattaching it have historically had end-user-significant differences in performance, as every DOM change triggers an incredibly complicated set of updates to a widget toolkit that was designed for flexibility rather than performance.

4. Browers themselves further introduce many complications. Then you have all the security issues that arise from being fundamentally client-server with dubiously-trustable servers. You have all the details like what cookies flow between what domains and where and when, that you need a different domain for your static content both for security and performance reasons (prior to HTTP2 particularly), and any number of crazy APIs that also vary across browsers, requiring the developer to use shims for things as simple as XMLHTTPRequests because you just never quite know what you actually have.

5. I could have list "client-server" in #4 there, but it's also worthy of its own callout. Many frameworks have different solutions for client-server interactions, ranging from ignoring the problem and letting you solve it up through Meteor-like attempts to completely blur the lines between the two, and everything in-between. Client-server interaction has been further inhibited by the fact that historically, there have not been any reliable and high-performing mechanisms for streaming things between the client and server, creating a design limit around needing to be request-based, further creating a wide variety of ways of hacking around this problem, each with their own quirks.

6. As an open standard, nobody is really empowered to fix these problems in a coordinated way. As a result we're sitting on top of 20ish years of standards, some well-done, some poorly-thought out, some hackily fixed after security issues, many poorly-understood by developers, and all in the browser.

7. Finally, one must not ignore the fact that web pages continue to become intrinsically more and more diverse. The best framework for a document-centric app is one thing, the best framework for a CRUD app another, and neither of those will help you much with an intrinsically real-time streaming app like a chat client.

And there's probably a couple more dimensions I could come up with if I thought more. What you see is that there's a lot of possibilities for mitigating all these issues ("solving" is often not on the table, these are mostly fundamental issues arising from layers below the JS), and the framework churn is in many ways nothing more than people combining all of the various combinations of possible answers to these problems, looking for synergies, solving different problems (per #7), and basically frantically rifling through 60+ years of computer science theory looking for the perfect solution to problems in an environment with so many fundamental strutural issues that no perfect solution is possible. Which is also why you see such vigorous advocacy sometimes; someone thinks this is it, this solves all my problems once and for all because it worked for a couple of weeks, and only once the community has chewed on it for a while does it become clear that there's a lot of people with different needs for whom that doesn't work so much, and it also didn't actually solve all the problems once and for all after all.

BTW, none of this is criticism of the JS community, merely explanation. Given the hand we've been dealt in the web browser, lots of people trying lots of things is the best we can hope for. The fatigue is just an unfortunate, but unavoidable, side effect. The best solution for the fatigue is to concentrate more on the fundamentals being explored than the details of a particular framework. For instance, "reactive" programming is its own paradigm, with its own lore and learning; learning how to program that will also let you write better spreadsheets and be better at creating database triggers, for instance. Concentrate on the fundamentals. The fundamentals are not churning that fast.

techbio 5 days ago 1 reply      

Skip the chart, look at the long tail of listings.

techbio 5 days ago 0 replies      
Is there any existing tool to interrogate a codebase for adequacy for a set of tasks? Ie. PageRank/'citations' for frameworks?

Should there be?

aikah 5 days ago 1 reply      
> For example angular 2 is not compatible with angular 1

That's not the problem, angular 1 and angular 2 are 2 completely different frameworks that share the name and the team only. The team wanted to piggyback on the fame of the first version, but they share absolutely nothing conceptually. and contrary to what the Angular team says there is no "upgrade path", you need to learn the stuff from scratch once again.

The problem is, and the Angular team will find out very soon, "second systems" unless they provide huge advantages over the first version, are always a failure.

niroze 5 days ago 0 replies      
millennials ;)

...and it is where a lot of excitement is now. Excitement drives development (of tools themselves and general usage). Much of the time, it is for the best.

People tend to get lost in tooling, which I can understand.

kewp 5 days ago 0 replies      
It's the Internet - remember that remarkable decentralized network for informational retrieval developed by ARPA in the 70s ? It's going to change the world !

It's always on. Anyone from anywhere can interact with what you create instantly. What else is like that ?

d0ugie 5 days ago 0 replies      
Why didn't the Dart VM make it into Chrome?
grigio 5 days ago 0 replies      
Because nowdays js has so many use cases
cygned 5 days ago 0 replies      
My (very) personal opinion: I think, the culture is a important factor here.

There are very great developers in the ecosystem, who write great tools and libraries which become popular, are well maintained and documented. But the majority of the developers are just average developers. As everyone, they attend conferences and bootcamps, and when I then talk to them, the usual thing they learned there were two things: (1) make a blog and write about what you are doing and (2) make some OSS projects or participate in existing projects.

It is very great to have people who create projects and bring in new ideas, it helps create a mature technology. But the truth is, most of the average developers have never been in larger projects, have never been digging into complicated/large open source libraries and have never had to manage larger applications. One of the most important things you learn in such projects is to be calm and think about documentation, architecture and dependencies carefully.

And this leads to the current situation;

- we have a lot of libraries doing the same things, just because developers do this "just create an oss project on GitHub/npmjs" thing without searching for existing solutions

- some hip developers have so many projects that I always ask myself how they are planning to support all these

- when a problem arises, e.g. a bug in a library, many developers these days seem to tend to write their on lib fixing that problem (if it is a small library) or building an internal workaround instead of contributing back to the original project

- on the other hand, there are a lot of project maintainers who ignore issues and pull requests just because they have a very strong opinion about what their library is doing. Oh boy, sometimes it took me days to write a PR which (from my point of view) improved something or added a new feature, carefully followed existing guidelines (code formatting, docs, etc) just to get the answer "nah, that's not my scope. Fork the project or write your own"

- it seems to be easier to convince people with less business experience. They often jump on the next hot train coming along that sounds good. I don't want to exclude me here completely; as I read about React, it started working with it directly - because it seems to solve all the problems I had with Angular and Backbone

- I have the feeling that a lot of developers today (still) have this "read the f*g code" mentality. Even mature libraries developed for years have so bad documentation (even though they have their own .io domain just for it) that I have to read their source to see what parameters I can pass into a function.

I think, browsers/engines/tech companies/... are also part of the problem. For years, JavaScript has been "developed" (language spec) slowly and browser have been adopting features slowly. But then, suddenly, everything exploded. And now we have very awesome features in the language that allow for things that have not been possible before. And in fact, these features deprecate some libraries or frameworks. And instead of abandoning a project by deciding that only bugs will be fixed in the future and no new features will be added, the developers either try to move to the new technology with their product; or are forked by people who were part of the project but didn't like its developers/strategy/whatever and want to use the new opportunity with the new language feature to change things; or get company by another project that does basically the same but started from scratch and uses all new language features; or all together.

As a side note, I work with JavaScript every day and that is only my opinion on the topic.Please don't feel offended.

[edit: typos and formatting]

jlebrech 5 days ago 1 reply      
because it blows.

we need a full IDE, Language, Library combo for better development.

NotAJSExpert 5 days ago 0 replies      
I think one of the things that's led to the mess with javascript is that it's kind of crazy to have settled on using a language to write such large applications that:

- Has no standard library.- Is used to automate host platforms that have either no standard framework or very little (e.g. Node on v8 doesn't have nothing but it's quite small).- Has no module/namespace system.

The effect of this is that immediately, anyone building anything in non-trivial has to make a decision about how to fill in things that would be covered in a standard library. I'm not even talking about fancy stuff, just the stuff supplied by underscore, lodash, etc. The choices are basically:

1) Write all the code yourself. This is an extremely low ROI option2) Adopt a series of libraries and hope you can get them to work together3) Adopt a framework, that by its nature, will be designed to use some sort of new pattern and this pattern will be expressed on top of whatever libraries the framework uses, so just draft behind that.

There aren't really many other mainstream systems where a language is used to specialize applications on a platform where this situation obtains. Windows, OS X, iOS, Android, even Java, come with enormous, enormous amounts of library code. Generally, this library code also pushes one fairly firmly towards certain design patterns.

Imagine if we all decided to use...hmmm...Scheme, I guess, to develop Windows applications, and you took away everything but the lowest-level Windows APIs. I'm using Scheme because the Scheme standard outlines a remarkably small language that has nothing approaching a standard library.

We'd probably be in a similar situation. How do you do this? How much does adopting this or that library force you to do this or that? It's just not very common to have a situation where to do anything non-trivial, you need to either: - adopt an enormous amount of third party code (because the situation works at every level, each third-party solution will also not be built on a standard library ecosystem) - write an enormous amount of boilerplate code.

And further, the issue is exacerbated by the fact that js doesn't really have a standard module system, so even the approaches taken to fill these gaps are frequently non-compatible, or just choosing which system to use to manage modules often means replacing huge chunks of your application.

There are other reasons why JS the language is moving, all of the sudden: JS has had a lot of rough edges and all of the sudden a confluence of interest, capability, and technology has made it possible to sand down some of those edges.

But I think even if the ES process slows down, and we all agree that language-wise the features in the language are pretty good or something happens that freezes, we'll keep seeing lots of churn because of the interaction between every project being built on towers of third party code with far-reaching effects.

When Java, for instance, was released, the standard library it shipped with included: - a set of standard container classes: hashes, vectors, arrays, etc. - a rich set of real types (e.g. numbers that weren't insane, Objects for compatibility with the object system, primitive types in the language for performance) - a whole tree of calendar/date manipulation code - a standard way of connecting to SQL databases and all the code for that - a standard GUI-drawing and event-handling system - a big, rich set of APIs for handling IO of various kinds with different performance/complexity tradeoffs. - a concurrency api, threadpools, etc.

That's just a sample. And all of the bits worked together, and sort of implied patterns in how things should be built and used.

You could certainly replace anything, should you choose to, in your project (e.g. the calendar stuff really sucked), but the point is, there was a default, and there was a standard pattern for where and how to bring in new library code, and that new library code would in turn be built on as little third-party code as possible.

Look at an average iOS project's Podfile or Carthage file, Android project's Gradle file, and then look at a Node or browser js project's package.json. Then actually look in Pods and node_modules. The average amount of third party libs in a JS project is many orders of magnitude higher than in the others.

There are like, what, five or so competing implementations of Promises in javascript land? And they aren't mutually compatible always, so this means if you want to use non-ES6 babel-compiled Promises in your code, you have to: - choose a library - hope that other libraries and frameworks you use use the same style - add shims or something where they don't, or else switch out the library and framework.

This is just like...no one writing an Android app is like "which Runnables library are you using?". No one writing an iOS app is like "soo...the new GCD spec looks interesting, which GCD lib are you using for your project? Oh yeah how spec-complete is it? Does it work with AFNetworking?"

"Lodash makes JavaScript easier by taking the hassle out of working with arrays, numbers, objects, strings, etc.Lodashs modular methods are great for:

Iterating arrays, objects, & strings"

Iterating arrays, objects, & strings is something that most other languages have decent std lib support for, and so even your third-party libs will use the host language's affordances. In Javascript you have to ask these questions all the time.

tolmasky 5 days ago 1 reply      
My theory, which I think goes fairly against what others will say here, is that JavaScript/Node is the first truly post-internet environments to reach critical mass. By post-internet I mean they consider sharing and open source as foundational to the environment (as opposed to tacked on later, or merely supported).

The "JavaScript standard library" (or lack thereof) is a clear example of this: NPM is the LARGEST collection of packages of any language, and you can almost always find someone who has already written what you need most the time. It never ceases to surprise me. During the Pokemon Go craze I was curious to play with the protocol: there was already a package to do it. I wanted to ping my find my iPhone, there's already a package to do that. Its incredible. And yet the actual built in standard library is notoriously lacking. Although not by design, certainly the end result is that that has become "OK" thanks to NPM.

Compare this to something like AppKit (and UIKit), which were very much in the pre-internet/sharing mentality: there is one framework everyone has and becomes experts in and is fairy stable, because its kind of the only thing you can rely on being around. Sharing code is very difficult, to the point where just copying and pasting files is still a valid contender.

The explosion of options and the increase in churn is a natural consequence of this. There are simply more people working on more problems, all encouraged by an environment where sharing code is a fundamental property. If step 1 of setting up node is downloading other people's random packages then it should be no surprise that step 4 of sharing your own packages will seem natural. We should expect this to only get faster -- the more people program, the more crazy ideas will be tried, the more switching there will be. I really don't understand what the alternative is: arbitrarily choosing frameworks to be around for a 5 years (a decade?).

We are simply taking the last measure of stability, which was largely governed by how long it used to take information to disseminate to the entire community, how long it used to take one controlling body to get their large waterfall releases out the door, and using that as an arbitrary comparison point to how long it takes hundred of individuals to release their individual takes on software. Asking to "stop the churn" is a strange request: there's no single entity pushing stuff out "too fast", this is the aggregate affect of all programmers in the node community publishing their ideas. Who are we asking to slow down exactly? I can understand saying the single case of Angular 1/2, but the "JavaScript fatigue" people actually feel is due to the interaction of all the JavaScript projects that each gain and lose popularity.

Unless you believe we're really close to figuring this whole "software development" thing out (whatever that means), I wholeheartedly believe that programming 20 years from now will look more like this -- faster pace of developments.

k__ 5 days ago 0 replies      
Because, finally all big players are in the game and Javaize the stuff.
RFVenter 5 days ago 0 replies      
It's all hype and fads. People re-inventing the wheel to make money.
Ask HN: If your economic necessities were taken care of, what would you work on?
24 points by uptown  2 days ago   32 comments top 26
malux85 1 day ago 0 replies      
My passive income streams take care of the necessities, this is what happened to me:

- I took 1 month off. Seriously. No computers, just reading, playing games and swimming. I needed a break.

- I spent 3 months leaning Deep Learning from the fundamentals - learning without an urgency of time meant I could do things like: I couldn't remember the chain rule in calculus, so I could just stop my lessons there and go and spend 3-4 hours learning that, then resume lessons - this ability to stop and research as required was immensely powerful to getting a deep understanding.

I have spent the last 6 months building SignalBox - a Deep learning platform. I now have 15 large customers, and I'm scaling up -- I cant keep up to be honest, but automation is helping me scale this out a lot.

I am now focusing more on computational chemistry and molecular exploration with Deep Learning.

I really think Universal Basic Income is a good thing, because although a large part of the population could piss it away, I am by no means unique, and there must be hundreds of thousands, or even millions of other "me"s out there that would benefit from having the necessities paid for so that they could just produce great work.

jasonkester 1 day ago 0 replies      
I've been past this point for about a year now, living on the profits of my business stuff, all of which is ticking away well enough that I can get away with a 10 minute or less "work day" most days.

As others here have predicted, I spend a lot of time outdoors (having moved to France specifically for the rock climbing) and building tree forts in the back garden for the kids. Pretty much any day can be a day off, so if the sun is shining you probably won't find me at the computer.

I also find I still work quite a bit (which translates to a few days a week for me). Partly because I realize that products come and go, and that these ones will eventually plateau then fade away, so I'd better have another one in the pipeline to replace them when that happens.

But partly because it's fun. This has been my hobby since I was a kid, and it's only an accident that somebody decided that we should start paying computer programmers hundreds of thousands of dollars back in the 90s. Had that not happened, I'd be an Engineer who programmed in his spare time. I used to spend most of each year traveling, and I'd find that the thing that brought me back to the "world" was never money, but the need to use my brain again.

I bet that even if this next thing [1] takes off and leaves me idle again, I'll probably find another fun project to work on.

[1] https://unwaffle.com/

thisisdallas 2 days ago 0 replies      
I would say goodbye to web development and start working on a sustainable farm. I started gardening this year and it's the most enjoyable thing I have done in a very long time. being able to do that on a larger scale seems quite wonderful.
Jtsummers 10 hours ago 0 replies      
Spend a year or so learning woodworking, specifically furniture making. Then spend a couple years building the home I really want on some land in the mountains, specific location TBD.

Then travel the world with my girlfriend, eventually our family.

judahmeek 2 days ago 2 replies      
I'd create a platform that used crowd sourcing to map concept & procedural masteries to higher level masteries and to occupations.

Then I'd use this platform to disrupt higher education and hiring/job seeking systems.

chatmasta 1 day ago 1 reply      
I want to build an automated hydroponic marijuana farm in Colorado that's powered as much as possible by renewable energy.
awareBrah 2 days ago 0 replies      
I'd spend my days on outdoor activities. Hiking mountain biking. Skiing. Just getting some rays and fresh crisp air. I'd spend my nights on making a real change in the world. I don't know how but I'd try to use my skills in business and software to find ways to build software for those areas that desperately need it, but aren't a target customer of any modern startups.
usgroup 1 day ago 0 replies      

1. Self-fund a PhD in something worth a damn.

2. Work harder on developing family.

3. Write a fiction.

4. Wonder about (figuratively) with no aim in particular.

rcarmo 2 days ago 1 reply      
I'd leave the tech industry and write.

Oh, you mean _in_ the tech industry? I'd probably spend a fair amount of time working on space tech and real time software. There are untold lessons in reliability, efficiency and know-how that I'd like to at least glimpse before I'm gone - I've had enough of the mess that the Web has become in any of those regards.

PerfectElement 1 day ago 0 replies      
- drop web development and learn low level programming and hardware.

- spend more time volunteering in animal sanctuaries.

- never read another business book or listen to a business podcast again.

- never think about marketing, SEO, CAC, conversion rates again.

- spend more time cooking.

threesixandnine 1 day ago 0 replies      
I will work on Varroa-free-treatment-free large scale beekeeping.
olivercreashe 1 day ago 0 replies      
Prostitutes and cocaine
nonameface 1 day ago 0 replies      
I would work more on my aquaponics and recirculating aquaculture in temperate weather environments.

I'm fascinated with farm-tech. I went into tech because there isn't money in farming. My passion is farming. A fusion of the two is my ideal job.

mrfusion 1 day ago 0 replies      
I don't seem capable of self motivation do I'd probably just watch the office on Netflix.

(I've had free time to do amazing things several times and I e always blown it by lack of motivation.)

cauterized 2 days ago 0 replies      
Personal development. Relationships with friends and family. Arts (painting, writing). Exploring my world.
jackgolding 1 day ago 0 replies      
Fitness, I lived a 5 minute commute to work last year and I spent over an hour a day in the gym. My body and mind thanked me for it but unfortunately old habits die hard.
kasey_junk 2 days ago 0 replies      
In tech? I want to write a stats server that handles latency histograms based on drHistogram.

Also, my deadlift, left hook & bike endurance. Wouldn't mind a few multi-week self supported bike rides thrown in there.

Matachines 1 day ago 0 replies      
Read a lot, study history, and program whatever I wish existed when possible.
Cymen 2 days ago 0 replies      
I would build a 9.9-10.5 meter sailing catamaran using a design from Richard Woods and then take off sailing with my family for a decade or so.
joshux 1 day ago 0 replies      
Become an independent scholar.

Travel and meet top researchers I admire and learn from them.

Solve real human problems.

pklausler 2 days ago 0 replies      
I would reconstruct the Haskell Prelude (the language's built-in library of foundational types, classes, and functions) from scratch.
eastindex 2 days ago 0 replies      
Travel Asia, find a place to settle down somewhere up in the Himalayas. Teach kids computing. Write more.
afarrell 2 days ago 0 replies      
Raising children, hands down.
happy-go-lucky 1 day ago 0 replies      
I would keep learning and exploring math until I drop dead.
wnkrshm 1 day ago 0 replies      
Study art & animation
meira 2 days ago 0 replies      
Double it
Ask HN: DJing Resources?
2 points by avindroth  21 hours ago   2 comments top 2
idra 21 hours ago 0 replies      
Best way: find a mentor, someone who already knows how to DJ and hopefully has worked as a DJ professionally. What would take you weeks to figure out yourself or from "tutorials", you will learn in mere hours.

If you don't have any DJ friends, try to make some. I only got to really understand the process when I had someone show it to me. Mixing itself is actually easy and straightforward, but somehow hard to explain in text/video form.

If you can't do the above, try these resources:Advanced Vinyl Handling (oldschool but very comprehensive article series): http://music.hyperreal.org/dj/AVH/Basics.html

Decent videos on Youtube from Ellaskins: https://www.youtube.com/user/ellaskins/videos

Ideally, get your hands on some good quality turntables/CDJs to really get the feel. Don't waste your time with poor or unsuitable equipment like belt-drive turntables, it will only hinder your progress. A pair of Pioneer CDJs and/or Technics 1200s will do you well.

If you just want DJ with software and auto-sync, you don't need to learn much beyond pressing play on deck A, pressing play on deck B, cutting bass on deck B, crossfading to deck B, returning bass on deck B, rinse, repeat.

brudgers 12 hours ago 0 replies      
My random internet advice is to start by mixing music.

The skill in DJing is in the doing not the theory because part of the skill is taking the risk of people not liking the mix. That skill is learned through practice. Mixing better music is learned through feedback.

Good luck.

9 points by Jesus12m  1 day ago   2 comments top 2
Teichopsia 20 hours ago 0 replies      
In lieu that no one has answered, here are two other options: 1) https://mitpress.mit.edu/sicp/full-text/book/book.html2) https://ocw.mit.edu/index.htm
Jugurtha 10 hours ago 0 replies      
If you don't discriminate when it comes to languages, I can recommend Zed Shaw's "Learn Python the Hard Way". It's an excellent book that gets you writing code right from the start.

Here's the free book in HTML form:


You can also buy a PDF version that comes with several hours of Zed doing the exercises. I bought that just because I liked the content as I prefer text, but you might have different tastes so here's the link:


Ask HN: What are the best resources to learn Python for Data Analysis
28 points by jbmorgado  3 days ago   15 comments top 11
hatmatrix 2 days ago 1 reply      
pythonbull 2 days ago 0 replies      
Data Science from Scratch http://amzn.to/2dD9Iba

Python for Data Analysis http://amzn.to/2dDw6fL

Web Scraping with Python: Collecting Data from the Modern Web http://amzn.to/2eov4dZ

Python Machine Learning http://amzn.to/2eobdt3


mtmail 3 days ago 0 replies      
naftaliharris 3 days ago 0 replies      
http://sebastianraschka.com/ has some great articles for machine learning in Python.
joeclark77 2 days ago 0 replies      
Not necessarily a learning resource, but I'd like to plug the Anaconda distribution of Python. https://www.continuum.io/ It includes most of the commonly-used libraries/packages in data analytics, so at ASU I made all my students download it just to start from. Three things it gives you right out of the box are iPython (a better Python shell), Spyder (the Python version of RStudio), and Jupyter Notebooks.

For learning, I'd recommend taking something like Janert's "Data Analysis with Open Source Tools" and go through chapter-by-chapter trying to figure out how to implement the various analyses in Python. That book in particular uses a different technology every chapter for its tutorial exercises, so ignore those. But the exposition of the concepts is fantastic.

fitzwatermellow 2 days ago 0 replies      
Download Anaconda:


Take an icy plunge right into the "Titanic: Machine Learning from Disaster" dataset ;)


twunde 2 days ago 0 replies      
I've found General Assembly's data science course to be pretty good at getting you up and running:https://github.com/justmarkham/DAT8
source99 2 days ago 1 reply      
I tried to read books or even take a night course but nothing did the trick except: a real side project that required me to learn the proper tools and techniques. Turned into a full time job that I am really enjoying.

Now I am able to read the books because I desire the knowledge to further my passion.

IndianAstronaut 2 days ago 0 replies      
Scipy videos posted from the Scipy conference(using Python for mathematical computations and data mining) are on Youtube. An excellent resource.
probinso 2 days ago 0 replies      
the internet is a pretty good resource
       cached 27 October 2016 04:05:01 GMT