This stuff uses an open source OS, TinyOS which is written in and includes the language nesC, "an extension to the C programming language designed to embody the structuring concepts and execution model of TinyOS. TinyOS is an event-driven operating system designed for sensor network nodes that have very limited resources (e.g., 8K bytes of program memory, 512 bytes of RAM)."
Over the last couple of days I downloaded and installed TinyOS 1.1.0 for windows (146Mb!) which includes nesC, an emulator, a tutorial and cygwin. To my slight surprise it all auto-installed and worked perfectly and can even generate cute graphical self-documentation.
NesC is interesting for at least a couple of reasons - compile-time detection of race conditions, and bi-directional interfaces which specify both the commands which must be implemented by an interface "providers" (ie "servers") and the events (or callbacks) which must be implemented by the interface's "users" (ie "clients").
I'd say that bi-directional interfaces are a significent step in the evolution of object-oriented design, which are being echoed (at a higher level, and in a different technical culture) in the choreography languages of Web Services.
If you enjoy the challenge of learning a new language which is small, different, timely and purposeful, I'd recommend TinyOS and nesC.
Re:One thing is for sure...
on
Effective XML
·
· Score: 1
but there ARE books that discuss the 'wrong' way to do things in order to avoid them.
I can also recommend the AntiPatterns Book as having some wince-makingly familiar bad software patterns, analysis of how they arrive, and re-factorings to escape them.
So I'd certainly give a book called Ineffective XML a look. Especially if it was written by someone who's seen as much good and bad markup as Elliotte Rusty Harold.
The Hoover result is actually a sponsored link. But your mistake, which I shared for at least a few seconds, shows that the real problem is the absence of visual contrast between the sponsored and (I hope) unsponsored results, just a couple of small-ish text fields.
Therte's a line between using minimalism to aid clarity, as Google do, and using it to obscure matters, and I think Altavista are nudging it.
OK, XSLT has a high learning curve, and it tends to agitate procedural coders. And I would admit that there's quite a lot wrong with it as a general-purpose programming language. But let's not throw the baby out with the bathwater - and the baby here is XPath, the expression language for XSLT, XQuery and XML Schema, also available for most languages, eg Java and C#.
Doing XML by pure DOM without XPath is about as productive as querying and updating relational databases without using SQL.
I have this book, and have been using C# professionally for about a year. "Programming.Net Components" really made a difference to how I understand.Net, and allowed me to see beyond the familiar curly brackets to why and how components can best be developed and run together.
In my opinion at least one developer on any enterprise-level.Net project should have this book (or at least its level of understanding) in order to get more of those key design decisions right first time.
I've just finished reading Executable UML: A Foundation for Model Driven Architecture which basically implements the Schlaer Mellor methodology in a subset of UML, as part of a project to create the compilable and and executable UML of the title.
I have a lot of time for Schlaer Mellor. As a methodology coming from the real-time world, it takes my softer async requirements (eg client-and-server or browser-and-application) well in its stride.
It's also very much based on UML statecharts, and if anyone has read both I'd like to know how these two books compare.
Nobody's mentioned the implicit validation that you get by using a type-specific de-serializer that's been generated from XML Schema definitions, eg as part of NET or Java support for Web Services. This may actually be faster than using a non-validating browser (not that I've timed it).
It would be somewhat unfortunate if both end up popular, because it will be more work to maintain both sets of tools than either one alone.
That's only partly true. Relax NG is mainly about structural validation (what elements and attributes are allowed in what elements) but it is designed to permit any implementer-supported simple type (non-structural content: string, dates, numbers, reg-exes etc) validation system using the datatypeLibrary attribute.
An obvious candidate for this is the conveniently modularised XML Schema Simple Types. This could be fruitful - the XML Simple Types are comprehensive and complex, and have some critics, but they are less controversial than XML Schema Structures.
I know, it's lame to reply to my own post - I should have done my research before posting. Here's a reference to the original and historically correct words of Pastor Niemöller, who did indeed do four years in solitary when they came for him in 1937.
I see Google have been able to use a first amendment precedent in their defence - I never stop being amazed what 45 well-judged little words can do...
In my opinion this article shows the database and the DBA roles in a project from a developer perspective.
True but perhaps irrelevent. Sometimes the most important difference between DBAs and developers is not their technical skills but their attitude to change. The nature of the job is that a DBA tends to be a bit like a soccer goalkeeper - he's not rewarded for scoring goals (adding new features that responding to user requirements more rapidly than anyone else) - all he gets is the blame if allows goals in (lets someone break the database). The nature of the job tends to reward defensiveness.
The result - semantic corruption, with any amount of database re-use, however dirty, prefered to re-factoring. Like my insurance client in 1999, who were using 2000-01-01 as the null value in some of their date columns...
It's a really good article. We're doing a fair amount of the recommendations already, I can confirm the value of the tight DB layer, and having good test data packs from the start. In fact I'd go further - it doesn't matter whether you think you're doing waterfall or iterative, you will have to change the DB and you might as well work out how to do it efficiently.
The most important political issue in the US to me being that I'm a US Marine is whether or not we go to war with Iraq.
The two issues might be one if, as rumoured, US oil companies are likely to be major beneficiaries of a war, and French and Russian oil companies the beneficiaries of this particular villain staying in power.
You don't have to be totally paranoid or totally cynical to feel that it's more likely that governments foreign policies will tend to benefit their own major corporations than those of other countries.
Having some kind of separation of powers between governments and commerce might help those of us who like the comfort of our illusions.
The main problem of free VoIP is that the person you are calling is waiting by her computer to receive your call. She has a normal landline, mobile or even satellite phone. The operator terminating the call will want to get paid for this service.
True, but there's another flat-rate communication channel - SMS. On my bill they appear to be 10p each, whether locally (to the UK) or to Hungary. So I can text-message my friend in Budapest and have her move to the nearest connected computer.
And the next stage? My ADSL connection is scheduled to come on Tuesday, so after that it's just a wireless LAN card for the Zaurus (and a spare battery and charger, I suspect).
I'm not a C++ coder, but there's one feature that does give me language envy - the ability to specify parameterized types.
As I understand it, just as I can have an array of foo objects, with compile time type-checking for any getting or setting, I should also be able to have hashMaps, vectors or any other collection and specify the collected type when I instantiate the collection.
There's an interesting article on adding generics to the.Net CLR at http://research.microsoft.com/projects/clrgen/ which suggests that the feature would have to be added to the runtime, not just the language.
I'm not sure whether the parent post is a troll (one reason why I'm posting, not modding) but there is a strong case for saying that [1] yes, genetics are important - look at the success of East Africans, [2] Altitude is important - many of the Kenyans come from the Nandi Hills, the 6,000-8,000 foot highlands that snake along the western edge of the Great Rift Valley of East Africa, but [3] there is no simple correlation between being African and being good at sports, and [4] that there are serious differences between being genetically suited for sprinting and being genetically gifted for endurance (for instance, the proportion of fast-twitch to slow-twitch muscle fibres is fixed at birth), and most black Americans have their genetic roots in West Africa where the gene-pool is more likely to favour sprinting.
See this article for a better explanation of the African connection.
You probably know by now about the statutory instument which is due to come before the House of Commons next Tuesday, by which the powers given by the RIP bill to demand communication 'traffic' information will be extended from the initial short list of police, secret services, the inland revenue and customs and excise to add twenty four new bodies or classes of body.
The new list includes local councils, assorted government agencies, the NHS and Consignia. Bear in mind that 'traffic data' includes not only the sendors and recipients of your emails, phone calls and text messages, but also where you logged on, what sites you browsed (domain, not web page, which should be just enough for people to draw 'fellow-travellor' type conclusions) and where your mobile phone is at any time (and with foreseeable technological trends such as the imminent convergence of GPS and cellphones - so handy for emergency calls or locating the nearest pizza - this may eventually locate your mobile to specific rooms, if not to the nearest metre).
Given the number of these bodies, how will it be possible to monitor suspected leaks or abuses? For instance, whatever we may think about the result of Brian Paddick's drugs policy, I'm sure that you were as horrified as I was by tabloids trawling a £100,000 reward for 'the dirt' on his private life. With what confidence can you assure me, or yourself, that commercial organisations or wealthy but paranoid individuals won't be able to increase their ability to pry into the affairs of others through the illicit purchase of traffic information?
The recent conviction of two police officers who used unauthorised police computer inquiries as part of their plot to kidnap, torture and possibly murder a businessman's alleged blackmailer shows that classified law and order information can leak into the realm of crime and initimidation. Now think what possibilities this order raises for the politically or commercially powerful to track down whistle blowers, and establish the web of relationships surrounding internal or external 'trouble-makers' in order to identify their point of maximum vulnerability.
I hope you share my conviction that the interests of law and order, and privacy are equally at risk here, and that you will feel able to represent this constituent, at least, by questioning thoroughly the ends, means and consequences of this instrument.
Other points in the article that scream XML to me:
* A key element would be the configuration format description file. This would list the configuration options for a given piece of software, giving for each one the name, type (boolean, list, string, etc.), options, category (for subsections within the config), and help text (short and long).
This looks very much like XML Schema to me - it can specify all these data types, including enumerations, and a schema-aware XML editor (eg XML Spy in the Wondows world - anyone know the best Linux option?) will prompt you with help-lists of valid elements and attributes, or list of enumerated values. Doesn't do help text by default, but has an expansion mechanism (xsd:appinfo) for adding application-specific to be added to a schema.
* It all needs to be language, distribution, and operating system neutral, so as to avoid turning off any potential software developers who might find it useful.
I don't know of any programming language or O/S that doesn't have an XML Parser (many don't yet have XML Schema support, but if you stay off specifying default values you don't need that at run time). And XML is good for natural languages - UTF 8 or UTF 16 from start.
There aren't many formats that are equally machine and human readable, even fewer that allow document struture and data typing, and still fewer that have open or free implementations on practically all platforms.
In 1999, a disturbed gentleman of right-wing views planted three nail-bombs targeting obvious communities in London.
The first went off in Brixton, a buzzy area known for West Indians and street markets, about 50 yards and a couple of hours from where I'd taken my marathon training partner, her first-born son and smallest daughter for a thank-you pizza, which slightly spoiled the impression I'd been trying to make.
This one didn't kill anyone (the third and last one killed a man, a mother and an unborn child at a gay pub), just left adults and children with nails in their bodies and faces.
Brixton has a bit of a street crime problem and is quite heavily CCTV-ed, and the pictures shown on TV were, while fuzzy, accurate enough for someone to have recognized the bomber in the hours before the third bomb, and he was picked up almost immediately afterwards.
I'd say it's possible to live with mass CCTV. There will be problems and abuses, I'm sure, but I think we need to find a way of making it work.
C# is a great language - I'm doing my first.NET project right now and we're all loving it.
But I wonder if they considered implementing Java on the CLS instead? Coding C# is very much like coding Java and there have even been leaks of a J# project from Microsoft.
plus side - Java would have leveraged existing skills
minus side - would have ended up with a strange hybrid of Java language and.NET APIs.
Too late - here's the the official Microsoft site on their Office XML Schema patents.
I wonder if they accept donations from people outside of the United-States
Follow the link, maybe?
"CONTRIBUTOR QUALIFICATIONS STATEMENTS
I am a U.S. citizen or permanent resident alien."
... and that's just the first of nine points of legal boilerplate.
This stuff uses an open source OS, TinyOS which is written in and includes the language nesC, "an extension to the C programming language designed to embody the structuring concepts and execution model of TinyOS. TinyOS is an event-driven operating system designed for sensor network nodes that have very limited resources (e.g., 8K bytes of program memory, 512 bytes of RAM)."
Over the last couple of days I downloaded and installed TinyOS 1.1.0 for windows (146Mb!) which includes nesC, an emulator, a tutorial and cygwin. To my slight surprise it all auto-installed and worked perfectly and can even generate cute graphical self-documentation.
NesC is interesting for at least a couple of reasons - compile-time detection of race conditions, and bi-directional interfaces which specify both the commands which must be implemented by an interface "providers" (ie "servers") and the events (or callbacks) which must be implemented by the interface's "users" (ie "clients").
I'd say that bi-directional interfaces are a significent step in the evolution of object-oriented design, which are being echoed (at a higher level, and in a different technical culture) in the choreography languages of Web Services.
If you enjoy the challenge of learning a new language which is small, different, timely and purposeful, I'd recommend TinyOS and nesC.
but there ARE books that discuss the 'wrong' way to do things in order to avoid them.
I can also recommend the AntiPatterns Book as having some wince-makingly familiar bad software patterns, analysis of how they arrive, and re-factorings to escape them.
So I'd certainly give a book called Ineffective XML a look. Especially if it was written by someone who's seen as much good and bad markup as Elliotte Rusty Harold.
Altavista searching worldwide: Google
The Hoover result is actually a sponsored link. But your mistake, which I shared for at least a few seconds, shows that the real problem is the absence of visual contrast between the sponsored and (I hope) unsponsored results, just a couple of small-ish text fields.
Therte's a line between using minimalism to aid clarity, as Google do, and using it to obscure matters, and I think Altavista are nudging it.
We could translate it as "liberated software", except that sounds like either it's been looted, or it's burned its bra.
But "libre software" is just clunky. How about "software libre", or even "software libre!" - preferably accompanied with a rum and coke?
OK, XSLT has a high learning curve, and it tends to agitate procedural coders. And I would admit that there's quite a lot wrong with it as a general-purpose programming language. But let's not throw the baby out with the bathwater - and the baby here is XPath, the expression language for XSLT, XQuery and XML Schema, also available for most languages, eg Java and C#.
Doing XML by pure DOM without XPath is about as productive as querying and updating relational databases without using SQL.
I have this book, and have been using C# professionally for about a year. "Programming .Net Components" really made a difference to how I understand .Net, and allowed me to see beyond the familiar curly brackets to why and how components can best be developed and run together.
.Net project should have this book (or at least its level of understanding) in order to get more of those key design decisions right first time.
In my opinion at least one developer on any enterprise-level
I've just finished reading Executable UML: A Foundation for Model Driven Architecture which basically implements the Schlaer Mellor methodology in a subset of UML, as part of a project to create the compilable and and executable UML of the title.
I have a lot of time for Schlaer Mellor. As a methodology coming from the real-time world, it takes my softer async requirements (eg client-and-server or browser-and-application) well in its stride.
It's also very much based on UML statecharts, and if anyone has read both I'd like to know how these two books compare.
Nobody's mentioned the implicit validation that you get by using a type-specific de-serializer that's been generated from XML Schema definitions, eg as part of NET or Java support for Web Services. This may actually be faster than using a non-validating browser (not that I've timed it).
I have been generating a C# client from WSDL generated by a Java Web Service tool, and it just works.
XML Schemas may be complex and intimidating, but once they've been automated out of the way they're great.
It would be somewhat unfortunate if both end up popular, because it will be more work to maintain both sets of tools than either one alone.
That's only partly true. Relax NG is mainly about structural validation (what elements and attributes are allowed in what elements) but it is designed to permit any implementer-supported simple type (non-structural content: string, dates, numbers, reg-exes etc) validation system using the datatypeLibrary attribute.
An obvious candidate for this is the conveniently modularised XML Schema Simple Types. This could be fruitful - the XML Simple Types are comprehensive and complex, and have some critics, but they are less controversial than XML Schema Structures.
it normally starts
I know, it's lame to reply to my own post - I should have done my research before posting. Here's a reference to the original and historically correct words of Pastor Niemöller, who did indeed do four years in solitary when they came for him in 1937.
I see Google have been able to use a first amendment precedent in their defence - I never stop being amazed what 45 well-judged little words can do...
First they came for the Jews...
Outside the USA, it normally starts
"First they came for the communists..."
(ironic considering that in the USA they actually did come for the communists)
In my opinion this article shows the database and the DBA roles in a project from a developer perspective.
True but perhaps irrelevent. Sometimes the most important difference between DBAs and developers is not their technical skills but their attitude to change. The nature of the job is that a DBA tends to be a bit like a soccer goalkeeper - he's not rewarded for scoring goals (adding new features that responding to user requirements more rapidly than anyone else) - all he gets is the blame if allows goals in (lets someone break the database). The nature of the job tends to reward defensiveness.
The result - semantic corruption, with any amount of database re-use, however dirty, prefered to re-factoring. Like my insurance client in 1999, who were using 2000-01-01 as the null value in some of their date columns...
It's a really good article. We're doing a fair amount of the recommendations already, I can confirm the value of the tight DB layer, and having good test data packs from the start. In fact I'd go further - it doesn't matter whether you think you're doing waterfall or iterative, you will have to change the DB and you might as well work out how to do it efficiently.
The two issues might be one if, as rumoured, US oil companies are likely to be major beneficiaries of a war, and French and Russian oil companies the beneficiaries of this particular villain staying in power.
You don't have to be totally paranoid or totally cynical to feel that it's more likely that governments foreign policies will tend to benefit their own major corporations than those of other countries.
Having some kind of separation of powers between governments and commerce might help those of us who like the comfort of our illusions.
IPoAC (IP over avian carriers)
That would be RFC1149, right?
The main problem of free VoIP is that the person you are calling is waiting by her computer to receive your call. She has a normal landline, mobile or even satellite phone. The operator terminating the call will want to get paid for this service.
True, but there's another flat-rate communication channel - SMS. On my bill they appear to be 10p each, whether locally (to the UK) or to Hungary. So I can text-message my friend in Budapest and have her move to the nearest connected computer.
And the next stage? My ADSL connection is scheduled to come on Tuesday, so after that it's just a wireless LAN card for the Zaurus (and a spare battery and charger, I suspect).
I'm not a C++ coder, but there's one feature that does give me language envy - the ability to specify parameterized types.
.Net CLR at http://research.microsoft.com/projects/clrgen/ which suggests that the feature would have to be added to the runtime, not just the language.
As I understand it, just as I can have an array of foo objects, with compile time type-checking for any getting or setting, I should also be able to have hashMaps, vectors or any other collection and specify the collected type when I instantiate the collection.
There's an interesting article on adding generics to the
I'm not sure whether the parent post is a troll (one reason why I'm posting, not modding) but there is a strong case for saying that [1] yes, genetics are important - look at the success of East Africans, [2] Altitude is important - many of the Kenyans come from the Nandi Hills, the 6,000-8,000 foot highlands that snake along the western edge of the Great Rift Valley of East Africa, but [3] there is no simple correlation between being African and being good at sports, and [4] that there are serious differences between being genetically suited for sprinting and being genetically gifted for endurance (for instance, the proportion of fast-twitch to slow-twitch muscle fibres is fixed at birth), and most black Americans have their genetic roots in West Africa where the gene-pool is more likely to favour sprinting.
See this article for a better explanation of the African connection.
Psion 7 - at £599 / US$899? Nice bit of kit, but definitely a different market.
Dear Miss Kate Hoey,
You probably know by now about the statutory instument which is due to come before the House of
Commons next Tuesday, by which the powers given by the RIP bill to demand communication 'traffic'
information will be extended from the initial short list of police, secret services, the inland revenue and customs and excise to add twenty four new bodies or classes of body.
The new list includes local councils, assorted government agencies, the NHS and Consignia.
Bear in mind that 'traffic data' includes not only the sendors and recipients of your emails, phone calls and text messages, but also where you logged on, what sites you browsed (domain, not web page, which should be just enough for people to draw 'fellow-travellor' type conclusions) and where your mobile phone is at any time (and with foreseeable technological trends such as the imminent convergence of GPS and cellphones - so handy for emergency calls or locating the nearest pizza - this may eventually locate your mobile to specific rooms, if not to the nearest metre).
Given the number of these bodies, how will it be possible to monitor suspected leaks or abuses?
For instance, whatever we may think about the result of Brian Paddick's drugs policy, I'm sure that you were as horrified as I was by tabloids trawling a £100,000 reward for 'the dirt' on his private life. With what confidence can you assure me, or yourself, that commercial organisations or wealthy but paranoid individuals won't be able to increase their ability to pry into the affairs of others through the illicit purchase of traffic information?
The recent conviction of two police officers who used unauthorised police computer inquiries as part of their plot to kidnap, torture and possibly murder a businessman's alleged blackmailer shows that classified law and order information can leak into the realm of crime and initimidation. Now think what possibilities this order raises for the politically or commercially powerful to track down whistle blowers, and establish the web of relationships surrounding internal or external 'trouble-makers' in order to identify their point of maximum vulnerability.
I hope you share my conviction that the interests of law and order, and privacy are equally at risk here, and that you will feel able to represent this constituent, at least, by questioning thoroughly the ends, means and consequences of this instrument.
Yours sincerely,
Francis Norton.
Other points in the article that scream XML to me:
* A key element would be the configuration format description file. This would list the configuration options for a given piece of software, giving for each one the name, type (boolean, list, string, etc.), options, category (for subsections within the config), and help text (short and long).
This looks very much like XML Schema to me - it can specify all these data types, including enumerations, and a schema-aware XML editor (eg XML Spy in the Wondows world - anyone know the best Linux option?) will prompt you with help-lists of valid elements and attributes, or list of enumerated values. Doesn't do help text by default, but has an expansion mechanism (xsd:appinfo) for adding application-specific to be added to a schema.
* It all needs to be language, distribution, and operating system neutral, so as to avoid turning off any potential software developers who might find it useful.
I don't know of any programming language or O/S that doesn't have an XML Parser (many don't yet have XML Schema support, but if you stay off specifying default values you don't need that at run time). And XML is good for natural languages - UTF 8 or UTF 16 from start.
There aren't many formats that are equally machine and human readable, even fewer that allow document struture and data typing, and still fewer that have open or free implementations on practically all platforms.
In 1999, a disturbed gentleman of right-wing views planted three nail-bombs targeting obvious communities in London.
The first went off in Brixton, a buzzy area known for West Indians and street markets, about 50 yards and a couple of hours from where I'd taken my marathon training partner, her first-born son and smallest daughter for a thank-you pizza, which slightly spoiled the impression I'd been trying to make.
This one didn't kill anyone (the third and last one killed a man, a mother and an unborn child at a gay pub), just left adults and children with nails in their bodies and faces.
Brixton has a bit of a street crime problem and is quite heavily CCTV-ed, and the pictures shown on TV were, while fuzzy, accurate enough for someone to have recognized the bomber in the hours before the third bomb, and he was picked up almost immediately afterwards.
I'd say it's possible to live with mass CCTV. There will be problems and abuses, I'm sure, but I think we need to find a way of making it work.
C# is a great language - I'm doing my first .NET project right now and we're all loving it.
.NET APIs.
But I wonder if they considered implementing Java on the CLS instead? Coding C# is very much like coding Java and there have even been leaks of a J# project from Microsoft.
plus side - Java would have leveraged existing skills
minus side - would have ended up with a strange hybrid of Java language and
"but their contrast ratio is just flat out horrible."
I think the figure I saw was a contrast ratio between black and white on paper of 30:1, on CRT of 8:1, and god knows what for LCDs.
Francis.