If you want a small memory footprint, try the embeddable shell alternative: BusyBox.
"BusyBox has been written with size-optimization and limited resources in mind. It is also extremely modular so you can easily include or exclude commands (or features) at compile time. This makes it easy to customize your embedded systems. To create a working system, just add/dev,/etc, and a kernel."
Windows is still king when it comes to desktops. Not only due to a huge market share but also FUD (not all unfair) towards Linux from common users.
If we define the market as computers as in CPUs, I'd say that neither Linux nor Windows wins or comes even close. There must be far more 8051 controllers out there running a hand coded snippet of control code than there are 8086 derivates.
The GNU/Linux movement shouldn't say that we have beaten Windows, let's relax. Rather we should say we can beat Windows, let's work as much as possible producing quality software.
Of course a $33 component woun't find its way into low-end products. However, a new VCR with a harddrive and DVD+RW will cost you more. And it is more probable that the customers buing these units will be interested in an ethernet interface than a customer looking for a cheap unit.
As for thinking about new products, it is easy to come up with numerous units that would benefit from networking. Especially standardized m2m communications would make things much easier for the users.
Anything embeddable sells in tens of thousands. Stationary computers are the least produced computer type. Just imagine all microcontrollers in VCRs for example. I'd say that there are far more than 10000 VCRs sold each year. Now embedd a webserver into each VCR, so that you can program the timer over your private LAN. Thats a possible 10000 units. Now put the same protocol in your digital TV reciever/decoder to change channels, update codes, subscribe to PPV shows etc. and let the VCR change the channel of the decoder and you've got another 10k units.
10k is a small number in the embedded world.
Now, for the real price:
"The list price of the XPort is $49.00. Discount pricing on the XPort is also available in volumes of ten thousand."
according to http://www.lantronix.com/news/pr/2003/02-24-xport. html
It would be truly ironic if Intel adopted AMD's extensions, but it would only show that AMD dared to go against Intel and do the right thing. From a business point of view, it was a brave move and I believe that it will be the best move that they have made in a long time.
Ahh... First we kill a fly to embedd a webserver in its corpse, then we put it on slashdot and watch the webserver die... My evil plan has been fulfilled!
I'm planning to do it for profit, yes. But nothing stops you from doing the same thing, with the same software, for profit. That is one of the purposes of free (libre) software. Sell the service, not the software.
Ask/. may be degrading over the years. But I still read it because once in a while, there is an interesting topic. Stop nagging about it and ask something intelligent your self!
Also, this question is (partly) about licensing. The topic occurs in several places here in the replies section. That is one of the beauties of/. Just put your lower comment level high enough, and the place looks like a high quality discussion forum.
It is sad since these developers miss out on the whole open source movement as they are forced in paying and/or scared off by loads of FUD.
"Most companies that want to use Qt will still pay because they don't like the GPL. So money can't be the motivation, right?"
I do not have any direct insight into TrollTech, nor their business decisions. I do, however, believe that many of Qt's smaller customers develop software to be used in-house (i.e. not to be sold to a third part). For these customers a GPL would just mean free software and nothing else.
As for the open source movement just standing there being thankful and shutting up. I must disagree. Most software developed by the open source movement is protected by licenses and competes with commercial software. This is not what I call being thankful and shutting up. However, when a company (such as TrollTech) chooses to give away a GPL version of their flagship product, I suggest that we are thankful and shut up about licensing issues or develop an equivalent package with a better licensing scheme.
"Do you know the differences between 2.3 and 3.x? I'd really like to know them, because right know it feels more like they are giving away their old junk for free."
I'd say that the main difference is that 3.x holds alot more cross platform stuff than only GUI components (for example SQL access, Sockets and such). Most applications can quite easily be written using 2.3.
My personal experience is that 2.3 is a damn good toolkit making MFC look stupid. So if you are into win32 programming, I'd recommend Qt2.3 in front of anything else. Also, the Qt documentation is one of the best references I've ever used.
"I think it's sad that you cannot use Qt/Windows v3 for free (as in beer at least) as well."
The sad truth is that it is far more easy to make money from win32 developers. They usually pay for the compiler, IDE and OS. Also, TrollTech is a company trying to make profits, so, instead of crying over not getting 3.x for win32 for free, be thankful for the 2.3 for win32 and 3.x for X11!
If you want to learn C++ and do GUI applications. I cannot recommend anything other than Qt. It is the best toolkit I've ever used!
Just to repeat what I was (trying) to say earlier: I believe that most culturally dependant icons can be replaced by a better, more univeral equivalent. As a developer I'd rather pick a slightly more diffuse but universal symbol and let the user turn text on the buttons on and off. This way the users can learn what the icons means.
I believe that icons usually are leared rather than understood right away. This is why I understand that a white sheet means "new document". This way a set of metaphors have been developed. These symbols are, as many symbol based languages, becoming more and more abstract and applied to a wider and wider field of applications.
As for putting text in icons (such as the C in your example). This is actually done in Word (and the other Office applications) for the text formatting buttons (bold, italic, underlined). The swedish word for bold is fet, thus the icon is a bold F in the swedish version (as opposed to the bold B in the english version). So I guess that this is one of 0.1% of the cases where it is necessary to internationalize icons too.
Yet another problem with language specific versions of software is the delivery dates. Here (at work in Sweden) we prefer to use US-English software because of three reasons: 1) They are usually released earlier, 2) They are usually patched quicker and 3) We all speak English, at least the computerized version of English:).
As for having interesting discussions on/. This is perhaps my third sane discussion in a year, so they are pretty rare. But when I run into one (such as this) I really enjoy them, so they are worth the wait!
1. Free as in freedom, i.e. access to the source.
2. Free as in very little extra work.
Also, Qt is free for GPL use, and many (if not most)/. readers are GPL users. Also, coming to think about it, Qt 2.3 is free (as in no money spent) for Win32.
One of the reasons to icons, imho, is that they are supposed to be universal. For example (your example) a mailbox is a bad symbol, as it is not universal due to cultural differences. However, letters, or rather, envelopes generally look the same, and thus make a better symbol. This is my view on how to use icons.
You claim that right-to-left (RL) layouts require RL ordering of widgets and labels. With the design of Qt, it would be possible to re-implement the layout classes (mainly grid and horizontal layouts, and QHBox) so that they, depending on locality, work in the RL direction when needed.
When you say that translating and application outside the GUI would be like translating a text, sentence by sentence, you are not too far away from reality. However, most texts shown in applications are short commands like "Open File", "Rescan Mailboxes", etc. These are sentences that are to be translated separately after standard templates. Other, more explanatory, texts such as help, wizard guides and such are generally treated as one unit, thus translated several sentences in a chunk.
You claim that sometimes it will be needed to change the layout of a dialog more dramatically than simply altering the LR/RL layout and translate the texts. Of course these situations will occur, as there always are exceptions to all rules. However, I see this need as the symptom from a bad design choice. It should be possible to use the same dialogs everywhere (after having altered the texts and LR/RL order) in 99.9% of all cases.
The Cocoa approach seems good to me. This is a similar approach to the one that the good old GEM/TOS used on the Ataris used. It is possible to do this using Qt too. Simply load and create the dialogs dynamically. Store them on disk as XML (.ui) files and edit them in the Qt Designer. This combined with Qt Linguist (allows translations of in-code texts) are sufficient in 99.9% of the cases. This also allows non-programmers to localize applications quite easily, even though I don't want a non-techie to mess with my dialog definitions.
Please don't take my replies as objections to your points. They are good points and apply to a great part of all software produced. However, I think that the problem is quite easily fixed by a good design (which, in turn, Qt represents in many cases).
I do not disagree with you, but I would like to bring forward some points:
"The first thing to understand is that you do not localise text, you localise resources. Window and dialog layout change depending of the language, so do icons (certain symbols have not the same meaning in different cultures). This is why layout should be described in resource files, not hard coded."
Qt's flexible dialog layout algorithms ensure that the text is always visible. As for changing symbols. This can be avoided if the symbols are picked with care and cultural dependencies are avoided (i.e. do not draw a wooden log for the log-viewing-function).
"French texts are longuer than in English. If you fail to take this into consideration, your text will spill out of the text zone."
As I pointed out in my last comment, Qt has flexible dialogs ensuring text (and more generic, widgets) visiblity.
"Do not assume that text layout rules are the same in all the languages. French spacing conventions are different from English spacing conventions. No doubt that texts in other writing systems with ideograms or that read right to left have also different text layout rules."
As I understand it (haven't tried myself) Qt can handle right-to-left texts, the rest is really in the text-showing widgets and translations.
As for string comparisons, this is a constant problem. I live in Sweden where , and are sorted differently than in germany. Despite being exactly the same characters.
"By the way, "My string in my native language" automatically translated into French gives you "Ma ficelle dans ma langue natale", which roughtly means "My small rope in my native language"."
By using Qt Linguist the translator gets to work with one string at a time, so when translating the above string to Swedish I'd write it as "Min sträng på svenska".
Most of these problems can be solved by a good object orientated approach. For example the text layout policies and such can be stored in different classes, with the widget showing the text working independently, simply asking the assigned text layout manager class.
Qt does support good OO approaches and the rest is up to the software designer.
You will need an OS since most future phones will be built from a common platform and then targeted by altering of software, and perhaps gadgets. Thus a low end phone can just be a high end one running less cool software, will less memory and slower CPU. (just like low end computers).
I hope that you understand the need for an OS on higher end phones, so I will not go into that.
Linux is GPL so any kernel modifications must be posted. However, loaded modules can be held closed. Also all software running on the Linux kernel can also be kept a secret.
As the article says, the custom software will run in Java running on Linux, so it will be a JVM hosted by Linux, but Linux will probably not be visible to the end user.
And when speaking about Java applets running on phones. That has been done by both Ericsson and Nokia for a while now.
It seems as Windows and Linux will meet at yet another frontier. Desktop-wise Windows is holding strong and no break-through seems to be near. Server wise, I'd say that Windows is loosing, but only slowly and more work will be needed. In the portable area, both Linux and Windows are relatively new players, but Linux is better suited. Hopefully this will mean that more developers start using (and liking) Linux, and thus help Linux in other areas.
If you want a small memory footprint, try the embeddable shell alternative: BusyBox.
"BusyBox has been written with size-optimization and limited resources in mind. It is also extremely modular so you can easily include or exclude commands (or features) at compile time. This makes it easy to customize your embedded systems. To create a working system, just add /dev, /etc, and a kernel."
We bring you the 1st part of the Ars Technica Guide to p0rn^H^H^H^HVideo Capturing, Cleaning, and Compression.
Just go to the adopt-a-geek site! They are screaming for old hardware.
A friend of mine has got one. It has a DOOM-like game (1st person shooter) where one shoots and aims by tapping the pen. Real fun!
Windows is still king when it comes to desktops. Not only due to a huge market share but also FUD (not all unfair) towards Linux from common users.
If we define the market as computers as in CPUs, I'd say that neither Linux nor Windows wins or comes even close. There must be far more 8051 controllers out there running a hand coded snippet of control code than there are 8086 derivates.
The GNU/Linux movement shouldn't say that we have beaten Windows, let's relax. Rather we should say we can beat Windows, let's work as much as possible producing quality software.
Of course a $33 component woun't find its way into low-end products. However, a new VCR with a harddrive and DVD+RW will cost you more. And it is more probable that the customers buing these units will be interested in an ethernet interface than a customer looking for a cheap unit.
As for thinking about new products, it is easy to come up with numerous units that would benefit from networking. Especially standardized m2m communications would make things much easier for the users.
Anything embeddable sells in tens of thousands. Stationary computers are the least produced computer type. Just imagine all microcontrollers in VCRs for example. I'd say that there are far more than 10000 VCRs sold each year. Now embedd a webserver into each VCR, so that you can program the timer over your private LAN. Thats a possible 10000 units. Now put the same protocol in your digital TV reciever/decoder to change channels, update codes, subscribe to PPV shows etc. and let the VCR change the channel of the decoder and you've got another 10k units.
10k is a small number in the embedded world.
Now, for the real price:. html
"The list price of the XPort is $49.00. Discount pricing on the XPort is also available in volumes of ten thousand."
according to http://www.lantronix.com/news/pr/2003/02-24-xport
It would be truly ironic if Intel adopted AMD's extensions, but it would only show that AMD dared to go against Intel and do the right thing. From a business point of view, it was a brave move and I believe that it will be the best move that they have made in a long time.
Is this what you call a telephone operator?
Ahh... First we kill a fly to embedd a webserver in its corpse, then we put it on slashdot and watch the webserver die... My evil plan has been fulfilled!
"which is pretty difficult to pull off."
And since there aren't to many reports about this even though the technology is wide spread, I'd say that this looks to me as a news-duck!
A number of points:
And if you call the right data recovery firm, their anit-suicide conselor will give you a few URLs to TGPs just to show you your happy-place.
"In how far is this sad?"
It is sad since these developers miss out on the whole open source movement as they are forced in paying and/or scared off by loads of FUD.
"Most companies that want to use Qt will still pay because they don't like the GPL. So money can't be the motivation, right?"
I do not have any direct insight into TrollTech, nor their business decisions. I do, however, believe that many of Qt's smaller customers develop software to be used in-house (i.e. not to be sold to a third part). For these customers a GPL would just mean free software and nothing else.
As for the open source movement just standing there being thankful and shutting up. I must disagree. Most software developed by the open source movement is protected by licenses and competes with commercial software. This is not what I call being thankful and shutting up. However, when a company (such as TrollTech) chooses to give away a GPL version of their flagship product, I suggest that we are thankful and shut up about licensing issues or develop an equivalent package with a better licensing scheme.
"Do you know the differences between 2.3 and 3.x? I'd really like to know them, because right know it feels more like they are giving away their old junk for free."
I'd say that the main difference is that 3.x holds alot more cross platform stuff than only GUI components (for example SQL access, Sockets and such). Most applications can quite easily be written using 2.3.
My personal experience is that 2.3 is a damn good toolkit making MFC look stupid. So if you are into win32 programming, I'd recommend Qt2.3 in front of anything else. Also, the Qt documentation is one of the best references I've ever used.
"I think it's sad that you cannot use Qt/Windows v3 for free (as in beer at least) as well."
The sad truth is that it is far more easy to make money from win32 developers. They usually pay for the compiler, IDE and OS. Also, TrollTech is a company trying to make profits, so, instead of crying over not getting 3.x for win32 for free, be thankful for the 2.3 for win32 and 3.x for X11!
If you want to learn C++ and do GUI applications. I cannot recommend anything other than Qt. It is the best toolkit I've ever used!
Just to repeat what I was (trying) to say earlier: I believe that most culturally dependant icons can be replaced by a better, more univeral equivalent. As a developer I'd rather pick a slightly more diffuse but universal symbol and let the user turn text on the buttons on and off. This way the users can learn what the icons means.
I believe that icons usually are leared rather than understood right away. This is why I understand that a white sheet means "new document". This way a set of metaphors have been developed. These symbols are, as many symbol based languages, becoming more and more abstract and applied to a wider and wider field of applications.
As for putting text in icons (such as the C in your example). This is actually done in Word (and the other Office applications) for the text formatting buttons (bold, italic, underlined). The swedish word for bold is fet, thus the icon is a bold F in the swedish version (as opposed to the bold B in the english version). So I guess that this is one of 0.1% of the cases where it is necessary to internationalize icons too.
Yet another problem with language specific versions of software is the delivery dates. Here (at work in Sweden) we prefer to use US-English software because of three reasons: 1) They are usually released earlier, 2) They are usually patched quicker and 3) We all speak English, at least the computerized version of English :).
As for having interesting discussions on /. This is perhaps my third sane discussion in a year, so they are pretty rare. But when I run into one (such as this) I really enjoy them, so they are worth the wait!
1. Free as in freedom, i.e. access to the source.
2. Free as in very little extra work.
Also, Qt is free for GPL use, and many (if not most) /. readers are GPL users. Also, coming to think about it, Qt 2.3 is free (as in no money spent) for Win32.
One of the reasons to icons, imho, is that they are supposed to be universal. For example (your example) a mailbox is a bad symbol, as it is not universal due to cultural differences. However, letters, or rather, envelopes generally look the same, and thus make a better symbol. This is my view on how to use icons.
You claim that right-to-left (RL) layouts require RL ordering of widgets and labels. With the design of Qt, it would be possible to re-implement the layout classes (mainly grid and horizontal layouts, and QHBox) so that they, depending on locality, work in the RL direction when needed.
When you say that translating and application outside the GUI would be like translating a text, sentence by sentence, you are not too far away from reality. However, most texts shown in applications are short commands like "Open File", "Rescan Mailboxes", etc. These are sentences that are to be translated separately after standard templates. Other, more explanatory, texts such as help, wizard guides and such are generally treated as one unit, thus translated several sentences in a chunk.
You claim that sometimes it will be needed to change the layout of a dialog more dramatically than simply altering the LR/RL layout and translate the texts. Of course these situations will occur, as there always are exceptions to all rules. However, I see this need as the symptom from a bad design choice. It should be possible to use the same dialogs everywhere (after having altered the texts and LR/RL order) in 99.9% of all cases.
The Cocoa approach seems good to me. This is a similar approach to the one that the good old GEM/TOS used on the Ataris used. It is possible to do this using Qt too. Simply load and create the dialogs dynamically. Store them on disk as XML (.ui) files and edit them in the Qt Designer. This combined with Qt Linguist (allows translations of in-code texts) are sufficient in 99.9% of the cases. This also allows non-programmers to localize applications quite easily, even though I don't want a non-techie to mess with my dialog definitions.
Please don't take my replies as objections to your points. They are good points and apply to a great part of all software produced. However, I think that the problem is quite easily fixed by a good design (which, in turn, Qt represents in many cases).
I do not disagree with you, but I would like to bring forward some points:
"The first thing to understand is that you do not localise text, you localise resources. Window and dialog layout change depending of the language, so do icons (certain symbols have not the same meaning in different cultures). This is why layout should be described in resource files, not hard coded."
Qt's flexible dialog layout algorithms ensure that the text is always visible. As for changing symbols. This can be avoided if the symbols are picked with care and cultural dependencies are avoided (i.e. do not draw a wooden log for the log-viewing-function).
"French texts are longuer than in English. If you fail to take this into consideration, your text will spill out of the text zone."
As I pointed out in my last comment, Qt has flexible dialogs ensuring text (and more generic, widgets) visiblity.
"Do not assume that text layout rules are the same in all the languages. French spacing conventions are different from English spacing conventions. No doubt that texts in other writing systems with ideograms or that read right to left have also different text layout rules."
As I understand it (haven't tried myself) Qt can handle right-to-left texts, the rest is really in the text-showing widgets and translations.
As for string comparisons, this is a constant problem. I live in Sweden where , and are sorted differently than in germany. Despite being exactly the same characters.
"By the way, "My string in my native language" automatically translated into French gives you "Ma ficelle dans ma langue natale", which roughtly means "My small rope in my native language"."
By using Qt Linguist the translator gets to work with one string at a time, so when translating the above string to Swedish I'd write it as "Min sträng på svenska".
Most of these problems can be solved by a good object orientated approach. For example the text layout policies and such can be stored in different classes, with the widget showing the text working independently, simply asking the assigned text layout manager class.
Qt does support good OO approaches and the rest is up to the software designer.
"Qt 3 is not free for Windows."
Nope. And neither is Windows.
Use Qt from Trolltech, give your translator access to Qt Linguist and have it all for free!
Seriously, Qt's i18n capabilities makes it easy and works.
Sorry Mr Nazi, but I'm not a native English speaker, but I try to do my best!
You will need an OS since most future phones will be built from a common platform and then targeted by altering of software, and perhaps gadgets. Thus a low end phone can just be a high end one running less cool software, will less memory and slower CPU. (just like low end computers).
I hope that you understand the need for an OS on higher end phones, so I will not go into that.
Linux is GPL so any kernel modifications must be posted. However, loaded modules can be held closed. Also all software running on the Linux kernel can also be kept a secret.
As the article says, the custom software will run in Java running on Linux, so it will be a JVM hosted by Linux, but Linux will probably not be visible to the end user.
And when speaking about Java applets running on phones. That has been done by both Ericsson and Nokia for a while now.
It seems as Windows and Linux will meet at yet another frontier. Desktop-wise Windows is holding strong and no break-through seems to be near. Server wise, I'd say that Windows is loosing, but only slowly and more work will be needed. In the portable area, both Linux and Windows are relatively new players, but Linux is better suited. Hopefully this will mean that more developers start using (and liking) Linux, and thus help Linux in other areas.
As for the phones; Can I make a call from bash?