I agree. screen session sharing is great. This is a plug but highly on topic, http://shellshadow.com/ is collaborative PuTTY. I think you'll find it works great for cases where shared screen is less safe or accessible for the enjoined user.
hold on now. the post did not say "when will china allow unfiltered, uncensored text messages".
You can have cheap and reliable SMS into China and still have "great firewall" style filtering and censorship. SPAM SMSs are already a problem domestically in China and there is pressure to get it under control for both censorship reasons and for annoyance reasons.
There already exists SMS from China to other countries for reasonable rates through China Mobile. In fact, while I was in the U.S. last month, I could put my China Mobile SIM into my phone and send messages around the world from the U.S. for cheaper than any U.S. telecom would allow.
As to why you do not today have cheap SMS "into" China it is because China Mobile operates at a different pace and controls the pace of the game relative to U.S. and EU telecoms. China Mobile does not need this new revenue stream and will take it on on its own schedule and on its terms.
You can see the same thing happening with iPhones in China. When will the iPhone be an official sold item in China? It will happen when Apple needs the deal enough so that China Mobile gets it on their terms.
enough said...its not about censorship. Its about money. The Chinese are great at the "waiting game". And frankly, its their country, so why not allow their pseudo monopolies to protect it?
I hear ya'. I just don't agree. I wasn't trying to make fun of the poster. I do firmly believe that if you ask a generic question, you'll get a generic answer. Specifics rule the day.
don't think this answer fits. The request is for "still running", not "capable of running". I'd say if its in a museum, its not actually running: i.e. doing something useful on a daily basis. At least that's my interpretation.
I second that. I was dumbfounded when I read this post. Seriously, you get on slashdot and you don't put your URL about looking for help. Your nuts. Let me repeat that: You want help but don't give people a source for context on the help. YOU ARE NUTS!!! I'm not trying to be mean. Please don't be offended.
The slashdot editors should have seen this as a prob as well and either not posted the query or gone back to the author and told him of his obvious misdirection.
Good article to set people straight on how mundane most startups are. I am almost 40 and http://www.shellshadow.com/ is my 3rd startup (not counting the half-baked college days projects). I have purposely narrowed my focus on this one. Some has to do with age and risk profile changing. But the other reasons are that I do have more experience and understand that my goal is to fill a niche and that initial niche better be good enough to get to sustained profits quick. If I can take on adjacent markets and grow from there, fantastic. But that better not be required.
fully agree. I"ve launched a server support tool http://www.shellshadow.com./ Its distro agnostic. The tool, a collaborative terminal client, is derived from open source products. The initial user base is FOSS users. Should the product and service be free? No. If I want to keep the product growing and make money and pay employees, I have to run a business. I can give back to the community and have a meaningful biz model at the same time.
Canonical has been clear for at least two years that it intends to make money off support and other products and keep ubuntu free _at the same time_. I applaud this and think they have already succeeded. More power to them; I hope Shuttleworth gets his investment back and then some.
I have seen the inside of large proprietary products from the leading IT companies. Many times there are lots of marketing and product management folks assigned but only 2 or 3 core programmers creating the meat of the product. So 25 coders on Tomcat sounds pretty good to me. If your talking about providing support services for open source, ok, we need more qualified people.
Thanks for the recent articles. Its good to hear this retrospective. Slashdot's corporate overlord, LNUX http://finance.google.com/finance?client=ob&q=LNUX, is either undervalued or underutilized (undermanaged?). In either case, the pressure would seem high to pillage every nook and cranny of the company to get the share price back up while the market is hot.
I fully agree that keeping the community as it is holds better long term value and I hope Rob and the rest of the Slashdot team get their way.
I am one of the majority; a lurker that doesn't post much. In fact, although I've read Slashdot since its beginnings, I didn't bother to create an ID till a few years ago.
Thanks for your hard work. I wish you a satisfying 10 more years!!!!
Its good to see some original business models coming out. I have grown tired of so much reliance on ad models. Perhaps this Internet thing is here to stay.
The facebook eval may be sky high, but they do have two keys elements that your modest proposal doesn't have: 1 - real revenue. Yes, they are raking in ad money. 2 - item 1 is due to lots of users that will probably keep coming back for the next few years. Sure, there may come along another platform but facebook will keep a large pool of users for years to come.
If you can find a way to bootstrap these items into your modest proposal, then you have something.
It may be effective to step back further and help people understand that the Internet is, by design, a P2P network. What we call P2P apps are simply higher levels tools and protocols on top of this existing P2P structure.
Combine this information with the general understanding that it is perhaps impossible to un-share information after it has been shared. This principal of not being able to un-share is without regard to the technology used.
After that, you may get people to change their behavior. Or maybe not.
I have used Ruby and Rails (limited and recently) and Smalltalk (significantly and years ago). Your question: "why would you choose a slow-and-expressive language over a fast-and-expressive one?" is something I struggled with when I was choosing a language for my new web app http://www.shellshadow.com/ . I spent too much time on this choice.
My previous company was patternWare (Smalltalk and later Java app frameworks). I knew lots about frameworks. I see Ruby on Rails and say, "its nice but not near as enterprise quality and scalable as what I've built myself". But the bottom line is it is "nice" and "does what it claims for building web apps".
A retrospective on my decision for using Ruby on Rails is:
1 - I'm building a web app as "a part" of my business. Its not the whole of my business. If I build it correctly with Rails, I can always outsource a rewrite in something "more scalable" if need be. This time may never come, but I know that my web app code is very clean due to choosing Rails. Note: As a prior life in building app frameworks, I don't recommend using "magic". I use Rails for the core http request cycle and MVC separation and consider myself using Ruby for the rest of my needs.
2 - Mindshare. My new startup, shellshadow, has two other key components to my technology beside the web app. I need to easily find top talent for each of these three components.
I wanted to use Smalltalk. I also wanted to use Erlang (longer post required). But the bottom line is I needed to find good talent that could plug into my business as I grew. Ruby (and Rails) fits "right now". Smalltalk (and Seaside) does not. I can buy more server horsepower. Finding and scaling programmer talent is harder.
I love this thread!!! The fine article has enlightened me. I'm bringing my 2 year old to my next VC meeting. Seriously, why haven't I thought of this before? When I talk tech to my non-tech friends, sometimes I hear things like "Slow down...now just explain it to me like I'm a 2 year old." Imagine if my elevator pitch came from my 2 year old? My son is very cute. I'm truly encouraged by this and congrats to the 12 yo entrepreneur!!
Good reply. You are correct. Trust is something that must be earned and this takes time and great care from the person wanting your trust.
As to http://www.shellshadow.com/ some may prefer to run their own relay server. This is possible and I expect to enable people to run their own relay or to let them study the source.
As the product just launched and hasn't even exposed its business model, I expect early adopters are either blindly trusting the service in environments where trust is mitigated or they are trusting based on recommendation from someone they do trust. This is how most start-ups go about earning trust.
If you have more ideas on how shellshadow can earn trust, please let me know. I have started a google group to discuss the tech and business model behind shellshadow. http://groups.google.com/group/shellshadow
Thanks for the encouragement, If you or someone you know wants to help with the port to linux/gtk of the shellshadow client (should be easy), I would love to hear from you!!
GoToMyPC did not start as a closed source product from Citrix. It started as a closed source product from Expertcity. Expertcity was an unknown and yet people found reasons to trust it and the company grew enough that Citrix acquired it.
In short, The parent comments are pure FUD which can be applied to just about any closed source start-up...And this assumes you automatically trust closed-source software from a large company. This also assumes if it were open source that people have reviewed it in enough detail to be trusted...or that you would completely review the open source and its mods before using the product...highly doubtful.
There may be reasons not to trust any new product. However, broad based FUD slams are counter productive.
In an earlier post on this article, I reference my new product http://www.shellshadow.com/ which is different tech from ShowMyPc, but may suffer from similar FUD attacks. I don't worry too much about these attacks. I'll just do my best to host a trustworthy service and build from there. I have to assume ShowMyPc intends to do the same.
I just launched a new product, ShellShadow... http://www.shellshadow.com/ By "launched" I mean the site is public for the last 2 weeks but no general announcements yet. Just a few friends testing to make sure its behaving well. Unlike so many GUI Collaboration tools, ShellShadow is Terminal Client collaboration (light, low bandwidth, and doesn't share your desktop). The client is derived from PuTTY. I have not released the source to the derived client or the coded-from-scratch relay server. The PuTTY license does not require me to do so.
There are some key questions that should be answered about giving back to the open source community. But nothing can be given back without the company having a stable and growing revenue model. I welcome meaningful feedback on this business and the use of the various open source technologies it leverages. Yes, this post is a shill;-), but a topical one, I hope.
I've looked at ShowMyPC.com and happy to see more action in this market. If they are in violation of some open source agreement, I hope they get it worked out.
This law suit is fantastic!!!
Imagine the possibilities of this legal precedent?
If a credit tracking bureau gets your info wrong and refuses to remove it, can we sue said bureau and have their entire Internet presence killed? Sound good to me...anyone want to pool there assets for a class action suit? Maybe these scum sucking lawyers representing e360 can be put to good use after-all!!!
Add to this the marvels of the Ken Lay precedent. Does it mean that whenever you die but have not exhausted your appeals (and whoever does except death row inmates?) that your family gets whatever money the gov other plaintiff took from you??
IANAL, But I do know how to think outside the box!!! And these lawyers are obviously in some alternate unboxed universe!!! The judge? Well, he obviously thinks of the Internet as just a series of tubes with spamhaus putting a kink in the garden hose.
What about a Windows IDE which handles remote execution / debugging ? I am currently searching for a good solution for one of my Windows C/C++ developers who is currently using VS 2005 and will shortly need to take what he has coded and try to compile / debug it on FreeBSD. The app being developed is a non-GUI traditional socket server app. I want to find a tool that works on Windows so he doesn't have to learn a new Desktop environ at the same time as he is learning how to debug the app on FreeBSD.
any suggestions? thanks, root-a-begger;-)
If you stuck using a language which suffers from lack of high-level concurrency, fault tolerance and distribution built in, then you have to use many different frameworks to make up for this and you're back to the original post which could be restated "How do I choose a framework to support a language which lacks high level mechanisms for concurrency, fault-tolerance and distribution?" I'll explain my position... I am a framework programmer in OO technologies for the last 15+ years. I've built frameworks and frameworks for frameworks. Although I take a fond interest in the many good frameworks out there, I am no longer in the framework business and am in the position of choosing a framework for my application needs. I'm building Web 2.0 type web apps for large user base (whatever that means to you).
Here's what I've decided from looking back at my own frameworks and using many others: 1 - Most application frameworks do two things: a) provide a declarative model for your app and b) encapsulate concurrency issues. The declarative model ensures your app programmers stick to the application domain and not the intricacies of how for example the MVC interactions work. Encapsulating concurrency issues (either in the O/R or the UI frameworks) keeps your app programmers from shooting themselves and each other in the foot over concurrency which is always tough to get correct. 2 - The other things that frameworks do well is distribution and fault tolerance. We find that there seems to be a separation in the framework world where declarative and concurrency issues get handled in the application frameworks and fault tolerance and distribution tasks get delivered in the form of application servers / containers.
When I started looking for a framework for my web apps, I looked hard at these four issues: declarative app model, concurrency, fault tolerance, and distribution. At some point in my search, I stumbled upon erlang where I found that concurrency, fault tolerance and distribution were handled at the language level (or at least deeply and consistently embedded in the VM and libraries). This left only a declarative framework for providing a high-level structure for my apps. This in turn means my "framework" needs are very small and simple.
Some other posts today mention that deficiencies in the language are the reason for needing so much framework infrastructure. I have to mostly agree with this position...I have not found any other language solution that removes 3 out of the 4 framework jobs as well as I can in erlang.
If you are stuck with a mainstream language choice, then I would suggest other criteria in picking a framework: The DRY approach of rubyonrails produces much more maintainable framework solutions than the Java approach which has large communities of vendors working on separate frameworks which produce overlap and pattern nuance.
Very interesting post! I haven't touched eiffel since early 90s so I can't give a fair comparison. In regards to my wide-ranging research on choosing a programming language for my current work, I didn't consider eiffel too strongly as I am drawn more to dynamic typing or at least strong type inference (see scala, http://scala.epfl.ch/ ). I realize that dynamic typing generally makes it more not less difficult to deliver a provably correct system. erlang takes a unique approach to this by the way it handles errors. The programmer is encouraged to not program defensively and to let the erlang system handle errors for anything the programmer did not explicitely expect. This is a unique approach and when tied to a dynamic language seems to work well. I find great qualities in many programming languages. Ruby, Python, Java, Smalltalk, C++, Haskell, OCaml all have their place from a language perspective. However, I wanted more than a language but a complete system with distribution, database, web server, fault-tolerance all built in.
So far as langugage design goes, I am very found of scala. The team behind scala created a syntax that melds pure objects, pure functions and type inferencing without clutter. A remarkable acheivement. However, scala is so new that it has few of its own libraries. I was tempted to embark on creating the frameworks/libraries I needed for scala, but I wanted out of the framework business. Erlang has an evolved syntax and is not without its quirks and inconsistencies. I have been able to put my purist attitude aside by being grateful for the comprehensive system it provides.
I can tell you this: What initially attracted me to erlang was the ejabberd project http://ejabberd.jabber.ru./ ejabberd has most of the qualities of the type of software I expect to build. This includes massive concurrency, security (in the form of process isolation and shared nothing data structures), fail-over/distribution, multi-database support, html templating for the web ui. ejabberd accomplishes this with a much smaller code base than comparable Java solutions. After studying the ejabberd product, I started to take erlang more seriously...the rest is history. I recently completed my first large project for a customer using erlang (including the latest ajax stuff) and have received most of the benefits I thought I would receive.
BTW, I have been living in Shanghai since 2000 and have found the pimsleur madarin tapes to be the best. Yes, a different approach can mean so much more than just more content.
aristus, I started looking at erlang in Fall 2004. Its my first serious try at functional programing so I consider my a newbie in functional idioms. However, erlang is not purely functional and is accessible to people with OO experience. I was a lurker on the erlang-questions maillist for 6 months before making a final decision to start building my apps with erlang. The maillist community is very solid and should be considered a base for your ongoing adoption of erlang. Here is the maillist and faq link: http://www.erlang.org/faq.html If you download any erlang install http://www.erlang.org/download.html, lots of docs are included. There are also some docs not included: http://www.erlang.org/doc.html I consider this doc a must read for anyone starting erlang: http://www.erlang.org/download/erlang-book-part1.p df The http://www.trapexit.org/ site is a very good portal for docs and the forums are a bi-directional link to the erlang-questions maillist. The howtos are good to start with: http://www.trapexit.org/docs/howto/ If you will develop anything requiring a web server, go directly to http://yaws.hyber.org./ Mostly good docs here. Yaws is the most excellent web server written in erlang. jungerl is a repository of mostly small erlang libraries. Lots of good tools and example code in here: http://jungerl.sourceforge.net/ ejabberd http://ejabberd.jabber.ru/, a jabber server in erlang, is an excellent example of how to put together a large distributed web based system in erlang.
nothing is perfect, but erlang's benefits to me far outway its rough edges...hopefully, you will experience the same. good luck...
I take time out of my very busy day to try to provide a serious answer and I get 4 replies. 2 have to do with sentence structure about Java being invented after Samlltalk. Yours has to do with a misplaced word. Try to stay on topic. Your reply is what makes people like me not want to participate in meaningful discussions.
My post wasn't intended to be a complete discussion of erlang, lest I be moded a troll;-) Here are some answers: For database, I am very happy with the erlang/OTP mnesia database. Mneisa is very robust, fast and supports transactions, replication, event triggers, etc... An add-on to it is rdbms, which adds type and relational constraints. For interfacing to SQL dbs, erlang has a nice ODBC library which works as expected. Also a native MySQL driver is available. So no problems there. For UI, I knew all my apps would use next gen dynamic HTML via things like AJAX. This works very nice as there are maturing erlang and Javascript libraries to support this. The erlang Yaws web server is superb as it give the best of simple templating like PHP with the power of the erlang platform. There exist erlang UI libraries for tradition GUIs ranging from X, Tcl/Tk, and GTK.
That must be a hoot to get a call from Josh Bolten..."uh, yeah, we think its the Chinese, or maybe Bob Barr" ;)
I agree. screen session sharing is great. This is a plug but highly on topic, http://shellshadow.com/ is collaborative PuTTY. I think you'll find it works great for cases where shared screen is less safe or accessible for the enjoined user.
hold on now. the post did not say "when will china allow unfiltered, uncensored text messages".
You can have cheap and reliable SMS into China and still have "great firewall" style filtering and censorship. SPAM SMSs are already a problem domestically in China and there is pressure to get it under control for both censorship reasons and for annoyance reasons.
There already exists SMS from China to other countries for reasonable rates through China Mobile. In fact, while I was in the U.S. last month, I could put my China Mobile SIM into my phone and send messages around the world from the U.S. for cheaper than any U.S. telecom would allow.
As to why you do not today have cheap SMS "into" China it is because China Mobile operates at a different pace and controls the pace of the game relative to U.S. and EU telecoms. China Mobile does not need this new revenue stream and will take it on on its own schedule and on its terms.
You can see the same thing happening with iPhones in China. When will the iPhone be an official sold item in China? It will happen when Apple needs the deal enough so that China Mobile gets it on their terms.
enough said...its not about censorship. Its about money. The Chinese are great at the "waiting game". And frankly, its their country, so why not allow their pseudo monopolies to protect it?
I hear ya'. I just don't agree. I wasn't trying to make fun of the poster. I do firmly believe that if you ask a generic question, you'll get a generic answer. Specifics rule the day.
don't think this answer fits. The request is for "still running", not "capable of running". I'd say if its in a museum, its not actually running: i.e. doing something useful on a daily basis. At least that's my interpretation.
This is certainly an interesting question.
I second that. I was dumbfounded when I read this post. Seriously, you get on slashdot and you don't put your URL about looking for help. Your nuts. Let me repeat that: You want help but don't give people a source for context on the help. YOU ARE NUTS!!!
I'm not trying to be mean. Please don't be offended.
The slashdot editors should have seen this as a prob as well and either not posted the query or gone back to the author and told him of his obvious misdirection.
Jon Hancock
http://shellshadow.com/
Good article to set people straight on how mundane most startups are. I am almost 40 and http://www.shellshadow.com/ is my 3rd startup (not counting the half-baked college days projects).
I have purposely narrowed my focus on this one. Some has to do with age and risk profile changing. But the other reasons are that I do have more experience and understand that my goal is to fill a niche and that initial niche better be good enough to get to sustained profits quick. If I can take on adjacent markets and grow from there, fantastic. But that better not be required.
Jon Hancock
http://www.shellshadow.com/
fully agree. I"ve launched a server support tool http://www.shellshadow.com./ Its distro agnostic. The tool, a collaborative terminal client, is derived from open source products. The initial user base is FOSS users. Should the product and service be free? No. If I want to keep the product growing and make money and pay employees, I have to run a business. I can give back to the community and have a meaningful biz model at the same time.
Canonical has been clear for at least two years that it intends to make money off support and other products and keep ubuntu free _at the same time_. I applaud this and think they have already succeeded. More power to them; I hope Shuttleworth gets his investment back and then some.
Jon Hancock
http://www.shellshadow.com/
I have seen the inside of large proprietary products from the leading IT companies. Many times there are lots of marketing and product management folks assigned but only 2 or 3 core programmers creating the meat of the product.
So 25 coders on Tomcat sounds pretty good to me.
If your talking about providing support services for open source, ok, we need more qualified people.
Thanks for the recent articles. Its good to hear this retrospective.
Slashdot's corporate overlord, LNUX http://finance.google.com/finance?client=ob&q=LNUX, is either undervalued or underutilized (undermanaged?). In either case, the pressure would seem high to pillage every nook and cranny of the company to get the share price back up while the market is hot.
I fully agree that keeping the community as it is holds better long term value and I hope Rob and the rest of the Slashdot team get their way.
I am one of the majority; a lurker that doesn't post much. In fact, although I've read Slashdot since its beginnings, I didn't bother to create an ID till a few years ago.
Thanks for your hard work. I wish you a satisfying 10 more years!!!!
Its good to see some original business models coming out. I have grown tired of so much reliance on ad models. Perhaps this Internet thing is here to stay.
The facebook eval may be sky high, but they do have two keys elements that your modest proposal doesn't have:
1 - real revenue. Yes, they are raking in ad money.
2 - item 1 is due to lots of users that will probably keep coming back for the next few years. Sure, there may come along another platform but facebook will keep a large pool of users for years to come.
If you can find a way to bootstrap these items into your modest proposal, then you have something.
Jon
It may be effective to step back further and help people understand that the Internet is, by design, a P2P network. What we call P2P apps are simply higher levels tools and protocols on top of this existing P2P structure.
Combine this information with the general understanding that it is perhaps impossible to un-share information after it has been shared. This principal of not being able to un-share is without regard to the technology used.
After that, you may get people to change their behavior. Or maybe not.
I have used Ruby and Rails (limited and recently) and Smalltalk (significantly and years ago).
Your question:
"why would you choose a slow-and-expressive language over a fast-and-expressive one?" is something I struggled with when I was choosing a language for my new web app http://www.shellshadow.com/ . I spent too much time on this choice.
My previous company was patternWare (Smalltalk and later Java app frameworks). I knew lots about frameworks. I see Ruby on Rails and say, "its nice but not near as enterprise quality and scalable as what I've built myself". But the bottom line is it is "nice" and "does what it claims for building web apps".
A retrospective on my decision for using Ruby on Rails is:
1 - I'm building a web app as "a part" of my business. Its not the whole of my business. If I build it correctly with Rails, I can always outsource a rewrite in something "more scalable" if need be. This time may never come, but I know that my web app code is very clean due to choosing Rails. Note: As a prior life in building app frameworks, I don't recommend using "magic". I use Rails for the core http request cycle and MVC separation and consider myself using Ruby for the rest of my needs.
2 - Mindshare. My new startup, shellshadow, has two other key components to my technology beside the web app. I need to easily find top talent for each of these three components.
I wanted to use Smalltalk. I also wanted to use Erlang (longer post required).
But the bottom line is I needed to find good talent that could plug into my business as I grew.
Ruby (and Rails) fits "right now". Smalltalk (and Seaside) does not. I can buy more server horsepower. Finding and scaling programmer talent is harder.
Jon
I love this thread!!!
The fine article has enlightened me. I'm bringing my 2 year old to my next VC meeting. Seriously, why haven't I thought of this before?
When I talk tech to my non-tech friends, sometimes I hear things like "Slow down...now just explain it to me like I'm a 2 year old."
Imagine if my elevator pitch came from my 2 year old? My son is very cute.
I'm truly encouraged by this and congrats to the 12 yo entrepreneur!!
Good reply. You are correct. Trust is something that must be earned and this takes time and great care from the person wanting your trust.
As to http://www.shellshadow.com/ some may prefer to run their own relay server. This is possible and I expect to enable people to run their own relay or to let them study the source.
As the product just launched and hasn't even exposed its business model, I expect early adopters are either blindly trusting the service in environments where trust is mitigated or they are trusting based on recommendation from someone they do trust. This is how most start-ups go about earning trust.
If you have more ideas on how shellshadow can earn trust, please let me know.
I have started a google group to discuss the tech and business model behind shellshadow. http://groups.google.com/group/shellshadow
Thanks for the encouragement, If you or someone you know wants to help with the port to linux/gtk of the shellshadow client (should be easy), I would love to hear from you!!
thanks, Jon
GoToMyPC did not start as a closed source product from Citrix. It started as a closed source product from Expertcity. Expertcity was an unknown and yet people found reasons to trust it and the company grew enough that Citrix acquired it.
In short, The parent comments are pure FUD which can be applied to just about any closed source start-up...And this assumes you automatically trust closed-source software from a large company. This also assumes if it were open source that people have reviewed it in enough detail to be trusted...or that you would completely review the open source and its mods before using the product...highly doubtful.
There may be reasons not to trust any new product. However, broad based FUD slams are counter productive.
In an earlier post on this article, I reference my new product http://www.shellshadow.com/ which is different tech from ShowMyPc, but may suffer from similar FUD attacks. I don't worry too much about these attacks. I'll just do my best to host a trustworthy service and build from there. I have to assume ShowMyPc intends to do the same.
trust is a big topic...
Jon
I just launched a new product, ShellShadow... http://www.shellshadow.com/
;-), but a topical one, I hope.
By "launched" I mean the site is public for the last 2 weeks but no general announcements yet. Just a few friends testing to make sure its behaving well.
Unlike so many GUI Collaboration tools, ShellShadow is Terminal Client collaboration (light, low bandwidth, and doesn't share your desktop).
The client is derived from PuTTY. I have not released the source to the derived client or the coded-from-scratch relay server. The PuTTY license does not require me to do so.
There are some key questions that should be answered about giving back to the open source community. But nothing can be given back without the company having a stable and growing revenue model.
I welcome meaningful feedback on this business and the use of the various open source technologies it leverages.
Yes, this post is a shill
I've looked at ShowMyPC.com and happy to see more action in this market. If they are in violation of some open source agreement, I hope they get it worked out.
enjoy, Jon
This law suit is fantastic!!!
Imagine the possibilities of this legal precedent? If a credit tracking bureau gets your info wrong and refuses to remove it, can we sue said bureau and have their entire Internet presence killed? Sound good to me...anyone want to pool there assets for a class action suit? Maybe these scum sucking lawyers representing e360 can be put to good use after-all!!!
Add to this the marvels of the Ken Lay precedent. Does it mean that whenever you die but have not exhausted your appeals (and whoever does except death row inmates?) that your family gets whatever money the gov other plaintiff took from you??
IANAL, But I do know how to think outside the box!!! And these lawyers are obviously in some alternate unboxed universe!!! The judge? Well, he obviously thinks of the Internet as just a series of tubes with spamhaus putting a kink in the garden hose.
What about a Windows IDE which handles remote execution / debugging ? I am currently searching for a good solution for one of my Windows C/C++ developers who is currently using VS 2005 and will shortly need to take what he has coded and try to compile / debug it on FreeBSD. The app being developed is a non-GUI traditional socket server app. I want to find a tool that works on Windows so he doesn't have to learn a new Desktop environ at the same time as he is learning how to debug the app on FreeBSD. any suggestions? thanks, root-a-begger ;-)
If you stuck using a language which suffers from lack of high-level concurrency, fault tolerance and distribution built in, then you have to use many different frameworks to make up for this and you're back to the original post which could be restated "How do I choose a framework to support a language which lacks high level mechanisms for concurrency, fault-tolerance and distribution?"
I'll explain my position...
I am a framework programmer in OO technologies for the last 15+ years. I've built frameworks and frameworks for frameworks. Although I take a fond interest in the many good frameworks out there, I am no longer in the framework business and am in the position of choosing a framework for my application needs. I'm building Web 2.0 type web apps for large user base (whatever that means to you).
Here's what I've decided from looking back at my own frameworks and using many others:
1 - Most application frameworks do two things: a) provide a declarative model for your app and b) encapsulate concurrency issues. The declarative model ensures your app programmers stick to the application domain and not the intricacies of how for example the MVC interactions work. Encapsulating concurrency issues (either in the O/R or the UI frameworks) keeps your app programmers from shooting themselves and each other in the foot over concurrency which is always tough to get correct.
2 - The other things that frameworks do well is distribution and fault tolerance. We find that there seems to be a separation in the framework world where declarative and concurrency issues get handled in the application frameworks and fault tolerance and distribution tasks get delivered in the form of application servers / containers.
When I started looking for a framework for my web apps, I looked hard at these four issues: declarative app model, concurrency, fault tolerance, and distribution.
At some point in my search, I stumbled upon erlang where I found that concurrency, fault tolerance and distribution were handled at the language level (or at least deeply and consistently embedded in the VM and libraries).
This left only a declarative framework for providing a high-level structure for my apps. This in turn means my "framework" needs are very small and simple.
Some other posts today mention that deficiencies in the language are the reason for needing so much framework infrastructure. I have to mostly agree with this position...I have not found any other language solution that removes 3 out of the 4 framework jobs as well as I can in erlang.
If you are stuck with a mainstream language choice, then I would suggest other criteria in picking a framework: The DRY approach of rubyonrails produces much more maintainable framework solutions than the Java approach which has large communities of vendors working on separate frameworks which produce overlap and pattern nuance.
good luck,
Very interesting post!
I haven't touched eiffel since early 90s so I can't give a fair comparison. In regards to my wide-ranging research on choosing a programming language for my current work, I didn't consider eiffel too strongly as I am drawn more to dynamic typing or at least strong type inference (see scala, http://scala.epfl.ch/ ). I realize that dynamic typing generally makes it more not less difficult to deliver a provably correct system. erlang takes a unique approach to this by the way it handles errors. The programmer is encouraged to not program defensively and to let the erlang system handle errors for anything the programmer did not explicitely expect. This is a unique approach and when tied to a dynamic language seems to work well.
I find great qualities in many programming languages. Ruby, Python, Java, Smalltalk, C++, Haskell, OCaml all have their place from a language perspective.
However, I wanted more than a language but a complete system with distribution, database, web server, fault-tolerance all built in.
So far as langugage design goes, I am very found of scala. The team behind scala created a syntax that melds pure objects, pure functions and type inferencing without clutter. A remarkable acheivement. However, scala is so new that it has few of its own libraries. I was tempted to embark on creating the frameworks/libraries I needed for scala, but I wanted out of the framework business. Erlang has an evolved syntax and is not without its quirks and inconsistencies. I have been able to put my purist attitude aside by being grateful for the comprehensive system it provides.
I can tell you this: What initially attracted me to erlang was the ejabberd project http://ejabberd.jabber.ru./ ejabberd has most of the qualities of the type of software I expect to build. This includes massive concurrency, security (in the form of process isolation and shared nothing data structures), fail-over/distribution, multi-database support, html templating for the web ui. ejabberd accomplishes this with a much smaller code base than comparable Java solutions. After studying the ejabberd product, I started to take erlang more seriously...the rest is history.
I recently completed my first large project for a customer using erlang (including the latest ajax stuff) and have received most of the benefits I thought I would receive.
BTW, I have been living in Shanghai since 2000 and have found the pimsleur madarin tapes to be the best. Yes, a different approach can mean so much more than just more content.
good luck...
aristus,p df
I started looking at erlang in Fall 2004. Its my first serious try at functional programing so I consider my a newbie in functional idioms. However, erlang is not purely functional and is accessible to people with OO experience.
I was a lurker on the erlang-questions maillist for 6 months before making a final decision to start building my apps with erlang. The maillist community is very solid and should be considered a base for your ongoing adoption of erlang.
Here is the maillist and faq link:
http://www.erlang.org/faq.html
If you download any erlang install http://www.erlang.org/download.html, lots of docs are included. There are also some docs not included:
http://www.erlang.org/doc.html
I consider this doc a must read for anyone starting erlang:
http://www.erlang.org/download/erlang-book-part1.
The http://www.trapexit.org/ site is a very good portal for docs and the forums are a bi-directional link to the erlang-questions maillist.
The howtos are good to start with:
http://www.trapexit.org/docs/howto/
If you will develop anything requiring a web server, go directly to http://yaws.hyber.org./ Mostly good docs here. Yaws is the most excellent web server written in erlang.
jungerl is a repository of mostly small erlang libraries. Lots of good tools and example code in here:
http://jungerl.sourceforge.net/
ejabberd http://ejabberd.jabber.ru/, a jabber server in erlang, is an excellent example of how to put together a large distributed web based system in erlang.
nothing is perfect, but erlang's benefits to me far outway its rough edges...hopefully, you will experience the same.
good luck...
I take time out of my very busy day to try to provide a serious answer and I get 4 replies. 2 have to do with sentence structure about Java being invented after Samlltalk. Yours has to do with a misplaced word.
Try to stay on topic. Your reply is what makes people like me not want to participate in meaningful discussions.
My post wasn't intended to be a complete discussion of erlang, lest I be moded a troll ;-)
Here are some answers:
For database, I am very happy with the erlang/OTP mnesia database. Mneisa is very robust, fast and supports transactions, replication, event triggers, etc... An add-on to it is rdbms, which adds type and relational constraints.
For interfacing to SQL dbs, erlang has a nice ODBC library which works as expected. Also a native MySQL driver is available. So no problems there.
For UI, I knew all my apps would use next gen dynamic HTML via things like AJAX. This works very nice as there are maturing erlang and Javascript libraries to support this. The erlang Yaws web server is superb as it give the best of simple templating like PHP with the power of the erlang platform.
There exist erlang UI libraries for tradition GUIs ranging from X, Tcl/Tk, and GTK.
enjoy, root-a-begger