hacker news with inline top comments    .. more ..    19 Jul 2017 Ask
home   ask   best   8 months ago   
Ask HN: When has switching the language/framework made an important difference?
100 points by banashark  15 hours ago   83 comments top 33
scardine 1 minute ago 0 replies      
10 year ago the RIA (rich Internet applications) platforms were the trendy thing of the day. Microsoft had Silverlight, Adobe had Flex and so on. I made a bet on OpenLazslo, an open source contender. I made a wireframe and the snappy interface impressed a client tha gave me a big project.

1 month working with OpenLazslo and PHP it became clear I would not be able to finish in time. I was unable to finish the Rails tutorial, but after 30 minutes I had a basic CRUD app done using Django.

I ditched the RIA thing, rewrote everything in Python/Django, was able to finish that project in time and this stack is paying the rent since then.

It was really worth.

d--b 1 hour ago 1 reply      
Moving a large C++ codebase to C# has helped us a lot. The legacy code had memory leaks that caused random crashes. It was also long to build, and wouldn't build in 64 bit. The C# version seemlessly let us run the code in either 32 or 64 bit. C# is also a much more readable language, and has a lot of great tools for refactoring and profiling. And C#'s performance is almost as good as C++ in many areas, so all in all it's been a great move.
dmlorenzetti 13 hours ago 1 reply      
A few years ago, I rewrote an `R` script into Fortran, for better than order-of-magnitude speed increase.

The script optimized the placement of samplers in a building, in order to maximize the probability of detecting airborne pollutants, or to minimize the expected time required to detect. The rewrite cut the runtime down from 2-3 days to sub-hour.

Some of the speedup was intrinsic to the interpreted/compiled divide. However most of the speedup came from the greater control Fortran gave over how data got mapped in memory. This made it easier for the code to be explicit about memory re-use, which was a big help when we were iterating over millions of networks.

Re-using memory was helpful in two ways, I think. First, it avoided wanton creation and destruction of objects. Second, and more importantly, it allowed bootstrapping the work already invested in evaluating network `N` when it came time to evaluate a nearly-identical network `N+1`. Of course, I could have made the same algorithms work in R, but languages like C or Fortran, which put you more in the driver's seat, make it a little easier to think through the machine-level consequences of coding decisions.

That experience actually taught me something interesting about user expectations. When the Fortran version was done, my users were so accustomed to waiting a few days to get their results, that they didn't run their old problems faster. Instead, they greatly expanded the size of the problems they were willing to tackle (the size of the building, the number of uncertain parameters, and the number of samplers to place).

superasn 36 minutes ago 0 replies      
I'm a solopreneur and switching to AngularJs 1.x really made a drastic difference to my work. Before we used all sorts of hacks and jquery plugins to do the same and it was really hard to maintain our code.

After switching to AngularJs the development time became 20% and it became super easy to maintain. Not to mention programming became super fun again. I've tried react and angular 2 and vue but that just didn't click for me. We're are a small team of two so we don't follow the industry best practices, just whatever works for us and gets the site launched as quickly as possible, so i guess my comment is highly opinionated.

thepratt 3 hours ago 0 replies      
It all depends on the team, but personally the larger the team gets and the more complex your application becomes (monolith/microservice/etc independent) types are invaluable when it comes to shipping an actual product. You gain speed increases due to paths being evaluated ahead of time (compile time), but these are all secondary to developer peace-of-mind and time saved when work actually needs to get done - this includes ticket revisits due to "oh I forgot about that case", or "user did x and now this object is a string".

Yes, you should write unit tests to cover this in interpreted languages with weak or no types, but this depends on the developer a) doing it, and b) not missing any cases - PRs/code reviews are not a catch-all. Especially in the case of factoring common logic out or some other form of refactoring, a strongly typed language is my best friend.

circlefavshape 1 hour ago 0 replies      
A friend of mine is a java contractor, him and a bunch of java people got hired by a French company for a javascript project.

After a few months slogging through an unfamiliar language, the company decided to switch to java. Productivity went up, surprise!

BrandoElFollito 1 hour ago 3 replies      
I am an amateur developer, mostly using python. I had from time to time to code a front-end in JS and it was a huge pain in the bottom (again, I am a real amateur).

This until I discovered Vue.js which changed my life. This and lodash made me actually like JS and front-end programming.

So this is an example what a framework did not help to improve code but actually made me choose in something else than the language I was using so far (coming from a background in C, then Perl)

Rjevski 11 hours ago 1 reply      
Well I'll provide a somewhat different story where the lack of change has caused quite a loss in productivity.

At my current employer's a big part of the codebase is in Perl and the boss is a fan of the language, so we keep using it. The problem is, Perl is pretty much dead, and most of the packages out there on CPAN feel like they've been built 10 years ago. Not to mention, the language itself lacks what I would call essential features like exception handling, classes, etc (which has to be tacked on by using "shims" from CPAN like Moose or Try::Tiny)

At some point I had a particular issue in one of our apps where it would be making tons of DB queries and we need to cache them. In Python land there are plenty of packages that give me transparent caching at the ORM level. In Perl land? Oh yeah this post on a mailing list from 2007 about someone having the same problem, and a bit of untested code that may or may not work.

I gave up on that particular issue and it'll probably never get fixed, but let's just say that have we been using an "alive" language things would've gone much smoother.

taurath 14 hours ago 1 reply      
Developer ergonomics is underrated. Having an easy to understand system that has no magic, and in 90% of the work has no dependency chains that you have to hold in your head can really help people avoid bugs by being able to focus on the intent and execution rather than the framework quirks.
tomohawk 13 hours ago 1 reply      
Several years ago, our team refactored a large Java control system into a Ruby based one. The Ruby actually performed faster, scaled better, and was much easier to understand and maintain. The ergonomics of Ruby enabled clearer thinking about the problem, leading to the better results.

More recently, we've replaced Python, Ruby, and Java based systems with golang based ones. Not having to lug around a VM and associated other parts (jars, gems, ...) is a huge win. Performance is better across the board, and we've reduced the amount of hardware needed. There's also much better understanding of the code across the whole team.

lucaspiller 1 hour ago 1 reply      
I worked on a project a few years ago that was a mixture of Erlang and Ruby. Most of us were new to Erlang, coming from a Ruby background. We wanted to use Erlang to its strengths for high availability and to make the platform distributed, and Ruby (via BERT/Ernie) to its strengths for business logic.

Unfortunately Ernie didn't work as well as it advertised, had many edge cases, and in the end it was a big bottleneck (it would have been faster to ditch Erlang and use plain Ruby).

In the end we wrote everything in Erlang. It wasn't that hard in the end, and the reason why we went down the Ruby route in the first place was because the platform was over-engineered to be as generic as possible (which wasn't needed), so we didn't actually lose anything.

sbov 14 hours ago 0 replies      
Things like bug count and time to market seem difficult to separate from having more experience as a developer or knowing your problem space better. We use almost all Java, and we have several projects that we did major re-designs of in the same language, which increased maintainability, found bugs, etc. But if I chose a different language, I would have probably attributed it to the new language or framework.

Unless you have a problem that fits a specific technology really well, my experience is that your time to market will be minimized by using the tools you know best.

dmlorenzetti 13 hours ago 1 reply      
Due to the desire to support Windows as a first-class citizen on a project, I've lately moved some support scripts from Bash to Python. These include dependency-scrapers (that assemble makefile rules), and archiving scripts (that back up selected files from selected directories).

This has been a big win in terms of the readability of the code, which has in turn made me more aggressive about adding features.

daddykotex 13 hours ago 1 reply      
At work, we greatly benefited from a transition from Spring with Java to Play with Scala.

This mostly due to the inherent complexity in Spring and the fact that Spring developers are also Spring experts. When the main developer behind the application left, we struggled to add new features or even fix bugs because the team lacked the Spring expertise.

The rest of the business mostly dealt with Scala, so it was almost a no-brainer to go with Play.

The outcome has been very surprising. The application has better performance overall, is better suited for streaming and we have much more expertise in-house to add features and fix bugs.

The re-write was not without pain though. Spring is a well-supported and very rich framework. It probably does a bunch of things that the casual web developer will likely forget.

__coaxialcabal 11 hours ago 0 replies      
Related post from 2013.

tl;dr: Dont build your app on top of a pile of crap in-house framework.


sandGorgon 49 minutes ago 0 replies      
R to python/pandas - deployability
di4na 6 hours ago 0 replies      
Anything long lived to elixir/erlang. Not for less bugs or better speed. But for the ability to bulkhead the errors and the debugging capabilities.

Dynamic tracing all the things has reduced the time to solve bugs by an order of magnitude for us.

afarrell 2 hours ago 0 replies      
This is a less dramatic change than swapping out the framework since we are still using rails, but a couple years ago my employer switched from using rails controllers to using https://github.com/gocardless/coach and it is noticeably easier to write good tests.
dhd415 11 hours ago 1 reply      
I was involved in the conversion of over 500k lines of Visual Basic 6 to C# motivated by Microsoft's EOL'ing of VB6. Most of it was a desktop application although part of it was a server component. We used an automated code conversion tool which did a surprisingly good job of handling the mindless parts. Some pieces such as the database interaction code had to be hand-ported. I was pretty surprised that we were able to pull the whole thing off while maintaining functional parity. In the end, there wasn't much of a change in performance, but C# proved to be a much more productive development platform than VB6 in terms of tooling, ability to refactor, use automated test tools, etc., so the team's velocity increased significantly over the next few years.
bleonard 13 hours ago 1 reply      
Switching to React Native allowed our team of 6 to become a team of 2 and still go twice as quickly. It's not just the cross-platform capabilities - React is also just really great.
wink 14 hours ago 0 replies      
Yes, switching something heavy on cpu (mostly real mathy computations) from python 2 to Go - we could keep working eith current number of CPU cores/boxes and not having to like, double our expenses.
amirouche 14 hours ago 1 reply      
> I'm curious about real world examples where a change has lead to a significant positive outcome in performance, code quality/maintainability, etc.

Another example: same language, new framework: In a Python web app, we needed to have websockets. But at that time Django had no real websocket support. But there is future proof framework that does: aiohttp! Also one might argue that you can use old django with websocket using another process. But it leads to a more complicated architecture. We want to keep monolith the app as long as possible/sane.

jackmott 3 hours ago 0 replies      
i wanted to compute perlin noise to make planet textures fast enough thay the user would not have to experience a loading screen when flying into a solar system. i could not make that happen in c# which the bulk of the game was in. c++ allowed me to compute it around 11 times quicker via SIMD intrinsics.
amirouche 14 hours ago 0 replies      
> I'm curious about real world examples where a change has lead to a significant positive outcome in performance, code quality/maintainability, etc.

I wanted to build a database in a dynamic language. While others have succeed to do so by layering their DB on top RDBMS (like EdgeDB or Datomic) I went lower level and built a datomic like DB with GNU Guile Scheme using wiredtiger (now mongodb storage engine). The reason for that is that Guile doesn't have a Global Interpreter Lock (GIL). Using the same design in Python would simply not be possible. I did not benchmark, but I don't think it's possible for a single thread DB to be faster than multithread DB. In this chance changing language made the project possible.

mamcx 12 hours ago 0 replies      
Change languages is the only way so far, to step-out serious blind-spots in the previous language. Is a shame that langs are rarely fixed, only added more and more features without learning anything in the process. Devs are so change adverse that is not even funny.

I have done a lot of business/enterprise development (a very hostile space to innovation and working solo or with very small teams), and have done small-to-largeish (from my POV) rewrites in several languages.


- Fox 2.6 to Visual FoxPro. A breaking change in a lot of ways, a total win in the process. Not just because the app was native windows now.

- From Fox to Delphi. Now I discover the beauty of Pascal and improve the app and deployment scenario. Static types is a net win overall. My other love is python, probable code faster on it, but have FAR LESS trouble with strong type systems.

(However take a me some years in note how bad all languages are aside the DBase Family in talk with databases, but other wins distract me from that...)

- Visual Fox to .NET (1.0, 1.1 with both Visual Basic and C#) was a total net loss. A Massive increase in code size, yet the (desktop) apps were way slower than Visual FoxPro, even more than Delphi (but my boss not let me use Delphi).

The web was also terrible in performance and complexity. Sadly back in the day I was unaware of how do web properly and drink all the MS KoolAid on this.

This sink the project and almost the company. Only saved returning back to full FoxPro.

- To Python. I move several things to python, mainly .NET stuff. How boy, how big was the win. The net reduction in code size and the clarity of the code!

Also, (web) apps way faster. Take .NET some years in learn the way here, so...

- To RDBMS (Heck, even sqlite): Still big wins when someone else try to use a nosql/desktop datase (in my space, NOBODY is Facebook. With no exception, step-out of a RDBMS is one of the biggest mistakes)

- To F#: I return to .NET past year (because MS do a lot of the right moves to fix old mistakes!!!) and again a lot of reduction in code size, removing of problematic logic obscured by years of OO-only code. Still not happy about the way lower quality tooling, but enduring it even in Xamarin Mobile because I see the benefit.

I wish I could use swift for Android, so F#/.NET is my only sane option left...


Mainly, move from a lang to another that is not similar, help in see the problems with the old one. Learn new or better ways to solve stuff, and get access to different toolsets and mindsets. This payback when returning back to the old, too, when this ideas are migrated.

amirouche 14 hours ago 1 reply      
I am not familiar with F#. I think it's a functional language, did you take advantage of immutability? What is the main difference between the F# implementation and the C# one (outside less bugs)
carsongross 13 hours ago 1 reply      
This is more than a little self serving, but when I switched us over to intercooler.js it made a huge difference in our app.

When I pulled the trigger on it I was terrified that I was screwing us over by not using Angular (which was the cool tech at the time) or some other more javascript-oriented solution. Thankfully it has worked out well, and my co-founders don't hate me any more than they already did before hand. (And maybe even a bit less.)

paulbjensen 13 hours ago 0 replies      
When our Rails team delivered our projects and Christmas came in 2010, we peeked our heads out and discovered Node.js, CoffeeScript, and WebSockets. We created a real-time web framework from the combination of those technologies, and demoed it at the Hackernews London meetup of June 2011. It was known as SocketStream.
charlie-r 12 hours ago 1 reply      
We're starting to develop greenfield APIs in Scala (with Play) rather than PHP (with Laravel) and we've noticed new developers without experience in either language have a surprisingly similar time-to-productivity. Here are some major factors:

PHP's dynamic typing combined with Laravel's magical approach makes discoverability hard. A developer can't trace through a request by starting from a controller method and navigating through a codepaths with the support of their IDE. Our application code uses typehints almost exclusively, which helps. But whenever the code you're debugging drops into the framework (or PHP), you'll need to break out your browser and spend time a great deal of time reading documentation to understand how to use the function. For example, certain functions in Laravel accept no arguments in the function signature, but the function body calls PHP methods to dynamically parse function arguments.

We spend a fair amount of time documenting all the framework and language-level magic constructs. If we've dropped the ball on documentation (which happens often) a new developer is at the mercy of coworkers to explain where the framework (or language) magic happens.

On the plus side, Laravel's batteries-included approach significantly speeds our time to MVP.

Scala's category theory approach to functional programming is not easy for new developers to understand at first glance. While most of our code (framework or otherwise) is now easily navigable with an IDE, developers now need to spend time understanding concepts such as for comprehensions, monads and ADTs. However, most functional concepts are understandable without the help of coworkers, which means a new dev can rely on Google to help understand a concept, rather than relying on a coworker.

Once knowledge of syntax has been attained, Scala's strong type system makes development far easier. We can communicate semantics through types and monads (such as Either, Future, Option and domain-specific ADTs), and incorrect code is immediately flagged by the IDE. A new developer making a change to a database schema may now change a database column name, recompile, and be presented with a list of every bit of code they've broken.

Using types to represent the semantics of our domain has been incredibly powerful, and makes potential bugs much easier to spot when reading the code. For example, rather than checking a user's subscription status inside a method, we can require a "SubscribedUser" type in our method signature. With this type in place, a new developer can no longer accidentally call that method with an "UnsubscribedUser".

Perhaps most importantly, the long term benefits of Scala's strong type system are incredibly valuable. We're a software agency, so our large projects experience development in phases. It may be 6-12 months before our team circles back to a large project for major development. In that time, we've forgotten all the quirks and gotchas of that particular framework and language, and Scala's strong static type system significantly decreases regressions during the new development effort.

In summary, new developers have a similar learning curve for each language/framework. And in the end, Scala's long term maintainability is more valuable than Laravel's speed to MVP.

abeisgreat 14 hours ago 4 replies      
The biggest change for me was when I switched to strictly typed languages. It doesn't matter if it's Go or Typescript or whatever. As long as it has types it dramatically improves maintainability and ease of scale.
nickpsecurity 13 hours ago 1 reply      
The SPARK people at AdaCore found a bug in the reference implementation of Skein just rewriting it in SPARK:


davidjnelson 9 hours ago 0 replies      
Wow, that's awesome! Which FP constructs did you use?
lngnmn 1 hour ago 0 replies      
Ask HN: Coping with Loneliness
81 points by muzuq  13 hours ago   61 comments top 33
aspyct 4 hours ago 0 replies      
I find going back to nature every now and then is a nice band-aid on my solitude wound. I'm still alone, mind you, but natured is filled with amazing things you can look at, focus on.

Trekking has become a major part of my life in the recent years. It allowed me to discover myself in more details, how my mind works. I also briefly met people along the way, and slowly realised that their mind worked the same kind of way. They were travelling alone too, for most of them. Yet we were instantly friends. Didn't keep in touch, because that's life, but it's alright.

Try this: take a weekend for yourself, away from civilisation. Take a tent, go get lost in the woods (well, not actually lost), spend the night. Forget about your phone, your emails. Just tell one trustworthy person where you go, roughly, just in case.

Take that time look at the trees, the insects, the clouds, the Earth. Maybe you'll see a fox, maybe fireflies, maybe you'll only hear birds.

And if you're not willing to spend a night just yet, then wake up early, and be there at sunrise. Have a breakfast, have a lunch. Walk, or not, whatever works for you, but just take your time.

Then stop for a moment. Anchor yourself to the ground. Why not walk barefoot? Imagine your feet are rooted deep down into the earth, all the way down to the burning core. Feel the wind on your skin, hear the birds in the distance, see the trees shiver in the wind, enjoy the silence.

I'm afraid I haven't yet found a cure for loneliness myself. But this above, my friend, is what makes my life worth living!

Good luck, you'll see better days :)

8bitpimp 47 minutes ago 0 replies      
I spent around 5 years crippled by this very issue, to the point where I was so lonely I was terrified of any social contact, and close to not wanting to continue. It took just as long to 'recover' from this very real issue. You are in no way alone with this issue, and I think is really felt throughout the IT industry.

The way I am learning to overcome my loneliness and social anxiety issues, is be forcing myself to go out with people when I am invited, and to exercise (perhaps to the extreme) with cycling, climbing, swimming, running, etc.

Remember however that loneliness is not something that anyone else can solve other then yourself. You may need to change your situation, and surround yourself with people similar to yourself, and understanding kind people if possible.

As others have said loneliness is a problem of situation, and lack of contact with others. Your absolutely doing the right thing by reaching out and talking about it however!

ultrablue 12 hours ago 1 reply      
I've been dealing with just this issue. I, too, am an introvert and require time alone after socializing to 'recharge.' I had a fairly intense bout of depression recently, I realized that it was in part due to do loneliness. So I did some introspection and talked things over with a trusted advisor.

So some things to consider in no particular order:

Shame about being lonely drives people to feel more lonely. Don't let that trap engulf you.

Take steps to explore your psyche and see if the roots of your loneliness are based in issues like self-esteem. Don't take this lightly. It's easy to dismiss, but if those forces are present in your life, they'll be very difficult to see clearly.

Are you religious? Go to church (or sangha or whatever). Got an addiction? Go to a 12 step group meeting. Like board games? Find folks that like to play and hang out with them. Seek out opportunities to interact with people preferably in the flesh, but online can work too.

Get a therapist. Or a spiritual guide. Whatever, as long as they understand how the human psyche works, and that you're there to work. If that suits you.

Don't underestimate loneliness. There's a reason why our most feared punishment is isolating people. Because it's terrible.

Learn to relish solitude. Don't let an idea about solitude trick you into thinking that being alone is good.

Humans are social animals. Not being part of the herd represents an existential threat to us. This is a major cause of suffering in our species.

Humans are solitary animals. Being part of the herd can be a major stressor for us. This is a major cause of suffering in our species.

Best of luck.

maxsavin 1 hour ago 0 replies      
The big thing I've learned is that loneliness is simply your brain signaling you to go meet people - it's natural and there's nothing wrong with it. Meeting people is hard though - but there are plenty of ways to do it, especially now with internet. It does require a set of skills, though, just like everything else. I've found therapy can really help develop and tune them.
ThrustVectoring 12 hours ago 2 replies      
Don't cope with it - fix the problem. Emotions are designed to tell you important facts about the word. Pain tells you that there's ongoing physical harm that you ought to avoid, anger tells you that you're in an appropriate position to start or threaten to start a physical fight, grief tells you that you temporarily need to get the support of the tribe as you adjust to your loss, and so forth.

What loneliness tells you is that you haven't gotten the sort of stimuli you'd expect out of having a position in a social group. Experiencing it sucks because this is the sort of thing that is extraordinarily dangerous.

So, how do you get "I am part of a larger group that accepts me" signals? Go and do stuff. If you're not naturally inclined to stay on top of things, get organized about it. Texting/IMing your friends/acquaintances is a good choice. Volunteering somewhere could also help. Regular hobbies are great - I do social dancing. Swipe on a few Tinder profiles and see if you can strike up a conversation. It really doesn't matter what you do, so long as you use your planning faculties and organization to compensate for your lack of socialization drive.

hluska 8 hours ago 0 replies      
If you're anywhere near Regina, Canada, my name is Greg and my email is in my profile. I'll take you out and introduce you to the finest people I know.

That aside, you've received some excellent advice in this thread. I won't reiterate any of it. Instead, I just want to say that you're very brave to come here and make a post like that.

I wish you the absolute best. Feel free to email me if I can be of any help.

mettamage 48 minutes ago 0 replies      

I find it hard too.

What I do right now is:1. Suck it up. This kind of works quite well for me, since I've also done meditation retreats in which you'll be forced to learn to deal with it.2. If you don't have much time to go outside, then make it more of a point to call people.3. Find something to do. Changing your attention to something else in which you can get engrossed in is definitely a good thing :)

fern12 13 hours ago 2 replies      
I'm an introvert. There's a saying, "You're never alone with a good book." For me, that's certainly the case. If you're not a bookworm, try audiobooks.

Also, I love dogs (probably more than most people). They're loyal, do not judge (unless you have a treat), and live in the moment - what more could one ask for?:) Animals can provide a lot of companionship.

gaspoda 2 hours ago 2 replies      
Forget about introversion vs extraversion. Its waste of time. Learn about attachement theory.
mlsarecmg 2 hours ago 0 replies      
Having had a similar phase in my life, the thing that helped me was philosophy and esoteric psychology. Especially: http://gnosticteachings.org/courses/gnostic-meditation.html

People speak about thoughts, emotions and actions as if they knew what they are or how they are gestated. "I AM mad!", "Because I THOUGHT that ...", "I do FEEL alone", etc.

They think they are behind their thoughts, emotions and actions, that they ARE what they think, feel and do, and nothing could be further from the truth and it is the easiest thing in the world to evaluate it because they couldn't stop thinking for a minute even if their life depended on it.

And this is the gravest error we commit, to believe we are in conscious control and therefore solving problems seems abstract or even impossible to us. As they've said in older times "if you know not that you are asleep, you cannot wake."

See once for yourself the reality of how unconscious awareness leads to chains of thoughts running completely on their own without the involvement of will or participation, leading to mechanical emotions and mechanical action.

See this happening and something is evoked, the capacity to act against yourself or the inner urge that drives you to behave in a certain way, the unconscious machine that merely reacts to impressions outside and inside. It becomes possible to act free of constraints where otherwise you would merely re-act according to how you think or feel or are accustomed to.

Philosophy called it the paradox of free will. From there on problems actually can be solved because inner change is possible and feasible. If you understand that the outside is merely the reflection of your inner state, everything can change radically.

mindhash 1 hour ago 0 replies      
My situation is a bit different. I work from home, it's gets really lonely at times. i focus on activities. I go out on bike, join biking groups on weekends once in a while, take long walks, go hiking with friends, play soccer on weekends, and ride a motorcycle. Through activities I have something to look forward and that's the basis of life. I do meet passing crowd through activities though only a few continue to be in touch.
scotty79 3 hours ago 1 reply      
Talk about your loneliness with anonymous strangers in the chatrooms. Reiterate your pain points to them. Never reveal your identity, never meet them.

You are not looking to make a connection.

The goal is to get bored with what ails you. After telling about why you feel bad 20 times to 20 different people your brain gets bored with this narrative. Then it moves on to more interesting things and you stop feeling bad.

This strategy helped me get over post rejection loneliness in few short months.

Remember, loneliness is not being alone. It's feeling bad about it.

NHern031 10 hours ago 0 replies      
I was too feeling lonely not long ago after losing my partner of many years. I had fallen into a pretty bad state and just felt more alone with ever passing day. After my grieving I knew something had to be done and I decided to choose between two things I've always wanted to do, boxing and salsa dancing. I eventually enrolled in a boxing academy and love it. My coach is a great man, my fellow sparing partners are almost like family now. I have made a connection with these people I never imagined I would have. I suggest you think of something you've always wanted to do and just DO IT.

Bonus: I also look and feel great now thanks to working out.

nyrulez 12 hours ago 1 reply      
Some options that I have tried and have helped:

- Try Meetup.com. Endless options there. Don't be afraid to be awkward. Read about social skills and practice them.

- Be a better friend and initiate contact with people you know - don't wait for them.

- Also make a list of all people/friends you know local or non-local. Refer to that list and keep in touch. This is harder than it looks but is important. I was surprised how many folks I had a good connection with but did a sucky job of keeping in touch with.

- Attend workshops, classes etc where you have the chance to meet others in a like minded setting. Especially overnight ones. There are always group events happening in urban environments. Seek them out.

- This is going to sound dumb - but try to interact with people via social networks. It teaches you a bit of initiative and also leads to in person quality time in some cases. But be careful that you don't get swallowed by it.

- Have something interesting at your home - like board games, gaming , good list of movies to watch. That way you can feel comfortable inviting people over to hang out at your place and have a good time. It feels nice to say "I have a really cool board game - why don't you guys come over and let's have some fun, along with some beer/drinks"

- Be interesting - if you are passionate about 1 or more interesting topics outside work, and talk about it with folks you meet, they will remember you. It could be AI, self-improvement, meditation/mindfulness, running, fitness, music and so on. But learn to talk about your passion intelligently. It leaves a mark.

jansho 12 hours ago 0 replies      
Love for solitude is a great gift, I think. I used to be stuck between introversion and extroversion; on one hand I did things better on my own, on the other I sought validation from others, all the time. Guilt only amplified this problem. It was pretty toxic, and took many years to sort out .. it's only recently that I can feel 'substantial' enough to enjoy my own company. (I feel that this is actually an illusion, but a much needed one to save my own sanity!)

But you're right; we're social animals and will never get away with complete solitude. It sounds that you do enjoy your own company, but need the occasional 'break' from yourself. You mentioned that you have a handful of friends? Focus on them, even though you may feel that it's tedious.

I know that "going out and meet new people" is cliche but it's so true that it's a great first step. Try meetup.com to find out events that you might be interested in. Don't just go for tech, try a new crazy thing, oh and hiking ;) Sunning your face and relaxing your eyes over vast expanses can do wonders to the soul, I find.

Beamer92 13 hours ago 1 reply      
Pick up a sport/hobby with a social aspect. Many cities (I'm assuming you live in a populated area) have City League sports you can simply sign up for, pay a fee, then get put on a team.

You can join a low level (or high level if you're competitive) dodgeball team, or soccer, or basically whatever strikes your fancy, then meet some new friends. It also gets you out of the house once a week or more with some new faces.

eternalban 18 minutes ago 0 replies      
Have you tried therapy?

You mentioned "fear" in context of reflecting on your situation but it is possible that it is some sort of "fear" that is keeping you from extending your social wings.

tenken 13 hours ago 0 replies      
a hobby, i usually do martial arts in a class environment. also for example consider getting a sociable pet such as a dog, bearded dragon, etc.

with a sociable pet you get company at home; and for instance with a dog there are usually local dog parks where fellow owners _eventually_ meet eachother and while not becoming friends always can be a social event with your peers.

mikestew 11 hours ago 0 replies      
Find a hobby or pursue the ones youve got. No, not the React/node.js meetup, ya dork, something not tech related. Here are the places or hobbies I frequent where I could make new friends if I wanted to:1. Local animal shelter. They always need someone to walk dogs. Personally Im married, but were I single and looking for someone (in my case, female), oh man, it makes a great filter if you like animals. And the asshole ratio of folks Ive met at animals is pretty darned low. On a related note, many in these comments suggest a pet. Know that a pet, especially a dog, is a lot of time and responsibility, and not to be taken lightly. Where do you all those animals at the animal shelter come from? Not a child level of responsibility, but my dogs take up a substantial part of my day.

2. Bluegrass jam, or any casual music circle thing. The people you meet are also people you might spend a weekend camping with because you end up at music festivals together. Gotta learn an instrument, though. And one one will occasionally run into the gotta be better than everyone else and make sure they know it asshole, but rarely. Usually a pretty mellow bunch, and the good ones let their playing, not their mouth, speak for their skills.

3. Some kind of sport, like running or cycling, or even beach volleyball I guess. Caution: could be assholes aplenty if you get in the wrong group. I prefer runners, as theyre generally a more laid back group. Try trail running if you like it so laid back youll smell pot smoke before a race.

Those are the three things I regularly participate in where me might meet people (including a romantic partner), and generally nice people at that. Extrapolate to your own tastes and interests.

kevindeasis 10 hours ago 1 reply      
Find a hobby that you want to do more frequently in a week.A hobby that allows you to have lots of people around you that you will see more frequently, but not necessarily forces you to talk to them.

This is the first few part of the friendship formula. Proximity and frequency.

lhuser123 12 hours ago 0 replies      
Thanks for this question. I think many people will be curious about the comments here.

In my case, I have stopped thinking about it. Admittedly, some days it's not so easy, but the next day it's gone. What can I say. Some people like parties, others like strange things, and we like to be alone.

Mz 11 hours ago 0 replies      
The two easiest/best ways to establish strong social connections are 1) a shared interest and 2) being introduced by a mutual friend/acquaintance.

You could look for groups to participate in that involve some established interest of you, such as a book club. You could also put the word out that you are looking to widen your social circle and find some means to signal to existing acquaintances that you would appreciate it if they kept you in mind or pointed you in the right direction. Just letting people know you are open to introductions can help foster them. Introverts are often basically giving off "Go away!" signals without really being aware of it.

guy_c 11 hours ago 1 reply      
Can you give some more details of how you currently spend your time? Live in a city? How many hours do you work? How long is your commute? Do you work weekends? Live alone?
csallen 10 hours ago 0 replies      
This is generic advice, I know but go out and attend a planned activity that requires strangers to interact with each other. It can be salsa dancing, it can be Toastmasters, it can be poker, or anything in between. Just find some sort of time-bounded activity where you interact with people by default and can attend on a set schedule. Good luck!
mixmastamyk 11 hours ago 0 replies      
When I was younger and needed to get out more I took salsa dancing classes in large groups for a year or two. It's good exercise, great music, and gives you an excuse to go out and interact with real people outside the computer.

There's an interesting lesson in there as well about pair dancing, in that you can have wildly different experiences with each partner, similar to relationships.

napsterbr 11 hours ago 0 replies      
Here's something that worked for me: all of a sudden I got this crazy interest in airsoft. Bought a gun and joined locals who get together every week to shoot at themselves. This is just an example, but the concept is great: find a hobby. You'll then find people with very similar interest, and hanging out with them is a lot easier.
gcoda 12 hours ago 0 replies      
I started to play games, with voice. Join clans, talk to strangers. After some time I was hanging out in raidcall room just to talk.
yulaow 12 hours ago 0 replies      
You can try joining a no-profit local community. Also if you are in a tech city you can probably find a lot of tech-related meetups full of friendly people
darepublic 11 hours ago 0 replies      
I remember taking adderall and working 16 hour days for a few weeks at a time. Every once in a while I would message my friends with the word "helllppp" but I was too high generally to care about my predicament. That is how I dealt with loneliness in the aftermath of about failed wedding engagement
pasbesoin 12 hours ago 3 replies      
I've been struggling to begin rehabilitating and changing my home environment.

I went through hell with a series of offensively noisy and aggressively inconsiderate neighbors. So, I avoided home. And I didn't invite people over. And, as the months wore into years, my home took on aspects of neglect.

I was "trapped" at first by some circumstances I didn't deal with well. Then more thoroughly by the self-reinforcing nature of this decline.

Basically, if I'm not comfortable at home, I do not have people over. I lose a big part of my control over my interactions as well as my ability to reciprocate.

Further, since these circumstances stress me so, I don't feel well about myself -- including my inability to more effectively deal with the situation -- and this also causes me to engage less.

And as this is self-reinforcing, so is the attendant, resultant loneliness.

When I do get away from it, I enjoy interacting with people and seem to do reasonably well at it. Well, the "cool" people are still too self-absorbed to accept me. Fuck them -- a lesson too long in learning.

I'm not saying I have "the answer." But my intuition, of many years now, has not changed: I need to get the hell out of here and to somewhere I'm simply more happy and at peace with myself.

Otherwise, half my mind is always at least subconsciously worrying about the monster behind the door. Like neighbors with sub-woofers who would rattle my windows for hours on end.

maa5444 12 hours ago 0 replies      
change your diet first... again... change it meet ppl in your free time and be prepared to fail when trying to mingle, but enjoy the little moment of happiness that soon or later will come.
SirLJ 11 hours ago 0 replies      
You need a hobby outside the computer world, something you cannot automate, like fishing or sailing, to meet different people and share the passion
rusant222 13 hours ago 0 replies      
Ask HN: What problems does blockchain solve?
59 points by bvod  6 hours ago   42 comments top 16
austenallred 5 hours ago 2 replies      
The blockchain keeps track of who owns what, even as those things change hands, without requiring some central body to keep track of it all. The easiest way to think of it is an instant, incorruptible market that somehow magically just works.

To know why that matters you have to understand the problem(s) it's solving - it's something people have been working on since the beginning of money, but there are so many edge cases we usually ended up just going back to a centralized authority. In the past you've needed something like a bank or a government or a company to have the authority to declare, with authority, "Person x owns the title to that house."

There are a few problems with that: They could do things to screw everything up (a government printing currency and causing inflation), be corrupt (countless examples), or perhaps not even exist because it's too much effort to create, set up, and monitor some body.

With the blockchain, the software everyone runs keeps track for everyone else in an incorruptible way (yes this is a simplification), so you're free to make changes (or transact) without having someone in the middle to wait for, and with no one that can really screw things up. Just boom, instant marketplace.

The most obvious thing you'd trade on a blockchain is some kind of asset - a cryptocurrency is the main example, or titles or stocks or something valuable.

Say, for example, I have some loans that people owe me on. I can throw those loans on the blockchain, and without a clearing house somebody else can buy them, and when the loan payment comes due you can easily see who owns the right to be paid.

It seems trivial, but allowing people to seamlessly make transactions of any kind without the overhead of a bank or clearing house is a big deal, and has a ton of applications.

colept 5 hours ago 0 replies      
The blockchain really only solves one problem:

How to trust a single entity by using a magnitude of peers to establish an agreement. In the case of Bitcoin it's a monetary transaction.

One example would be file digesting. When you consider malware: if files were signed and digested on ablockchain we would have better oversight of the authenticity of a download. A file could be confirmed against the blockchain to detect if it matches the certification. Since the source alone cannot be trusted, the confirmation of many adds that layer of trust.

Anything beyond the issue of trust is not suitable for a blockchain as there are more efficient technologies.

retube 5 hours ago 1 reply      
None of the responses in this thread so far give a specific real-world example of _how_ blockchains solve a problem. Just repeating the mantra that a decentralised ledger is great for payments or trade settlements or whatever. Yes but how?

The only use case I know, beyond proof of ownership of coins/tokens (and, again, how can that be applied to a real world problem), is proof of document state at a certain point in time (via storing document hashes in the blockchain) which clearly has some uses in law for example, but apart from that I am stumped.

eksemplar 5 hours ago 1 reply      
I heard Maersk were using it for container shipping forms.

Because a shipping form gives you global ownership of a container and because corruption, the security required to handle shipping forms pre block chains meant it was more expensive to ship the form than the container, and still it wasn't completely secure.

The block chain shipping form solved this issue completely because you can never fake forms or hide when ownership of a container changes hands.

You could frankly do something similar for public records of landownership, which might not be important in the west where corruption is low, but could revolutionize the third world.

itamarst 58 minutes ago 0 replies      
nikanj 5 hours ago 0 replies      
Right now, it seems like the number one problem solved with blockchain is "how do we convince investors our startup is an unicorn in the making".

It's like XML in the 90s or Web 2.0 in the 00s. Gotta use the technology to get the funding, regardless of actual suitability to task.

ebcode 3 hours ago 0 replies      
If you forget about blockchain for a moment, and just focus on your last question, then you can see that the internet itself is a type of "decentralized data store", which solves one major pain point of humanity, namely, access to information.

If you're old enough to remember the days before the internet, access to information beyond what your parents and peers could tell you was found in the public library. Books. I have always loved books for this very reason. They give me access to information beyond what my immediate community can (or will, when you think about it) tell me.

Of course, the problem with the internet (in its present form) is that the information is so unreliable. There are just too many conflicting interests. With the library, you at least have the librarian, who, being a sort-of gatekeeper, makes sure that the library contains only "good" books.

So, blockchain. What problem does it solve? It's a really good question. The blockchain is a distributed ledger, that is, basically, a key-value store. The keys are the bitcoin addresses, and the values are the bitcoins themselves. What is unique about it, and what makes it such an interesting program, is that the record of transactions is constantly being updated, because there is a bitcoin "reward" for running the program. So, even if everyone stopped trading bitcoins tomorrow, if they were just like, "nah, we're over it", the bitcoin network itself would still generate some new bitcoins, and the ledger would be updated. It's really a fantastic invention, when you think about it.

The value of a blockchain is that it adds a type of "reliability" on top of the internet. Because the ledger is public, anyone can inspect it. Because the network is distributed, all the miners running the program are, for want of a better phrase, "keeping eachother honest". When you look at a regular website (or book, or movie), it can be hard to tell if the information you're seeing is legitimate/honest. Whereas when you look at the record of the Bitcoin blockchain (for example), you can be fairly confident that those keys (addresses) were assigned those values (bitcoins) at that time.

To sum up, the problem that a blockchain solves is storing a reliable record of transactions, by harnessing the inherent self-interest of people to "make money" (ha ha).

tbking 5 hours ago 1 reply      
There's room for blockchain in every place where:1. there's a central authority involved2. the central authority is prone to error, bias and hostility

=> Most used application is money-based transactions. Banks are central authority and are affiliated with governments, which makes them charge of your money. Use blockchain (Bitcoin).

=> Supply chains are inefficient due to checks and sign offs by so many people. Use blockchain (Hyperledger)

=> People don't agree on terms, and they end up in a feud or a lawsuit which is costly. Use blockchain (Ethereum)

Blockchain, and decentralization on whole is seen to be as future. Many want to tap it before others. Of course, large number of startups will fail, but it doesn't say anything about the potential this technology holds.

haspok 4 hours ago 0 replies      
Try this for a start:https://hackernoon.com/why-everyone-missed-the-most-importan...

Actually, this is better:http://iang.org/papers/triple_entry.html

My attempt at trying to explain it in one sentence: blockchain provides the technology to connect the double entry ledgers of two (or more) parties by recording the transactions between them, in a way that makes it possible to _prove_ the existence and validity of the transaction independently, without relying on either party's ledger.

Hamcha 2 hours ago 0 replies      
If you can't find investors it's a nice buzzword
mshanu 2 hours ago 0 replies      
In a nutshell I feel, blockchain can be used in places where you need robust place to store immutable events. In real world, I can give examples of, birth, death, transferring money, casting vote, owning an asset etc
ruairidhwm 5 hours ago 1 reply      
It'd be handy for tracking baggage in the travel industry. Your bags are handled by numerous different companies/parties at different points and through a ton of locations.

Blockchain would be excellent for verifying that a bag has been received and processed at a certain place.

Lots of the large GDSs such as Sabre/Amadeus/Travelport are actively looking into this.

davidgerard 4 hours ago 1 reply      
PREDICTION: all examples in this thread will be hypothetical. If a real-world example is linked, it will be a pilot programme, probably one IBM is writing press releases about.

I have a book coming out next week (!) on the subject. https://davidgerard.co.uk/blockchain/ I have a whole chapter on business blockchains, and I looked hard for a real-world example of one in use. There actually aren't any.

The closest we have is .. git! Transaction ledgers, each with a tamper-evident hash, in trees and chains of hashes. Devs routinely throw entire ledgers/repos around, identified by hash. It definitely counts as a "distributed ledger technology", and it's hugely successful. The only thing it doesn't have is a consensus mechanism - it's "here is my tree" or "here is this repo, this is the hash".

As we're seeing here today, most claims for business blockchain are literally the airiest hypotheticals regarding Bitcoin, with the buzzword changed.

The usual concrete posited use cases are interoperability (that it will magically clean up your data and formats) and that it will magically resolve real-world human-level disputation. Neither of these is likely to work out that way.

shpongled 5 hours ago 1 reply      
One of the main benefits is that data (financial transactions, healthcare records, etc) stored on the blockchain is immutable, decentralized, trustless, and cryptographically signed
dragontamer 5 hours ago 1 reply      
For the industry, I don't think they actually want a decentralized data store... nor do they want anonymity, or any of the stuff typically talked about in BTC or cryptocurrency circles.

I think for most businesses, the real applicable portion of the blockchain was cryptographic signatures to solidify public ledger. That's about it. Kind of simple, but I think that's what people are paying attention to.

In effect, its less about the technology that BTC and/or cryptominers care about... and more about the boring part that seems to get people excited.

A lot of "blockchain" companies seem to be enabling peer-to-peer transactions for example. By centralizing all transactions to a particular server. There's this one company (I forget the name) which claims to be using Blockchain for exchanging Solar-credits between neighbors.

Having a ledger that is cryptographically reliable, even if centralized, is the main benefit. Also, one that can be fully automated is a big deal. I mean, that's all Visa or Mastercard really are: systems that describe when and where transactions have occurred around a centralized source of trust.


EDIT: And yes, I know what a blockchain is in BTC circles. But I don't think a "Bitcoin Blockchain" is what people are talking about on typical marketing material. Just like "the cloud" has evolved to mean something new... "blockchain" seems to have been picked up by managers and/or venture capitalists to mean something totally different.

Temasik 5 hours ago 1 reply      
Nothing blockchain is a fail concept and it can't scale plus the expensive fees
Is it ok to copy the TOS or PP from another site and modify it for my own uses?
4 points by therealsolomon  2 hours ago   2 comments top 2
rsto 1 hour ago 0 replies      
IANAL, but if there isn't a license explicitly stated you must not reuse it (without permission).

Luckily, Automattic make their ToS available under a Creative Commons Sharealike license, which might be a good fit for your site.


wheresvic1 55 minutes ago 0 replies      
If you want something simple you can use the following: - https://ewolo.fitness/terms - https://ewolo.fitness/privacy
Ask HN: What questions did you ask (or wish you asked) your cofounder?
74 points by ovatsug25  20 hours ago   37 comments top 17
seanmcelroy 17 hours ago 2 replies      
The most important element, in my opinion, is one that single questions alone cannot discern: Is this person a workplace psychopath?

I'm not kidding, and this is a real issue. A lot of people who can be great entrepreneurs can also have detrimental effects on your culture, the trust of your clients, and your long-term sustainability. Drive, initiative, passion, aptitude - these are qualities present in great founders and appear to be present in workplace psychopaths.

Get to know this person, and get a strong sense of their values - not from what they say and want you to believe, but from taking in the context of their accounts of what has worked out, and what is not, in their personal and professional life. For people they speak dismissively or negatively of, find them and get their side of the story. You cannot do too much due diligence here - this is critical, especially if you start to become widely successful. Then you're locked in with your partner in the co-pilot seat, and you won't have the desire to bolt or ability to change your decision without significant if not disastrous consequences to your business.

Your values must align, and you must trust this person with your life. Your startup will be your life for the next 7-10 years, by your planning.

bacheson1293 18 hours ago 2 replies      
It's important to determine whether or not the person is qualified and capable. While questions have their merit I'd recommend a more creative exercise.

If you have the means, take a trip half-way across the world and live in close quarters for 3 weeks together (while you work to get the business off the ground). If you can't stand them by the end of the trip; walk away.

I've been working with my cofounder for 15 years now and together we've accrued more than ~$30M in combined revenue from a handful of projects. Being able to argue, disagree, make a decision, move on and then grab a beer after work like nothing happened is paramount. Your personal relationship with this person will be the first domino in every decision you make.

joelennon 18 hours ago 0 replies      
Tread carefully starting a business with someone you don't know. If you decide to forge ahead, you'll need to get to know the person not just professionally but personally. I've seen several co-founder relationships (including my own) break down due to personal circumstances that could probably have been predicted had there been a stronger personal relationship prior to starting out. Above all else, discuss at length "what-if" scenarios for every conceivable outcome, in particular the ones that you don't think will happen (like one of you deciding to leave). Get a founders agreement and get a lawyer to translate it into legalese. Put vesting in place so you don't run into tax issues clawing back shares if she decides to leave. Don't wait until you're further down the road, do it straight away.

As for determining if she is the right person professionally, I'd make a list of all of the things that...

1. You suck at

2. You hate doing

...that will be necessary to succeed. In a perfect world, she will excel at many/all of these things and love doing them - allowing you to divide the workload and each focus on your strengths. Don't take her word for it - find out, test her, check references, do whatever you have to do to be comfortable that she is the right person.

valuearb 15 hours ago 1 reply      
Number one thing is discussing the equity split and what happens if one of you quits.

I have a friend who helped start someone selling a breakfast product. The plan was my friend would invest $20k and the partner would run it as a local business, and they'd split 50-50. Very quickly my friend got excited by the potential and started working full time to help, ends up investing hundreds of thousands of dollars, doing all e-commerce, marketing, negotiations, paying for industrial quality kitchen, etc, while the partner just mixed and packaged. Sales shot up and the company begins to have significant value, but still requires more investment.

They needed to switch from an LLC to a C corp so they could get funding and start giving stock options to attract/keep good employees. The partner conceded that my friend was doing the lions share of the work and had put a ton of money in while he had put in nothing, and that my friend should have most of the initial stock in the C corp. But they struggled to agree on an exact split.

So then the partner talks to friends and family who of course tell him "it was YOUR IDEA, you shouldn't have to give up anything!" and comes back refusing to sign anything (which scotches the C corp conversion). Eventually he's able to force my friend to buy him out for a totally unreasonable price.

So my specific advice is.

1) Never start a new venture as an LLC unless you don't plan to ever share equity with employees AND you expect it to be a cash flow business that will pay out all profits directly to partners.

2) Always force all partners to vest their equity over years. You can do incentive stock options, or restrict stock units, or however you want. If you can't afford a lawyer to draw it up yet, at least put the arrangement in writing and agree to it, so that if you have disagreements and need to part ways, you aren't being forced to buy half the business from some guy who mixed ingredients for 6 months.

jbob2000 19 hours ago 2 replies      
One that I wished I asked, knowing my situation now:

"If either one of us loses interest and wants to move on, how can we handle the situation?"

mtmail 11 hours ago 0 replies      
Do you have any (personal, business) debt and if so how much?

I worked with a person with the plan to raise money later. It turned out he didn't run his current business well and soon wasn't able to pay for rent, had to sell his car, stopped paying the rent for the office we were sitting in. Looking back it explained a couple of questionable decisions (e.g. claims to debtors, very much over-promising, aggressive release plans, side-projects to make extra money). I'm not saying you have to be well off before going into a months/years long project but living paycheck to paycheck isn't a glorious "[he|she] is hungry and eager to make this a success" but plain stupid.

kmundnic 17 hours ago 0 replies      
I think it's important to be on the same boat money-wise, while also expecting similar things for the near (or not-so-near) future.

Questions: * Do they have any loans that need to be payed? If yes, how would this affect future decisions to stay in the company? * Are they thinking about wanting to do something they haven't been able to do before (traveling for long, living abroad)? * How much do they need the stability of a regular job?

alanwells 18 hours ago 1 reply      
Some topics worth exploring that I've seen become areas of co-founder conflict:

* When faced with a difficult decision and incomplete information, how do you decide what course of action to take? Can you talk through a real life example of a situation like this?

* Let's assume we decide to be co-founders and start this company together. What kinds of things would cause you to want/need to leave the company you helped start? Are there milestones, financial or otherwise, that the company needs to hit in order for you to keep working on it for the long term?

* When it's just the two of us working on the company, how would you like to divide responsibilities between the two of us? If we succeed in growing the company beyond just the two of us, what do you want your role in the company to be?

davidbwire 18 hours ago 0 replies      
This may be partially unrelated. If one of the reasons of you wanting to deeply know your co-founder is the fear of her leaving the company in future please consider having a vesting schedule with one year cliff. This will allow you ample time to know each other well.
mikekij 16 hours ago 0 replies      
"If we got an offer to buy the company for $X, would you take it?"

My team had a specific conversation about that when we started the company. We even picked "a number". 4 years later, we got an offer for that number, and one founder was hesitant to take it. We all pointed back to that conversation when making the decision to sell. Had we not had that conversation, it would have been real fight internally.

superasn 10 hours ago 0 replies      
Speaking from my own personal experience, the most important thing about your co-founder is that she must be good at things you're not. If both of you are good at the same things then you're probably doing it wrong.

Also like that e-myth book, make sure whatever roles you're going to be taking, it is in writing and there is no confusion about who is doing what. This is especially important when the day comes and you have to take a big decision about your company and she sees differently than you.

alain94040 15 hours ago 0 replies      
The questions are mostly useless. Work together for a significant duration. After a while, you'll know if you work well together, if you share the same general goals, and if the person is bringing serious contributions to the project.
mbleigh 13 hours ago 0 replies      
If you need to ask them these questions that's an employee, not a cofounder. Maybe it's an employee with a big chunk of equity, but in general you should have a pre-existing professional relationship.

Otherwise, there aren't enough interview questions in the world to tell you the important stuff.

gayprogrammer 16 hours ago 0 replies      
Be aware of your own human nature: you will want it to work, more than you will want to accept the signs that it won't (confirmation bias).

You will say to yourself that "little things" can easily be overcome, but people rarely change. People make most choices by their external circumstances and influences, even when they truly want things to be different.

andrewtbham 18 hours ago 1 reply      
I recommend meeting some people they know family, friends, old colleagues.
j45 16 hours ago 0 replies      
Partnership is harder than marriage, in part because getting on the same page, and staying on the same page is incredibly difficult.

Mix into this the shiny toy syndrome that co-founders can fall prey to over time, and it really becomes about dating before getting married.

Every partnership is about creating value through leveraging an opportunity together, not leveraging against each other.

If the partner's value is adding sales, their equity should be tied to vesting as a percentage of the lasting sales that stay in.

If they are creating value through code, it should be seen the same way.

I also very much value hacking on small problems in the desired space to get an idea if people can work together and ship regularly before going steady and getting married.

Ask HN: Do you believe that Authy cloud backups are secure?
18 points by Fej  18 hours ago   4 comments top 4
ehPReth 14 hours ago 0 replies      
I haven't looked in to it past being an Authy user but when restoring from backup I was a bit miffed that the service (Google, GitHub, Other, etc) and the comment (e.g. username, email) were able to be seen without inputting my backup password.
twunde 9 hours ago 0 replies      
Many security-conscious product companies go through an independent audit of their security processes to become certified. This doesn't necessarily mean that the code is secure, but it does mean that the company/product follows procedures and policies designed to ensure that the company and its products are secure, such as going through an annual penetration test. According to their website Authy is SOC2 compliant, so you should be able to ask them for their report (you typically have to sign a NDA). Importantly, you should read the report, ESPECIALLY the exceptions. It should give you a good feel for their security model and security defenses.
DarkByte 13 hours ago 0 replies      
I ask myself the same question and I always stop at thinking that its just the 2FA tokens and not the actual passwords.
abrands 13 hours ago 0 replies      
I would agree
Ask HN: How to send GMail from command line?
3 points by tailormailed  6 hours ago   1 comment top
Jaruzel 6 hours ago 0 replies      
As GMail uses SMTP/S for sending from an email client, a cursory google search for 'linux send smtp/s command line' gets you something like this:


As for listing your inbox and folders, searching for a command line IMAP client should net you something as well.

Ask HN: Is TDD or BDD used in AAA gaming industry?
61 points by jcfausto  5 hours ago   47 comments top 17
dfabulich 5 hours ago 5 replies      
In my experience, no, they don't write tests first, and in fact AAA game companies write almost no automated tests at all.

Instead, AAA teams have large staffs of cheap manual testers--high school and college kids who think they're getting paid to play video games. The managers in charge of these QA teams work their manual testers to the bone, encouraging them to work late and do unpaid overtime. These testers inevitably burn out, and but there's always a new batch of kids coming in to replace them.

When manual QA is that cheap, it turns the economics of automated testing on its head. Why maintain an automated regression suite when you have humans who will do the testing for you?

There's a similar effect on the dev side. A lot of inexperienced developers are willing to take a significant pay cut to work at a AAA game company, just for the dream of working on a AAA game. The devs, too, are notoriously managed as an expendable human resource. "You'd better keep working overtime, or I'll just replace you with another kid who'll work harder than you for less money."

As a result, AAA game developers burn out pretty quickly, too, leaving the game industry for other software companies that both pay better and offer a better work/life balance.

As a result, you'll find that a lot of AAA teams are relatively inexperienced. Sure, there's a core of long-time devs on every team, technical leads who can point the way, but it's not an environment where you can get solid mentoring on the best practices of software development.

Even if one team does pick up TDD, who knows if the same team will even be there in another year or two? Good software practices are regularly "rediscovered" on AAA dev teams, and then forgotten, as the team turns over and their tribal knowledge fades away.

Negitivefrags 1 hour ago 1 reply      
I work on a game called Path of Exile.

At our studio we don't do TDD, but we do continuous integration with a lot of asset testing.

In the early days, we tried doing unit tests, but honestly, it's very hard in a game. We had little success testing gameplay code.

What we have a huge amount of is asset tests.

We have 4 times more non-programmers than programmers working on the game, so most of what is created isn't code anyway.

Every time anyone commits anything, it goes through our continuous integration pipeline, and any asset that changed, or is dependent on an asset that changed, is loaded and tested. This includes test loading entire levels.

Test loading every asset catches most types of failures.

We try, where possible, to add specific tests for common mistakes in order to catch things as early as possible.

For example, if an animation has "walk" or "run" in the name, then we test it also contains footstep events in the animation somewhere. If a model is used as a monster we test that it has an attachment point called "frame_upper" onto which various effects can be attached. We look for things like bounding box of an object being far away from the co-ordinate origin (a common mistake when making a big maya scene with lots of exported objects in it).

We also do a test start of the servers, which includes loading all of their data, and a test start of the client.

All of this means that a build that goes through green is unlikely to cause crashes for other people trying to work on the game.

We do, of course, also have an excellent QA team.

speps 4 hours ago 2 replies      
If you want to experience that in the AAA game industry, I work at Rare Ltd (UK, part of Microsoft Studios). We've been doing TDD and Continuous Integration for about 5-6 years now starting with Kinect Sports Rivals. For Sea of Thieves[0] (our current project), we've extended that to Continuous Delivery and it's been just a complete game changer in regards to overtime and crunch. For example, the onboarding exercise is basically a TDD kata that has to use our coding guidelines and build farm so you get to know how we work without having to dive right away into Unreal Engine 4. We use TeamCity for our CI solution.

And yes, we are recruiting : https://www.rare.co.uk/careers

[0]: https://www.seaofthieves.com

EngineerBetter 5 hours ago 0 replies      
As a one-time indie game developer who went to work at a 250-person games studio, my answer based on limited experience is "probably not".

BDD in particular is tricky, because beyond the level of abstraction of the engine, you don't really know what you're building. How do you express that a thing should be fun, or weapons reloads feel punchy, in a BDD spec? How do you automatically test that?

Games code exists purely to elicit reactions in human brains. We don't have the technology yet to examine the desired state change in the target system.

Regular apps have the same problem, but with less expensive assets and less iteration. "As a user, I should feel that the login transition is slick" is a spec I can imagine that is UX-related. However, we can probably all agree on what slick is, and failing that you could user-test it to prove that the implementation is acceptable. A game is made of many complex adaptive interacting systems, so every change needs subjective validation.

On the subject of complex adaptive systems: many games feature them and so exhibit fundamentally unpredictable emergent behaviour. This can be hard to test for.

The most testing I've done in a games project is to figure what it is you're trying to build, then unit test the implementation when you've worked out if it's fun.

fuwafuwa 4 hours ago 0 replies      
Short answer: No. Gamedevs have to keep showing testing zealots the door.

Long answer: The problems with the approach are manyfold. There are a few points where testing is automatable, but they don't describe entire game projects well.

* What are you testing when you add gameplay? You are testing for a whole set of design concerns across the project, not just a technical specification or quality of service metric. You cannot do it in isolation and get the results you want at the speed you need, because you need tons of feedback to discover what a complex game is currently strong or weak at. The only reasonable way to gain the necessary feedback is to allow prototyping code to drive near-term changes, manually playtest it, and then factor out the most stable parts of the resulting soup where you can. This works against test-first because you don't really know what you're testing. You throw in a feature on a hunch - "maybe this will give the experience we're looking for" - and see how it behaves hands-on. If it works, there are still usually ramifications and elaborations that didn't surface up-front. And once it does work it's hard to break out into a sandbox because the interesting part of the behavior is in the coupling to other systems and features.

* Games deal with vast quantities of mutable state strapped onto relatively straightforward data pipelines: the parts that are most testable are engine and toolchain core elements like asset builds and rendering systems. These parts do see unit tests and integration tests, although there isn't total consensus on how much testing is needed or how it should be done. They are the most like business and application software, though, since their development can be more structured around technical goals and quality metrics.

* Many bugs are ultimately data bugs. Some designer or artist set up the wrong binding of assets or made a valid yet broken combination of parameters. Games tend to fly apart very suddenly when they operate on bad data. But the code is doing exactly what it should do for that set of inputs - and if it's a failure it's at the level of process and tooling, not the runtime code.

moomin 4 hours ago 0 replies      
My biggest observation with AAA games is that the coding is actually a fairly small part of the work. Most of it is one huge asset pipeline. And I don't think we have particularly good tech for testing what "looks right". Maybe computer vision will get that good eventually, but it's not even a thing right now. The same applies to the gross properties of renderers.

Even in big-spec-up-front triple-A games, there's a lot of exploratory work where you honestly don't know what you want. BDD and TDD don't help there either, rapid prototyping does. (TDD presupposes you know what you want, BDD presupposes someone does and you need to find and talk to them.)

None of which is to say that there aren't many places where test friendly design and regression tests wouldn't help. But the surface isn't the same as the average business app.

stuntkite 5 hours ago 0 replies      
I worked for a AAA game company in the game server department and I would say that with the schedule and how the shop was directed it was nearly impossible to do TDD. I can't speak for the engine side, but my guess is that it was not possible over there either.

I bet like anything through, if you go to shops that have strong direction, can work with a small team and over deliver, those standards paradigms are used.

Check out the tests in the Quake3 Source Code. It is a shining example for sure.


wolfgke 3 hours ago 1 reply      
Croteam applied lots of automated testing by bots in The Talos Principle to ensure that changes in level design cannot lead to a situation where the game cannot be completed anymore:

> https://venturebeat.com/2014/11/04/the-talos-principle-under...

> http://www.gdcvault.com/play/1022784/Fast-Iteration-Tools-in...

stonewhite 18 minutes ago 0 replies      
A colleauge working at a AAA Soccer game gave some insight about that a few years back.

Their automated testing was mostly bruteforce stuff like,

* Placing a character at penalty spot and making it shoot with every possible angle and strength, making sure the ball didn't launch to space.

* They would leave a computer vs. computer game running for hours / days to make sure no kind of random crash would happen.

taspeotis 5 hours ago 0 replies      
Hi, this article [1] isn't quite what you're after but you might be interested in it anyway.

[1] https://engineering.riotgames.com/news/automated-testing-lea...

gleenn 5 hours ago 0 replies      
Having never worked at a gaming company but having a friend who was the head of testing at one very recognizable shop, the answer was definitely no, at least not there. Its definitely a big enough industry that I'm sure some does though.

Also, last time I wrote any 3D code, it at least appeared to be incredibly hard to test that some visual thing was just so. Of course there are still things like business logic that surely could be tested, but it's just not going to be as straight forward as having some code generate some HTML string and then asserting things against it. Those last-mile things you might want to test are always a challenge IMHO.

I learned a lot of my coding chops at a Rails shop that was very in to testing, so that's definitely my perspective, YMMV.

brad0 5 hours ago 0 replies      
In my experience no. Testing was not even considered. I worked on mobile games 5 years ago so things may have changed.

Most of the time we had strict timelines with feature milestones. We were building mobile apps of licenced titles.

The lack of TDD was replaced with full time QA, sometimes multiple on the one game.

purrcat259 5 hours ago 2 replies      
Factorio is a good example of a test driven developed game:


Nysa 3 hours ago 0 replies      
I am not working directly in gamedev but I have some insights.

I've seen growing interest in automated testing from mobile apps.

Basically guys were writing regression testing with framework like Selenium (UI testing) that goes throughout most common scenarios.(I think that was described by huuugegames.com on some presentation)

The main idea was to let QA focus on "exploratory" tests. (Testing rules of the game, design decisions or performance)

TDD & BDD can be used gamedev but not in places you will think of first.

I will simplify it vastly: programmers make tools for designers to use.

Tools are made by programmers - tools can be done with TDD and/or BDD.Games are made by designer - they use tools to make rules, systems etc.

Therefore gameplay is make mostly out of data (designer's parameters set in engine/tools) - you can't test your data with TDD/BDD.

drawkbox 3 hours ago 0 replies      
Game development projects are usually focused on tech/data/network/engine, asset creation/pipeline, behaviors and gameplay.

In the tech/data/network/engine areas there may be TDD/BDD if the engine is to run multiple titles beyond the current project, if not the budget may not even allow for time. Possibly other areas may have tests in the behavior/gameplay areas: components, AI etc, this depends on the current dev culture usually.

Really the main thing in game development is shipping and building fun, if tests help you do that faster/better then you do them. I think most devs developing anything that is not game specific but tech/data/network/engine related likes to have tests to rely on, time permitting.

Most studios I have worked with that do some TDD/BDD/automated testing it usually happens on the "tech" or core/engine teams rather than the "production" or "live" teams. The tech teams are working on engine/network/data while the live/production teams are using the engine/tools/scripts to make assets and gameplay. The tech team isn't as locked to game launch dates/crunches and has more time to be thorough because most of their code will last across multiple titles.

For the most part, in the asset creation/pipeline, behaviors and gameplay area, more of that is visual and QA based. There are testing companies and departments setup just for the gameplay/feature testing. So much of game development is going for fun and a good mechanic that actually playing it and testing it live is more effective than automated tests in some areas. Although there are some automated test tools in Unity[1], Unreal[2] and custom engines maybe for very rote areas of gameplay (physics engine, collectables, asset loading, very common unchanging actions etc).

Many times on the production/live side of game development, gameplay and behaviors change so much that any automated testing becomes a lag on dev/iteration time, or aren't updated and stagnate as the changes happen so quickly day to day. This is especially true in iterative development during prototyping or pre/post-production, since it is mostly visual the benefits are outweighed by the speed required to ship.

[1] https://unity3d.com/unity/qa/test-tools

[2] https://docs.unrealengine.com/latest/INT/Programming/Automat...

ZenoArrow 5 hours ago 2 replies      
I'm not in the game industry, but from what little I know, this is probably going to be a tricky question to answer.

Reason being, a high proportion of AAA game development is done using off-the-shelf game engines. Of course it's still necessary to write code for the game logic and features, but because of the stable base this code is written against, it might not be seen as necessary to follow a strict TDD/BDD approach.

Ask HN: What's the worst thing your code has done?
82 points by Procrastes  1 day ago   90 comments top 33
gozur88 1 day ago 2 replies      
I wrote some code to manage kits in a warehouse. Like, a customer would order a kit that required A, B, and C. Then the picker would get sent to those three locations and put it all in a box and onto the conveyor belt for shipping.

The problem was the warehouse owner wanted partial kitting. So if the warehouse only had (in our example) A and B, the code would send the picker to put A and B into a box, then direct him to drop it off in a special partial kit area. When C was back in stock, the system would have the workers fill out the partial kits and ship them. This way if a kit required a dozen items and you were just waiting for one to arrive, you could get most of the work done beforehand.

The problem was now A and B are in boxes and not in "inventory". So when someone orders a kit that contains A, B, and D the A and B bins are empty (as all items A and B are already part of a kit and thus not available) and the code would direct him to put D in a box and put it in the partial kit area. Eventually the D bin is empty, so when an order comes for a kit that requires D and E, we get another flood of partial kits, all going to the same location (which was just a square painted on the warehouse floor).

Anyway, long story short, if the right few items were out of stock and the right orders came in the right sequence, nearly the entire inventory of the warehouse ended up in a giant pile of boxes that was too large for the workers to sort through even when the needed items arrived.

Everything was humming along just peachy for weeks and then BAM! Red faces all around. It took days for them to put all the inventory back into the proper bins and fix all the data, and that probably cost into seven figures, all told.

In my defense, I wasn't the last one to touch that module.

jnord 1 day ago 4 replies      
In the early days of my career I had to modify some code for a PLC that operated on a car production line. The modified code took too long to run so a watchdog process assumed the code had frozen and performed an emergency shutdown of the hydraulics of the line's welding robots. Six cars were damaged when the heavy robot arms crashed and buckled car roofs, and the one-car-every-45-seconds production line ground to a halt for 15 minutes.
chrisbennet 1 day ago 1 reply      
Many years ago, when the earth's crust was still cooling. I wrote an application to generate tool paths for the milling machines my employer made. Milling machines use a cutting tool that looks something like a drill bit except that it cuts on the side of the tool instead of the tip.

One day I was told that my software had a bug. The tool wasn't being retracted (pulled out of the material being cut) before being rapidly moved to a new location. As a result, the cutting tool was being broken off.

I asked [I think it was our application engineer] if we sold the replacement tools to the customer and I was told "yes". Then I asked him: "Then isn't breaking off tools kind of a feature"?

"Just fix it Chris. Just fix it."

davimack 1 day ago 0 replies      
Not mine, but one I ran into. This is on an automated testing rig for microwave devices, which are odd things - you don't have wires for microwaves, you have wave guides, which are basically tubes which you can pipe the microwave through, and which are incredibly fiddly to get situated properly. So, to test one of these things, you're likely to get a failure and not have any discernible reason for it failing - you'll tear it down and not find any problems, put it back together and it'll work just fine.

Well, the engineer writing the test code knew these devices were odd, and that sometimes they'd just fail. So, s/he put in an if block to the effect that, "if this fails once, run the test 30 times and, if it passes 25/30 times, call it a pass." So, every now and again, the entire automated testing line comes to a halt and sits there for 31x the amount of time it should take, and it's not a short test (maybe sat there 30 minutes each iteration).

zaptheimpaler 1 day ago 0 replies      
I wrote some code that was pulling batches of events off a queue, doing some processing and then writing them out to HDFS.

The inner loop was something like:

 while message: converted_event = new Event() for event in message.events(): converted_event.set_fields(event) write_to_hdfs(converted_event) 
Can you spot the bug? Led to a month of corrupted data before I noticed..

The `set_fields` method does not clear all fields, so every event had more and more junk data than the one before it. All because i thought i would be clever and get some performance gains by initializing `converted_event` outside the inner loop.

LorenPechtel 20 hours ago 0 replies      
Wasn't actually my fault: My code ordered the factory to errantly produce several thousand dollars worth of left-hinged doors. (A guy who should have known better set a bunch of flags that messed up it's hinge-determination logic. Anything that was supposed to be produced as one left and one right got produced as two left instead.) As everything was build-to-order it's unlikely any got used at least for their intended purposes. (I still have a few unused doors around--put some casters on them and you have a nice looking rolling wooden platform. The laser printer on the floor beside me is sitting on one of those.)
carvin 1 day ago 1 reply      
I was an intern at a university security lab working on a 7 months project. Early on, I figured it would be a good idea to use SVN to save my work so I setup a repository and did a few commits but quickly stopped maintaining the repo.

One hour before the end of my internship, I was ready to leave, my work done, ready to be used for the next person taking over the project. I want cleanup my files and documentation so it is all tidy and I try to commit my work. Of course SVN cannot commit because the repo and my work have nothing left in common. So I type (on a Linux system): svn deleteto cleanup the repo so that I can push my files...I lost months of work and I was not able to recover my lost files from the file system... I had to leave for my country of origin since this internship was part of an exchange program. I felt so bad about it, it still haunts me.

istotex 1 day ago 1 reply      
On the last project I was working on, I built a backend on Node.js v4 for an online course site. For a long time I was trying to convince our team leader to switch to Node v6, since it supported ES6 and I couldn't wait to use the new JavaScript features like, e.g. classes. However, he was always reluctant to make the switch, since there were other priorities at the time.

At some point, I found out that inserting 'use strict' at the beginning of each Node.js module, enabled the experimental ES6 (harmony) features in Node v4. Needless to say, I was super excited and immediately started using classes and other ES6 goodies everywhere, even refactoring already existing modules.

Shorty after that, we noticed that our servers were leaking memory and started crashing almost every day. At the time, I had no idea what the problem was - and believe me I tried everything to find a solution - until a couple of months later we switched to Node v6, and everything miraculously returned back to normal. In the meantime though, during those 2 dreadful months between v4 and v6, we had to setup cron to restart our servers every single day at 04:00...

Never use experimental features.

tatersolid 1 day ago 1 reply      
I once wrote a server "clean up" script moved all .log files older than a few hours to an archive.

Someone else added it to a group policy for all corporate servers, including all our Exchange servers, where the active database transaction logs are named .log.

Procrastes 1 day ago 2 replies      
I'll kick it off with my own. I've had a few, but the most dramatic was when I once changed the wrong line in a configuration script and ripped a three ton(U.S) mixer out of a concrete floor.
MarkMMullin 22 hours ago 1 reply      
Desperately sought just an extra 4K of RAM to see if a LISP expert system would get through a diagnosis on a Huge Aircrash Firefinder maintenance guide - had a kernel license, dug around and found a magic flag for a 4K block - tested it, seemed OK, put it out in the field, and the first time it ran, it grabbed that extra 4K and was instantly rewarded with a "Panic: out of swap space" and the whole damn thing dropped dead :-(
ioddly 1 day ago 1 reply      
When I was a teenager, I crashed a MUD hosting server by forking a process in a loop. The admin kindly explained ulimit to me. (This was before VPSes were a thing).

I was so mortified, I guess it stuck well enough that that's the worst thing off the top of my head.

But it seems like I'm an underachiever based on this thread.

sidlls 1 day ago 2 replies      
Helped the armed forces of my country kill people.
canada_dry 1 day ago 1 reply      
Almost got me fired on the spot.

One of my first implementations at a bank many years ago... bunch of 'C' levels are in the main branch for my first big launch demo...

Tape a few keys...

LPT: never use this in an else case.

tj-teej 12 hours ago 0 replies      
This ones a doozie

I was working on Cloud Management software for a Private Cloud at a major tech company in SV. We had software which would reserve Prod IP space for hypervisors, e.g. this hardware SKU can support up to 5 VMs, therefore it needs to reserve 5 IP addresses in the corresponding subnet.

Turned out the API call to reserve the IP space from the IP Manager wasn't asynchronous and because the manager tried to get consecutive space, the runtime increased exponentially with the requested # of IP addresses.

In preparation for Holiday traffic, we were onboarding a new SKU of Hardware. This hardware supported more tenants and so instead of requesting 7 IP addresses per HV, now we're asking for 15. This took the latency of a call to the IP Manager from 3-5 seconds to 5-10 minutes. To round off the perfect storm, the code was retrying requests which failed, without propagating the failure to the Cloud Admins using the software.

One day in October, I received a panicky call from our Capacity manager, customers are trying to spin-up VMs but are being told there's no IP space left. He knows we've onboarded all the racks, and he's done the math on the subnets (which are showing as fully reserved), and there still isn't IP space...WTF!!

Turned out the IP manager's VIP was cutting off requests after a few minutes, (never a possibility when reserving only 7 spaces) but the reservation process wasn't stopping, the IP was being reserved, marked as in-use, but never actually making it to the networking service to be used by VMs.

Solution: At 2am on a Friday night I ran a script to manually mark tens of thousands of production IP records as not-in-use in the IP manager, purely based on grepping through logs from my service, and nslookups. But don't worry, we pinged each IP just to be safe :)

throwawaysntc 1 day ago 0 replies      
My code probably contributed to the financial crash of 2007/8.

Unfortunately, I cannot share much details except that I wrote code that was meant to manage the amount of risk that a certain really big financial institution was supposed to take. My code may or may not have shipped after I left that institution. If it did ship, maybe it did not do what it was supposed to do. If it did not ship, maybe it failed to replace the broken system that it was supposed to replace. Either way, months after I left, the head of the institution acknowledged on TV that they were taking on more risk that they intended to.

tejtm 1 day ago 0 replies      
Exactly what I told it to do. Which seemed perfectly reasonable to me ...but had my boss running down the hall muttering something about damage control, seems not all biologists liked receiving letters introducing them to other biologists who's results on some marker or another differed in some not trivial way.
kazinator 15 hours ago 0 replies      
I ran a BBS on an 8-bit microcomputer in the 1980's. I wrote everything myself, including low-level modem drivers in assembly code.

I had some code which handled a temporary loss of carrier. It would poll for the carrier to come back for a few moments, otherwise indicate to layers higher up that carrier is lost, so the user can be logged out.

Problem is, in that piece of code, I forgot to pop something off the stack that I pushed onto the stack. I had a user who was a bit of a cracker. I got a note from the guy, "I got into your operating system by dialing touch tones while connected".

Dialing a touch tone interrupted the carrier sense in the modem, triggering that code with the bad stack handling that would crash the BBS program, leaving the I/O hooks still connected to the modem driver, giving the caller full access to the system.

This didn't reproduce during the usual case when the carrier was lost permanently, only when it recovered.

donatj 1 day ago 0 replies      
I wrote code for a domain squatter ad control system as my very first task at my very first job out of college. I am not proud and honestly didn't realize what it was until I got pretty far into it.
ams6110 1 day ago 2 replies      
Not my code, but I was involved in cleaning up the aftermath. Financial company, a programmer had made a one line change to clean up some working directory at the end of a program. Something like

 "rm -rf /var/scratchdir /"
Yeah the space was a typo. Wasn't running as root but was able to make a pretty big mess regardless.

kafkaesq 1 day ago 0 replies      
Made people rich, who definitely didn't deserve it.
aivarsk 1 day ago 1 reply      
I developed and maintained CI scripts for large modular C++ application 10+ years ago. Someone added `rm -rf $(SOME_TEMP_DIR)/` to global Makefile that was run before building anything. My CI scripts did not set SOME_TEMP_DIR...

Came to work the next day, nightly build still had not finished on slave servers, had errors about non-existent home folder when tried to log in.

What made it worst was that every server mounted a NFS share that contained fingerprints and binaries of different versions of software modules built on different platforms.

Killed all slaves, restored the NFS share from week old backups on tapes, tens of developers could not create new versions of software and send previous versions/patches to customers for a while.

khedoros1 14 hours ago 0 replies      
I investigated this bug: Backup system, using a tree data structure where the root was a hash describing a backup, and the leaves were variable-size chunks of data. Backing up a virtual machine, it would process only the changed areas, and re-build that section of tree. Roughly 1 in a few million backups silently lopped off a branch of the tree, a couple levels up. Customers have thousands of VMs, we have thousands of customers. Silent data corruption, somewhere, every day. Rarely-triggered off-by-one errors in un-reproducable data suck.
flukus 1 day ago 2 replies      
Working on school software I forgot to add "and IsDeceased = 0" to a query. Turns out parents don't like getting notifications about their dead childs truancy.
allenrb 1 day ago 0 replies      
Really hoping there's at least one Ariane 5 avionics engineer who reads HN...
AnimalMuppet 1 day ago 4 replies      
We had a microwave generator that was used to cook cancers in living patients. We'd ask for a given power, and we had the ability to read back how much power we actually got. But we didn't check that the power we read back was something reasonable. When an op amp failed, the generator produced full power whenever we asked for any power at all. The patient literally got hot enough to emit smoke.

Thank God, the patient was a pig. We hadn't made it into clinical use yet.

seanwilson 1 day ago 1 reply      
Not mine but I've seen someone do the classic of having a Bash script with something like "rm -rf $PATH/" where if you run the script without $PATH set it'll wipe out the whole drive if it has permissions. Took out a CI server but luckily we had backups.

Edit: OK, this seems like a very common issue!

juli1pb 1 day ago 0 replies      
system("rm -rf $dir/")

I forgot to check my inputs. Ran in production for a backup system.

andrewstuart 1 day ago 0 replies      
Been unused and irrelevant.
imaginenore 1 day ago 0 replies      
Accidentally removed our corporate ID from the ad code, very high traffic website. So the ads displayed, but we were not getting paid for the clicks. $140K lost in a few hours. At the time that was almost double my yearly salary.

Nobody got fired, because we had a QA team, and their testing procedure didn't test for something like that.

SirLJ 12 hours ago 0 replies      
Had a bug in my stock market scan and missed a trade that would have netted me 20% - easy the biggest trade of the year...
twovi 1 day ago 0 replies      
rsync -avz project_files/ root@

Essentially production was not acceptable for a little bit....

Ask HN: What is the most useful HN thread you have saved?
15 points by Kevin_S  17 hours ago   6 comments top 4
evex 7 hours ago 1 reply      
How does one overcome the need for instant gratification?[0]

What's your process for learning?[1]

How do I fix my posture after years at the computer?[2]

[0]: https://news.ycombinator.com/item?id=14751439

[1]: https://news.ycombinator.com/item?id=14637859

[2]: http://news.ycombinator.org/item?id=14773820

mabynogy 8 hours ago 0 replies      

About an old programming language I'm interested in mostly because of its builtin database.

j_s 14 hours ago 0 replies      
Does anyone take the time to review other users' public favorites?

There are "best of HN" threads to search for.

SirLJ 11 hours ago 0 replies      
I like threads about books and the stock market, but yet to save one...
Ask HN: How is HTML client-side testing done by big companies such as Google?
5 points by electrotype  10 hours ago   2 comments top
mtmail 10 hours ago 1 reply      
This review https://www.amazon.com/gp/customer-reviews/RGB0DI8V7KLN1/?AS... of the book "How Google Tests Software" (https://www.amazon.com/Google-Tests-Software-James-Whittaker...) gives a couple of hints. I don't own the book myself, I saw it on the desk of a QA engineer a while back.
Advice wanted Stumbled across active phishing scam
5 points by zefman  17 hours ago   8 comments top 3
tdeck 10 hours ago 1 reply      
Much of this sounds like a standard phish kit. Unfortunately I don't think the police can do much. Often you can actually find the perpetrator's info, but they're in Nigeria where nobody cares.

First of all, I'd report the site to Google Safe Browsing and to PhishTank:https://safebrowsing.google.com/safebrowsing/report_phish/?h...https://www.phishtank.com/

Once Chrome starts blocking the site, that will stop the bleeding. The contact the host and domain registrar, if possible. If the phish kit is piggybacking on a WordPress site (very common), find the person who owns that site and message them if you can.

detaro 17 hours ago 1 reply      
You could try contact their hosting provider? (assuming it is a somewhat legitimate one)
wazanator 15 hours ago 1 reply      
Is there a way you can anonymously alert people who have been scammed?
Ask HN: What tasks do you automate?
379 points by flaque  2 days ago   323 comments top 94
naturalgradient 2 days ago 6 replies      
I take enormous pleasure in automating every part of my research pipelines (comp sci).

As in, I like to get my experiment setup (usually distributed and many different components interacting with each other) to a point where one command resets all components, starts them in screen processes on all of the machines with the appropriate timing and setup commands, runs the experiment(s), moves the results between machines, generates intermediate results and exports publication ready plots to the right folder.

Upside: once it's ready, iterating on the research part of the experiment is great. No need to focus on anything else any more, just the actual research problem, not a single unnecessary click to start something (even 2 clicks become irritating when you do them hundreds of times).Need another ablation study/explore another parameter/idea? Just change a flag/line/function, kick off once, and have the plots the next day. No fiddling around.

Downside: full orchestration takes very long initially, but a bit into my research career I now have tons of utilities for all of this. It also has made me much better at command line and general setup nonsense.

EnderMB 2 days ago 1 reply      
My most proud "automation" was writing a bot that would play Farmville for me.

I was at university, and Farmville was all the rage on Facebook. My girlfriend wanted me to play because it'd mean she'd be able to trade stuff with me or something (I forget why exactly), and I eventually caved in.

After ten minutes of playing it, I was bored. I couldn't really judge people that would click plants hundreds of times, several times a day, though, because I played World of Warcraft. It was just a more interesting type of grinding...

I figured out that in order to grind through the game most efficiently, I'd need to plant Tomatoes every two hours, so I wrote a bot that would:

1. Spin up a VM.

2. Open the browser to Farmville.

3. Open up an automated clicking application I had written that worked on Flash.

4. Find the outermost vegetable patch.

5. Click in a 20x20 grid (or however big the whole area was).

6. Replant, and close.

I didn't tell my girlfriend about the bot, and I'd turn it off when I went to visit her, so she was shocked when she went on my farm to see that I was a higher level than her. I'd jokingly feign ignorance, saying that I was just playing it like her, until one day when I had left the script running and she saw my farm picking itself while I was studying.

zbjornson 2 days ago 2 replies      
All of my thesis project in immunology was automated, which involved several hours of blood processing repeated several thousand times (with some parallelization) by a team of a dozen robots. There are pics, schematics and vids here: http://www.zachbjornson.com/projects/robotics/.

I also like to say that the final analysis was automated. It was done entirely in Mathemtica notebooks that talk to a data-processing API, and can be re-ran whenever. The notebooks are getting released along with the journal article for the sake of transparency and reprodibility.

(Also, I automated my SSL cert renewal ;))

ajarmst 2 days ago 8 replies      
I'm the kind of nerd who greatly prefers writing automation code to doing anything remotely repetitive. (I'm afraid to work out the actual timings because I'm pretty sure that I often spend more time coming up with the automation than just doing the task would take).

I've got a script that automatically rips, converts and stitches together audiobooks from the library so that I can play them on my phone. It just beeps periodically to tell me to put the next CD in.

I also had a batch job that downloaded Doonesbury cartoons (including some delay logic so I wasn't hammering the server) and built a linked series of html pages by year and month. I've ported it to a couple of other webcomics so that I can binge read.

I also write a lot of LaTeX macros, doing things like automatically import and format code from a github gist into lecture notes (something like \includegist{C,<path/to/gist>), or autogenerate pretty PDF'd marks summaries for students from my home-rolled marks. database.

Another thing I like is building little toys to demonstrate things for students, like a Mathematica page that calculated the convergence rate and error for the trapezoidal rule (numerical integration) with some pretty diagrams.

I once wrote a bunch of lisp code to help with crypto puzzles (the ones that use a substitution code, and you try to figure out the original text). The code did things like identifying letter, digraph and trigraph frequencies, allowed you to test substitutions, etc.

As developers, we tend to focus on these big integrated projects. But one of the biggest advantages that people who can code have is the ability to quickly get a general purpose computer to assist with individual tasks. I write an awful lot of code that only gets run a handful of times, yet some of those projects were the most pleasure I've ever had writing code.

kvz 2 days ago 5 replies      
Since I have a toddler in longing for a house with a garden which starts ar 800k EUR in pleasant neighborhoods in Amsterdam now, which is above my paygrade. So i wrote a script that compares surrounding towns on a number of metrics (4+ rated restaurants per citizen for instance) and let's me know when there are houses for sale with a garden facing south (or north but only if it's sufficently long that we are likely to enjoy some sun (10m+), etc.

So far this has not resulted in us buying a house and the hours that went into the project would have probably long paid for a good real estate agent :)

shade23 2 days ago 5 replies      
- Downloading a song of youtube, adding meta data via beets and moving to my music lib

- Adding tasks to my todolist client from every app I use(including my bookmarking service when I bookmark with specific tags)

- Changing terminal colours based on time of the day(lower brightness in the evenings and hence dark colours, too much sunlight in the mornings and hence solarized themes)

- Automatically message people who message me based on priority(parents immediately/girlfriend a longer buffer).

- Filters on said messages incase a few require my intervention

- Phone alerts on specific emails

- Waiting for a server which you were working with to recover from a 503(happens often in dev environments) and you are tired of checking every 5 seconds: Ping scripts which message my phone while I go play in the rec area.

- Disable my phone charging when it nears 95% (I'm an android dev and hate that my phone is always charging)

- Scraping websites for specific information and making my laptop ping when the scenario succeeds(I dont like continuously refreshing a page)

I dont think several of these count as automation as opposed to just some script work. But I prefer reducing keystrokes as much as possible for things which are fixed.

Relevant to this discussion:Excerpt from the github page

>OK, so, our build engineer has left for another company. The dude was literally living inside the terminal. You know, that type of a guy who loves Vim, creates diagrams in Dot and writes wiki-posts in Markdown... If something - anything - requires more than 90 seconds of his time, he writes a script to automate that.


saimiam 2 days ago 8 replies      
My day to day decisions are mostly automated - what to eat for breakfast? what clothes to wear any given day of the week? when to walk my dog and for how long? When to leave work and which back roads route to take to get back home? Lunch options? When to call the folks? Exercise schedule? All automated.

It gets a little repetitive and boring at times but I'm able to save so much time and energy this way to focus on what's important to me.

egypturnash 2 days ago 1 reply      
I am not a programmer, but I've automated a few things in my life.

I self publish graphic novels. I have a script that runs on a directory full of page files and outputs a CSV in the format InDesign expects. I wrote it after manually editing a CSV and leaving a page out, and not noticing that until I had an advance copy in my hands and 400 more waiting to be shipped from the printer. That was an expensive learning experience.

I like to rotate my monitor portrait mode sometimes, but hate trying to rotate the Wacom tablet's settings as well. So I have a script that does this all in one go. It used to try to keep track of separate desktop backgrounds for landscape and portrait mode, but this stopped working right, so I took that part out.

I have a bunch of LIFX bulbs in my apartment. The one near the foyer changes color based on the rain forecast and the current temperature, to give me an idea of how to dress when going out, thanks to a little Python script I keep running on my computer. Someday I'll move it to the Raspberry Pi sitting in a drawer.

I recently built a Twitter bot that tweets a random card from the Tarot deck I drew. I've been trying to extend it to talk to Mastodon as well but have been getting "request too large" errors from the API when trying to send the images. Someday I'll spin up a private Mastodon instance and figure out what's going on. Maybe. Until then it sits on a free Heroku account, tweeting a card and an image of its text about once a day.

And does building a custom Wordpress theme that lets me post individual pages of my comics, and show them a whole chapter at a time, count as "automation"? It sure has saved me a lot of hassle.

MichaelMoser123 2 days ago 3 replies      
In 2003 I had a perl script to query the job boards for keywords , scrap the result and send out an application email with CV attached to it (I took care to send one application to a single email). I think this was a legitimate form of spamming - at that moment the local job market was very bad.
Toast_ 2 days ago 1 reply      
I'm aggregating flash sales and sending post requests to azure ml using huginn. It's a work in progress, but huginn seems to be working well. Also considering giving nifi a go, but the setup seems a bit over my head.



rcarmo 2 days ago 3 replies      
- Data pipelines (as seen elsewhere here)

- Anything related to infra (I do Azure, so I write Azure templates to deploy everything, even PaaS/FaaS stuff)

- Linux provisioning (cloud-init, Ansible, and a Makefile to tailor/deploy my dotfiles on new systems)

- Mail filing (I have the usual sets of rules, plus a few extra to bundle together related e-mails on a topic and re-file as needed)

- Posting links to my blog (with screenshots) using Workflow on iOS

- Sending SMS from my Watch to the local public transport info number to get up-to-the minute bus schedules for some pre-defined locations (also using Workflow)

- Deploying my apps on Linux (I wrote a mini Heroku-like PaaS for that - https://github.com/rcarmo/piku)

- Searching for papers/PDFs on specific topics (built a Python wrapper for arxiv/Google/others that goes and fetches the top 5 matches across them and files them on Dropbox)

- Converting conference videos to podcasts (typically youtube-dl and a Python loop with ffmpeg, plus a private RSS feed for Overcast)

Every day/week I add something new.

(edit: line breaks)

dhpe 2 days ago 1 reply      
I need to upload invoices every month from all ~20 SaaS products I subscribe to an accounting software. Most of the invoices can be just redirected from email to another SaaS that will let me download a zip file containing all invoices from a date range. Other software requires me to login to the product, navigate to a page and download a PDF or print an HTML page. I have browser-automated all of these laborious ones as well so everything will be in that zip file. Saves me 30 min monthly and especially saves me from the boring work.
dannysu 2 days ago 5 replies      
A bot for reserving hotel rooms.

I wrote a bot to reserve hotel rooms a year in advance for a national park in the US.

It was so difficult to book. After couple days of failed attempts to reserve my desired dates, and after staying up late into the night one day, I went ahead and wrote a bot to automate the task of checking for availability and then completing the checkout process once available.

And... it worked.

jf___ 2 days ago 4 replies      
carving up marble with industrial robots


Cad -> robot code compiler is built on top of pythonocc

xcubic 2 days ago 1 reply      
In Lausanne, Switzerland, it's very difficult to find an appartement because there are too few appartements for too many people and it mostly follows "First-come, first-served".

So I created scrappers for 3 websites + 1 facebook group. It simply looks for apartments with my specifications and notify me when a new one comes up.

I can say, I successfully found an apartment. The whole process usually takes at least 3 months, I did it in 1.

nfriedly 2 days ago 2 replies      
Paying all of my bills. All of them. My bank (Fidelity) can connect to most bigger companies to have the bills automatically sent to them and then they automatically pay it (with an optional upper limit on each biller).

For other bills, I got all but one to put me on "budget billing" (same amount each month, so Fidelity just sends them a check for that amount without seeing the bill). For Windstream, which varies by a dollar or two each month, I just send them an amount on the upper end and then let a credit accrue. Both of these require an update maybe once a year or so.

Windstream is a bit funny - I don't know why they can't pick a number and stick to it. Also, they apparently raised my "guaranteed price for life" a couple of times and didn't notify me until ~8 months later when they were threatening to disconnect my service for being more than a month behind. (They had turned off paper billing on my account but didn't actually enable e-billing - service still worked so I didn't even think about it. We eventually got it straightened out, but Windstream is ... special.)

Beyond that, I made a bot that automatically withdrew Elance earnings to my bank account (that got me banned for a week or so when I posted it to their forum).

I made another bot that bought and sold bitcoins and litecoins and such. It was moderately profitable until my exchange (criptsy) got hacked and lost all of my float (worth ~$60 USD at the time.)

I connected an Arduino IR blaster to my TV to make it automatically turn on my sound bar (the TV would turn it off, but not on?!) - http://www.nfriedly.com/techblog/2015/01/samsung-tv-turn-on-...

Oh, and of course, code tests and deployment. Nearly every git commit I make gets a ton of tests, and for most projects, each tag gets an automated deployment to to npm or bluemix or wherever.

nurettin 2 days ago 2 replies      
In my city, there are many stadiums which cause traffic congestion during rush hours. I made a scraping bot which tells me if there's going to be traffic on my designated routes the next day. Going to try making it an app and see if it's any useful to others.
The_Notorious 2 days ago 1 reply      
Find yourself a configuration management server such as Puppet, Chef, CFEngine etc, and learn to automate system deployment and management with it. I use Puppet CE as my main automation tool.

Use Python/Shell for tasks that are not well suited for a configuration management server. Usually, this is when procedural code makes more sense than the declarative style of Puppet manifests. Interactive "wizards" (i.e. add domain users accounts to a samba server, and create home directories for them) and database/file backups are my usual uses for these types of scripts.

Fabric is a useful tool to use with python. It allows you to send SSH commands that you put into functions to groups of servers in bulk.

I also use python for troubleshooting network issues. It has libraries to interact with all manner of network services/protocols, as well as crafting packets and creating raw sockets.

Look into PowerShell if you work in a Windows environment. Everything from Microsoft is hooked into PowerShell in their newer versions.

abatilo 2 days ago 0 replies      
A little different than what other people are doing, but I have tried to automate my savings. I use Mint to figure out what my budgets for things should be, then I use Qapital to automatically save the money I didn't spend but was budgeted.
profpandit 2 days ago 1 reply      
This is a great question. The PC has been around for a long time now. For the most part, users/developers have been sitting around, twiddling their thumbs and waiting for the tool and app gods to rain their blessings. This question begs the need to be proactively involved in the process of designing how you use your PC
fenesiistvan 2 days ago 0 replies      
Support tickets integrated with service monitoring.

Around 3 years ago, we started to get a lot of customers for our VoIP tunneling solution, mostly from UAE. Most of these were unfriendly customers abusing our support, so I started to implement a CRM to track "support points". I spend a half year to develop this solution (with lots of other functionality such as service monitoring) and when I finished, there was no any demand for the VoIP tunneling solution anymore :)

This is how I wasted half year instead to focus to solutions relevant for our business.

Thanks good, we started to have new customers again since last year and actually my CRM/support point tracking software is very useful now, but I still don't think that it worths 6 months time investment.

Conclusion: focus on your main business and dont spend too much time with automation and other helper software (or hire somebody to do it if your business is big enough)

dqv 2 days ago 0 replies      
A PBX that only let's you record voicemail greeting by dialing in and listening to the whole greeting before it can be saved. So... recording their greeting would take a good 15 minutes if they mess up and have to start over.

I wrote a simple lua script for freeswitch that dials the line, follows the prompts, and plays the person's greeting to the PBX. Of course, one day, the damn PBX will be replaced by freeswitch.

ekzy 21 hours ago 0 replies      
Last year I automated a bit of my dating by sending Tinder messages via their API. It worked, and this is how I met the woman I now live with :D http://jazzytomato.com/hacking-tinder/
ecesena 2 days ago 0 replies      
Tweeting. I suck at it. I started with a txt, which became a spreadsheet, which is becoming distrosheet.com.

Sooo slooowly that the homepage still has stock cats&dogs images. The most upsetting thing is that I've got more than one person telling me "I like the homepage". My mental reaction was "wtf!?". </rant>

Anyway, I still don't tweet much, but I'm getting there.

ASipos 2 days ago 0 replies      
Downloading fan fiction from fanfiction.net

I have written a Python script that builds a HTML out of all chapters of a given fan fiction and then calls Calibre to convert it to MOBI for my Kindle.

Unfortunately, my life doesn't have too many automatable aspects... (I am a math researcher.)

patd 2 days ago 2 replies      
Most of my side projects have been about automating the little things that end up taking me a lot of time.

At my first job, part of my work (next to junior dev) was to deploy EARs on Websphere. I automated it so that people just had to drop it on a shared folder and I'd just take a look if it failed to install automatically.

I wrote a command-line tool to search and download subtitles https://github.com/patrickdessalle/periscope

I made a browser plugin to compare the price of the European Amazon and a few other websites (it grew to more countries and websites) http://www.shoptimate.com

And now I'm working on a tool that regularly checks if some of my content is getting adblocked because it's something I periodically do by hand http://www.blockedby.com

In the end, automating things can take more time than actually doing it. But if it's used by others and saves them time as well, it's gratifying.

leipert 2 days ago 1 reply      
Sorting my mails with imapfilter. I have a yaml file where I write down which mails go into which folder depending on sender or recipient or another header field. Runs on a raspberry pi every ten minutes between 8 and 8.
wslh 2 days ago 1 reply      
Designing and developing UIs. I want to develop web UIs like you develop UIs with Visual Studio or Xcode. I cannot believe how much efforts we need to build and modify web experiences.
imroot 2 days ago 1 reply      
My expense reports and timesheets.

The three shittiest parts of my job every week are:

- Approving timesheets

- Entering in my timesheets

- Entering in my expense reports

I've written a script that goes in using a phantom.js script, and automates the submission of my timesheet on Friday afternoon at 3:00 +/- 15minutes. It now takes into account travel time, Holidays, and approving time if I have time approvals due.

Same holds true for submitting expense reports in Oracle. I upload the receipt to Expensify, and as long as it's tagged properly in Expensify, it'll automatically generate the correct expense report in Oracle for the proper project based on the receipts in Expensify. This saves me, on average, about 6 hours a month.

prawns 2 days ago 0 replies      
Downloading porn and culling the old stuff. Currently automated management of over 100TB and growing!
dmorin 21 hours ago 0 replies      
Sometimes I see a lengthy text article that I tell myself I'll bookmark and read later, but I know I'm never going to read it. I much prefer audiobooks and podcasts. So I automated scraping the text from the article, piping it through text-to-speech, turning it into an MP3, and moving it to my phone so it shows up in my audiobook library. Next step is to make it an RSS feed so I can treat it like a podcast.
neya 2 days ago 6 replies      
I had tons of startup ideas that I'd always wanted to give it a try. After a point, it became frustrating to test them out one by one, either by writing custom applications in Rails or use Wordpress. But, both costed me a significant amount of time.

For example, I had this idea for a travel startup for a very, very long time and I decided to build it on Wordpress. The monetization model was selling some E-Commerce items, so I naturally tried out some of the plugins and was shocked at how long it took for me to get a simple task done. I had such a terrible experience that I'd never recommend it to anyone. Wordpress by itself is fine, but when you try to extend it, you face so many hiccups.

That's when I realized there's no use blaming the tool. It's because of the differences in philosophies between me and the core Wordpress team. So, I naturally spent another 4 months writing a Rails app for this travel startup and still wasn't satisfied with my time to market. Clearly, there had to be a better, faster way?

In essence, I realized every online startup requires these components:

1. Authentication / Authorization

2. CMS - To manage content on the site, including home page, landing pages, blog, etc.

3. Analytics - To help track pageviews, campaigns, etc

4. CRM - To manage a sales pipeline and sell to customers. Also to know very well who your customers really are.

So, I went ahead and wrote this mammoth of an application in phoenix (using DDD's architectural patterns), that has all the modules above. Now, everytime I have an idea, I just login into my interface, setup the content and the theme/design and launch a campaign...bam! My idea is now live and I can test it out there on the market.

You can think of it like a complete combination of all the startups out there:

1. Mailchimp - I can send unlimited emails, track opens, analyse them. Handled by my marketing module. I can customize the emails too, of course.

2. Unbounce - I can design my own landing pages. Handled by my CMS.

3. Buffer - I can schedule shares from within my interface based on best times by engagement. Handled by my marketing module.

4. Hubspot - My system has a full, hubspot/zoho clone of CRM.

Here are some of the key highlights:

1. All my data is collected on BigQuery and I own it instead of sending to third parties.

2. There is no forced limitation on my marketing - For example, if you used mailchimp, you know you're limited to just 2000 recepients. If anything more, it quickly gets expensive. But my system is my own, no limitations whatsoever.

3. I can spend less time developing my idea and more time executing it.

4. I have my own custom business dashboard for each of my idea, that tells me how good/bad it's performing, so that I can turn it off when needed.

Probably not the kind of automation you were expecting, but yeah.

EDIT: Added more details.

SirLJ 2 days ago 2 replies      
Stock market trading systems, so I don't have to watch screens, also backups and also constantly improving monitoring for smooth operations
natch 2 days ago 0 replies      
Many things. Trivial one, recently wrote a script to electronically sign six documents from my divorce and related tax paperwork using ImageMagick. Just to avoid having to do it with Gimp or Preview or some other GUI tool, and then re-do it when there are revisions. Yes there are online tools but I'm working with people who don't use those, nor do I want to upload these documents anywhere I don't have to.

Often I'll spend as much time writing an automated solution as it would take to do the task manually, even if I'm only going to run the automated solution once. The work is way more fulfilling, and I can fix mistakes easier, and can learn and develop new techniques.

mohsinr 21 hours ago 0 replies      
I have small bash script which keeps checking for Internet, if my machine does not have live working internet, it sends a notification with alert (text + sound) "You are offline, you may read some books :)" and then it launches iBooks so I can do some reading when offline.

PS. Also when Internet is back, it alerts again so I can resume online Work if I have to.

reddavis 2 days ago 0 replies      
I automated my dehumidifier.

I wrote about it here: https://red.to/blog/2016/9/15/automatically-controlling-a-de...

and OS'd the Rails app: https://github.com/reddavis/Nest-Dehumidifier

jessedhillon 2 days ago 2 replies      
I have a script that downloads bank and credit card transaction data, then applies rules to create a journal in GNU Ledger format.
kensoh 2 days ago 0 replies      
I automate as much as possible the tasks involved in coding web automation scripts - https://github.com/tebelorg/TagUI
foxylad 2 days ago 0 replies      
Easy - anything boring. "Boring" usually means repetitive and not mentally challenging, which to my mind is exactly what computers are for.

Even if the task happens infrequently and the script takes longer than the task, automating it is worth the investment:- It prevents having to remember or re-discover how to handle the task next time.- It ensures the task is handled consistently.- It prevents potential manual errors.

For example, on the financial side, my company runs bank accounts in five countries, each with different GST/VAT taxes. Over time, I've developed scripts that grab the mid-month exchange rates that our Internal Revenue service requires to be used; crunches downloaded bank transaction data into categories (including tax inclusion or not); and exports it all into a huge Google spreadsheet. This provides global and country balance sheets and profit and loss, and when tax reporting time comes for each country, a tab on the spreadsheet provides all the figures so filling returns is a five minute process. Occasionally the scripts will flag an unrecognised transaction, and rather than manually correcting this in the spreadsheet, I'll add a rule to the script so it is recognised next time.

Cumulatively this probably took several tens of hours to code, but it means we don't need to employ an accounts clerk. It takes about fifteen minutes a month to download the bank data (manually - oh how I wish banks had APIs) and run the scripts. Our accountant loves this - the spreadsheet is shared with him, he can check our formulae or add other metrics, and he prepares our annual report an order of magnitude faster than any of his other clients.

ghaff 2 days ago 0 replies      
I wrote a little script [1] to automate a lot of the steps associated with publishing a podcast. There's still manual work but this takes care of a lot of the fiddly repetitive detail work that's both time-consuming and error-prone. Especially if I do a batch of podcasts at an event, this is a lifesaver.

[1] https://opensource.com/article/17/4/automate-podcast-publish...

raleigh_user 2 days ago 1 reply      
I automated pretty much all groceries & goods I use through a combination of Shipt and Amazon Subscribe and Save. Took a few hours one Saturday to compile list of everything I use and estimates on needing more but I genuinely enjoy not having to think about if I need toothpaste or if I have food for dinner
noahdesu 2 days ago 2 replies      
I frequently wipe and install from scratch my Linux desktop and laptops. I've been spending more time recently working on setup scripts that automate as much of this as possible. Things like installing packages, setting up firewall, checking out code projects and installing dependencies. Currently this is mostly a bash script plus my dot-files, but I'm always looking for ways to improve this process.
blockchan 2 days ago 0 replies      
Transfering lead data to Salesforce from Intercom and Slack by sending simple messages like "SQL" or "email@example.com to sf"

Receiving and sending documents to proofreading

I described them in details here: https://www.netguru.co/blog/automating-myself-out-of-the-job...

simula67 2 days ago 1 reply      
Wishing my friends Happy Birthday on Facebook, with Birthday Buddy : https://chrome.google.com/webstore/detail/birthday-buddy/cil...
l0b0 2 days ago 0 replies      
Some of my own projects that I've ended up using frequently - you can see what they do from the command structure:

 mkgithub ~/dev/new-project fgit pull -- ~/*/.git/.. ~/dev/*/.git/.. ~/dev/tilde/.screenlayout/right-tack.sh
And some less frequently used tools:

 mount-image ./*.iso vcard ~/contacts/*.vcf ~/dev/vcard/sort-lines.sh ~/dev/vcard/sorts/Gmail.re ~/contacts/*.vcf img2scad < example.png > example.scad indentect < "$(which indentect)" qr2scad < ~/dev/qr2scad/tests/example.png > example.scad schemaspy2svg ~/db
So yeah, automate all the things.

anotherevan 2 days ago 3 replies      
Wrote a program that tracks Australian movie release dates for movies I'm interested in. Sends a daily email if a release date moves, or there a new movies for me to flag my interest in.

Interfaces with themoviedb.org for plot summary, cast and crew info and such. Interfaces with Google Calendar for writing entries for each movie I'm tracking.

agopaul 2 days ago 0 replies      
I setup crawlers to make specific queries on various website. I used them in the past with:- used car dealer websites- job posting boards (found a job a few years ago with that)- craiglist-like websites- coupon websites (looking for sushi restaurant deals)- etc

Also, not sure if that counts, but I have monit+scripts monitoring backups timestamps and DB replication

ibotheperfect 2 days ago 0 replies      
I was downloading beatport song by finding them from youtube. Then I decided to automate this. I wrote a code that finds them from youtube and download automatically. Finally I decided to make it a website so that everyone can use. www.beatportube.com
anotherevan 2 days ago 0 replies      
I read a lot of articles by saving them to Pocket and reading via my ereader. I wrote a little PHP browser based application that interfaces with the Pocket and hn.algolia.com APIs that helps me to follow up on articles in related forums such as Hacker News and track my reading habits.

Naturally I called it Pocket Lint.

sprt 2 days ago 1 reply      
Buying crypto weekly using Kraken's API.
w3news 2 days ago 0 replies      
I write a browser extension so i dont have to click or type a lot on some websites.Firefox: https://addons.mozilla.org/en-US/firefox/addon/clickr/Chrome: https://chrome.google.com/webstore/detail/clickr/kbegiheknic...

Also very usefull as web developer to test some javascript on a website.

paultopia 2 days ago 0 replies      
Scraping and compilation of various annoying web content formats, with varying levels of efficacy -- e.g. https://github.com/paultopia/scrape-ebook for open source PDF chapters and https://github.com/paultopia/spideyscrape for readthedocs-esque formats.

iCloud documents edited on iOS -> versioning and shoving in a private github repo -- https://paultopia.github.io/posts-output/backup-to-git/

CV updates via template to HTML, latex, and docx

pisomojado_g 2 days ago 1 reply      
Library book renewals. I have an AWS Lambda function that runs daily, scrapes html from my public library (they have no API), and if a book is due within the next day, renews it. If I've reached max renewals, it sends me a notification.
ajarmst 2 days ago 2 replies      
I consult the relevant XKCD to decide: https://xkcd.com/1205/
vgchh 2 days ago 0 replies      
1. Code formatting

- gofmt for Go, Google Java Format for Java

2. Code Style Enforcement

- golint, govet for Go, CheckStyle with Google Style for Java

whiskers08xmt 1 day ago 0 replies      
Every robotic task tangially related to Auditing. I work with robotic task automation at one of the big 4, and it's really amazing how much trivial work that's being done by humans.
greggman 2 days ago 1 reply      
In the past I've always automated exporting from Maya, 3DSMax and Photoshop, meaning I don't require artists to export from either. The artist saves the source file in the project, tools build from that to the final format for the app/game.

The more typical workflow is that artists export .JPGs or .PNGs manually from Photoshop and somewhere else save their .PSD files. Similarly with 3SDMax or Maya they'd manually export using some plugin. That seems wasteful to me and error prone. Source files get lost. Artists have to maintain multiple versions and do the export manually which seems like a huge waste of time. So, I automate it.

fantispug 2 days ago 0 replies      
I automated my wedding seating cards and plan.

I managed invitations as a CSV (who had been invited, who responded yes and no, addresses and dietary requirements).

I designed the placecards and seating plan as SVG in inkscape with special text I used as {templating parameters}.

I could then produce all my place cards and seating plan from a simple simple script. This was handy when guests changed their RSVP a week out from the wedding when I had little free time and I could make a change instantly. (Although admittedly I spent more time getting the layout right for the seating chart than if I had done it by hand).

hellbanner 2 days ago 0 replies      
It's really simple; I automate creating builds for the game www.QuantumPilot.me

rm -rf ./QuantumPilot*rm -rf ./QuantumPilot* electron-packager ~/ele/electron-quick-start/ QuantumPilot --platform=all --icon=/Users/quantum/Desktop/QuantumPilot.icnsopen .

for some reason, OSX has trouble deleting the Linux folder the first time. I've heard Itch.io has a CLI for this but I haven't tried it yet. https://github.com/itchio/butler

ehudla 2 days ago 1 reply      
Preparing purchase form for university library and letting me know when books I order become available.


xs 2 days ago 1 reply      
I just figured out how to use ansible and python to script out changing the passwords for all the network gear in the office. It uses a random password generator api https://passwordwolf.com to fetch a new password, changes it on everything, then sends me the new passwords. I'm changing passwords monthly now but it works so well that I might set it to weekly.
sergiotapia 2 days ago 1 reply      
Download media. I have Sonarr+Radarr+Plex. I don't spend much time looking for media.

Code reviews. Using something like CodeClimate to automatically check code quality before anyone actually reads the code.

arikr 2 days ago 0 replies      
Great thread, thanks OP.
Axsuul 2 days ago 0 replies      
I automate filtering my RSS feeds, or creating a weekly digest of emails that are not priority (bank statement emails, receipts, etc), crawling certain pages that I need to monitor and creating new RSS feed items on updates, weekly digests of top Reddit posts for specific subreddits, monitoring flight deals that originate from my airport.

I find that converting a lot of unimportant emails into RSS feed items has been a huge win for me.

leoharsha2 1 day ago 0 replies      
I made a bot which tells what should I wear today depending on weather and the clothes that I have. It messages me every day at morning
kogus 2 days ago 1 reply      
I do contract work for a few clients. I always automate the boring tasks of vpn'ning, firing up remote desktop, connecting to database servers, their email system, etc.

Automating that is fiddly and tedious, but it's worth it because I can just click a button and get a menu of clients. I choose one, and in about 10 seconds my machine is ready to go on their work.

david90 2 days ago 0 replies      
I automate Stats of the products from Google Analytics using Google spreadsheet.By using appscript, I extract all key metrics such as activation rate/ retention rate from the raw data.

Then when I need to report all stats of multiple product, there is another automated script for me to aggregate them.

Saved me hours of context switching and copy and pasting.

mxxx 2 days ago 1 reply      
I get a weekly newsletter with a bunch of music recommendations in it, which I had been manually adding to a Spotify playlist.

So I recently wrote a CLI in Node that takes a URL and a CSS-style query selector (ie, '.album-title'), then scrapes the page, searches for each found instance and adds them all to a spotify playlist.


koala_man 2 days ago 3 replies      
welder 2 days ago 0 replies      
I automate my time tracking using https://wakatime.com
ldp01 2 days ago 0 replies      
Clicking! I wrote a powershell script for Windows which mimicks the autoclick functionality which Ubuntu has in it's accessibility options. I also added double/triple clicking by twitching the mouse a bit.

It takes some getting used to but I feel it helps avoid forearm soreness.

olalonde 2 days ago 0 replies      
I recently had to frequently create private git repos for job candidates (containing a coding challenge). I built a simple web app that does it all in one click (as a bonus, my non-technical co-founder can also use it). https://i.imgur.com/HhQP4lX.png
philip1209 2 days ago 0 replies      
I liked writing an internal command line utility for our Go codebase. It automates common dev commands like deployments (including installing dependencies, migrations, etc), sending test emails (eg to check formatting), and running smoke tests. Pretty minor, but it makes my life a lot easier. I plan on expanding it more for accessing prod and dev APIs.
sawmurai 2 days ago 1 reply      
Commit hook that aborts commits if the projects code style is violated by one of the changes/added files
vira28 2 days ago 0 replies      
I use slack a lot for the communication.

I have automated whenever there are significant events happen in our app, I will get notified. Its simple to implement. Configure the webhook.

Also, I did things like getting notified whenever there is a commit, pull request or push in your source control.

gottlos 2 days ago 1 reply      
Shopping list via Oscar, barcode scanner, open food facts

Aircon via temp sensors and node-samsung-airconditioner

still working on Owntracks/mqtt for useful automations on arrival home

lights plus motion sensor, lihht color by time of day (red at late night to save vision)

bakli 2 days ago 0 replies      
I've written a script which helps me copy-paste files from their folders in Material Design image library to my android project. This saves me at least 4 copy paste, and then renaming operations.
spinlock 2 days ago 0 replies      
I've automated deployment of my side project. When I merge a pr in github to master it will pull the new build and restart any process that's changed.
fest 2 days ago 1 reply      
Tracking packages so I could batch my trips to post office.

Simple web interface where I have a list of packages I've ordered with the last status update from post service web tracking for.

patrick_haply 2 days ago 1 reply      
Time logging. I use one piece of software to track my time, then fan those time logs out into the various pieces of software that need to know about them.
utanapishtim 2 days ago 0 replies      
If I have to update a file programmatically when I make certain modifications to a codebase I'll write a script that automates the update.
borntyping 2 days ago 0 replies      
Anything I have to do more than once. If I have to do it a second time, I'll probably have to do it a third..
swayvil 2 days ago 0 replies      
All conversations.

In the case of f2f (face to face) I just let my phone run me like a peripheral.

surfingdino 2 days ago 0 replies      
Saying "no" to meetings and interruptions. I have a box with a big "NO" written on top of it. Whenever someone comes by to ask me "how are you doing?" I tap the box.
based2 2 days ago 1 reply      
a collegue is doing JIRA exports to Excel / MS Project.
hacker_9 2 days ago 0 replies      
My build process.
webscalist 2 days ago 1 reply      
restart all things every night.
edwilson 2 days ago 0 replies      
i wrote little sync script to my server. it is save my mysql backups to google drive.
noiv 2 days ago 0 replies      
On the long run? All.
canadian_voter 2 days ago 0 replies      
I wrote a bot that automatically comments on HN when certain topics appear.


This post has been automatically generated and may not reflect the opinion of the poster.

probinso 2 days ago 1 reply      
I automate things that a computer can do
bearton 2 days ago 0 replies      
I automate legal documents usings Advobot (advobot.co), a messenger based chatbot that walks you through drafting legal documents. It makes drafting legal documents easy and conversational and is much faster than traditional methods. I can also use it from my phone, which makes drafting legal documents on the go much easier.


Huhty 2 days ago 0 replies      
MY team and I run a reddit/HN-like community platform called Snapzu and we automate most (90%) of our social media channels.

We have 15 main categories, each with their own Twitter, Medium, WP, Blogger, etc. Here's an example of our science Twitter account: http://twitter.com/@Snapzu_Science

amingilani 2 days ago 0 replies      
Oh boy, sigh, I wish I could share something I just automated, it's insane. Like, everyone that sees it tells me it's pure genius.

Problem is that it isn't ready to for the public. I'll do a show HN next week, but by GOD it is a brilliant piece of automation and scaling :P

Soon (this is more for me than anyone else, i'm literally bursting with pride right now)

Ask HN: What is the most useless HN thread you have saved?
7 points by amirouche  13 hours ago   3 comments top 3
mtmail 11 hours ago 0 replies      
Actually from 3 days ago https://news.ycombinator.com/item?id=14776408. It's about paying employees with crypto currency.

The one with the most controversy was "I freed an innocent man from prison. Hacker News failed him." https://news.ycombinator.com/item?id=11958567 Basically the poster previously asked the community to review legal papers (https://news.ycombinator.com/item?id=10323025) which would've required hours to get into that topic (life of that person). It had a good ending (https://news.ycombinator.com/item?id=12010760). But the thread in 11958567 was him complaining HN didn't do anything.

Stupid submission, especially ASK HN, get flagged fast. I remember a couple "what should I do this weekend?", "where can I buy a car", "what server should I get?" (without providing any other information) and similar question which are so open ended that the first question has to be to ask for more information.

barking 12 hours ago 0 replies      
This would definitely be a contender.
Ask HN: What 5 software tools do you use most for work?
25 points by cagrimmett  1 day ago   37 comments top 34
amirouche 13 hours ago 0 replies      
As developper:

1. a GNU/Linux (Ubuntu or Debian)

2. urxvt or terminology, I use always the same commnands (cd, ls, git, emacs, find, ag)

3. emacs with elpy, rainbow-delimiters and web-mode using monokai theme

4. i3 window manager

5. weechat

And I am looking for a proper email client (webmail or whatever).

richardknop 1 day ago 0 replies      
Terminal (this is a requirement if you want to do any software related job other than .NET I guess), some sort of a text editor with code code highlighting (Sublime), internet browser (reading documentation is a big part of my job), email client (reading & replying to work emails), version control (git).

Those are basics but there are additional tools which you'll probably need to use daily as well (JIRA, Slack or their equivalents, for example).

miguelrochefort 57 minutes ago 0 replies      
- Visual Studio

- Team Foundation Server

- Git

- Outlook

- Chrome

aguilarm 12 hours ago 0 replies      
Sysadmin/web developer:kubectl/docker,Terminal,Intellij/jetbrains IDEs,Unix tooling,Git
justinclift 18 hours ago 0 replies      
Doing Go web application dev:

Linux (Fedora 25 atm), as debugging in Go only works well on Linux. Would use OSX if Go debugging actually worked properly there. ;)

Gogland (JetBrains Go IDE)


pgAdmin (PostgreSQL GUI)


and various web browsers

twobyfour 1 day ago 0 replies      
Software team lead / manager. Aside from the self-evident non-role-specific stuff (browser, email, slack):

1) Jira2) [Text editor of choice]3) Mac/Unix command line4) Git5) [To-do manager of choice]

pwason 1 day ago 0 replies      
Firefox, M$ Office (:/), XenCenter, RoyalTS (all on Windows), and misc. Linuxy stuff..

I'm the IT Guy for a small non-profit research and development company in the higher education sector.

Firefox is used for Spiceworks, various web-based management consoles for our storage devices (and webmin on Linux VMs), and general web stuff. M$ Office is mostly just Outlook and Excel. XenCenter to manage our XenServer infrastructure, and RoyalTS is for RDC-ing to various servers and workstations. Most Linux admin is done via webmin, or shell.

Communitivity 1 day ago 0 replies      
Emacs, Eclipse, Lein, Maven, Node. Two additional ones are in my kit box by default, for different reasons, Java and MS Office. Java is required for Lein, Eclipse, and Maven, and occasional Java components. Node is needed for tool automation, in my case. Emacs is used for general editing needs, and Clojure coding. MS Office is needed because any delivery which does not include documentation doesn't count, and many I work with require documentation in MS Office form.
jamesjguthrie 1 day ago 1 reply      
Research engineer

Every single working day for the past 3 or 4 years vim, terminal, C++, Chrome, and just recently CUDA.

29052017 23 hours ago 0 replies      
SW Developer, Growth Hacker, Founder

Heres the list:-

1. Operating system ( mostly Linux )

2. Desktop ( mostly gnome )

3. Keyboard/mouse/LCD .... drivers .. ( can't work without them, eh! )

4. Browser ( mostly firefox )

5. Google ( its a SW tool alright! )

12s12m 1 day ago 0 replies      

 1. Gnome Terminal 2. Neovim 3. Google Chrome 4. Pymodoro (https://github.com/dattanchu/pymodoro) 5. Git

1_player 1 day ago 1 reply      
Full stack freelance engineer:

Visual Studio Code, iTerm, Trello, Google Chrome, and Skype :(

NumberCruncher 1 day ago 0 replies      
Data Scientist:

SQL Developer, SAS Enterprise Guide, SAS Enterprise Miner, Excel, Jira

We are a "SAS shop", therefore SAS is a must. Knowing other SAS products helps to recognize when a statement like "it is not possible" in reality means "I am not in the mood for working".

awhiskeyshot 22 hours ago 0 replies      

 1. Cygwin (Babun) 2. Sublime Text 3. Slack 4. Chrome 5. Mercurial

qmarchi 1 day ago 0 replies      
Hourly Programmer:* VS Code* TypeScript* _technically_ open source orchestration platform* Vivaldi* Sketch.app
redpandaattac 1 day ago 0 replies      
Game producer:

Unity, Sourcetree, Trello, Sketch.app, Apple Notes

eswat 23 hours ago 0 replies      
Product Designer/Developer

Sketch, Visual Studio Code, iTerm, Chrome Dev Tools, InVision

robpethick 1 day ago 0 replies      
C# Software Developer: Visual Studio, VS Code, SQL Server, web browser, slack
akg_67 1 day ago 0 replies      
Freelance Data Analyst/Data Engineering/Data Science...

R, Python, Jupyter, Tableau, MySQL Workbench

mijndert 1 day ago 0 replies      
Infrastructure engineer: iTerm, Sublime Text, 1Password, Slack, Google Chrome.
kc10 1 day ago 0 replies      
Fullstack engineer

IntelliJ at home(Eclipse at work), Sublime, Office Suite, Sequel Pro, Chrome Dev Tools

RUG3Y 20 hours ago 0 replies      
- GNOME Terminal

- Sublime Text 3

- Chrome / dev tools

- Virtualenvs / Virtualenvwrapper

jakebellacera 1 day ago 0 replies      
Marketing web developer. Do web applications count?

Atom, git, PHP, Databricks, Google Docs

tumdum_ 17 hours ago 0 replies      
ssh, zsh, tmux, xterm, vim. In no particular order! I work in telco as sw dev.
fuzzygroup 1 day ago 0 replies      
Software Engineer: iTerm, TextMate, Enpass, Ruby, Git
superasn 1 day ago 0 replies      
[1] PhpStorm [2] adminer [3] Gdocs [4] Putty [5] Dropbox
itsuzan 20 hours ago 0 replies      
Notepad++, Oracle SQL Developer, Google Chrome, Skype for Business
lambdafan 22 hours ago 0 replies      
Linux Haskell (stack)

emacs (magit, intero)

cm2012 1 day ago 0 replies      
Marketing consultant:

Facebook ads

Google ads

Microsoft excel

Google analytics/analytics of choice

Mailchimp/Email automation of choice


wry_discontent 1 day ago 0 replies      
Emacs, Chrome, Pry, Heroku, Git
drakonka 19 hours ago 0 replies      
* Visual Studio

* Notepad++

* Search Everything

* Terminal

* Google Chrome

spcelzrd 20 hours ago 0 replies      
- Xcode

- iOS Simulator

- git

- vim

- bash (to automate things)

tmaly 1 day ago 0 replies      
vim, tmux, bash, perl, make
AnimalMuppet 1 day ago 0 replies      
Emacs, gcc, Android Studio, Putty, and, um, Outlook.
Ask HN: What framework/platform do you use for app development?
8 points by Narutu  16 hours ago   13 comments top 10
burntrelish1273 7 hours ago 0 replies      

ionic, electron hybrid native/web apps start. Eventually native when unified-platform dev technical debt exceeds benefit.

Web preferred:

FE: Vue, TypeScript, Ava, jsverify, brunch

Surprisingly, brunch scales really well despite being less popular.

BE: Phoenix (Elixir/Erlang), Postgres, Redis, CouchBase, Neo4j, ElasticSearch, excheck

DevOps/SRE: C, Go and Ruby

Really interested in flexible constraint-oriented FE like Layx which allows for specifying layout as a system of equations. It's closer to many desktop auto-layout UI constraints, but programmic instead of pointy-clicky property editors.


amirouche 13 hours ago 0 replies      
I have two prefered stacks:

1) python with aiohttp framework with asyncpg for the backend serving REST and WebSockets, with a posgresql database, memo (a pure python clone of redis), celery (but I might switch to something lighter) and sentry. On the frontend I use, reactjs (but I might move to preactjs because of the license) with a custom redux-like framework built on CRA with async/await support and optional ImmutableJS dependency. I call it the 'django2' stack.

2) GNU Guile Scheme with fibers (which brings asyncio, but still lakes websocket support) for the backend. Database is built on top of wiredtiger glued with Guile again using EAV pattern that I call the feature space (it's somewhat similar to MUMPS and datomic, some call it RDF store). On the frontend, I use a simiar framework but written in Scheme powered by BiwaScheme (I plan to move to RacketScript). That stack is missing a lot of features (queues for background job scheduling, proper pooling of database connections, websockets). I call it the 'mono' stack, because everything lives in a single processus. NO GIL FTW!

None of them support true isomorphic (or universal) web app. Even mono stack which only rely on scheme doesn't support it. That said I can render backend side the same thing that frontend renders and achieve the same goal without the elegance.

alistproducer2 15 hours ago 2 replies      
I usually start with WordPress because of the mature plugin ecosystem. Most really difficult-to-implement features are available as free or cheap (<$100) plugins. Couple that with the fact that most plugins are designed with extensibility in mind via WP's hooks and actions (callback system) and there's not much I haven't been able to get done in a fraction of the time compared to starting on a different platform.
borge 15 hours ago 1 reply      
For SPAs, I mostly use ClojureScript with reagent and re-frame nowadays.

Reagent is a ClojureScript wrapper for react, and re-frame is a library for state management, where you dispatch events kind of like in redux.

It's most productive and intuitive environment I've come across. Very little boilerplate. I haven't tried serverside rendering with it though.

There's also re-natal if you want to use react-native, but I haven't tried this either, so I can't vouch for it.

eranation 16 hours ago 0 replies      
YMMV as they say, but in case you want anecdotal subjective recent experience... I had fun (most of the time) working with Angular 2 (now 4 to be accurate) in the frontend and fully serverless on the backend. (I can't compare to working with React and its ecosystem, but I plan to try it soon...)

For more classic apps, and this is just because of my past experience with it, I use Spring Boot with Thymeleaf. Once you get used to the idea of 100% serverside rendering (even for "ajax" stuff) it is one of the more productive frameworks I worked with. Much have changed, more convention over configuration, no need for XML config files. And I can use Scala / Kotlin and I assume also Groovy with it (although Java 8 is working for me most of the time)

For simple UIs, the 2nd option was way faster, surprisingly I didn't see any significant performance differences between the two approaches. The Spring way for me was much more straight forward, but again, I worked with Spring for ages...

iamjk 15 hours ago 0 replies      
@Narutu it is unclear from the question whether you mean mobile app development or web app development.
miguelrochefort 1 hour ago 0 replies      
randomerr 16 hours ago 0 replies      
Here's the general answer you get: The best tool for the job.

My personal answer is that I like populating a template with server-side JSON (Newton JSON library and MVC on .NET or NODE.JS on other platforms) For the front end I usually use HandlebarsJS or a custom script using jQuery.

flukus 7 hours ago 0 replies      
For my personal stuff lately I've been using GTK and ncurses, re familiarizing myself with c after 10 years in higher level languages. The simplicity of c and ncurses is simply amazing, this is how programming should be taught to beginners.

At work, mostly WinForms (c#) and some MVC with the godforsaken devexpress framework.

smt88 15 hours ago 0 replies      
This question has been broadly answered in an annual survey called State of JS: http://stateofjs.com/
Ask HN: How do you version control your neural nets?
41 points by mlejva  2 days ago   13 comments top 10
dwhitena 16 hours ago 0 replies      
Great questions and discussions. I'm definitely passionate about versioning in the context of models and data science for both data and code. I work full time on the open source Pachyderm project (pachyderm.io), and we have users versioning their data and models in our system. Basically, you can output checkpoints, weights, etc. from your modeling and have that data versioned automatically in Pachyderm. Then if you utilize that persisted model in a data pipeline for inference, you can have total provenance over which versions of which models created which results (and which training data was used to create that version of the model, etc.).
btown 2 days ago 0 replies      
If your neural net config is in a relatively standalone file, or you can mark it with a special comment block, you could have your test runner actually read the source file, regex it out, and concat the source block, date, current git SHA, and performance metrics into a "neural_runs.txt" file. If something else about your data pipeline is changing as well, e.g. filter settings on your image preprocessing, you can throw that in there too.

If you check this in, then every commit will include the diff of everything you tried to get there alongside the final source file, and additionally that file will serve as a single historical record for everything you tried for all time. Asking yourself a month later "did I ever try cross entropy" is as easy as grepping the file.

Heck, you could insert into a database as well if you really wanted to, and visualize your performance changes over time a la http://isfiberreadyyet.com/ . Sky's the limit.

kixiQu 2 days ago 0 replies      
I am very interested to see what people's answers are for this, because I pine for a version control system designed for the twists and turns of experimental investigation rather than the needs of engineering implementation. I very much suspect that some sort of structured approach to one's commit messages might be key, and a careful mapping of DAG concepts to experimental ones--branching as the modification of an independent variable, with a base commit selected as the control point of comparison? Would one want to be able to rebase in order to compare against a different point? What would the semantics of merges represent?
taroth 1 day ago 0 replies      
Shameless plug: https://hyperdash.io

I got tired of maintaining one-off scripts to do recording, so I started working with friends on a dedicated solution. Today it lets you stream logs via a small Python library, then view individual training runs on an iOS/Android app. Takes less than a minute to get setup.

We're planning on expanding to model versioning in the next few weeks. Interesting to see how others are thinking about it. If you have model versioning thoughts you dont feel like posting here, drop me a note at andrew@hyperdash.io

cityhall 2 days ago 0 replies      
I've been trying to do this better recently after having some non-reproducible results. I've settled on taking all hyperparameters (including booleans like whether to use batch norm) from a global dict. Instead of commenting and uncommenting lines, I look up a key with a default value, adding the default to the dict if it wasn't there. Then I print and log the dict with the results.

I end up with a bunch of code like:

 if get_param('use_convnet_for_thing1', True): convnet1_params = get_param('convnet1_params', None) thing1 = build_convnet(thing1_input, convnet1_params) elif ...
By logging the hyperparameter dict, source checkpoint, and rand seed, results should be reproducible.

This works well for rapid iteration like in jupyter notebooks. For models that take days to train, you might as well use source control for your scripts.

agitator 2 days ago 0 replies      
Maybe write a shell macro to pull accuracy and error into the commit message along with your comment on the changes. You could also add some automation to automatically branch if your test results are worse than before, so if you hit a dead end on that branch and realize the experiment didn't go well down the line, you can head back to where you branched, or if the end result works, you can merge back into your starting branch.
rpedela 2 days ago 0 replies      
Is there any value to the code in failed attempts or do you just want a log of things you have tried?

If the former, you could try a single experiment branch and use tags to denote different experiments. Add a tag when you finish an experiment then overwrite with your changes for next experiment and repeat. This would keep all the changes while not have having a huge number of dead branches and the branch could be merged when necessary.

If the latter, why not an experiment log that is checked in which has a similar form to a change log? Or maybe create an issue and branch for each experiment then update the issue with results and delete the branch?

p1esk 2 days ago 0 replies      
Why would you manually log your models? In my NN experiments, I automatically write the list of all hyperparameter values and the corresponding performance to a file. In addition, I automatically generate and save graphs showing the results, typically one graph per a nested 'for' loop.
kungito 2 days ago 1 reply      
Why is it so bad if you have many branches?
andbberger 1 day ago 0 replies      
Not just for neural nets - balancing experimentation against building reusable tools is probably the biggest logistical challenge in scientific programming in general.

I've converged to a workflow where I maintain a library with a main project pipeline and reusable tools for the project, and do all scripting with jupyter (all notebooks version controlled).

I've found that machine learning projects can be pretty effectively parametrized with config dicts for data, training and the model. Each type of config gets it's own pipelined method that does all of the library calls - pipeline_batch_gen, pipeline_train, pipeline_build_model.

Example of a poorly organized config from a project:

model_config = { 'optimizer': optimizer, 'clip_grad': clip_grads, 'name': model_name, 'residual': residual, 'n_conv_filters': n_conv_filters, 'n_output_hus': n_output_hus, 'activation': activation, 'batch_norm': batch_norm, 'output_bn': output_bn, 'generation': generation, 'data_spec': { 'uniform_frac': uniform_frac, 'include_augment': True, 'batch_size': batch_size, 'bulk_chunk_size' : bulk_chunk_size, 'max_bulk_chunk_size': max_bulk_chunk_size, 'loss_weighter': loss_weight }, 'train_spec': { 'early_stopping_patience': early_stopping_patience, 'lr_plateau_patience': lr_plateau_patience, 'learning_rate': init_lr, 'clip_grads': clip_grads, 'partial_weight': partial_weight } }

I've wanted to give Sacred a try https://github.com/IDSIA/sacred - looks promising but haven't tried yet so can't comment.

I still tend to keep track of model performance by hand though. But I have always have the notebooks I can go back to for reference. This is something sacred could help a lot with.

Another very non-trivial aspect of this kind of work is the compute/storage infrastructure you need to scale beyond a single workstation.

We have a nice system here where $HOME lives on NFS and gets mounted when you log into any machine on the network - I can hardcode paths in my code and count on every worker having the same filesystem. I can't imagine how we would do distributed jobs without NFS. That's not a very realistic solution for homegamers though - you need a very fast network and expensive commodity hardware. And sys admins.

Does anyone have a solution for that half of the problem? I've seen a number of merkle-tree based data version control solutions recently...

Ash HN: Circuit and modeling challenges similar to Coding challenge sites?
7 points by jeshwanth  1 day ago   1 comment top
brudgers 20 hours ago 0 replies      
Before building a platform, it might be possible to gauge interest by publishing some challenges on a blog. To me, a platform is only likely to work if people enjoy solving the challenges and getting the challenges right, i.e. making them fun to solve is the hard part. The platform matters less...for example, Project Euler. https://projecteuler.net/
Ask HN: Does success in work bring you happiness?
119 points by Crazyontap  2 days ago   103 comments top 66
justboxing 2 days ago 1 reply      
> Can anyone here who feels truly happy tell me otherwise..

Not sure if this helps answer your question, but I felt truly, blissfully happy the first few months of my arrival at America (from India).

I'm not sure what it was, maybe the fact that I achieved the 1st step of a childhood goal / dream. Or maybe it was the new experiences, living in a foreign land, finding cleanliness, orderliness, and a very efficient system in everyday life that was largely lacking in India.

But I really had nothing. Just 2 suitcases and 500 $ in borrowed money. I learnt on the 1st day on my job (on H1B visa) that I was there only for 2 months to fill in for an American woman who was going on her maternity leave and that I would be sent back to India * after that. I also didn't know anyone here, was told by the company that brought me here that I need to vacate the hotel they put me up in within a week, had no credit history, nothing.

I think that fact that I had no obligations -- financial or otherwise -- was part of it. Didn't have a mortgage, loan on a car, was single, no dependents to take care of, and very little physical possesion.

Nearly 2 decades later, I'm still trying to get back to that state of happiness. Like others have stated here, I don't think money has much to do with achieving 'happiness'.

I think the pursuit of happiness is purely a western-culture phenomena...

[ * hustled and extended my stay beyond the 2 months by doing the work of another citizen co-worker who offered to get the manager to extend my contract beyond 2 months if I "fixed" her code... 18 years later... I'm still here :) ]

siberianbear 2 days ago 3 replies      
I made several million dollars in Silicon Valley and retired at age 40. Now I travel perpetually but I have a couple of "home bases". Every day, I'm thankful that I have my health and a full day to do whatever I want. Time is finite, and living off investment income gives me freedom from having to sell my time for money. I own 100% of my own time now.

I saw a sign once that said, "My hope is to die in a staff meeting: that way, the transition from life to death will be subtle." I understood the sentiment 100%.

Even by Silicon Valley terms, I had a great income and a good career. But I will never return to it.

numbsafari 2 days ago 0 replies      
The trick is to define "success" in such a way that it drives your happiness, rather than adopting external definitions of "success" that have no relationship with your own personal sense of self worth or life pleasure.

"Money" won't likely drive your happiness. Not entirely.

"Increasing shareholder value" also won't likely drive your happiness. But enjoying the camaraderie, or seeing your leadership improve peoples lives, or the sense of accomplishment that comes with setting and achieving goals... those things can lead to happiness. And a lot of times, you can achieve that kind of happiness even if you miss your quarterly numbers, or a startup hypothesis doesn't pan out.

"Reading all the books by Author X." "Getting a Ph.D." "Coaching a little league team." "Completing project Y." "Publishing paper Z." "Taking a 2 month RV trip across europe." "Earning the respect of my spouse or partner."

Money, shareholder value, "assets"... are only a means to certain kinds of ends.

jboynyc 2 days ago 1 reply      
I'm an academic. My frequent collaborator has a rule that I find very wise. Following this rule, we celebrate when we submit an article for peer review or send in a grant proposal, not (only) upon receiving positive news (article accepted for publication or proposal funded). That way, the happy occasions are based on our own goals and rhythm, not depending on outside confirmation. I'm sure you can generalize the underlying principle to other kinds of work as well.
6nf 2 days ago 0 replies      
A study of people who got into devastating accidents leaving them paraplegic or quadroplegic found that after 6 months, those who were generally happy before the accident returned to being generally happy. Those who were unhappy before the accident got worse or stayed the same 6 months later.

On the other end, people winning the lottery also reverts to their pre-lotto happiness level after 6 months.

I guess the point is that you probably won't find happiness in work success if you're currently miserable.

There's some newer studies that helping other can make you happier, like this one published in Science:


The effect is not huge though. A meta study on this showed that it's only about 1 point on a 10 point happiness scale.

If you really are not happy, consider these common and proven recommendations:

- Get plenty of good exercise, at least 30 minutes, 3-4 times a week

- Get enough rest, 8-9 hours a night

- Check your vitamin D levels and supplement if needed.

- Eat healty and avoid alcohol and sugar

- Spend time building social support, do not neglect your circle of friends and family

- Get into a routine, for example go to bed at the same time every night and wake up at the same time every morning

And of course if you feel like this for more than 6 months, see a psychologist.

roylez 2 days ago 0 replies      
Success in work does not make one happy, or at least in the long run does not do so.

It has been discussed in great detail in book The Power of Now if I remember correctly, that there are two types of happiness, pleasure and joy.

Pleasure is short-term and results usually from external events. Winning a lottery, having a party, making your first million, and etc, these will bring great pleasure to you. However, pleasure fades away fast, and you will not feel any difference after some time, no matter a day, week, or a month. The life goes on, and you still have all other things to make you stressed and feel miserable. This is why people say money cannot make one happy.

Joy is, on the contrary a skill that can be learnt. It is an attitude to be content with your current state, and be just a little bit above that "neutral" mood, no matter in what adversity. With this skill, you would not worry about if you would succeed in your job, because it is irrelevant to your happiness.

Both The Power of Now and Stoicism stuff like A Guide to the Good Life: The Ancient Art of Stoic Joy can give you some hints on how to live a joyful life.

AndrewKemendo 2 days ago 4 replies      
Does success in work bring you happiness?

Yes. More than anything else.

It's not the money part. I don't make much. It's the influence and seeing my work actually shift how people act and live their lives - especially seeing where it will lead.

I have three kids and when I talk with other parents, they say that they get the most joy out of seeing how they can positively influence their kids.

What about positively influencing millions of people, consistently over the long run with your work? You do that through impactful, meaningful work. Maybe it's software or maybe it's building houses, or providing access to capital for low income people, or working on vaccines, or any number of the millions of things that influence people at scale. That's the difference, at scale.

You can't do scale with personal relationships, you do it with work. Define work however you like (charity etc... it's how you spend your time)

How could that not be the key to happiness?

JTenerife 2 days ago 1 reply      
Ambitions, e.g. for success at work or sport, are natural and come from the urge to have a high social ranking. After all we're first and foremost social beings. So our position among others is inherently important to us. But we're not living in clans any more. Civilisation has made things difficult. This kind of success (to assert ourselves over others) is overly glorified. Athletes are looked at god-like. Money and fame are overrated. To some extend it's natural to try to be successful, but the world is full of extremely successful people who find themselves being unhappy.

Those people often see that helping others is a true source of happiness.

Matthieu Ricard is a quite famous monk having published a lot of interesting stuff:


This one is on the topic:


perlgeek 2 days ago 2 replies      
All the small successes bring me happiness, both in work and outside it.

Before my current job, I spend about 2.5 years trying to get a PHD (in physics), and I quit. There were several reasons, but a major one was that I didn't feel I had any successes.

Since then I've been doing software development, and there are small successes and wins every day, or at least every week. A feature is finished, a bug is fixed, a colleague tells me that something I wrote saved them time or hassle, or even that they enjoyed in the new UX.

My wife told me I was a different person in the new role: much more relaxed and happy. I agree.

Now I have two children, and it's another source of a stream of small successes that I can enjoy. First steps, first words, first shoe laces tied, first cucumber cut by themselves etc. They are not my own, but I'm sufficiently emotionally attached to them to derive happiness from theirs.

jblow 2 days ago 2 replies      
Yes, if it is creative success and not merely monetary success.

I am of a personality type that I don't think I could be happy without creative success (loosely defined as, having done a good job on creating things that would not exist if I hadn't made them). In a previous phase of life, I was not successful at making things, and I was pretty unhappy. Now I am successful at making things, and am much more happy (though I have also developed several mind-management skills as well).

If you are talking about "1m+" as the sole gauge of success, I don't think that means very much.

ACow_Adonis 2 days ago 0 replies      
Maybe not work specifically, but making and hitting medium-ly stressful goals and an overall sense of agency in one's psychological mindset will generally be correlated (causative) of general well-being.

Having a certain amount of money, social standing, and meeting goals will generally help enable this.

But so too can one feel trapped in particular professions, if you don't feel you're adding any value, or if you lose that sense of active goal setting/valuing/achieving cycle, then it doesn't matter what other people's impression of yourself or your job or success are...a tendency towards depression in such a state would not be peculiar...

d--b 2 days ago 0 replies      
Thing is: happiness is elusive and relative.

Some people will feel miserable after achieving some professional success (either for having used much time pursuing what they now consider vanity, or for still finding they're not successful enough). And some people will seem happy regardless of anything that happens to them, professionally.

If you feel miserable because you're not a successful founder making tons of money now, we can't really tell you whether achieving that will make you happy or not. There are all kinds of stories.

I guess it'd be good to understand why you crave for professional success in the first place. Is it to please your family? Is it for self esteem? Is it to make money so that you can party a lot? Is it so you can make money to give to charity? Is it because you want to spend time with smart people who value your decision and make you feel good? Is it to be more seductive? Is it because you love working? Is it because you want to make your dent in the universe?

Professional success is only a mean to fill something else. For me, I couldn't care less about changing the world, or success for self esteem. But I am still fairly driven to make money. My goal is to be more free and still have some comfort. As in, i don't want to depend on anyone: have my own place, have enough money to not have to make decision because I lack of it. I could reduce my needs, but I also like my comfort, living in a nice city, etc. So right now, i'm playing the professional game, but only because I'm looking for a way out.

NamTaf 2 days ago 0 replies      
Success in my work brings me happiness but not via money. It brings me contentedness and satisfaction which in turn makes me happy. After all, I have a desire to be competent at whatever I apply myself towards and master the responsibilites I'm assigned. The satisfaction from my success comes from the reputation amongst peers, demonstrated mastery of fields, knowledge that my responsibilities are in order and working well, etc. rather than from the amount I earn every fortnight.

Where money does factor in to it, though, is as a tool to reduce the barrier of entry to other things I enjoy outside of work. In that sense, I don't feel inadequate if I'm not earning a certain amount and my satisfaction in my job isn't tied to receiving a certain bonus or whatnot. However by doing a good job - motivated by my desire to be satisfied with my work - I get rewarded with more money which enables me to do things like travel the world, afford luxuries, etc.

NB: I'm not one of the $1m+ club, so maybe something changes there, but I don't feel it would given my situation.

throwaway131 2 days ago 1 reply      
Me? No.

Everyday workplace successes like good reviews, raises and promotions don't make me happier. If they did, I would work hard and try to be successful.

I also don't get a kick out of winning, or satisfaction from completing a project, or a sense of comradery from pulling all-nighters with people. If I did, I would go seek it.

Instead I work 35 hour weeks and keep a moderate, negative vacation balance that I fix through pay cuts whenever possible. I go home to read good books, cuddle my girlfriend and go on long hikes with my dog.

It's worked, and I'm very happy.

tchaffee 2 days ago 0 replies      
Accomplishing things can bring temporary happiness. Money up to a certain point will make life easier, but after that it doesn't make much of a difference. One of the easiest ways to make yourself happy is for your work to be meaningful. If you feel like your work is helping other people that can lead to more lasting fulfillment.
throwawayperfin 1 day ago 0 replies      
I don't know how popular this will be, but yes.

I've made $1M - $1.5M the last few years. As someone who grew up poor, that feels like a major accomplishment. Even if I can't talk about it with most people (only my mom & wife know), it's still a source of internal pride.

We have small children & I've fully funded their 529s. Knowing they won't have to worry about that, even if things go south for me, makes me feel like a good father/provider.

My mom is getting on her age. She doesn't have a lot saved, as it was hard being a single mom raising a large family alone, let alone saving for retirement. She used to tell me she'll just work until she dies & she was determined to never be a burden. The only reason I've shown her my W2s is not to brag, but to tell her, emphatically, she can (should!) retire and I will take care of her.

Oddly, the first years I made that much, I found it very stressful.

I kept thinking "I'm going to fuck this up & regret it for the rest of my life. Tomorrow they're going to realize I'm an idiot & fire me. I just know it." And not like a every so often thing, every month or two. Like every day or two. It's still there, but not as bad.

We've kept our lifestyle & expenses the same. We've been saving as aggressively as I can. Taxes suck, but on the upside, we're not that far from being financially independent. The only exception is at Christmas, I buy my wife something expensive jewelry wise. She's low maintenance, puts up with me, is a wonderful wife, and it's nice to spoil her.

Even knowing that's close is a change psychologically. Even if full independence isn't far off, even closer is theoretically being able to take a 9-5 job, or something much lower level. What's weird is knowing you could walk away from your job, changes the mental stress on you. In fact, knowing that, I think I'm much more likely to stay in my current job.

I think you could debate if it's money itself that is making me happy, or what it lets me do for others I love dearly, but for me it's basically the same thing. I couldn't do the latter without the former.

heleph 2 days ago 0 replies      
Success is fun and should be celebrated. It's definitely something that's nice to achieve from time to time.

What is problematic is when you look for something in success that success can't give you. If you don't like yourself, success won't make you like yourself. If you need more connection in your life, success won't necessarily give you that feeling of connection. If you're looking for proof that you have value, there is never enough success to prove it.

Success is great, but may lead you into doing things that are suboptimal for you, if you chase it. I think it's only really satisfying if you're chasing something more meaningful and then you are successful at that. The other advantage if you're doing something more meaningful, it's meaningful even if you're not successful.

keyle 2 days ago 1 reply      
Don't chase "success". Chase happiness. If you chase success, you're chasing a moving goal post. You will never truly be happy until you get content. Your frustration may come from the fact that you have high expectations for yourself. Slow down and enjoy the little things, that morning coffee, that lunch with friends, etc. Chase every work opportunity and do work hard, but don't chase success to obtain a state of permanent happiness.

The fact is, money in a bank account, once you get enough to live, is just digits. Add a 0 at the end of it, that doesn't make you happy. And shopping therapy is a very short fix.

I find I'm much happier running projects with 0 expectations of deriving $ value. E.g. free games, free software, happy hacks. Once money is involved, expectations jump.

mikekchar 2 days ago 0 replies      
Success is awesome. When I've been on successful teams, everyone is happy everyday. Even when people have things in their outside life that cause problems, at least they have 8 hours a day where they are successful. I was on one team that just couldn't lose. No matter what we did, it was fantastic. When you hear about "hyper productivity", it's a true thing. It happens. After that team broke up (after an unfortunate internal company reorg) I've spent the rest of my career trying to find it again. Came close a few times, but never nailed it like that.

Of course, that answers your question literally. I don't know if it's what you meant because my answer had nothing to do with money.

ptr_void 2 days ago 2 replies      
I don't understand people's obsession with happiness. It always seemed like a very weird and arbitrary metric. Orgasms makes people happy, perhaps we, as species should come together and fund/help build the constant orgasm machine, we will all be very happy.
manyxcxi 2 days ago 0 replies      
Success absolutely brings me happiness, it's the culmination of a ton of hard work paying off.

The difference is, you can't let the failures and external factors bring you down. Money won't bring you happiness, it'll give you some stress relief to go make your own happiness, but if you're in a bad situation and making $20K, $120K, or $1.2M you're still going to be unhappy.

Take pride in your craft, in doing what you're doing to the best you can- but once things are out of your control, it's useless to let those things affect how you feel about yourself.

The only times work failures have gotten to me are when I thought that I didn't do a great job, or I could've gone over and above and that it might have had a more positive outcome.

More importantly, you're entire self worth and happiness can't be derived from one thing. If your personal identity is centered around your career, your significant other, or your sports team, etc., you're fucked. We're complex animals, you should be getting your self worth and happiness in bits and pieces from everything you do and all the important relationships in your life.

Have hobbies. Anything, try shit until something sticks. I woodwork, ride my bicycle, shoot archery, and fish. I have my own start up and am in the office by 630, have a family with 3 kids under 5, so I get creative to find the time. Ride my bike to work, teach my kids how to build stuff, shoot archery mid day at the range while I'm noodling over work stuff, and the fishing- well that involves a lot of pre-planning and buttering up the wife.

Here's the thing: I'm not really good at any of those hobbies. I mean, I'm above average at best, but I'm generally barely knowledgeable. I'm okay with it, it's a no stakes learning situation, unlike all day at work. It feels good to learn and not have it cost me thousands of dollars, or to eat dinner on a dining room table I built with my own two hands.

I would think it's important that you get satisfaction and happiness from your professional successes, but I think it's more important you're getting it elsewhere too.

lhuser123 2 days ago 1 reply      
The book "So good they can't ignore you" has some very good insights. For example, the author talks about how it help some people obtain flexibility and control, which in turn makes them feel more happy or living more meaningful lives.
mythrwy 2 days ago 0 replies      
No. Also eating and sleeping don't make me happy. But lack of eating and sleeping make me decidedly unhappy.

This is the same type of thing. In other words, success doesn't make you happy, but it's hard to be happy without some level of success.

notadoc 2 days ago 1 reply      
Feeling good about what you do will likely make you happier than "success", I know plenty of successful people who are miserable or still unhappy.

And unsurprisingly, not liking what you do will deprive you of happiness

xapata 2 days ago 0 replies      
I'm a pretty happy guy, but I work at it. I stop to appreciate the landscape. I try to enjoy each bite of food. I pay attention to the strain of my muscles while riding my bike. I sing a song for myself while I'm doing anything tedious. Also, whenever I'm upset I remind myself that whatever was bugging me isn't really going to stop me from having a good day tomorrow.

I worry about my health and my family/friends' health. Otherwise, I'm care free.

Work? No. Friends make you happy. Good colleagues, good customers, good neighbors.

PangurBan 1 day ago 0 replies      
Studies have shown that beyond a point money in and of itself doesn't boost happiness. In addition, the social aspects of work are highly beneficial - and the lack of social interaction leads to depression for many retirees. I know people who are very successful in their jobs and very well off who are absolutely miserable. I know others that don't earn a lot - they earn enough to be secure and live well - but derive tremendous happiness from their job.

In addition, the answer depends on your company, work environment, the impact of your work on others and the type of person you are. Does success at work mean elevating your team, helping customers solve their problems and improving the lives of others, or does it mean stabbing colleagues in the back, getting customers to buy products that either aren't helpful or even hurtful to them and making the lives of others worse by harming them or the environment? Are you the type of person that feels better improving the lives of others or enjoys the feeling of deriving benefit from tricking others?

aizatto 2 days ago 0 replies      
I think this is a really good question.

I've been asking myself similar questions, and made a site for it at https://www.deepthoughtapp.com

I've been using this as a way to understand myself better.

Success at work does bring me happiness. But happiness is fleeting as well. There are moments of frustration at work, which bring my mood down. I believe the feeling of progress drives a lot of happiness.

I'm trying:- to better to deal with the frustration- to accept accept frustration as the cost of happiness. I don't think there can be happiness without frustration.- to understand my rhythms of highs and lows better- look at small successes, daily successes, personal growth- find fulfillment. What makes me fulfilled.- Understand my motivators. The need for autonomy, mastery, and the purpose of it all.


rifung 2 days ago 0 replies      
I don't think that success at work makes me all that happy because what success means at work is defined by someone else.

Of course, other people might feel like it matters to them and if so then I don't think there's anything wrong with that. However, I think it's really important to see that there are many things beyond your control, so if you try your best and still fail, I like to think you should still find happiness in how you hopefully grew as an individual.

harryf 2 days ago 0 replies      
Success in anything challenging gives you confidence in your ability to shape your own life. Success helps you avoid "victim thinking" and gives you a greater ability to take risks. That in turn is an _opportunity_ to be happy, although there are plenty of successful-but-miserable people out there. It doesn't have to be success at work though - could be success in a hobby.
sebringj 2 days ago 0 replies      
I never feel that good when I make someone else rich. I have yet to know how it feels to make myself rich but I'm sure its not that bad.
pasbesoin 2 days ago 0 replies      
Look at it this way: You spend an awful lot of your life working. If you have a choice, why spend that time doing something that doesn't make you happy?

Life is experience. Not numbers. And, as some of us know, it -- or our health -- can be taken away at any moment.

Living with some planning for the future means if and when you get there, hopefully you will enjoy it.

But don't forgo happiness now for some potential future. A successful life is enjoying now, the majority of the time.

(Nothing's perfect, and there will be down times. But too much down is a bad sign. And, it becomes self-reinforcing. Don't fall into that trap.)

All that said, having a decent income does help. If I'd moved around more in my career, I might have actually been happier and gained more financial security.

In short, take care of yourself, including your emotional self. That's probably the surest road to personal success, however you end up defining it. Positioning yourself to work from a position of strength, and with positive support.

tluyben2 1 day ago 0 replies      
It does, but there is more to it. I think it is very personal unfortunately. I personally feel perfectly happy sitting in nature; I hear crickets around me and it could not be more perfect. But that alone would not do it for long; I need some challenge and for the last 30 years that means writing code for me. Writing code in nature is all I ever wanted. I can see that is different for others and that others would hate my life. So you have to find what it is for you. My hobby is my work and after all these years it keeps me going, more hours than most people would put in and it makes me happy. I am lucky to live in a country that won't let people starve, so even if I would not get paid for what I do, I would still do it.
j45 2 days ago 0 replies      
Success or happiness doesn't come or stay easily.

Things don't get easier, you just get better. As you get better, you get challenged in new ways. How you call with challenges often had a big impact on happiness and enjoying success.

Ones work in life isn't always tied to one's life work.

Finding a balance between work, success, happiness and money evolved greatly in my 20's to my 30's.

You become more well rounded as a result of meeting people, new experiences and lessons learned.

Happiness for me includes not needing to look at what others are doing, and be happy for others at the same time. It's something I have to earn and keep earning.

Earning catches up when you get good at adding value and building the discipline to deliver day in and day out.

I have my interests and discovering I can persue them in most opportunities is invaluable, I can just focus on getting better at solving problems and adding value.

deepakputhraya 2 days ago 0 replies      
I started working for my current company about a year back, and I was given ownership and the freedom to develop my work which I found very lacking in my previous company. I took this opportunity to learn a lot, I took ownership, and I started doing things that were not in the pipeline in my free time that would benefit the company. I was really happy with what I had built, and I was rewarded for my work. I was happy!

That was nearly six months ago. Now, working at the same company I am not very happy, probably because of burnout, lack of senior developers or decrease in the learning rate or possibly because of how confused I am right now.

Professional life can bring you happiness, but I am doubtful if it can do that for a very long time. It's always the personal life that determines how happy you are.

thiagooffm 1 day ago 1 reply      
happiness is overrated.

so is striving to become successful at work. i can hardly believe that i'll be on my deathbed complaining that i wasn't successful enough at work.

but rather, I would be mostly filled with happiness and joy because of this long and crazy trip called life.

i think if you are easily manipulated by any shit people throw at your face you will feel pretty good while being successful, which generally means that people conceive you as better than someone else. but i see this as a very retarded view of the world, as you might be good at doing one thing, but there are so many things. I just imagine the kid trying to be good at something so they their parents are happy because they are good. When things doesn't come naturally, but at a cost of being superior, or even at cases inferior, it's a bit shitty imho.

I grew up as a kid where my parents would only compliment me when I completely beat up other people in everything. I grew up in this and have attained a lot of things which people from my social circle wouldn't ever dream of, to later see that I did all that because I was actually grown with a very shitty perspective of life, where everything I do it must be to win and I could only be happy that way, I was trained that way.

I'm still unwiring myself from this bullshit, and I think everybody should. the world got too much sick people with this mindset already.

while someone is a awesome co-worker and got promoted to management, the other is strong and struggling with a relative with cancer, meanwhile the other is caring about his son.

i see this as no competition at all, success is just perception and perception you don't care about the details of the ones who didn't "make it". and the ones who didn't "make it" might generally be way better than you in general, but having a hard time, not coming from the same background and so on.

so I don't think anybody can reliably look for success that way, and it's kinda sad people who does believe in that.

29052017 2 days ago 1 reply      
My Personal experience tells me that Money alone doesn't bring you happiness.

Around two years ago, I was working at a middle tier SW outsourcing company, which payed me a respectable salary. Nothing great but it was quite enough for me.

Then I landed a job at a hot startup, which had already raised its first round. They offered me nearly double the salary that I was getting then. I didn't think twice and accepted the offer.

Two years have gone by and all the extra money that I have made in that time has not brought much change in me or my life. I have started spending more freely, but that doesn't make me much happier than I previously was. Maybe it's just me, but money doesn't seem to do it for me!

RealityNow 2 days ago 1 reply      
What makes me happy is doing meaningful work.

My job as a software engineer is not particularly meaningful or fulfilling in the grand scheme of things. But it pays well, which will at some point allow me to retire and work on something meaningful to myself and society.

fsloth 2 days ago 0 replies      
Generally I think million dollars won't make you happy. It will increase your mood for a while and then it will plateau. Past achievements don't bring lasting happiness. That's just how humans are built.

Therefore, happiness can be achieved only through things that you do daily. Hence, the million dollars can facilitate happiness if it allows you to do things which you like - like camping, base jumping, cooking - whatever you like. Or even your original job, if you were so lucky to have a job that brought fulfillment.

The key to happiness, is therefore knowing yourself and knowing what you like.

CM30 2 days ago 0 replies      
Not necessarily. If you despise the field you're in and can't bring yourself to enjoy your work at all, even making millions won't make your work life a happy one.

Of course, I suspect a lot of truly successful people make up for that a fair bit by doing stuff they actually enjoy outside of work. But if your job generally isn't something you enjoy doing/your skills don't match your desires, then it can pretty miserable regardless.

There's a reason some people give up a great job for something that pays far less that they actually enjoy.

jmcgough 2 days ago 0 replies      
Feeling like you're a bad fit for your job or that you're underperforming can reeally contribute to stress and anxiety.

For me, I'm happy when I'm pushing myself to get deadlines done and to achieve goals that I set for myself... but also focusing on self care when I need to, and giving myself creative outlets outside of work (which for me is music and cooking).

So, success contributes to happiness, but it's important to try to strike a balance and not let that be the entirety of your life. There are some people who enjoy throwing themselves into their work, so for them it's a matter of working somewhere where they feel like their efforts are rewarded.

itamarst 2 days ago 0 replies      
Increasing shareholder value does not make me happy or unhappy, for what it's worth.
ian0 2 days ago 0 replies      
Success building products and organisations has brought me a lot of happiness. I genuinely enjoy doing it and have been relatively successful professionally as a result.

Unfortunately, a side effect of this has been more frequent engagement with groups of people who, inadvertently by virtue of their own success, have optimised "talking about building things" over actually doing so. This has reduced my happiness somewhat as I struggle to improve my communication, without succumbing to imitation.

marinacalado 2 days ago 0 replies      
I think if you're working on something that gives purpose to your life, the "success" (in whichever means) derived from work, can indeed increase your happiness. But if you're working on something you don't believe in, solely to pay your bills and "make a living", then probably the correlation will not be there...
WalterGR 2 days ago 3 replies      
Studies show that happiness increases proportional to salary up to USD$70,000.

Beyond that dollar amount, there's no increase in happiness.

Now, salary isn't necessarily predictive of "success," (as per your question...) so the above fact may not necessarily be relevant... but I present it for what it's worth.

EDIT: I haven't evaluated the study I cited (perhaps erroneously) as fact. But I'll leave this comment here for it to be evaluated.

upbeta 2 days ago 0 replies      
If we take "success" as accomplishment, the question now falls to fulfillment. If it's self fulfilling, then, I believe you feel happiness within.
mrweasel 2 days ago 0 replies      
It's certainly not my main source of happiness. I think I would be able to just as happy without having to work, if my needs where otherwise meet.

However, given that I do need to work to make a living, not being successful would make being happy much harder. I can't imagine happiness would come easy to people who experience failure after failure at in their job.

mrmondo 2 days ago 0 replies      
I've spent a /lot/ of time working through this and for me - Yes, 'Wins' at work directly correlate to my overall happiness both at work and home. I even graph my happiness at least 3 times a day and if its above or below average I try to tag it with something like #workproblems or #workwin
RUG3Y 1 day ago 0 replies      
Define success? Define happiness? I get a pretty nice dopamine hit when I solve a hard problem. Money doesn't make me happy but maybe that's because however much I get, it's never enough.
hprotagonist 2 days ago 0 replies      
Happiness is an epiphenomena.

Success at work usually makes me feel temporarily satisfied, but rarely happy as such. Happiness sneaks in of its own accord.

strls 2 days ago 0 replies      
I think this depends entirely on how you define success.Having $1m in itself does nothing for happiness.

But the process of "getting there" certainly does. The drive, overcoming challenges, achieving small "success" every day.

Humans are not happy when everything is settled. We crave struggle.

atemerev 2 days ago 0 replies      
Why it does make you miserable? Success is good, you can be successful, and you can be happy.

For me, I get most happiness in my life from: 1) discovering new things, and 2) successfully making new things, in that order. Why do you think there's anything wrong with that?

known 2 days ago 0 replies      
"Try not to become a man of success but rather to become a man of value" --Albert Einstein
madprops 2 days ago 0 replies      
This is a quote that resonated with me:

"Success is being in charge of your lifestyle and creating something you're proud of, surrounded by people you love."


peteretep 2 days ago 0 replies      
I'm truly happy:

My quality of life improves constantly albeit quite slowly because that's something I work on. I found work that's challenging and rewarding without being stressful. I am working towards a long-term plan and it's going quite well.

geofft 2 days ago 0 replies      
Success at work is no guarantee of happiness, but lack of success is a fairly reliable way to be unhappy. It's definitely true that pouring your life into a company owned by someone else is not a great way to feel happy, but also, you're there 8 hours a day (or more) 5 days a week (or more), poor performance endangers a lot of things low on Maslow's hierarchy of needs like affording food and shelter, and you're surrounded by humans who are unintentionally bombarding you with a value system.

I am generally pretty happy (in a long-term sense), and to be honest, I'm unemployed and job-hunting at the moment, hoping to sign an offer this week. I certainly make far less than $1M per year. I quit my old job because I was unhappy there and starting to be unhappy when I went home, too: I was working long hours and trying to be very good at what I did, and I didn't get the sense that people around me (and my management in particular) valued the things that I was trying to be good at. That is, to be clear, not a criticism of management: they needed different things out me than what I had gone into the job expecting them to need. But it took me a while to really get to terms with how much I had let my sense of self-worth become defined by the value system in place at my work, even though my engineering skills and mindset had remained largely as they were. That dissonance got to me very badly.

I think that's the risk with trying to be happy by being successful at work: it's always an external metric. You can be very successful for years, and laid off the next day, and you always know that in theory you can be laid off the next day.

The things that make me happy now are all internal metrics, that is, they're accomplishments that I myself see as accomplishments, instead of hoping my management will acknowledge. I'm happy about the friends I have, about how much I've been cooking instead of ordering food, about how I've been getting better at singing, about the job prospects I have, about this video game I've been playing, etc. Some of them also have external measures (my voice teacher also says I've been getting better, the video game is letting me advance to new areas, etc.), but I can tell for myself whether I'm doing well or not, and - importantly - I'm continuing these things because I find them enjoyable, not because my voice teacher or the video game says I'm doing well.

Regarding money: on the one hand, I have enough savings that I could just quit my job and start job hunting, and that definitely made me happier than job hunting while staying at my job. On the other hand, I'm expecting a significant increase in compensation regardless of what offer I sign, and I don't think that's made me noticeably happier; I already have enough money that I can do things like quit my job without a new one lined up. I do think that you can feel unhappy from a sense that you're underpaid, but that again ties into external metrics: you know you're doing a job worth some amount, but you're being told it's worth less. I don't think being overpaid (for the work you do) is really going to bring you happiness, unless you have some plan to save up money and quit - and some plan for what to do with that money once you do and why you believe you'll be happy doing it.

Crazyontap 2 days ago 0 replies      
Thank you everyone for your replies. The thing i learn most is that for most people success has nothing to do with money. It gives me a lot of new perspective about success.
diyseguy 1 day ago 0 replies      
It brings you respect. For some people that equates to happiness. For others happiness arises from large amounts of unstructured time.
fusiongyro 2 days ago 0 replies      
I think it's better to search for joy than happiness. If you find joy frequently, you'll be happier. Find a way to get off the hedonic treadmill, and you'll be happier.
trevyn 1 day ago 0 replies      
Happiness = Progress toward your goals. That's it.

The implication, of course, is that you must never stop having goals and making progress to remain happy.

sidcool 2 days ago 0 replies      
Indeed. Finishing some piece of work that will be used by others to make their lives easier really makes me feel good.
mgarfias 2 days ago 0 replies      
After 20 years of doing this: nope.

Seeing my kid win his first bmx race? Yeah, that totally did.

ChristopherM 2 days ago 0 replies      
What I'm about to say goes completely against what society and the majority of those engaging in virtue signaling claim is the key to happiness.

I am quite happy at the moment, and it started back in 2004 when I wrote off my family and commanded them to never contact me again. It turns out removing negativity in your life, whatever the source, no matter how well intentioned you may be in helping someone, goes a long way to being blissfully happy. It is said that "you" are the average of the 5 people you spend the most time with. So consider if your relationships are a positive of negative influence on your life. Remove the negative influences, no one is immune from being removed despite what society tries to feed you about how important "family" is.

In 2008 I went to the CTO of the company I was working for at the time, told him that I was planning to quit even though I had just started 3 months ago and proceeded to explain how my manager could be doing their job better. I listed out how I would run things. A week later I had my manager's job and a $13k raise, several months after that another $20k raise. Needless to say, the student loan debt that plagued me since graduating in 1999 was paid off in 5 months. As were the rest of my debt. Never underestimate how not having any debt can lead to real happiness.

In 2011 I quit the last "real" job I've had at 36. I was not and am still not independently wealthy. I have no family to rescue me if I go broke. At the time I was planning to make an iPhone game, 6 months in coming up to speed on Objective-C, drawing graphics the job I quit needed help desperately I threw out a price of $7500 a week. To my surprise they went for it. So I put the game on hold and worked for 9 months. Accumulating $240k for the year. The money really did make me happy, because of how quickly it piled up. No scrimping and saving and gradually building wealth. Thinking of doing that makes me want to honestly eat a bullet. The old... yeah, save, work 40 years, 2 weeks vacation a year, plus having holidays when the rest of the country does too... die two years into retirement thing. No thanks... Anyways 9 months in and they try to hire me full time as the director of software engineering. 5 years earlier that would have been a dream job. But I really didn't want a "job" anymore. So I quit, took a 10 day vacation to Cozumel with my girlfriend and when I got back spent 2 years working on my game.

I was just about to release the game and then apple announced new ipad and iphone resolutions. So much rework, especially artwork. Then an old co-worker needed help, I told him I would if I could work from home. I was living on Lake Tahoe at the time and no way was I going back to the Bay. Especially since I was on the Nevada side and there was no way I was paying California a dime in income tax (Luckily it was a New York CO so they don't try to tax you out of state until you've made $1 million). The last year I was there I paid $18,600 to California for NOTHING. I got no benefit for that tax I paid to the state. Despite anyone who would argue with me to the contrary. As a note I currently live in Wyoming, and there is nothing more I want from the state, No income tax is glorious.

Anyway long story short, consulting gigs, where I work 100% from home drop in my lap every year or two. I make so much money on those that it pays for 2-3 years of not working.

The key to happiness is not working (for a client or a job, I like to work on projects of my own that have nothing to do with software). While simultaneously having money to do or buy whatever I want (within reason).

I never want to commute to a job ever again. After breaking up with my girlfriend of 5 years I have no interest in getting into another relationship. It's like "I've been there done that" and just don't have an interest anymore. When I'm working on my own projects I get so wrapped up in them I lose track of the time, I don't know what day of the week it is. I might talk to the neighbors or chat with an old friend once a week. I may not talk to or see another human being for a week and it doesn't bother me at all. It might be 10 days before I drive somewhere, it's amazing how long a car lasts when you barely use it.

As a side note, I have no interest in charity it does nothing for me, it's like the part that's supposed to fill me with joy is missing with regards to that. I don't want to contribute to society or do anything that makes the world a better place. And yet my happiness, contentedness, blissfullness has not lessened since quiting my last job in 2011.

So contrary to the frequently parroted "secret" to happiness that involves sacrifice, family, children, being part of a "team". I'm here to let you know, some of us have found happiness doing the opposite...

SirLJ 2 days ago 0 replies      
I feel happy because I am very successful in my job, my investing, with my family and with my few friends - all those are very important, because life is not only work...
aaronblohowiak 2 days ago 0 replies      
It helps me feel ego-gratified, not happy.
draw_down 1 day ago 0 replies      
Yes, and the reverse is true. I am unhappy much of the time, as I have found conditions in the tech industry to be, shall we say, suboptimal.
Ask HN: Where do I report ethics violation at a YC startup?
11 points by startupethics  1 day ago   9 comments top 3
trcollinson 1 day ago 2 replies      
This sounds somewhat unethical, I guess. IANAL but frankly it sounds like the biggest mistake are:

1) If the intern was released and promised money but was not treated or paid fairly according to the written contract, then they should contact a lawyer and sue. If they did not do this, then it's hard to make an ethical argument about the situation. You might be 100% correct, but how can the issues be verified?

2) What you describe is against the law. However, it is not an ethical violation necessarily. It could be that they were not aware of their legal requirement. You could have turned them in and they might have been fined. But it's very hard to judge intent. Maybe they made a mistake. Maybe they posted but you missed it. Maybe their are unethical. How do you prove it? As for the cultural effect, that's not unethical. That may have been their intent. Why would becoming 100% Indian be unethical? If you don't like it as an employee, leave.

3) If you feel that the stock was diluted in a way that was against the law or in some way against your contract, you get a lawyer and sue. If you were slighted illegally for $100,000.00 get a lawyer. Prove it in court then prove it is unethical.

Proving ethical issues is like proving defamation. It's really hard. I guess you could write to the the partners at YC but you might come out looking poorly yourself.

SmellTheGlove 20 hours ago 0 replies      
I'm not going to address the merits of any of the above, as I really can't get into legal advice, so please take this as simply some things to think about:

First, not all ethical violations are legal violations. You probably have a mix of things here. Consider what you want to raise, and who to raise it to, for each bullet. You may want to discuss with an attorney to decide whether any of these have merit line by line.

Most importantly, and especially if this is your employer, you absolutely should talk to your lawyer first before doing anything. I say your lawyer in the sense that if you do not have one, find one. Whether you're right or wrong, whenever you might stir up trouble for someone, you need to know what the blowback could be and your lawyer is the person to advise you on that.

I know I'm not really helping with your question head-on, because I really don't want to suggest who to raise ethical and/or corporate legal issues to - it's best to have that discussion with someone who is your attorney. I'd want anyone looking at this thread for similar reasons to get the same message.

techthroway443 13 hours ago 1 reply      
This happened quite some time back? Forget about it man, why bring this up now?
Ask HN: Would you want to sell code of complete websites?
67 points by CAFEEFAC  3 days ago   39 comments top 21
everdev 3 days ago 1 reply      
People do this on https://flippa.com

But most of the sites are junky WordPress sites. And people pay a couple hundred dollars depending on the setup and the niche.

If you can build a flexible back end, then you could find entrepreneurs willing to pay thousands or tens of thousands to have it customized.

So, would you rather sell 100 $200 "as is" sites, or 1 $20k custom site?

5_minutes 3 days ago 2 replies      
Before the SaaS hype, this was just called "Scripts".


Check out the PHP folder section. It certainly has advantages using: bought scripts, instead of everything being a subscription. It has a onetime fee, and often can be modified yourself to anything you want.

callmeed 3 days ago 1 reply      
binpress does this already: http://www.binpress.com/. I've purchased iOS components from there in the past. Not sure how active/popular it is currently. As others have said, there's also flippa, hotscripts, etc.

I like the idea and I'd look into selling some code (I have a collection of Sinatra apps I re-use for all sorts of things from APIs to payments). The issue really comes down to support, customization, and deployment. I don't mind writing some documentation once, but I don't want to spend 4 hours supporting something I sold for $299.

Ignore the people that say there's no market. One way I think you make this stand out is with a "verified" badge of sorts. For any project, ensure that it has one or more of the following:

- Dockerfile that works

- Deploys to Heroku with min. effort

- Has a test suite that passes

- Has a working demo

- Includes a minimum amount of documentation/setup videos

That's my 2

primaryobjects 3 days ago 2 replies      
Buyers are typically more interested in buying a niche customer base/traffic, then they are about buying a web site code base.

In fact, many buyers don't even consider the programming language or platform the site is hosted on as being important, so long as they can get it up and running - and it has good PR and traffic analytics.

Hence, why fippa works (at least for selling a site for a few hundred; if you're lucky).

krapp 3 days ago 0 replies      
So instead of selling templates or whatever, I'm selling, like, a Dockerfile or Vagrantfile, seeded DB, backend and frontend, the whole thing? Sure - if the price is right, sign me up.

I have no problem with the concept necessarily, but I feel like it's kind of a solution looking for a problem that's already been solved, either by freelancing or, as mentioned elsewhere here, Wordpress/Wix/etc. The budget for freelance work along the lines of "Youtube/Twitter/Amazon clone" tends to be incredibly low, certainly lower than most Western developers can afford to live on, so my main concern would be, whether or not it the market would be worth the time.

mtmail 3 days ago 2 replies      
I started my website project with such a template: a Ruby on Rails project (open source on github) that already included user registration, email list management and selling products (ebooks). Over time I've replaced almost all parts but it was a huge timesaver in the first couple of months. I could see that work for Rails, Django, Express.js and similar frameworks.
daxfohl 3 days ago 0 replies      
Seems like it'd be hard to market. Designs you can look at and immediately differentiate. Back ends, eh, how could you tell? Unless you're going all-in like Magento, with customer support and everything under the sun, what would you have to differentiate your solution?

Between that on one end and todomvc.com on the other, I don't see any middle ground that would interest anyone.

I think the better thing is like Heroku, with a platform and pluggable services, and you write your own code into it.

throwaway2016a 3 days ago 0 replies      
These are called "Turn Key Websites" and they were quite common in the late 90s early 2000s.

Most common were dating and real estate websites.

Edit: infact, doing a Google search not much has changes. Tons of scammy sites you can buy for only $300 each.

brad0 3 days ago 0 replies      
There are websites out there dedicated to flipping web sites.

Most sites are people's side projects that bring in a bit of revenue. They've lost interest or have different priorities.

They sell it to others for anywhere from $2000 to $100k+.

hedora 2 days ago 0 replies      
I wonder if you could make a go at private cloud installs. Contrast synology and a roll your own NFS server. The former has perf analytics history, auto update, auto scrubbing, well supported apps, bullet proof certified hardware (as much as you'll find in the < $1000 range).

There is not a great solution for well-curated (read: backed up, encrypted and updated in a standard way, and works on the first try) dockerfiles. I'm to the point where I'd pay ~$10-100 per service for that at home, and I run about 5 services. Presumably the SMB market will pay more than me.

AznHisoka 3 days ago 2 replies      
No. Sell me data and then you're talking. (ie geolocation data, lists of most popular hash tags, lists of sites that use MixPanel, etc) Most code is worthless. Its the data thats worth money.
SonOfLilit 3 days ago 1 reply      
I don't feel there's a market - for very generic things you have Wordpress plugins or Wix, for anything less generic you simply can't create it without a very specific use case in mind. There is no "generic social media website" more specific than that Wordpress plugin that makes it look and feel like Facebook.
dkarapetyan 3 days ago 0 replies      
Doesn't this already exist as WordPress themes?
rlafranchi 3 days ago 0 replies      
I sold a wordpress theme site on flippa for $400 a few years ago. It included the site, themes, and demo sites. I was surprised I even got that much. Given the time spent, It wasn't a very good investment.
sebringj 3 days ago 1 reply      
there is sandstorm and codecanyon already
SirLJ 3 days ago 0 replies      
People would be interested in buying the business if it is profitable (and not solely based on ad words gimmicks that would disappear with the next google update)
ronilan 3 days ago 0 replies      
sell code - you betcha!

list for (potential) sale - no thanka...

bevan 3 days ago 1 reply      
There could be a market amongst those learning the given tech stack. I would have definitely considered buying well-built apps to study back in the day.
olalonde 3 days ago 0 replies      
There's no doubt the answer to your question is yes. The more interesting question would be whether there'd be any buyers.
Giorgi 3 days ago 0 replies      
Same company that runs themeforest sells scripts on codecanyon. Yes, full frontend and backend was called scripts back in the days.
nerdponx 3 days ago 0 replies      
Isn't there already a cottage industry for Squarespace themes?
Ask HN: Is the CI space overcrowded?
7 points by Scorpiion  2 days ago   18 comments top 5
lomnakkus 1 day ago 2 replies      
I find that it's just like the bug tracker space: There's a lot of contenders, but somehow none of them actually hits the sweet spot.

For CI, it's either: "too GUI" or "not enough programmable".

Also, CI is an area that absolutely cries out for container technology, but the state of containers on Linux[1] is absolutely abysmal. Maybe it'll be better in ~5 years when we'll hopefully be about 40% towards the capabilities with Solaris Zones. (Here's a hint: If you cannot fully 'contain' root and users/mounts/devices, then you're not being serious.)

[1] The most popular platform for this, by a far margin.

shubhamjain 1 day ago 0 replies      
Nathan: Youve shown with Freckle that you can enter a saturated market like time tracking and still do well.

Amy: Saturation is a load of bullshit :)

Nathan: Really it just shows the market exists.

Amy: Its more than that. So much more than that. If a million people use Harvest, theres no way theyre all served well by the same tool. The presence of other products doesnt just show opportunity, it CREATES opportunity. Because wherever theres a big biz, there will be lots of dissatisfied customers.

Source: https://stackingthebricks.com/difficulties-for-nathan-barrys...

debacle 1 day ago 0 replies      
If you could make a self-hosted Jenkins replacement that is even half as good as Jenkins (think extensions) but written in not Java, I think it'd receive a lot of positive reception.

The trick with CI, like task/project management software, is that people don't look at what works. They don't try and compete on intrinsics like stablility, extensibility, etc, and really after 12 months on any platform, any mid-large size company is going to care more about those things than new shiny.

Jenkins had the absolute worst UI for a long time, and it still was many people's top choice for CI. You're generally writing a tool for programmers, after all.

twobyfour 1 day ago 1 reply      
It's a well-populated space. If you're going to enter it, you need to be clear about differentiation.

We picked our CI solution because it was the only cloud offering we could find that supported Bitbucket and also allowed us to set up our own fully-custom environments to run against - without Docker.

Sadly, it took about a week's worth of research to figure that out. And I'm a bit concerned that in this crowded market they'll go out of business and leave us high and dry.

twunde 2 days ago 1 reply      
I think that as evidenced by the discussion about concourse ci today https://news.ycombinator.com/item?id=14785254 that there is still room for improvement and new products, especially on-prem CI tools like Jenkins/TeamCity/Bamboo/Concourse.
5 lessons I learned from starting a business in Japan
7 points by ian_in_osaka  23 hours ago   2 comments top 2
tixocloud 22 hours ago 0 replies      
Thanks for sharing your experience. I've been to Japan a few times and absolutely love it. I hope one day, I'll get the opportunity to live and run my business from there. Do you an email where I can reach out? I'd love to learn more about your business.

My only experience is as a tourist observing the workers and it does look as what you described with longer hours and great importance placed on work but that companies will also reward you with loyalty. I've also heard that hiearchy and respect is important. I feel like there could be certain values that could be extracted as part of Western society - we recently had a retailer reporting bankruptcy and being unable to afford the pensions/severances of employees but somehow the management team was retained and were provided with decent bonuses. Something seems broken there.

mycat 22 hours ago 0 replies      
How is the startup scene now in Japan 2017?
Ask HN: Share your top 10 cli commands
9 points by aleyan  1 day ago   25 comments top 22
wprapido 9 hours ago 0 replies      
1 169 23.4722% cd 2 122 16.9444% ls 3 76 10.5556% wp 4 62 8.61111% vim 5 47 6.52778% ee 6 28 3.88889% ping 7 27 3.75% bash 8 19 2.63889% chmod 9 15 2.08333% unzip 10 15 2.08333% mv
Something1234 15 hours ago 0 replies      

 139 7.81563% git 235 7.01403% rm 333 6.61323% cd 428 5.61122% wc 528 5.61122% make 621 4.20842% valgrind 718 3.60721% massif-visualizer 816 3.20641% cat 913 2.60521% vi 1012 2.40481% ssh
I've been fiddling with valgrind an unhealthy amount, just because I find it interesting.

leipert 1 day ago 0 replies      
Had to adjust on my zsh shell:

 cat ~/.zhistory | cut -d";" -f2 | awk '{CMD[$1]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10 11681 15.2472% git 2964 8.74376% yarn 3921 8.35374% cat 4755 6.84807% docker 5628 5.69615% brew 6515 4.6712% cd 7372 3.37415% curl 8366 3.31973% npm 9298 2.70295% trash 10270 2.44898% find 
EDIT: trash is is like rm, but moves to system trash. From the reast you see that I mainly work in the JS ecosystem. If I add the second parameter, things get more interesting, and docker pops up:

 1645 5.84928% git checkout 2324 2.93824% yarn add 3221 2.00417% brew cask 4176 1.59608% 5161 1.46005% find . 6157 1.42378% yarn upgrade 7136 1.23334% docker run 8125 1.13358% curl -s 9124 1.12451% docker image 10121 1.09731% yarn remove 
EDIT2: The analysis may be more interesting if you check for piped commands as well, as I missed grep in the first list

 $ cat ~/.zhistory | grep grep | wc -l 1098 $ cat ~/.zhistory | grep sort | wc -l 316

imauld 16 hours ago 0 replies      
The ks commands are aliases for kubectl to different clusters:

 1147 29.4% git 237 7.4% ks 335 7% ksdev 432 6.4% kprod 520 4% kslogs 617 3.4% kubectl 78 1.6% export 86 1.2% ssh 96 1.2% python 105 1% curl

assafmo 18 hours ago 0 replies      
This doesn't take pipes into account...

 1412 11.4191% sudo 2301 8.34257% curl 3197 5.46009% cd 4182 5.04435% cat 5163 4.51774% git 6138 3.82483% ll 7125 3.46452% man 8116 3.21508% npm 979 2.18958% echo 1074 2.051% jq

Mizza 1 day ago 0 replies      
For OSX, the command is:

$ history | awk '{CMD[$5]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10

 1104 20.8% ls 272 14.4% cd 349 9.8% pip 425 5% a 521 4.2% j 619 3.8% z 719 3.8% vim 819 3.8% git 919 3.8% cat 1012 2.4% sba 1112 2.4% gs 138 1.6% ga 147 1.4% p 155 1% sof
`a` is an alias for ag, `j` is an alias for `autojump`, `sba` is an alias for `source env/bin/activate`. `gs` is git status, `ga` is git add, `p` is python, `sof` is soundscrape -of, `z` is zappa.

rajathagasthya 1 day ago 0 replies      

 11668 26.8426% git 2723 11.635% gst 3361 5.80946% vim 4355 5.71291% gd 5311 5.00483% clear 6280 4.50595% ls 7276 4.44158% gco 8222 3.57258% cd 9152 2.44609% ga 10147 2.36563% pip
gst, gd, gco and ga are aliases for git status, diff, checkout and add respectively.

ponyous 1 day ago 0 replies      

 12258 22.5823% git 2594 5.94059% npm 3539 5.39054% cd 4366 3.66037% ls 5360 3.60036% vim 6344 3.44034% cat 7316 3.16032% rm 8287 2.87029% mix 9255 2.55026% nr 10216 2.16022% X_IP=* 11213 2.13021% gst
* (Omitted) It's not a command but environment variable followed by a command. I could probably alias it, but it is pretty unique and so easy to find with ^R in zsh.

Edit:If anyone would like to have more granular view I wrote this oneliner sometime ago:

 history | cut -c8- | cut -d' ' -f1-2 | sort | uniq -c | sort -n
It gives result like:

 # ... All other entries from history 180 vim 207 npm install 212 gst 220 git pull 361 git commit 537 git checkout

TurboHaskal 1 day ago 0 replies      
This is in my macOS box. Pretty vanilla. I'm surprised `ls` didn't make it to the top10, probably due to auto-complete.

 11855 18.5519% git 2851 8.51085% cd 3493 4.93049% rm 4414 4.14041% brew 5376 3.76038% find 6373 3.73037% vi 7369 3.69037% docker 8338 3.38034% cat 9238 2.38024% vim 10237 2.37024% ag

stevekemp 1 day ago 0 replies      
I expected `ls`, and `cd` to be top, and they were:

 134393 18.2057% ls 229496 15.6135% cd 322794 12.0659% git 421305 11.2777% ssh 56181 3.27188% make 65183 2.74359% less 74616 2.44345% cat 84379 2.318% vi 93474 1.83894% rm 102892 1.53086% ping

Davidbrcz 1 day ago 0 replies      

 11150 11.5012% cd 2849 8.49085% git 3749 7.49075% gedit 4489 4.89049% ls 5471 4.71047% rm 6357 3.57036% sudo 7311 3.11031% ack 8279 2.79028% cat 9262 2.62026% find 10259 2.59026% emacs

borplk 1 day ago 0 replies      

 1905 9.05091% yarn 2852 8.52085% git 3658 6.58066% ls 4504 5.0405% sudo 5394 3.94039% node 6380 3.80038% cd 7332 3.32033% npm 8254 2.54025% rm 9191 1.91019% vagrant 10185 1.85019% nano

bob4uk 1 day ago 0 replies      

 11123 11.2311% mpv 2631 6.31063% sudo 3386 3.86039% cd 4265 2.65027% echo 5260 2.60026% cat 6215 2.15022% cowerd 7210 2.10021% pacs 8173 1.73017% tweet 9132 1.32013% cowers 10128 1.28013% pacman
some handy shell functions https://paste.xinu.at/ocnBw/

johncoltrane 1 day ago 0 replies      
My list:

 1565 14,3437% vim 2513 13,0236% cd 3468 11,8812% git 4280 7,1084% yarn 5147 3,73191% npm 6104 2,64026% gulp 795 2,41178% up 887 2,20868% rm 982 2,08175% docker 1079 2,00559% la
'up' is an alias for 'cd ..' and 'la' is an alias for 'ls -la'.

AlexAMEEE 1 day ago 0 replies      

 1796 18.3664% ls 2718 16.5667% cd 3373 8.60637% gradle 4342 7.89109% git 5231 5.32995% vim 6182 4.19935% cat 7130 2.99954% gulp 8124 2.8611% . 999 2.28426% psql 1094 2.1689% curl
"." == alias to "cd .."

johntdaly 1 day ago 0 replies      

 11751 17.5118% cd 21542 15.4215% git 31273 12.7313% ls 4501 5.0105% touch 5330 3.30033% ssh 6321 3.21032% mkdir 7244 2.44024% vagrant 8234 2.34023% cat 9187 1.87019% subl 10177 1.77018% openstack

tmnvix 1 day ago 1 reply      

 197 19.4% python 288 17.6% git 335 7% zappa 434 6.8% npm 528 5.6% ls 628 5.6% dig 728 5.6% cd 826 5.2% pip 918 3.6% cat 1015 3% fab

spcelzrd 1 day ago 0 replies      

 1206 41.2% git 257 11.4% ls 343 8.6% vim 440 8% cd 531 6.2% open 627 5.4% exit 713 2.6% grep 812 2.4% man 910 2% gforth 106 1.2% info

ezekg 1 day ago 1 reply      

 1194 38.8% git 288 17.6% curl 362 12.4% clear 445 9% npm 517 3.4% cd 610 2% rails 710 2% nvm 810 2% atom 98 1.6% ember 107 1.4% vi

richerlariviere 1 day ago 0 replies      

 155 11% cd 253 10,6% swift 349 9,8% ssh 445 9% ls 530 6% git 623 4,6% cf 719 3,8% vapor 819 3,8% say 917 3,4% sudo 1017 3,4% ngrok

AquiGorka 1 day ago 0 replies      
1 240 19.4647% git

2 138 11.1922% vim

3 121 9.81346% cd

4 94 7.62368% ls

5 50 4.05515% sF

6 43 3.48743% exit

7 40 3.24412% npm

8 35 2.83861% tmux

9 33 2.6764% node

10 32 2.5953% ..

sF is a function to search that formats output similar to sublime's text search

seanwasere 1 day ago 0 replies      

 1 21 43.75% sudo 2 8 16.6667% cd 3 5 10.4167% iptables 4 3 6.25% ufw 5 2 4.16667% zabbix_agentd 6 2 4.16667% ls 7 1 2.08333% top 8 1 2.08333% tcpdump 9 1 2.08333% mc 10 1 2.08333% ifconfig

Ask HN: Your favorite technical document writing application
5 points by MVorlm  1 day ago   4 comments top 4
jstewartmobile 1 day ago 0 replies      
I've heard good things about this: https://ia.net/writer/It does things Ted-Nelson-style with transclusions. It's android/iOS, so I won't touch it, but people say nice things.

Personally, I like GitHub flavored markdown and a text editor. There are programs in all of the popular languages to convert that to HTML.

We tried MS Word years ago. The zipped 2007+ format makes the git repository blow up, so we dropped it.

tetek 1 day ago 0 replies      
pages, free, clear, easy to build block/diagrams
git-pull 1 day ago 0 replies      
Documentation Utilities (aka Docutils): http://docutils.sourceforge.net/. Allows reStructuredText markup, programming of custom "roles" and "directives", HTML and PDF creation

Sphinx Doc: http://www.sphinx-doc.org/en/stable/. Builds on top of Docutils. Allows API documentation (http://www.sphinx-doc.org/en/stable/ext/autodoc.html) and cross-documentation linking via intersphinx (http://www.sphinx-doc.org/en/stable/ext/intersphinx.html). epub, PDF, and html output.

I've created mini technical manuals at previous workplaces using sphinx.

More clickables:

For graphs, grab aafig: https://pythonhosted.org/sphinxcontrib-aafig/ or graphviz http://www.sphinx-doc.org/en/stable/ext/graphviz.html

For enhanced python documentation (numpy and google style api docs) http://www.sphinx-doc.org/en/stable/ext/napoleon.html

For creating your own API docs outside of python use sphinx "domains" (http://www.sphinx-doc.org/en/stable/domains.html):

- HTTP: https://github.com/deceze/Sphinx-HTTP-domain

- .NET: https://github.com/rtfd/sphinxcontrib-dotnetdomain

- JS: http://www.sphinx-doc.org/en/stable/domains.html#the-javascr...

- C++: http://www.sphinx-doc.org/en/stable/domains.html#id2

- C: http://www.sphinx-doc.org/en/stable/domains.html#the-c-domai...

- Scala: https://pythonhosted.org/sphinxcontrib-scaladomain/

- golang: https://pypi.python.org/pypi/sphinxcontrib-golangdomain

leetintin 1 day ago 0 replies      
google keep :)
Tell HN: The State of JavaScript Survey 2017 is Out
3 points by dabber  1 day ago   1 comment top
Turkish GSM networks currently play a message of the President on any phone call
424 points by mrtksn  3 days ago   172 comments top 21
kbody 3 days ago 2 replies      
"As president, I send congratulations on the July 15 National Day of Democracy and Unity and wish the martyrs mercy and the heroes (of the defeat of the coup) health and wellbeing,"

Source: https://au.news.yahoo.com/world/a/36394050/mr-president-erdo...

throwaway76493 3 days ago 1 reply      
There is something equally insane happening on the Turkish internets right now.

At least two major mobile operators / ISPs are injecting JS into web traffic to display pop-up ads / Youtube videos on the lower right corner of every web page. The videos "commemorate" last year's events on July 15 in a language that is, to put it mildly, thorougly in line with Erdogan's ideology, and make a point of offering free data and phone credits throughout the 3-day commemorations being held.

rdtsc 3 days ago 2 replies      
For a additional level of scary allow people to opt out but record who they are and compile a list. Use the list to deny them services or imprison when the next overthrow is attempted."You've been protesting and we noticed you blocked messages from our glorious leader... clearly a candidate for the labor camp"
buremba 3 days ago 2 replies      
Even if you stop watching TV, reading newspapers and following the political people on social media and avoid discussing political news with people, you can't escape from him and his followers.

They will force you to believe what they believe and if you don't, they will flag you and also make you listen their leader no matter what you do to avoid their propaganda.

Even though I believe that the leaders of Gulenist group did the coup attempt and are terrorist, Erdogan gave this power to them and yet acts like he's not responsible from all these shit.

xepbam57 3 days ago 4 replies      
Have anybody thought why you hear the sound(beeeep-beeeeep-....) when you make a call and from where it comes? Yes, telco can put anything there. Even more, I wounder why we do not hear some commercial Ad's every time we call. This would be in a spirit of current times...
mmerlin 3 days ago 1 reply      
So so sad when a country devolves into quasi-dictatorship
toroslar 2 days ago 2 replies      
It's a lie like so much other stuff in the press. I'm currently in Turkey/Antalya, I've a cell-phone with a turkish Vodafone SIM card - I had several phone calls today - no president in my phone.
fouadmatin 3 days ago 3 replies      
The number in the video is 112, which is Turkish-equivalent of 911 in the U.S.
exabrial 3 days ago 6 replies      
Why are they a NATO country again
Fnoord 3 days ago 2 replies      
What exactly is he saying? Can someone translate?
noncoml 3 days ago 4 replies      
I wonder how would things have been if Turket had been accepted to EU 10 years ago. Would it have helped?
Lagged2Death 2 days ago 2 replies      
Dexter Palmer's 2016 novel Version Control had imagined something rather like this in a near-future United States, where phone calls and video screens would occasionally be interrupted by a message from the president.

I had thought it was inventive and evocative, but sort of unrealistic.

I was wrong. Yikes.

NicoJuicy 3 days ago 1 reply      
It's funny to see that Erdogan wants to battle every European country and at the same time he asks us to visit Turkey.

His power comes from the wealth and investments of Western companies, so the people had it good in the past. But this is currently changing. Its 'just' a waiting game.

zagfai 2 days ago 0 replies      
Use a VPN to stop this happened again.Such as Yoga VPN, Bestline VPN, Super VPN...
homero 3 days ago 0 replies      
When people voted, they were tricked into thinking somehow they were voting against the West instead of installing a dictator for themself
AdamJacobMuller 3 days ago 0 replies      
What does this say in English?
marcxm 3 days ago 1 reply      
OzzyB 3 days ago 3 replies      
appendixsuffix 3 days ago 1 reply      
powertower 3 days ago 1 reply      
Talbotson 3 days ago 1 reply      
This is 100% normal for these types of situations.
Tell HN: I want to teach you finance. In 30 mins. For free
27 points by swyx  3 days ago   29 comments top 18
akoster 2 hours ago 0 replies      
Thanks for posting and I'd love to take you up on your offer. Also likewise, I'm happy to share any knowlege I am familiar with. (just sent you a DM on twitter :-)
malux85 21 hours ago 1 reply      
I'd love to learn from you, we can jump on a Google Hangout together,

I run a Deep Learning startup, so if you want to know anything about this domain happy to chat


meric 1 day ago 0 replies      
I am working on a side project involving stocks and programmatically minimising capital gain taxes (e.g. using Australia's 50% CGT discount) and I'm happy to discuss it. I am not sure but I think UK's capital gains tax law have similar opportunities. I put my email in my profile.
SirLJ 2 days ago 1 reply      
How about a more detailed CV with exact positions and company names and contact information and a track record? Free financial advice is always a scary proposition to me, maybe because I work in security and my job makes me cynical and a little paranoid...
RUG3Y 1 day ago 0 replies      
I don't have the first clue about finance but I'm really interested in learning. I'm willing to share whatever I have to offer in return (it's not much -- but sometimes a new perspective can mean the world).


barbaricmelons 1 day ago 1 reply      
I'm an artist working directly on a team with software developers instead of being an actual developer, but if your offer is open I would love to talk investing since who knows how long I'll be lucky enough to have this gig.
warrenb 1 day ago 1 reply      
I think this would be brilliant! I have skills but finance is not one of them. A chance to get a bit of a grip on such an important field is a real opportunity!
niyikiza 10 hours ago 0 replies      
DMed you on Twitter.


r0brodz 1 day ago 1 reply      
I want to get out of poverty and I have skills but no network. brainacid9 At gmail .dot com
techthroway443 13 hours ago 1 reply      
Ramit is that you?
sakuraiben 3 days ago 1 reply      
I'd love to discuss finance with you - shuumai0318 at gmail.com
toomuchtodo 2 days ago 1 reply      
I'm a tech ops/security guy who would love to know how to love into investment banking/hedge funds.
roshan_arhsim 3 days ago 1 reply      
It would be awesome if you can make a video /course on a topic you think everyone should know. I would be happy to pay for it to learn more about taxes.
avisaven 3 days ago 0 replies      
I'd love to talk about cryptocurrencies/software engineering/cybersecurity if you're interested.avi . saven (at) gmail
sebst 2 days ago 0 replies      
Would love to chat. DM me on Twitter, please. @sebastiansteins
c0l0nelpanic 3 days ago 0 replies      
I'm a software engineer and would love to have an exchange of ideas. the.latoya.banks@gmail.com
payrainbow 2 days ago 1 reply      
I would love to learn more and have an exchange of ideas. amonxnye@gmail.com
spmarisa 23 hours ago 1 reply      
why don't you make a youtube video
Ask HN: Are UML diagrams still used today?
34 points by tzhenghao  3 days ago   23 comments top 15
kpil 3 days ago 1 reply      
I think that entity-relation diagrams are underused, especially when analysing requirements with stake holders.

Unfortunately a lot of otherwise capable people that could benefit from some simple structuring of things and their relations have never thought about the world in that way and may take a little while to catch up.

In some cases I have found it to be easier to represent one-to-many relations as a bunch of stacked boxes on the "many" side. But that only works once...

Sequence diagrams and state-charts helps from time to time, but does not really help much when talking to non-professionals.

But I don't really like the very formal UML. Some bubbles, arrows and crow's feet will do fine in most cases. The precision promised by UML is really a lie, as most diagrams are simplifications and can probably not represent the actual complexity in anything that warrants the use of UML...

Anyway, I think it might actually be a good idea to do some simple entity-relationship analysis in schools at some point, if not to just get another tool for sorting out the mess.

The underlying reason that led to OO-languages still exists, namely that a lot of things can be described rather nicely with entity-relation maps. It's just unfortunate that the "relation" part was forgotten, and all energy was spent on wrestling various languages into bizarre "OO" hacks such as C++.

arca_vorago 3 days ago 0 replies      
In the sysadmin world yes but not nearly enough. UML along with similar ones like blockdiag and nwdiag interface nicely with my documentation systems in orgmode and asciidoc.

One of my side projects is an automated nwdiag mapping system with diff's to be able to help sysadmins coming in blind to orgs (happens way more than you'd think, usually a 5 yr old visio file somewhere).

Anyway, in the future I see uml style things as useful for similar automation projects, due to the simple text nature.

Also, I live in a terminal most of the time so personally prefer stuff like nwdiag over say visio or some of the alternatives.

I also used to make repair flowcharts with seqdiag for my t1 and 2s.

jjgomez 1 day ago 0 replies      
They are, but perhaps agile methods who diminish the importance of documenting have played against it. We will see what price we have to pay for this.

In my experience, people don't like to document, developers even more, and managers probably don't like to read documents, either. However, if people leave your company (something highly probable), how are you expected to train the new people?

If you are working in a startup, that's not major problem: the startup may just die and you can have fun programming in the meantime. However, if there is company that intends to last more than a few years, ways of documenting your system are needed.

IMHO, not using UML, or any other language, to think about our systems or even tell others how they work is a complete mistake. It is not only for telling others (colleagues and future workers) what the system does and why it does it that way, it is also to save effort and realize sooner that it will not work.

So, whatever the case, training in how to explain your system to others is required. Call it UML or whatever. And, since UML is there, it may be worth to use it. It is not just the invention of a couple of mad engineers. You are free to use UML as you like. And do not need to use a huge tool. Text UML is a nice and refreshing way of looking at UML which I strongly recommend. Have a look at http://planttext.com, for instance.

EliRivers 3 days ago 0 replies      
UML diagrams. I sometimes use sequence diagrams, but almost certainly with all the wrong symbols and so on. They're just parallel timelines showing communication between conceptual objects.

Otherwise, all I've ever seen anyone do is take their actual design diagrams and laboriously turn them into UML diagrams of some kind for a document. The recipient then took the UML diagrams from that and made their own new sketches from that, turning them into something they could easily read and understand and that generally looked very similar to the original diagram that was laboriously translated into UML.

My conclusion is that a UML diagram is better than nothing, but not as good as a well-written and well-explained design. I suspect UML diagrams are meant to be part of a well written, well-explained design, but for any given design there seems to be a better way to draw it than UML diagrams.

7ewis 3 days ago 1 reply      
I'm doing a degree part-time, online, and that's the only time I've ever used UML.

I work at a kind of graduated tech start up, so we're doing most things the modern way. I've never even heard anyone mention UML.

BjoernKW 3 days ago 0 replies      
A few months ago I wrote this https://news.ycombinator.com/item?id=12879493 and I think that's still valid.

Simplified UML class diagrams (i.e. boxes and arrows) are expedient for explaining specific aspects of a design. Complex class diagrams trying to give an all-encompassing picture of an application: Not so much.

Sequence and activity diagrams can be quite useful for clarifying application state, too.

based2 3 days ago 1 reply      
Yes (ex: with plantUML for a just quick DSL draws) and you can use Archimate too. (http://www.archimatetool.com)

Are you using RUP? https://en.wikipedia.org/wiki/Rational_Unified_Process

palidanx 3 days ago 0 replies      
For software projects with new clients, I use cacoo.com and create simple domain and sequence diagrams to capture more complex workflows. I usually don't tell them it is UML and say these diagrams help better express workflows.
seanwilson 3 days ago 1 reply      
I've not seen anyone use any UML for years to be honest except for class diagrams or something similar to give a high level architecture overview or to explain how major components interact.
beders 3 days ago 1 reply      
I just call all my diagrams "boxes with arrows" nowadays ;)
kbody 3 days ago 0 replies      
In the past 2 jobs even though it was just small startups with less than 5 devs, we used them in relatively critical or complex cases, but it wasn't anything formal (e.g. for every major component introduced do this).

I personally like them, maybe because I like thinking of the big picture no matter the task, plus we had extensive practice on uni.

racktash 3 days ago 0 replies      
Where I work, we use it extensively for analysing problems and designing code. It's invaluable for communicating and collaborating on designs.
softmodeling 3 days ago 1 reply      
More than we tend to think. Less than I'd like.

But the key to benefiting from UML is to first decide what subset of the whole language you need and focus only on that. Very few companies will find a use for the 13 types of UML diagrams.

Jugurtha 2 days ago 0 replies      
Just for memo (for me or someone else):

For Python code, one can use pyreverse to generate UML representation.

edimaudo 2 days ago 0 replies      
Of course! Great design starts with UML.
Ask HN: Good stack for a billing and invoicing application?
40 points by tmbsundar  2 days ago   28 comments top 19
uiri 2 days ago 0 replies      
I would say, eschew any fancy front end framework. Build an HTML form. They're tab-able by default. You can even tab to a button and hit enter to press it from the keyboard.

Separate out the UI and business logic, and you can probably port most of it to a backend MVC (where view means a template, meaning HTML) framework in VisualBasic. Once it is cleaned up, you can do a feature-by-feature rewrite in your backend language of choice (I'd likely recommend Django if you can go Python, but SparkJava might be more prudent for the kind of big freaking Enterprise that chooses to do stuff in VB).

Edit: after seeing https://news.ycombinator.com/item?id=14787139 I agree that you'll probably need handsontable or something like it. Simplicity is your friend; overengineering is unfortunately a common tendency among developers of all stripes, although the web kind especially.

wheelerwj 2 days ago 1 reply      
Have to ask, why are you building this in house? Most accounting packages (quicken/quickbooks/sage) have this built in already and your accounting/bookkeeping people would already be familiar with it.

Or, if you're a smaller shop, maybe something like stripe? Or even a Google Doc/Excel. They have a bunch of easy to use templates these days.

If you really have/want to build it, this architecture is simple enough that i don't think its really stack dependent. MEAN would handle front end and a diverse invoice structure; Django/Postgress have some great admin-form features and handle multi-table queries gracefully; and .NET with windows forms would make short work of a desktop UI. Just go with what you know and focus on speed.

meredydd 2 days ago 1 reply      
So, the first question to ask is: "Do I need the full-fat web development stack?"

If this is a hobby project, and the goal is to learn all five languages and 3-4 frameworks needed to create a traditional JS+API+DB web app, then go to town! Everything you want to do (eg keyboard-driven layout) is possible on the modern Web; you'll just need to read a lot of documentation. (And you will have quite a valuable skill-set at the end of it).

But if you just want to get something done (and especially if you're used to the ease of VB), be warned that the web is a exhausting many-tentacled pile of technologies. You might want to look at a simpler approach. I'm biased - I'm cofounder of a tool that aims to bring the VB experience to web apps (visual UI design, everything in one language [Python] etc - check it out at https://anvil.works). If you don't want to tangle with the web, something like Anvil, or building a native desktop application, are still possible routes.

cyberferret 2 days ago 1 reply      
I wouldn't dismiss most js frameworks because the buttons seem to be mouse driven. With simple jQuery, or even plain javascript, you can 'attach' hotkeys to those buttons.

For example, our HR app (which is built on Bootstrap + jQuery) has a button for 'Add Employee' on the main employee list, but we have also linked the '+' hotkey to that button so the user does not have to revert to the mouse to add the next employee when doing batch entry.

Within that, there are plenty of grid style entry plugins (mentioned elsewhere in this thread) that you can add on to do things like the invoice screen etc.

But be aware - study the depth of some of these plugins. Invoice entry screens are fraught with all sorts of things like real time validation (e.g. will you allow a user to specify a quantity of an item greater than what is in stock? Can you calculate tax amounts on the fly line by line? Can the user change the pricing of the item on the fly and are there rules that have to be adhered to in order to prevent fraud) etc.

Yes, I've developed invoicing type apps many times before. It certainly has some 'gotchas' that can trip you up, and the UI is certainly a lot more complex that it first appears as you have to adhere to strict accounting principles in the back end.

notoverthere 2 days ago 0 replies      
If you're interested in building it as a web app but want a keyboard-accessible grid / spreadsheet-like interface, then you have a few options.

The first resource I'd recommend is JSpreadsheets, which is a list of open-source JavaScript spreadsheet & data grid libraries. https://jspreadsheets.com

One of the most fully-featured JS libraries is Handsontable. It looks very flexible. They have some demos on their website to play with: https://handsontable.com/examples.html?headers

(Bonus: If you're using react, there's already a react component for using Handsontable: https://github.com/handsontable/react-handsontable )

kowdermeister 2 days ago 0 replies      
> None of the web style solutions seem to be suitable for a keyboard based (tabbing style) grid to represent an itemized billing.

I suggest you to build your own keyboard listener extension, frontend frameworks are don't really have built in support for this since it's too specific. You can very easily listen to all keyboard events with vanilla JS and trigger actions accordingly.

Take a look at Angular 4, it has all the event handlers you need in the templates/view modules. https://coursetro.com/posts/code/59/Angular-4-Event-Binding

Angular is more like a full feature framework with some enterprise feel to it.

If you want a modular system with craftmanship level attention to detail (you can build your stack how you like it), then try React or Vue.js.

johncomposed 1 day ago 0 replies      
Fwiw, I built a very-very similar application recently using Angular (1.5) and it wasn't a great experience.

I originally used Angular because of all the enterprise components available (like JSON-Schema form elements and custom tables) but pretty much all of them ended up having some behavior that wasn't quite what we needed. Which resulted in tons of wasted time writing code around them, then forking and modifying them, then eventually just scrapping them and rewriting the parts of the app that used them. So I'd personally recommend not going with existing large table/form components. I also found myself working around some of the "Angular way" of doing things as the number of inputs and calculated outputs got larger, with most of the time savers up front (two way binding, etc) requiring major refactoring to get decent performance.

If I was doing it again I'd probably use react/redux/redux-thunk, just for more control over how the application's structured and how I'm connecting the inputs to the business logic.

Like, I recently found https://nadbm.github.io/react-datasheet/ and was pleasantly surprised how small and reasonable the codebase looked. Though I'd still just use it as a start/inspiration for your own custom table components instead of actually pulling it in as a dependency. And they give an example where they're constantly reloading the whole state of the table on change (I think intentionally just to keep the demo simple), but there's definitely better ways to deal with mass input. Just my 2 cents, good luck!

Edit: I originally recommended checking out redux-inputs for mass input, but it has an open issue* that was exactly the kind of thing I ran into with the form/table libraries that started the vicious cycle - I guess the moral is at least when you write your own way of doing this kind of thing you get to choose your battles.

* https://github.com/zillow/redux-inputs/issues/14

jasim 2 days ago 0 replies      
Check out ERPNext (http://erpnext.com/). It is a modern open-source ERP solution built in Python, has commercial support and an active community.

There is also Eto (https://github.com/picoe/Eto), a cross-platform C# GUI toolkit on which the excellent Manager accounting software (http://www.manager.io/) is built.

martijn_himself 2 days ago 2 replies      
Would you consider migration to a (C#) .NET based solution with either a web-based or WPF / UWP front-end? I can't imagine keyboard shortcuts being an issue with either one of these choices.
pc86 1 day ago 1 reply      
If it's already in Visual Basic the default for "modern stack" would be a C# API back end and whatever JS front end you want. This would also be crazy easy to host online if that's what you wanted to do.

This has to benefit of being able to use the exact same database and update the schema over time with your API, completely independent of the front end.

You don't specify whether your app is currently desktop or web based. Hitting the enter key has been the standard way to submit HTML forms since the very early days of the internet. Why would you need a special library to support that?

Since you're asking about C/Qt I'm assuming the current app is desktop based? Having just completed a client project migrating a large desktop-based application to the web (C# API, Angular front-end), work flows are going to have to change to at least some degree. It is very rare to be able to cleanly, easily port 100% of the desktop experience to the web. If that's a deal breaker, make sure it's not worth it to stick with the desktop. You can still separate your concerns and provide a modern experience.

holydude 1 day ago 0 replies      
I would stay away from JS fancy stuff. Stick to the proven Java/C#/RoR stack.
tim333 1 day ago 0 replies      
Sounds like you can use all sorts of different tech but web2py might be easy - the default forms are tabable, it's quite quick, easy, relatively secure and doesn't need updating all the time. Against it's not so modern and makes it hard to do stuff like chat messaging.
rwieruch 2 days ago 0 replies      
If you like to try React, checkout the open source book The Road to learn React [0]. Not sure what kind of payment gateway you are using, but after your first application is up and running, you could add Stripe to it [1][2].

- [0] https://www.robinwieruch.de/the-road-to-learn-react/

- [1] https://www.robinwieruch.de/react-express-stripe-payment/

- [2] https://stripe.com/

ojhughes 1 day ago 0 replies      
Personally, I would choose Spring Boot + Angular 4 for a project like this. Lots of functionality automatically configured "out of the box" (DB access, security, JSON object mapping) and a rich set of UI components available with Angular such as Prime-NG (https://www.primefaces.org/primeng/#/)
lostboys67 2 days ago 0 replies      
As I spent years working on billing for a world leading telcoms company I have to ask

What do you mean by "billing application" your q implies you want to input transactions into some accounting (presumably double entry) system?

Does not your Accounts receivable have a web frontend or an API? do you really need to build your own accounts receivable / invoicing system

8ig8 1 day ago 0 replies      
Instead of writing your own invoicing application, what about writing a custom front end to an existing web-based app (using existing API)?

That way you can focus on the specific UI you need and not mess with recreating everything else. Your UI doesn't need to be browser-based.

Tade0 2 days ago 0 replies      
I don't have a specific solution for you, but you can narrow down your search by taking into account whether something(be it a framework or component of a framework) is focused on accessibility.
maxxxxx 2 days ago 0 replies      
Maybe libraries like Developer Express would work for you. They have pretty sophisticated grids and other UI controls that are close to a desktop look and feel.
paraplegic 1 day ago 0 replies      
       cached 19 July 2017 12:05:02 GMT