and you know what? People can find them just fine with google or google image search. And I get the adsense revenue myself. It's not much - maybe enough for a pizza for my wife and I every now and then, but hey, I'm not complaining.
So... what's so "fantastc abot Flickr"? Sure, it's nice for those who don't have their own web hosting space... I'm not trying to say it's bad, but I don't get the hype.
... especially a friendly open source one, why not stand on his shoulders instead of trying to compete with him? Isn't that the point of all this, to make better technology?
It's not like a trademark where they need to constantly defend it from everyone. The patent is Eolas' property, and they can say, without problems "microsoft must pay, but firefox need not". And that's basically what they've said in the past.
I suppose this would be as good a place as any to mention the wiki I started, Windows for Linux Users, which attempts to gather up some software that is useful for long-time Linux users who are for some reason constrained to use Windows. I know I had a terrible time getting the environment to a point where I didn't want to smash the computer because focus wasn't following mouse and a bunch of other little annoyances.
"300+ million J2ME capable phones" shows that Sun has some savvy marketing people more than anything:-)
I do have some experience with j2me - I wrote Hecl for it, and found that it's a fun environment to work with, modulo the inconsistencies between phone models. It's really different from 'normal' Java though - you have to do a lot of things differently, and you have a very limited version of the standard library.
But in any case, my point was not really with regards to the embedded systems arena, but in terms of scaling down in human terms - being able to get more done faster without necessarily having the most capable developers out there.
There is a large ISP in the US called AOL, which runs on a web server called AOLserver, which is now open source software. The web server makes extensive use of Tcl. Many other large sites use PHP. So, you can make it scale if you want to (although this may involve mixing in some C code).
Does it scale as well as Java? Perhaps not. The point is that it's easier to get started with the scripting language, though. Your customers probably had an easier time of it getting started with scripting rather than diving into some complex, difficult to implement Java solution. In some cases, I know I wouldn't have had any customers at all if they had had to start out with C or Java rather than a scripting language, which was easy enough that they could at least implement their idea to the point where it made money - and then they could pay me to fix up their code and make it faster, more elegant, and so on.
In any case, what's interesting to me is the range of scaling - Java does pretty well if you consider the high end, but not so well at the low end. Some scripting language systems don't scale up well enough. The best things start out pretty easy and will grow with you a long way before you have to go implement the big hairy memory intensive Java thing though.
I do agree with you WRT the speed thing... JITing stuff seems to be a pretty good solution.
In any case, the tools that impress me most are those that scale up, but scale down as well too. Google has the money and the brains to make anything work, more or less. What's more impressive to me is technology that lets Joe Schmoe get things up and running easily, and then still scale up reasonably well. I wrote a bit about it here: http://www.dedasys.com/articles/scalable_systems.h tml. Java scores just a bit better on this front than C and C++, because of the big standard library and GC, but it's a long way from perfect, and not as good, IMO, as scripting languages.
Oh, I just put C first because I was responding to a guy who mentioned C. I completely agree that a scripting language is probably better as a first language. It really does depend on what he wants to do, but most likely a scripting language will be more satisfying in that it's more immediately applicable in the short term.
It's hard to say exactly what language is the right one without a better idea of this guy's goals, but here's a shot at it:
C: like the parent says, it will give you a good insight into how computers store things at a low level, and of course it's useful if you want to do low level things yourself. If you really get into programming, you'll need to learn it sooner or later, but it might not be the best if you just want to learn a bit and get something done.
Tcl/Python/Ruby: Pick a scripting language and learn it as a good way to get things done quickly. Each has its advantages.
Smalltalk, Forth, Scheme: less useful, but mind-benders that will open your eyes to different ways of doing and thinking.
A couple of years ago, I was doing some hacking with the eCos embedded operating system and decided that I wanted to load data off the floppy before running the application, and so needed a floppy driver. Of course, I looked at Linux and BSD systems first, but they had big, hairy drivers. To be fair this is true partially because they try and support all kinds of weird hardware, but they also contain calls into lots of other parts of the system. On a whim, I got out my minix book, looked at the source code, and found the port was a lot easier, and finished it up in a few days (at least reading, I didn't need to write). In any case, the results are here:
unfortunately it's content you have to pay for. The gist of it is that things are working pretty well right now, and that the countries who really want to change the current situation are countries like China and Iran. If someone were proposing to hand over ICANN to Switzerland or something like that, maybe it wouldn't be so bad, but a big UN committee? That's not likely to improve the situation.
The ideal solution would be less government intervention from everyone involved, the US included, not more from a bunch of authoritarian regimes.
Yes, it's a "mafia target". Who do you think will be siphoning off a lot of the contracting money going into building it? They're not interested in blowing it up.
Italy's 'SIAE' group are a bunch of thieving bastards who do much to detriment musical culture in this country.
It cost us something like 150 Euro in taxes just to have a duo play for a few hours at our wedding! To add insult to injury, because our wedding reception was in a different province, we *had to go to the office of these thieving bastards in that province* (open from like 10-12 on certain days) - we couldn't even pay their larcenous fees in our home town.
The taxes are so high that young, aspiring musicians like my wife's brother, who certainly isn't in it for the money at this point in his life, has trouble finding places to play because it's just too expensive in terms of taxes for everyone concerned.
Not only that, but these rats have successfully campaigned to tax the sale of blank CD's, "because they're all used for piracy anyway, right?".
What a bunch of despicable individuals.
Yes, I'm bitter and I just thought I'd get that off my chest.
... a linguistic solution stack in order to take away added value from your interaction with the marketing engineers. The correct solution stack will enable your business to meet your customers' complete needs for delivery of verbal content designed to maximize their confidence in your area of core expertise - providing software solutions. This is a win-win situation that allows you to focus on excellence while obtaining a higher margin for the same mature products, and maintain a high-quality relationship with your clients....Phew!... that's hard...
I do a bit of consulting work that could be termed "open source strategy", and while it's aimed at business types who need/want to better understand the world of free software, a lot of it would be applicable to a course like this.
The first big decision you have to make of course, is whether there will be a "hands on" component where people learn about actual technologies that are popular in the open source world. In that case, I would get them going with Ubuntu, show them some popular systems like Apache and Postgresql, then some programming with C and a scripting language or two (Tcl and Python, perhaps), and autotools.
The most important part of this course would be, as others have stated, concentrated on what makes open source open source.
* Philosophy. * Licensing and its practical applications (what code can I use? in what projects?) * Economics - how do people do this and not starve?! * Community - this is probably the most important one, and it draws on the other points. What kinds of open source communities are there already (FSF, ASF, various *BSD's, etc...), what makes them different? What are their motivations? How can you interact with them? How to build a strong community for your own open source efforts? * Case studies. Linux, Apache, and the other big ones, but also some smaller, successful projects that are not such statistical outliers. Most people are not going to write the next Linux or Apache, but that doesn't mean they can't have a healthy, successful open source project.
I'm kind of envious - I think it would be a lot of fun to teach a course like that!
Ok, so some of these tools are not suitable for running Amazon. But guess what - most people are not running Amazon! A lot of people don't have the development resources that amazon has, either, so what they are really looking for is a sweet spot that lets them get going quickly, and will grow within reason.
I'm still mulling it over and working on it, but I talk some about "scaling down" in this article:
You're right of course that you don't want stuff that falls over the first time traffic spikes a bit, but you absolutely must have something that you can use to produce a functional product. You can have the fanciest, most scalable system out there, but if you spend two months twiddling with XML config files, things just aren't going to work out.
I think the other big thing that's still missing is to make the standard distribution 'batteries included' - we'll see if we can make that happen soon.
I love the language, in any case, it's super easy to get people started with, and if you look under the hood, it's coded very well, and has an *extensive* C API. That was what really sold me on the language - the ability to really integrate it well and easily with C code. Python's C API is good too, but I thik Tcl's is still broader.
This example illustrates one of the fundamental principles of the economic analysis of liability: it should be assigned to the party that can do the best job of managing risk. For most risks associated with A.T.M.'s the banks are in better position to manage risks than are the users, so they should end up with most of the liability. But you wouldn't want the users to escape all liability for their actions, since they would then tend to be too sloppy. The right balance should depend on the influence that each party has over the possible risk factors.
Hal Varian is a professor of Economics at UC Berkeley, and generally a bright guy.
Some of the O'Reilly books are really good, especially the Perl one mentioned above, but over the years, I've found the composition of my bookshelf shifting from the O'Reilly manual/tutorial/reference style books to a broader range of things, including more "classics", many of which come from Addison Wesley and PTR (see below for a gratuitous Amazon-spamming:-). O'Reilly seems to produce books that are really good at covering "today's hot buzzword" well, giving you a good overview of the technology, and enough in-depth knowledge to get what you need done. However (and only time will tell if I'm right), this approach seems to produce books that have a more limited shelf life, compared to something like Knuth, K&R, SICP and the like. In any case, I love books...I'd buy tons of them if I had the money!
So... what can we say? Software patents are still not our friends, but seeing "the little guy" beat up on Microsoft is certainly better than, say, Microsoft holding this pattent and beating up on a little guy.
This team works for cheap:
http://www.newtechusa.com/ppi/talent.asp
I put my photos up on the web, and give each one a description. For instance:
http://www.dedasys.com/photos/padova_inverno/
and you know what? People can find them just fine with google or google image search. And I get the adsense revenue myself. It's not much - maybe enough for a pizza for my wife and I every now and then, but hey, I'm not complaining.
So... what's so "fantastc abot Flickr"? Sure, it's nice for those who don't have their own web hosting space... I'm not trying to say it's bad, but I don't get the hype.
This is an interesting article by Hal Varian on the economics of Amazon's used book sales:
m es/2005-07-28.html
l /articles.html?
http://www.sims.berkeley.edu/~hal/people/hal/NYTi
His collection of articles make for pretty interesting reading about a variety of topics, from the perspective of an economist:
URL:http://www.sims.berkeley.edu/%7Ehal/people/ha
... especially a friendly open source one, why not stand on his shoulders instead of trying to compete with him? Isn't that the point of all this, to make better technology?
So it's not what the previous poster meant, but here is a cool site with lots of 'cool hacks' open source software for mobile phones:
http://ngphone.com/j2me/opensource/
and hey, while I'm at it, I might as well mention my own project to do scripting for j2me, Hecl.
It's not like a trademark where they need to constantly defend it from everyone. The patent is Eolas' property, and they can say, without problems "microsoft must pay, but firefox need not". And that's basically what they've said in the past.
I suppose this would be as good a place as any to mention the wiki I started, Windows for Linux Users, which attempts to gather up some software that is useful for long-time Linux users who are for some reason constrained to use Windows. I know I had a terrible time getting the environment to a point where I didn't want to smash the computer because focus wasn't following mouse and a bunch of other little annoyances.
Hi,
A few comments:
"300+ million J2ME capable phones" shows that Sun has some savvy marketing people more than anything:-)
I do have some experience with j2me - I wrote Hecl for it, and found that it's a fun environment to work with, modulo the inconsistencies between phone models. It's really different from 'normal' Java though - you have to do a lot of things differently, and you have a very limited version of the standard library.
But in any case, my point was not really with regards to the embedded systems arena, but in terms of scaling down in human terms - being able to get more done faster without necessarily having the most capable developers out there.
There is a large ISP in the US called AOL, which runs on a web server called AOLserver, which is now open source software. The web server makes extensive use of Tcl. Many other large sites use PHP. So, you can make it scale if you want to (although this may involve mixing in some C code).
Does it scale as well as Java? Perhaps not. The point is that it's easier to get started with the scripting language, though. Your customers probably had an easier time of it getting started with scripting rather than diving into some complex, difficult to implement Java solution. In some cases, I know I wouldn't have had any customers at all if they had had to start out with C or Java rather than a scripting language, which was easy enough that they could at least implement their idea to the point where it made money - and then they could pay me to fix up their code and make it faster, more elegant, and so on.
In any case, what's interesting to me is the range of scaling - Java does pretty well if you consider the high end, but not so well at the low end. Some scripting language systems don't scale up well enough. The best things start out pretty easy and will grow with you a long way before you have to go implement the big hairy memory intensive Java thing though.
I do agree with you WRT the speed thing... JITing stuff seems to be a pretty good solution.
That link doesn't work.
h tml. Java scores just a bit better on this front than C and C++, because of the big standard library and GC, but it's a long way from perfect, and not as good, IMO, as scripting languages.
In any case, the tools that impress me most are those that scale up, but scale down as well too. Google has the money and the brains to make anything work, more or less. What's more impressive to me is technology that lets Joe Schmoe get things up and running easily, and then still scale up reasonably well. I wrote a bit about it here: http://www.dedasys.com/articles/scalable_systems.
Oh, I just put C first because I was responding to a guy who mentioned C. I completely agree that a scripting language is probably better as a first language. It really does depend on what he wants to do, but most likely a scripting language will be more satisfying in that it's more immediately applicable in the short term.
It's hard to say exactly what language is the right one without a better idea of this guy's goals, but here's a shot at it:
C: like the parent says, it will give you a good insight into how computers store things at a low level, and of course it's useful if you want to do low level things yourself. If you really get into programming, you'll need to learn it sooner or later, but it might not be the best if you just want to learn a bit and get something done.
Tcl/Python/Ruby: Pick a scripting language and learn it as a good way to get things done quickly. Each has its advantages.
Smalltalk, Forth, Scheme: less useful, but mind-benders that will open your eyes to different ways of doing and thinking.
A couple of years ago, I was doing some hacking with the eCos embedded operating system and decided that I wanted to load data off the floppy before running the application, and so needed a floppy driver. Of course, I looked at Linux and BSD systems first, but they had big, hairy drivers. To be fair this is true partially because they try and support all kinds of weird hardware, but they also contain calls into lots of other parts of the system. On a whim, I got out my minix book, looked at the source code, and found the port was a lot easier, and finished it up in a few days (at least reading, I didn't need to write). In any case, the results are here:
"Scivoli": http://www.dedasys.com/freesoftware/ecos.html
and an article (in Italian): http://www.dedasys.com/articles/ecos.html
... and also the same country that brought you the internet. Or one bit of it at least.
d =E1_QQRRGQQ&tranMode=none
Apparently there are more politics going on with this conflict than most of us realize from reading slashdot stories about it.
The Economist had a pretty good editorial about the whole thing here:
http://www.economist.com/displaystory.cfm?story_i
unfortunately it's content you have to pay for. The gist of it is that things are working pretty well right now, and that the countries who really want to change the current situation are countries like China and Iran. If someone were proposing to hand over ICANN to Switzerland or something like that, maybe it wouldn't be so bad, but a big UN committee? That's not likely to improve the situation.
The ideal solution would be less government intervention from everyone involved, the US included, not more from a bunch of authoritarian regimes.
Yes, it's a "mafia target". Who do you think will be siphoning off a lot of the contracting money going into building it? They're not interested in blowing it up.
Italy's 'SIAE' group are a bunch of thieving bastards who do much to detriment musical culture in this country.
It cost us something like 150 Euro in taxes just to have a duo play for a few hours at our wedding! To add insult to injury, because our wedding reception was in a different province, we *had to go to the office of these thieving bastards in that province* (open from like 10-12 on certain days) - we couldn't even pay their larcenous fees in our home town.
The taxes are so high that young, aspiring musicians like my wife's brother, who certainly isn't in it for the money at this point in his life, has trouble finding places to play because it's just too expensive in terms of taxes for everyone concerned.
Not only that, but these rats have successfully campaigned to tax the sale of blank CD's, "because they're all used for piracy anyway, right?".
What a bunch of despicable individuals.
Yes, I'm bitter and I just thought I'd get that off my chest.
... a linguistic solution stack in order to take away added value from your interaction with the marketing engineers. The correct solution stack will enable your business to meet your customers' complete needs for delivery of verbal content designed to maximize their confidence in your area of core expertise - providing software solutions. This is a win-win situation that allows you to focus on excellence while obtaining a higher margin for the same mature products, and maintain a high-quality relationship with your clients. ...Phew!... that's hard...
I do a bit of consulting work that could be termed "open source strategy", and while it's aimed at business types who need/want to better understand the world of free software, a lot of it would be applicable to a course like this.
The first big decision you have to make of course, is whether there will be a "hands on" component where people learn about actual technologies that are popular in the open source world. In that case, I would get them going with Ubuntu, show them some popular systems like Apache and Postgresql, then some programming with C and a scripting language or two (Tcl and Python, perhaps), and autotools.
The most important part of this course would be, as others have stated, concentrated on what makes open source open source.
* Philosophy.
* Licensing and its practical applications (what code can I use? in what projects?)
* Economics - how do people do this and not starve?!
* Community - this is probably the most important one, and it draws on the other points. What kinds of open source communities are there already (FSF, ASF, various *BSD's, etc...), what makes them different? What are their motivations? How can you interact with them? How to build a strong community for your own open source efforts?
* Case studies. Linux, Apache, and the other big ones, but also some smaller, successful projects that are not such statistical outliers. Most people are not going to write the next Linux or Apache, but that doesn't mean they can't have a healthy, successful open source project.
I'm kind of envious - I think it would be a lot of fun to teach a course like that!
Ok, so some of these tools are not suitable for running Amazon. But guess what - most people are not running Amazon! A lot of people don't have the development resources that amazon has, either, so what they are really looking for is a sweet spot that lets them get going quickly, and will grow within reason.
I'm still mulling it over and working on it, but I talk some about "scaling down" in this article:
http://dedasys.com/articles/scalable_systems.html
You're right of course that you don't want stuff that falls over the first time traffic spikes a bit, but you absolutely must have something that you can use to produce a functional product. You can have the fanciest, most scalable system out there, but if you spend two months twiddling with XML config files, things just aren't going to work out.
Tcl (and Tk) is still hanging in there, chugging along. Some recent developments:
Tile: modern look and feel + themes for Tk: http://tktable.sourceforge.net/tile/
An object system for the core: http://www.tcl.tk/cgi-bin/tct/tip/257.html
I think the other big thing that's still missing is to make the standard distribution 'batteries included' - we'll see if we can make that happen soon.
I love the language, in any case, it's super easy to get people started with, and if you look under the hood, it's coded very well, and has an *extensive* C API. That was what really sold me on the language - the ability to really integrate it well and easily with C code. Python's C API is good too, but I thik Tcl's is still broader.
I have been doing consulting/contracting for nearly five years, and found this book to have some pretty good advice:
/ dedasys-20/
http://www.amazon.com/exec/obidos/ASIN/0471176494
Anyone got some others to recommend?
Here's a link to the article:
http://www.sims.berkeley.edu/~hal/people/hal/NYTi
Hal Varian is a professor of Economics at UC Berkeley, and generally a bright guy.
Hi, if this is a known problem with Linux and that Inspiron model, you mightconsider adding it to the Linux Incompatibility List:
http://www.leenooks.com/
Thanks!
Actually, the guy behind Eolas is pretty good to free software - mostly through his involvement in the Tcl community:
http://wiki.tcl.tk/1935
http://wiki.tcl.tk/212
So... what can we say? Software patents are still not our friends, but seeing "the little guy" beat up on Microsoft is certainly better than, say, Microsoft holding this pattent and beating up on a little guy.