Hacker Newsnew | comments | ask | jobs | submitlogin
Ask HN: What technology should I use for my new project?
2 points by JeremyMorgan 485 days ago | comments
Question for my super geeky HN Friends:

I'm building an app. At a very high level, it will be an Android app that pulls and sends some JSON for a picture-rating system. I expect this to scale quite a bit and may become very popular. Given that option I am thinking I want the best technology for the job, even if it's something I don't know and will have to learn. Here are the options I'm considering:

Node.js service Asp.Net Service PHP script

Database:

Most likely MySQL or MS-SQL.

My question is, what do you guys suggest? I know that NO-SQL stuff is all the craze right now, but I don't feel really comfortable with keeping a lot of data in one of these stores without knowing a lot about them. I have extensive experience with MySQL and MS-SQL and trust both of them can do the job great.

The interface on the other hand is much more open. It's just going to be pushing text (images will be hosted on S3) so anything that serves text quickly will work. Heavily leaning towards Node.JS for this, but I'm not set yet.

Any advice or input would be great. I expect at least a couple thousand users right from the start, so it will need to be pretty fast. If it takes off it will need to scale up, which is why I may do a Node/MySQL arrangement on Linode so I can just scale up the servers as needed.

Another note: this isn't going to make much money, if any. So a pure .NET/MS-SQL solution may not be the best choice if I have to keep buying expensive servers for a project not likely to ever gain revenue.

Anyway any thoughts you guys might have would be great!



dotmanish 484 days ago | link

My suggestion would be to read up on the capabilities of MongoDB / CouchDB once. May be take a small programming example in the language of your choice wouldn't hurt. It will take half a day for each ("read up" also means look at the typical questions on stackoverflow, read their blogs, and articles on comparison of their usages and performances -- without all this, your "read up" isn't complete).

Secondly, read up on Redis and Memcache, and include one of these in your stack (I personally stick with Redis, but decide on your own).

If you can spend some more time in your "planning", I would suggest looking at Heroku for deploying your app. If you haven't used a PaaS in the past, this _may_ change your entire outlook on how you plan your app and its resources.

Hope this helps.

-----

JeremyMorgan 484 days ago | link

I can actually spend a month or two on planning, and I explore some NoSQL options.

In-Memory databases sound nice for speed, but I also have some OLAP functionality I'm going to need as well, and may use a fast in-memory DB then dump the data into another DB nightly, but I'm not sure sure yet.

I think spending a day or more reading and developing on these DBs will be worth my time for sure.

-----

acesubido 484 days ago | link

Seeing as you're more experienced on the Windows stack (saw your C# posts), I'd suggest not dealing with NodeJS at all if your aim is to push out and maintain this project with less friction.

If you're thinking it'll scale, it's much better to deal with scaling problems in a stack you're familiar with. So for your server stack I'd suggest these:

- PaaS: AppHarbor or Azure Cloud Services. You can easily scale up with them by a few clicks.

- Server-side: Seeing as you chose NodeJS, I assume you're going to use the stack's asynchronous nature, might I suggest looking up SignalR (http://www.hanselman.com/blog/AsynchronousScalableWebApplica...)

- ORM Layer: NHibernate

- DB: MySQL

Again, I'm not saying not to use NodeJS because I'm some sort of Microsoft Fanboy, I'm just giving suggestions based on how much "better" you can push out your project "quicker", and maintain/support it with lesser friction.

-----

JeremyMorgan 484 days ago | link

I'm more experienced on the Windows Stack, but one problem I have is this is going to be a "for fun" project that's likely not going to turn a profit in any way. I would gladly throw it on an Azure instance, but I'm afraid of paying a few hundred bucks or more a month for something when I could just do it for free. If I could find a way to monetize it without pushing away fans it may be an option.

SignalR is one of the options I forgot to mention, I don't have any experience with that but it may serve my purpose well so I'll be looking into that. Thanks for the suggestion!

-----

dotmanish 484 days ago | link

A note on your SQL hosting - there's always Amazon RDS (which would be free for the first year under usage limits, I think). It can also give you a scaling strategy to start with.

-----

JeremyMorgan 484 days ago | link

I do have an AWS account setup and used up my free year, but that may also be an option. As I mentioned cost is a big factor here because this is not going to be a moneymaker. But if it's under $100 a month or so it might be manageable.

-----

cncool 484 days ago | link

Parse.com might be an option. It will scale as needed automagically. It uses AWS to store the data.

-----

olieH 484 days ago | link

Might want to take a look at http://www.appacitive.com

-----

JeremyMorgan 484 days ago | link

Thanks! This looks pretty awesome, I requested an invite

-----




Lists | RSS | Bookmarklet | Guidelines | FAQ | DMCA | News News | Feature Requests | Bugs | Y Combinator | Apply | Library

Search: