hacker news with inline top comments    .. more ..    14 Mar 2017 Ask
home   ask   best   2 years ago   
Ask HN: Which Berkeley Courses Should I Archive?
195 points by berkeleyarchive  4 hours ago   56 comments top 23
toomuchtodo 3 hours ago 3 replies      
All of it has already been archived (EDIT: thanks to the hard work and quick response of ArchiveTeam and /r/DataHoarder).

[edit: link to Archive Team project-specific page removed to reduce excessive load; replaced with Archive.is link below]


SilasX 54 minutes ago 3 replies      
I deeply apologize if this is off topic, but this request highlights an issue with the original debate, where posters were tripping over each others to express indignation about Berkeley releasing these videos without disability accommodations, reiterating the same arguments for the ADA, and asserting that those same considerations apply here.

If you thought the judgment against Berkeley was justified-- that they couldn't give away these videos for free without e.g. subtitles -- are you equally against this effort? Because it accomplishes the exact same thing: the availability of some useful education videos that are unusable by (some) people with disabilities.

If you're not, how do you reconcile that? Your position seems to be something bizarre like:

A) "Yeah, Berkeley should release free, deaf-unusable videos, but gosh darnit, they better well do it through back channels, because we need to respect the disabled."

B) "It's great to release the videos, as long as someone other than Berkeley endorses and/or hosts them, because we need to respect the disabled."

I just don't see a way to reconcile them, and yet I get the impression that some posters here do hold both views (the judgment was justified, and this effort should not be halted/is good).

Edit: Here are the discussions I am referring to, courtesy of BenElgar:



ucb_throwaway 2 hours ago 4 replies      
As a former UC Berkeley student, I just want to add that besides the public lecture videos, there are also many private, unlisted course videos on YouTube from the last couple years (after it became an issue). The Archive Team has missed these videos as they're only accessible via UC Berkeley's student portal if you're a student in the class. The Archive Team and current/former students need to work together here to retrieve the private YouTube playlists and download the videos.
huma 1 hour ago 0 replies      
Not CS related, but I've found these courses to be of great value:

- Sociology 150A (Robb Willer)https://www.youtube.com/watch?v=edfKMAePWfE

- Geography C110 (Richard Walker)https://www.youtube.com/watch?v=oYR5PdPZ_w0&list=PL4rxxS6x1H...

- Physics 10: Physics for Future Presidents (Richard Muller)https://www.youtube.com/watch?v=6ysbZ_j2xi0

There's also an audio course on Buddhist Psychology by Eleanor Rosch, if you're interested. Now seems to be available only on iTunes.


nsrose7224 3 hours ago 0 replies      
I'm not sure which of the following are actually available on Youtube, but here are the courses I enjoyed the most and I think are the most valuable as a CS major:

- CS161 Security (Wagner preferably)

- CS189 Machine Learning (Shewchuk)

- CS170 Efficient Algorithms and Intractable Problems

Not a comprehensive list, just my favorites.

master_yoda_1 17 minutes ago 0 replies      
None. If you are interested in some subject then you would have taken. And if you got interested in future there must be some course. So don't waste your hard disk space.
saycheese 1 hour ago 0 replies      
Anyone looking to create a personal archive for any YouTube content should look into these scripts:https://rg3.github.io/youtube-dl/

They're very easy to use and well documented.

beefield 1 hour ago 1 reply      
I would be curious to read the background discussion at HN you refer to?
ruang 3 hours ago 1 reply      
CalChris 2 hours ago 1 reply      
Dunno if CS 161, Computer Security, is available but it's a great course. Wagner or Weaver both have their points.

CS 70 should make the list but the lecture notes are enough.

Strongly prefer Kubi for OS or pretty much anything.

myth_buster 2 hours ago 0 replies      
CS189 - I've been going through this course and I like the presentation and content. Specially, all the plots that are brought in to explain and also the notes.


yourapostasy 28 minutes ago 0 replies      
The proximate cause of this removal is Gallaudet University [1] [2].

What possible motivation could have moved those employees to file on behalf of their university? Malicious intent (they didn't want the free material competing with their courses)? Lack of gratitude (the material is free, but that's not enough)? Zealotry (everything, even free content, must meet their ADA compliance standards)? Simple lack of thinking through potential consequences? Lack of Net citizenship/spirit? Anyone have any insight into the real story behind their protest? I don't want to excoriate them without knowing the whole story, it could have been just someone's doh! moment turned into a really bad outcome.

I know there are closed-captioning format standards. Perhaps someone can create a site that runs closed captioning underneath YouTube videos, with the closed captioning supplied by volunteers (kind of like how closed captioning was done by anime fans)? Hook it up to a GitHub backend so closed caption data can be refined by anyone, with appropriate sidebar discussions. Hook it up to Google Translate to generate Braille and foreign translations of the hand-curated closed captioning, and let users refine the auto-generated translations. Then prevail upon the DOJ and Gallaudet University to give this time to develop instead of hammering on UC Berkeley, and let Creative Commons-licensed closed captioning fill in the content everywhere for all access-challenged students, for all content? Google might be interested to use this as a corpus for Deepmind.

Gallaudet University could have pioneered a solution and become the world leader in automated accessible content generation working in partnership with Google Deepmind, for example. That would have brought in way, way more funding through licensing than this short-sighted approach they are taking now. If Gallaudet University established a CS focus upon this, it would draw in top global talent for a variety of specialties. HAL-like accurate automated lip-reading coming out of this, with even more accuracy when using mic arrays? Yes, please; you get something like that even 90% accurate and you just gave a mindgasm to every meeting-organizer in the world who wants meeting notes taken. And as much as you all hate meetings, if you had a near-irrefutable better-than-stenographer CYA from meeting notes just once, I guarantee you would love that mechanism, increased meetings frequency or no.

This is a darkening of the Net and education in general, and it should not stand. Unless the reporting on this development is simply not including their side of the story, that Gallaudet University is not front and center of this issue trying to get ahead of the outcome by seeking win-win solutions should be making them a pariah on the Net and in the education world. Gallaudet University pursuing a perfect-is-enemy-of-good tactic likely has not considered that they just pulled free education for hundreds of millions of young minds in the developing nations who cannot afford anything close to a world-class education, but have family and friends willing to translate for them. That's unnecessary.

[1] https://www.insidehighered.com/news/2017/03/06/u-california-...

[2] http://www.theblaze.com/news/2017/03/09/government-over-regu...

xyle 2 hours ago 0 replies      
That is a great list to have so far! On top of that, I have to highly recommend CS168: Internet Architecture (preferably with Scott Shenker), CS 161: Computer Security (with either Wagner, or Weaver), and CS169: Software Engineering (with Armando Fox, also available on EdX). These are the 3 courses that were most influential on my Undergrad experience (on top of the 61 series and 162)
theli0nheart 2 hours ago 1 reply      
Could someone make a torrent with all of the videos? I would but I've never done it before and don't have the time to learn. :(
tmccrmck 2 hours ago 0 replies      
Could you get CS170 with Papadimitrou, EE 16A/B, and multiple semesters of 61A with Harvey? Thanks!
neurobot 3 hours ago 0 replies      
As far as I know this course has been archive in archive.org, you can find it there with berkeley as a keyword.
vpribish 3 hours ago 5 replies      
Anyone want to chime in with a way to simply grab them all?
reachtarunhere 2 hours ago 0 replies      
Funny I downloaded exactly the same courses.
Kinnard 3 hours ago 1 reply      
Could you write a script that captures all of them?
eddieh 2 hours ago 0 replies      
Physics C10 (aka L&S C70V)
partycoder 2 hours ago 0 replies      
The archive files can be accessed here:


Should contain the full backup.

daseiner 1 hour ago 0 replies      
Anything with Hubert Dreyfus
Ask HN: What are the best resources for learning about algorithmic trading?
60 points by whiskers08xmt  7 hours ago   14 comments top 8
neuronsguy 52 minutes ago 2 replies      
Depends what your goals are.

If you want to get a job at an HFT e.g. Jump: as a student you're not expected to know much about finance or trading, the prerequisite knowledge is similar to getting hired at eg Google. I work at one of these firms, when we hire people we have them come in and code in an IDE of their choice on a problem of our choice for about 2 hours, and we watch them do it and discuss it after. We also do algorithm interviews, and try to find people who are demonstrably smart and also excited to work with us (note this is for dev roles. If you want to work on trading roles you need to have a strong intuitive grasp of probability, games and asymmetric payoff situations, these will come up in interviews).

If you want to get a job as a quant: other comments here have addressed this.

If you want to learn about algorithmic trading from a tech perspective: go read some exchange specs (BATS, CME, Eurex tech specs and market model). That's the nitty gritty and you'll learn more about trading from that than anything else you can do if you're not employed in trading.

If you want to learn about machine learning in the context of finance: get a job at one of the quant hedge funds like Two Sigma. You do not have access to the data you would need to learn on your own, and you cannot afford to get it yourself.

In general to learn about modern algorithmic trading you have to work in the industry, there is almost no public information of any value (maybe read the Sniper in Mahwah blog if you haven't, he's pretty smart).

If you want to get a job you do not need to learn about this, you just need to be worth teaching it to.

1o0ko 6 hours ago 1 reply      
Broadly speaking I think that you are speaking about two things: derivatives pricing (this is what people think when thy talk about quantitative finance) and algorithmic trading (which can be either pure market making or alpha seeking speculation ;).

To better understand the difference between the different branches of QF world, visit this site:https://www.quantstart.com/articles/Quantitative-Finance-Rea...

It has a comprehensive list of references and articles describing in details what to expect in different jobs.

It won't harm if you occasionally visit https://forum.wilmott.com/.

And finally, for shit'n'giggles: http://www.zerohedge.com/ ;)

dunster 2 hours ago 0 replies      
Quantopian is home to 120,000 people learning algorithmic trading, including students, data scientists, academic researchers, developers, and finance professionals.

We provide a research platform, market simulation, and data for free. We also provide tutorials, community, and lectures to teach you how to get good at it. I recommend you take a look at the Getting Started Guide (https://www.quantopian.com/tutorials/getting-started) and then start going through the Lectures (https://www.quantopian.com/lectures). The lectures cover some important statistical topics, and they get into how to apply those concepts to algorithmic trading.

disclosure: I work for Quantopian.

jackbrian 4 hours ago 0 replies      
As a CS student, I'd really make sure your stats knowledge is solid. Perhaps take a class that covers stochastic finance (Black-Scholes, etc.) if available.

I learned the hard way that it is quite difficult to break into finance as a non-student, so do everything you can now to land that first gig. Good luck!

Some starting resources:

-Ernie Chan's books and blog (https://epchan.blogspot.com/)

-QuantStart has great starter material and a new book, although I haven't read it (https://www.quantstart.com/)

-"Inside the Black Box" (Narang) I've seen referenced a good bit but felt as though it leaned toward order execution and rather boring

-"Dark Pools" (Scott Patterson) a great story about the rise of algorithmic trading

-"Flash Boys' (Michael Lewis) offers a nice follow up (HFT), but considered a bit sensationalist

EDIT: If you're planning on using Python (a solid bet)...

-Python for Data Analysis (Wes McKinney) - Great, quick book for Pandas by former AQR (and now Two Sigma?) guy.

-Yves Hilpisch books: "Python for Finance" is introductory while "Derivative Analytics in Python" is quite math heavy.

baccredited 2 hours ago 0 replies      
Related question: after creating a successful quant trading strategy - how would you publicize it?

I've created a fund that tracks my strategy at motifinvesting.com and am posting the trades at instavest.com. Where else should I go? Are there any contests I can enter? (Quantopian requires too much turnover I only do 50 trades/yr)

brudgers 7 hours ago 0 replies      
The first company that comes to mind in terms of publicly discussing its programming and computer science type engineering is JaneStreet. There are episodes of Software Engineering Daily and YouTube talks and blog posts. Many of them related to the OCaml language and system design.

Good luck.

matheweis 6 hours ago 0 replies      
Check out https://www.quantopian.com and in particular their community forums.
proquant 1 hour ago 1 reply      
I'd recommend that you get good at stochastic processes and time series analysis, machine learning, and neural networking on the tech side, and managed futures and commodities trading as opposed to stocks.

Quantiacs is the best place to learn. They are the world's 1st and only crowdsourced hedge fund actively trading with institutional capital, you can contribute your algo to their marketplace and get matched with millions in investment allocations and you keep 10% of the profits and retain 100% of your IP, and they also run the world's largest quantitative finance competitions -- giving out $2.2M in allocations per Quarter.

Unlike Quantopian, Quantiacs focuses on managed futures as opposed to equities. This is important because managed futures are uncorrelated with the stock market and are the most liquid markets in the world -- it's where the professional quants play. So if you want to be successful with quantitative finance and algorithmic trading -- you should focus on managed futures more than equities. So even though there are more users on Quantopian, the best quants in the world are on Quantiacs.

Also on Quantiacs you can use either Python or Matlab so it's more flexible, and the learning curve is not as steep as with Quantopian.

I'd recommend that you take a look here for tutorials: https://quantiacs.com/GetStarted

And see what others have said about it here: https://www.quora.com/What-do-you-think-about-Quantiacs-com-...

Ask HN: Cheap, hackable e-reader?
148 points by 0942v8653  21 hours ago   51 comments top 15
marcjuul 20 hours ago 2 replies      
If you just want to modify the existing OS and write apps for it the look at the kindle hacking community on the mobileread forums. The best devices are probably up to and including 5th generation kindles since I believe they are the latest to still have working soft-jailbreaks (but that could have changed since last I checked). I believe all kindle models are trivially rootable if you are willing to buy a 1.8v usb to serial adapter, open the kindle up and solder on three wires. If you want a 100% FOSS distro on your device and you're not afraid of soldering, cross-compiling and super-pre-alpha code then read on.

I've been working on a linux distro for i.MX based e-paper readers (kindle, kobo, etc.) for a while and just had two other hackers join me on the project. Currently we are furthest along with the Kindle 4th generation non-touch with a slightly modified super minimal Debian booting and basic graphics support (Xorg works but no window manager and no screen auto-update yet. e-ink is weird). I believe we've managed to strip out all binary blobs so it's really all open source now. This system is still using an ancient kernel (a slight variation on the one used by the stock OS). We just got the latest stable kernel booting a few days ago but only barely (not even mmc support yet). There's just three of us for now, and we hang out in #fread.ink on freenode and our code is up on https://github.com/fread-ink

You should look at the repo https://github.com/fread-ink/fread-vagrant to get started.

femto 20 hours ago 2 replies      
Kobos are quite hackable [1], to the extent that their Linux operating system is on a removable internal SD card, and you can run Debian on them [2].

[1] https://wiki.mobileread.com/wiki/Kobo_Touch_Hacking

[2] https://wiki.mobileread.com/wiki/Debian_Linux_on_a_Kobo

kutkloon7 20 hours ago 2 replies      
If you're willing to take it a step further and have some experience with hardware (or you are willing to learn), you can even buy a bare e-ink screen and interface with it. For example, the ED060SC4 is cheap. The datasheet is not very helpful, but if you look carefully, you can find some drivers on github, or more generic tutorials on e-ink drivers.

http://essentialscrap.com/eink/ is probably one of the most helpful resources out there if you want to do this.

problems 20 hours ago 2 replies      
Kobos are extremely easy to modify and completely not "protected". I highly recommend them. Many of them have touch screens and wifi too if that's of any benefit to you.

There's a pretty decent dev community that has Qt fully working too which could offer you a good starting point. There are already full UI replacements going on in the community, like KoboStartMenu and KoReader.

frio 18 hours ago 1 reply      
The bq cervantes[1] is open source[2] but isn't so cheap.

[1]: https://www.bq.com/es/cervantes-3-bq[2]: https://github.com/bq/cervantes

I'm planning on picking one up soon (or, hopefully, a Cervantes 4 if it comes out...). I'm (fortunately in a position where I can be) willing to pay the extra to support F/OSS out of the box :).

mattkevan 8 hours ago 1 reply      
Anyone know anything about this: https://getremarkable.com

It's been advertised pretty heavily, and on the face of it looks like everything I want in an e-ink sketchbook/reader.

I have a suspicion that it will disappoint, however.

kylesf 20 hours ago 3 replies      
Just wrote this, let me know if I can be of any help!


MistahKoala 20 hours ago 1 reply      
The Nook Simple Touch can be rooted. I found it to be a little bit unstable, but YMMV.


Simple Touch readers should be dirt-cheap.

0942v8653 21 hours ago 1 reply      
I'm currently looking at a simple 7th-gen Kindle. ( https://www.amazon.com/Amazon-Kindle-6-Inch-Previous-Generat... ), for $35. I've done some research, and it seems that it is possible to jailbreak it, but I would like to be sure I can really write software for it before I buy.
leggomylibro 20 hours ago 1 reply      
I like this idea, and I'd like to take the question one step further: are there any affordable development platforms which can work with eink screens? I've read that the screens themselves are pricey due to EInk's de-facto monopoly on supply, and difficult to work with due to the need for things like manual temperature compensation just to drive the display.

But surely there must be breakout boards by now, right? Or a raspberry module that's larger than 3"? Can you effectively source raw screens through the usual hobby suppliers like digikey, mouser, jameco?

mrmondo 15 hours ago 1 reply      
I've been doing a lot of research on this recently including contacting Chinese wholesellers to see what individual parts would cost.

Essentially all I'm after is a Linux (not android) based 7-12" eink tablet with touch screen, a decent resolution / PPI for the size and at least say 2-4GB of ram at a minimum although if it was cheap enough I'd drop as far as 1GB if I really had to.

I have a Dasung E-Ink monitor and it's dreadful, lots of ghosting, very slow refresh, have to have some 'interesting' software running to make it work, hard to work with multi-desktops etc.... and very, VERY expensive: https://www.indiegogo.com/projects/paperlike-world-s-first-e... otherwise I'd attach that to a Pi or Cubox and live without the touch screen.

godelski 18 hours ago 2 replies      
Has anyone hacked the boogie board? It is extremely cheap.

Edit: Googling this seems to be a good resource [1] and it looks like it is using an msp430 so should be hackable. But I don't actually know much about this stuff, so if someone does hack it I'd love to know how

[1] http://forums.hackaday.com/viewtopic.php?f=2&t=846

krick 20 hours ago 0 replies      
PocketBook, I guess. I never tried programming it myself, only installed some plugins, but it's basically a Linux underneath, so, I guess, a lot can be done. And unlike all these shady Kindle/Kobo/Nook/whatever they don't have any notion of DRM, they are just a device.

My own is quite old and the screen is not top-notch, I don't know how advanced and expensive they come right now. But give it a look.

szatkus 12 hours ago 0 replies      
Inkbook looks pretty hackable:https://inkbook.eu/shop/inkbook-classic-2/
orliesaurus 14 hours ago 0 replies      
I have a generation 2 kindle and I would trade it for nothing, I miss having the backlight so I actually need to have a light in the room but other than that the amount of "hacking" I did on it is extremely impressive - oh and if you ever read this, thank you twobob for all your hard work on the kindle
Ask HN: What do you use to align your daily todos with your long term goals?
356 points by mboperator  1 day ago   203 comments top 81
yn37 6 minutes ago 0 replies      
I also struggled with sticking to bigger goals.

Just wrote a post about the approach that worked for me -- http://claudiu.dragulin.com/2017/03/14/how-to-align-your-dai...

Short version:- Make a list on a sheet of paper with clear, simple, manageable steps to your goal- Have it on your desk next to you at all times- Watch the magic happen

I also tried different tools and software-based approaches (reminders, checklists, etc) but I found that they were mostly distracting.

The simpler the solution, the better -- therefore, plain sheet of paper.

Key thing here was to always have it in front of me, next to any other todo list I may have for the day. As long as I did that, I never had to worry about updating my daily todos, or aligning them with my goal, or anything like that.

imranq 1 day ago 4 replies      
Advice from my physics professor: make a detailed plan and then discard the plan and do what you feel.

This doesn't mean the plan was unnecessary...rather the plan carves out the neural pathways in your mind. The feeling part is important too since if I am so rigid then I am going to be crushed by the randomness of life.

renaudg 1 day ago 9 replies      
A critical factor of success in achieving long term goals is to schedule corresponding daily todos on a calendar. Because if something isn't either obviously urgent or scheduled on a calendar, it never gets done.

For this reason, I sorely miss the Timeful app (bought and shut down by Google) which nailed the process perfectly, integrating one-off todos, habits (e.g. 3 runs/week) and calendar management in a single system. AI-based suggestions for scheduling todos was the icing on the cake.

To this day, sadly I still haven't found a decent replacement.

Google Calendar took the automatic habits scheduling engine from it but is otherwise inadequate for todos, and well-established todo managers like Things / Wunderlist stubbornly refuse to allow something as simple as drag+dropping todos onto a calendar at a specific time of the day (which is the critical bit), and they don't support habits ("tick this box n times a week")

Plan (getplan.co) seemed promising but is too alpha for daily use and development seems to have stalled. SkedPal nails it in theory but is over-engineered and bloated, its UI asks too many questions and cognitive load is high, it needs "Apple-ification".

Any other recommendations very welcome ! Even happy to beta test or collaborate on something new (I know the world already has too many productivity apps, but it lost the "right" one with Timeful IMHO)

blowski 1 day ago 1 reply      
A frequent-ish review. About once a month, I get a nice coffee and cake and spend a couple of hours thinking about the last month, my current todo list and my long term goals. I try to remove anything that doesn't contribute to the goals, and intentionally put tasks which will move me toward my goals.

I also pray quite frequently (I'm Christian, but I believe some types of meditation are just as effective here). I look at my principles and ask myself whether I'm genuinely living up to them, and ask myself how I can improve.

I have tried using OmniFocus and MyLifeOrganised, but I found both tools got in the way of my thought process. Now I just use paper and coloured pens.

awjr 1 day ago 5 replies      
I have a trello board with the following columns:

"Good intentions" :- Things I think I'm going to do. I investigate then put in other columns.

"Next Up" :- Need to have a go at next.

"Working On" :- Actively doing.

"Done/Dead" :- Things that I did as well as things I failed at or discarded.

"Follow Up" :- Something happened, so need to wait on something/someone to then allow me to continue.

"Asleep" :- Sometimes things are not 'Dead' they are just really not worth looking at for another year or so. I evaluate these projects once a year or and move them into Next Up if viable again.

It's my home page when I fire up my browser. ;)

enoch_r 1 day ago 2 replies      
I cannot possibly recommend Beeminder highly enough, if you happen to have the personality type that it works well with.

The basic idea isn't too far off from the million other "habit" apps out there. I say I want to meditate X days a week, tell Beeminder whenever I meditate, Beeminder gives me a pretty (okay, decently attractive) graph of how I'm doing, and they tell me if I'm not meditating as much as I want to.

The key that makes Beeminder stick (heh) is that it makes use of commitment contracts. I don't just say I want to meditate X days a week, I promise Beeminder that if I don't meditate X days a week, I will pay them $5 (or $10, or $30). You can cancel or decrease your goal at any time, but only with a week of heads-up, so you can quit for a well thought out reason but not because you just don't feel like it today.

I've tried to start a lot of habits in my life, but I've historically been very bad at sticking with them for very long. It's so easy to give into the "I'll just do that tomorrow" syndrome.

As an example, here's my Beeminder graph for "tidying up": https://www.beeminder.com/jds02006/tidyup

I love having a clean desk, but historically I'd have a clean desk every 6 months, followed by a slow accretion of messy crap. Now, if I don't spend 5 minutes tidying up my work area every few days, I'll have to pay Beeminder $30. Result: my desk area is completely clear.

It sounds crazy (to my wife, at least), but it's ridiculously good at bringing your long-term goals (and the consequences for not achieving them) into the present.

Disclaimer: I have no association with Beeminder, but they have sent me stickers for making bug reports. :)

firehawk895 1 day ago 2 replies      
David Allen's getting things done hands down. You don't even need to read the book to implement it, although it's a great read. here's the 15-minute summary that will get you going right now - https://hamberg.no/gtd/ - I have used Trello to implement it - here's a screenshot. http://i.imgur.com/dbH8yGq.png

specifically answering your question - this framework makes you regularly review your task list and ensures that you have a quantifiable next action for every large scale (1-year project) that you can do to reach your final goal.

steventhedev 1 day ago 2 replies      
Google calendar and an hour each morning to move actions related to long-term goals into your short term todo list (notebook in your case).

However, bear in mind that plans are rarely followed to execution perfectly. You may meet someone who wants you to stay, or you may get a really good offer. You might experience financial hardship and need to settle down for a while.

When I go on a hike, I spend a good hour or two studying maps (topographical, orthophoto, etc) before picking a trail. It means that I can decide on a whim to follow another trail halfway through if conditions call for it (mud, rain, wild animals, etc). Planning is about mapping out all possible outcomes, and not so much about following one plan to the letter.

nzjrs 1 day ago 2 replies      
> moleskine notebook

Ok. That's a weird detail to bother hipsterbragging about.

Anyway, I have a post it on my monitor that says. "Just do the fucking thing and stop doing busywork". I have a second one that says "Successful people have better things to do than arguing on reddit/hn"

Tldr; constant visible progress, cut distractions

mgiannopoulos 23 hours ago 0 replies      
Beeminder (https://www.beeminder.com/) is mentioned below, I've been using it for 2.5 years. The last 3 months I'm also doing some planning in a digital form (but all manual) of the paper-based Bullet Journal method http://bulletjournal.com/
hbt 1 day ago 1 reply      
I like the 4dx approach. Lead measures vs Lag measures.

you pick a long term goal and associate a metric to it.

Example: weight from 180 to 170That's your lag measure.

Your lead measure are the activities you get done daily.

- Daily caloric intake

- sleep schedule

- exercise routine

- water intake

- intermittent fasting

Your lead measure influence your lag measure but as the name indicates, it takes time before you notice the effect.

Focus on your lead metrics and adjust when they are not working.

beat 1 day ago 0 replies      
Someone once said look after the molehills, and the mountains will take care of themselves.

The best thing I ever did for my to-do habit was to get rid of the backlog. I don't backlog tasks now. I only track things I am working on now, or will be working on immediately after. The backlog caused an urgent-vs-important conflation that led to a lot of analysis paralysis.

If something isn't important enough to stay at the top of my mind, it's not that important.

XFrequentist 1 day ago 2 replies      

Complice is aimed at exactly this problem. Integrates a bunch of other productivity hacks as well, I love it.

The founder was interviewed on indie hackers recently: https://www.indiehackers.com/businesses/complice

laktek 1 day ago 0 replies      
You can apply the concept of OKRs [0] for this. Think Objectives as your long term goals and Key Results as your routine tasks. When you pick a daily task you should be able to point to the objective it'd satisfy.

I've been ignoring it thinking it's corporate BS and doesn't really apply to personal life. But I tried it in last year (where I quit my day job to bootstrap my own startup) and felt having a systematic thinking is actually productive.

[0] https://library.gv.com/how-google-sets-goals-okrs-a1f69b0b72...

egypturnash 1 day ago 0 replies      
Train yourself to think the following:

Any day in which I do not make progress towards one of my Big Goals is a failure. Any day in which I do make progress is a success.

Remember this when you decide what today's todos are. Remind yourself of this when you have to juggle priorities and ditch half of your list for today because something came up. And forgive yourself for the times you fall off the wagon; shit happens. But let that little bit of "I got fuck-all done today" guilt carry over to the next morning to spur you to the Big Important Projects.

This is how I kept myself working on long projects, first one that took a year, then one that took five years. Some parts were slower than others. Some were interrupted by life.

The fewer Big Things you have to juggle, the easier it is to keep returning to them.

Use whatever todo list makes you happy. Personally I use a lightweight version of the Pomodoro method; I write down 3-5 things to do with my day on a post-it, with 4-8 checkboxes total next to them, each representing a half an hour. I usually never check all of them because Things Come Up. This post-it stays on my desk, and gets the next day's stuck on top of it. Every now and then I look at old ones and toss them.

iamnothere 1 day ago 1 reply      
I use Panda Planner, a physical notebook designed to help you with monthly, weekly, and daily prioritization. I have found that the process of physically writing down and tracking goals each day forces me to sort through my mental clutter and decide what is important.

For me, this priority-setting process is really a separate domain than daily task tracking, project-level organization, and so on. As long as I do that daily review, it doesn't really matter where I keep my task breakdowns. I actually use several of those to keep tasks separated based on the project domain -- Visual Studio Online for development, Todoist for marketing, and so on.

jwdunne 1 day ago 1 reply      
Interesting because I looked at goal setting some time ago. If you Google "goal setting doesn't work", you'll find as much against it.

Having a rough idea of where you want to go and setting yourself a number of small wins in the right direction could help you. Get into the habit of daily small wins that you know is moving you towards your true north.

As another point, I see systems and habits referenced below. Interesting because I'm midway through Benjamin Franklin's autobiography. Here is what he did:

He worked out a set of virtues that he thought he ought to have, such as temperance, industry, silence, etc.

Using that, he then used the calender method that's proposed a lot on each virtue to instill them as habits!

I'm inclined to say he was an early self-help author but also one that has something other than success in self-help as a justification for his methods.

hoodwink 1 day ago 2 replies      
Stop focusing on long-term goals (outcomes) and focus on daily habits (process). For example, rather than focusing on learning French, do 15 minutes of Duolingo every day.
AJRF 1 day ago 0 replies      
I started looking at GTD and then just thought, some of these ideas are good, others I don't need, so I just made my own version of it.

So I have the following Cards in a Trello Board;

1. Inbox -> Things I can reasonably expect to complete in a day or less2. In Progress -> Limited to 5 per day3. Projects -> Working on an app? Put details in here4. Reminders/Waiting -> I've sent a form in, waiting a response before next action5. Some Day -> Things I would like to tackle some day (Good for reviewing long term goals)6. Complete / Split into smaller tasks

VohuMana 1 day ago 1 reply      
Not sure if this will help but one way I have helped map my todos with my long term goal is: - Get a large white board or sheet of paper, the key here is a lot of space to write/draw.- Draw a circle and write one of your goals.- Now think of everything you need to do to accomplish that goal and create circles with those things written in then and draw a line to the main goal.- Now repeat the same process for each of the smaller circles and keep going till you have a feeling that everything is in bite sized chunks. (These are essentially your todos)- Now create a timeline and add milestones (eg: Monthly milestones) figure out how many circles you need to get done before each milestone.- Now you should have a good idea of what you need to have done and by when to be on track.

it doesn't work very well for goals that are hard to measure but it can be applied in a lot of situations. Good luck tackling all your goals :)

everyone 23 hours ago 0 replies      
I have a LIFE trello board for big things, and various other trello boards for individual things which will have daily tasks on them. So one card on the LIFE board will spawn an entire other board when I actually start properly planning it, and the initial cards will also multiply into many as I actually start doing them and breaking them down into their smallest component parts (ie. if it was programming, some thing I could do in one sitting if possible)

ps. In terms of timelining stuff I just make schedules in my notebook. Each line in my notebook might be a day or a week or a month depending. They usually dont last very long and I am always sketching new ones. I do tend to write and sketch a lot and draw the aforementioned timetables and also diagrams which really help me think about stuff. I try and keep that in chronological order in my notebook (rather than just be drawing on random scraps of paper), so only the last few pages are really relevant to me now but I can also go back and look at older long-term timelines.

So my 'what to do' and 'when to do' are seperate. Thats makes sense imo, as the way to do the best job would just be to work through the what to do in order and take as long as it takes. The 'when to do' is often an external artificial deadline or whatnot

mmattax 1 day ago 1 reply      
Disclaimer: This is my startup.

We're building Jell (https://jell.com) to tackle this problem. We have 2 sets of core functionality: OKR tracking, and "checkins" which can act as a daily/weekly/monthly "standup".

You can add plans/tasks to your checkins (and mark them as complete), and link these items to your OKR's.

We've seen a lot of companies have success with our tool (many replacing daily standups with it). We'd love feedback.

EduardMe 11 hours ago 0 replies      
Hi, I had exactly the same problem and was also using a moleskine journal/calendar kind of notebook for every day. I couldn't find any apps supporting my style of workflow, so I designed NotePlan (http://noteplan.co) for Mac, iPhone and iPad:

NotePlan is a daily planner app based on markdown. You can

- fill a note with todos and other text for every day (just like moleskin).

- You have a calendar with an overview of all your notes.

- Store reference material, backlogs, checklists, etc in separate project notes.

- Link everything together with Markdown. Use markdown also to format your text and segment it through headers into different projects

- NotePlan pulls your data from Reminders and iCalendar events automatically into the calendar and every note.

- Everything is saved and backed-up in plain text files inside your iCloud Drive. Nothing hidden and nothing on our servers.

Learn more here: http://noteplan.co

And besides using this tool, I'm writing a lot of notes. I'm writing down everything coming to my mind. Then sorting it into project notes and finally scheduling it into days, if those are actionable. Most importantly I'm reviewing all notes each sunday, at least 2 hours. See my article here for more details: https://hackernoon.com/turn-your-todo-list-into-a-productivi...

Let me know, if you got questions, happy to answer :)

mysterydip 1 day ago 0 replies      
One thing I think is missing from a lot of processes or tools is feedback of some kind comparing expectations to reality to help you set more achievable goals and better timelines in the future.

If I have a goal to do X within a month and it takes me two instead, I should look back and see where the discrepancy was. Did other things come up I didn't account for, or did the process take more manhours, or was more research/training required to have competency to complete the task?

koliber 1 day ago 0 replies      
For me, it involved making the big picture big, vivid, specific, and tangible.

I was introduced to the idea of a Painted Picture. It is a goal setting methodology that involves heavy visualization. This particular incarnation was developed by Cameron Harold, as part of his coaching activities.

It made a big impact on my life.

The gist is that you write down, in narrative form, what your day will look like exactly 3 years from now. You write in the first person form, diving into various areas of your life. It should involve as much detail as possible. Ideally, these should be very optimistic goals which you dream of, rather than safe ones you are very likely to hit. It's OK if all of them don't materialize.


On March 13, 2020, I will be sitting in my comfortable arm chair in my living room. A fire will be roaring in the fireplace, and I will be looking over my emails. The kids just left to school. My wife drove them in our BMW VJ850. She is currently at work at MegaCorp, giving a presentation to the board about the XYZ initiative, which has a huge chance of success and will give her a real chance at the CXO position.

You continue on for two pages or so, going into minute details. Talk about your kids, your home, your relationship with your friends, the kind of food you want to be eating, professional activities, health, hobbies, charitable activities, political activism, and whatever else you want to affect positively. To keep it interesting, you can talk about what just happened ("We recently returned from a two week cruise in the Bahamas") or what is coming up ("I will be spending a week with a new client doing KJI advising. This is the biggest deal I've landed thus far. They have agreed to my $2,000 per diem rate. I'm confident they will be happy with the value I provide for them.")

Dream big. Share it with your significant other, if they're in it. Encourage them to write one of their own.

How does this help with the day to day goal setting and decision making?

It's uncanny! The imagery is so vivid that it permeates my daily life. My wife and I talk about it regularly. Whenever daily decisions need to be made, the painted picture comes to mind and guides me towards my goals. When I need decide what to do today, this week, or this month, and choose between the infinite possible activities I could be doing, having this powerful visualization in the back of my mind aligns me with my goals.

Joeri 1 day ago 2 replies      
For my personal life I don't write down long term goals, because I want to live in the now and not in the future.

Professionally, I use outlook's todos with three priority classes: some time (low, where long term goals go), soon (normal), and today (high). Each list is organized like a backlog with most important first. I also color-code them by type (coding, process improvement, personal, and delegated). I scan the list regularly, and promote, split, join, add, remove or move down items as needed.

f_allwein 1 day ago 1 reply      
Have you looked into Getting Things Done? It's a methodology for managing your tasks based on dumping everything in one place (I made a Google sheet) and then prioitizing. Part of it is that you make lists of your goals for different time frames (e.g. 1 year, 3-5 years) and revisit them regularly.


bevan 1 day ago 1 reply      
I made a web app exactly for this- for staying focused on your most important 1-year goal. It reminds you of your goal in every new browser tab (with the accompanying browser extension), so that your goal always stays top-of-mind. It also reminds you to record your daily progress and to track your goal-related habits.

It has other productivity tools as well (pomodoro timer; habit tracker; brainstorm tool) all dedicated to your top 1-year goal.

It's called Focal Point (https://focal.pt), check out a demo dashboard here: https://focal.pt/demo

mezod 1 day ago 2 replies      
I've been pretty obsessed with this topic for quite some time, I implemented my own todolist, kanban, and other productivity tools and my conclusion is that in the end what gets you far is routine/habits. In other words, doing it every day. If in your case the goal is to explore 3 cities this year, then have a list of small things you can do in that direction and do at least one every day. And don't add dumb things to the list to have a false sense of productivity, it's better to have days off than to fool yourself.

Coincidentally, I just made my own habit tracker this week to help me in this direction too, http://everydaycheck.com in case you want to check it out...

gits1225 1 day ago 0 replies      
Every time I'm faced with a decision, I close my eyes and see the same picture. Whenever I consider an action, I ask myself, will this action help to make this picture a reality? Pull it out of my mind and into the world? And I only act if the answer is yes.

- Little Finger

Deliberately add your to-dos. Before adding a to-do (to asana / on paper) ask this question: Does this to-do get you closer to what you want to accomplish? If no, do not add it. If yes, prioritize first (no two to-dos are equal, choose the ones with the most impact) and then bucket it according to Eisenhower Decision Matrix.

As your morning routine, review your matrix to stay on track.

vvdcect 1 day ago 2 replies      
So I use 3 trello boards and break my goals/todos into cards. My long & short term todo boards are sorted by icebox, work in progress and done. My daily agenda is sorted into 3 lists, morning, afternoon and evening. I've been using this for almost 6 months and it's pretty simple to manage.
ioddly 20 hours ago 0 replies      
I use a tool that I wrote, evolved from a Trello board: https://github.com/ioddly/meditations

Specifically, there's a daily, monthly, and yearly list, all on the same screen. So if your goal for example is to exercise, you'd be tracking things day by day, but get a monthly summary (e.g. I exercised 75% of the days I was supposed to this month).

I do have some goals in mind, but I find that tying them to time is the wrong way to go. i.e. I'd like to get back to a 2x bodyweight deadlift, but it's better to try and make 100% of my lifting sessions and complete the programs I am on than it is to worry about when exactly I will hit that goal.

So the actual todos are derived from a system that should eventually lead to that goal, rather than achieving the goals. I then evaluate my progress monthly and yearly. (did I do everything I was supposed to? Am I closer to the goal? If not, how should I change the approach?).

JaviLopezG 1 day ago 1 reply      
I draw on my window a dashboard with a kind of life's game. I needed 1 million of points to get a price (allow myself to startup another company). I can earn points and bonuses doing things like workout, travel, launch with my family, rock climbing, party with friends, develop small projects,... I had some additional rules. All mornings I spent a minute puting strikes near the icons of the things I did past day. Everyday I look the picture of how well I was doing on my life's game and once in a while y added the number of strikes to totals and got bonuses, etc. It worked for me for a while and it was funny but I stopped my count when I moved to other place where my window is smaller than the previous one.
pors 1 day ago 0 replies      
Make sure that working on your long term goals gets priority over working on the rest of your todos. It sounds simple, but it is not.

How to do that is different for everyone. What worked for me is the "Deep Work" method as described in this book: http://www.goodreads.com/book/show/25744928-deep-work

phugoid 1 day ago 0 replies      
For the big projects in my life right now, I just keep track of my time spent, on a daily basis, in a text file. I've found that if I spend enough time, things get done. A simple breakdown of 30 minutes on this, 90 minutes on that is enough.

Looking back at what I've been doing this week, it's pretty clear what areas I've been neglecting.

Anything more than this would not get updated regularly. My time log also works like Jerry Seinfeld's Xs on the calendar; I'm motivated to put in a minimum of effort today to avoid breaking the chain.

sivanesanms 22 hours ago 0 replies      
I stopped relying on tools. Discipline is what it all takes.

Every year from Christmas I do a retrospective for all 52 weekends, my year goals, personal progress and professional progress. I try to find out where my money goes and my time as well. How Happy I was etc.

Make a year plan and print it and put it in your cube (in your home). Yes, please set up an office space in Home. It works.

Then make detailed plan for 52 weekends and weeks aligning to your yearly goals.

Now buy 1$ yearly calendar from dollarstore and fill it up. WHen I turn it each month I know what I should be doing this month. Also I align or change it with some buffer time.

Mostly I miss my deadlines, because my estimations are wrong or the new technology or programming language I am learning takes more time than I expected.

At the end I am happy that I am two steps ahead by planning compare to some one who has never planned.

Now if you ask about the results between a planner and non-planner, I don't know what to say.

nikisweeting 13 hours ago 0 replies      
I recently discovered Noteplan after trying and failing to find a good notes app for years. It's geared towards programmers and techy folk, and it lets you make simple Org-mode style notes with markdown, and integrates pretty well with your other calendar apps. http://noteplan.co/
mathattack 1 day ago 0 replies      
It's good to have an interim time period. I usually set my rolling To Do list weekly. Early every Monday morning (like today) I figure out what I need to get done, and it gives me a chance to look at the bigger picture. Some people do this monthly, but I find weekly works better.

I use Evernote to keep track of list, but that's not based on any tremendous amount of research. Someone else told me that's what they use, and it's easier for me to find things there than on paper.

welanes 1 day ago 0 replies      
> I'm trying to figure out how a better way to stay on track with my long term (1 year) goals...Does anyone have any recommendations/tools for keeping these daily goals todo list goals in alignment with the big picture?

Here's my approach: Define the goal, measure progress, complete todos.

Define the goal: I use Onenote. It's so freedom enabling (click anywhere, type) that it's perfect for jotting down all parts of your long term goals. At this stage a todo list is too rigid to record something this abstract. A mindmap is also good but the Ctrl + E search in Onenote is the best. You'll visit this once a week or so.

Measuring progress: Again Onenote, list the months and add new checkboxes (Ctrl + 1) under each month for each subgoal you want to get accomplished. You'll visit this a couple of times a week.

Completing todos: This is where your todo app comes into play. Map your subgoals to todos and record how much time you spend on them. At the end of each week all your completed todos should see you tick some of the checkboxes in Onenote. You'll visit this as often as you're working on the goal.

For me, this is a simple but visual method of progress spread across just two pieces of software.

May I opportunistically suggest https://lanes.io as that second piece of software. It's a todo app I've built to help support this approach - timer, charts etc.

erikb 1 day ago 0 replies      
My tips:

A) the next step is more important than the final goal. Always work on having a next step not for immediate work, but for what you do after finishing something.

B) Coop with others who are important to achieve your goal, who share your goal, or who have your well being as one of their goals (i.e. life partner). Have regular meetings, e.g. once a month, with that topic. Meeting to eat something with the goal as headline helps to start talking about status updates.

C) Have multiple goals. Often we get stuck at one goal, but at the same time opportunity at another goal opens. It is inefficient, but that's life. Usually we don't have to work hard to figure out multiple goals. Health, family, language learning, holidays. There are already goals in your head you may not currently think about.

The rest basically happens on its own. E.g. if your "next step" is too complicated, you can't explain it to your wife in your monthly "goal X dinner". If you can't progress with "goal X" you will automatically switch to "goal Y" out of laziness and frustration.

Xeps 1 day ago 1 reply      
I've put a lot of thought into year-long planning.I've surveyed 5 of my friends and here's the answers i got:

Q: How do you visually plan out your year and keep track?A: I use the calendar app on my mobile phoneMy issue: logging stuff in a mobile device that is really small, doesn't allow you to see big picture and serve as a constant reminder

Q: How do you visually plan out your year and keep track?A: I use a calendar book that i purchasedMy issue: the book itself doesn't give a year-long summary, it is more of a monthly/daily note jotter.

My solution: look for something i can use to place in my room and serve as a reminder of my year-long goals. It should be something that i can use every year and something i should be able to modify/remove/add as days go by (goals change, people change).

My options:

Option #1 - a real electronic device that is large enough for me to plan out my year.Thoughts - this is not feasible. I remember back in the day when they first tried to market "Microsoft Surface". This is before they came out with the surface products, it was initially marketed as an electronic table board that was large enough and interactive enough for you to comb through many problems milennials face today (illustrating thoughts, long-term planning and design).

Option #2 - a hard surface non-electronic annual calendar that will immediately visualize my year and allow me to strategically segment my annual plans visually. So i found this product listed below, and decided that i would pin it in my room with half-inch steel top pins (these also exist) and use dry-erase markers.


ptero 1 day ago 1 reply      
The system that works well for me is to think (as in really think, focused and uninterrupted) every morning and decide what I should be working on today. Dedicate 10 minutes to this before I head out to work and get distracted by the emergencies of the day.

This, for me, greatly helps aligning daily work with long term goals. I can still get sidetracked, but usually not too much. YMMV.

andthenrobots 1 day ago 1 reply      
I have never in my life made long term plans and I don't know many people that do. Maybe making long term plans is a cultural thing? Despite not having a plan, life seems to work out just fine.

For those that do cherish long term plans: don't you get fed up with the perpetual feeling of "being not quite there yet"?

falsedan 1 day ago 1 reply      

* have occasional roadmap meetings with decision-makers from the department/greater org

* * discuss growth target/expectations for 1-2 years out

* assuming the growth, identify what will prevent us from hitting it

* * systems+processes that can't scale

* * long-term migration plans

* use these as long-term goals

* every quarter, look at the goals and identify something we can achieve in 3 months to get closer

* * write it down with deliverables

* * work out who is available to do the work

* do sprints/agile/etc. until the end of quarter

* review


* come up with the 1-2 year goals

* * remember them (or write them down)

* make Trello tickets in a Some Day list for things you can do right now that get you closer to your goals

* * rank them by importance/deadline (do this whenever you feel like it)

* take one from the top and put them into a Today list

* do them

* * if something stops you, put them in a Waiting list with a deadline & indication of who you're waiting on

* * * e.g. Open a Stock Trading Account [waiting for response] [due 3 weeks] "sent off the paperwork to trader & waiting for account details"

* move them to a Done in 2017-03 list when they're done

* * archive the list at the end of the period

noufalibrahim 1 day ago 0 replies      
The Franklin Covey system is somewhat outdated (especially when GTD came on the scene) but it's designed to do this.

They start from long term goals (they call it vision or something similar) and then break it down into smaller and smaller items which you schedule on a weekly and daily basis. This ensures that everything you do works towards a larger goal. There will be smaller interruptions and things but the overall direction is quite clear.

This has fallen by the wayside with our rather disruptive lives but there are still lessons which are useful. Larger targets (e.g year goals) can be broken down into manageable monthly targets. Then you can work towards these and make sure that you always progress towards your larger vision.

trengrj 1 day ago 0 replies      
I use remember the milk https://www.rememberthemilk.com.

I have one list called Goals. These are my major long term goals that are very rarely termed complete and I use more the notes functionality to mention progress.

Then I have other lists for work, life, and personal projects.

It works pretty well though I imagine you could do the same thing with a notebook.

arvind_devaraj 13 hours ago 0 replies      
use this chrome extension Limitless. "One thing I found for myself is that simply being more aware of where and how Im spending my time dramatically improves my focus" writes http://www.makeuseof.com/tag/limitless-chrome-ultimate-produ...


lukaszkups 1 day ago 0 replies      
Recently I've found a TODO app that doesn't suck and is multi-platform (windows phone and linux included) - short review here: http://lukaszkups.net/2017/02/07/Shortie-2-I-ve-finally-foun...



Also, I've written what I do to be more productive: http://lukaszkups.net/2017/01/29/In-search-of-the-Golden-Gra...


tln 1 day ago 0 replies      
At TINT we use https://takeaim.io and https://small-improvements-hrd.appspot.com

I like setting a schedule to review monthly/quarterly goals. Friday is always an alternate schedule for me, either hackday or story grooming/backlog work/paperwork etc. I review the goals, AND whether I have been even working on it, using https://takeaim.io data.

keslert 1 day ago 0 replies      
I developed a chrome extension, Hey Habit (bit.ly/heyHabit), to help me with this. I add my long term goals as projects and then set up reoccurring tasks to make them happen.

There's also a web version at heyhabit.com.

pagliara 1 day ago 0 replies      
I'm currently working on an iOS app to address this issue exactly. There's still plenty of improvements I want to make but this is the app so far:https://itunes.apple.com/us/app/agenda-to-do-lists-tasks/id1...

Basically I wanted an app that let me quickly add and organize items into different time periods.

Sir_Cmpwn 23 hours ago 0 replies      
I write down things I want to do but am liable to forget, which are almost always <1 day of work. The rest is in my head and the details are worked out on the fly.

It helps to not worry about racing to a practical product as fast as you can. Take your time and do it right. A practical product will come with time.

shakkeel 8 hours ago 0 replies      
Checkout this book called The One Thing by Gary Keller and Jay Papasan
hollander 1 day ago 0 replies      
Find a coach. Find someone who can keep you on track, someone who is independent, who knows what he or she talks about, who knows what you do and what is good for you, personally and professionally. This is probably a professional (life) coach with IT knowledge (assuming that is your profession), so that means paying for it.
joyeuse6701 1 day ago 0 replies      
Passion planner or bullet journal methods worked for me. Passion planner asks the good, tough questions that get you moving with your project, breaking down from years, to months, to weeks. Bullet journal is much more flexible, forgiving, but not as effective. One can incorporate passion planner ideas and questions into a bullet journal, you just have to do it manually.
obfuscatedgeek 1 day ago 0 replies      
Been trying to do this, tis year and currently using Trello.

Current organization is 52 list mentioning every week and every week has 8 cards.

First 7 cards are individual days of the week, every day card includes a checklist in trello and the eight card is target for the week. Depending on the schedule 1 entry from the target card is made into a checklist item in any one of the day card.

hawkice 1 day ago 2 replies      
Beeminder. Everything from exercise to posture to meditation to work. It's one of the most clever pieces of software I've used, in terms of domain-ideas embedded in it.
hexsprite 1 day ago 0 replies      
Have you tried http://focuster.com?

It automates scheduling your to-do list in your Google Calendar so you're always working on your next top priority.

Don't finish it? It moves it forward in your calendar until you get it done so nothing falls through the cracks.

codingdave 1 day ago 0 replies      
Literally align them -- whenever you make up a to do list, place it under one of your long-term goals. That way, every time you are doing something, you are working towards one of your goals. And if you find yourself putting together lists that do not fit one of your goals, it is a red flag to yourself that you are not aligned.
Axsuul 1 day ago 1 reply      
The key is to develop a habit with your ToDo system. I use Todoist but in order to be successful with it, you have to consistently schedule your tasks as well as postpone any that you didn't complete that day. I also have a recurring task in Todoist scheduled every Monday that reminds me go to through all my projects and prune/schedule/unschedule/delegate.
stkrzysiak 1 day ago 0 replies      
A lot of my long term goals involve daily engagement, so I use a recurring reminder service(http://coach.me) to stay on top of them. The app reminds me to check off items and promotes streaks.
kesor 1 day ago 1 reply      
BulletJournal.com and the companion app that reminds you to reflect and to Think(tm) once in a while.
zi0nman 1 day ago 0 replies      
I use 3 lists: first for the "big picture" long term goals, the second is for weekly goals, and third are daily todo lists. For all my planning I use paper and colored pens/pencils.
drelihan 1 day ago 0 replies      
Easy, construct your daily todos based on your long-term goals list. That is, a task does not even get to sit on your daily todo list unless it supports a long term goal.
aboodman 1 day ago 0 replies      
I have three text files: todo.txt, thisyear.txt, life.txt.
vlunkr 1 day ago 0 replies      
I used Habitica for a few months. It's an RPG but you progress your character by meeting self-defined goals. It's much better if you have a group to do it with.
henryw 1 day ago 0 replies      
I've found OneNote to be very good for journaling and plans. I have a tab for daily journaling for each year, and I have a tab for my current long term goal with steps broken down.
dominotw 1 day ago 1 reply      
This post has me worried this morning. I don't have any long term goals. Curious to see what other people have.
ssijak 1 day ago 1 reply      
Anybody using todoist/rememberthemilk with success? Whenever I try I can not get my self to update it regulary so I stop at some moment.
Kinnard 1 day ago 0 replies      
I'm actually working on my own personal management software in arc, Paul Graham's dialect of lisp.

I will probably open source it in April.

Mostly because I'm the best/only person who can write software that is really for my life. It will of course integrate with many tools.

id122015 1 day ago 1 reply      
Why do you plan instead of living your life ?
diminoten 1 day ago 0 replies      
In lieu of todo lists, schedules seem like they help me get things done better. To back up what people are saying here, I find making the schedule each morning is helpful, even if the schedule proceeds to go completely to shit throughout the day.

Also, I think it's hard to have goals. I prefer systems. Rather than have my primary driver be, "I want to work from someplace other than my home office 3 times each week" (I work from home), I say, "I work from places other than my office sometimes." and then work that into my schedule. That way I'm not checking a box so much as just "being" who I want to be. The externality of a goal is gone, and "Who I am" now incorporates "work from a place not in my home".

I dunno if any of this helps. It sometimes doesn't help me. It sometimes does, though.

contingencies 18 hours ago 0 replies      
Common sense.
jansho 1 day ago 0 replies      
I agree with the others here that constant reflection is critical. But for me, keeping track of resolutions with a calendar to do is a recipe for disaster; good for the first two weeks then eventually it gets neglected.

So for this year, I started thinking about a tracking and recording method that is personalised to my needs, and that includes taking account of good and bad habits. I set up a personal website which is basically a learning log/folio, where the front page displays my five learning projects in arty thumbnails. Aesthetics is really important to me so a good design that I'm proud of is one way to keep me visiting the website.

Let's say that one project is French. Now it's really important to clarify your goals further. It's completely unrealistic for me to be fluent in French by the end of this year so I set a couple of goals, such as studying Candide to the point that I can understand and internalise the meaning without looking at the English parallel text. I emphasise that this goal is only for this year, which means I can still keep going with French next year - so no need to kick myself why I can't be as good as those polyglots.

OK, so far so good, I've got some fancy projects that show to the world that I'm a keen generalist, and goals to clarify their scope. But how do you keep track of them?

Because I've come to like writing, and it's one goal to keep practicing it, I decided to link every goal to my blog. Meaning, I need to write about my findings, achievements etc and tag the post to a goal.

I created a category hashtag and placed it under each goal. So say that one project is Blender 3D and one goal is to get used to the different modelling techniques - my hashtag would be something like #blender3dmodelling. This means that I must write something about blender modelling, which means I must study it and practice it. Otherwise if someone clicks on the hashtag, it will display no posts ... and that looks a bit bad. (That 'someone' is usually me haha.)

So far this little technique has kept me more focused on my resolutions aka learning projects. But it's not enough because there's still the danger of gradual neglect - and I've reflected enough to realise why this happens. What if I have absolutely no time to study Blender 3D because of other commitments? I can see myself paralysed by guilt by July. So, for balance, I decided that every month, I will write a post that reflects the previous month, and realistically set targets for the current month. The reflective part is particularly important as it not only keeps you true to your desire to learn, you're also being honest about yourself and your current situation.

So, that's the gist of it. It's not really scientific, the way I keep tracking and motivating myself with writing and showcasing, but it works for me. But this is an example; you may find it too much or too little or just completely unsuitable. That's OK. For yourself, you need your own method, and this means a great deal of introspection to understand your needs and habits. Good luck :)

jezclaremurugan 1 day ago 0 replies      
Balanced score card!
nefitty 1 day ago 0 replies      
In terms of higher-level concepts, I've recently been thinking a lot about identity-based motivation. This is basically the theory that we should expect, even welcome, difficulties encountered when engaging in activities that are relevant to our ideal future self. The initial step is to elucidate who we want to be, and then bring that identity to mind when we encounter failure. This reframing might be more effective than, say, believing I am dopamine deficient, that I'm lazy or that I'm not talented enough to complete the task at hand, etc. If I know the path to who I want to be (a well-traveled explorer, to use OP's example) will be difficult and I suddenly encounter a difficulty, instead of feeling dejected, the difficulty will motivate me instead, as it is a signpost that I am becoming who I want to be.

Some of this may seem obvious, especially to people who are already super achievers, but I've been finding it a worthwhile way to think about my behavior.

Here are some links if this sparks any interest:



The research conclusion so far is a bit convoluted. I don't know if any popular writers have run with the idea yet.

To sum up:

1. Pick who you want to be in the future (ex: a good friend),

2. Expect to encounter difficulty on the path (ex: my friend needs help moving, it's gonna suck and I'm not gonna be able to work on my project today, but I know sustaining close friendships will be hard),

3. Take actions that will be congruent with your future identity (ex: I went out of my to help my friend move to his new apartment, I did it because every day I try to take advantage of my opportunities to be a better friend)

dredmorbius 19 hours ago 0 replies      
Index cards. Frequent review of projects and goals, much revision of each.
buzzybee 1 day ago 0 replies      
Design documents.
joe563323 1 day ago 0 replies      
partycoder 1 day ago 0 replies      
Setting goals is fine but goals are more attainable through milestones.

Set tasks and tie them to milestones that finally achieve goals.

Any todo list supporting hierarchies can allow you to achieve this. e.g: Asana.

Then you can add more complexity like setting dependencies among tasks, adding dates, priorities, etc.

sigi45 1 day ago 6 replies      
Ask HN: Should I keep working on this project?
10 points by ehnto  5 hours ago   4 comments top 4
taprun 4 hours ago 0 replies      
I think you need to focus on your why? If you're building a portfolio piece, there's an amazing power that comes with "I built a finished product." If you're looking to start a business, there's no sense throwing good money after bad.

Try filling in the blanks here: This product helps ___(type of person)_____ achieve ____(desired result)______ by ____(what the software does)_____.

Here's my first thought: make dashboards shareable via URL, and then create specialized dashboards for people to view, share and bookmark.

Imagine that you made one specifically for surfers in San Diego. Surfers would tell all their friends that apiblocks.com/sandiego-surfing is the page to use to find out wave height, temperature, water quality, UV levels, jellyfish levels and everything else they need to know in order to decide whether or not to go surfing. If you want to make some money, add some ads - you'll have a geographically condensed, topic focused audience (that's like gold). Repeat for a bunch of other geographic areas, maybe do similar things for other interests and you might be a winner. As a bonus, much of the work could be accomplished by automated means (passing in different zip codes and other inputs).

canterburry 4 hours ago 0 replies      

While I personally don't see much use in the particular endpoints you have integrated with, what I do see the need for on a daily basis is API endpoint monitoring.

Modern applications depend on a huge quantity of APIs and this becomes even more true as everything moves to micro services. One endpoint/service going down can break a lot of things as a chain reaction.

There are website monitoring services such as Pingdom but I haven't seen anything dedicated to APIs. You can create a poor man's API monitor with Pingdom (if REST) but once you get inside a corporate network or you need specific authentication, these services don't work anymore.

I can maybe see repurposing what you have built into an API monitoring service which using a dashboards and alerting quickly spots API failure...perhaps?

azeirah 4 hours ago 0 replies      
> HN is pretty much my target market or so I think

Can you think up any real-world use-cases? Definitely try to think outside of the HN crowd, dashboards and data points are very general. Who could this be useful for?

Ask around in different communities, find a few in this list for example; http://promotehour.com/free-list-of-places-to-promote-your-s...

Try to really ask the right questions, instead of asking "what do you think?", ask "would you use this?" and if not, "why?"

Perform market research, why would someone even want this?

hanniabu 4 hours ago 0 replies      
I honestly love this and was thinking of doing the same exact thing. I wanted to make this because it was something I wanted for myself. After bringing it up with friends I found out that they were into it too. The difference with my idea is that you'd be able to 'subscribe' to the info you're interested in and receive an email at preset intervals. To answer taprun'so question, for me I can see this product helping busy/easily distracted people view their daily digest all in one place to save time and prevent link-tangents which waste time.

I always thought of it as a 'Playlist' of information you want to receive. hi/low temperatures for day/forecast, currency/crypto prices, Metro/traffic delays, stock prices, tweets, specific news titles/links, amazon/ebay item price, deal websites item of the day(like woot), today/upcoming holidays, airline price from x to y, job postings, FDA/CPSC warnings/recalls, horoscopes, etc.

As for monetization, you can present adds related to what they're searching for. If their looking up weather, present local ads, stock prices can correspond to trading software/newsletters/funds, deal of the days and flights could be affiliate links, for holidays you can offer affiliates for presents, etc

Ask HN: What's the most interesting URL you've seen?
4 points by Adamantcheese  4 hours ago   5 comments top 4
kleer001 1 hour ago 0 replies      
.life and .club look like they could have been neat additions in the 90's, but I think the domain horse Elvis has left the barn building.
kat 2 hours ago 0 replies      
The .codes amuses me.I like the idea of having my resume on http://kat.codes (although sadly I don't own that url)
mrkgnao 4 hours ago 1 reply      
The Russian Trump spammer named Vitaly Popov had the lyrics to most of Pink Floyd's Money in the URL that he spammed Google Analytics with.
Ask HN: How do I get freelancing projects?
18 points by alinalex  11 hours ago   7 comments top 3
frits1993 8 hours ago 1 reply      
Start building a client base by doing small jobs. Personally I went around looking at forums for people who needed bugs to be fixed on their website. Set your price as low as possible to higher the change of you actually securing these jobs, and then perform excellently.

If you perform well enough, you'll find these clients getting back to you with bigger jobs. Two years after doing exactly this for a period of only a month, I am still working for a large percentage of these clients, and their contacts to whom I was recommended.

Getting the engine started is the hard part here. As soon as that's done you simply have to focus on keeping the quality of what you're doing high.

RikNieu 9 hours ago 0 replies      
If you don't have any personal connections related to your current job, I'm guessing that you'd need to do some cold calling/emailing(with examples of your work) to any potential clients and agencies.

And then there's also those business connections meetups. You could attend a few of those and see if you can find anyone who needs help.

mattbgates 8 hours ago 1 reply      
This is a bit long, as it is my story, which I tried to keep short, but it might help guide you in the right direction. Lets get started.

The very first website I did was for an organization that helped Ethiopian children and I did it for free to gain experience. That experience would lead me into a career of web design. This website was done in WordPress.

The next project I charged a little bit more because I knew more. My boss called me into his office one day and told me he had a friend that needed a website because my boss had heard I was interested in expanding my practices of web design. He said, "Don't be afraid to charge."

So I figured I didn't know a crazy amount but whatever this guy requested of me, I could learn it. I ended up charging him $250 for like 10 pages. I remember spending more hours than I would've liked on it, so if we were to average out the price, I probably made next to nothing, but again: it was experience. The fact taht I could charge someone and someone paid me money to make them a website was the most amazing thing ever! This website was done in WordPress.

I then would revamp the entire website for the company I was working for at the time with the help of a coworker, who also become my fiancee. For obvious reasons, since we were learning and working somewhat on company time, we weren't paid for the project, other than being at work. This website probably boosted sales and helped increase company exposure. Before this website, the boss was using Flash and thought his website was amazing. It really wasn't. The website was done using HTML5, CSS, and Javascript.

Then I had this crazy idea that I wanted a popular website for myself and I had always wanted to create a website, but never had any idea for what I wanted. I was fascinated with jobs, careers, and the workplace. So I created the website and kept working at it. Hours and hours spent on it and many hours are still spent on it. The website is http://www.confessionsoftheprofessions.com and this would teach me everything I needed to know about WordPress to be comfortable and confident enough to actually do business with any company I came across, no matter what.

I began to freelance by looking on Craigslist for people who needed websites. I figured I would go cheaper than the "average web developer". If you read, most are charging like $50 an hour or more. Me? I began charging $12 an hour at first, rising to $15, and now I'm between $20-$30 an hour 8 years later. Why is my pricing cheaper? Because I target individuals and small businesses who really can't afford to pay thousands of dollars for a website. In the beginning, my average price was around $350 - $500, but as my clients got more demanding, I had to raise the price of how much I charged for websites because they are requesting customization and it was constant back and forth in emails -- in other words: after all the emails were done, that was hours already gone there, and I hadn't even started on the website! It took me years to figure out a pricing system I was comfortable with: In the beginning, you lose more money. But as you begin to become comfortable, you learn to charge a certain amount that is fair for both you and your client. Trying to "become a millionaire" off your client is not possible. Most likely, they don't have millions of dollars, so drop the greed and just be fair. They are trying to make a living, you are helping them do that, and in return, they are helping you out.

For every client I meet, I always say these words: "When it comes to pricing, I will always be fair with you and I expect you to be fair with me." I've never had issues with clients paying ever. They don't question me. They don't ask for explanation. I do provide an invoice of work performed. But I don't question their professions and I don't expect them to question mine.

I also tend to be that web guy who picks up the pieces because other "web guys" will just disappear or they keep putting a bandaid on it rather than fixing the actual problem. I can only imagine they did this to keep getting paid. Me? I don't care.. I like to get paid by doing additional genuine work. Not charging the client to pretend I'm fixing their website just to get paid every month. I aim to alleviate my clients from having to spend so much money on a web guy.

Believe me, when they need it, they will turn to you for all the professional advice and help they need and they will pay for it. I have one client who I've built 5+ websites for -- I usually charge her about $850 - $1000 per website. But I mainly make my money through customization: "Hey I want this, I need it to do that." Working on those projects warrants more money because those requests are often beyond what WordPress plugins do. I also charge a minimum of one hour so I've always been the one to clean up and get rid of the problem.

So just a short brief summary of my client list:

1) found through Craigslist: some lady needed a web guy to run her multi-WordPress website -- she ran a franchise and had about 30 franchisees. So I got extra work on the side from those 30 clients.

2) found through Craigslist: I then met a guy whose web guy went off to college and he is an engineer who made a golf training aid that helps people. I've since redesigned his website, which I charged him about $1000 for and about $400 or $500 for yearly maintenance costs. (WordPress updates, adding pages, changing a few things here and there -- nothing major-no SEO, no marketing, no advertising, etc., but I do offer him advice on any of that stuff - I just won't do it for him, unless he needs it and it comes as a separate invoice)

3) found through word of mouth: I moved across the country and my fiancee was working a side job and a guy she worked with was the web developer for this woman who ran a "Paint and Wine" business (the most popular in my town), and he was just tired of keeping up with her website, as he was moving out of state, and needed to find her a web guy. That's where I come in -- he had actually designed the software, so in the beginning, I was charging her a fortune to try and fix his product that he designed in PHP. I knew PHP somewhat, but it kept breaking no matter what I did. I said to my new client: "Listen, I can keep charging you hundreds to thousands of dollars, or we can fix this one-time. I will charge you for my labor and the product, and we can be done with it. And you'll save a lot more money this way." I ended up charging her like $1500 to install an amazing calendar plugin, which did everything she needed, though she had a ton of requests, and with that, I made at least an additional thousand or two with her. If it was any company charging her, it would've been a lot more, but it helped me out, and I charged what I thought was fair. Nowadays, I just update her website every few months and send her an invoice with at least an hour minimum of work.

These are just a few of my clients.. I have a few more, but not worth mentioning in this story. As I have acquired clients, I also built myself a portfolio which I display on my "freelance business website" just to show off the work I've done and show potential clients that I am an actual web developer with a ton of websites under his belt. I also have everything on my LinkedIn page as well. It surely helps build trust and seeing that many websites, they are less likely to question your expertise.

I still get a few clients here and there through word of mouth mostly, but to be honest, I'm exhausted from managing clients, so I no longer seek them out or solicit on Craigslist anymore. You are not your own boss. They are your boss and when they email you, they expect an answer within a few hours. And they expect you to fix any problems they have immediately. Its wonderful and great for extra money in the beginning, but it gets old. So over the years, I've grown tired of maintaining a freelance client base and prefer to just focus on my primary job and my side projects.

Definitely not trying to deter you! It is a great start and I encourage you to do it: start small and learn as you go. As you get more experience, you can certainly warrant charging more for your services. Good luck!

Ask HN: I am sick of being connected, how do you unplug?
7 points by fumar  4 hours ago   7 comments top 7
fiftyacorn 1 minute ago 0 replies      
best thing i done was cancel facebook

i dont mind facebook, but felt it encouraged me to compare my life to others, and thats not healthy. not missing it

would love to ditch my phone too - but unfortunately need it. might get a cheap non-smart phone next

machtesh 31 minutes ago 0 replies      
This may be a bit extreme, but you may want to think about taking an entire day off from all technology one day a week.

As an orthodox Jew I've been doing this my entire life. It feels great and it gives me lots of time to read and see friends and family. Try taking a 24-hour technology shabbat this weekend.

Huhty 16 minutes ago 0 replies      
Go camping and leave your phone off and only for emergencies.
asimov_ 2 hours ago 0 replies      
This feeling happens in waves for me. I have gone through it a dozen times every time I feel burnt out.

What I usually do is:

* Unsubscribe from all mailing lists and newsletters

* Unfollow everybody on Twitter/Facebook/etc

* Stop visiting HN

* Find something worthy to replace all that free time (book, meditation, vacation, hobby, etc)

After a while (12-18 months), these things start to creep in again. I don't have a long term solution.

I wish I were more disciplined and could keep meditating and having a hobby but computers and acquiring information is too tempting.

jf22 2 hours ago 0 replies      
How often do you take time to go on a long hike or bike ride?

How many apps with notifications are installed on your phone?

How many hours do you sit behind a computer screen when you are not working?

itamarst 2 hours ago 0 replies      
Turn data and WiFi off on your phone. Saves battery, too.
wayn3 4 hours ago 0 replies      
my phone can be turned off. when it annoys me, I turn it off.
Ask HN: Do you use your name or a handle online for development?
4 points by tbirrell  5 hours ago   3 comments top 3
0942v8653 4 hours ago 0 replies      
Both. I'm pseudonymous on this account and have a real account for real name stuff. Generally if it's hacker news stuff or Pythonista community or another community where I signed up with this name, I'll contribute with this name. If it's more productive open source work, I'll use my real name. I try not to have direct links from this account to the other, but there are small hints left over, scattered around the web if anyone is curious (please email me if you find them!).

This name is kind of ridiculous and cumbersome, and is in fact designed to be a name you recognize but don't remember.

Unprofessional? Maybe. But the point of what I do on this account is to participate in these communities. Not to make real contributions or serious projects. Not to make things I would show off in a portfolio or something, and not to collaborate with my real life friends.

I'm wary of using the same name for every community. I have different names for different communities, and this helps me keep my "automated-collection digital footprint" pretty low for each name.

Stereotyping a dev community to use pseudonyms is not a bad thing at all. Sure, it's not strictly in our career interests, but it's good for peace of mind. I have some embarrassing comments on here from a year or two ago. That's ok. I was in high school then. I don't have to worry about it being associated with my real name by an employer -- if the employer puts in the effort to find data that connects my two names, then they've put in far too much effort and it seems they're likely to hire me anyway.

There's something to be said for altruistic contributions that don't necessarily keep your own career interests in mind.

I too am interested in seeing what the non-dev audience has to say. I think they may have the same privacy concerns.

Jaruzel 5 hours ago 0 replies      
I am me; I've had my online name for 3/4s of my life, so I rarely draw any distinction, however as I've got older having my real name attached to things of note, seems more important than it did. I guess it's got something to do with leaving some sort of legacy.
I_am_neo 4 hours ago 0 replies      
I don't seek employment, so... anonymous
Ask HN: Is front-end engineering ever going away?
7 points by ud0  13 hours ago   17 comments top 6
digitalzombie 11 hours ago 1 reply      
Uh.. I was full stack engineer and I would rather stay mostly backend than touch front end.

It's just wild wild west when I was still a full stack dev.

There was these clientside rendering framework emberjs, angular, knockoutjs, etc...

What the hell man, now the flavor is fluxjs and reactjs or whatever.

This is on top of html and css being more of an art then a science. Then came along the grid system to fix most of the warts but cross browser compatibility, etc...

I don't believe front end engineer is going away because there is just so much stuff in front end and back end to be for one person. You can be a fullstack but you can't be a master of all of it unless you got no life, no family, etc..

anonyfox 13 hours ago 3 replies      
I really hope for a standardized universal UI to emerge, maybe something like the futuristic screens in Deus Ex games. There just needs to be something like a hypermedia-api on a server, some semantic content markup, and all consumers (browsers, terminals, ...) handle everything else.

As a developer I just want to provide an data/api endpoint and say somehow "this is an universal UI app".

No, Basic HTML isnt enough, and wiring together data into presentable forms over and over again isnt particular fun or exciting after a while. Except you learn a new frontend framework for every project... :)

et-al 11 hours ago 0 replies      
If you're talking about just constructing new JS views, creating templates, and styling them, yes I think that will be relegated a WYSIWYG editor for a designer to weld.

I know people said this was going to happen when Dreamweaver came out, but the languages were still clunky. CSS had barely come out and layouts were done by nesting tables within tables. The machine-created code was shit and browsers were wildly inconsistent. Now we have decent browser consistency between Firefox/Chrome/Safari, CSS grids are arriving, and React component web views are gaining more traction. So in 5-10 years, why can't we have an editor that does all this for you?

Yes, there will always be a need for custom interfaces. So a small amount of front-end folks will remain hand-crafting artisan components (and perhaps selling them on a Wordpress-like market place), while other people will either need to move into design/UX roles, or further down the stack.

mvpu 13 hours ago 2 replies      
Um, no. If you're asking about JavaScript, be warned: it's invading the backend.
dagw 9 hours ago 1 reply      
Depends what you mean by front-end engineer. If you are interested in front-end work I would focus on brushing up on your UX and design skill. I have no particular need for someone who only knows how to implement a front end based on an exact spec, I would however love to have a developer on my team who can actually both come up with and implement a good looking, easy to use front end.
RikNieu 9 hours ago 0 replies      
I don't think so. There would always be a need for specialists.

Maybe full-stack engineers would have an easier time finding employment(as requiters keep on piling up those needs-to-know requirements), but some shops will always value someone who's shit-hot at one specific thing in particular, as opposed to merely competent at a lot.

Remind HN: Chrome 57 Doesn't Trust StartCom or WoSign
5 points by BrandonM  10 hours ago   1 comment top
Ask HN: How do you keep up with tech development and having personal life?
13 points by jediunplugged  18 hours ago   13 comments top 8
michalpt 13 hours ago 0 replies      
I dont know if this is going to help you, but one of the biggest mistakes I did in the past was that I constantly tried to keep up with "cool" programming kids and technologies and wanted to learn everything. You see, you learn something and then 1 month later a new hyped framework comes, and all hipster startup programmers are switching to it (so do you) and you abandon the previous framework you have learned, then try to learn a new one and so on because you dont want to be out. It is like a neverending circle :). So when I finally realized this I decided to stop folllowing trends so much and focus on a certain technology/part of programming and get good at it.

The result is that today I have more free personal time and I am still able to create basically anything with PHP and React by todays standards, even though I realise I probably dont use the coolest technology on the market.

coralreef 13 hours ago 0 replies      
Don't make the mistake of abstracting your life's meaning from what other people value. You don't live their lives.

If you don't care about ML and AI then don't learn it.

If you don't care about education then don't get a masters.

If you don't care about a social life then don't talk to women.

If you're asking if you should do a startup, the fact that you asked means its no.

You need to figure out what you truly value and want, all the details are just noise.

matt_s 7 hours ago 0 replies      
Productivity is about producing something. You can read up on "all the latest" all you want but until you actually produce something with it, consider it just entertainment reading.

You may start to notice that technologies don't change all that much. Sure you may hear about some new shiny thing - the question to ask yourself is will it help you produce something faster, with more quality or help in some way? Or is it just new and shiny?

A lot of your questions focus on what other people are doing... what is it that you want to do?

Specific answers:1. Learn ML and AI for what? what are you going to produce with it? How would that apply to your field? My guess is 95% of software engineers have no use for this since we are doing Information Systems, not science. Where is the line between logic tree and ML/AI?

2. Master's Degree. This is a good way to get into debt. Sure you can tick a box on the resume that states Masters Degree. Try to get your employer to pay. I doubt this will advance your career at all.

3. Get a life - yes - do more of that. There is way more to life than writing software. Find things that interest you outside of tech.

4. Startup: not a way to financial independence. Read stuff on this site - talk to people about what % of companies get to an IPO/buyout stage vs ones that fail (if that is your measure stick)

Keeping up with stuff I answered above - a lot of it is just noise. The way to become financially secure/independent is to reduce your spending and save money. Google Mr. Money Mustache for some good reads on that.

wayn3 7 hours ago 1 reply      
Maybe get a therapist and figure out what you actually want out of life first.

How do I keep up with so much stuff? I learn to set boundaries. If my company slack goes off at weird times and I dont want to deal with it, I turn notifications off.

I get up at 5AM to exercise. Then I do all the work that requires a fresh brain. Until 10AM tops. Then I read things I want to read. Then I babysit whoever needs babysitting at work. By 2PM I'm done with work. I could pretend to be busy until 7PM but I won't be productive anyway, so why pretend? If someone calls me out on it I show them the things I've built while they were putting in "longer hours".

The remaining hours, until 11pm can be spent whichever way I want.

Fitting your 1-4 into one schedule isnt difficult at all. You just have to learn to say no first.

Nobody in the world "needs" access to you 24/7. Not really. If you tell people that you are available during X hours, they will learn to communicate efficiently. It'll be painful at first. For both parties. But they will learn to deal with it after the third time they had to wait for a response for 20 hours because they tried to be inefficient again.

They will threaten you. Absolutely. The social norm is that you shit people tell you to do. Just don't do it. You'll be amazed.

The primary reason a startup consumes ALL your time is because the guy at the top, the CEO, is a 22 year old bumbling idiot who hides his inefficiency behind requiring his employees to be available to him at all times. Kick his butt a couple times and he will learn faster how to be a better boss.

itamarst 7 hours ago 0 replies      
1. Stop trying to keep up with other people. Coralreef's comment is to the point. I know many successful programmers with no bachelor's degree, for example.

2. Having a broad set of technology tools is a useful job skill. But often it doesn't require you to spend all your free time on it. Often just knowing it exists is good enough and that can be done in very little time (https://codewithoutrules.com/2016/04/15/40-hour-programmer/).

3. Working for a startup is not a good way to become wealthy. It's a gamble. If you want to be secure financially you should live below your means and save money.

In general it's perfectly possible to have a reasonable workweek, do fine as a programmer, and still have a life outside work (more at https://codewithoutrules.com/saneworkweek/).

atsaloli 13 hours ago 0 replies      
I make time for the things important to me. This has meant letting some tech things go. I'm on the US West Coast and am working on my own business as a path to financial security for my family (wife and daughter depend on my technical and business success).

When you have kids, you MAKE time for them. It's my favorite time.

alashley 4 hours ago 0 replies      
I actually started asking myself a different question. How do you keep up with tech without having a personal life?

In my case, the answer was, you don't. Unless you want to burn out fast.

s00000 5 hours ago 1 reply      
Ask HN: What are some good technology blogs to follow?
850 points by buddies2705  2 days ago   176 comments top 83
jamesblonde 2 days ago 4 replies      
The morning paper (in Computer Science):https://blog.acolyer.org/
jjude 2 days ago 5 replies      
These are the three technology sites I visit (almost) daily:

1. https://dev.to/2. http://highscalability.com/3. https://www.oreilly.com/ideas

patgenzler 2 days ago 0 replies      
https://stratechery.com/ - best tech blog on the Internet. Nothing related to coding but thorough and thoughtful take on every-day-happenings in the tech industry.
jsmeaton 2 days ago 1 reply      
Steve Yegge was one of the best bloggers I've read. Other than a post from November it'd been dark for a few years. Still a good read though.



forgotpwtomain 2 days ago 0 replies      
yuribro 2 days ago 2 replies      
OpenBSD related - http://www.tedunangst.com/flak/

Weekly aggregations:

- http://chneukirchen.org/trivium/

- http://www.dragonflydigest.com/ (Look for the weekly "Lazy Readings" post)

smcl 2 days ago 0 replies      
Raymond Chen's posts are excellent https://blogs.msdn.microsoft.com/oldnewthing/
toomanybeersies 2 days ago 0 replies      
Troy Hunt: https://www.troyhunt.com/

He writes great articles on security and is the man behind https://haveibeenpwned.com/

erlehmann_ 2 days ago 2 replies      
https://blog.fefe.de comes to mind, but it is in German.

For a weekly HN digest, I read this: http://n-gate.com/hackernews/

neurocroc 2 days ago 1 reply      
I am keeping a mind map of all blogs that I want to read and follow (https://my.mindnode.com/Lr33AxQg1yTrPzYJrAbFD7E6Wr7cM6YyoUfX...)

It's part of a bigger mind map I am making (https://github.com/nikitavoloboev/knowledge-map)

relics443 2 days ago 4 replies      
Coding Horror [1], and Joel on Software [2] are my favorites.

[1] https://blog.codinghorror.com/[2] https://www.joelonsoftware.com/

ddebernardy 2 days ago 4 replies      
John Gruber's blog, Daring Fireball, is pretty good if you don't mind the occasional (ok, near systematic) pro-Apple biais.

Likewise for the Macalope's column.

dmit 2 days ago 0 replies      
Ted Unangst does a great job aggregating links to tech content over at http://www.tedunangst.com/inks/. His own blog is great as well.

Also, previously: https://news.ycombinator.com/item?id=11563516.

geerlingguy 2 days ago 0 replies      
http://hackaday.com Has a lot of good content for IoT and hardware hacking. Lately some spot-on articles summarizing various electronics and RF terminology for the layperson.
scottpiper 2 days ago 0 replies      
From https://summitroute.com/blog/2017/01/07/news_summaries/ , some have already been mentioned.

- Downclimb (my own), for weekly infosec news summaries: https://summitroute.com/blog/2017/03/12/downclimb/

- Bulletproof TLS, monthly, for crypto and TLS news: https://www.feistyduck.com/bulletproof-tls-newsletter/issue_...

- Mobile security news, monthly: http://www.mulliner.org/blog/blosxom.cgi/security/mobile_sec...

- This week in 4n6, weekly DFIR: https://thisweekin4n6.com/2017/03/12/week-10-2017/

msangi 2 days ago 0 replies      
http://joeduffyblog.com is great, albeit it's far from being daily. It has long posts about operating system and programming language design
jyriand 2 days ago 14 replies      
Somewhat related to following blogs. But how do I follow blogs anyway? Is there any good Google Reader like apps, that are easy to use?
heisenbit 2 days ago 0 replies      
http://semiengineering.com/ as I think we are at an inflection point of Moore's Law and it is worth understanding how that plays out at the lower layers of the stack.
idahasen 1 day ago 0 replies      
Dev networks that are part of my daily dose of information

- https://hashnode.com- http://coderwall.com- http://reddit.com/r/webdev/- https://hackernoon.com

rekwah 2 days ago 0 replies      
I would recommend https://hackernoon.com/
mappingbabeljc 2 days ago 0 replies      
I write a weekly AI newsletter called Import AI which is also cross-published to this WP blog. I try to cover a mixture of fundamental research papers and applied stuff. It also includes some OpenAI updates: https://jack-clark.net/
allenleein 2 days ago 0 replies      
My favorites:

1. Freecodecamp: https://medium.freecodecamp.com/2. Hackernoon: https://hackernoon.com/3. The morning paper: https://blog.acolyer.org/4. Codinghorror: https://blog.codinghorror.com/5. a16z: http://a16z.com/6. Ben Thompson :https://stratechery.com/

fauria 2 days ago 0 replies      
I have a public list of engineering techblogs at Twitter: https://twitter.com/fauria/lists/techblogs/members
JCDenton2052 2 days ago 0 replies      
Some of the blogs from my RSS feed, mainly but not exclusively .NET:

Scott Hanselman

Martin Fowler

Coding horror

Fabulous adventures in coding (Eric Lippert)

Zed Shaw (still on my list even though he seems to have largely abandoned tech)

Ayende Rahien

Steve Yegge

Schneier on security

The Light Cone (Brian Beckman)

The Shade Tree developer (Jeremy Miller)

remx 1 day ago 0 replies      
Take your pick from this list here:


OJFord 2 days ago 1 reply      
This list highlights and confirms a mild annoyance I have every time I see (or get recommended) a blog I might want to follow: it's rarely easy to get an overview of historical posts.

Almost everyone seems to go for the 'no summaries, home page is the latest post in full, followed by the one before in full, ...' format.

Notable exceptions mentioned here: antirez (brief summaries) and danluu (list of titles). Both of these approaches are far better IMO.

Fannon 2 days ago 0 replies      
http://www.2ality.com/ for deeper insight in JavaScript and its current development.
watwut 2 days ago 1 reply      
https://dzone.com/ actually technical articles for people who prefer tech over pop and culture.
xylon 2 days ago 0 replies      
LWN.net - news for the Free Software community
benkarst 2 days ago 0 replies      
sureshn 2 days ago 0 replies      
I would recommend benedict Evans weekly news letter , it gives the best news and updates from the tech world. Unlike a blog site which can be monolithic this news letters covers the top tech happenings of the week and it feels very complete for me
vgy7ujm 2 days ago 0 replies      
http://perltricks.com is very good.
Mojah 2 days ago 1 reply      
Self promotion: https://ma.ttias.be

Not daily, but plenty of links to follow-up on.

Alternatively, weekly summary of all things Linux & open source (RSS feed available); https://cronweekly.com

jakubgarfield 2 days ago 0 replies      
I publish 4 weekly digests with only 5 links per each every Monday (so you have one article a day).

Programming Digest - https://programmingdigest.net/

C# Digest - https://csharpdigest.net/

Elixir Digest - https://elixirdigest.net/

React Digest - https://reactdigest.net/

angadsg 2 days ago 0 replies      
Stack Overflow newsletters[1] are great as well. It sends you top questions of the week, both answered and unanswered. Great way to learn small things about things you love. Its the perfect application of "Knowledge should be bite-sized".

I subscribe to RPi, Net Eng, CS, theoretical CS and Code Golf news letters. Any other suggestions?


edit: Added link

acemarke 2 days ago 0 replies      
I wrote a big list of React/Redux-related blogs in a Reddit comment about a month ago: https://www.reddit.com/r/reactjs/comments/5t8loz/what_are_yo... . Most of them aren't daily, but the content is excellent.
madetech 2 days ago 0 replies      
nvartolomei 2 days ago 0 replies      
Not exactly a blog, but worth checking https://www.infoq.com
franverona 2 days ago 0 replies      
I follow a blog/podcast called Scale Your Code (https://scaleyourcode.com/). The host interviews a lot of interesting people like DHH or Jeff Atwood. He didn't post every day, but interviews are pure gold (last one was with Nick Craver from Stack Overflow).
maurits 2 days ago 0 replies      

Specialized in compressive sensing, matrix factorization and machine learning.

Don't let the blue color put you of, the author reads and reviews an unbelievable amount of research every week and maintains a huge repository of papers, implementations, talks and video's.

urig 2 days ago 0 replies      
I pretty much scanned through the entire list of comments and i cant believe no one's mentioned www.hanselminutes.com. That is an excellent podcast and blog from Microsoft's Scott Hanselman who's an excellent interviewer and student ofn technology as well as a mentsch. Highly recommended.
icefo 2 days ago 0 replies      
It's updated monthly but really worth to have in your rss feed http://spritesmods.com/

The guy hacks and create stuff from time to time and it's very interesting to read. It's also more on the hardware side of things (I had to Google what's a shift register and how they work to understand one of the article)

Gammarays 2 days ago 0 replies      
I put together a votable list of most of the sites recommended by HN users so its easier to see which blogs are the most popular/recommended (anyone can vote).


mpiedrav 1 day ago 0 replies      
Specifically on InfoSec, I would recommend:

Krebs on Securityhttps://krebsonsecurity.com

Daniel Miesslerhttps://danielmiessler.com/blog

known 2 days ago 0 replies      
skazka16 2 days ago 0 replies      
No one has mentioned https://kukuruku.co/. We translate popular and interesting tech articles to English. We are also working on letting users write and publish their own posts.
mike-- 2 days ago 0 replies      
davidiach 2 days ago 0 replies      
I subscribe to Benedict Evans newsletter. It's basically a collection of interesting tech related links with commentary.

It's not daily though.


BorisMelnik 14 hours ago 0 replies      
not the normal CS type stuff but:


thelgevold 1 day ago 0 replies      
Blog about JavaScript topics like frameworks and web performance: http://www.syntaxsuccess.com/
joshlemer 1 day ago 0 replies      
If you are interested at all in Scala, lihaoyi's blog (http://www.lihaoyi.com/) is phenominal.
petra 2 days ago 0 replies      
For deeper insight about technology in general, not specifically software: https://www.reddit.com/r/DeeperTech/
perseusprime11 2 days ago 6 replies      
A related question, what tool do you use to manage your feeds? Instapaper is good for one time links, overcast is good for podcast feeds but I am still struggling to find a decent one after Google retired reader.
eDameXxX 2 days ago 1 reply      
The tittle should be:

"How can I become a master procrastinator"


"Websites that can steal all my free time"

inka 2 days ago 0 replies      
https://mysteriouscode.io/blog/ - for stuff around AWS but also FreeBSD and general IT security.
jjuhl 2 days ago 0 replies      
I'd recommend "Embedded in Academia" - https://blog.regehr.org/
ReviewDeeper 2 days ago 1 reply      
You can check https://reviewdeeper.com it provides information about useful but unnoticed apps and other trending topics in the tech world
SodaDezign 2 days ago 1 reply      

A great way to follow interesting subjects (eg. FPGA, Singel Board Computers... )

adamnemecek 2 days ago 1 reply      
Lind5 2 days ago 0 replies      
Semiconductor Engineering http://semiengineering.com/
aslammuet 2 days ago 0 replies      
May this be helpful.http://www.theserverside.com/
bitmedley 2 days ago 0 replies      
Liliputing is quite good for tech news: https://liliputing.com/
Amivit 1 day ago 1 reply      
How do you guys manage all the various blogs to keep up on new posts? RSS? Which tool(s)?
rrobukef 2 days ago 0 replies      

A blog on security, privacy and (foto) forensics.

shthed 2 days ago 0 replies      
http://alterslash.org a readable slashdot digest
sandworm101 2 days ago 0 replies      

It is a niche area but covers an intersection of law, technology, consumer protections and software development.

sciencesama 1 day ago 0 replies      
techmeme.com is a very good collection of all the conversation catchers that are happening in tech industry !
luckysideburn 2 days ago 1 reply      
this site (it is still a pilot project) collects trend words together inside dashboards http://www.congruit.io/... I have written it for fun, because I don't want read tons of blogs :)
lobasaurusrex 2 days ago 0 replies      
I love digitaltrends.com. Good writing and a lot of interesting pieces on new technology.
npguy 2 days ago 0 replies      
sciencesama 1 day ago 0 replies      
any such decent ones for networking ?? networking as in computer networking.
vondelphia 2 days ago 0 replies      
You may want to take all this advice, and create a news feed rss widget on http://start.me - that's what I just did.
yostrovs 2 days ago 0 replies      
Medgadget.com for medical tech
RayofLight 2 days ago 0 replies      
techmeme.com good to get the tech news of the day.
icemelt8 2 days ago 2 replies      
purpleidea 2 days ago 1 reply      
I'm a big fan of "The Technical Blog of James" https://ttboj.wordpress.com/ but I'm pretty biased. Check it out and LMK!
sametmax 2 days ago 1 reply      
If you can read french, http://sebsauvage.net/links/ is a nice generalist IT blog.

I'm the author of http://sametmax.com. And I like to brag, saying it's probably the highest quality blog on python. And I mean it. But it's in french and also talk about porn so you've been warned.

DrNuke 2 days ago 3 replies      
I am in awe of many resources you are sharing here now but my question is how they are going to monetise their effort? Some of these are run on a volunteering basis and while it is good for the community, I am not sure it is healthy and sustainable in the long term. Any sort of funding provided?
Ask HN: What are some examples of good code?
310 points by amingilani  1 day ago   160 comments top 64
runeks 1 day ago 1 reply      
Writing code is really a modelling problem: you write down code that describes the model that's inside your head. When you're done, you're left with both working code on a hard drive, and a new, better model inside your head, because you understand the problem better.

So, reading someone else's code can be like reading a model of something that has gone through dozens of iterations, where the bottleneck isn't really understanding "the code", but understanding the thing that is modelled, which the people writing the code are intimately familiar with, unlike you[1].

In my opinion, developing this modelling skill, in yourself, is much more important than watching the result of someone else exercising their modelling skill. A lot can be learned from observing someone else's solution, but this will always be secondary to learning how to craft your own.

[1] For example: try reading compiler code. People have been writing compilers for so long that reading and understanding this code isn't about understanding the actual code, but about understanding how a compiler is modelled (scanning, lexing, parsing).

rdtsc 1 day ago 4 replies      
Not Ruby but for C code, I like Redis's code:


I don't personally use the product, but I find the source well written and always share it as an example of nicely done C code.

Here is some nice Erlang code I like -- network packet parsing:


Notice how concise this is:

 codec( <<4:4, HL:4, ToS:8, Len:16, Id:16, 0:1, DF:1, MF:1, %% RFC791 states it's a MUST Off:13, TTL:8, P:8, Sum:16, SA1:8, SA2:8, SA3:8, SA4:8, DA1:8, DA2:8, DA3:8, DA4:8, Rest/binary>> ) when HL >= 5 -> ...
This is due to the beauty of binary pattern matching. You could kind of do it in C by casting to a struct but notice here it is also calculating header length (HL) as part of the match operation. So it can do a bit more than just casting a binary blob to a struct.

Another thing here is that it is also big endian by default so there is not need for htons(), htonl() and such functions sprinkled throughout the code.

emodendroket 1 day ago 15 replies      
This stuff about "reading code" is basically bullshit and nobody does it. http://www.gigamonkeys.com/code-reading/

> Seibel: Im still curious about this split between what people say and what they actually do. Everyone says, People should read code but few people seem to actually do it. Id be surprised if I interviewed a novelist and asked them what the last novel they had read was, and they said, Oh, I havent really read a novel since I was in grad school. Writers actually read other writers but it doesnt seem that programmers really do, even though we say we should.

> Abelson: Yeah. Youre right. But remember, a lot of times you crud up a program to make it finally work and do all of the things that you need it to do, so theres a lot of extraneous stuff around there that isnt the core idea.

> Seibel: So basically youre saying that in the end, most code isnt worth reading?

> Abelson: Or its built from an initial plan or some kind of pseudocode. A lot of the code in books, they have some very cleaned-up version that doesnt do all the stuff it needs to make it work.

tmnvix 1 day ago 1 reply      
You'll find some great examples in a variety of languages on The Architecture of Open Source Applications site:


symisc_devel 1 day ago 0 replies      
SQLite/Fossil source tree is a piece of art, practically every single function is well commented, written in clean C, easy to read. DRH has done an astonishing work. I'm impressed by his work. In my company where we do embedded C, the programming style is based on him. https://github.com/symisc/
wayn3 1 day ago 0 replies      
Just reading the first couple replies to this thread, there seems to be some confusion regarding what code quality IS. Two broad categories:

1. Micro code quality. Looking at a single file, someone makes statements about code style - spacing, variable naming, etc. - things you would find in a style guide like PEP8.

2. Code Design. Testable code, the absence of edge cases where unnecessary (for example, turning the root of a tree into an edge case) and broader design questions; and things like correct choice of algorithm.

Code quality kind of encompasses both, but its obvious how you can be bad in one category and still be really good in the other. Really good code is good in both, but if I had to pick, I'd like to be good in category 2 first at the expense of 1. Assuming 2., 1. can be improved easily.

I'd like to say something about concise code as well. Concise code, or code that does a lot in very little lines can be treacherous. This can be fun when your team is all very senior C programmers who actually understand all this code. Then, brevity is good, but when you work in open source, or write software that has to be read by people who are inferior to you, being concise may not be the way to go.

This is almost similar to premature optimization, but not really. People who write really good C code optimize - but not prematurely. They just know that what they're doing is efficient.

dualogy 1 day ago 2 replies      
I took a quick look recently at id software's GitHub repos of their old blockbuster games (Wolfenstein, Doom, Quake) and gotta say it was the first-ever C codebase I encountered that I found eminently readable.. (whether it's "good C", I can't assess though)
bmaeser 1 day ago 2 replies      
https://github.com/pallets/flask and https://github.com/kennethreitz/requests

both in python, but beautiful code, well structured and you would not need any docs, just read the code

preordained 1 day ago 0 replies      
I don't even like Python (Ruby guy myself) but the various stuff Peter Norvig has done (typically in Python) for demonstrating coding problem solutions. I think you benefit the most if you try doing the problem yourself (like the Advent of Code series), and then compare your solution to his.

What I've often found is that Peter is just great at isolating the minimum required model/data structure. More often than not, when I notice his solution has half the code of mine, it's because I used the wrong model.

JCDenton2052 1 day ago 3 replies      
You can learn what constitutes good code by reading bad code- it is safe to assume that there is a lot more bad around than good! Some flags:

-God objects (they do everything!) and their opposites, freeloaders

-1000-line methods

-No unit tests

-Not-invented-here syndrome, otherwise known as "let's write our own array class!"

-No separation of concerns (everything mashed together)

-Not concerned with issues such as performance, maintenability and security

After you look at too much bad code (which, by the way, will include your own), you acquire a very instinctual understanding of good practices.

mathewpeterson 1 day ago 2 replies      
I've read that Redis (https://github.com/antirez/redis) has well written code, in C.
gbog 1 day ago 0 replies      
I like most the python code written by Norvig in http://norvig.com/python-lisp.html and other parts of his site. It's very expressive and simple. Real code will have much more corner cases and logging and error handling crust but still should tend to this simplicity
msinghai 1 day ago 1 reply      
A few weeks ago, I spent some time in reading O'Reilly's Beautiful Code (http://shop.oreilly.com/product/9780596510046.do). The book is essentially a collection of essays from various programmers describing what they think of as beautiful code.

I particularly liked Brian Kernighan's description and implementation of a regex matcher, and Travis Oliphant's discourse about multidimensional iterators in NumPy.

Worth a read.

elvinyung 1 day ago 1 reply      
I really like Unicorn[1]. It's a very well-architected webserver with a nicely structured codebase. Reading the code has taught me about some neat tricks, e.g. self-pipe trick, and a lot about `fork`.

Additionally, I've on occasion consulted the Linux kernel and PostgreSQL repos. Would recommend, although I'm definitely either lying or very ignorant if I said I was familiar with them.

1: https://github.com/defunkt/unicorn

richdougherty 1 day ago 0 replies      
I love reading Oleg Kiselyov articles/papers. Just a few lines of Haskell or ML and some amazing concept is unlocked. A great exercise is to port some of his code to a language of your choice.


zubat 1 day ago 1 reply      
The implementation of Project Oberon. It is so sensible that it can be hard to notice the magic.


irfansharif 1 day ago 0 replies      
I've found the google/leveldb[1] source code to be immensely educational, authored by Jeff Dean and Sanjay Ghemawat. A relatively tiny codebase at that, used virtually everywhere and the basis for facebook/rocksdb[2].

[1]: https://github.com/google/leveldb

[2]: https://github.com/facebook/rocksdb

dangoldin 1 day ago 1 reply      
One of my favorite simple examples of what clean and elegant code can be is Peter Norvig's spellchecker: http://norvig.com/spell-correct.html

It's in Python and a single file but it comes with a wonderful description and shows how a complicated task can be broken down into a few small and powerful functions.

albeebe1 1 day ago 2 replies      
I don't have an example to give, but i can offer this.

During the prototype phase, anything goes, speed is paramount, you just have to make it sort of work. Don't get hung up practicing pretty looking code during this phase.

You should always practice, but don't get hung up.

Prototype given the green light? Ready to dive into the build phase?

I'll say this, google for "coding style guide"

keithb- 1 day ago 0 replies      
I'm not sure I understand this idea. By "read code" do you mean run the program in your head? As in, "start with main(), follow this loop, go to func()..."? Because if that is the case, then I think it is really debugging not reading. It would be great to debug projects and there are many projects that include unit tests which can help guide engineers along a slow path to greater understanding.

Personally, I like writing code and borrowing ideas from other, better engineers. I also like my code to be clean and without cruft: https://github.com/keithb-/Valley

But I don't even know if I could "read" my code. It's a web app; there isn't a main(), there isn't a loop. In order for someone to read it, they would need to mentally "send a request" which means they need to somehow have the concepts or the context in their mind when they sit down with the source code. I just don't know how that is supposed to help an engineer, regardless of age or experience.

abecedarius 1 day ago 0 replies      
At the top of https://github.com/darius/code-canon I collected a list of other places people have answered this quesion. (The rest of the page is mostly a list of books with worthwhile code, because I'd already written it and because it's harder to think of code outside of books that I can recommend as easily.)
userbinator 1 day ago 0 replies      
UNIX v6 source code:


A tiny C-subset JIT:


It might even be controversial to suggest these are examples of "good code" today, because the majority of code I've seen lately seems to be overly verbose and complex. In contrast, these are extremely simple and concise for the amount of functionality they contain. I think this style has unfortunately disappeared over the decades of promoting lowest-common-denominator so-stupid-even-an-illiterate-could-read-it coding styles and enterprise OOP design-pattern bloat-ism, but when I think of "good code", I don't think of Enterprise Java; I think of code which, upon being told what it does, makes you think "wow, I never thought it would be so simple."

bebop 1 day ago 0 replies      
I always enjoy digging into django-rest-framework [0] when I need to. It is IMHO one of the best idiomatic pieces of python code I have read.

[0] - https://github.com/tomchristie/django-rest-framework/

ainiriand 1 day ago 0 replies      
It strongly depends on what are you looking for. 2 examples:- Git source code is 'almost' perfect. It is a good example.- Symfony source code. Good example of modern web code. Great collaboration and documentation.
ysavir 1 day ago 0 replies      
At the end of the day, good code is code that solves your problem. Trying to define "good code" without considering the problem will not deliver much punch.

If we're talking a small application, such as a new startup, writing efficient and optimized code is hardly a concern. In this case, good code means flexible, easy-to-change code. The code must make it easy to modify existing features and add new ones.

Compare that to, say, Google's search. The feature isn't evolving much anymore, in terms of functionality, but it needs to be as efficient and optimized as possible, considering the bulk of data it needs to read through, and the immense traffic it gets every second. Sure, you still want flexible code, but speed is critical.

If we're talking an open-source project, the most important part could very well be documentation and ease-of-read. when you have dozens to hundreds of people writing new features, making optimizations, and solving bugs (in their free time and without compensation!), quality of communication takes on a new significance.

These are, of course, simplifications, and the accuracy can be debated (as these situations always have an incredible variety of factors), but the point is that "good code" is not something that can be defined in a vacuum: it can only be defined in terms of the situation at hand.

scandox 1 day ago 0 replies      
I'm teaching myself C (pure hobby) and I really liked these codebases:



The obvious caveat here is that I have no idea what makes a good C codebase. What I liked in both was I was able to:

compile and run them easily

make tiny changes and observe them easily

read and understand a reasonable portion of them

enjoy the odd comment here and there

panic 1 day ago 0 replies      
This thread from a few years ago is worth a look: https://news.ycombinator.com/item?id=7602237
ibnudaruaji 1 day ago 0 replies      
I personally love xyncro's codes. Their writers are so obsessed with comments, clarity, and consistency across their repositories.

For example, you can see https://github.com/xyncro/freya-optics/blob/master/src/Freya... and can immediately see the clarity and the consistency of the writer.

herbst 1 day ago 1 reply      
If you are into ruby/rails already start reading internels instead of docs whem using rails. Rails has a very nice ans clean code base and they do a lot to keep it that way
jetset15 1 day ago 1 reply      
I highly recommend reading this book: https://www.amazon.com/Refactoring-Ruby-Jay-Fields/dp/032198...

Not only does it contain great code snippets but it also covers repeatable techniques that will ease your life as a ROR programmer immensely.

fsloth 1 day ago 0 replies      
Read whatever you find interesting. The point is to familiarize oneself with various ways to implement things. How to know what is good code? Fuck "idiomatic" - usually the code that is simplest and easiest to understand is the best. Towers of obscure abstraction for it's own sake are usually an indicator of poor engineering and poor taste.
gigatexal 1 day ago 2 replies      
Upvoted the op. I'm learning Java so if anyone has some particularly good and idiomatic Java (Java 8 preferably) that'd be awesome.
the_arun 1 day ago 0 replies      
I always liked code written by Jersey team - https://github.com/jersey/jersey. It is clean and legible. Though it is Java (not Ruby as your question mentions) IMHO The concept of "Clean code" is language independent.
raesene6 1 day ago 0 replies      
If you're working in Rails then I think you can get a lot of benefit from reading/writing some "pure" ruby code. Rails has a lot of its own ways of doing things, so it can be nice to see how to solve problems without using it's help.

For things to read, these books are a little old now but I liked them . https://www.manning.com/books/the-well-grounded-rubyist-seco...

and http://eloquentruby.com/

Dowwie 1 day ago 0 replies      
For Python, check out the Pyramid web framework: https://github.com/Pylons/pyramid
m23khan 1 day ago 0 replies      
To me, good code not only means smart/savvy logic+architecture, but it also means that it is equally well-documented.

Therefore, for starters,

For scripting language such as Ruby, check out Satish Talim's Ruby tutorials (URL: http://rubylearning.com/satishtalim/tutorial.html)

For compiled language such as Java, check out a recent version of 'Big Java' from your local library.

mastazi 1 day ago 0 replies      
I remember reading years ago an article [1] on "Communications of the ACM" that explained why hwpmc's code [2] is an example of beautiful code. The article had a great influence on me; I recommend reading it.

[1] http://cacm.acm.org/magazines/2008/7/5379-kode-vicious-beaut...

[2] http://fxr.watson.org/fxr/source/dev/hwpmc/

antoaravinth 1 day ago 1 reply      
Not ruby, but Javascript.

Have a look at underscore js source:


I really loved it! Especially those _ functions are small, concise and easy to understand as well. Very good codebase. (very good example of functional programming concepts)

carapace 1 day ago 1 reply      
I really like the (JS) code for the Turing Drawings art app.


house9-2 1 day ago 1 reply      
Not exactly reading code but if you are interested in rails and ruby you might want to checkout:

- Ruby Tapas: https://www.rubytapas.com/- Destroy all Software: https://www.destroyallsoftware.com/screencasts/catalog - looks like it is a bit more expensive than it used to be, but there is a lot of good stuff in those first 5 seasons.

nathan_f77 1 day ago 0 replies      
I've spent the last 4 days reading through the parallel ruby gem [1] and contributing some changes.

It's been a good to refresh my memory about concurrency in Ruby, and Michael Grosser is probably the most responsive maintainer I've ever worked with. Really good reviews and suggestions on my PRs.

[1] https://github.com/grosser/parallel

timthelion 1 day ago 2 replies      
I was very impressed with the sorce code to this application: http://florence.sourceforge.net/english.html

Nothing groundbreaking, just basic OOP code, but it was unique in that I started reading the source code and understood it quickly.

coleifer 1 day ago 0 replies      
Why, my own of course! Peewee[1] is a lightweight ORM, and Huey[2] is a task queue.

[1]: https://github.com/coleifer/peewee

[2]: https://github.com/coleifer/huey

tboyd47 1 day ago 0 replies      
Great question. I would say just read the source of whatever libraries you like to use, and let your inner sense of "smell" guide you.

Since you mentioned Ruby, start by reading Rails itself. For all the hate people have for it, I believe it really is a solid exemplar of above-average code. Reading through the ActiveRecord source just after Rails 3, and seeing the way it was semantically organized by feature via included modules, was an inspiring moment for me as a coder. It was probably the first time I'd seen code that was simultaneously practical, modular, and readable.

You should never trust people's statements about what techniques are good and bad in a language. It's called "code smell" because you can judge it for yourself without having others dictate a judgment for you. Just like you can decide for yourself whether something smells bad or good.

hkmurakami 1 day ago 0 replies      
I've been told by several people that they look to Flask as well written, well designed code that everyone can learn from.
snissn 1 day ago 0 replies      
Jquery source is great, how i learned a lot of javascript. Not a rubyist but I'm sure the RoR source is good too!
bigjimslade 1 day ago 0 replies      
I found DPDK and FreeBSD's pkg package manager to be very clean and educational.

Reference http://www.dpdk.org and https://github.com/freebsd/pkg

lee101 15 hours ago 0 replies      
in terms of rails code https://github.com/coderwall coderwall is a well used/known blogging site for devs
cathartes 1 day ago 1 reply      
Not Ruby--but pretty all of the code I've seen from Charles H. Moore, the "inventor" of Forth. His code tows that fragile line between self-documentation and brevity. It inspires me, giving me firm reminder that computer code can be Art as much as Science.
niilohlin 1 day ago 0 replies      
The kickstarter app is open source and has amazing code quality: https://github.com/kickstarter/ios-oss
ankurdhama 1 day ago 0 replies      
One of the most important attribute of good code is that it should be easy to extract "How the problem is broken down into smaller problems and how the solutions of the smaller problems are combined to solve the original problem".
personjerry 1 day ago 0 replies      
Facebook's open source C++11 library: https://github.com/facebook/folly
lkrubner 1 day ago 0 replies      
This was also asked a year ago, and I pointed to Zach Tellman, and that comment was upvoted by others. I'll post the same again. Because he always has excellent reasons for the decisions that he makes, I find it interesting to read his code and try to figure out why he made the decisions that he did. This is in Clojure:


Also, it is fascinating to consider how Go routines were implemented as part of Clojure core. Huey Petersen wrote a fantastic analysis of how state machines were used to implement Communicating Sequential Processes:


You can read along while looking at the source code here:


This is a great implementation of Communicating Sequential Processes, first described by Tony Hoare in 1977:


This is the same technique that Javascript/NodeJS uses to implement its async.

smashingweb 1 day ago 0 replies      
Your post inspired me to inspect element to see the front-end code on HN only to find out the layout is all tables...
_0ffh 1 day ago 0 replies      
For C++, I think Jules Storer's code might be worth a look.
z3t4 1 day ago 0 replies      
Any code that, when looking at it, you know exactly what it does ...
GnarfGnarf 1 day ago 1 reply      
Donald Knuth, "Literate Programming", tangle/weave (https://en.wikipedia.org/wiki/Literate_programming).

The same source can produce compilable code, or formatted comments.

bandushrew 1 day ago 0 replies      
Check out the WASTE text API, its written in C and its very nicely done.
dorfsmay 1 day ago 0 replies      

A single file running both in python 2.7 and 3.

HugoDaniel 1 day ago 0 replies      
Just Nothing-- ^ Haskell
pan69 1 day ago 2 replies      
Sorry, I don't have a link to some beautiful code.

I assume that as a developer you are interested in solving (business?) problems through the act of writing software?

It isn't much different than being a painter I guess. To be able to be a good painter (or to be considered a good painter) you first need to have a good grasp on how to use the brush and how to handle paint (e.g. oil paint), i.e. you need to learn the technique. The more versed you become with the technique the better you will become at painting, or, over time you will become better at painting what you intent to paint, to paint what's in your minds-eye because you don't have to think about the brush and paint anymore.

When it comes to software you first need to have a good grasp on programming. This means you will need to spend time practising the act of programming. Using two languages that are very different from each other might be good. E.g. learn an imperative and functional language. In your case this might e.g. Ruby and Lisp. Your programs will need to interact with other systems so you probably need to learn about operating systems, databases, queues, networking, etc. You probably don't have to be an expert in everything but being a good all-rounder will certainly be beneficial.

Over time you will see that it becomes easier to think in solutions of the bat rather than focusing on how you're going to solve a problem. This is basically what is being referred to as experience.

So, to be a good developer you need to put in the effort and you need to put in the time. There usually aren't any short cuts. I've been doing this professionally for over 20 years and I'm still learning every day.

Ask HN: How would you set up national certification for software engineers?
38 points by jayfid  1 day ago   69 comments top 26
fsloth 1 day ago 2 replies      
A professional certificate is not a quality grading tool, it's a pricing mechanism.

Thus the demand for the certification needs to come from the selfish needs of the certified profession.

First requirement is that there is an oversupply of qualified candidates. As the demands for software engineers shows no signs of abating I would claim attaining this first requirement would be quite hard. On the other hand, if supply of eligible candidates exceeded demand we would have a certification program done almost by itself - unless the big tech incumbents fought terribly against it, of course.

jleask 1 day ago 1 reply      
I'm a Chartered Engineer in the UK and no employer has ever cared. Perhaps they might if I worked in a safety critical arena such as aviation but certainly not in suit and tie business software land.

The problem is that although people moan about rubbishy software it very rarely physically hurts anybody and can be fixed in future releases. This means people are unwilling to pay the extra cost of software being more mature and 'engineered' on delivery. There's a lot of software that would be not be economically viable if it was to be held to a higher standard. If a bridge failing could be guaranteed not to hurt nobody and could be put right in a day or so but be like 1/10th of the cost structural engineers would be held to a lesser standard to.

That said, the financial cost of poor security that comes from a lower accepted quality may change what is acceptable over time for internet facing software. Even that is seemingly a long way off, look at the actual consequences for recent privacy and security breaches.

Raed667 1 day ago 2 replies      
Here is the Tunisian approach:

1- Let private and public schools be. They can issue their engineering diploma as they like (to a certain extent).

2- Have a national committee that evaluates graduates and gives "national diploma of engineering" based on a number of criteria.

3- Watch the committee slowly become irrelevant as the private sector companies don't care about the national diploma and just wants qualified people.

spacemanmatt 1 day ago 1 reply      
I wouldn't. Software development is not fundamental. It is a blended trade incorporating art/design/marketing with engineering. If it were something that could be nailed down like plumbing I might could see it, but currently software developers are a rather diverse group serving a diverse market.

Edit: I would be curious to see, if more people are willing to indicate their years of field experience in this particular thread. I'm crowding 23.

diafygi 1 day ago 7 replies      
Do what they do for all other engineering fields: require a certified engineer sign off on a product delivered to a regulated entity, and be able to hold that engineer criminally liable if someone comes to harm from the product they signed off on.

The quality of software for lolzcat apps could remain shitty, but the quality of firmware for FCC approval would go way up.

In order for quality to increase for infrastructure software, engineers need to risk going to prison. It worked for civil, chemical, mechanical, etc. engineers. A lot of people died on shitty bridges before they started locking shitty engineers up. Software engineering will be no different.

gregjor 1 day ago 0 replies      
It's been done several times. For example:


No one bothers or cares much. Just call yourself an "engineer" if you want to.


mikekchar 1 day ago 3 replies      
I would prefer an apprenticeship system. Possibly have several levels. To get to the next level you would have to create an independent project that you submit to the committee. The committee would review it and then interview you. This would culminate in a master-level project at which point you would be allowed to refer to yourself as a "master programmer".

As others have said, there are already engineering societies and you can become a professional/certified engineer but there is not really much demand at the moment. I'd really prefer trying to set up a parallel system that achieves other goals (improving the overall ability of programmers).

am_yc 1 day ago 0 replies      
Kenya tried to introduce such a law last year, but the community quickly shot it down. some of the issues were

1. what makes a certified software engineer? - eg. will embedded, back-end guys, front-end guys, SREs, have similar certification processes, or will they differ, and if they differ, what happens when someone, wants to move?

2. who does the certification, the community or some bureaucratic board?

3. what guarantees that the certification process keeps pace with the ever changing landscape?

4. what guarantees that those with the authority to certify don't use it selfishly?

mvpu 12 hours ago 0 replies      
Ugh. If you really want to do this, try a whole bunch of nasty heuristics on github profiles - analyze how "carefully" they code (kind of apis they use, coding style, defensive programming, etc.); how much care they take polishing their projects (frequency and type of commits, comment sentiment, refactoring, etc.); how well they write documentation and unit tests, and such. It would be an interesting academic project, but I doubt you can really create an acceptable scoring model out of it.

In many ways the "certification" for software engineers is a misnomer. For me, github is a certification of sorts - a (biased) view: good engineers code for passion not money. I'm sure there's lots of good engineers that don't have a github, but I prefer those that do.

danielhooper 1 day ago 1 reply      
I can imagine it now. An alternate reality where all programmers are "certified software engineers" except for a handful of hobbyists. I log onto hacker news, click on the top article, and read about how "certified" programmers cannot fizz buzz.
watwut 1 day ago 2 replies      
I would not. As annoying as competition with a lot of people is, it is better then industry wide gatekeeper and resulting politics. IMO, if you think you have good test to distinguish between good and bad, build a company around it.
johan_larson 1 day ago 0 replies      
Wait for something to go very wrong. You want flaming wreckage, the lights going out state-wide, or at least a major business failure. And the problem has to be software. Then when the politicians are flailing around looking for something, anything, to do about it, point out that other safety-critical areas require designs to be done by certified engineers who have to meet training and practice standards. There is no reason something similar couldn't be done for software, and indeed a lot of engineering schools now offer software engineering programs. Require that all designs for life-critical software be done by certified software engineers. Maybe expand it to all software that handles more than $1MM/year, too. Grandfather most existing practitioners, say those with an undergraduate degree in a relevant field.
arjie 1 day ago 0 replies      
I wouldn't. It's not necessary and will be co-opted by people who care too much about irrelevant stuff and not enough about delivering.
nl 1 day ago 0 replies      
1) I'd move to a country which I wanted to be forced to import all its software

2) I'd propose a tiered system of software development licenses, involving passing tests such as "sort this linked list". Preferably do them on a whiteboard, just like in the real world.

3) I'd forbid access to a compiler to anyone without their software development licenses.

Or maybe I'd just go with an amorphous mess of university degrees, short courses and on-the-job experience.

randcraw 1 day ago 0 replies      
Do you want to certify someone's mastery of S/W dev techniques? Or their compliance with a S/W dev process? Or establish S/W standards for deliverables?

Frankly only a guild cares whether you're a master craftsman. I see greater value to customers in the latter two, especially if S/W products were held to a standard of 'quality', esp efficacy and reliability. Then the S/W dev process could adopt a quality assurance process like that of housing construction, in which a building code exists and defines metrics of product performance that must be met by the builder through iterative inspections and a formal compliance process.

Should such a process exist for all software? No. But I believe it should for some software products, like those in automobiles, medical devices, and essential infrastructure, etc. Do such formal dev processes benefit from their practitioners having some sort of formal certification themselves? Probably not. It's the process and product that's needs certification, not the craftsman.

throwaway2016a 1 day ago 0 replies      
The problem with software is that there are thousands of certifications and none of them have any authoritative weight. If you are a security engineer there are 4+ different certifications you can get and almost none of them prove you know your stuff, they are just excuses to charge you per year for "Continuing Eductation Credits"

But on the other topic. The PE, which is the engineering certification in the US has a software specialization already. And I don't plan to get it. Even though I meet one of the most difficult qualifications which is having a degree from a school where Computer Science is accredited as an engineering program. Same reason my wife who is a Process Engineer (an electrical and/or mechanical engineer that engineers processes and machines for mass production) doesn't plan on getting her's despite having a Master's degree in biomedical engineering. No employer is looking for it and it is absurdly expensive in both time and money.

I think this XKCD applies:https://imgs.xkcd.com/comics/standards.png

leonth 1 day ago 1 reply      
First of all, determine what value you bring with the certificates to various parties. In certified fields such as law, accounting, medicine, service providers benefit from high barrier of entry to market and high quality of the profession, whereas customers benefit from consistent quality and check & balances by law (via revocation of licenses if found to do malpractice). Governments benefit from increased surveillance and ability to regulate practices.

In software development, these and other benefits are not as critical or very hard to achieve even with strong enforcement.

yason 1 day ago 0 replies      
When the actual behaviour of software diverges from its expected behaviour we call it a bug. The reason we have bugs is that we humans are very bad at reasoning about the expected behaviour and projecting the actual behaviour of a computer program, and that is because of the humongous complexity that is involved.

Unbounded complexity is a distinct trait of software. The most important, most regulated and most prestigious software engineering tasks are hands down mostly about doing relatively simple things but controlling complexity. To a lesser degree, when writing code every programmer is actually working to control complexity.

Once things get complex then nobody, not even the brightest brain, can get anything done anymore. So the first priority is to actually avoid too much complexity and to reduce it further will cost time and money.

This means we can do simple things well if we want to. We do this for narrowly scoped projects such as aviation-grade software, rocketry and medical software et cetera. It costs, and we can do it, but that's only because we already slashed out most complexity out of the window before we even started. Instead of general-purpose software we're writing very specific-purpose software.

Using the same principle but working on top of abstractions we can do complex things well in software, too. But those always come with a caveat about when and where the abstraction might fail. Most software is like this but that is also the sort of software which is no longer bridge-building grade. We don't build bridges whose design is theoretically sound given a few hasty assumptions, but with the possibility that when those assumptions might fail the bridge would come down. Certified software engineering can't fix that because they would have to start from the ground up to cover all their bases and then they couldn't get very high from there.

Certification is no silver bullet. Complexity is already managed where absolutely necessary and where there is the money to back it up. Requiring a certified engineer with legal responsibility in the general case would just make most software development stop entirely because anyone with the slightest understanding of programming would never sign off the software we currently want to run, and writing properly engineered software to handle what we currently want to run would be just prohibitively expensive.

Entangled 1 day ago 0 replies      
Introducing politics is the best way to corrupt a system.
kobeya 1 day ago 1 reply      
Why would you want to do that?
pesfandiar 1 day ago 0 replies      
A certificate is barely anything more than a hoop that employers make prospective employees jump through. In the current job market, it's very unlikely to catch on.
duncan_bayne 1 day ago 0 replies      
I wouldn't. See:


... for an explanation of why.

mordant 1 day ago 0 replies      
I wouldn't.
yarper 1 day ago 0 replies      
A set of good engineers vouching for someone is about as good as it gets.
billpg 1 day ago 0 replies      
I'd make it an international certification.
HeavenBanned 1 day ago 3 replies      
As a Software Engineering student, I can't decipher whether the comments here are sarcastic or honest.
Paypal Horror Story 40k Frozen No Answers
394 points by sabslaurent  2 days ago   237 comments top 33
JumpCrisscross 2 days ago 5 replies      
Under U.S. federal law, PayPal is not a bank [1]. This is important. From the government's perspective, you give PayPal money and then PayPal gives you money. Between those events, it's not your money. PayPal has enormous discretion around what they can do with those funds, how and under what circumstances they get to decide to give it to you and if they get to keep it forever.

What state do you live in? Do you do business through an entity, e.g. an LLC? If so, where is it registered?

PayPal is, varyingly, registered as some form of a money transmitter in many states [2]. While your federal protections are probably limited to antifraud, protections you're probably outside of (PayPal has good lawyers--you agreed to surrender lots of privileges when you opened an account), there may be state regulations you can use to, if not force action, encourage it.

Going forward, I tend to consider any business using PayPal for mission critical processes as being negligent with important risks. If you can't avoid using PayPal for certain lines of business, set up a nightly sweep from PayPal to a proper bank account.

[1] http://www.zdnet.com/article/fdic-decides-paypals-no-bank/

[2] http://law.bepress.com/cgi/viewcontent.cgi?article=1153&cont...

Disclaimer: I am not a lawyer. Only a lawyer can give you good legal advice. Don't take legal advice from Internet comments.

sabslaurent 1 day ago 1 reply      
An update for anyone who cares...I tweeted this link and tagged Paypal, they reached out saying they are sorry to hear and submitted my case for a review. I replied via DM how can they review ny case without asking any new information or telling me what the issue is, got no reply back. Just got an email saying "Appeal Denied" Paypal account closed for security reasons.

Which security reasons I have absolutely no idea. There's no contact info on the email, just says it's a do not reply address.

ziszis 2 days ago 2 replies      
Traditional customer service channels are increasingly broken since they are seen as a cost center to be reduced by many companies. In particular, if you are trying to cancel service or withdraw money it is even "worse" because not only do they have to pay the salary for the rep, they also lose money helping you.

If after one or two calls you don't get what you want, it is not worth retrying. I gave up after being placed in queue for an hour with Comcast. After finally getting ready to speak to a rep, I was informed by an automated message that they were closed for the day and to call back tomorrow.

Here is what I find works:1) Least likely - Traditional customer support channel. Try once or twice at most.2) More likely - Contact publicly on social media like Twitter (Comcast is actual great about this).3) Most likely - Getting upvoted and written about here and elsewhere.

I would wait to engage with a lawyer as there is a good chance that someone from Paypal will popup in this thread. It is probably already surfacing in some internal emails at Paypal now. Good luck.

oblib 2 days ago 3 replies      
I make invoicing software that I sell using PayPal and it lets my users add a "Pay with PayPal" button to their invoices and over the years several of my clients have called me and related stories similar to this and they all had some common traits.

They all processed quite a bit of money via PayPal and they all had issues with customer's requesting refunds which they disputed or didn't issue in a timely manner, and they all sold something which had the potential to be a bit shady. One of them sold aircraft parts to Iran, which may have had some legal restrictions that applied. Another sold guns.

Since I sell access to web based software I don't have to ship anything and the product is "delivered" instantly. I also process refunds immediately and without any question.

PayPal most certainly doesn't like getting caught up in refund issues. In my case most of the customers who've requested a refund contacted me first and I issued it promptly with a "Thanks for trying my software" note attached.

The few that have contacted PayPal first resulted in PayPal sending me a notice about the request for a refund and, again, I issued it immediately, but their notice makes it clear that is what they expect and if I recall correctly they put a time limit on that.

Take from this what you want but what I've taken from it is when a customer requests a refund issue the refund as quickly as possible and try hard to make that as easy as possible for your customers and to minimize the potential for them asking for one.

mhoad 2 days ago 2 replies      
I very recently (as in this was resolved about 72 hrs ago) was in a a similar situation where I had $20k withheld by PayPal.

I would switch all of my business billing to stripe in a second if they had the ability to pay out to accounts in different currencies like I can do with PayPal.

Despite the fact that I run an Australian business I usually bill in USD but because I travel so much sometimes I'd like to have it in EUR or GBP etc for practical purposes. However with Stripe I am forced to convert it into AUD before I can do anything at all with it meaning I usually have to eat currency conversion fees twice before I can use it in a practical sense. Hence PayPal sadly....

fermigier 2 days ago 3 replies      
IIRC this is not the first time this kind of bad behaviour has been reported about Paypal. I suppose you were aware of that. Did you consider Paypal's reputation when you chose to do business with them? Were there alternatives that you considered at the time and if so, why did you stick with Paypal?
rgbrenner 2 days ago 1 reply      
2% dispute rate?! That would get you shut down at every merchant account provider I've ever dealt with. In fact, it's usually 0.5% or 1% max. One major bank gave me 0.25% max. I've never seen an agreement that said 2% was ok.

That's a very serious fraud problem.

I've run an ecommerce store -- the chargeback rate was 0.1% (seriously, I calculated this from actual #s).

Nothing in this story (except maybe the customer service issues) would be out of the ordinary for any merchant account.

Edit: fixed chargeback rate

mastazi 1 day ago 0 replies      
I don't understand, this post has no link and no text body, just a recursive link to this discussion page. Where is the "horror story" mentioned in the title?

EDIT: Oh I see, the original post is buried down in the thread, because it has been posted as a comment. Perhaps the mods could fix this?

sabslaurent 2 days ago 14 replies      
I've processed successfully hundreds of thousands of dollars with my Paypal account over the pat 4-5 years. My account has been on review a few different times because of volume spikes (around the holiday season, I do ecommerce). When that happens, I usually reach out to Paypal and we discuss like humans, I explain where I'm coming from, they make suggestions and we get it settled. Around November 2016 Paypal reached out and told me due to the disputes coming in they need a $5000 set reserve + a 10% rolling reserve which will be released 90 days after a transaction.I accepted and since then Paypal has called me on 3 different occasions to check up on me and my efforts to reduce the dispute rate. We discussed and the calls seemed to go very well without them having any requests or EVER telling me my account is at risk of being limited and shut down due to disputes.

Towards the end of January I myself realized I tired of the disputes (seemed to be a quality issue with the product which got hundreds of 5 star reviews on my site but still disputes were coming in at around 2%) so I slowly stopped the business meaning I stopped advertising and the only sales coming in were trickling in organically. My volume went down from $200k a month to about $10k a month.

On Wednesday I log in to my Paypal account and it says it's limited they need more information.

They asked for Photo ID, bank statement, proof of address, supplier invoice, supplier contact info and proof of delivery for the last 5 transactions.

I provided everything but the proof of delivery for the last 5 transactions. From the resolution center whenever I clicked proof of delivery it brought me to a page with no transactions so of course I could not provide proof of delivery for transactions that don't exist.

I contacted Paypal letting them know I submitted everything but proof of delivery since there's a bug in their system, they said no worries i'll get an email requesting the transactions they need tracking for and I could just reply back.

I never got that email, but I did wake up Thursday morning with an Appeal Denied automated email saying my account is closed and the money will be frozen for 180 days. That's $20k CAD in my reserve + $15k USD in my available balance. Keep in mind in the past 30 days I processed less than $10k usd on Paypal in total.

I reached out to a supervisor at Paypal and told him what his happening simply doesn't make sense, i provided everything they needed except for what their system was unable to request/receive and that if they had any issue with what I provided they should tell me what it is and help me resolve instead of giving me the hammer for no reason. He said he couldn't help me but opened a ticket for both his supervisor and a supervisor from the limitation team to call me within 24 hours.

The limitation department supervisor never called me back but the business support manager called me back a few hours later. He called me from an unknown number in the evening, told me there's been a mistake, they added a second set of eyes to my account and they agree with me the limitation was unnecessary and wrongfully made. He said he just has a few questions and I will either get a restored access email in a couple hours or a call asking for more information in order to get it settled but he said there's a small chance of that happening, realistically the account will just be restored within a couple hours.

I never got an email or call again, so I called the following day. When I called the rep basically told me there's no evidence of a call and there are no notes on my account from that person/call and nothing was moved forward for a review.

I told him that is nonsense and to look harder. He eventually tells me there's evidence of a call but no notes, they tried to reach out to that supervisor and he wasn't available so there's nothing they could do for me, the decision is final.

I'm being treated like a fraud and a criminal when I'm a legitimate entrepreneur who's processed 10's of thousands of transactions successfully. I also paid them thousands of dollars in fees, never had a negative balance or anything of the sort that would put Paypal at risk.

Now whenever I call they are extremely rude telling me the account is closed they're holding the money and there's absolutely nothing I can do.

They have been rude, lying, inconsistent, unfair and have made 0 effort to resolve this amicably.

They have 0 logical reason to hold $40k of my money for 180 days, the only reason I can think of is they do this on 10's of thousands of accounts and gain big money off the interest.

When I log in to my account there's a notification saying they need more information from me. When I click on that notification it brings me to a page that says the account is limited because they need more information regarding my recent sales, they do not say what information or how to provide information. That is straight up illegal and a complete abuse of power.

I know there are thousands of Paypal horror stories but I genuinely feel abused. I have expenses, a family and so on and need that cash flow and no one at Paypal can be consistent for more than one phone call or help me resolve my issue, it's pathetic.

Just had to vent and hopefully this will give them some of the negative attention they deserve.

mstaoru 1 day ago 1 reply      
If you're outside of the US, it gets even more interesting.

First, you need to be VERY careful about using VPN or letting remote team members access Paypal. One misstep with, say, Hong Kong account being accessed from Ukrainian IPs, and you're blocked for a security review which drags for days and weeks.

Second, they completely neglect any special international shipping methods' unique constraints. Sometimes when you ship from China, the tracking will only appear when the package reaches destination country. This is considered an outright fraud by Paypal, which promptly returns money to the client and you're left with a loss.

On top of that, they will impose 3% commission for currency conversion. Did you ever hear of a bank taking 3% to convert between your multi-currency accounts? Well, "Paypal is not a bank".

Add to the mix their robotic support with that condescending tone.

No. I wouldn't touch Paypal with a ten-foot pole.

kelvin0 2 days ago 1 reply      
OK, so when I click this post, I go directly to HN's comments section. Where is the original story? Missing URL?
ahmetyas01 1 day ago 0 replies      
I worked with paypal almost 10 years. I can tell you this. Paypal is an evil company.
teilo 1 day ago 2 replies      
If the OP were running an entirely legitimate business, they would have no issue revealing what product they are selling. They clearly do not want us to know what that product is. This is no doubt because we would have no sympathy for them if we knew.

That being the case, I'm calling bullshit.

dawhizkid 2 days ago 0 replies      
I had this happen to me. I filed a complaint with the CFPB and within a week had my account unfrozen (i.e. still shut down but ability to transfer funds out)
jccooper 2 days ago 1 reply      
We use PayPal for a few scattered customers who have problems paying with a card and the occasional eBay sale, so I don't pay much attention to it. Whenever I see a PayPal horror story, I transfer all funds out of there to my bank. It's not the most effective sweep method, but it works depressingly well. I wonder what PayPal's cash balance would be if it had a reputation as being a safe place to keep a balance?
coupdejarnac 1 day ago 3 replies      
I'm looking at using Paypal for my next business, and it scares me that there is no recourse whenever an issue arises. I need to receive payments and send payments to workers, mostly in Europe. I'm doing a marketplace for jobs kind of like Upwork. I'm based in the USA, so Paypal makes it possible. Are there any alternatives to Paypal? I've been talking with Payoneer, but they have not inspired much confidence. I had my paypal account frozen about 10 years ago for a bullshit reason, and I'd like to avoid using them again.
TimMeade 2 days ago 1 reply      
We quit using paypal 8 years ago for exactly this kind of treatment. Seems it has not changed.
remx 2 days ago 0 replies      
I wouldn't move large volumes through Paypal. PP is useful for small donations and shuttling small amounts around, but not for the amounts being discussed here, because the larger the amount, the more it hurts you when things go awry.
funkyy 1 day ago 0 replies      
It might sound bad, but usually, when I was doing volume, and I would travel to the different country, region, I would call PayPal central and let them know. While I am all about privacy, this always made them put some comment on my account that helped me pass all the bad things. "We need more documents" issue? Solved in hours. $20K spike of revenue in few days? Not a problem!
Markoff 1 day ago 0 replies      
yeah, lifting my limits work further verification was online ordeal for like 2 or more weeks since apparently my ID card with address and full name issued months ago is not good enough, my printed bank record from internet banking is not enough, in the end had to send them two other bank records from different bank to have my bank account back to regular

also don't get me started they steal 5% of my income and don't have live chat service to resolve issues and their FAQ is referring to website layout from years ago with most of the steps wrong

sadly still two of my vendors don't offer to me other payment solutions (well one does wire transfer but only for large amounts i can collect in months) so i still have to use this horrible service to not lose income

grahamburger 2 days ago 2 replies      
One of my top-ten rules for staying sane on the Internet is 'Never leave any money in your PayPal account.' Served me well so far - I had my account frozen but there was only $2 in the account. PayPal is horrible.
kaffee 2 days ago 1 reply      
As someone paying for products, I detest PayPal. I'm forced to do it rarely enough that I would pay 5-10% extra to avoid doing it. I realize I'm just one data point but perhaps there's a market here?

One case where it's especially frustrating is Etsy. There are many vendors on Etsy who refuse to accept any payment other than PayPal. (One can't use an Etsy gift card.)

Edit: add etsy note

uptown 2 days ago 1 reply      
Apparently no details either. Where's the story?
eonw 1 day ago 0 replies      
this has been going on as long as paypal has been around. i never allow anyone to send more then a $1k to my paypal, everything larger than that gets check or wire. First time i got a $5k wire, they locked me out and held my monies for 90 days.... doesnt really help a growing business to have money locked. this was in 2002.
lquist 2 days ago 1 reply      
One of the most valuable lessons I've learned from HN was to autosweep my PayPal account. I am thankful that I was fortunate enough to learn this lesson before starting my company and running tens of millions through PayPal. I can't say for sure that I would still be in business if I hadn't.
Exuma 2 days ago 0 replies      
Yeah... pretty much the exact reason I don't leave any significant amount of money in PayPal at one time.
Buge 1 day ago 1 reply      
Where is the story? This post doesn't link to any article or anything.
adamio 2 days ago 2 replies      
You stopped advertising and still had passive income of 10k monthly ?
elastic_church 2 days ago 0 replies      
How surprising, I've never heard of this happening before

(this is sarcasm, for people who actually never heard of this happening before)

joeclark77 1 day ago 0 replies      
Queen Victoria supposedly told her daughter on her wedding night, "Just lie back and think of England." Whenever I have to deal with PayPal, I think to myself "Just lie back and think of SpaceX." If Paypal helps Elon Musk take us to Mars, maybe it's worth putting up with at least occasionally. (You can think of Tesla if you prefer.)
ArtDev 1 day ago 0 replies      
I deleted my Paypal business account, never going back.
wayn3 2 days ago 0 replies      
This is a case of KYC. Paypal wants to get to know you. Just talk to them. This looks scary to people who dont deal with banks and entities that act like banks, but paypal is doing this because they need to protect themselves from aiding people in money laundering, which is a pretty big deal.

If you explain to them what youre doing and come up with some proof, they will release your money. They do not want to steal it. Almost all these cases revolve around someone not communicating with paypal and then acting surprised when they freeze funds.

Any bank would do that. If my bank is hit wit ha 100k transfer and I don't say a word about it and then appear at the local branch and demand to cash it all out without an explanation of whats going on, they will refuse that, as well. And probably call the cops just to cover their asses. Seriously. Talk to them.

Ask HN: How would you interview people with much more experience than you?
17 points by fallmonkey  1 day ago   12 comments top 9
brudgers 21 hours ago 0 replies      
In the past, have junior developers working with you transitioned to greater responsibilities?

What approaches did you use?

How do those approaches compare or contrast to your own experience as a junior developer?

What do you see as the defining differences between junior developers and senior developers?

Is there an interesting technical subject you've recently encountered?

How often do you write code?

What makes a good programming language?

Tell me a debugging story.

[caveat, I might be old enough to be your parent]

bsvalley 1 day ago 1 reply      
It's like hiring your own manager. Make it look like a weekly 1-1 meeting. Expose the project you're working on right now to see if he can get his hands dirty and understand your pain points, etc. See where he could be technically helpful to you.

Then, ask about his past experience working on career growth. Has he ever promoted anyone? What's his management style, hands-on/off? etc.

Honestly, algorithm questions are really out of the scope here (don't ask algo stuff... please :-)

mvpu 12 hours ago 0 replies      
The same way Charlie Rose interviews his guests: read their resume, and poke into their background with curiosity and respect. Dig into their past life to your heart's content, but make them feel good about it.

In this case, I would poke them on a) relevant problems they worked on and how they went about solving them (dig as deep as you can), b) how they approach problem solving and coding in general (what excites them), c) how they made career decisions to date (what drives them), and why they're interested in the role you're hiring for (what's motivating them).

I wouldn't waste time with algorithm questions. A thoughtful and motivated developer will figure out and deliver much more than a algorithm guru.

user5994461 20 hours ago 0 replies      
> Algorithm questions could be last resort, design questions might end up making myself the interviewee...what else then?

Go for the design questions.

Let him show his design skills and show his ability to teach it to you. That's what you expect from a more experienced, isn't it?

josephv 22 hours ago 0 replies      
I had to interview a manager or two as a senior dev and then interviewed countless people for manager, supervisor, and dev jobs as a manager.

I think the best thing to focus on is hiring a manager that knows a little bit about the processes you guys use day-to-day. If you're an agile team, ask about agile; a requirement document team, ask about documentation experience. Processes sort of follow some high-level patterns due to the large accreditation bodies that profit from selling their own flavors.

Have they managed QA or been involved with continuous integration and automated testing? What task-management systems have they used? Are they interested in promoting strong architecture, is production support a priority; or ask them to list out a set of priorities related to product delivery, production support, architecture, customer service, which helps with discovering any underlying philosophies more than really giving any direct information. Give an example of a time they resolved a conflict.

Asking about what the technology stack was for the team they managed is always good as well. If they can explain it coherently they weren't just doing performance reviews and checking time logs to make sure people were at their desks.

Just some ideas off the top of my head.

runjake 1 day ago 0 replies      
Their personality. Their thoughts on teamwork and how they learn new skills.

Asides from the basics, I'm more interested in an applicant's personality and how well they'd mesh with the existing team.

The particulars of skills can be trained. Personality pretty much cannot.

david-gpu 19 hours ago 2 replies      
Have you asked the people who put you in that position? They may have a specific role for you even if they didn't verbalize it.

In the absence of other info I would let the more senior guys size him up in terms of technical skills, and instead focus on the more human aspects. At the end of the day what you want to know is "can I be happy working with this person?".

You didn't mention whether this person will be or is likely to become your future manager. If he will then the question becomes "would I like to report to this guy?".

commenttolearn 18 hours ago 0 replies      
I would focus on the soft skills & cultural fit area and leave technical and managerial skills to other interviewers.

The reason for this is that as a junior developer, you won't probably be able to technically challenge a candidate with many more years or experience.

Also make sure you ask for advise to other interviewers in your company, people is always happy to share the way the interview candidates and everyone has a different approach that we can learn from.

JSeymourATL 1 day ago 0 replies      
> Candidate could literally be my father and is for a manager position...

Some empathy-- He might be thinking this millennial is the same age as my kids. It can be rather intimidating having a young punk size you up for a job.

Get beyond that -- focus your questions on determining if the candidate could be a successful manager. Here's a list of questions to give you some ideas > http://www.bakertilly.com/uploads/interviewing-leadership-ca...

Ask HN: Will front end development ever move away from JavaScript?
123 points by js-fiend  2 days ago   233 comments top 45
watson 2 days ago 10 replies      
I think it's a common misconception that JavaScript isn't an elegant language. The real issue is that it's the only language with a monopoly. So people who want to work on the web have to use it. This results in people being forced to use it against their will. So obviously a lot of people don't like it - probably because it doesn't have that feature they really like from their primary language - whatever that is. If we invented a replacement language, the issue would not go away, but simply shift.

I think instead the real issue is that we're too bad at educating people in how to properly use the language. Sure there's corners of the language that are bad, but as a seasoned JavaScript developer you simply know to ignore those corners. So they don't bother you. You instead focus on the cool things about the language. Any programming language have good and bad things. And we as developers learn to focus and leverage the good parts to our advantage. The ideal of a perfect language is a pipe dream unfortunately - instead my advice is to really learn the language and embrace it instead of fighting it.

jMyles 2 days ago 5 replies      
By using the word "ever," you cast this question into historical or even religious proportions.

1000 years ago, the primary frontend toolchains were singleton and handmade: every instance of a piece of data needed to be individually crafted.

500 years ago, the printing press had made significant changes, but frontends were still largely coupled to the available presses and their character sets (let alone niceties like layout and graphics).

100 years ago, frontends still remained tied to their physical layers (ie, it wasn't possible to scrape data and create a new frontend without recreating the entire medium) - ie, books and magazines and newspapers.

20 years ago, javascript was barely known even in programming circles, much less a lingua franca for publishing worldwide.

Today, javascript is the control structure by which the vast majority of data is accessed by human eyes and ears.

In 20 years, something that has already been invented but is today not largely known might well be responsible for most knowledge exchange. It's completely plausible that technologies like AR, crypto-blockchains, and newly legalized psychedelic drugs will be as important as HTTPS is today for transmission purposes, let alone the particularities of the application layer.

100 years from now, it's highly unlikely that the screen-and-keyboard model of data ingestion will be regarded as anything but a historically important link in data evolution, cast away in favor of more tactile, neurochemical, and cybernetic interfaces.

500 years from now, most of the world's governments, media traditions, and spoken dialects of language will have folded and made way for a completely new condition of humanity. Who knows what the frontend will look like.

In a 1000 years, our species might plausibly have no biological footprint (ie, no sensory organs to use for the purposes of distinguishing "frontend" from "backend") whatsoever, and live on as information and knowledge, present in the physical universe only in ways that we can't possible yet imagine.

So yes, the species will someday move away from javascript.

troymc 2 days ago 3 replies      
I'm surprised at how many of the answers here are rationalizing JavaScript's monopoly, saying that it's a fine language / it's optimized / stop complaining / etc.That seems like the programming-language equivalent of Stockholm syndrome, i.e. "We're stuck with X, so we should justify and defend X as a coping mechanism."

The question you should consider isn't, "Is JavaScript a good language?"

The question you should consider is, "Is JavaScript's monopoly good for the web platform?"

iLemming 2 hours ago 0 replies      
That's why I like Clojure(script). It does not fight the language and the ecosystem. It's "hosted" - meaning that like a symbiotic organism it "latches" onto the host language and can fully reuse its features. It does not try to "reinvent" and fix what's not broken, yet at the same time liberates you from glaring awfulness. It enforces certain discipline to protect you from shooting yourself in the foot.
coreyp_1 2 days ago 5 replies      
Saying "it's not the most elegant language" is quite (mis)leading. While I would not claim that it is the most elegant language, I would most definitely claim that it is elegant.

Two things that many people get wrong about JavaScript: (1.) Most of the ugly parts involve interacting with the DOM, and the DOM is NOT JavaScript, and (2.) Just because some people write ugly code with it does not mean that the language itself is ugly.

ES6 and ES7 have done wonders for the language syntax, and the flexibility of the language allows you to write in any combination of procedural, functional, prototypical, object-oriented programming styles. I mix them together as needed to make programs more intuitive and easier to follow. Programming is an art, and JavaScript is a powerful and versatile tool.

You are also wrong in that it being the only language supported by browsers. That may be the case now, but in the past many, many, many websites used flash and java applets. Quite frankly, the reason that JavaScript is what we have now is because it really is that good that it replaced all the other options.

All of the other questions are all over the board... It sounds like you are trying to get us to write a homework assignment for you.

tmzt 2 days ago 1 reply      
I think there's another way to look at this. Right now the DOM is exposed to the browser in a way that makes Javascript the most natural way to manipulate browser elements.

There is a movement towards a more elegant way of expressing UI, where functional languages and imperative languages with functional features can both be used, but these currently require often large and complicated frameworks or even comete language runtimes.

Ultimately these also require some kind of Javascript bridge which leads us back to it being central to web programming. You either use Javascript or you go to great lengths to hide it.

The solution, which is slowly emerging in a de-facto manner, is to expose to any chosen language whether implemented in Javascript, wasm, or some new JIT compiled bytecode with dynamic features, a transactional, IPC-based API for rendering, diffing, and merging web content.

JQuery inspired the selector APIs (querySelector*) which in turn improved the efficiency of, then mostly obviated, JQuery itself.

I imagine the same thing could happen with React-like frameworks and things like Elm.

campers 2 days ago 2 replies      
I'm pretty happy developing in TypeScript these days, it at the stage where its more than good enough for most tasks.

Just like the JVM is more than Java, JavaScript is the bytecode of the browser. There is plenty of languages which compile to JavaScript if you want a different style or expressiveness in your code.https://github.com/jashkenas/coffeescript/wiki/List-of-langu...

How good the tooling is (maturity, source maps etc) for other transpiled languages may vary a lot but there is still a lot of choice. I'll be sticking to TypeScript for now.

vinnymac 2 days ago 2 replies      
I would say it has certainly become elegant in recent years.

I imagine instead of alternatives we will see a lot of things being compiled from X down to WebAssembly. I see Rust/Go/Haskell targeting WASM in the near future.

WebAssembly has a lot of potential, but I think JS will have its place for a long time to come as it always has on the web. It makes me laugh whenever I think I might be writing Java for the frontend again, but it could actually happen!

Asking if TypeScript is good enough is kind of an odd question, good enough for what exactly? If you meant web development it certainly has its use case, but I think the discussion around TS and Flow is still open.

lenkite 2 days ago 1 reply      
Yes, front end development will move away from JS to statically typed languages in 5 years. The fact that JS doesn't have integers and had to invent monstrosities like Uint32Array objects just shows why you do need a sanely typed foundation.

Calling JS elegant is like calling a gnarled, slime monster dressed in pink clothes elegant. Ooooooh I have shiny lambdas! Makes me soooo pretty - I can cover my warts and dazzle programmers!

krapp 2 days ago 1 reply      
If we "move away" from Javascript, we also "move away" from being able to properly support and display much of the web in the future.

We can either discard the current web as obsolete and start over with a new, stricter or more elegant framework, or else support something alongside Javascript, which only compounds the problem when every new browser then has to support every web language, and older browsers can no longer run code written in the 'new' languages.

To say nothing of the likelihood that each language will have browser-specific implementations, so each language also gets its own unique ecosystem of frameworks and shims for cross-compatibility.

All this towards the same end of doing stuff with the DOM, AJAX and Canvas. Doing what you can already do in Javascript, despite its issues. Why? How does it help the end user?

Javascript may be bad, but the alternatives seem to be worse for everyone other than programmers who don't like Javascript.

ams6110 2 days ago 1 reply      
Wondering how old you are.

Javascript has only been "a thing" in front-end development for about 10 years. Before that, it was sort of a joke.

IE used to (maybe still does?) support VBscript. It could support other languages also via ActiveX. I remember articles about how to use Python in the browser.

Javascript will fade from the web scene, just as Perl has, when a new generation comes along who will once again reinvent everything with new languages.

smdz 2 days ago 2 replies      
> Is TypeScript good enough?

Yes. Once you move to TS, it's inconvenient to move back to JS

> Will developers be open to alternatives?

I would like to see GoLang supported in the browser (natively, not transpiled). Go has some awesome potential that's probably being wasted by limiting it to systems programming. Before Go I might have said C#. However, sometimes I want my stuff to be strongly typed, and sometimes I want to keep it flexible to change types.

theaustinseven 2 days ago 0 replies      
I really suggest watching these talks for anyone who hasn't. The first especially gets at what kinds of issues javascript has, and what might happen to it.



inostia 2 days ago 2 replies      
I think the better question is, "Will front end development ever move away from CSS?"

In all honesty though, with ES6/7 writing programs in Javascript is a joy. CSS still sucks...

albertTJames 2 days ago 1 reply      
Everytime I hear developers trash a language for this or that feature or more generally on its "elegance", it reminds me of the old debate people had over Mac being too controlling of what the user could do and PC with linux being the ultimate tool of freedom.

In the end what won?

The simplest, and the practical. With Linux inside it.

Thinking a new language will or should come and replace JS for frontend after it has been developed and continuously improved with the web for 20 years is just tiring. JavaScript has been polished, it is practical, it has a plethora of tools and ressources. Improve javascript if you want to improve things, stop creating new paradigm all the time. I am quite happy that ES6 proved that JavaScript could become a very modern language although it is not strongly typed, tools like flow are filling the gap for now.

I personally think Swift ans JavaScript are the most elegant language. And although I can see the beauty of functional programming - I dont see it being used widely or being very pratictal for frontend.

As for typescript, it is a very good formalisms but it is made better by the tools built around it.I think JavaScript could go there on its own, no use having two languages in the long run.Some key improvements it does need would be to formalize flow types, more integrated linear algebra tools (or C++ extensions like numpy/scipy), a way to transpile/compile to native apps that is more efficient than electron (although electron is the bomb), and that's it. The rest has to be the job of browser making companies to comply to new standards.

Developers always want to reinvent the wheel instead of submitting PRs and participating to the debate about the future of open projects as "participants". It's ok to "only" participate.

mgalka 2 days ago 0 replies      
Maybe it's just because I'm used to it, but I would say it is an elegant language. Either way, it's always under development. And any problems with the syntax can be changed in a future version, easier solution than establishing a new front standard.

It also has NPM, React and other frameworks, V8. Any challenger has a lot to overcome before people will consider switching.

tastyham 2 days ago 0 replies      
I doubt it. I think the opposite will happen: JS will become the defacto UI language for web, mobile, and desktop.

The ongoing effort to improve the language has hit some stumbling blocks and made some outright mistakes, but overall has improved the language significantly.

Competitors like Elm and Dart are certainly compelling, but I don't think they have enough weight to entice UI platforms to converge.

The major players seem to agree that incremental improvements are easier than getting a huge amount of diverse vendors to converge on an entirely new/different platform.

jedikv 2 days ago 0 replies      
I'd just like to see the footprint (storage, memory & performance) of JS/Electron et all apps to be reduced to the levels of applications written with traditionally compiled code.
bobbytherobot 2 days ago 1 reply      
> Could Google or Mozilla build support for another language into their browsers while developers gradually move away from JS?

I recall a time when Mozilla was shipping Python until HTML5 kill it. HTML5 gave features front-end developers desperately needed whereas Python honestly did not.

> Will developers be open to alternatives?

If the alternatives are significantly better at solving their problems, sure. People are switching to React despite React seemingly going against the 20 year paradigm of programing web UIs. Why? Because the pattern works for many people (not all people).

> Will we finally standardize on a simpler set of tools and frameworks?

Do other languages have a simpler set of tools and frameworks, or they simply better at hiding the complexity from you? In my first programming class, we were shocked to see how a 2kb C source code file was turned into a 200kb executable file by the compiler.

I've worked at companies using Java and Scala where I spend my first two days just getting the code to run. Is that tooling really that much easier?

> Is TypeScript good enough?

TypeScript is just a superset of JavaScript that adds in types. If your only complaint about JavaScript is the lack of types, then sure.

I think the JavaScript world is going to get better and worse at the same time over the next five years. I'm certain that we have even more tooling (which many people complain about) around code quality. We aren't going to be just doing static analysis, we will have new machine learning libraries, written in JavaScript, to review code.

BinaryIdiot 2 days ago 1 reply      
Honestly JavaScript is not so bad but I could see multiple things evolving web development pretty significantly.

1. WebAssembly is cool but can't currently replace JavaScript. Now if the standard could get in gear and go a bit faster and work towards being the Java Bytecode / MSIL of the web? Then there would be zero reason to NOT develop in whatever language you want that compiled down to that. Yeah there is transpiling to JavaScript but that is more of a hack than anything; if you have to debug in an environment without source maps then it sucks hard core the further away you are from JavaScript.

2. The separation of HTML, CSS and JavaScript kinda sucks. CSS can do a lot but not everything, your HTML structure needs to be a certain way for some CSS to work correctly so the two are tied far more together than in the past. I'd like to see something eventually combine the two because let's face it, beyond basic things I almost never see the "swap a stylesheet to make everything different". Seems more of a novelty than a practical thing in my opinion.

3. I think the upcoming web component standards are going to make module web development a ton easier but the standards have been moving at a SNAILS pace. Poylmer's polyfills are great but don't cover everything and is extra overhead. When browsers support these natively it's going to make things so much easier to create 1 component that can end up being used in any web application regardless of framework.

rayalez 2 days ago 0 replies      
I don't see anything on the horizon that would be a good JS replacement.

At the moment, frontend libraries like React, and the new ES6 features is the best we have.

WebAssembly will allow other languages to run in the browsers, but how it will work is still unclear.

The only other option I've heard of is Elm. I haven't used it, but many people claim that it might be a good JS replacement. Though I don't know if it offers enough of an advantage to cause everyone to switch. If anyone has more information or opinions - please share.

33a 2 days ago 0 replies      
It'll happen, especially now that WebAssembly is getting rolled out, but not sure what is going to replace it. Things like C++ or Rust are still too cumbersome for a lot of front end development. Not sure what the replacement for JS will be, but something new is going to eventually take over.
TheAceOfHearts 2 days ago 0 replies      
It seems unlikely. Modern JS tooling has gotten very powerful, and it's still improving.

Heck, even with WASM coming around, you need many external tools for building and deploying applications. If you're targeting the web you'll still need to be fully aware of its limitations as well as having a strategy for handling em. These problems won't get magical solutions all of sudden.

I'd be interested in hearing of some ways in which you believe tools and frameworks could be simplified, as well as your current complaints with the ecosystem.

It's important to understand that the JS world has many players, and different groups of people have vastly different requirements. For example, even if picking up Webpack takes a bit of tinkering first, once you have it in place it requires very little maintenance. If you're working on a larger web app, paying that price up front is well worth it, as you can tweak the config to easily handle most future problems and requirements.

StClaire 2 days ago 3 replies      
Yes. We moved away from Fortran, Cobol, and Basic when something better came along. Eventually we'll move away from Javascript too. Maybe it will be a language that spits Javascript, maybe it will be a language that runs on Chrome and Firefox. Right now I don't know what that language will be, but I'm sure it'll arrive one day
gabrielcsapo 1 day ago 0 replies      
Oh gosh, this thread is all purests...I hate es6, but it is kind of fun to watch people misuse the arrow syntax and then ask, so what does that do? Their response is almost 1000000% "oh this is how you write functions in JavaScript bro". That's when I laugh and write a named function and continue working smart instead of trendy winky face. Full disclosure I love JavaScript and will become a farmer rather than switch to another language!
raquo 2 days ago 0 replies      
There are plenty good languages today that compile to JS: Scala, OCaml, Clojure, just to name a few. And if you really like JS but want types, check out Facebook Flow, it's better than Typescript even though it's not as popular.
dragonwriter 2 days ago 0 replies      
It will, and wasm is part of that (though plain old compile-to-JS is too), but it won't be a fast transition, and it won't be all to one other option, and JS will be the main choice for many years to come; it's got lots of inertia.
petra 2 days ago 0 replies      
If you focus on business apps/sites, you might only need "low-code" tools like outbrain and mendix, which combine domain level focus, mostly visual tools, and maybe some code. Those tools are starting to become pretty successful, and it seems some of the big cloud guys also go in that direction.

And who knows, maybe some of those companies will adapt their platform to fit consumers.

digitalzombie 2 days ago 2 replies      
Too many man hours into optimizing Javascript. I doubt it.

I think a realistic alternative will be transpilers. Say coding Clojure, Scala, etc.. and then it convert down to javascript.

Also from what I've seen so far Mozilla really love javascript. It continues to push forward with no real alternative. Also the creator of Javascript is working with them.

I love Mozilla but I wish they tackle on an alternative javascript, they're too busy with the wonderful looking Rust though. I can't blame them.

justinhj 2 days ago 0 replies      
Consider how long php has been used on the backend, and it's only getting more popular, there's your answer.
daliwali 2 days ago 0 replies      
There is work on WebAssembly to add DOM support [1] but for now it is speculative. This is the main limiting factor since other languages have to use JS as a compile target instead of WASM if they want to interact with a web page.

[1] https://github.com/WebAssembly/design/blob/master/GC.md

ruipgil 2 days ago 0 replies      
Quick answer: no.

Unless there's a unified effort between major browsers to bring support for a new language we'll have to use js. And that seems highly unlikely (see dart for instance). However, you now have languages that compile to js, that start to satisfy most developer needs, as well as the sketchy evolution of js.

lightblade 2 days ago 0 replies      
I don't believe we will ever move away from JavaScript. Remember GWT? It's Google's pseudo WebAssembly built at the height of Java's popularity. It compiles your Java code into JavaScript and optimize accordingly to each browser. A few companies bet heavily on this technology, Workday is one.

No, it did not catch on.

holydude 2 days ago 0 replies      
I hate transpilers and the added complexity and abstraction layer. I love ruby but i cant imagine to write ruby in smh like coffeescript or opal for frontend. JS is the necessary evil but i would never join a company that does everything in js (frontend,backend, desktop / mobileapps ) you either love jd or you hate it.
iamgopal 2 days ago 0 replies      
I'm sure it will be different. Technology don't usually move upwards gradually. They jump and improve for years and jump again. So I can sense the jump is coming. But it won't be just a additional language on browsers.
igl 1 day ago 0 replies      
Do you think java is elegant or do you think ocaml is elegant?

Google built Dart once as a alternative and it did not make it into the Browser.

Are JS frameworks not simple? I really want to know how you feel about Spring or Magento.

mschuetz 2 days ago 1 reply      
With ES6, the only thing I'm missing in Javascript is static typing. Other than that, it has become a very nice language. There are some ugly sides, as in every language, but for the most part you can simply opt out of using these parts.
tomatsu 2 days ago 0 replies      
TypeScript and Dart are viable options for scripting. (Try it!)

Wasm modules will be viable options for processing-intensive tasks.

billconan 2 days ago 2 replies      
I really hope webassembly could introduce some desktop/mobile app development experience to the web.

I want to use an api, similar to Qt, to write webapp.

k__ 2 days ago 0 replies      

But it moved 'to' JS not long ago, so it will probably stay there for a while.

I mean, remember the Swing and Qt days, when you needed to wrangle the C++ or Java?

JS is a breeze compared to this.

moron4hire 2 days ago 1 reply      
I don't think JavaScript is the problem. It's not the best language, but by far it's also not the worst, and there are lots of alternative tools that keep you from having to touch it. Use Opal, or Coffees riot, or ClosureScript, or Elm, or whatever else is out there; there are dozens.

What is much more concerning is the dogmatic, hyper reliance on all-encompassing frameworks, with a commensurate scrabbling for these frameworks to only be made by large corporations. It used to be that you could start a side project on your own, working at a small company, with a decent work-life balance, and grow it into a jQuery or Underscore or Prototype.js and people would even thank you for it. Now, you get people questioning whether or not you should even be allowed to exist if you aren't an official project from Mozilla, Google, or Facebook.

Just because a large corporatiom makes a thing doesn't mean it's particularly good. We've all been complaining about how Google's brain-teaser style job interviews are only effective at keeping good programmers who aren't also autodidacts out of the company. Yet out of the other corner of our mouths, we assume anything they make is great just by virtue of them "only hiring the best". I'm sorry, Angular is a pile of garbage. And I mean the rewrite that was supposed to fix all the problems of the first version. Their official documentation's setup instructions are to clone an example repo and delete the parts you don't want. This isn't just unprofessional, it's infantilising. Or the alternative is to install yet another CLI tool for what should just be a front-end library. Every single place they use decorators--which are an experimental feature in TypeScript, so Google is building a core feature on unfinalized syntax--they could have been done with superclasses instead and just kept the whole project to one paradigm. But OOP isn't sexy anymore, and you can't get overqualified PhDs to work on business issues unless there is something to overcomplicate in there. They claim you can't get the live-reloading development server to work on Windows because of something Microsoft supposedly did to block it in January. That's funny. I have no problems with my build and dev tools, and I'm running on top of the same, exact Node ecosystem. But they don't actually explain anything or link to any issue, so there is no telling what they mean.

Don't be afraid to "reinvent the wheel", and stop complaining when others do. This search for "the one, true wheel" is what is killing us. Quit trying to take jobs with companies that expect you to know React and Ember. You don't have to learn everything that is out there, and you can stay on one thing for a while. Or you can even make your own things. Your worth as a developer is not in the tools you know today, it's in your ability to learn and solve problems.

ubersoldat2k7 2 days ago 0 replies      
The thing with Javascript is that, although the language may suck, it is a great ecosystem and platform to build on. It's what Java always dreamed of: build once, run everywhere. Literally! (Well, except for Node, but mostly)

Don't think of Javascript as "the browser" since you've got browsers, Node, React Native, Electron, SmartTV, STB, Tizen, Xbox, PS, Wii, Switch (probably) etc.

If it was easy, Java was the closest thing we ever got to this sort of portability across platforms, except for web frontend and this is what killed it. Java also has a great ecosystem and platform, it's open source (well, kind of), backed by several big software companies and lacks most of the things those who hate Javascript has (i.e. static typing). If Sun/IBM released their own browser engine with Java, instead of those stupid Applets or letting Javascript be built, the world would be different today.

> But will we ever move away from it?

The sheer amount of money for this to be possible is unimaginable and I don't think anyone's budget would allow for this. Hell, Facebook decided to invest on React Native when they could have done other crazy stuff like launching their own browser with ObjectiveC support.

> Could Google or Mozilla build support for another language into their browsers while developers gradually move away from JS?

Their engines are open source, and if this was easy I'm sure as hell someone would already have <script src="text/brainfuck"> working. You're also forgetting about Opera here. Opera is big and although its browser is not on all PC's it's on almost lots of media devices out there. Except for LG, Samsung, Roku and Android, all SmartTVs ship with an Opera browser which is what's used to run YouTube, Hulu, Netflix, HBO, etc.

> Will developers be open to alternatives?

Sure, Dart had its time, and TypeScript is getting lots of traction right now. You also see people writing frontend code on .Net and Java.

> Will we finally standardize on a simpler set of tools and frameworks?

Although I understand the frustration Javascript may raise with its tools (grunt, gulp, bower, webpack, babel, react, angular, etc), I don't see other platforms any better. I'm sure most C#, Java, C++, C, iO developers can give you great examples of how those systems are also complex, with shared libraries, low quality tools, integration, system and API problems, etc. I've used many IDEs and build tools, but the level of fear I have of XCode of breaking is huge.

> Does WebAssembly solve this?

No. Although some crazy people may decide to port a UI toolkit (Qt? GTK? WxWidgets?) or write a new one, the complexities this introduces are not worth it, business wise. Also, I'm sure it will also bring its own subset of problems. I particularly see WebAssembly used for two things:

- Games.- Stuff you don't want people to mingle with: DRM, banking, cryptography, etc.

Building a CRUD SPA in WebAssembly would be, IMO, a very stupid decision.

> Is TypeScript good enough?

Well, I work with quite a lot of people doing Javascript doing lots of FE projects and there isn't a big interest on it right now. Actually, Angular2 has been removed from any future projects roadmaps and we're moving to a React focused one. Thing with TS (or any other transpiling tool) is that, now you have to fight with TS problems and Javascript problems.

andreapaiola 2 days ago 0 replies      
What is elegant?
tommynicholas 2 days ago 0 replies      
cammio 2 days ago 0 replies      
Ask HN: Static Sites on Google Cloud
8 points by kaishiro  17 hours ago   4 comments top 2
BrandonY 13 hours ago 1 reply      
If you need to host static content over HTTPS with a custom domain, then yes, Cloud Load Balancing is the main option at the moment. You can use GCS for HTTP serving from a custom domain or via HTTPS from GCS's own domain (https://yourbucket.storage.googleapis.com), but for serving HTTPS content from a custom domain, that requires configuring Cloud Load Balancer.

(I work on Google Cloud Storage)

Elect2 16 hours ago 1 reply      
You must set a load balancer to use Google Cloud CDN.

But I'd recommend to use Google Cloud Storage + Cloudfront. Since you are hosting static pages that can be cached by Cloudfront, there are almost no costs on the data traffic from Google Storage to Cloudfront. Cloudfront is easier to use and you can control more.

Ask HN: Ever tried listing all the people that you want to thank in life?
6 points by ghoshbishakh  1 day ago   3 comments top 3
bsvalley 1 day ago 0 replies      
No and no. Though, I'd love to take time to thank each individual for their positive impact in my life. You should probably focus on that... A list is too formal, not personal and I don't see any benefits in making that list public.

I'd spend the energy on each individual relationship rather than the "showcasing" aspect.

chatmasta 8 hours ago 0 replies      
When I was growing up and acting like a little shit, my dad would make me read "The Book of Virtues" and write down everyone and everything I was grateful for. It was way worse than timeout... but maybe he was onto something.

It's probably a good exercise even if you don't publish it (personally I would find such a list far too private to publish).

loa_in_ 15 hours ago 0 replies      
*shank, and yes.
Ask HN: Stick with Flask or Learn Ruby on Rails?
13 points by methochris  23 hours ago   5 comments top 5
RUG3Y 3 hours ago 0 replies      
Flask is awesome, the code is very readable and transparent. I'm not a fan of Rails because of all the "magical" things that happen. Of course, smarter people than I use Rails and have great results, but I'll stick with Flask.Side note, Flask has really great source code too. I learned a ton from reading it.
iurisilvio 22 hours ago 0 replies      
Stick with Flask. I don't think it is a good reason to change. To be fair, you'll have the same maintenance issue with any language/framework. Some are better maintained, but I think Flask/Django/RoR are in the same league.

I'm a huge Flask user, with projects with 50+ Flask extensions installed. Most of them I just plugged in and never had issues. Some issues I had were easy to patch and most of them were fixed upstream.

You have some complex extensions, but a lot of them are just small wrappers, so it is possible it's just good enough and feature complete.

cyberferret 21 hours ago 0 replies      
The same issues seem to happen across the board, no matter which platform. I use a Ruby framework for most of my development (not Rails, but a Sinatra based one), and keep finding that gems my apps depend on can quickly become stale and abandoned all over the place.

Kind of disconcerting to go to Github to lodge a suspected bug report on a gem we use every day, and see that the last commit was 6 years ago!

CCing 19 hours ago 0 replies      
You'll will find the same problems in rails community(and I guess in nodejs community too)

Learn to program and do it yourself if you don't find a library/gem. THIS is the solution (anyway in any platform/framework you'll have the 'main' libraries/gems updated...)

Stuck with what you know better and hack a product.

msie 23 hours ago 0 replies      
Yes! Definitely! For all the reasons you stated. Dealing with neglected frameworks sucks.
Ask HN: Are there other well-paying fields that welcome self-taught people?
8 points by nanxor  21 hours ago   1 comment top
anigbrowl 21 hours ago 0 replies      
The arts can pay well if you're very skilled or talented. I moved into a career in film easily, though between the time I moved in and some extraneous factors, it's been financially difficult, but generally it's a results-oriented space that rewards innovation and initiative.
Ask HN: Please recommend some good documentaries to watch
5 points by brogrammer2  9 hours ago   8 comments top 4
runningdev 5 hours ago 0 replies      
Lo and Behold, Reveries of the Connected World, http://www.imdb.com/title/tt5275828/
robin_reala 8 hours ago 1 reply      
In general? Any specific subjects?
mattbgates 8 hours ago 1 reply      
Anything by Alan Watts.
airbreather 8 hours ago 1 reply      
Anything by Adam Curtis
Ask HN: What is your startup's marketing stack? (March 2017)
37 points by jaynate  1 day ago   11 comments top 7
contingencies 1 day ago 1 reply      
You seem to be discussing tooling rather than channels.

Appropriate marketing channels vary distinctly by business type, development level and market positioning. Service vs. product, physical vs. digital, popular vs. specialist, early stage vs. validating vs. growth-phrase vs. stable, desired audience, phase of moon, etc.

In general tooling should be determined by the channel, not the other way around.

The advice given to me by a very successful CFO (many $Ms personal exit, multi-decade angel, now running an accelerator) on my first business was: "test each channel". That means: marketing spend per new prospect, conversion percentage, repeat customer percentage, customer lifetime or fixed-period value estimate, and maybe other channel properties like responsiveness, customer demographic or other data available, markets served, total available inbound volume. Try to keep the building of this data for objective channel-vs-channel analysis as your focus, and don't get distracted. Remember, you're being marketed to. ;)

If you're lucky, you'll find a strong channel. In most cases, you simply need to sink a certain minimum amount of capital to get your customer base large enough to get in the black. Take it from me - not having this war-chest can cost you the business (as it did my first). If you find yourself in that position, workarounds can include partnerships with established networks, acquisitions, pivots to SaaS-conversions ... but again it depends on the business. Good luck out there :)

edoceo 1 day ago 0 replies      
I've been using pipedrive.com for deal flow.

And checkout Segment.io

Also, I've got triggers in my app that spawn Trello cards. I feed Trello, then manually do stuff in the other systems. Ugly but I can switch out other tools easier. This lets me try new tools faster, and switch back too.

leftrightupdown 1 day ago 0 replies      
Crm - streak crm (http://www.streak.crm), nice crm that integrates with gmail. Used to categorize email communication.Email marketing - listshine (http://www.listshine.com) cheap alternative to mailchimp, used to regularly email new and existing customers.
ANaimi 1 day ago 1 reply      
Vocus.io (I'm the founder but also happen to rely heavily on it for our own growth). Great for outreach and customer support.


 - Mixpanel - Pipedrive - CloudWatch

BorisMelnik 15 hours ago 0 replies      
Basecamp (project management)$


Piwik (analytics)free

Ahrefs (SEO)$

Google Mail (email)$

Google Cloud (hosting)$

Amazon S3 (backup)$

WordPress (CMS)free

Prosperworks (CRM)$

Hootsuite (social)$

AdEspresso (social ppc)

pryelluw 1 day ago 0 replies      
Simple is better. Start with the minimum and as you build demand introduce tools.
chrisked 1 day ago 0 replies      
If you think chat is relevant to your business I suggest you'd give drift.com a spin.
Ask HN: Fatigued by the complexity of ES6 tooling. What to do?
74 points by bufflehs  2 days ago   81 comments top 40
zmmmmm 2 days ago 1 reply      
I'm in a similar position, trying to update myself from jQuery/Backbone land to React etc. It truly is a nightmare - so many similar yet slightly different tools and conventions. So many web sites with code that almost works but not quite. So much "magic" which works when it works and when it doesn't you simply have no idea where to even start debugging it. Which is all the worse in languages like Javascript where everything is typeless and dynamic and the only way trace things is to debug live, usually landing you into minified code you have no hope of decoding.

Technology does seem to move in cycles and this has all the signs of a peak of complexity. I feel like it will almost certainly collapse under its own weight - the last time I saw complexity this out of control was the early days of J2EE. The question is whether the solution will be built on elements of what currently exists or whether someone will make a clean sweep like Ruby on Rails did to J2EE.

Sorry, I don't have anything else to offer other than a sympathetic rant!

johnfn 2 days ago 2 replies      
A lot of posts on this thread about js library fatigue are advocating for... more libraries. Go figure. :) I advocate the opppsite: use as few tools as possible, until you realize why a tool is necessary.

With my current project, I started off with just Backbone and Typscript. Eventually, after hitting a few walls, I was like "ah, that's why React is necessary over Backbone". Then I realized why Redux was necessary. Then immutable. Then webpack. Each of these little revelations coming a month or two apart.

The problem with instantly installing every dev requirement you think you might need is that you may not actually need as many as you think, and then you're burdened with unnecessary complexity. Along with, of course, the pain of learning and dealing with the intricacies of getting dependency each set up. Depending on the size of your project, Redux may not be necessary. Nor immutable, etc. But you won't know if they are necessary until you understand them, and that only comes after using them or feeling the pain of not using them.

The only tool I believe is truly necessary for any web project is TypeScript. I could write a small novel on why, but the crucial reason here is that it enables you to do all the above refactoring with ease. Refactoring vanilla js is a nightmare.

akamaozu 2 days ago 1 reply      
This isn't JavaScript fatigue; this is CoolScript fatigue.

Major Key: Avoid compile steps as long as possible.

No Babel, no Webpack, no browserify, no JSX. You can use React without any of them. You'll get to them when you really need them eventually. Maybe. Only one of the above I use is browserify.


As a developer, your key job is keeping complexity down. Doesn't matter if everyone else implicitly gets it. If it's complex to you, don't feel forced to use it. If you can get by without it, do so. When you eventually get it, it wouldn't be that much of a struggle.

You'll still need to look up apis, function args and options, but that's just forgetting how to tell the computer what you want. Very different from not understanding why you need each piece or how to put them together.

laktek 2 days ago 2 replies      
My recommendation is to start with just ES6 and Web APIs. Use DOM manipulation APIs to render page. You can use History PushState [0] and CustomEvents [1] to handle routing.

Only part you might have to spend some time to figure out would be compiling and module bundling. I suggest picking Webpack2 [2] and going through its guides to get up to speed with it.

Avoid frameworks and UI libraries like React and Vue until you really have a good grasp of the eco-system and problem you are trying to solve.

[0] https://developer.mozilla.org/en/docs/Web/API/CustomEvent

[1] https://developer.mozilla.org/en-US/docs/Web/API/History_API...

[2] https://webpack.js.org/guides/

hoorayimhelping 2 days ago 1 reply      
>And I ask myself, why did we overcomplicate front end so much and how did we get to this point?

I would ask you this. You spent 5 hours fighting with React Router in an app that doesn't exist. What problem are you trying to solve that React Router is absolutely necessary? Are you trying to build an application that does something? Or are you trying to wire up a bunch of code that doesn't do anything but has all the most popular libraries of the day?

>Is it just me, or is this too complicated for something that should be simple

Both. It's not just you - a lot of people have this issue and there is some complexity here. But there is often a good reason for the complexity, and the need for complexity often comes after the simple problems have been solved. It really sounds like you're getting too far ahead of yourself chasing something that you don't need because it's what you feel you're supposed to do.

I'll go back to it: what problem are you trying to solve that you need ES6 more than ES5? Or ES3? It's been my experience that people feel the fatigue when they don't have a compelling reason to use the tools they're fighting with. I don't think "there's a ton of hype around it" is very compelling personally.

So my advice to fight the fatigue is solve your problems as they crop up and really take YAGNI to heart. Don't use a tool for advanced routing until you need advanced routing. You can build a React site using ES3 and script tags if you need to. You don't need a huge redux architecture when you're first starting out. Work on getting a webpage rendering "Hello, World" as soon as possible. Then, start adding the cool libraries that do all the neat stuff for you.

I'd also add that in this specific case, you're dealing with a library (React Router) that just recently went from alpha and beta to stable in the new (and latest in a stream of breaking changes) version which complicates things.

apo 2 days ago 1 reply      
> Now to you: how do you deal with JS fatigue?

If possible, ignore Internet Explorer completely. All the other current browser versions support ES6 (sans modules). A wonderful little utility called Reify allows you to load ES6 modules in node without transpilation:


For packaging those modules to use in a browser, there's Rollup:


Both are fast, even for largish JS projects. Reify allows me to write clean code and tests in Node using bone stock Mocha and Chai configurations. When I need to deploy to the browser, I reach for Rollup.

This method allows me to eliminate a good chunk of the complexity swirling around Babel and its dependents.

As far as React - I found the learning curve quite steep. Once I was comfortable enough with its core concepts, though, I found Riot to be more suitable (and quite a bit simpler) for the medium-sided applications I'm building:


Keeping with the attempt to promote clean code and avoid transpilation, I don't write Riot "tag files" (Riot's version of JSX) but instead use built-in ES6 template strings:


In other words, I strive to base my projects on pure ES6 only. No fancy inline markup. No bleeding-edge ES7 features. Just plain old ES6. When native import/export finally arrives for Node and browsers, there will be almost nothing needed to switch.

malikNF 2 days ago 1 reply      
1. If you are a new developer, please don't think you HAVE to make perfect decisions about your program. We all started somewhere and made mistakes and kept moving forward. Just don't worry, you will get better with time, and I bet this is how programmers we all look up to also work they learn and move forward and give up on trying to create the perfect.

2. Try to always ask yourself the question, "SHOULD I NPM INSTALL THIS LIBRARY ?" Asking this questions helps you question if you really like the way they do something, you get to ask yourself if you only want tiny a subset of the features it provides so instead you can do it yourself.

3. If you are up to it, and have some time, give Vuejs a try, Vue 2.0 with Vuex has been a delight to work on. Just take a look at https://github.com/vuejs look at the projects in there, the router, the store the boilerplate, everything is done by the same people responsible for the main library. It makes making things work together a whole lot more fun.

4. Use IRC channels dedicated to what you are learning some really great people hangout at IRC channels. Oh and reddit subs for your topic.

ysavir 2 days ago 1 reply      
I still code in ES5 with Backbone or Angular, depending on need. I've never felt nor seen a need to learn ES6 or React.

I think it's mostly a matter of accepting that you are not on the cutting edge of programming, and the confidence of handling a less dramatic codebase built with stable tools.

tifa2up 2 days ago 1 reply      
The best thing to do from my experience is to use boilerplates.

Everything is architected, most libraries are pre-installed, you don't have to deal with webpack (OMG, tell me about configuring webpack), they also have a lot of documentation and most importantly sample code.

If you're using react, I found this boilerplate to be inferior to none: https://github.com/react-boilerplate/react-boilerplate

carsongross 2 days ago 2 replies      
If you are willing to try Yet Another Javascript Library, I have been working on something that will make things a lot simpler:


Basically you annotate your HTML using plain old attributes, no javascript required, and your AJAX requests return HTML rather than JSON. It tries keep things very similar to more traditional web development, but leverages some of the HTTP features that normal HTML makes hard to get to (e.g. custom headers, non-GET/POST requests).

One really nice advantage of this is you can use REST/HATEOAS as originally intended:


If you are really sick of the javascript tool chains, it might be worth a look.

meagher 2 days ago 1 reply      
It might seem like a JS problem, but it's inherent to making software. When it works, you feel amazing. And when it doesn't, you feel terrible.

Not sure about a specific plan, but I would go for a walk, take a hot shower, or call it a night.


tedmiston 23 hours ago 0 replies      
As a perspective from someone doing React + ES6 work while coming from a background in Python ecosystem, the modern JavaScript ecosystem is kind of a mess.

Fragmentation across virtually every tool imaginable from language choice to build systems. Dependencies on dependencies on dependencies. Apps breaking regularly from using the bleeding edge of everything. The total number of downstream dependencies that just using create-react-app installs is kind of insane. And don't get me started about the anti-separation of concerns of embedding "inline" CSS in React components... That said, some things are simpler too. I hope the JS community starts investing more in quality and longterm unification, and it might happen but I'm not sure.

Many libraries and frameworks today are designed to support huge apps for huge audiences, but people use them even to build small apps for small audiences, when there might be a better (simpler) choice. Incentives are misaligned for the companies supporting the most popular frameworks to care about small apps though.

I think we are starting to get there, but the JS ecosystem today vs 35 years ago has exploded in every direction.

ufmace 2 days ago 0 replies      
Honestly, I'm not too impressed by the React/ES6 ecosystem either. I've built a little toy app in it, but I'm not seeing the awesomeness that people claim is there. As for what to do now, it depends on what your goal is.

If you just want to get a webapp working, I suggest going with Angular 1.x. It isn't super cool and trendy, but it's well-documented and battle-tested. It's very popular with enterprise shops, which you could say are the ones who don't care about how trendy the framework is and just want to get stuff done. Compared to the React ecosystem, it's pretty all-in-one - most of the core functionality you could want is in the main libraries, and setting up add-ons is easy. You don't need 50 different accessories and half-baked languages just to get hello world working. Javascript ES2015 isn't perfect, but its warts are well-known and well-documented, and it's supported everywhere.

If you're really determined to learn React and build something in it, you need to back off of what you're working on now and try another route. Maybe do something non-programming for a day or two and come back to it. Try something simpler with fewer helper accessories, or try a different starter kit. Maybe try using Webpack to build it instead of whatever else you're using? It isn't the simplest, but once you learn the basics, you should have a better handle on how your code comes together into the final js that the browser actually runs.

spankalee 2 days ago 0 replies      
It seems you're frustrated with frameworks and the web platform in addition to ES6.

I think the web platform has gotten a lot more accessible to developers and actually simpler in many ways very recently.

* Custom Elements offer a built-in component model that works with vanilla JavaScript and is in harmony with the DOM, rather than trying to replace it. No tooling is needed, and you can try it out right in your browser's dev console.

* ES6 classes standardize and simplify syntax for classical inheritance where before ES5 inheritance was either ad-hoc, or you had to buy in to a frameworks inheritance helpers (variations of createClass() or extend()).

* CSS's flexbox and now grids let you express layout much closer to your intent, instead of floats, auto-margins, large grid systems, etc.

* Shadow DOM solves CSS scoping and overly complex selectors. You can write very simple and straightforward styles when they're scoped to a shadow root.

* CSS variables bring a platform-native way to do variables, rather than having to do SASS/LESS/SCSS.

* JavaScript modules will finally solve and standardize the import and loading problem, which has spawned countless tools and entire tools ecosystems.

And, if you judiciously choose some non-standard tools, TypeScript brings a great experience for reading, navigating and type checking code, with a language that's as close to plain JS as we've seen recently. It's been much easier for my team to jump between projects with TypeScript's clearer type annotations.

Personally, I think the future of the web is _very_ bright, it's just not evenly distributed yet.

megous 2 days ago 1 reply      
I just don't use any tooling and/or needless abstraction. It's not necessary at all, just like it was not 6 years ago. I write ES5-only code if I need to target IE9+.

I still don't get the appeal of virtual dom. Browsers already have DOM, why use another crippled parallel one? It can only cause trouble and increase cognitive load when trying to do anything fancier.

I understand the value of having state in one place and being able to call some function to update the UI to match the state. But that is a separate concept from virtual DOM.

You can do a lot of useful stuff with real DOM, actually leveraging the power of prototypical nature of Javascript. Store your own data in it, add your own methods, etc.

I don't get much JS fatigue. Perhaps because I'm working in a bubble and don't feel the pressure to adopt the latest tech quickly.

Recently I had to extend fairly complex HTML-only web app that I wrote 11 years ago for a client, and it was quite fun. It's sort of nice to see that, while it's fun to write SPAs and everything, there are still ways to write web apps without a single line of JS.

abecedarius 2 days ago 2 replies      
I code straight ES6 with no extra libraries and no compilation step, loaded straight into a modern browser. I don't have to care about older ones. Nobody's paying for this, and therefore nobody's paying me enough to deal with the tooling people complain about. The web is a pretty nice platform now, when you can approach it this way.
pan69 2 days ago 0 replies      
I have personally noticed a similar thing as well. The solution that worked for me is to use less. In my case, I have settled for multipage applications (I find that SPA's increase the complexity of a UI exponentially) and I primary use jQuery for any UI related things with RequireJS to make it modular and Grunt to build/compile everything and obviously NPM for dependency management. I have used Backbone in the past but I don't find it very good. Other than that I using plain Javascript, the kind that runs in the browser. I don't really mind if I have to write function() or () =>.

One thing I'm very conscious of though is not to use jQuery to manipulate the DOM. I.e. I have a data object that I pass into a render method in which I "empty" a parent node and use jQuery .append to render the entire thing based on that data model. Basically, my template is a JavaScript function. Crude, but it works well. In an event handler such as a click I will update the data object and then re-render. I.e. a typical MVC style of flow.

Doing this allows me to actually build solutions rather than spending the majority of my time dicking around with a gazillion libraries, frameworks, transpilers and what's not. I find all of it interesting but I'm a one man band I have to produce working projects on time and on budget that do what they are supposed to do.

For my projects, my users simply couldn't care if the UI was built with jQuery or React. For your project that might be different though.

bluepnume 2 days ago 1 reply      
After burning a lot of time to get all the tooling I wanted working, for the umpteenth open source front-end javascript library I wanted to publish, I threw together this:


Pretty opinionated on the tooling it uses, but good if you just want to say "Fuck it, I want to clone some boilerplate, write some code, and build/distribute it", then worry about the finer details later.

_jezell_ 1 day ago 0 replies      
Fight the fatigue by realizing that tools like React and Redux aren't really designed to make your first 5 hours more productive, they are designed to help you manage your project as it grows by making it testable, debuggable, performant, composable, etc. Yeah your first 5 minutes on a vanilla JS or jquery project might be super productive... but write code like that for a year and you might not find the same to be true. The bottom line is that building software is actually rather hard, but it's not hard because of the first 5 hours. It's hard because of the next 10,000.
marcell 2 days ago 0 replies      
I had the same experience when starting with React. One thing I would recommend is to not use Redux. It is an advanced framework that's appropriate for large applications and teams, but will give you a headache when you're just starting out. Add it in pieces as you make your first React app.

Also, I would avoid using a boilerplate/starter project. Create-react-app should be enough. Many other boiler plate projects are filled with things you don't need when you're starting out.

doomsdaychicken 2 days ago 0 replies      
I've had a similar experience. After struggling with react and ember for a while, I ended up switching to using Vue, which IMHO, has a much simpler setup with Vue loader.
kennu 2 days ago 0 replies      
My solution to this was to choose a higher level framework (Phenomic) and treat all the included tooling as opaque. I was able to start writing and deploying React/Redux apps right away and only get deeper into all the tool details later.

Many people seem to advocate an opposite philosophy of using as little tools as possible, i.e. keeping at a lower level, closer to the browser. I can see the reasoning for that when you want to be a knowledgeable engineer who understands the details of how every tool works.

An alternative philosophy is just to understand the higher level framework, so that you can write React and it "magically" becomes a website. This could be compared to developing Ruby on Rails apps on Heroku without learning any details of the underlying deployment and server software components. By using a high level framework and ignoring most of the details, you can focus on the productive aspects of the work first.

In the end you're always working at some level of abstraction, and you can choose what is the right level for you and the project.

nickbauman 2 days ago 0 replies      
I don't use ES6. Since everyone compiles everything (including even JavaScript) down to a not-very-human-readable version of JavaScript anyway, you're free to implement in any language of your choosing that compiles down to that too. I would use a language that doesn't rely on the Node/NPM/Bower/Grunt garbage heap. Clojurescript is my choice.
andreliem 2 days ago 0 replies      
I moved to vuejs... 2.x is great. Had the same experience with reactjs as you.
liminal 2 days ago 1 reply      
I agree that JS tooling is out of control. I've been playing with Vue, and TBH have no idea how Webpack is munging all the files in the project into something workable. At this point I've given up on understanding. Likely in the future things will break and I'll need to figure it out, but for now I prefer to ignore it and get on with my work.
smdz 2 days ago 0 replies      
I had the same issue. The first time I used React for a quick POC without react-redux/flux, I ended up using react-states a lot - ignoring all the wisdom out there. It worked well only for the POC and ended up refactoring a lot later.

While react and redux are simple individually, react-redux is incredibly frustrating to start with. React-router isn't complex, but feels a bit confusing at first. After a 3 days trying to make sense of "why all the complexity", I was just hours away from dropping the react ecosystem. I was primarily evaluating it against Angular2. Having said that, investing time in React ecosystem has paid off very well

1. Once your app grows, redux will make it simpler

2. Avoid react component states as much as you can. But that doesn't mean that every event dispatches a redux action. I divide my components into connected(smart) and presentational(dumb) components. These inherit from parent base components. That ensures that only connected components can dispatch redux actions and others are just connected with handlers.

3. While this is a ES6 question, I prefer TypeScript (and VS Code). I know many prefer Flow, I've found TS to be better. It might take a few hours to integrate TS in your React code - its only. Strong typing props and states with TS interfaces tends to keep your code bug-free. I also use TS-decorators a lot

4. To keep things simple, I pass the entire redux state to all connected components. Having custom base-components helps avoid being too verbose. And type-defining accessed store-states makes sure I don't break things. And then the intellisense in the editor keeps me fast.

5. Learn webpack in detail. This is very important. If you don't you might find yourself being frustrated quite often.

For simpler Apps ... use VueJS. Using React-Redux and react-router to build a todolist is just over-engineering.

phyller 2 days ago 0 replies      
While we all wish there was a standard few polished tools that did everything we needed and had good documentation and testing tools, I think the reality is that what we want to do and are capable of doing using javascript is evolving so fast that the perceived chaos is inevitable. So you have to choose, what are you trying to do and why?

I think if you are a professional, you should specialize. Make a choice and stick with whatever you choose, at least for a little while. You don't need to know everything. Maybe you don't need to know the front end at all. The whole "full stack engineer" idea is nice, but I'd rather have someone who specialized in the front end working on my site than someone who has tacked it on to a bevy of other skills and is just trying to hang on. If you are a professional web developer, then learn the tools you need, keep everything as updated as possible, and try to learn one other thing that is up and coming. Don't wait to let the updates and releases pile up before you upgrade, stay on top of it, read the blogs, update your code. But don't worry about knowing all the frameworks. If you are going to be working in React for a few years, it'll be worth the struggle with the current project you're working on. You don't need to know Angular, React, and Ember, just pick one. Learn another one when your job requires it, or mess around with it on the side.

If you are a professional web developer and have not kept up, and need to know the new hotness, I recommend Ember. They are always absorbing the best features of other frameworks (they now render the DOM like React does), have developed a pretty good update process that helps you transition, and have middling good documentation. They try to keep things simple. It seems a lot less fragmented than React.

If you need to build websites, but it isn't your only job, you don't need to know a javascript framework. JS frameworks are awesome and I love them, but for 90% of stuff you are almost just as good without them and for the other 10% you still don't need them. Learn Ruby on Rails. It's been around forever, has great documentation, has everything you need from start to finish, and if you want to dip your toes in a JS framework, you can put that on top of your Rails project no problem.

If you don't need to know this stuff for work and are just trying to keep up with the field, just keep in mind that everything you learn will be obsolete in 3 years. Hopefully you are enjoying the process, because you'll do it again soon.

HorizonXP 2 days ago 0 replies      
I struggled for a while between create-react-app, and other boilerplates. Last month, prior to a GraphQL rewrite, I dove in and stripped out our build stack, and rewrote it to use Webpack 2.

Webpack is not easy, and it definitely took some reading and some work. But the documentation has become a lot better, and I was able to get it working extremely well. Now, I have the following features working:

- react-router integration

- redux

- server-side rendering

- vendor bundle to help with caching

- automated CI builds

- Docker to Kubernetes deployments

I would really suggest learning Webpack 2 and starting with a very simple toy project. Start adding features to it, and then you'll start to understand how everything fits together. Then you can take those learnings and apply them to your other projects. Once you get it, it's very powerful.

crystalPalace 1 day ago 0 replies      
I'm still using jQuery and Bootstrap although I often use Web Sockets in place of AJAX. I wanted to like React but found it to be quite fiddly in practical use. Vue.js looks very promising and functional reactive programming in JS could lead to greater awareness of functional programming and its benefits.
JDiculous 2 days ago 0 replies      
It is indeed a pain in the ass. Personally I worked off of boilerplates (uploaded my own as well, though haven't updated it in 7 months https://github.com/JeremyBernier/redux-react-isomorphic-mini...). Luckily once it's set up, you don't have to update it - unless of course you want the latest and greatest.
krisAU 2 days ago 0 replies      
The ecosystem has exploded over the last 18 or so months, while the language has had some dramatic additions.There are so many great tutorials and libraries with examples, but no clear 'best-practice' or agreed-upon adoptions to the additions to the language.I see this as a teething-stage to a very interesting period for programming languages and software development, as frustrating as it can be at times.
slurppurple 2 days ago 0 replies      
React, redux, babel, these thing can be cool tools to use, but if you're feeling fatigued just don't use any of them, vanilla ES5 + CSS + HTML are complicated enough by themselves. But I think it's easier than going all out on coolscript (that's a good way to describe it akamaozu)
tboyd47 1 day ago 1 reply      
Yes, it is truly awful. It's not just you. There are many of us, but we are powerless. There is no hope.

I was once a happy, gainfully employed Rails dev. No more. I am hoping to one day learn .NET core and escape.

ng12 2 days ago 0 replies      
> Is it just me, or is this too complicated for something that should be simple?

Your problem is that what you're trying to do shouldn't be simple. For better or worse the ES6 toolchain (Babel, Webpack, npm, etc) is very enterprise. It's intended for production-grade stuff where you need a lot of control. I do frontend for a living and these tools make my life so much easier. If you're just trying to build a simple web app you're better off just starting small.

hackerboos 1 day ago 0 replies      
Which version of react-router are you using? V4 is very straightforward I thought.
hansede 2 days ago 0 replies      
imho, try Vue
ww520 2 days ago 0 replies      
It took me days to finally get a frontend dev tooling pipeline set up.
meesterdude 2 days ago 0 replies      
checkout http://intercoolerjs.org - i found it brought some sanity to my JS
cellis 2 days ago 0 replies      
Use react-universally and rejoice. https://github.com/ctrlplusb/react-universally
alphanumeric0 2 days ago 0 replies      
Ask HN: Should I recycle my Bitcoin miners or save them as collectibles?
5 points by B1tchard0  2 days ago   6 comments top
kodfodrasz 2 days ago 1 reply      
Electronics shops in the EU are obliged to take electronics handed in by anybody (in consumer amounts) and take care of proper, environment friendly disposal of the e-junk. Just hand those in. In a few years nobody will care for outdated bitcoin mining hardware.
Ask HN: How to find problems to build a business around?
34 points by jiavascriptr  2 days ago   16 comments top 10
mvpu 12 hours ago 0 replies      
Well, there's a couple of ways. First, and easiest: copy someone's proven idea. Something you can do, you'd love to to, is proven to make money, and the margins work for you. Bonus: if you can do it better, cheaper, faster. This is the safest route.

Second, pick a problem you, your close family members, or your close friends have. A problem that's painful enough that they'd pay for, interesting (for you) enough that you can spend a few years solving, and practical enough that you can do it with the means you have today (i.e no investment). If it's a "new" idea, it's a lot of risk.

For most people, a small, niche, proven idea that makes money is good enough. It'll take a few years to try a bunch of experiments and see money, though. Grind it out...

Mz 19 hours ago 0 replies      
There is no one way to do this. Everyone does it differently.

Keep in mind that finding a thing you can monetize does not mean it is a thing you would be good at or that you would want to work on for years. Yet, those two pieces are critical to the equation.

kamphey 2 days ago 1 reply      
A fun way to poke around is to search twitter for the phrase "I wish there was a"
arkitaip 2 days ago 1 reply      
Get a job, preferably not in tech (but still doing tech), and spend months/years figuring out what works or doesn't work.
winkv 2 days ago 1 reply      
subscribe to oppsdaily( http://oppsdaily.com/ ) and nugget one ( https://nugget.one ) also pay them something so that the good service continues..
tylercubell 19 hours ago 0 replies      
This may be shocking to HN readers but go offline. Crazy idea, right? Join a business networking group, talk to people, and put yourself out there.
Pica_soO 2 days ago 0 replies      
Take current trends, extrapolate and determinate:

-which business will vanish and how will today's customer migrate

-What are the currently growing company's hiring, and what is amiss to replace this jobs, yet again?

-What is missing in modern life, and how could a app re-engineer social-life and society to provide it?The last one is the most noble, but also the most tricky.

nefitty 2 days ago 0 replies      
I've been messing with Mechanical Turk a bit, getting a feel for the platform, as I have some ideas I could use it for. When I was in worker mode yesterday I saw a task that asked the question that oppsdaily seems to be sending out to people: "What problem do you face at work that software might be able to fix?"

Pay people for their ideas!

zepolen 2 days ago 0 replies      
Identify your own problems. The reason is you have a much better understanding of what you and therefore your target user would want. Fixing someone elses problem requires working very closely with that person.
mindcrime 2 days ago 0 replies      
I don't think you're going to find an exact, repeatable, cookie-cutter approach to this, because if there was one, somebody would already be using it (and they probably wouldn't share). But while there isn't necessarily an answer, there are plenty of answers to be had, some of them trivially obvious.

So break it down... who do you think has problems? Well, businesses for one. So think about businesses. What do businesses need? Well, they usually need more customers. Or maybe they need to reduce costs. Or both. So think about how the technology you're familiar with could be used to help a business find more customers, or operate more efficiently.

Of course doing this in detail is going to be easier if it's a domain where you have personal experience, but if you don't, just come up with an idea, and then go talk to people about it. If you feel really strongly about it, maybe build a prototype to show off. But be careful of spending tons of time building something before you know if anybody wants it (note: I haven't always followed my own advice here. Also, never take advice from me.)

Another element is: read books. Lots of books. Preferably books about business (sales, marketing, promotion, operations, organization design, strategy, etc.) This will help give you the understanding needed to link technology with business problems like "find more customers" or "reduce costs". What you read in books will always be somewhat non-specific though, so you have to - again - loop back to "talk to people. Lots of people."

If a particular industry interests you, read up on it specifically. Subscribe to the trade journals in that industry, and go to the conferences and trade shows that people in that industry go to. Talk to people there.

Read The Four Steps To The Epiphany by Steve Blank.

Use LinkedIn to find people to connect with and talk to. Favor having actual conversations with people over doing surveys using SurveyMonkey or the like.

If you do enough of all this, at some point, you'll probably come up with a pretty good list of possibilities.

Note that while this is pretty simple, it's not easy. People won't return your phone calls or emails, or will agree to meet you and then not show up. You'll come up with what you think is a great idea, then start looking around and find that 375235028372512.7 other companies are already doing something in that space. Or you'll fall in love with one of your ideas too early, spend a ton of time building it, and then find out that that A. nobody wants it AND B. 375235028372512.9 other companies already built something similar. Etc., etc., etc. Don't get discouraged, just keep plugging. Read this essay by pg: www.paulgraham.com/die.html

Google will kill Python 3, and it might be a good thing
24 points by mk44  2 days ago   23 comments top 16
yladiz 2 days ago 2 replies      
Google isn't going to "kill" Python 3. This is a relatively niche use case (grumpy only converts Python 2.7 code into Go code, and it's not 1:1 as it's missing features like decorators), and there doesn't seem to be any intention on adding new Python features into grumpy. My guess is that this was made more for Google's purposes of migrating some of their legacy Python 2.7 code to Go, in an effort to move towards Go internally. It also doesn't run Python code directly, it trans-compiles Python to Go code, which wouldn't work for some workflows. For this to have any possibility of becoming another Python runtime, it would at the very minimum have to support every feature or have a real reason to not support the specific feature in Python 2.7.

The other thing, arguably more important, is that there isn't really a community around grumpy, whereas there is around Python 3 (the latest nontrivial commit was 3 weeks ago for grumpy, whereas the latest nontrivial commit was 6 hours ago for Python). Even if Google did try to build a community, many people worry that Google will just abandon software when they want to, so people would be hesitant to work with this software long term, which means developers wouldn't want to build any software for it; the majority of developers developing new Python code are doing it in Python 3, and those that aren't are most likely using six rather than only 2.7 unless they're supporting a legacy codebase that either they don't want to or cannot upgrade to Python 3 or to upgrade using the six library.

Python 3 may, however unlikely, "die", but this and Google won't be the death of it.

softinio 2 days ago 2 replies      
i totally disagree with your view. Python 3 of today is fantastic and the community is fully behind it.

Yes there will be legacy code that will remain on python2 for ever, but this is normal.

I am personally loving the new features of python 3.6 in particular and would not want to look back.

Google has a lot of code in python2 they want to move to go. It would be bizarre to see anyone start a new project in python 2 because of grumpy.

Love the python community. The future is python3. Enjoy!

upofadown 2 days ago 0 replies      
This seems to be based on the false Python 3/2 dichotomy.

Python 3 is popular enough that it is effectively unkillable. For exactly the same reason Python 2 is also unkillable.

Language adoption is never a zero sum game.

drallison 1 day ago 0 replies      
I think the choice of title for HN is unfortunate: it implies (for me) some inside knowledge about what is (or will) happen to Python. Casual HN readers will see the death of Python as a done deal, whereas the truth is "the reports of [Python's death] are much exaggerated".
wooptoo 1 day ago 0 replies      
Not true at all. Python3 evolved in leaps and bounds in the last few years gaining many essential features for a modern programming language. Things like async/await, new frameworks showing up all the time shows a growing ecosystem. The fact that Google prefers Go is understandable and does not mean that python's importance is diminished in any way.
otakucode 1 day ago 0 replies      
Ha, no. Google can continue toiling away in the caves of antiquarian history if they like, but anyone with half a brain will be using Python 3. All the things mentioned, built in concurrency, speed, easy package management, are all in Python 3. I have no idea why Google doubled down on Python 2.7 years ago. I mean, generally they are competent technical folks. But 2.7 is littered with all kinds of obtuse mis-steps in the development of the language. And it's missed out on the last several years of feature addition to Python 3 (asynchronous primitives among other things). Why would one plant their flag in something like that? And I mean come on... print as a keyword? How can anyone not spit at that?
tedmiston 23 hours ago 0 replies      
I think the argument for runtime fragmentation and package fragmentation is a bit exaggerated. Most people use pip. Most people use CPython. People make tradeoffs when they need to use another interpreter for performance reasons [1], but CPython is the reference implementation. Just because alternative options exist for specific cases doesn't mean there's fragmentation in the ecosystem at large.

[1]: http://docs.python-guide.org/en/latest/starting/which-python...

scrame 1 day ago 0 replies      
This reminds me of an old question on reddit after their HPHP compiler was announced and someone said asked if it was going to take erlangs role.

The answer is no, purpose built runtimes do not uproot established projects in another domain, and a proprietary corporate project to migrate legacy code will not fix issues of fragmentation. In fact, it just kinda piles it on.

If you want to see how effective Google has been in fixing long standing python issues, check out the history of the Unladen Swallow project.

eevee 1 day ago 0 replies      
It's bad that the runtime is fragmented. Google will fix it by creating a new runtime
git-pull 1 day ago 0 replies      
(One topic I see being brought up when it comes to runtimes, python 2 and 3 is C API stuff. It still bubbles up to the top now and then. This isn't related to grumpy specifically, but the FUD I've been witnessing)

Maybe I'm far underestimating the amount of custom C API being used in production at places or been hanging out in the wrong places. I just doubt that intention is to kill off anything. Even by unintended side effect.

A great deal of the python code I see with C extensions already is Python 3 compatible and even has wheels for them. I think it used to be numpy and libraries that pulled it in as a dependency. We're at the point where compatibility from 2 and 3 is so darn good in libraries we pull in I hardly notice it anymore. [1]

I do write Python 2 + 3 compatible code. The differences in the syntax itself are trivial. A compat module [2] will do the trick assuming you have your own custom C extensions, which most don't.

(Going off on a bit of a tangent) There has been some deliberation of what has to be done to get around GIL: The other thing is I haven't been convinced of is the idea being thrown around at conferences and on mailing lists that breaking the C API is this world-ending scenario. Yeah I understand the disruption, but what % of the code, assuming you're in the minority of python developers doing custom c extensions, that you can't update some API signatures?

[1] https://python3wos.appspot.com/

[2] http://lucumr.pocoo.org/2013/5/21/porting-to-python-3-redux/...

jchassoul 2 days ago 0 replies      
this is all about confusion and fud, not grumpy of course, the way it's presented in this thread, sucks to be a n00b in 2017.
akoster 1 day ago 0 replies      
This is another python 2 fork that reading this reminded me of: https://github.com/naftaliharris/tauthon
Eridrus 2 days ago 0 replies      
Python's primary value is the ecosystem. With a general agreement to move to Python3, Google would just be handicapping themselves. An interoperable Py2/3 interpreter seems more likely.
vgy7ujm 1 day ago 0 replies      
Better come over to Perl before it's to late guys ;)
lcnmrn 2 days ago 2 replies      
How do you explain the fact TensorFlow targets Python 3 for speed, features, etc.?
codeonfire 2 days ago 0 replies      
Google culture is all about arrogance and elitism. Their coder/snobs are definitely not pro python any version. They have their own internally developed ivory tower languages with horrible tooling and features to champion.
       cached 14 March 2017 20:05:02 GMT