Unless this is some kind of troll, I'm unclear why you would have picked a platform like Win2008 for a large-scale web server, when a LAMP architecture is easier to manage and more easily portable to the cloud if you do decide to go that way.
I have developed and deployed a small LAMP app, and a small Windows app, and agree entirely with your thoughts on this - the LAMP architecture is easier to manage, as well as being free. The reason I'm sticking with Windows is because, for a large app, I am committed to the Windows dev stack - ASP.NET MVC, F#, Visual Studio, etc. I just like 'em more - on balance, not in every detail:)
Yes. Don't take on anything more than your core skills, or the other stuff will eat into your time and stop you doing what you aim to develop. When starting up you might even find free cloud hosting whilst you develop.
You will want to move from Microsoft products as a one-man band, as this will make your cloud choices cheaper and more varied. Look into PostgreSQL or MySQL, and PHP, Java, Python or any one of the myriad other Linux web server languages.
But do put some thought into how you are going to scale your platform so that it will run on the dirt cheap hosting platform initially, yet expand and scale across multiple cloud hosts down the line.
Thank-you for answering the central point of my question - that I should stick to my cores skills! I hear your advice about a LAMP stack, but I'll be sticking to Windows because I am much stronger in.Net (and personally enjoy it). I don't expect that the costs saved by switching will outweigh the lost time in switching my skill set.
I'm sorry, but if you need to ask Slashdot on something like this than your not qualified to do what you want to do. Nothing personal but your only going to have hours to days before your website is hosting malware or gets turned into a spam relay.
Thank you. I knew that I would get that exactly that response from at least one person, if not the first 10 responders!
I had not expected though that the response would be based on a misinterpretation of my question. I am only talking about developmental infrastructure. I thought that was obvious, but it would have been better if I had added that word.
I didn't think that anyone would even consider hosting a commercial web site from home in 2010. Of course I'm going to use commercial hosting. The reason that I thought "the cloud" was an interesting option is because it's a paradigm shift for development, especially for me who has programmed for 20 years in industry where the infrastructure is always in house, and managed by specialized, dedicated staff.
I already have one small web site on a hosted solution, and manage that quite successfully. I started out with Linux, and then switched to Dot.Net, and managed the hosting under both environments.
My concern is with developing a large web site, as in large-amount-of-code, and the developmental infrastructure associated with that, and the distraction that will come with manageing a Windows environment (or Linux, for that matter). So, the point of my question is, should I just go straight to the cloud for that
I cannot address all the responses to my question, so I just picked this one as close enough to the issues to respond.
Thankyou Sir! I am pleasantly surprised that someone took my seriously so quickly.
I was not aware the VS 2010 integrates so well with Azure for development, so that is probably the most useful bit of info I needed
Unfortunately, my question did not make it clear that I am asking only about developmental and staging infrastructure. I never expected to use anything other than a commercial hosting solution ("cloud" or otherwise).
I put on a very thick skin before posting, so the "you can't be serious" and "you are obviously not qualified" comments have not bothered me.
Having been on Slashdot for some 10 years, I expected that (if my question was posted) that I would get some useful ideas from left field, and also some useful direct comments, and that is what has happened, and I am especially grateful to all who took my question seriously and shared of their highly valuable expertise.
One bit of info was unfortunately omitted from my question, because of finger trouble while I was editing it. Obviously I am using Microsoft products, but it's not just because it's all I know (it isn't) but because I have used.Net for 8 years, and find myself always enjoying the latest stuff (now Linq, ASP.NET MVC, and F#) and, as a developer, this enjoyment is central to my productivity. I would never tell a RoR developer to stop enjoying his stuff, and I give myself the same license.
A brief comment on the useful Win vs Linux comments. There has been some advice that, were I to switch to Linux, that I would find a Linux network easier to manage, as well as obviously saving money. I am also "barely competent" as a Linux admin, but I can see the wisdom in that, and I have found Linux administration much more enjoyable than Windows. If I had time to spare, then I would probably go with Mono, for the "best of both worlds", but that's not realistic.
A lot of the advice relates to the cost of scaling if the application takes off, with warnings about the costs then of Windows. That is a factor I had not considered. I am, because of my free Windows infrastructure, immune to the costs for development, but I will have to look at the costs for scaling. I had thought that, if I'm getting many hits, then I would also being generating sufficient revenue to pay for servers, or that I would have sufficiently proven my concept to get investor funding, and possibly switch to Mono then. IOW, that would be a problem I would like to have. The comments here have suggested that I reconsider this optimism
I haven't yet processed all the most helpful comments, and I will certainly be taking my time to do so, but there does seem to be some repeated advice that Azure is the way to go. This will, hopefully, provide a uniform environment for development, staging and scalable hosting.
Some advice to young people out there. Don't be afraid to ask stupid questions. The chances are that your question and the answer will save you a lot of time.
Thanks again, Slashdot
And, a quick comment on my username. I adopted "Javaman59" when I moved to modern OO development in 2001. I have kept it, with some fondness for those roots in Java, Linux, and the GOF patterns.
is that you you get invited to conferences and paid a lot of money to speak. Sometimes, you know that you don't have any fresh ideas at the moment, but you can't say that, so you trawl through the issues of the day, and come up with a controversial slant on them. You know that don't have any special insight, so you to take a commanding tone - "I don't like...they should do... ".
In a day you'll be on the plane home. In a week, everyone will have forgotten your vapid remarks
there's nothing sadder than an old idealist, still believing in a utopian vision that died a long time ago, and will never exist
In 1995 a friend explained "the internet" to me. It was a huge set of newsgroups - you'd subscribe to the ones you were interested in and get a download of the updates every night. There were some accepted rules of behaviour - one of which was that you didn't use it to sell things. That was a big breach of etiquette, which would be countered with a volume response to the server which originated the post.
Then I believe in SDT++. Write one test that "Concat str1 str2" does the thing it's obviously intended to do. Include that test in the build. After that, add special cases when fault is found.
Yay for the gym! Everything I do at the gym strains my back - squats, situps, stretching, skipping... I finish off with 1 hour of rest in the sauna and pool. My back used to hurt during the day, but now get's through a day at the office easily.
Elliot, is that you? You probably don't remember me, but I remember you! We were at a party in Seattle last week, and the subject of "trash" came up - actually, I think you brought it up. You then spent 10 minutes describing your system. We pushed you out the door when you wouldn't shut up without showing us on your laptop (which you happened to have with you).
One visit to the dentist he observed that my teeth were rapidly deteriorating, and said it must be something in my diet. He took time to ask what I was eating and drinking, and concluded it was the can of diet drink, or two, every afternoon. I cut it out, and switched to full strength drinks, when I drink soda. I put on a bit of weight, but it fixed the tooth problem.
Different rulesets, and also different expiration rates. One week I'm forced to change my password on one account (annoyance, but no big deal), and a week later I'm forced to change it on another account (grrrrr...), and another week later I'm forced to change it on another account (AAAARRGGG..), and I can't use the same password, because they've got different policies.
Lots of people are telling you to keep programming, and build a portfolio of interesting projects.
That's reasonable advice, but it misses the most important thing...
Get a job - any job
When an employer get's your resume, and sees that you are currently employed at Walmart, or McDonalds, or gardening for the local council, that will make a much better impression than "working at home on an Open Source project". This is also a good risk mitigation strategy - it keeps you busy, and earning money, in case it takes you a long time to get a programming job. It is also good for your self confidence, and health.
If you also do a code project while you are working, then you will really impress employers
Yes, or for any other reason. "Won't commit to a reasonable deadline". "Didn't achieve agreed deadline". "Code had bugs". "Code produced on time, and working, but missing documentation". "Too many coffee breaks"...
"A reference??? You gotta be kidding, after the way you performed here."
The real problem is that software work is always "impossible", in the sense that you can't achieve all goals in the given time. If the programmer rocks the boat, then, no matter how well he balances the priorities, and achieves the main objectives, he is open to criticism. His only defence, if management is malicious, is to work to exhaustion.
It did happen. It was on all the TV news in Australia last night, with television footage of the travelling car, and interviews with the driver and police (who were were called in while he was stuck on 100 km/hr).
Another vote for the whiteboard. I've been working in software for 25 years, and running a house also, and been refining my list management over the years.
- Outlook for appointments (Calendar) and tasks which need reminders (Tasks). Hint: don't use Calendar for tasks - use it for fixed appointments only. Also, put reminders on e-mails which require actions.
- Word for planning a task which will last several weeks. Prefer bullet points and tables to paragraphs.
- Whiteboard for jobs which are in progress. Definitely use coloured markers.
- Bugzilla, MS-Project, Excel, whatever, as required by the organization.
I avoid sticky notes. They are untidy, and seem to just accumulate without being actioned.
The demarcation between the methods is somewhat fluid, and takes time to manage, but I think it's better than the overhead of trying to keep everything in one, automated, system.
Congratulations, you just saved yourself the trouble of reading past the first 4 lines of the language's home page. I trust you've put the time you saved to good use:)
And like many workplace pains she kept her nose JUST clean enough to not be fired for anything serious.
I would go one step further - workplace pains are almost always right, the problem is that they go about being right in a domineering, confrontational manner, that can't be dealt with. They might email "EVERYONE must be at this meeting ON TIME - NO EXCUSES". How does one deal with that? Not turn up on time? Complain about the tone of the email? Or just wince, and turn up on time. I've seen it several times in the workplace, and it drives people, including the boss, to distraction, and seriously undermines moral, but is very difficult to handle. If the boss confronts him/her, they'll just acquiesce to the immediate issue (eg. no caps in emails), after making an unpleasant scene, then find another way to be right, offensively.
Unless this is some kind of troll, I'm unclear why you would have picked a platform like Win2008 for a large-scale web server, when a LAMP architecture is easier to manage and more easily portable to the cloud if you do decide to go that way.
I have developed and deployed a small LAMP app, and a small Windows app, and agree entirely with your thoughts on this - the LAMP architecture is easier to manage, as well as being free. The reason I'm sticking with Windows is because, for a large app, I am committed to the Windows dev stack - ASP.NET MVC, F#, Visual Studio, etc. I just like 'em more - on balance, not in every detail :)
Thankyou!
Thankyou Sir! Point by point you are so close to what I am actually doing, or thinking about doing.
I'm using ASP.NET MVC 2 (not 3 yet), F#, etc... and I am having a major buzz with it!
Entity Framework? I'm using Linq2Sql, but I keep hearing, "go to Entity Framework".
I had wondered about switching to MySQL, for exactly the reasons you mentioned, but would not have bitten the bullet, without your advice!
Source control. I've got a nice Linux box, and have thought about setting up GIT on it. Once more, you've given me the answer I need!
"Actual Entrepreneur". Thanks again!
Everything else is premature optimization.The root of all evil!
This is one of many helpful responses which have made me so glad that I asked the question!
Yes. Don't take on anything more than your core skills, or the other stuff will eat into your time and stop you doing what you aim to develop. When starting up you might even find free cloud hosting whilst you develop.
You will want to move from Microsoft products as a one-man band, as this will make your cloud choices cheaper and more varied. Look into PostgreSQL or MySQL, and PHP, Java, Python or any one of the myriad other Linux web server languages.
But do put some thought into how you are going to scale your platform so that it will run on the dirt cheap hosting platform initially, yet expand and scale across multiple cloud hosts down the line.
Thank-you for answering the central point of my question - that I should stick to my cores skills! I hear your advice about a LAMP stack, but I'll be sticking to Windows because I am much stronger in .Net (and personally enjoy it). I don't expect that the costs saved by switching will outweigh the lost time in switching my skill set.
I'm sorry, but if you need to ask Slashdot on something like this than your not qualified to do what you want to do. Nothing personal but your only going to have hours to days before your website is hosting malware or gets turned into a spam relay.
Thank you. I knew that I would get that exactly that response from at least one person, if not the first 10 responders!
I had not expected though that the response would be based on a misinterpretation of my question. I am only talking about developmental infrastructure. I thought that was obvious, but it would have been better if I had added that word.
I didn't think that anyone would even consider hosting a commercial web site from home in 2010. Of course I'm going to use commercial hosting. The reason that I thought "the cloud" was an interesting option is because it's a paradigm shift for development, especially for me who has programmed for 20 years in industry where the infrastructure is always in house, and managed by specialized, dedicated staff.
Thankyou for a polite, albeit negative, response
I already have one small web site on a hosted solution, and manage that quite successfully. I started out with Linux, and then switched to Dot.Net, and managed the hosting under both environments.
My concern is with developing a large web site, as in large-amount-of-code, and the developmental infrastructure associated with that, and the distraction that will come with manageing a Windows environment (or Linux, for that matter). So, the point of my question is, should I just go straight to the cloud for that
I cannot address all the responses to my question, so I just picked this one as close enough to the issues to respond.
Thankyou, Barbara, and thankyou everyone else!
Thankyou Sir! I am pleasantly surprised that someone took my seriously so quickly.
I was not aware the VS 2010 integrates so well with Azure for development, so that is probably the most useful bit of info I needed
Unfortunately, my question did not make it clear that I am asking only about developmental and staging infrastructure. I never expected to use anything other than a commercial hosting solution ("cloud" or otherwise).
Thanks for all the comments.
I put on a very thick skin before posting, so the "you can't be serious" and "you are obviously not qualified" comments have not bothered me.
Having been on Slashdot for some 10 years, I expected that (if my question was posted) that I would get some useful ideas from left field, and also some useful direct comments, and that is what has happened, and I am especially grateful to all who took my question seriously and shared of their highly valuable expertise.
One bit of info was unfortunately omitted from my question, because of finger trouble while I was editing it. Obviously I am using Microsoft products, but it's not just because it's all I know (it isn't) but because I have used .Net for 8 years, and find myself always enjoying the latest stuff (now Linq, ASP.NET MVC, and F#) and, as a developer, this enjoyment is central to my productivity. I would never tell a RoR developer to stop enjoying his stuff, and I give myself the same license.
A brief comment on the useful Win vs Linux comments. There has been some advice that, were I to switch to Linux, that I would find a Linux network easier to manage, as well as obviously saving money. I am also "barely competent" as a Linux admin, but I can see the wisdom in that, and I have found Linux administration much more enjoyable than Windows. If I had time to spare, then I would probably go with Mono, for the "best of both worlds", but that's not realistic.
A lot of the advice relates to the cost of scaling if the application takes off, with warnings about the costs then of Windows. That is a factor I had not considered. I am, because of my free Windows infrastructure, immune to the costs for development, but I will have to look at the costs for scaling. I had thought that, if I'm getting many hits, then I would also being generating sufficient revenue to pay for servers, or that I would have sufficiently proven my concept to get investor funding, and possibly switch to Mono then. IOW, that would be a problem I would like to have. The comments here have suggested that I reconsider this optimism
I haven't yet processed all the most helpful comments, and I will certainly be taking my time to do so, but there does seem to be some repeated advice that Azure is the way to go. This will, hopefully, provide a uniform environment for development, staging and scalable hosting.
Some advice to young people out there. Don't be afraid to ask stupid questions. The chances are that your question and the answer will save you a lot of time.
Thanks again, Slashdot
And, a quick comment on my username. I adopted "Javaman59" when I moved to modern OO development in 2001. I have kept it, with some fondness for those roots in Java, Linux, and the GOF patterns.
Javaman59
is that you you get invited to conferences and paid a lot of money to speak. Sometimes, you know that you don't have any fresh ideas at the moment, but you can't say that, so you trawl through the issues of the day, and come up with a controversial slant on them. You know that don't have any special insight, so you to take a commanding tone - "I don't like...they should do... ".
In a day you'll be on the plane home. In a week, everyone will have forgotten your vapid remarks
it is clear that Berners-Lee's image of the Internet died in September of 1993
http://en.wikipedia.org/wiki/Eternal_September
there's nothing sadder than an old idealist, still believing in a utopian vision that died a long time ago, and will never exist
In 1995 a friend explained "the internet" to me. It was a huge set of newsgroups - you'd subscribe to the ones you were interested in and get a download of the updates every night. There were some accepted rules of behaviour - one of which was that you didn't use it to sell things. That was a big breach of etiquette, which would be countered with a volume response to the server which originated the post.
Then I believe in SDT++. Write one test that "Concat str1 str2" does the thing it's obviously intended to do. Include that test in the build. After that, add special cases when fault is found.
I've been deep involved in over 6.02x10^23 web-dev action XP teams
Thank you, old man, we appreciate you sharing some of your experience. We really do.
Yay for the gym! Everything I do at the gym strains my back - squats, situps, stretching, skipping... I finish off with 1 hour of rest in the sauna and pool. My back used to hurt during the day, but now get's through a day at the office easily.
Congratulations, you win one Internet
Well said, sir! And you win $200,000 from me.
Elliot, is that you? You probably don't remember me, but I remember you! We were at a party in Seattle last week, and the subject of "trash" came up - actually, I think you brought it up. You then spent 10 minutes describing your system. We pushed you out the door when you wouldn't shut up without showing us on your laptop (which you happened to have with you).
One visit to the dentist he observed that my teeth were rapidly deteriorating, and said it must be something in my diet. He took time to ask what I was eating and drinking, and concluded it was the can of diet drink, or two, every afternoon. I cut it out, and switched to full strength drinks, when I drink soda. I put on a bit of weight, but it fixed the tooth problem.
Mod parent up! Great story... And it sums up a lot of the experiences of Mandrake mentioned in this thread.
Different rulesets, and also different expiration rates. One week I'm forced to change my password on one account (annoyance, but no big deal), and a week later I'm forced to change it on another account (grrrrr...), and another week later I'm forced to change it on another account (AAAARRGGG..), and I can't use the same password, because they've got different policies.
Lots of people are telling you to keep programming, and build a portfolio of interesting projects.
That's reasonable advice, but it misses the most important thing...
Get a job - any job
When an employer get's your resume, and sees that you are currently employed at Walmart, or McDonalds, or gardening for the local council, that will make a much better impression than "working at home on an Open Source project". This is also a good risk mitigation strategy - it keeps you busy, and earning money, in case it takes you a long time to get a programming job. It is also good for your self confidence, and health.
If you also do a code project while you are working, then you will really impress employers
Yes, or for any other reason. "Won't commit to a reasonable deadline". "Didn't achieve agreed deadline". "Code had bugs". "Code produced on time, and working, but missing documentation". "Too many coffee breaks"...
"A reference??? You gotta be kidding, after the way you performed here."
The real problem is that software work is always "impossible", in the sense that you can't achieve all goals in the given time. If the programmer rocks the boat, then, no matter how well he balances the priorities, and achieves the main objectives, he is open to criticism. His only defence, if management is malicious, is to work to exhaustion.
It did happen. It was on all the TV news in Australia last night, with television footage of the travelling car, and interviews with the driver and police (who were were called in while he was stuck on 100 km/hr).
Another vote for the whiteboard. I've been working in software for 25 years, and running a house also, and been refining my list management over the years.
- Outlook for appointments (Calendar) and tasks which need reminders (Tasks). Hint: don't use Calendar for tasks - use it for fixed appointments only. Also, put reminders on e-mails which require actions.
- Word for planning a task which will last several weeks. Prefer bullet points and tables to paragraphs.
- Whiteboard for jobs which are in progress. Definitely use coloured markers.
- Bugzilla, MS-Project, Excel, whatever, as required by the organization.
I avoid sticky notes. They are untidy, and seem to just accumulate without being actioned.
The demarcation between the methods is somewhat fluid, and takes time to manage, but I think it's better than the overhead of trying to keep everything in one, automated, system.
Congratulations, you just saved yourself the trouble of reading past the first 4 lines of the language's home page. I trust you've put the time you saved to good use :)
Great article! He makes a good case for "literally" used in moderation.
I liked this line, about why it justifiably raises peoples hackles...
The examples usually stigmatized are the ones in which literally modifies a cliché or a metaphoric use that is already highly figurative.
So, "literally an assault on the brain" is OK.
I would go one step further - workplace pains are almost always right, the problem is that they go about being right in a domineering, confrontational manner, that can't be dealt with. They might email "EVERYONE must be at this meeting ON TIME - NO EXCUSES". How does one deal with that? Not turn up on time? Complain about the tone of the email? Or just wince, and turn up on time. I've seen it several times in the workplace, and it drives people, including the boss, to distraction, and seriously undermines moral, but is very difficult to handle. If the boss confronts him/her, they'll just acquiesce to the immediate issue (eg. no caps in emails), after making an unpleasant scene, then find another way to be right, offensively.
My first thought on reading this was to think that we are back to WWI.
Hopefully we'll also see the return of bi-plane fighters, with machine guns,
Someone please tag this "biggles", or "redbarron"