Only 10 years old? My first edition copy of the book is from 1998! The toolchains may have improved in the intervening years, but the advice on HDL coding style is still relevant. There may be more recent books around that are a better introduction, but I've never had cause to read them and so can't comment.
Both VHDL and Verilog provide you with 1001 ways of designing crappy circuits which don't work. This book tells you precisely which language constructs to use to get good synthesis results which will work equally well with FPGA and ASIC. For most experienced designers this is considered 'obvious' stuff, but if you're new to HDL design, this is a must read on the way to becoming an expert.
No mod points, so I'll second this. The 2.0 release of JavaFX is a huge step forward from Swing. A few of the things that would be useful in this context are:
* Declarative approach to UI construction using FXML so you can rapidly prototype the UI without needing to implement any of the application code.
* CSS support so you can easily 'skin' the UI.
* Uses underlying hardware acceleration for 3G.
* It's now a standard Java library, so you can also use it with other supported JVM based languages like Groovy.
The fact that you can make a payment via Square without any form of authentication is the biggest failure here. At least with the RFID payment you've got a cryptographically strong authentication method which is pretty hard to fake. The sooner the credit card companies get rid of the magstripe the better...
Modularization is what java applications (well, backend servers powering too complex enterprisey-apps) need, and that should be achieved through the means of easy to use osgi tools instead of yet another (sun|oracle) screwup mimicking an "oss standard".
I think you're missing one of the main points of Jigsaw - which is modularizing the platform, not the application. This is especially important if Java is to get back into the embedded space, where JavaME and CDC are so antiquated it's just not funny any more. Having a range of well defined platform profiles which span everything from headless embedded devices up to a full enterprise stack (while using the same underlying codebase) would be a major step forward. Personally, I don't care what the implementation details are - the changes aren't going to stop anyone from using OSGi to modularize their applications if they want to.
It's a great idea, but the execution is the only thing that matters and I just don't see them pulling it off. Who is going to teach these kids programming?
The kids can teach themselves. That may seem like a rather flippant comment, but I was impressed that Gove was aware of and referenced Scratch. One of the nice things about Scratch is that it comes with a whole bunch of 'self directed' learning materials which encourage hands on learning. It means you don't need a teacher with a C.S. degree to run an introductory programming course, just one who is sufficiently technically literate to get to grips with Scratch themselves.
I'd have thought that Eastern Europe would also have been a viable option. For example, Olimex are already a big player in the 'cheap dev board' space and they do their manufacturing in Bulgaria.
The best choice would be if you could incorporate those algorithms into your hardware. Can you add a small DSP do the hardware? That doesn't just protect your code, it actually may also make your hardware easier to use (fewer software dependencies). On the other hand, that way, you won't get any improvement from the community.
I agree with this 100% - to the extent that it's the approach I've decided to take with my own startup. If your 'secret sauce' would benefit from real-time performance or hardware acceleration (FPGA or DSP), then proprietary firmware plus an open source host application stack is a great combination. The open source benefits wouldn't come from other people hacking on the core algorithms anyway - the main justification is to make it as easy as possible for other people to adapt and extend the technology to meet their own needs.
When I read this article I had flashbacks to the spurious crap that people used in ye olde Internet bubble. Or maybe the CDO credit bubble. In short, making arbitrary valuations by looking at second or third order artifacts and completely ignoring the value of the underlying thing.
What makes a good patent is the exact opposite of what these guys suggest. The membership of a patent 'thicket' that they regard as indicating patent quality is really an artifact of the way in which a single potential invention now gets salimi sliced into the maximum number of applications. This allows the corporation which owns the patents to brag about the size of its patent pile, it allows the employees who wrote the patents to maximize the number of patent bonuses they get and it obviously results in the greatest number of billable hours for the patent lawyers. In short, it's a win-win-win!
In reality, the most valuable patents should be ones that are as unrelated as possible to anything that went before and which stand completely on their own merits. Patents where any expert would look at and say 'I've never seen anything quite like that before'. However, making that judgment call requires that you actually analyze every patent in the portfolio in detail. Just as I'm sure the bankers carried out a detailed analysis of every underlying debt when they were trading CDOs...
Concept-wise Symbian is a great system, but frankly, the SDK is a pain in the ass.
Spot on - I wonder how many developers they lost to Apple/Android just because they couldn't get their act together with the development environment.
I guess they did this already for a low footprint kernel (N900, N850, N770,...)
I wouldn't really class Maemo/Meego as low footprint - more like a full Linux workstation in your pocket. There is a big gap in capabilities between the deeply embedded open source OS platforms like eCos and something like Linux. There are proprietary solutions which fill this gap, but Symbian was probably the most promising open source option - especially if SymbeOSE had taken off.
Nokia does invest time and money in open source. It was Nokia which put Qt from GPL to LGPL and still invested a lot of effort in further developing it, embracing others to use this framework.
Historically that has been true, but I'm not confident that's a reliable predictor of the future! On the upside, I've just found the Sourceforge dump of the last EPL Symbian release, so as an open source project it's not quite dead yet...
Thanks for pointing that out - my post was a bit ambiguous. I meant to say 'Migrating to Symbian is still a much better option', which is what a lot of people pre-Elop assumed was the obvious upgrade path.
So either way, using Linux or Symbian, the OS needs to be adapted to the S40 hardware. Also, e.g. with RT-Linux it should be also possible to run the protocol stack on the same CPU.
I think we can safely say that any new hardware will be adapted to the OS, rather than the other way round. I'm also coming round to the idea of Nokia spending a whole bunch of cash on building a commercial quality, low footprint Linux distribution with proper real time support. I could use one of those myself - and thanks to the GPL, the source code will have to remain open this time.
Short answer - because Nokia senior management have now completely lost the plot. Symbian is still a much better option at the low end because underneath all the shiny stuff is an RTOS designed specifically to run on resource constrained devices. Proper real time capabilities were baked into the current Symbian kernel specifically so that a single processor could be used for both the protocol stack and the applications. As someone pointed out earlier, other vendors pay good money to use proprietary RTOS platforms like Nucleus for their low end phones because they deliver the same benefits.
Putting a full Linux workstation in your pocket in the form of the N950 is cool - and I wish they'd let me buy one. But this is a different market, and it's not one where using Linux makes a hell of a lot of sense.
a Londoner when asked by a television reporter: Is rioting the correct way to express your discontent?
"Yes," said the young man. "You wouldn't be talking to me now if we didn't riot, would you?"
The TV reporter from Britain's ITV had no response. So the young man pressed his advantage. "Two months ago we marched to Scotland Yard, more than 2,000 of us, all blacks, and it was peaceful and calm and you know what? Not a word in the press. Last night a bit of rioting and looting and look around you."
I guess they must have been marching on Scotland Yard to protest at the lack of policing in their area and that the police were taking too much of a 'softly softly' approach on gun and gang crime, then. Because the net effect of the riots and the media coverage is going to be an increased police presence, possible increases in police powers and wide support in the general population for the 'robust' use of those powers. I'm sure that's what he and his fellow 'demonstrators' would have wanted.
The ASA acts if someone complains. Maybe nobody complained about Apple.
Maybe nobody complained about Apple because there wasn't much advantage in it, whereas now there just happens to be review of UK IP law on the cards, in order to promote UK technology innovation. And maybe we can all now point to a UK technology company which is being put at a disadvantage by the arse-backwards UK copyright laws. And maybe somebody has been playing the ASA in order to highlight this stupid situation at just the right time. Just a thought...
Want a hacker friendly phone? Why not build one yourself, like the guys at
WildDucks
are doing? Might not fit in your pocket, but carrying that thing will certainly enhance your hacker credentials.
I hate to break it to you - but from what I can gather, most Chinese communist party apparatchiks don't look much like this.
Don't go trading in your human rights just yet...
My interpretation of this is that Google is REALLY pissing China off intentionally by doing this - exploiting the schism between Hong Kong and mainland China, forcing issues to the forefront which the Chinese like to ignore (like why does Hong Kong get less centralized control than other parts of China). This could be quite a large issue in China and Hong Kong should China decide to dictate terms to the more autonomous Hong Kong.
Personally, I'd have gone for +1 Insightful for this. It potentially serves to emphasise to the mainlanders that they are somehow second class to the citizens of HK. A former colleague once described going from HK to the mainland to visit a supplier as like going from West Berlin to communist East Berlin. He was talking about all the security involved - and having to be followed around by a communist party apparatchik all the time. However, you do have to wonder if there are other parallels to be drawn there...
Make sure you visit the Faraday Museum. I'm amazed that I've not seen this recommended yet, but if you value all things electrical and electronic it's like making a pilgrimage. Faraday's original workshop is still preserved as part of the museum at the Royal Institution.
Just think how much money they could have saved by making a quick call to Larry Elisson or Scott McNealy. On the other hand, I can imagine the responses:
Larry E. : Yes, I know we weren't successful with the network computer last time around, but it was all down to the network infrastructure. Now that everyone in the world has 100% guaranteed broadband access all the time, I'm sure it will fly...
Scott M. : Yes I know we weren't successful with the JavaStation last time around, but it was probably as a result of limiting it to running just the Java application stack. I'm sure that if you use something more enterprise ready like (cough, splutter, cough) a combination of Javascript and AJAX hacks you'll do much better...
No top secret island bases, personal space stations, gold cigar holder and lighter combos that can double as a handgun and definitely no sharks with frikkin laser beams. In short, nothing that any self respecting billionaire/. reader would want to spend their money on.
I can't point you to a definitive comparison, but here is my understanding: Jazelle can be used as a speed-up for conventional interpreted JVMs without any extra memory overhead, which makes it ideal for resource constrained devices such as low-end Java enabled phones. JIT compilation gives faster execution than using an interpreted JVM (including Jazelle accelerated ones), but it comes with a memory overhead. So, for a device like the N810/N900, ARM JIT compilation is best.
I agree that a full blown desktop/server JVM would be OTT. The CDC (connected device configuration) profile is designed for devices which are smarter than the bog-standard Java-ME phone, but not up to running a full SE stack. Have a look at the overview here. A cut and paste of the 'target devices' section:
The CDC configuration was designed to bring the many advantages of the Java platform to a broad range of network-connected consumer and embedded devices, including smart communicators, high-end PDAs, and set-top boxes.
Devices that support CDC typically include a 32-bit microprocessor/controller and make about 2 MB of RAM and 2.5 MB of ROM available to the Java application environment.
What's more, the open source implementation released by Sun has an excellent ARM targeted JIT compiler. All in all, apart from the out of date GUI implementation (QT3 based) it would be an ideal Java platform for something like the N900.
I'll add another thing that's missing from my N810 which looks like it's still missing from the N900, which is an 'official' JVM. The Java CDC profile was designed for devices like this - and the
GPL'd Sun version is very ARM-friendly. I managed to get the foundation version up and running on my N810, but it needs quite a bit of work to get the GUI layers working (I ran into some QT3 versus QT4 threading voodoo when I tried).
So, if anyone from Nokia is reading this - I'd like to see a supported CDC personal profile JVM with Jambi support!
Yes - I know that this is all GPL'd code and I should be able to take it and fix it all myself, but having it as a standard part of the platform makes a huge difference.
OK, since we're doing shameless plugs here, I can say with a high degree of certainty that there will be a Linux friendly ZigBee solution arriving RSN. The product in development is a smart USB adapter which embeds all the proprietary ZigBee code so that the host-side can be 100% Free Software friendly - although it will be dual-licensed to allow 3rd parties to create Tivo-ised products on commercial terms.
As far as the host side is concerned, it will be based Java/OSGi in order to take advantage of the modularity that platform gives. The idea here is that different developers can create their own applications for home security, lighting control, remote control cat flaps, etc and plug them into a running system. Of course, you'll still need to buy into one of the commercial vendors if you want to build your own ZigBee powered gadgets - but their dev kits are generally pretty good value and many can be had at hobbyist-friendly prices.
If you're not wanting to roll your own ZigBee powered gadgets, third party products are slowly coming to market which implement the standard ZigBee profiles for home automation, smart energy and RFCE (remote controls on steroids). The intention is to support all these standards as plugins to the host platform.
However, before everyone gets over-excited, I need to point out that the initial batch of 32 USB devices will be for conformance testing and trusted early beta testers only. As with all these kinds of projects, availability of the final product will depend on how many late-night coding sessions I manage to get in and how much money I can persuade the bank manager to lend me;-)
Only 10 years old? My first edition copy of the book is from 1998! The toolchains may have improved in the intervening years, but the advice on HDL coding style is still relevant. There may be more recent books around that are a better introduction, but I've never had cause to read them and so can't comment.
Both VHDL and Verilog provide you with 1001 ways of designing crappy circuits which don't work. This book tells you precisely which language constructs to use to get good synthesis results which will work equally well with FPGA and ASIC. For most experienced designers this is considered 'obvious' stuff, but if you're new to HDL design, this is a must read on the way to becoming an expert.
No mod points, so I'll second this. The 2.0 release of JavaFX is a huge step forward from Swing. A few of the things that would be useful in this context are:
* Declarative approach to UI construction using FXML so you can rapidly prototype the UI without needing to implement any of the application code.
* CSS support so you can easily 'skin' the UI.
* Uses underlying hardware acceleration for 3G.
* It's now a standard Java library, so you can also use it with other supported JVM based languages like Groovy.
The fact that you can make a payment via Square without any form of authentication is the biggest failure here. At least with the RFID payment you've got a cryptographically strong authentication method which is pretty hard to fake. The sooner the credit card companies get rid of the magstripe the better...
Modularization is what java applications (well, backend servers powering too complex enterprisey-apps) need, and that should be achieved through the means of easy to use osgi tools instead of yet another (sun|oracle) screwup mimicking an "oss standard".
I think you're missing one of the main points of Jigsaw - which is modularizing the platform, not the application. This is especially important if Java is to get back into the embedded space, where JavaME and CDC are so antiquated it's just not funny any more. Having a range of well defined platform profiles which span everything from headless embedded devices up to a full enterprise stack (while using the same underlying codebase) would be a major step forward. Personally, I don't care what the implementation details are - the changes aren't going to stop anyone from using OSGi to modularize their applications if they want to.
It's a great idea, but the execution is the only thing that matters and I just don't see them pulling it off. Who is going to teach these kids programming?
The kids can teach themselves. That may seem like a rather flippant comment, but I was impressed that Gove was aware of and referenced Scratch. One of the nice things about Scratch is that it comes with a whole bunch of 'self directed' learning materials which encourage hands on learning. It means you don't need a teacher with a C.S. degree to run an introductory programming course, just one who is sufficiently technically literate to get to grips with Scratch themselves.
I'd have thought that Eastern Europe would also have been a viable option. For example, Olimex are already a big player in the 'cheap dev board' space and they do their manufacturing in Bulgaria.
The best choice would be if you could incorporate those algorithms into your hardware. Can you add a small DSP do the hardware? That doesn't just protect your code, it actually may also make your hardware easier to use (fewer software dependencies). On the other hand, that way, you won't get any improvement from the community.
I agree with this 100% - to the extent that it's the approach I've decided to take with my own startup. If your 'secret sauce' would benefit from real-time performance or hardware acceleration (FPGA or DSP), then proprietary firmware plus an open source host application stack is a great combination. The open source benefits wouldn't come from other people hacking on the core algorithms anyway - the main justification is to make it as easy as possible for other people to adapt and extend the technology to meet their own needs.
When I read this article I had flashbacks to the spurious crap that people used in ye olde Internet bubble. Or maybe the CDO credit bubble. In short, making arbitrary valuations by looking at second or third order artifacts and completely ignoring the value of the underlying thing.
What makes a good patent is the exact opposite of what these guys suggest. The membership of a patent 'thicket' that they regard as indicating patent quality is really an artifact of the way in which a single potential invention now gets salimi sliced into the maximum number of applications. This allows the corporation which owns the patents to brag about the size of its patent pile, it allows the employees who wrote the patents to maximize the number of patent bonuses they get and it obviously results in the greatest number of billable hours for the patent lawyers. In short, it's a win-win-win!
In reality, the most valuable patents should be ones that are as unrelated as possible to anything that went before and which stand completely on their own merits. Patents where any expert would look at and say 'I've never seen anything quite like that before'. However, making that judgment call requires that you actually analyze every patent in the portfolio in detail. Just as I'm sure the bankers carried out a detailed analysis of every underlying debt when they were trading CDOs...
Concept-wise Symbian is a great system, but frankly, the SDK is a pain in the ass.
Spot on - I wonder how many developers they lost to Apple/Android just because they couldn't get their act together with the development environment.
I guess they did this already for a low footprint kernel (N900, N850, N770,...)
I wouldn't really class Maemo/Meego as low footprint - more like a full Linux workstation in your pocket. There is a big gap in capabilities between the deeply embedded open source OS platforms like eCos and something like Linux. There are proprietary solutions which fill this gap, but Symbian was probably the most promising open source option - especially if SymbeOSE had taken off.
Nokia does invest time and money in open source. It was Nokia which put Qt from GPL to LGPL and still invested a lot of effort in further developing it, embracing others to use this framework.
Historically that has been true, but I'm not confident that's a reliable predictor of the future! On the upside, I've just found the Sourceforge dump of the last EPL Symbian release, so as an open source project it's not quite dead yet...
S40 is not symbian based (see http://en.wikipedia.org/wiki/Nokia_Series_40#Operating_system ).
Thanks for pointing that out - my post was a bit ambiguous. I meant to say 'Migrating to Symbian is still a much better option', which is what a lot of people pre-Elop assumed was the obvious upgrade path.
So either way, using Linux or Symbian, the OS needs to be adapted to the S40 hardware. Also, e.g. with RT-Linux it should be also possible to run the protocol stack on the same CPU.
I think we can safely say that any new hardware will be adapted to the OS, rather than the other way round. I'm also coming round to the idea of Nokia spending a whole bunch of cash on building a commercial quality, low footprint Linux distribution with proper real time support. I could use one of those myself - and thanks to the GPL, the source code will have to remain open this time.
Why not just keep updating/upgrading S40?
Short answer - because Nokia senior management have now completely lost the plot. Symbian is still a much better option at the low end because underneath all the shiny stuff is an RTOS designed specifically to run on resource constrained devices. Proper real time capabilities were baked into the current Symbian kernel specifically so that a single processor could be used for both the protocol stack and the applications. As someone pointed out earlier, other vendors pay good money to use proprietary RTOS platforms like Nucleus for their low end phones because they deliver the same benefits.
Putting a full Linux workstation in your pocket in the form of the N950 is cool - and I wish they'd let me buy one. But this is a different market, and it's not one where using Linux makes a hell of a lot of sense.
So they've ported Android to the Commodore 64? That deserves some serious respect - their 6502 assembly skills must be awesome!
a Londoner when asked by a television reporter: Is rioting the correct way to express your discontent?
"Yes," said the young man. "You wouldn't be talking to me now if we didn't riot, would you?"
The TV reporter from Britain's ITV had no response. So the young man pressed his advantage. "Two months ago we marched to Scotland Yard, more than 2,000 of us, all blacks, and it was peaceful and calm and you know what? Not a word in the press. Last night a bit of rioting and looting and look around you."
I guess they must have been marching on Scotland Yard to protest at the lack of policing in their area and that the police were taking too much of a 'softly softly' approach on gun and gang crime, then. Because the net effect of the riots and the media coverage is going to be an increased police presence, possible increases in police powers and wide support in the general population for the 'robust' use of those powers. I'm sure that's what he and his fellow 'demonstrators' would have wanted.
The ASA acts if someone complains. Maybe nobody complained about Apple.
Maybe nobody complained about Apple because there wasn't much advantage in it, whereas now there just happens to be review of UK IP law on the cards, in order to promote UK technology innovation. And maybe we can all now point to a UK technology company which is being put at a disadvantage by the arse-backwards UK copyright laws. And maybe somebody has been playing the ASA in order to highlight this stupid situation at just the right time. Just a thought...
Want a hacker friendly phone? Why not build one yourself, like the guys at WildDucks are doing? Might not fit in your pocket, but carrying that thing will certainly enhance your hacker credentials.
I hate to break it to you - but from what I can gather, most Chinese communist party apparatchiks don't look much like this. Don't go trading in your human rights just yet...
My interpretation of this is that Google is REALLY pissing China off intentionally by doing this - exploiting the schism between Hong Kong and mainland China, forcing issues to the forefront which the Chinese like to ignore (like why does Hong Kong get less centralized control than other parts of China). This could be quite a large issue in China and Hong Kong should China decide to dictate terms to the more autonomous Hong Kong.
Personally, I'd have gone for +1 Insightful for this. It potentially serves to emphasise to the mainlanders that they are somehow second class to the citizens of HK. A former colleague once described going from HK to the mainland to visit a supplier as like going from West Berlin to communist East Berlin. He was talking about all the security involved - and having to be followed around by a communist party apparatchik all the time. However, you do have to wonder if there are other parallels to be drawn there...
Make sure you visit the Faraday Museum. I'm amazed that I've not seen this recommended yet, but if you value all things electrical and electronic it's like making a pilgrimage. Faraday's original workshop is still preserved as part of the museum at the Royal Institution.
Just think how much money they could have saved by making a quick call to Larry Elisson or Scott McNealy. On the other hand, I can imagine the responses:
Larry E. : Yes, I know we weren't successful with the network computer last time around, but it was all down to the network infrastructure. Now that everyone in the world has 100% guaranteed broadband access all the time, I'm sure it will fly...
Scott M. : Yes I know we weren't successful with the JavaStation last time around, but it was probably as a result of limiting it to running just the Java application stack. I'm sure that if you use something more enterprise ready like (cough, splutter, cough) a combination of Javascript and AJAX hacks you'll do much better...
No top secret island bases, personal space stations, gold cigar holder and lighter combos that can double as a handgun and definitely no sharks with frikkin laser beams. In short, nothing that any self respecting billionaire /. reader would want to spend their money on.
I can't point you to a definitive comparison, but here is my understanding: Jazelle can be used as a speed-up for conventional interpreted JVMs without any extra memory overhead, which makes it ideal for resource constrained devices such as low-end Java enabled phones. JIT compilation gives faster execution than using an interpreted JVM (including Jazelle accelerated ones), but it comes with a memory overhead. So, for a device like the N810/N900, ARM JIT compilation is best.
I agree that a full blown desktop/server JVM would be OTT. The CDC (connected device configuration) profile is designed for devices which are smarter than the bog-standard Java-ME phone, but not up to running a full SE stack. Have a look at the overview here. A cut and paste of the 'target devices' section:
The CDC configuration was designed to bring the many advantages of the Java platform to a broad range of network-connected consumer and embedded devices, including smart communicators, high-end PDAs, and set-top boxes.
Devices that support CDC typically include a 32-bit microprocessor/controller and make about 2 MB of RAM and 2.5 MB of ROM available to the Java application environment.
What's more, the open source implementation released by Sun has an excellent ARM targeted JIT compiler. All in all, apart from the out of date GUI implementation (QT3 based) it would be an ideal Java platform for something like the N900.
I'll add another thing that's missing from my N810 which looks like it's still missing from the N900, which is an 'official' JVM. The Java CDC profile was designed for devices like this - and the GPL'd Sun version is very ARM-friendly. I managed to get the foundation version up and running on my N810, but it needs quite a bit of work to get the GUI layers working (I ran into some QT3 versus QT4 threading voodoo when I tried).
So, if anyone from Nokia is reading this - I'd like to see a supported CDC personal profile JVM with Jambi support!
Yes - I know that this is all GPL'd code and I should be able to take it and fix it all myself, but having it as a standard part of the platform makes a huge difference.
OK, since we're doing shameless plugs here, I can say with a high degree of certainty that there will be a Linux friendly ZigBee solution arriving RSN. The product in development is a smart USB adapter which embeds all the proprietary ZigBee code so that the host-side can be 100% Free Software friendly - although it will be dual-licensed to allow 3rd parties to create Tivo-ised products on commercial terms.
As far as the host side is concerned, it will be based Java/OSGi in order to take advantage of the modularity that platform gives. The idea here is that different developers can create their own applications for home security, lighting control, remote control cat flaps, etc and plug them into a running system. Of course, you'll still need to buy into one of the commercial vendors if you want to build your own ZigBee powered gadgets - but their dev kits are generally pretty good value and many can be had at hobbyist-friendly prices.
If you're not wanting to roll your own ZigBee powered gadgets, third party products are slowly coming to market which implement the standard ZigBee profiles for home automation, smart energy and RFCE (remote controls on steroids). The intention is to support all these standards as plugins to the host platform.
However, before everyone gets over-excited, I need to point out that the initial batch of 32 USB devices will be for conformance testing and trusted early beta testers only. As with all these kinds of projects, availability of the final product will depend on how many late-night coding sessions I manage to get in and how much money I can persuade the bank manager to lend me ;-)