Ask HN: I'm Tired of Hacking. What Do I Do? Please Advise. - <AUTHOR> I have been developing web apps for almost 8 years now. I worked at agencies, development shops, I freelanced, I was CTO of an startup, had the six figure salary, etc. I just can't do it anymore. I hate sitting on my ass all day writing some code. My neck has been hurting for two years for spending so many hours in  front of the computer. I kind of have been hating my career for a couple of years now and I have no clue about what I should do. I'm in my late 20's and I don't have a lot in savings left (six months of living costs at the most). I quit my job last year to work on a webapp of my own. I finished about 50% of it and haven't been working on it since. I got some freelance web maintenance work just to help cover some of my bills I get paid monthly and it's really easy stuff but I find it very boring as well and I wish I didn't have to spend any time working on it. I'm not lazy I just got tired of writing code and this industry in general. I always delivered the best work. In all of my previous jobs and was usually the best developer, engineer, etc.
Has anything like this happened to any of you?
What do you recommend I do? <comment><USER2> Take one month's expenses, move out your pad if you're renting and go teach English overseas until you get your senses back.

Everyone needs their 2-years of fucking around backpacking before they hit 30. I am just coming back from mine; 20 countries in 2 years and stories for a life time. Cost me less than 10k a year to live like that.

Cheers!

<comment><USER3> > I am just coming back from mine; 20 countries in 2 years

I'm curious. 1) Did you bring your own netbook/laptop along and 2) How well are you handling your "re-entry" (e.g. hanging out with friends who knew you pre-travel)?

<comment><USER2> I took a laptop and a digital camera with me and ended up hating them every step of the way. My first travels I did Africa and the middle-east, the second I did asia.

In countries where I have "based" myself, anything more than 4 weeks; the laptop has been a good useful distraction. When you're shocked by a local culture which you have to deal with for extended survival (anything more substantial than a western-style hotel and continental breakfast) you will end up missing speaking your familiar language, eating familiar foods, or just walking outside without a guide at hand (printed or in-flesh.) Also there is that strong sense of alienation when everybody around you is _looking_ at you, even you have been with them for weeks. In these times, firing up your slackware box and seeing what you used to work on in more homely times is a good psychological aid.

Cameras I didn't like. I hated being looked at and treated as a "foreigner", and I feel like I am doing the same when I point a lens at a "local" person, building or artifact. It felt like I was capturing their soul to take back home with me as a novelty. I have no photos of my travels, but I have friends. Hundreds of good friends from all walks of life; fishermen, priests, pimps, students, political activists, drug traffickers, aid workers, moms, bicycle repairmen, white-house staffers, journalists you name them.

Coming back was hard. I have lost 80lbs and came back with more street-sense than I could imagine. When I landed at Dulles Airport I had $60 to my name and I had the photo of a new girlfriend in my wallet. None of my family or friends had the time to give me a ride home, so I took the bus, for the first time in the U.S. Before then I have taken the bus a few times on nights-out when I knew I wouldn't be fit to drive. This time it was just what I was used to do. My instincts where different; I took a window seat in the way back that was close to an exit door. Something that you do when traveling in dangerous places (you don't sit in the front, or police and bandits will pull over the bus and shake you up for bribes; and you don't sit sandwitched between two locals, unable to escape.)

I also came back with 2pack a day cigarette habit. Hi alcohol tolerance. A very unprofessional appearance. An appetite for anything served to me on a plate. A habit of carrying a bag with basic survival necessities. Indifference to crashing anywhere. Hitching rides with total strangers. And finally, a weird ability to connect with people in the underworld.

My first few gigs have been freelancing gigs doing anything and everything. It took my girlfriend the last few months polishing up back to shape; I don't think I would have come back if it wasn't for her, actually. I have seen many long-time Western expats dying in local hospitals of controllable diseases; the ex-military Americans are most prone to this. Diabetes, high-blood pressure, liver problems; I have pitch in $5 donations to so many expats in hospitals I didn't want to be one of them.

Allot of stuff, most of it unfit to print.

<comment><USER4> That's beautiful. Are you still in the DC area? We should get a few people from HN for some beers.

<comment><USER5> You have inspired me to create a Hacker News meetup group:

<http://www.meetup.com/Hacker-News-NOVA-DC/>

Get on board if you live in the DC metro area.

<comment><USER2> Nice! just replied to your email as well :-)

</comment></comment></comment></comment></comment></comment><comment><USER6> Find a place to work where you're _not_ the best developer, engineer, etc. It's more fun when you're learning.

<comment><USER7> Agreed, boredom comes from lack of challenge. There's lots of non-challenge available in day-to-day web development.

</comment></comment><comment><USER8> "My neck has been hurting for two years for spending so many hours in front of the computer."

Is is possible that you feel crappy and are blaming your work environment?

I've been sitting in front of a computer for 30 years and my neck _never_ hurts. In fact, nothing does.

No matter what you decide, you _must_ take care of yourself. If you don't feel well, you won't be happy doing anything. There are many references on the web on what to do, some excellent and some horrible. I'd be happy to share what I do to feel great if anyone is interested.

<comment><USER9> Yes, share what you do to feel great.

<comment><USER8> Exercise:

I have scoliosis and I've tried everything for sore back and neck. Nothing has worked as well as the 5 Rites every morning before breakfast. I think #3 has helped me the most, but who knows. I'll leave the secret with the ancients. I do these _every_ day.

<http://en.wikipedia.org/wiki/Five_Tibetan_Rites>

In addition to that, the usual:

\- get my heart rate into the training zone (140 to 170 BPM) for 30-40 minutes 3 to 6 times per week (jogging, stairs)

\- heavyhands

\- shovelglove <http://www.shovelglove.com/>

\- chin-ups, pushups, dips

\- Hindu squats <http://www.youtube.com/watch?v=TuyAdr4RKsY> Do 500 of these every day and you'll be in the best shape of your life

That's it. I don't spend much money, but I do _something_ every day.

Eating:

This is more (un)common sense that anything else. My 2 favorites:

[http://www.soilandhealth.org/02/0201hyglibcat/020121horne/02...](http://www.soilandhealth.org/02/0201hyglibcat/020121horne/020121toc.html)

[http://www.amazon.com/Eat-Live-Revolutionary-Formula- Sustain...](http://www.amazon.com/Eat-Live-Revolutionary-Formula- Sustained/dp/0316735507/ref=sr_1_1?ie=UTF8&s=books&qid=1243470286&sr=8-1)

<comment><USER10> i got scoliosis too, and i went to chinese medical master (he also does accupuncture) that specializes in massaging and bones structure

he didn't use any equipment. i was to sit on a chair, knee/shin next to each other. an assistant locks the knees by hugging using both hands so my body cannot move easily.

he then 'measured' my backbone and then stretched my arm, twisted my back based on his initial estimate and then do the measure-stretch-twist loop. it took him quite considerable force (he's sweating)

the whole process took about an hour and must be done in many visits (mine's 3), depending on severity

i felt better but cannot provide statistics/numbers; however, my cousin can. her father is a modern doctor who cannot believe ancient chinese methods. he took x-rays after each visit. he told me that during 2 weeks of therapy, her scoliosis improved from 40deg to 20deg.

i want to visit the chinese medical man again, it's been more than 2 years. there's no 'cure' or 'pills'. i believe if i do better pose i won't need to go visiting him again ... but i'm as uneducated as layman about correct posture so i always revert back to old problems

if you have resources on this please share. the hindu squat looks very tiring -- 500 of these in one go?

btw i'm now using stand-up desk (like a week or so) and my back, heel, ankle and toes are aching and cramping. is it to be expected especially for scoliosis guys? after feeling pain, i just sit for a while. i guess after a while i'll develop endurance

thx for the links

</comment></comment></comment></comment><comment><USER11> Get a:

a) Girlfriend b) Dog c) A hobby that doesn't involve electricity

Allow your job to become just one part of your life ... not what defines your life.

<comment><USER12> Getting a dog has completely turned my life around. I wasn't uber depressed before, but I had some days where basically looking at the news made me so disgusted to be a human, I could hardly work. I was working at home, living at home, hanging out at home, etc... Get a dog, get outside 3 or 4 times a day. Having a little creature be so happy to see you every time you walk through the door he can barely contain himself ALWAYS puts a smile on your face. Obviously, you know yourself better than I do, but a dog would be my suggestion. It makes everything better, life and work.

<comment><USER13> Well put!

I adopted a black labrador puppy last thursday. She's 3 months old and she's pulling me outside 6 times a day! We spent 2 hours at the park today because she kept laying down on the grass during the walk home. Quite a difference from those "err i havent been outside in 3 days" scenarios.

pics here: <http://www.flickr.com/photos/pauls>

<comment><USER11> Cute pup ... Good luck with her. Here's mine: [http://farm4.static.flickr.com/3014/2759237541_1d360e7795_b....](http://farm4.static.flickr.com/3014/2759237541_1d360e7795_b.jpg)

</comment></comment></comment></comment><comment><USER14> Sounds like a case of burnout to me. I think a lot of people would envy your position, especially given today's economic climate. Without knowing anything of your situation, except that you don't want to work on computers any longer, I'd suggest taking a step back and really analyze your situation. Have a serious conversation about your immediate future with someone that you respect (parent, mentor, older friends/siblings, fellow hackers) and see what they'd say about your life, in general. Also, get out and socialize more. You obviously have a knack for putting together successful projects, so use those skills to help other people out. You will feel better about lending your skills and time to someone less fortunate.

Also, read some books? The 4 hour work week comes immediately to mind. You haven't defined success for YOUR life yet, it seems to me.

<comment><USER15> I find it interesting that "spouse" or "significant other" was not in the "someone that you respect" list.

<comment><USER14> For some reason, I pictured the original poster as single.

</comment></comment></comment><comment><USER16> It's spring.

Go hike the Appalachian trail all summer.

You living expenses will be food + replacement socks + fuel for your camp stove.

Four months from now, you'll be wonderfully destressed, and will have barely touched your savings.

<comment><USER17> Awesome Idea!

<comment><USER18> Yes! Anything closer to El Paso TX?

<comment><USER19> <http://en.wikipedia.org/wiki/Continental_Divide_Trail>

Also useful: [http://www.pmags.com/joomla/index.php/Backpacking-and- Hiking...](http://www.pmags.com/joomla/index.php/Backpacking-and-Hiking- documents/cdt_doc.html)

<comment><USER18> This is why I love HN.

Last weekend we went to Matacanes near Monterrey, Mexico. It was a great trip. I went with a group of 8 hackers from work. Turns out the other 10 people in the trip were also hackers.

</comment></comment></comment></comment></comment><comment><USER20> Go to the gym every morning. Ride a bike, get active. For some reason an 8-10 hour day in a chair is nearly unbearable unless I've done some sort of activity in the mornings. It may be a low risk thing to try.

</comment><comment><USER21> You're gonna live a long time, you've got time to change direction. Find a junior job doing something completely different, or even start studying something, anything.

Only things that can happen are that you become happy for you new job, or you fall back in love with programming.

Another option: I know an illustrator who was getting tired of the endless line of demanding clients wanting the same old work, so she decided to spice it up by taking internships one week of every month. She tries to make the internships as different as possible, examples being a baker, a clothing shop, some print/dtp shop, etc.

Maybe that could be a less radical way of getting some fresh perspective.

<comment><USER22> Yes. Most of the people giving advice on this thread assume that programming is, ultimately, the right choice for this person. It might just be the case that programming is the wrong profession.

</comment></comment><comment><USER23> welcome to burnout. its absolute hell. before depression sets in and you become irreversibly emotionally detached and drained, you _have_ to branch into hobbies that bookend your life as a hacker.

personal advice: buy a synthesizer or a nice digital camera. or a bike (but you have to use it though, that part is _key_ , my friend. _key_.)

professional advice: use a reasonable chunk of your vacation time and money and get out of town for a week or two, sans computer. dont stop thinking about what you want to accomplish with hacking away, just learn to prioritize thinking about it, and to be a little more clear-minded. i find walking about from something for a week both annoys the hell of out everyone around me (not so good) and gives me the presence of mind and matured sense of whats do to and how to do it that i can walk back in and, well, do it.

just find the hobbies and then find the balance.

<comment><USER23> something i forgot to mention the first time: i started playing fantasy baseball with some friends who are really into it, and its been a blast. its also a huge stress reliever for most of the folks involved. definitely not for everyone, but it works for us.

</comment></comment><comment><USER24> Yes, this has happened to me. I found a part-time gig, and worked 20 hours a week, while hiking in the Rockies with all of my free time. I then disconnected completely, and did manual labor for a year.

In short, turn off the computer. Find other interests. Determine your true priorities. Once you have done that, you will likely be able to come back and enjoy technology again because it will be supporting your true self, not defining your self.

</comment><comment><USER25> Do Emergency Medical Technican Basic training at your local community college. Most places have night classes that can be completed in about 3 months. Usually you can find a job or volunteer, and before you know it you'll be faced with life or death situations. Its much easier that going to Iraq to escape it all.

</comment><comment><USER26> Dude, it sounds like you are really stressed out. Consider the situation you are in (eerily similar to my own, but I haven't left to work on my webapp yet) : lots of job hopping, obvious talent for CS, staring in frustration at being unable to execute a dream, bit of money saved up. I think you need to recognize that you are in a transition period in life and that life is about your emotions and your body as well as your intellect and your wallet. First off, take a yoga class TOMORROW and learn to relax and look at ergonomics info to learn how to avoid neck strain. You're unlikely to make your way out of a desk job if you want a decent life in this day and age. Allow yourself to be completely passive, to attain the beginner's mind and look at the world with no judgement or preconception. You don't need to make a decision now or tomorrow. I think you're burnt out. Relax for a month and do nothing but take things IN don't try to put anything OUT. Rejuvenate and refresh, think about your life. Have a few drinks or whatever turns you on. After a few weeks, take stock and realize you only have so many options ahead of you to make money and live a nice life. Pick the best one, make a plan and then execute on it. Make sure it is realistic and can be pulled off (at least a visible stage 1) in 3 months. If you go back to CS don't be afraid to watch some lectures on academicearth to make sure your bases are sound. Good luck!

</comment><comment><USER27> If you play an instrument, then make music! It's time for you to join a band and hit the road, my friend.

If you have a passport, as others have said, get the hell out of dodge. Get your shots though, you don't want to come back with broken kidneys.

Have you considered attending Hedonism II? It's a lot of fun...

<comment><USER28> I can't recommend this first point enough - keeping a banjo next to my desk at all times has done wonders for my mental wherewithal.

It is impossible to feel frustrated while playing a banjo - FACT.

<comment><USER29> Even if you suck at playing banjo?

</comment></comment></comment><comment><USER30> Try something totally different. It could be a totally different technology: say Ruby on Rails or maybe Flex/Flash & Actionscript. How about becoming a designer? Something you have never considered before or never thought of as worthwhile. Something that brings back the "lightness" feeling you seem to be missing.

<comment><USER31> I think change is certainly key as the catalyst for a turn around your state of mind.

That said, from my experience, I wouldn't expect to ever have an immediate, deep psychological turn around in response to any particular change, even a radical one - it always takes time. But change is key.

Some common wisdom: It's easy to be scared of change - often easier to deal with a bad situation - not even really realize it's that bad - than face the unknown. But the unknown is almost always not as bad as you think.

</comment></comment><comment><USER32> I was, and still am, in a similar situation.

I picked up the requisite non-tech hobby that I'm now quite passionate about: in my case, it was automotive modification and racing. I have a veritable performance shop in my garage now: I taught myself welding and metal fabrication, aerodynamics, fluid dynamics, engine performance, fuel delivery, and a host of other skills. I even came back around to the tech side of things by getting involved in electronic engine management (reflashing and reprogramming OEM ECUs, logging, performance tuning, etc). It's exciting stuff, and introduced me to a very different community of people than I'd previously known.

Echoing some of the other comments here: I married a woman who is possibly the perfect companion for me, something I try very hard to be for her. We also have two dogs, another item I saw mentioned, and they've been a joy.

After all that, I still spend 8 hours (minimum) each day doing work that has lost it's lustre. When I started my career, there was exciting work to do: in 1994, my cohorts and I started an ISP. I did work in that vein for about six years, and it was some of the best years of my career (my personal life was a shambles, but the work was incredible). Today, that's reversed: I have a rich private life, but the work is dull.

So, my long and winding road to a point: the suggestions to get a "significant other", pet, and non-tech hobby, while well-intentioned, won't actually fix your problem. Certainly, take a bit of time off and decompress to make sure you're not just in need of a vacation, but that's essentially what you've already done. And the fact that you have neck pain is significant: you should certainly get that addressed before making substantial changes that might not be necessary afterward.

But, at the end of the day, you'll still have a problem with being bored of the work you're doing, and you can only fix that by finding new work to do: either new problems/niches in your current field that you haven't tackled before, or start looking in the direction of fields that you can get passionate about.

</comment><comment><USER33> Do you know what you'd rather be doing instead of writing software?

Because, if you do, then you should probably make a list for yourself. On that list you do this:

#1: Job I don't like.

#10: Job I want.

Steps #2 through #9 should be the next N things you need to do to do whatever it is you'd rather be doing.

Software is not the only place for smart people to work, a lot of people burn out or discover that it's just the wrong career for them.

Don't force yourself to work in an industry that you don't like. You're young, and it's far better to work towards something different now instead of wasting away doing something you hate.

Fortunately for you, the world rewards smart people these days; regardless of the field. You'll do fine anywhere if you did fine in software.

<comment><USER34> It's good to do this in opposite order. IE, list "Job I Want," and then list the steps you need to take to attain it, backwards. It's easier to start from the end and work backwards, when planning, than starting from a blank slate.

</comment></comment><comment><USER35> Start by fixing the physical pain. I started getting pain from sitting 12+ hours in a chair, too.

I improved my posture by taking Alexander Technique classes. <http://en.wikipedia.org/wiki/Alexander_Technique> <http://www.vancouveralexandertechnique.com/>

Then I improved my flexibility by taking up yoga. I've dropped 25 pounds since last summer.

Figure out the "mental" stuff and existential angst after you get physically healthy.

<comment><USER36> and do some PNF stretching :) <http://en.wikipedia.org/wiki/PNF_stretching>

</comment></comment><comment><USER37> Totally second the travel, move to a strange place, do something random like work in events, theatre, a coffee shop, meet new people, get stories. I was in a similar depressed/burnt out situation & moved and it totally rebooted my life.

Could also try moving away from CTO to a CEO type role if you want to stay in web/startups without the coding. Loads to learn, plenty of cool people to meet and very intellectually stimulating.

</comment><comment><USER38> I'm certain you'll get this comment in spades, but as a relatively young an unencumbered person you should go away and do something else.

I spent a year on "sabbatical" in my mid-20's after being laid off from another company with a great future that didn't quite get there. Best thing I have done.

Did traveling, volunteer work, odd jobs to earn extra cash.

There is nothing as refreshing as not only not knowing the date, but what day of the week it is.

</comment><comment><USER39> Sort of a meta-comment, but why do "Ask" threads on websites like HN rarely have the OP participating in the discussion beyond the original post?

<comment><USER36> maybe the OP is taking everything to heart? :)

</comment></comment><comment><USER40> Don't burn your bridges and get a manual labour job for a few months.

</comment><comment><USER41> Well I personally like to bartend when I'm not hacking. I find it really helps me reload. It's great, I get to be super social and make money. Its not even really like work.

And its great when your talking to girls cause you can make yourself sound like a super hero, "Yah, I'm a hacker by day, bartender by night!" Chicks dig super heroes.

</comment><comment><USER42> I was in a similar situation a few years ago. I worked for a couple of top software companies, and had a job that most people would have loved. But, somehow I was unsatisfied. It got harder and harder to do productive work. After some soul searching, my conclusion was that I just didn't want to be an engineer.

I decided to go to business school. Two years later, I'm graduating and starting a software company. But I have a new set of tools and contacts that I didn't have before, as well as a different perspective on business. I'm looking forward to doing things other than just coding (although I'm going to have to write some code, since there are only three of us).

Have you considered grad school? A lot of ex-engineers do well in finance or law. Business school in particular gives you two years to explore potential job options and figure out what you want to do with your life.

</comment><comment><USER43> Quit hacking? You should know better what to do with your life than anyone else. Find what you love.

</comment><comment><USER44> Yea - so, I have a family which eats up a lot of my time, but beyond that, not long ago I would spend all my living free minutes reading tech books and writing code on projects I never finished...really just to keep myself sharp. I've done this for 10 or so years. It was a passion/obsession, whatever. In some strange twist of events, I've been listening to a lot of dubstep lately, and I just decided I wanted to create my own for fun. So, instead of reading textbook X all day, I bought some music software and now I'm trying to learn how to create my own musical compositions on the 'puter. It is the most fun I have had since I can't remember when.

</comment><comment><USER45> This is such an awesome post!

I am doing fairly well too and I have hit this exact same problem. My plan of attack is 5 prong, feel free to use any of them.

1\. Minimize visual stimulation outside of work hours. No computers, no reading, no tv.

2\. Pick up hobbies that require you to socialize or be active. My personal ones are; golf, tennis, basketball, yoga, running a marathon.

3\. Dog! I just put a deposit on my own labradoodle, I think it will help me get out more.

4\. Study happiness. Just the act of reading self-help books actually makes you more happy. I'm almost done with the Happiness Hypothesis and I'm about to start Feeling Good.

5\. I just started dating a girl, and that has been nice too. Just stray from the dinner and a movie dates.

</comment><comment><USER46> Go to school, and learn a new skill, something that has always fascinated you but that you've never pursued. Meet new people, expand your horizons. Defer your student loans.

Also, if you're good at what you do (and it seems like you are) - you'll probably end up coming back to it, but just need the time out to recharge and refresh, or maybe you'll just become a painter because of all the talent you had that you never discovered earlier because you were too busy writing code.

Best of luck.

</comment><comment><USER47> Stop

</comment><comment><USER48> Recent thread of burnout may have some helpful advice:

<http://news.ycombinator.com/item?id=626616>

</comment><comment><USER49> A List Apart just posted an article on burnout: <http://www.alistapart.com/articles/burnout/>

[edit: dupe sorry.] <http://news.ycombinator.com/item?id=626616>

</comment><comment><USER50> Happened to me, though I'm not having a long history like you. Every once in a while I get that exhausted feeling. But fortunately my mind says what should I do. Mostly it's going to parents, go & meet non-techy friends, going on a trip to countryside etc.

</comment><comment><USER51> How about learning something else ? You've got time, why don't you learn a musical instrument ?

</comment><comment><USER52> 1-Take a long walk (walking helps a _lot_ to think about problems)

2-If you find a library, stroll inside

3-Find a book or two by using your immediate taste/intuition. anything will suffice.

4-Let it flow. You will eventually find something to do.

I would be very surprised if you don't find anything this way.

</comment><comment><USER53> I'd recommend some hard physical work, be prepared not to work amongst your peers, but do level with them. It can be most rewarding doing physical work, and see society through different eyes for a while.

</comment><comment><USER54> If you want to apply your quantitative skills to a more active outdoor environment, you could consider some type of structural or civil engineering.

</comment><comment><USER55> make random things. use your creative side and have fun with it. I do it all the time when I'm struggling with a problem or taking a short break.

</comment><comment><USER56> Read "Scar Tissue" (Anthony Kiedis' autobiography)

<comment><USER57> I'd actually second this. He faced several periods of pretty intense change in his life, and he was battling his drug addictions, and his experiences are pretty ridiculous and very inspiring. Also, when it comes to living on a shoestring, this guy's got it down.

</comment></comment><comment><USER58> Work on an IPhone game instead :)

</comment><comment><USER59> Take a break, dude. You don't have to backpack around questionable countries but 6 mos of living expenses will give you a comfy stay in lots of places.

I spent 6 weeks in New Zealand last year, almost totally offline. NZ is super cheap right now, safe, and they speak English... not a huge culture clash, but still different, and most importantly, far away.

If you're constantly cramming your life up with things and activities, you can't hear the little voice inside you that is trying to guide you. You need quiet, space, a break.

You might come back feeling rejuvenated and excited to do what you've been doing (altho perhaps a different approach). You might realize finally that it's really not for you, and get an idea of what might be.

Either way, it's scary but worth it.

</comment><comment><USER60> Travel, take a break. Seems like burntout and you need to take a vacation and then decide whether you really want to quit this industry.

</comment><comment><USER61> I don't think you were as successful as you made it out to seem. Shouldn't you have a nice cushion to sit upon and practically retire (:</comment>


Instagram's lax privacy practices let a trusted partner openly flout its rules - <AUTHOR> https://www.businessinsider.com/startup-hyp3r-saving-instagram-users-stories-tracking-locations-2019-8 <comment><USER2> I'm a bit confused what the lax privacy practices are supposed to be. The stories were public and companies scraped them (IANAL but as the article even points out, hiQ vs LinkedIn seems to mean it's legal). They seem to have only scraped public posts as well.

<comment><AUTHOR> > hiQ vs LinkedIn seems to mean it's legal

Legal, but very, very against the ToS at minimum.

</comment></comment><comment><USER3> People are doing a lot of promotion on IG. I wonder how long that will continue for.</comment>


A Tour of Inline Caching with Delete - <AUTHOR> https://webkit.org/blog/10298/inline-caching-delete/ <comment><USER2> A lot of interesting info on how modern JavaScript VMs work!</comment>


Ex-Goldman programmer's code theft conviction revived by New York court - <AUTHOR> http://mobile.reuters.com/article/idUSKBN1582L0?utm_campaign=trueAnthem:+Trending+Content&utm_content=5887c88804d301274c98a2a1&utm_medium=trueAnthem&utm_source=twitter <comment><USER2> Here's a background article in Vanity Fair [0] about the previous installlments of this Kafka-esque story, by Michael Lewis, who later incorporated it into his book, _The Flash Boys_ , about High-Frequency Trading (you may know Lewis for some of his earlier books, _Liar 's Poker_ and/or _Moneyball_ ).

I'd quote things from the Vanity Fair piece, but there's so much there worth reading -- highly recommended.

[0] [http://www.vanityfair.com/news/2013/09/michael-lewis- goldman...](http://www.vanityfair.com/news/2013/09/michael-lewis-goldman- sachs-programmer)</comment>


A course on Peer-to-Peer Applications - <AUTHOR> http://cel.archives-ouvertes.fr/cel-00544132/en/ <comment><USER2> very interesting ... Thanks for sharing :)</comment>


Show HN: Revenue Numbers (A directory of revenue stats for online businesses.) - <AUTHOR> http://revenuenumbers.com/ <comment><USER2> Nice collection. These kind of posts where founders are so open with their numbers are always an inspiration. I particularly like the guys from GrooveHQ and their blog on the journey to $100k per month (Now updated to $500k as they've exceeded the 100k target).

However sometimes these posts tend to post a very rosy tint when things have been far more difficult. I remember watching a really awesome video of Scott Farquhar of Atlassian where he said something along the lines of "Our overnight success only took 8 years". His point being that most people only see the last year or so of media limelight and take that to be your "starting point" when in fact you've been hustling for years to get to that point :)

</comment><comment><USER3> Very interesting. I wonder why it's not getting more upvotes :)</comment>


Security Software Certification - <AUTHOR> http://blog.cmpxchg8b.com/2016/03/security-software-certification.html <comment><USER2> There is something about the hopeless nature of "security software" that makes it inherently prone to this kind of antics.

In any reasonable world people would balk at the idea of "antivirus software" being needed, and just stop using platforms that are so insecure as to need it.</comment>


The Modern Workforce - <AUTHOR> http://jeremycai.com/labor.html <comment><USER2> Before the industrial revolution we had serfs and artisans. As the factories absorbed both the serfs and the artisans, the serfs saw it as an upgrade, while the artisans resented the new way of life. Through workplace organization, which usually involved serious risks, working conditions improved for everybody and reached a certain equilibrium by the 1950's.

The lessons learned through workplace struggles in the last 150 years have been forgotten. The notion that "you should feel lucky just to have a job" has such a firm grip on the imagination of the American worker, that we've lost all sense of class consciousness and are accepting a return to serfdom without even putting up a fight. Today you might be an engineer with a comfortable job, but the 'modern workplace' will soon eat you up just like it did the artisans.

The Luddites of industrial England were not afraid of new technology. They smashed machines in the workplace to gain a better bargaining position and prove a point to capital. And today, being against the sort of arrangement that's sprung up around the on-demand workforce doesn't mean that you're against technology. For me, it means that I am for respecting the dignity of the worker and ensuring that the sacrifices our forefathers made were not done in vain. If technology can develop within those constraints, I'm all for it. Otherwise, I say smash the machines.

<comment><USER3> Private companies have hired planes to drop bombs on striking working coal miners: [http://en.wikipedia.org/wiki/Battle_of_Blair_Mountain](http://en.wikipedia.org/wiki/Battle_of_Blair_Mountain)

People should take a look at the list of "Major armed conflicts in American labor union history" at the bottom of the page and get a feel for how many people died for the more comfortable version of wage-slavery we have to day.

<comment><USER4> I'm likely in agreement with you on the politics of this discussion. However, I will note, pedantically, that "the only time people have been bombed in america" is not a great way of putting it, given, e.g., the bombing of Pearl Harbor.

<comment><USER3> Oh, duh. I meant mainland, but I think that I might just be wrong, I'll change it.

edit: It looks like at one point wikipedia more specifically claimed it was the only time bombs were dropped from american skys, on americans, by americans, but even that was wrong: [http://www.reddit.com/r/todayilearned/comments/lmnng/til_abo...](http://www.reddit.com/r/todayilearned/comments/lmnng/til_about_the_battle_of_blair_mountain_the_only/)

<comment><USER5> The coal miner strikes are fascinating (and the teamsters). During WW2 the continental US was bombed (pretty uneventfully) by the Japanese: [http://en.wikipedia.org/wiki/Nobuo_Fujita](http://en.wikipedia.org/wiki/Nobuo_Fujita)

</comment></comment></comment></comment></comment><comment><USER6> Turning ordinary employees in to independent contractors is a disturbing trend that is eliminating traditional workers rights. Although some new companies have legitimate reasons for hiring contractors, for most it's not part of some new amazing model of labor, it's simply a way to save money. Usually it's illegal, but the IRS is being destroyed by budget cuts and can no longer enforce the law. Filing against your employer in these cases takes years to resolve. I guess if you believe in no protection of workers and mass exploitation of the working class, then it's a good thing. I personally think it's destroying a lot of markets. If people don't have any money they can't buy your shiny new product.

<comment><USER7> Right, except (1) it's your obligation to change the law as a voter and (2) profit-maximizing companies have every obligation to act in their shareholder's best interests, __within the bounds of the law __. So really, it 's up to us as citizens to decide what's fair, and get the appropriate legislation passed to change it.

<comment><USER8> >(2) profit-maximizing companies have every obligation to act in their shareholder's best interests, within the bounds of the law.

is profit-maximization a law? because i don't see why for example a company can't be formed for the purpose of "betterment of humanity" and if it earns some profit on the way - great - and if not - it is ok too. As long as shareholders agree to that, ie. buy shares of such a company.

<comment><USER9> How many companies are you putting money into month after month that aren't turning a profit or providing you any sort of return?

I say month after month because if the company is not turning a profit, _someone_ has to keep the lights on.

<comment><USER10> Not maximizing profit doesn't mean you need to be in the red. You could break even, or just profit less. You still keep the lights on yourself, or even turn some profit, without 'maximizing' profit.

</comment></comment></comment></comment></comment><comment><USER11> The statement:

> The better our software gets, the more companies are able to hire. Good, > well-paying, well-placed jobs results in happy people. That's pretty > rewarding, if you ask me.

is in direct conflict with what the market desires:

Market forces desire resources that labor that is mobile across the country, requires no long term commitment, has a low risk hiring and comes at minimum cost. I don't see how the market you are creating will serve labors need. Your goal is to turn labor pools into a commodity.

This is covered by the heading:

> "You better start swimming or you'll sink like a stone / For the times, they > are a-changing" - Bob Dylan

But hey, you're touching lives.

<comment><USER12> Also see [https://news.ycombinator.com/item?id=9391711](https://news.ycombinator.com/item?id=9391711)

</comment></comment><comment><USER13> Ecclesiastes 1:9: What has been will be again, what has been done will be done again; there is nothing new under the sun.

Uber, Lyft, and the whole "sharing economy" is nothing more than another iteration of line balancing. Retails centers do this during the holiday seasons by hiring temp workers and call centers are always doing this.

I'll agree normal HR is not well tuned for quickly hiring large amounts of people, so the Uber model of deploying an app, and letting people "hire themselves" is interesting case study in ways to quickly ramp up your operations, but the I think enough has been said about how this is essentially exploitation of workers.

</comment><comment><USER14> I think this is a double edged sword. On the one hand things/resources can be easily shared among many people. This is good, fewer resources into supporting a population. It also allows people who seek marginal income increase to do do on a part time basis.

This I not good if the economy evolves to make this marginal income system into the main and default way foe people to engage into the economy -"a race to the bottom". It also puts son pressure on producers who must now adapt to the new status where big ticket items can be shared among many (vehicles, mowers, etc). Perhaps a move to higher quality higher priced lower volume.

The labor unit granularity would make these workers, on average, less valuable. And the advantage goes to the educated, more skilled.

This devolution into a person to person economy where the main beneficiary is the "platform" will not bode well for the average person.

</comment><comment><USER15> Great read. Although services like Uber and Lyft are getting more popular, I didn't know the freelance/part-time market as a whole was growing.

<comment><USER13> In various business publications, it's referred to as the "sharing economy".

<comment><USER12> In the UK, "zero hours contracts".

</comment></comment></comment><comment><USER16> Thanks for the StaffJoy shout-out, Jeremy!

We're finishing up our first week of deployment with a real workforce and finding that automated shift scheduling that better fits supply to labor demand can save about 10% on labor costs, which is a huge amount. Modern workforces get better margins through efficiency and automation, and that creates the opportunity for a new generation of mathematically-driven workforce management tools like OnFleet, Instacart, and AnalyticsMD.

We're entering alpha testing with customers in the bay in the next two weeks - if you're interested in trying our product, shoot me an email - philip at staffjoy.com.

</comment><comment><USER17> Can we please call BS on the sharing economy name. It is is the "squeeze cash out of spare personal resources economy" (resources being time, car, house etc).

<comment><USER12> It's also the screw-your-neighbour economy. If your little AirBnB money- spinner increases wear-and-tear on the common areas of the building, it's the other tenants who will pick up the costs of the extra maintenance. In time it will come to be seen as profoundly anti-social. Not to mention, if you're running a business you should be paying business rates and taxes... Remind me where is the "sharing"?

<comment><USER18> If I leave town and rent out my flat, wear and tear on the elevator goes up relative to me not leaving town?

<comment><USER19> Are you trolling again, yummy? Or are you honestly too thoughtless to recognize that a stream of people who have no long-term stake in a building do not conduct themselves in the same community-oriented way that's normal among those who do?

<comment><USER9> I prefer to believe that most people do not treat common areas of buildings like garbage. There are exceptions, of course, but it's not like having an apartment that you rent out a few weeks a year will throw the apartment building into a constant state of disrepair.

<comment><USER19> The problems caused by transients are hardly limited to "disrepair". Noise and disregard for building security are also real issues, as is the degradation of trust.

I can be sure that my landlord will perform extensive background checks on any potential neighbors, and can be fairly confident that their friends and relatives are also on the up-and-up. But knowing that the standards for getting a room via Air B&B are considerably less stringent, an explosion of short-term rentals in a building means that long-term residents will find that they cannot be as trusting. To put it bluntly, hotel security exists for a reason.

In general, I think the service is a great idea, especially for properties that don't share a lot of common space with other tenants. But in cases where they do, I tend to think that opening the building to anyone doing a search on Air B&B can be a real dick move. Nobody decent should be surprised if it draws serious hostility from the neighbors.

</comment></comment></comment></comment></comment></comment><comment><USER20> "While HR SaaS is never sexy" <\---I disagree

<comment><USER21> Sorry you're being downvoted. It might help if you explain why you disagree.

</comment></comment><comment><USER22> We've been hiring recently and have been using RecruiterBox for resume tracking. It makes it easy to communicate with applicants, move them through our different stages of hiring and schedule things with the rest of the team. We absolutely love it.</comment>


Reducing our API latency by making reverse DNS lookups fast (2019) - <AUTHOR> https://blog.ipinfo.io/reducing-ipinfo-io-api-latency-50x-by-making-rdns-lookups-blazingly-fast-5200d0289024 <comment><AUTHOR> This was some fun work, and the results were even more promising that we'd expected.

If anything isn't clear from the post of if you have any questions I'd love to answer then!

Ben - Founder, IPinfo.io

<comment><USER2> Just wanted to say thank you for putting out such a great product. I recently used the freely available information on ipinfo to help with a security investigation. I will definitely be picking up a subscription!

<comment><AUTHOR> Thanks Chelmzy! We have a few data "modules" launching soon with a security focus, including abuse contact details, VPN detection, and full IP whois details. If you'd like to get early access and trial any of them (or if you've got ideas of other IP related data sets that'd be useful for your use case, or of any product feedback) let me know - email@example.com</comment></comment></comment>


Graduating (PhD) soon and wanting a lateral move. Where could I fit? - <AUTHOR>

I'm coming near the end of a PhD in economics, and looking for advice. I have no desire to teach at a university (that market is over-supplied). My skillset really lies in consulting, coding, mathematical modeling, and statistics. The job market coming from economics graduate school is kind of interesting in that the expectation is a full year will occur before a job is found.
I love the tech world, and follow it fastidiously. I want my career to be involved in it, either as an outside researcher/consultant or as a producer.
My question is: in your organization, where could you use a person like me? I'm curious as to the opinions of both startup entrepreneurs and mature company managers.
Much thanks for the advice! I'm a long-time member of the hacker-news community (even though I don't always have much to say) and I always appreciate the wise words I read on here. <comment><USER2> > My skillset really lies in consulting, coding, mathematical modeling, and > statistics.

Do a job search for keywords 'data', 'data science/tist/, 'big data'.

Cloudera would be a good place to start, founded by Jeff Hammerbacher who built Facebook's social graph:

<http://www.cloudera.com/company/careers/>

</comment><comment><USER3> It would be incredibly helpful if you had some sort of CV here. Right now, the answer is potentially anywhere without knowing more information.

<comment><AUTHOR> Fair point. Here is a link to my cv: <http://tinyurl.com/vitatomrod>

<comment><USER3> It looks pretty well rounded, programmatically speaking, at least for an mathematics/econ grad.

I wouldn't hire you as a programmer unless I saw some code samples, and IMHO you probably don't have enough experience with the SDLC to be a good producer, but you'd probably fit a data analysis role relatively well.

The problem is that data analysis is more and more about managing your data and making it more accessible, and less and less about the modelling itself. It's much easier to teach a programmer that knows about big data statistics than it is to teach someone that knows statistics about big data, in my experience, but as someone who already has some programming experience you might pick it up very easily.

<comment><AUTHOR> Thanks for that debacle.

As I have the "year" to beef up various weak points of my cv, what would you suggest? Classes or a project that use scientific computing? Learn Hadoop?

<comment><USER3> If you want to work with data, Hadoop might not be a bad idea, but in reality you run into the experience chicken-egg problem: You're not going to be able to get access to the datasets you need to get experience with the datasets that you need experience with until you have experience with large data sets!

I would look for an open source project that has data manipulation needs (LibreOffice might be a good start) or some free and huge data sources (National Weather Service has a ton) and see if you can be of assistance there.

I would also recommend trying to take on some freelance work in mobile or web programming (low barrier to entry, lots of small projects available). Do some small projects for your local NPOs for free, or become involved in some way.

Many people will tell you to go the OSS route, but to be honest it can be very intimidating to contribute to an OSS project, and generally the turnaround is slow. The github pull request lifecycle is approximately 100 years.</comment></comment></comment></comment></comment>


Statement is 100% correct but misses the entire point - <AUTHOR> http://nibblestew.blogspot.com/2020/04/your-statement-is-100-correct-but.html <comment><USER2> Regarding the security point specifically: it would be nice if there were more rigorous frameworks for reasoning about such things (instead of anecdata).

E.g. "How do I take into account, model and parameterize all possible attack vectors, including NASA or random hackers"

Maybe there are and I'm just not aware of them? How do security professionals reason about the risk?

<comment><USER3> For starters using security modelling tools or standards like MISRA-C, AUTOSAR, Frama-C, Microsoft SAL, Z3, CERT, OWASP.

Some of them allow for mechanical validation tools, for example [https://www.qa-systems.com/tools/qa-misra/](https://www.qa- systems.com/tools/qa-misra/)

Then there are others which are checklist based on all the things that a secure deployment should take into account.

Stuff like one separate account per daemon process, each process sandboxed to the data it requires, no direct root access from outside, and so forth.</comment></comment>


Why we don't need Gigabit networks yet - <AUTHOR> http://gigaom.com/broadband/the-elephant-in-the-gigabit-network-room/

<comment><USER2> The only people that "need" Gigabit connections are the High Frequency traders. For everyone else, 100Mbps is plenty.</comment>


A Thought for Technical Interviews - <AUTHOR>

So I very recently had an interview for a mid-level engineering position with a fairly well-known start-up, and it went poorly.
I would like to share a thought from it.
The interview in its entirety consisted of two individuals presenting me with an intermediate-difficulty problem and having me work through it. The problem was by no means beyond me-- given an hour to sit down and work on it, I could easily solve it.
And an hour is what I got.
HOWEVER:
It's not so much that I needed about an hour as that I needed individual periods of 10 minutes or so to sit silently and think about how I would approach certain algorithmic aspects of the problem as they came up.
Instead, what I had was a laptop in front of me and an individual sitting at my left shoulder and another at my right shoulder, and anytime 30 seconds or so would pass, one of them would prompt me with a remark along the lines of "So what are you thinking?" or "So how are you approaching this?" or "So why don't you start with..."
This ruined any chance I had of completing this problem. I never had enough time to gather a cohesive approach to the problem because the interviewers constantly obligated me into diverting my attention to what they were saying or suggesting or asking.
Imagine if, as we were working at our jobs, every time we hit on a challenging aspect, someone sat next to you and asked you what you were thinking every 30 seconds. How well do you think you would perform?
Interviews executed in such a manner are in no way indicative of a candidate's skill.
Please, give an engineer some time to decide how he should approach a problem. Some of us think very fast and design optimal solutions on the fly. Most of us don't and have to do some trial-and-error to come up with great software. Stop mistaking the latter category for incompetence. <comment><USER2> Been there done that. It so happens that I cannot think unless I have the space to pace around a bit in silence. Talking while thinking disrupts the thinking process, or more accurately, it constraints the thinking to shallow levels. The first time I got cornered into an interview I was too shy to bring these two points up during the interview. I have not interviewed very often but the last time I interviewed with 3~4 companies I was upfront about it. I just pushed the laptop away and said look this might appear weird but I will pace around this room pretending you are not there and give you checkpoints of my thoughts at places where I think interruptions are less disruptive. The reaction was always a mildly surprised, "Oh OK!" Sometimes the interviewer would still like to peek into my thoughts when I am not prepared for such interruptions but I would very politely shush them up with a hand gesture and give them the latest thought dump shortly afterwards. Worked out for me. Another difficulty I have is because of my diminished hearing I instinctively lip read, or rather augment auditory information with visual cues. The problem: doesnt work for phone screens. One company was gracious enough to offer to fly me in for the screen as well. I declined, saying I am fine as long as the interviewer is cognizant of the problem and tolerant towards repeating the problem description if needed.

</comment><comment><USER3> This isn't what you want to hear, but there are perfectly valid reasons for them to do that.

1\. Getting the answer right is only half the problem here. They are prodding you for your thought process—take that as a sign that that's what they're actually looking for, even if you're wrong. They also want to hear it just in case they need to steer you in the right direction.

Regardless of pairing policies, companies might ask you to collaborate on a problem with someone else. It is typically more productive if both developers are engaged in conversation about it and then working as opposed to doing their own work separately.

2\. It's incredibly awkward and tense as an interviewer to sit there for 10 minutes. Also, how do I know it'll only be ten minutes?

If I wanted to know if you could solve a problem in your ideal setting, then I would email you a problem to solve on your own time. During an interview, however, I want to have a conversation. I only have one hour with you and your ten minutes of silence is a wasted opportunity.

<comment><USER4> It's quite possible to check the right thought process afterwards, without asking the candidate to elucidate constantly. They might now want to be steered in the right direction, but get the depth they need to explore all directions.

The interviewer might find it awkward to wait, but that's not the candidates problem.

</comment></comment><comment><USER5> _Imagine if, as we were working at our jobs, every time we hit on a challenging aspect, someone sat next to you and asked you what you were thinking every 30 seconds. How well do you think you would perform?_

Now suppose there were a dozen other candidates all trying to grab control of the keyboard and the interviewers were constantly hollering about which key you should type next interspersed with hollering about which key you should have typed last.

That's your typical youth soccer match when the coaches are amateurs. And that's what you were dealing with, amateurs. That's how you wind up pair programming with three people at a laptop where only one of them types.

Next time answer the question honestly, "I am thinking that you should shut your pie holes and let me think." Well maybe not quite so honestly.

Good luck.

</comment><comment><USER6> Ok, It's a great point to raise. But, why did not you asked for 10 minutes for inner thinking, added with a line that you will start talking after you put things together?

I believe no sane engineers would deny that request.

<comment><USER7> Read this type of threads or reddit's /r/programming. The number of interviewers claiming _" it's a simple 5 minutes problem"_ is disheartening. People get bored easily. Especially when they already know the solution.

</comment></comment><comment><USER8> You are absolutely right.

On a sidenote this post made me remember a small part of "The Art of Learning" (Josh Waitzkin), where he shares that on chess the opponents would always try to make him feel anxious.

To fight this he always took his time, maybe after the move from the opponent he would just go to the bathroom and take the time he needed to get back on track.

I don't how if this could be applied to your situation too, but I think it might be worth a try. If the situation is anxious too you, just ask for your space and time (maybe even ask if they can give you some solitude).

Silence is gold ;)

</comment><comment><USER9> The day before yesterday, I held an interview much like this one. I presented a candidate with a problem of easy-to-intermediate difficulty (Fibonacci) and asked him to explain his thought process while coding. I did interrupt his thought process two times to ask what he was thinking, both times when it felt obvious that he was stuck (extended staring followed by a couple of heavy sighs). But my principle was to only provide him with advise when he asked for it. I told him beforehand that his performance was not evaluated or affected by getting stuck or asking for guidance, but that we would not leave the room until we had come up with at least one solution together. I stayed in the room but was drinking coffee and reading e-mails. I told him that the excercise is expected to take up to an hour, and that he didn't need to hurry. When I tested this problem on two of my colleagues it never took more than 15-20 minutes.

This excercise in particular took a little more than an hour, because even though I explained a few solutions in various ways he had a hard time actually completing any code. I wrote a whiteboard solution and explained it using arrows and walk-through examples, but he couldn't translate the solution into actual code (using a language of his choice). In order not to break the hour limit we ended up with me writing and explaining code one line at a time for him. I reassured him that it's okay that he can't come up with the code right now, we're not evaluating the result etc.

I turned this candidate down. I feel that while my methodology (close to OP's) has flaws, it does help me with filtering out the worst candidates. I simply can't hire someone that doesn't manage to, with an unlimited amount of help and a generous timeframe, code a Fibonacci sequence in his/her favourite language.

<comment><USER7> Quick question. How often do you solve Fibonacci in your production code? It doesn't seem like a problem a software business would encounter very often. And if it's not encountered on the job, I don't really see why it's asked during a job interview.

By the way, I failed my very first interview just like the guy you talked about. Complete brain freeze. Luckily, I got an internship and here I am with 7 years of software development under my belt. You probably might not care. But it really makes me wonder about all that wasted potential. Not everybody is as lucky as me.

<comment><USER10> With all due respect, its fibonacci. Even if you aren't thinking recursively it is simply adding the last two numbers you've seen and it demonstrates that you can use iteration and variables at the very least.

</comment></comment></comment><comment><USER11> I completely agree. I interviewed with a company, and did some whiteboard coding. Most of it was simple, but whenever I would stop for a moment to think about what I was doing, they would prompt me to find out "what are you thinking"?

Even when I'm working very closely with colleagues, we often spend long moments of silence thinking and working through issues. It's a part of the process.

</comment><comment><USER12> I had the same experience recently. Not my cup of tea. It's almost like they want to see how poorly you do when heckled by annoying coworkers. I directly judge company culture based on the methods and attitudes of those who interview me. The worst part was it they used some sort of web-based editor that was a very poor editor (glitchy/laggy compared to vim).

</comment><comment><USER13> Man oh man, I'm convinced that people that administer this type of interview atmosphere are partially taking enjoyment in a sort-of hazing ritual - it's like they had to go through it, so now you have to as well.

</comment><comment><USER14> > Interviews executed in such a manner are in no way indicative of a > candidate's skill.

However, it is indicative of unskilled rookie interviewers. As a candidate you have a lot power in directing the interview process and also evaluate whether these are the type of people you want to work with.

They've got an obvious hiring problem. And it's very likely they took a pass on a lot of strong talent. Suggest circling back with the Senior Exec, share your feedback in a neutral, professional fashion. Ask for a Do-Over and a chance to meet again. The worst they can say is no.

</comment><comment><USER4> I've had a couple of interviews a few years back where they simply left the room and let me solve the problem, then came back to discuss the solution. Both went quite well.</comment>


WinRAR Patched 19-Year-Old Bug That Left Millions Vulnerable - <AUTHOR> https://www.engadget.com/2019/02/21/winrar-19-year-old-bug-patched/ <comment><USER2> Note, if you need to extract files you might be interested in the "pure python 3" module:

[https://pypi.org/project/acefile/](https://pypi.org/project/acefile/)</comment>


Reactor.js: simple reactive programming for Javascript - <AUTHOR> https://github.com/fynyky/reactor.js <comment><USER2> My favorite functional reactive programming library for JavaScript is Bacon.js: <https://github.com/raimohanska/bacon.js>

"It's the _ of Events. Too bad the symbol ~ is not allowed in Javascript."

<comment><USER3> "Turns your event spaghetti into clean and declarative feng shui bacon, by switching from imperative to functional."

Maybe I'm just old-fashioned, but if you want to get me to try out some JavaScript library, this ain't gonna do it. Feng shui bacon? Really? How about skipping the BS and showing me some real code and compare it with the code I would have written otherwise?

(This rant is not directed at you, but at the Bacon author.)

<comment><USER4> To be fair, there are plenty of examples. If you read to the next paragraph it's in the list. There is the examples folder, as well as the TodoMVC implementation.

Disclaimer: Bacon.js contributor

<comment><USER3> I sincerely apologize for my bad attitude in my previous comment. It was uncalled-for. Thanks for not taking too much offense, and thanks for the pointer to the examples.

Perhaps my feng shui was off balance yesterday!

</comment></comment></comment></comment><comment><USER5> Other than the fact that this is more minimal, does anyone have any insight in to how this compares to Bacon, Flapjax or RxJs? I've been wanting to give this coding style a try but tend to get turned off by the size and complexity of the existing libraries. I look at this as a personal fault not that of the libraries. I plan to read the source of Reactor.js, which is very well commented. Until then, does anyone know if this is a "complete" implementation or is something fundamental missing? Is it push or pull?

<comment><USER6> Knockout does this but it also has declarative html bindings, so there is no need to do the observer logic, you just add some lightweight annotations to your html and it binds for you. I think this is a lightweight alternative to ko, but ko does a lot more and is very easy to use.

<comment><USER5> But I only want the reactive programming part. How do I take out all the parts that I don't want or need in knockout?

</comment></comment></comment><comment><USER7> Maybe that's just me but I think the basic example fails at conveying how this library can be useful.

<http://i.imgur.com/gMuRxa0.jpg>

</comment><comment><USER8> KnockoutJS (KO) does essentially the same thing:

What KO calls observable, Reactor calls signal. What KO calls computed, Reactor calls observer.

The ReactiveExtensions library (including Rx.js) has been doing this thing for several years now, only more sophisticated than either KO or Reactor: <https://github.com/Reactive-Extensions/RxJS>

<comment><AUTHOR> Yep. This is an attempt to do what knockout does in a simpler form with less syntax

<comment><USER8> Interesting.

Where does the less syntax come in? I'm looking at your signal and observer, and it looks like the same syntax as KO.

<comment><AUTHOR> One difference is that there is no need to explicitly subscribe to signals. For general functions, knockout requires manually declaring "myViewModel.property.subscribe(...)" for each model you need to subscribe to. In contrast, Reactor's observer blocks automatically detect which signals you have read and sets up the subscriptions automatically.

Knockout has a different class for ko.computed vs ko.observable. For Reactor you use "Signal" for both and just pass in a function when its computed. Additionally there is no need for the trailing "this" at the end of ko.computed.

</comment></comment></comment></comment><comment><USER9> Hi, I'm also working on a minimalistic reactive programming concept; <https://github.com/azer/attr>

I have a library called "attr", which mixes pubsub (npm.im/pubsub) and new- prop (npm.im/new-prop)

And you simply get;

            foo = attr(3)

            bar = attr().getter(function(){ return foo() + 5 })

            foo()
            // => 3

            bar()
            // => 8

            foo(5)

            bar()
            // => 10

They are simply based on a very simple pubsub interface (publish,subscribe). So you can also do;

            foo = attr(3)

            bar = bar()

            foo.subscribe(function(update){
                bar(update + 5)
            })

            bar.subscribe(function(update){
                update
                // => 10
            })

            foo(5)

The advantage of this concept is, it's really easy to extend and optimize. Here is an example that I use new-list (npm.im/new-list) and new-object new- object (npm.im/new-object) to create some lists and objects, and use subscribe (npm.im/subscribe) module to create one callback for observing all changes:

            people = newObject({ 'jack': 23, 'smith': 27 })

            fruits = newList('apple', 'orange')

            foo = attr()

            bar = attr()

            foo.subscribe(function(update){
                    bar( update + 5 )
            })

            subscribe(people, fruits, bar, function(updates){

                    updates[0].params
                    // => { add: { John: 21 }, rm: ['smith'] }

                    updates[1].params
                    // => 12

            })

            people.rm('smith')

            people('John', 21)

            foo(7)

My work is done until here. And here is the part that I'm actually working on: <http://github.com/azer/new-reactive>

It's a library for creating your own HTML binding abstractions like AngularJS. But your own that you can share, that can be extended by somebody else or can be mixed with another namespace of abstractions.

Which means, if your company is named "foo" and you're using a library called "bar", you can have bindings like;

<button foo-play="song" bar-content="i18n.play"></button>

<comment><USER10> Ok, I can follow along with your examples. But I still don't get the "why" of it. Initially it kind of seems like extra mental gymnastics and wrapping your code in an extra level of abstraction. I'm not sure what the point is.

Just as some extra background, I've read the README with the parent library this comment thread is based on. I've read the linked Stack Overflow question and answer linked from it about reactive programming. I worked my way partly through the 1998 article with the bouncing kids heads. I recently did some work with Knockout for a client. I've had some exposure to reactive programming, but I still haven't had a light bulb moment that demonstrates why this style is better.

With Knockout, I find having a variable automatically update its value interesting. I like the pub/sub concept of having a variable publish its changes to any subscribers. This is useful in many frameworks including Knockout, Backbone, and more. I think in Knockout simply executing an observable inside a function makes that function subscribe to the variable is cute. But just in my opinion, it feels like to much magic and magic is fragile.

But to ask the most pertinent question, can you provide a real-world situation of at least moderate complexity where using a programming model like your "attr" is going to be better than a more traditional way of solving it?

Thanks in advance! I'm looking forward to learning something new.

<comment><USER9> Thanks for reply. The power of this concept is simplicity. It's based on a very simple API: publish/subscribe.

Anything that has these methods can be easily binded to DOM and can easily interact with data structures like new-list and new-object.

Frameworks are monopolistic. They don't let you take advantage of the open source at all. You can't replace the a core mechanism or data structure of a framework but if you use something built from small independent modules, you'll be able to optimize more, create more, reuse more, extend more, fork more.

This simplicity, the two methods interface, lets you create your own data structures that can be binded to new-reactive. Since your all dependency is publish/subscribe methods, you can easily replace each part of your code if you need to move on to another direction. But frameworks will force you to use or depend on only their own abstractions. That can be very expensive and dangerous your monopolistic framework gets out of fashion or starts implementing ideas that suck.

<comment><USER10> Ok, you're just talking about plug and play. That's a separate topic about micro frameworks. What I'm asking about is a real world example where reactive programming solves a problem better than traditional techniques.

As an example, look at Promises. At first glance it seems like overkill to structure your code to return objects that get resolved later. But when you use examples of deeply nested asynchronous callback functions and how they get cleaned up with Promises, it's obvious why they are better.

What is an equivalent real-world problem where reactive programming is better?

<comment><USER9> reactive programming is nothing except abstracting more. think about how would you define a variable and bind it to HTML. Here is my reactive way;

      JAVASCRIPT

          today = attr("Thursday")

          bind('.today', today)

          after('1s', function(){

            attr('Friday')

          })

      HTML

      OUTPUT

Thursday

      AFTER 1S

Friday

This is the simplicity level I would like to achieve with minimalistic and independent modules.

</comment></comment></comment></comment></comment><comment><USER11> I appreciate that this library focuses on being lightweight and easy to use, and I look forward to experimenting / refactoring some code with this. I'll be interested to see how this library works alongside other javascript packages for visualization and display since it doesn't have bindings - things like Knockout.js and its custom bindings always seemed rather complicated to execute, but that could've been because I didn't fully understand what was going on behind the scenes.

</comment><comment><USER12> It's cool to see this kind of stuff coming out. Flapjax was way ahead of it's time -- too far ahead it seems.

</comment><comment><USER13> Object.observe() is an upcoming feature for JavaScript, which allows you to add listeners to object's properties changing. With that, you could do the same thing as this library, but without this library. Still, I'm a fan of reactive programming, so thanks for this anyway!

<comment><USER14> I wish this were true, but unfortunately not. Object.observe doesn't provide any 'read' notifications, so you wouldn't be able to detect dependencies like this does.

</comment></comment><comment><USER15> Would be great if you can provide a simple playground app to let people try it out. It can be as simple as a github page that loads the lastest .js file into a script tag.

<comment><AUTHOR> Check out this fiddle =)

<http://jsfiddle.net/TjMgh/4/>

<comment><USER16> Uncaught ReferenceError: Signal is not defined

</comment></comment></comment><comment><USER17> nice!</comment>


Obama Creates Office to Boost Entrepreneurs  - <AUTHOR> http://www.bloomberg.com/apps/news?pid=20601103&sid=afUc9qZbB5m8

<comment><USER2> Maybe he should create an office to boost government non-intervention, too.

</comment><comment><AUTHOR> Got to love an president who really wants to solve healthcare, the economy and global peace.</comment>


Y Combinator And Yodlee Team Up To Give Startups Access To Financial Data - <AUTHOR> http://techcrunch.com/2010/11/30/y-combinator-and-yodlee-team-up-to-give-startups-access-to-financial-data/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29&utm_content=My+Yahoo

<comment><USER2> I'm starting to feel conflicted about these YC deals for priority API access. Yodlee is notoriously expensive and not particularly developer friendly. It's great YC is lessening that burden for their companies, but it's starting to create a competitive advantage that undermines core hacker ethics.

What I'd like to see is YC working with the Yodlees of the world to make their APIs more available to _all_ startups.

Don't turn YC into the next Harvard.

<comment><USER3> Why is it in YC's interest to do so?

<comment><USER4> If _everyone_ has access more people will play around and/or be able to create things. Having an idea and applying to YC with "I want API access" probably won't work too well, even if they do "invest in people".

</comment></comment></comment><comment><USER5> Access to all those otherwise unavailable, expensive or hard to get data and APIs seems to be the second biggest benefit of applying to YC. The first one would of course be access to know-how and network of VCs.

</comment><comment><USER6> I use an online account aggregator with a large financial institution, which uses Yodlee technology. Does this mean these startups have access to my financial data? What financial data are they sharing?

</comment><comment><USER7> Does anyone know what this actually means? Yodlee seems to already have a beta of their API available for developers (<http://www.finappstore.com/howTo.html>). However, it's unclear whether they charge for API access. Perhaps this is a price break for YC companies?

<comment><USER8> I wonder the same thing. I was considering developing an app for the finappstore but I just don't have time at the moment. Currently all apps plugging into Yodlee must be built on the Adobe flex platform.

One interesting thing is that the developer forums on Yodlee site like pretty desolate. Here is part of a message posted on 8-26-2010 which has zero responses.

"There are almost 200 of you that have gone through the full developer registration process and have access to building and testing applications inside of Yodlee.

There are five applications that have gone through full certification and are available in the Yodlee FinApp store in BETA with another six applications in the process of certification right now.

The forum has been quiet with questions recently, so what are people working on? What's blocking you from moving forward?"

I wonder if people just don't know about this or if the flex platform is deterring developers. It seems pretty cool.

<comment><USER9> Although these are both turns off for someone using the API, I don't think it's the empty forums or the flex platform that are deterring people. It's the expensive pricing.

</comment></comment></comment><comment><USER10> I figured something like this would happen soon. Yodlee did it right. When I was doing my own Googling for "bank account API" they quickly came to the front.

This will give future finance-based YCombinator start ups a magnificent head start.

</comment><comment><USER11> Please tell me that the headline is not accurate -- I hope that they gain access to the APIs/tech, and not to any actual personal financial data.

I highly doubt mint.com's userbase really wants their banking data shared with new startups.

<comment><USER12> Yodlee already provide a lot of backbone support for a lot of banking institutions, they decided to also make a product out of this ability.

But you as an account owner have to allow access to each individual account, what yodlee do is provide a way do use this account authorisation and pull some or all transactions

</comment></comment><comment><USER13> this will probably make the next batch of YC applications more finance focused

<comment><USER14> Maybe YC W11 has some finance-oriented companies in it and YC's taking care of business ahead of time. No doubt this would've been helpful to InDinero over the summer.</comment></comment>


Trump vs. the WTO - <AUTHOR> https://www.axios.com/trump-vs-wto-blocked-appointments-d6eb10e6-f0a9-4c46-b801-71d9836c4c5a.html <comment><USER2> It's a double-edged sword</comment>