HNHacker News
TopNewBestAskShowJobs

KenCochrane

1,437 karma · joined March 4, 2011

Software Developer living in Southern Maine

For more info, checkout the following links:

Blog : http://KenCochrane.com

Github : http://github.com/kencochrane

Linkedin: http://www.linkedin.com/in/kencochrane

Stack overflow: http://stackoverflow.com/users/356788/

submissionscomments
KenCochrane··on Your Technology Sucks
Reading this blog post feels like it was written about me, the only difference is that I have two kids and my wife buys tons of shoes instead of clothes but I guess shoes are a form of clothes :)

When I was in college I used to build computers for friends and family to make some money on the side (ala michael dell) and offered free tech support along with those computers. Well it wasn't always free, my grandmother always insisted on paying something so I charged her a dozen cookies that she would mail to me in college and I would share them with my friends.

Anyway, I quickly learned that the free support was killing me, and I didn't have much time to support this stuff in college, so I started recommending that people buy dell computers, because back then, they had the best customer support and there products were pretty good.

It didn't take long before Dell shipped their customer support folks over seas and people started coming back to me for support. By that time I was out of school, and I didn't mind helping out my friends and family. Soon enough I got married and had a couple of kids.

Once that happened I stopped having all this wonderful free time I used to have in my youth, and as the guy in the blog post mentions, I had better things to do with my time, and I ended up buying my first mac, after a couple of my friends talked about how much they loved developing on it.

When I first got my mac, I was surprised how great it was for developing software. I mostly develop with open source software, so having the shell there with all the wonderful goodness made it great to get up and running quickly. This compared to all the hacks and work arounds you needed to do on windows (cygwin anyone?).

After using the mac for a little while and then having to go support the friends and family with windows, was really hard, because stuff that just worked on a mac, was a PITA on windows. I started recommending mac's to my relatives and a wonderful thing happened. My aunt who used to call me once a week stopped calling me. I hadn't noticed that she didn't call for a while until I saw her at a family event and I asked how she liked her new computer. She was so happy, she said it took a little bit of getting used to, but she should have done it years ago. The crazy printer and scanner that she always had problems with in the past, just worked when she plugged it in, no configurations, no printer drivers nothing to install, it just worked. In the past few years I think she has only called me once, and that was because she wanted to know what model macbook she should by her daughter for college.

The other great thing about apple, is that there is an apple store at the local mall, and my relatives can go in there and get their questions answered in person, and take classes. Best of all the phone support for apple is bar none, if you haven't used it before, which some people haven't because the apple products are pretty reliable, then you are missing out. There is rarely a long wait on hold, and the phone call is really clear and quiet, they aren't sending you to a big call center where everyone is in the same warehouse using cheap voip phones. If they are, they are using great headsets with noise reducing microphones :)

I have a couple of friends that have switched as well, and one of them is a big time windows fan and gamer, and said he would never switch because mac's aren't good enough to play video games. He has a machine he built just for games, and it is true that mac's don't have all the same games, but he says that the games that they do have on Mac run better on the mac, and he thinks it is because the underlying OS is much better on a mac so the games are more stable.

My brother in law, who for some reason always hated apple, has recently bought an iPad and replaced his huge android phone with an iPhone. He said he always avoided the apple products because he didn't want to be called a fan boy, but when he actually sat down and used one, he was surprised how good they were compared to what he had been using. He just needed to give it a chance.

Some people complain about the price difference, and now a days the price isn't as big a difference as the past. But, I use the following argument when people bring up the price difference. Kia's and BMW's, are both cars, the BMW is more expensive, but it has more features, and is more fun to drive. You don't need the BMW but if you can afford it, you won't be disappointed you bought one. If the world bought everything according to price, then everyone would be driving Kia's. Life it short, spend your time on earth enjoying the products you own.

So for me, the apple products just work, and they are a major time saver, both with my software development and for dealing with support. If these same products were made by different companies I would still buy them, it has nothing to do with the fact that they are made by apple.

KenCochrane··on Why isn't Java used for modern web application development?
You deployed jars for web applications?

War files are not JavaEE, you might be thinking of EAR files.

A war file is just a jar file with a different name and manifest, and expects a few things, WEB-INF directory with a web.xml and that is about it.

More info can be found here: http://en.wikipedia.org/wiki/WAR_file_format_(Sun)

KenCochrane··on Why isn't Java used for modern web application development?
For what it is worth, I have used Java 7, JPA (with hibernate), tomcat 7 and glassfish, and I didn't notice much difference. Jersey (JAX-RS) is pretty nice, one of the better libraries to come out of Java in a while.

I do agree that Java is moving in the right direction, but it is a very slow progression. I think the major cause of the slowness is because of the fact that SUN was bought by Oracle, and it took a little while for that to settle down, and now things are slowly moving forward again.

One of the things that Java did right was their WAR files. It is the envy of most other programming languages. You compile your WAR file, and deploy anywhere assuming it is a compliant servlet container. I wish Python had something like this.

You are right the popularity of PaaS's like dotCloud make it much easier to deploy and run your application. On dotCloud you just need to push up your WAR file, and you are running, by far the easiest of all the languages to deploy.

I really like Java as a language, I just think it has a long way to go on the web application front, before it can catch up to the features and speed of development of the other languages.

KenCochrane··on Why isn't Java used for modern web application development?
I programmed java web apps for 10 years before I switched to python, 4+ years ago. I feel that I'm much more productive using python and can get much more done in a shorter period of time, and to be honest, I'm much happier when I develop in python. Here are some of the reasons why I think python is better then Java based on my personal experience, your milage may very.

Web Frameworks:

When I first start programming web apps in Java, Struts just came out, and it wasn't great, but it was the best thing available. I created a bunch of struts apps, and a few in other frameworks along the way. Whenever a new framework came out (Tapestry, Wicket, GWT, stripe, grails, AppFuse, Play, RichFaces, Spring, etc), I would try it out and see if it was any better, and most times it was only a little better, and sometimes not better at all. I do have to say the play framework is a step in the right direction.

Batteries not included:

One of the most annoying parts of Java was the fact that most of the libraries that you use were not included in java itself, you had to include a ton of 3rd party libs from places like apache commons. If you use something like hibernate with any other large library, you end up in Jar dependency hell, where hibernate needs one version of a jar, and something else needs another version. If you load the jar files in the wrong order, you are out of luck. You need to depend on tools like maven, and ivy to manage your dependencies, and this just brings in more dependencies into your project which results in projects being huge. I had some war files 100MB+ war files for the simplest web apps.

Too many options:

For some reason there seems to be way too many different ways to do the same thing in Java. There are over 38 different web frameworks for java according to wikipedia (http://en.wikipedia.org/wiki/Comparison_of_web_application_f...) and 23 different ORM's (http://en.wikipedia.org/wiki/List_of_object-relational_mappi...) just to name a couple of examples. If you look at other languages they have a more reasonable number. Some people think that having lots of options is a good thing, but it isn't it leads to a lot of wasted effort in the developer community, everyone is reinventing the same wheel, and if you are a new person to the language you have too many option to pick from.

App servers:

Java web applications are really heavy, and require a lot of resources to run. They are especially memory hungry. Like any piece of software they can be tuned to reduce their resource footprint, but compared to other languages their out of the box setup is horrible. In my past I have used weblogic, websphere, Jboss, tomcat, and jetty. I only used the first three when I was forced to use EJB's, but even if you aren't using EJB's they were large app servers and sometimes hard to configure and get running correctly. Tomcat and Jetty are much better and easier to setup, but are still resource hogs.

App Hosting:

If you aren't running your own server it is real hard to find shared hosting for your java apps at a reasonable price. The main reason is because java apps require much more memory compared to other languages, so it doesn't make sense for a shared hosting provider to spend their valuable RAM running a java site, when they could run 5 php sites in the same place. That means there are less providers offering java hosting, which in turn means higher costs to run your website.

Development Time:

When I developing in java, I found myself much slower then what I can do in python. I would need to make a change, compile, redeploy and then test, and this slows down the iterative process. I know there are ways to make this faster, but even at it's best, I felt much slower then what I can do in python.

There is also a lot less boilerplate code to do the same thing in python, so I spend less time developing the code as well.

Java just feels over engineered in a lot of parts, A lot of the API's and interfaces are just way to complicated for what you want to do. And everyone and their brother thinks they are a java architect and this results in big complicated systems that are hard to use and develop with.

IDE:

When I was developing in Java, I felt stuck to the IDE, I was lost without it. IntelliJ is the best IDE's on the market, and it was hard switching to python because there wasn't anything like it for python. So instead of an IDE, I just used textmate, which is just a normal text editor. It was hard at first, but because it was just a text editor, it was a really fast and responsive application. I could open my whole project in a few seconds, whereas when I want to open a project in an IDE it could take a minute or more, with a machine with a ton of RAM. The makers of IntelliJ came out with a python editor called pycharm, I bought it when it first came out, and it is great. But what I realized is that I don't need an IDE for python, I'm fine with a text editor. When I go back to working on Java web apps which I have to do from time to time, I try to use the text editor, but I haven't quite mastered that yet. I personally need the IDE for Java more because If I mess up something it takes longer to recompile and redeploy, which slows me down.

ORM:

When I first started using Hibernate as an IDE, I thought it was great, it had it's problems, and it wasn't perfect, but it was better then what I was doing before. I was happy with it, until I did an application with Django's ORM on a python project, and that opened up my eyes, that is how an ORM is suppose to work. After that project I went back to hibernate, and I just felt disappointed, and longed for going back to Django's ORM. Another great python ORM is sqlalchemy, which is similar to Django's ORM, but a little different. I have limited experience with ROR's ORM, but from what I remember, it was pretty good as well.

Templates:

The web templating systems in Java aren't that good, and I think I have tried them all (tiles, freemarker, velocity, etc). Most of them offer only basic functionality and are a pain to work with. On the Python side, my two favorites are Django templates and Jinja2, they have everything that I could need in a templating engine, and are really easy to use.

KenCochrane··on DotCloud.js - Access Cloud Services from the Browser
It worked fine for me, what browser you using? I have chrome on a mac.
KenCochrane··on LeakedIn
You could use the service to see if your new password was already hacked..
KenCochrane··on 6.5 Million LinkedIn Password Hashes Leaked
Use http://leakedin.org to find out if your password was hacked.
KenCochrane··on Google buys Meebo
Looks like the site is getting crushed, I can't load the page.
KenCochrane··on How to Run your Minecraft server on dotCloud
That pricing FAQ is out of date. Not sure why it still says that.
KenCochrane··on Inbox.py: SMTP for Humans
This library is for receiving email, new email that you get, is put in your inbox. Email that you are sending goes in your outbox before it is sent. So I think it is named correctly. :)
KenCochrane··on ZeroRPC
Not yet, but feel free to write it and submit it, I'm sure a lot of people will find it very useful.
KenCochrane··on DotCloud Adds Support For WebSockets, Vertical Scaling And More
If you look at this page, towards the bottom

http://docs.dotcloud.com/guides/websockets/

It says the following: "the old load balancers are based on Nginx, while the new ones are based on Node.js"

KenCochrane··on DotCloud Adds Support For WebSockets, Vertical Scaling And More
According to this page: http://docs.dotcloud.com/guides/scaling/

The max you can scale is 64GB, However scaling above 4GB must be explicitly enabled for your account, so you need to contact them.

KenCochrane··on ZeroRPC
Here is a video about it from this years Pycon.

http://youtu.be/9G6-GksU7Ko

KenCochrane··on "I Won The Windows Phone Challenge, But Lost 'Just Because'"
Well, even if you did really win, you would have still lost, your prize would have been a windows laptop, who wants one of those anyway?
KenCochrane··on PyPy, Jython and CPython 3 on dotCloud
yeah that is pretty cool.
KenCochrane··on PyPy, Jython and CPython 3 on dotCloud
What would you deploy with? I have gotten it to work with Gunicorn, but if you can't use eventlet/gevent, that doesn't look like a great option. sync mode works aright, but not as good as async mode.
KenCochrane··on PyPy, Jython and CPython 3 on dotCloud
I see. Can you access/call the java/scala/closure classes from inside of your python code? If so, that is pretty cool.
KenCochrane··on PyPy, Jython and CPython 3 on dotCloud
What is the typical use case for Jython? Is it so that people can run Python at companies that only run Java? In that use case, I'm assuming people are creating a python app, and then compiling a War, and then deploying on Tomcat or Jetty?
KenCochrane··on PyPy, Jython and CPython 3 on dotCloud
Did you have any issues running it on PyPy? I know when I tried to run it, I had an issue with one of my requirements not being supported under PyPy.
KenCochrane··on Django hosting roundup: who wins?
You are correct, if you include addon's. If you don't include addons it is tied with dotCloud.
KenCochrane··on Django hosting roundup: who wins?
Google app engine is listed in the comparison chart (scroll to the right if your screen is too narrow). Amazon EC2 isn't a PaaS it is an IaaS and that is why it isn't covered in the roundup.
KenCochrane··on Django hosting roundup: who wins?
I actually keep it up to date, if you look at the top of the page I have a list of updates and when they were made. Everything is up to date. When something changes, I make sure to go back and update the chart. Sometimes things don't change for a while and hence the long pause in between updates.
KenCochrane··on Ask HN: What's a great email deliverability service?
I have used socketlabs.com and sendgrid.com, they are about the same in features and price. Amazon SES is still fairly new and doesn't have all the same features, but is much cheaper.

If you want to get on the email whitelists you might want to check out returnpath.net or SuretyMail.com

KenCochrane··on The Great Cul-De-Sac Problem And How To Alleviate It.
Probably misconfigured web server. Looks like they are using a reverse proxy that isn't setup right.

Nothing we can do, the person who runs the server needs to fix it.

KenCochrane··on Tech Company Pay - Salaries at Google/Apple/Twitter
Looks like this post and the one on techcrunch has flooded the site with traffic and it can't handle the load
KenCochrane··on After working at a startup, I'll never work at a big company again
I agree it isn't for everyone. I have 2 kids and a mortgage and I left a high paying contracting job to take less money at a startup.

I took the chance and I went from dreading work, to really enjoying it. It proves that money doesn't always buy you happiness.

KenCochrane··on TouchPad 16GB on Sale for $99
All sold out!
KenCochrane··on Setting up Django with gunicorn, nginx, supervisord and fabric
This blog post was based on a project that I did that required python 2.6.6, you could use python 2.7 if all of your dependencies support it.
← PreviousPage 4 of 4