HN user

chadcf

166 karma
Posts0
Comments62
View on HN
No posts found.

I switched from Linode to Digital Ocean a few weeks ago. It's mostly for personal sites and hobby projects, so cheaper is better and $20 vs $5 is a no brainer.

I've not had any issues, their support is great, performance has been great, no complaints. But obviously I'm not using it for anything critical...

The last time I tried to install it, it was a nightmare. This was a few years ago before they put helpful explanations of what different versions mean, so the first time I picked the wrong one. After installing it and realizing that I tried to get the right version but it wouldn't install. Some issue with the other version being installed, so I uninstalled the other version.

Only then I discovered you can't actually uninstall SQL Server. I mean, you can tell it to uninstall, it'll go through the motions and look like it uninstalled, but it won't actually uninstall. And you can't install another version until you uninstall the other version, which doesn't actually uninstall.

I think at this point I either had to go in and manually kill processes and delete files and registry entries, or I just reinstalled windows on my VM, I don't remember. I do remember it being a nightmare and once I got it working I vowed to never reformat or update again.

I really liked slack but in the end we went for hipchat for a two main reasons.

1. It's 25% of the cost (although that has now shifted). This may not be a big deal for small teams but if you want to have 100 users on either service, the difference is between $2,400 a year or $9,600 a year. That's a big difference. 2. Hipchat has a self hosted option in the works which should be available within a month or two (per them). This is essential for any company that deals with potential PHI on their IM systems. Slack says they plan to offer a self hosted option but it's a long way out.

Those are two things slack just couldn't overcome, beyond the fact that I generally liked slack better (it's prettier, much better message searching, better integrations, etc). The fact that hipchat also has voice chat is a big plus too though we've not found it reliable. Presumably at some point it will get better though and make it a more valuable feature.

Planet money also did a podcast on this and went into a bit of how the ACH system works (not from a development point of view). It's a very strange system and honestly the episode raised more questions than it answered but it seems there is a lot of secrecy behind how it all works. Also why it all works... The fact that it can take 3-5 business days to transfer money electronically between different banks in the same country is difficult to grasp, but they make an effort to explain why...

http://www.npr.org/blogs/money/2013/10/04/229224964/episode-...

Why would I ever want to start a million dollar business if I knew the majority of my earnings would be taken from me by the government to support people that didn't need to do anything??

Why do people start million dollar businesses now when they can work at McDonald's or work at a call center or or teach schools or be a policeman or or or...

It's almost like some people are naturally motivated to do certain things for reasons beyond just the desire to have food and a roof over their heads.

I don't understand why people think if you offer everyone, say, $20k a year to do nothing that nobody would ever want to work to achieve more, earn more, improve people's lives, etc. Sure some people would (especially people who currently live on minimum wage). But many would not be satisfied with such a minimal existence. And with nobody having to worry about surviving without a job, it also frees up many people to explore ideas they otherwise would never have had time for.

You guys need a little love on your page :) I've not heard of it before so I google it and get to what appears to be the home page, and am presented with a login box with zero info about what it is, or why I would want to register or log in in the first place. Plus 3 of the links in the header aren't linked to anything. Not the best first impression!

This is a big problem in the industry, in order to really be seen as a good candidate you have to make your work a second part time job so you have something to show off publicly. If you work for a private company with private software, you could still be really good but looking at your github profile, many will dismiss you right away.

Of course the flip side is, you can probably get by with minimal outside work. Do some code katas, have an up to date best practices simple app in github, etc. I think as long as you have something in github that looks good it will do the job, even if you're not working extra hours daily on open source projects.

Which makes me question Uncle Bobisms, because it reeks of lack of practical experience.

The thing people need to realize is that these two come from very very different worlds. Sure, Uncle Bob may pale in experience compared to DHH when it comes to agile rapid development of simple opinionated SaaS apps, however he has a world of experience in handling large enterprise application development.

I think this leads to their different take on the issue here, because how software is developed in these two different environments is very different. Which is why I tend to think what DHH advocates works very well for what DHH does, and what Uncle Bob advocates works very well fro what Uncle Bob does.

The lack of understanding that different people, projects, languages, frameworks, companies, etc may require different strategies, tools and techniques is what frustrates me about this whole argument more than anything. I suspect most of us developers lie in the middle ground between this extremes and rather than focusing on which method we should 100% follow, it is perhaps best to pick and choose things from each position that we find helpful to our own practice.

It honestly seems like it's more prominent in the ruby community, and I'm not entirely sure why. Part of it may be that ruby is so expressive and nice to work in that it ignites people passions, which can be good or bad... I can say, however, that years back when I was trying to get into ruby from PHP, people like this gave me a very negative view of the ruby 'community' and were the biggest obstacle I had to embracing ruby.

I'm not saying TDD is the only way to write code, I'm saying TDD is the only way to make sure that you will have minimal automated testing.

We'll have to disagree there. It's a fine way. There is rarely just one true way however.

About your condescending remarks about delivering business value, I'd like to see you delivering business value while working with 10 other people on a tightly coupled 100k+ LOC application with no tests.

I, sadly, do this every day. It sucks.

I might take you seriously when you say that the craft and process don't matter.

I never said they don't matter.

I'm advocating not taking a black and white view of things, which you seem to be doing. There are more options out there than 100% TDD 100% of the time or skipping testing completely...

I think fanatic and zealot is the key word.

I'm more of a pragmatist. I think one size fits all is a bad strategy, and different projects have different needs.

There is nothing I hate more than working with people who passionately believe that there is only one true way to do something (like testing) and believe the process and 'craft' is more important than other factors like, say, delivering business value.

There is a lot between your extremes of TDD and no tests at all. And when I hear a developer say some methodology is the ONLY WAY I find it's best to run, not walk.

Not that I agree with him, but if your project can get away with a local sqlite database for testing (that is, no stored procs or database specific queries) and you make sure you don't create when build will suffice, you can have models tested with a database and still be reasonably fast.

There's a plan here in Oregon to try and work up a viable system to do this. The idea is called "Pay it Forward" and you would essentially pay a 3% tax for 20 years after you graduate. I'm not entirely sure it will ever come to pass, but it's not a terrible idea IMO. It may not save money, but it does mean you get an automatic income based repayment plan, you can never be in default and you get an automatic deferral when unemployed.

That said, it doesn't really do anything to fix the problem of skyrocketing education costs which is less than idea...

I've always done this naturally, some days I read a blurb about some technology I used to use and realize, huh, I used to do that all the time but haven't touched it in years.

I think one of the key things is to have a passion for learning. I've always been bored doing the same thing over and over. Learning new technologies, design patterns, architectures, skills, etc is what interest me. That also, coincidentally, is what keeps me up to date and productive.

I don't think this life is for everyone though. One thing people often don't consider when going freelance is that your job shifts. Instead of just being a developer, you are now a developer, marketer, business owner, accountant, project manager, office manager and more.

Some people don't mind that, or even enjoy it. For others, having to deal with all the tasks that go along with running a business, in addition to being the sole developer, can make life much less enjoyable. Especially if you're not fairly well set financially and would have a hard time enduring lean periods.

Not to say it's bad, it's certainly rewarding to run your own business and you gain a lot of freedom. But it's a tradeoff, and one that might not suit everyone.

As we get older I suspect the demographics of our profession will change along with us, and there will be more older people in roles we stereotype as being for younger people. At least that's what I keep telling myself!

That's my hope too. At 36, I still enjoy what I do and have zero desire to move into management or run my own consulting business (I like the security of steady pay). While software is considered a young man's game, my hope is that this is mostly because historically it's a young industry and that I'll age along with it.

I've been doing this 15 years and am better than I've ever been. The key is to keep on growing and learning. I naturally love learning new things so that keeps me relevant and productive, and I hope to continue doing it the rest of my life. Or at the very least another 20 years (I'm 36) so I can pad my retirement savings before moving to a freelance / consultant lifestyle).

Also, call me crazy, but I don't really care about continuing to climb the pay scale or company charts. I make enough now and like what I do. More money is great, but my overwhelming focus is on keeping a rewarding career going and not continually earning more and more.

Really depends on what your app is doing and how critical it is to a business. For a complex application that has been in production for years, whose original developers weren't very talented and now are long gone, and your business relies heavily on customer satisfaction and bugs can cause lost customers and thus revenue as well as potentially exposing protected data, tests are absolutely critical.

On the other hand, a hobby project used by a few people or internally at your company where bugs can be discovered in use and aren't usually a big deal, eh.

And of course, there are a lot of levels between the two extremes...

One thing to consider here though is that often times when you realize splitting up a function will make it easier to test, it's because your implementation sucks and is doing too much and too tightly coupled. I mean realistically how would splitting up a function make testing it easier unless the function is already complex and performing multiple tasks?

You can certainly argue that some of the clean code folks do a lot of needless abstraction that makes it harder to work on code, and I think that's true at times. But at the same time, a 200 line method doing 19 different things is also quite hard to understand and modify, and the reason testers want to split that method up is because it's really hard to understand and has too many possible outcomes.

I don't like to overly abstract things and I try to strike a balance here, but I can say without a doubt that I've never found it harder to understand and work on a single class with 20 methods that each do one thing (with descriptive method names) than I have a method with 200 lines of code doing the same 20 things. And the former is much easier to test as well.

One of the things that appeals to me about angular is that you can compose your application of smaller angular apps. I think what you're talking about (and the original article) mostly are about single page javascript apps rather than angular specifically. One perk of angular is that you can use it almost exactly like knockout, as a way to get nice two way data binding, without having to go full on SPA. Unlike knockout, it also gives you a nicer enforced structure for your mini apps.

That said, I still go knockout for this sort of thing most of the time because their support for legacy browsers wins out, and in the industries I do work for old versions of IE are sadly common.

Sidekiq's retry and robust handling of jobs (at least with reliable queuing in pro) was the big win indeed. I had a app I tried switching over to it though and it did not go well. In my case I'm running background jobs that take 4-5 minutes to complete and are pretty cpu intensive, and I suspect because sidekiq is threaded it's only using one CPU core and completely thrashing the machine. I can run about twice as many workers with resque as I can with sidekiq, so I had to switch back. Sadly now I've lost the reliable queuing and automatic retries (the latter at least is not too hard to implement in an ensure block).

I do wonder how this one would work out though, will have to give it a try at some point.

Download the desktop version. The mobile one is not a full fledged app, it's mostly a convenience to record transactions and check budget amounts on the go. 99% of the time I use the desktop app.

In that sense, yes, YNAB can be used for future planning of expenses. But I think the thing they were referring to is that YNAB is not really meant for 'forecasting' your money. Though you could do it, they discourage it and it's meant to be about allocating only the money you have now. In other words, you don't budget something until you actually have the money for it.

So the difference is with YNAB you would indeed budget $1667 when you get your paycheck, but you wouldn't carry that out 12 months in the future and plan your income/expenses to determine how much money you'll have at that point.

The ones that require me to input the data are just too much work.

I've been using YNAB (You Need A Budget) for a few months, and it makes you input everything. I initially resisted and thought the same thing as you. However I forced myself to try it because so many people recommended it so highly.

It is at it's core a glorified spreadsheet, but it's a very well designed spreadsheet with great support and a solid budgeting methodology behind it. Entering transactions manually has not been that painful, and the big benefit of doing this is that you are actively participating with your budget. WIth mint you spend money and then see how it fits into your budget. With YNAB you give that dollar a job as soon as you get it, and you manually input it when you spend it. It really keeps you aware of your budget and where you are in it and in my experience makes it much easier to stick to it.

I found every time I tried to use Mint to budget (privacy issues aside) it never worked out because it was a very passive thing. Set up some categories. Spend money. Wait for email to tell me I'm over budget, oops.

YNAB is very active so it keeps you honest. And unlike mint, YNAB is designed to be a fluid budget. You can and are encouraged to adjust budget amounts and categories on the fly as life happens, which is something painful to do in mint or other apps.

It is a bit of a pain to have to manually handle transactions (though you can import CSV) but I find the benefits of doing that outweighs the hassle.

I used it for exactly one production app and it was a huge success. The reason I used it was because the data we needed to represent was actually a document, in this case a representation of fillable form fields in a pdf document. The basic structure was that documents had sections and sections had fields and fields had values, types, formatters, options, etc.

Initially trying to come up with a schema in SQL was somewhat painful as what I was really looking for was an object store. Switching to mongo gave me a way to do a very clean, simple solution that worked quite well for the problem at hand (representing pdf forms). That said, we also played it very safe and used mongo for only the document portion, with every other part of the system being in an sql database. But for the doucuments mongo worked really well as a basic object store without the complexity of something like Neo4j.

Square Cash 13 years ago

Is that actually widely available? They announced it a long time ago but it has yet to ever show up in my gmail.

This can get a little tricky though... I have two bank accounts, one which is my monthly spending and one which is my emergency fund. Because of this I transfer surplus money out of my monthly spending account so that what I have in there is just my budget, forcing me to stick to it. Unfortunately sometimes this causes me to overdraft because of a payment I forgot about (a few months ago it was eBay seller fees, first time in a year I sold something on eBay) or because some credit transactions won't show up for a day or two.

Of course this is still easy to solve by monitoring your account and knowing where you stand plus keeping a buffer. Since I like to keep my main spending account set with just my monthly budget I get around it by having a small overdraft line of credit. The 8% interest on that is a lot cheaper than the $40 overdraft fee and usually if I use it it's only because I'm over by a few dollars.