So it seems that TSA Bob is suggesting that separating pieces of your custom electronics may help your luggage get through TSA screening. Since this device was found in carry-on baggage I don't know how much that would help. I often travel with custom and semi-custom electronics in my checked baggage and I've never had a problem (although I regularly find the "searched by TSA" card when I reach my destination). A couple things I do: -Put custom electronics in my checked baggage whenever possible -Put the parts in separate containers whenever possible -Separate batteries, antennas, and other accessories from the devices -Try not to travel to Phoenix (nothing to do with custom electronics or TSA, I've had two bags seriously damaged at PHX)
Also, be aware that "rubber-ducky" type antennas show up as a thin metal blade/wire on x-ray. I've had my carry-on's searched a couple times because I forgot to put an antenna in my checked baggage, although it's never been a problem once I took it out of the bag and showed it to the agent.
"The court in December refused to hear a related appeal from Arch Wireless, now a unit of USA Mobility Inc., the nation’s largest provider of paging services. The 9th Circuit court said the company violated a federal electronic-privacy law by providing the transcript without seeking Quon’s permission".
So the Supreme Court ruled that the department had the legal authority to review the pager messages, but the 9th Circuit says the service provider violated a federal law in turning over the records without Quon's permission?
Not sure how this got a tagged as an NSA video, it's from the DSS. The DSS is the organization responsible for granting security clearances. The process they're describing is the polygraph you take to receive certain security clearances. Anyone who is taking this polygraph has applied for a Top Secret-level security clearance. This process is pretty much the same for anyone applying for these clearances, doesn't matter if they'll be working at the NSA, another three-letter agency, in the armed forces, or for a private defense contractor.
MATLAB isn't strongly typed, and by default variables are floating-point (I think 64-bit is the standard if type isn't specified). Makes sense for scientific programming. You need to go out of your way to use integer types in MATLAB, and the only reason I've ever had to do it is when trying to convert MATLAB scripts to C code to run on fixed-point processors. I do think that not supporting 64-bit integer operations is an oversight but I don't think it affects the vast majority of MATLAB users.
A cheaper alternative that's well below your price point would be CPLDs (complex programmable logic devices). Much less capable than an FPGA but also much cheaper. Xilinx makes the CoolRunner line, Altera makes the MAX line, and I'm sure there are plenty of others. There's a $63 Xilinx development kit available from digi-key: http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=122-1573-ND
If they have clusters that are processing classified data then those clusters can only be accessed from classified terminals which are physically controlled. I don't believe it's possible to partition a "section" of an unclassified machine to do classified processing. If classified machines are talking across an unclassified network then they've got Type 1 encryption devices sitting in between them and the network. Protecting classified resources is completely different than protecting unclassified resources since there's already mandatory physical security around classified machines.
Although smallparts has some really cool stuff they're not so good for large mechanical pieces like the poster is asking for. A shop like the oft-mentioned McMaster-Carr will have more of the large pieces.
I'm not sure why a cognitive radio would be wideband, it could just as easily be a narrowband radio. It would be better if it could tune over a wide range of frequencies, or maybe just a few frequencies in several discrete bands like cell phones.
The cognitive radio stuff I'm familiar with is on the military side, and I think it's mostly targeted at narrowband long-range comms that don't use fixed base stations. I don't think it's as applicable to commercial wireless networks that use a fixed infrastructure.
Re:Business types who refuse to listen to techies.
on
The Pragmatic CSO
·
· Score: 2, Insightful
Executive management (except CIO/CSO obviously) shouldn't need to understand anything about the technical details. The technical groups should be doing the necessary analysis and giving them the necessary information to make choices about technology initiatives.
The problems come when the execs ignore what their direct reports are telling them, or if the technical people aren't providing the execs the information they need to make the decisions. I don't think trying to educate the execs on the technical details is a very efficient solution to either of those problems, although I suppose it may work with certain managers.
What about having a regular monitor-keyboard-mouse on a cart? Wheel it up to the robot and plug in to the relevant connections on the mini-ITX board. That's how I would go if you want to do development on the robot platform itself.
If what you're really looking for is a way for the robot to display debug/state information while it's running I think the serial LCD character displays are probably the cheapest text displays you'll find. If you just need some basic error information consider throwing on some green and red LEDs.
If you've got a reasonably small code base you might want to keep the documentation style you've got. I'm not sure what a "very cryptic block diagram" looks like, but a simple drawing showing the functional blocks of your software may be good enough. For smaller embedded projects I've done in C or assembly (2-4 people on the team, 10K lines of code, minimal use of 3rd party code other than maybe the C std lib) this is the design/documentation style I've used:
1) Create an architectural design. Identify the main functional blocks of software in a drawing, include a one-paragraph explanation of what each block does. 2) Define the external interfaces, from the physical level on up. Define any internal interfaces necessary to support development, but don't go crazy, internal interface documentation is hard to maintain. 3) Code to the design. The "detailed documentation" is the comments you put in the code. Every file, function and most globals should have a brief comment describing what it contains or what it's for.
For a simple embedded system I've found this is a good approach. Things that will require a higher level of documentation: large code size, library-type code that will be heavily reused in the future, a large number of developers. Embedded systems are often a very different animal than applications, and some embedded software is inherently not reusable.
The real question you should ask yourself is "What extra help am I getting from my new documentation format, and does it justify the extra time I'm going to be putting into it?".
If you're looking to include embedded programming in your projects I recommend picking up the "evaluation" or "starter" kits that all controller vendors sell to support their projects. They come with all the hardware you need to get started with embedded programming and they're easy to interface to your kit circuits. What they often don't include are the software development tools, although sometimes the software tools are bundled with the kit.
My personal favorite is TIs "Experimenter's Board" for their MSP430 micros: http://focus.ti.com/docs/toolsw/folders/print/msp-exp430fg4618.html
That one's fairly advanced and costs $100 (not including the programming cable), if you use a simpler controller like a PIC you can find a cheaper alternative.
I'm not sure that engineering processes are more "procedural" than anything else. True, at the lowest level, you're probably working with processes that are better represented as functions/methods than as objects. But I think the same thing is true of most other problem spaces: at the most atomic level, the programming is more procedural. OO is an intelligent way to bring all these "low-level" pieces together.
I expect the best use of OO in Engineering is still to provide an intelligent framework for a system that needs multiple atomic processes. For example, say you're simulating a gas in a chamber as a bunch of Newtonian spheres that collide with perfect elasticity. You could make a "GasParticle" class, and design you're simulation from there. Using the OO method is going to make it easier to incorporate changes later (i.e. imperfectly inelastic collisions) and makes your code more reusable (if you want to do a flow simulation in a similar way, you can reuse your "GasParticle" class).
I don't think any of the serial lines tie directly into the motherboard.... if they were gonna blow anything, I'd think it was the UART that sits on the serial port. I also find it hard to believe you build up THAT much static that you send it through the serial port and fry UART and motherboard... maybe if the Palm's power supply somehow got shorted across a serial line, but not static.
The real value of this technology is military use.
These signals have an EXTREMELY low probablility of detection/intercept. I don't know that I see any great commercial advantages here (maybe wireless LANs in urban areas where "ghosting" is a problem), but this stuff will probably be appearing in military gear in the near future.
I believe he said only idiots run unknown software as root on a *nix machine, and I tend to agree. You shouldn't be logged in as root, even on your own box, unless you really need to be.
I didn't see mention of scientists and engineers in the article's quotes... there was one guy who was a "computer scientist", and another was "Chief Scientist" of a graphics company, but it didn't sound like a wholesale assault from a bunch of EEs and Physicists. I wasn't at the ACM meeting, but it sounds to me like this article warped some comments into a "Scientist v. Programmers" vein to make it more interesting. In any case, when you're talking things like interfaces and fundamental hardware design, aren't you talking about SEs and EEs and CEs and what have you? Not computer scientists...
Given that this was an ACM meeting, I don't think the views represented here are at all indicative of "scientists and engineers" in general. If anything, most of the scientists I know are perfectly happy to write in FORTRAN (gack) and could care less about the marketability of personal computers. Engineers would be more likely to care about usability, but if anything they would be the ones looking for a full-featured computer, not an "appliance". Sounds to me like a bunch of people hurt by the recent economic problems associated with the stock market are angry and want someone to blame... a few may happen to be engineers and scientists, but I very much doubt this is at all a majority opinion.
If you set up a company correctly, it's true that you should get quite a bit of legal protection. However, incorporating is far from being a catch-all defense against personal liability. The courts haven't been hesitant in going after people who clearly are using a corporation as a shield for their illegal activities, and I can't really see how you can set up a corporation for the express purpose of violating copyright law and not expect the courts to come after you personally. You are still liable for your personal actions, whether you're the employee of a corporation or not.
Well, semantically, CS deals with the "science" of computers, while CE deals with the engineering aspects. If the academic computer tracks stuck the the normal definitions, the CS track would stress algorithm development, mathematical analysis, computational theory, etc., while the CE track would stress creating software and hardware systems to solve problems in the real world.
In reality, there's very little difference between the two majors. Both will teach you basic computer programming, a little bit of hardware, and some of the supporting math. A CE degree will probably require you to take a few more engineering courses, while a CS degree might have some more math. Really, I would consider those two degrees interchangeable, with the specific education you get depending more on the school you attend than the name of the degree.
My personal opinion? Get a physics or math degree with a CS/CE double major/minor if you want very high-level technical programming jobs (in an engineering firm, for example) or if you want to do academic work. Get a CS/CE degree (don't really think it matters which) if you want to be a software engineer/software developer. If you just want to make some quick money and have no strong love for computers, get a quick certification. Note that these are just general guidelines... I know several great technical programmers who are entirely self taught, and I know one guy with a BS in CS and and MS in Math that can barely write a "Hello World" program in C.
I don't think substance use and abuse really gives one any additional programming skills, and I don't think the lack thereof implies someone is a coward or not creative. Drugs are just one more form of recreation... for some people, they are an important part of their emotional growth, for some they're just a small part of their social life, and others simply avoid them altogether. They certainly have no impact on what kind of a programmer you are. I know many brilliant people who would fit into each of the categories above, and I can't think of a single case in which using drugs in any way increased their ability to perform science/engineering work.
Using drugs isn't going to have a positive effect on someone's rational thinking ability or on their creativity in problem solving. Drug experiences may bring out different emotions that may positively affect their artistic work, but I really don't believe anyone who says they can eat a mess of acid and suddenly the quality of their code goes up and they can work out new alogrithms they couldn't figure out while straight.
Since this is obviously unenforceable, why'd they even bother? Are they really stupid enough to think they can enforce this? I'm beginning to wonder if some of these companies aren't acquiring and anouncing unenforceable patents just to get the free publicity on an article on/.
Hey, I wonder if I can patent that program? A frivolous patent generator that generates patent applications based on the likelyhood that they'll provide extraordinary amusement for the Slashdot community, therefore earning a company tons of free publicity.
I see how having a special court set up to handle technology cases could produce better, faster rulings, but exactly why does this make a tech company want to incorporate in Michigan? I can't see a big business advantage here... it's easier to sue and be sued? I suppose if you're in the "business" of enforcing frivolous software patents that helps you, but I don't see a huge advantage otherwise (unless, as the article suggests, the courts tend to rule in the comapny's favor, which seems like a pretty tricky ethical situation).
As for an online court, this doesn't sound like a great idea to me. Too many extra variables, and I can't even begin to imagine the number of appeals you'd get in the first 4 or 5 years until they worked the bugs out of the system. If Michigan really wants to attract High tech. businesses, they should do it with tax breaks (like Delaware) or support services (like New Jersey), not with courts.
Presumably, people who write Open Source code are doing it for their own enjoyment, which means they will tend to concentrate on the things they enjoy (adding new features) not the things they dislike (debugging someone else's code, documentation). This is one area where I feel the Open Source methods can be weak... there's no real imperative for quality control, since everyone's doing it for the enjoyment. A prestigous project may be able to enforce some quality, but for smaller projects, I can't think of any way to induce people to concentrate on the necessary but boring tasks as opposed to the fun (and maybe not necessary) tasks.
I assure you. Whether it's post-modern, popular, good, bad, ugly or indifferent, there's plenty of art out there. A child scrawling with crayons on a piece of paper is "art", and if someone wants to consider their program to be "art", sure, why not. The real question is: is it any good? The answer: Depends on who's looking at it. There are certain pieces of "art" that are very widely believed to be "good" or "great", but this just happens to be a consensus opinion. Personally, I like to judge art by the emotional experience it creates for me... by my interpretation, Beethoven's 5th is a wonderful piece of art, while your Perl script is terrible (although I may appreciate the great programming job you've done, for me personally, that just doesn't make it good art. Someone else probably feels differently).
There's tons of "art" in the world, and just because something is "art" doesn't mean it really has any value, any more than a child's drawing does. Is programming art? Sure. Are there any programs that are "good" art? Purely a matter of opinion...
How you proceed depends on how strong your trademark is. If it's distinctive and fairly unique (Kodak film), and your the first to use it, you can protect it as a strong trademark. If it's general (probably not in your case) it's a "weak" trademark (Al's Car Repair), and although you can't stop other people from using it, they can't stop you either.
If you have a strong trademark and want to protect it, the "Legal Guide for Starting and Running a Small Business" by Fred Steingold (Nolo) suggests:
1. Use your trademark as a proper adjective that describes your product.
2. Always capitalize the first letter of your trademark.
3. If your trademark has been placed on the Federal trademark register, consistently use the (R) symbol (I think other people have already chimed in with advice on what you can do to make it "commercial" and able to get put on the register).
4. Take prompt legal action if other businesses use your trademark without your permission (I'd expect a polite letter, sent certified mail, would be fine. Remember to keep a copy of the letter).
The book also talks about how to search for people who may already be using a mark you wish to use. The Trademark Electronic Search Service can be
found on the
U.S. Patent and Trademark Office Website . This lets you do a "direct hit" search (see if anyone else has registered that exact name). There is also a (pay-per-use) search engine called SAEGIS at www.saegis.com that can do analytical searches that look for marks with a similar name. I haven't used SAEGIS so I don't know how much they charge, but it may be worth it if you want to make absolutely sure no one else has a similar trademark.
So it seems that TSA Bob is suggesting that separating pieces of your custom electronics may help your luggage get through TSA screening. Since this device was found in carry-on baggage I don't know how much that would help. I often travel with custom and semi-custom electronics in my checked baggage and I've never had a problem (although I regularly find the "searched by TSA" card when I reach my destination). A couple things I do:
-Put custom electronics in my checked baggage whenever possible
-Put the parts in separate containers whenever possible
-Separate batteries, antennas, and other accessories from the devices
-Try not to travel to Phoenix (nothing to do with custom electronics or TSA, I've had two bags seriously damaged at PHX)
Also, be aware that "rubber-ducky" type antennas show up as a thin metal blade/wire on x-ray. I've had my carry-on's searched a couple times because I forgot to put an antenna in my checked baggage, although it's never been a problem once I took it out of the bag and showed it to the agent.
From the article:
"The court in December refused to hear a related appeal from Arch Wireless, now a unit of USA Mobility Inc., the nation’s largest provider of paging services. The 9th Circuit court said the company violated a federal electronic-privacy law by providing the transcript without seeking Quon’s permission".
So the Supreme Court ruled that the department had the legal authority to review the pager messages, but the 9th Circuit says the service provider violated a federal law in turning over the records without Quon's permission?
Not sure how this got a tagged as an NSA video, it's from the DSS. The DSS is the organization responsible for granting security clearances. The process they're describing is the polygraph you take to receive certain security clearances. Anyone who is taking this polygraph has applied for a Top Secret-level security clearance. This process is pretty much the same for anyone applying for these clearances, doesn't matter if they'll be working at the NSA, another three-letter agency, in the armed forces, or for a private defense contractor.
MATLAB isn't strongly typed, and by default variables are floating-point (I think 64-bit is the standard if type isn't specified). Makes sense for scientific programming. You need to go out of your way to use integer types in MATLAB, and the only reason I've ever had to do it is when trying to convert MATLAB scripts to C code to run on fixed-point processors. I do think that not supporting 64-bit integer operations is an oversight but I don't think it affects the vast majority of MATLAB users.
A cheaper alternative that's well below your price point would be CPLDs (complex programmable logic devices). Much less capable than an FPGA but also much cheaper. Xilinx makes the CoolRunner line, Altera makes the MAX line, and I'm sure there are plenty of others. There's a $63 Xilinx development kit available from digi-key:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=122-1573-ND
If they have clusters that are processing classified data then those clusters can only be accessed from classified terminals which are physically controlled. I don't believe it's possible to partition a "section" of an unclassified machine to do classified processing. If classified machines are talking across an unclassified network then they've got Type 1 encryption devices sitting in between them and the network. Protecting classified resources is completely different than protecting unclassified resources since there's already mandatory physical security around classified machines.
Although smallparts has some really cool stuff they're not so good for large mechanical pieces like the poster is asking for. A shop like the oft-mentioned McMaster-Carr will have more of the large pieces.
I'm not sure why a cognitive radio would be wideband, it could just as easily be a narrowband radio. It would be better if it could tune over a wide range of frequencies, or maybe just a few frequencies in several discrete bands like cell phones.
The cognitive radio stuff I'm familiar with is on the military side, and I think it's mostly targeted at narrowband long-range comms that don't use fixed base stations. I don't think it's as applicable to commercial wireless networks that use a fixed infrastructure.
Executive management (except CIO/CSO obviously) shouldn't need to understand anything about the technical details. The technical groups should be doing the necessary analysis and giving them the necessary information to make choices about technology initiatives.
The problems come when the execs ignore what their direct reports are telling them, or if the technical people aren't providing the execs the information they need to make the decisions. I don't think trying to educate the execs on the technical details is a very efficient solution to either of those problems, although I suppose it may work with certain managers.
What about having a regular monitor-keyboard-mouse on a cart? Wheel it up to the robot and plug in to the relevant connections on the mini-ITX board. That's how I would go if you want to do development on the robot platform itself.
If what you're really looking for is a way for the robot to display debug/state information while it's running I think the serial LCD character displays are probably the cheapest text displays you'll find. If you just need some basic error information consider throwing on some green and red LEDs.
If you've got a reasonably small code base you might want to keep the documentation style you've got. I'm not sure what a "very cryptic block diagram" looks like, but a simple drawing showing the functional blocks of your software may be good enough. For smaller embedded projects I've done in C or assembly (2-4 people on the team, 10K lines of code, minimal use of 3rd party code other than maybe the C std lib) this is the design/documentation style I've used:
1) Create an architectural design. Identify the main functional blocks of software in a drawing, include a one-paragraph explanation of what each block does.
2) Define the external interfaces, from the physical level on up. Define any internal interfaces necessary to support development, but don't go crazy, internal interface documentation is hard to maintain.
3) Code to the design. The "detailed documentation" is the comments you put in the code. Every file, function and most globals should have a brief comment describing what it contains or what it's for.
For a simple embedded system I've found this is a good approach. Things that will require a higher level of documentation: large code size, library-type code that will be heavily reused in the future, a large number of developers. Embedded systems are often a very different animal than applications, and some embedded software is inherently not reusable.
The real question you should ask yourself is "What extra help am I getting from my new documentation format, and does it justify the extra time I'm going to be putting into it?".
If you're looking to include embedded programming in your projects I recommend picking up the "evaluation" or "starter" kits that all controller vendors sell to support their projects. They come with all the hardware you need to get started with embedded programming and they're easy to interface to your kit circuits. What they often don't include are the software development tools, although sometimes the software tools are bundled with the kit.
My personal favorite is TIs "Experimenter's Board" for their MSP430 micros:
http://focus.ti.com/docs/toolsw/folders/print/msp-exp430fg4618.html
That one's fairly advanced and costs $100 (not including the programming cable), if you use a simpler controller like a PIC you can find a cheaper alternative.
I'm not sure that engineering processes are more "procedural" than anything else. True, at the lowest level, you're probably working with processes that are better represented as functions/methods than as objects. But I think the same thing is true of most other problem spaces: at the most atomic level, the programming is more procedural. OO is an intelligent way to bring all these "low-level" pieces together.
I expect the best use of OO in Engineering is still to provide an intelligent framework for a system that needs multiple atomic processes. For example, say you're simulating a gas in a chamber as a bunch of Newtonian spheres that collide with perfect elasticity. You could make a "GasParticle" class, and design you're simulation from there. Using the OO method is going to make it easier to incorporate changes later (i.e. imperfectly inelastic collisions) and makes your code more reusable (if you want to do a flow simulation in a similar way, you can reuse your "GasParticle" class).
I don't think any of the serial lines tie directly into the motherboard.... if they were gonna blow anything, I'd think it was the UART that sits on the serial port. I also find it hard to believe you build up THAT much static that you send it through the serial port and fry UART and motherboard... maybe if the Palm's power supply somehow got shorted across a serial line, but not static.
The real value of this technology is military use. These signals have an EXTREMELY low probablility of detection/intercept. I don't know that I see any great commercial advantages here (maybe wireless LANs in urban areas where "ghosting" is a problem), but this stuff will probably be appearing in military gear in the near future.
I believe he said only idiots run unknown software as root on a *nix machine, and I tend to agree. You shouldn't be logged in as root, even on your own box, unless you really need to be.
I didn't see mention of scientists and engineers in the article's quotes... there was one guy who was a "computer scientist", and another was "Chief Scientist" of a graphics company, but it didn't sound like a wholesale assault from a bunch of EEs and Physicists. I wasn't at the ACM meeting, but it sounds to me like this article warped some comments into a "Scientist v. Programmers" vein to make it more interesting. In any case, when you're talking things like interfaces and fundamental hardware design, aren't you talking about SEs and EEs and CEs and what have you? Not computer scientists...
Given that this was an ACM meeting, I don't think the views represented here are at all indicative of "scientists and engineers" in general. If anything, most of the scientists I know are perfectly happy to write in FORTRAN (gack) and could care less about the marketability of personal computers. Engineers would be more likely to care about usability, but if anything they would be the ones looking for a full-featured computer, not an "appliance". Sounds to me like a bunch of people hurt by the recent economic problems associated with the stock market are angry and want someone to blame... a few may happen to be engineers and scientists, but I very much doubt this is at all a majority opinion.
If you set up a company correctly, it's true that you should get quite a bit of legal protection. However, incorporating is far from being a catch-all defense against personal liability. The courts haven't been hesitant in going after people who clearly are using a corporation as a shield for their illegal activities, and I can't really see how you can set up a corporation for the express purpose of violating copyright law and not expect the courts to come after you personally. You are still liable for your personal actions, whether you're the employee of a corporation or not.
Well, semantically, CS deals with the "science" of computers, while CE deals with the engineering aspects. If the academic computer tracks stuck the the normal definitions, the CS track would stress algorithm development, mathematical analysis, computational theory, etc., while the CE track would stress creating software and hardware systems to solve problems in the real world.
In reality, there's very little difference between the two majors. Both will teach you basic computer programming, a little bit of hardware, and some of the supporting math. A CE degree will probably require you to take a few more engineering courses, while a CS degree might have some more math. Really, I would consider those two degrees interchangeable, with the specific education you get depending more on the school you attend than the name of the degree.
My personal opinion? Get a physics or math degree with a CS/CE double major/minor if you want very high-level technical programming jobs (in an engineering firm, for example) or if you want to do academic work. Get a CS/CE degree (don't really think it matters which) if you want to be a software engineer/software developer. If you just want to make some quick money and have no strong love for computers, get a quick certification. Note that these are just general guidelines... I know several great technical programmers who are entirely self taught, and I know one guy with a BS in CS and and MS in Math that can barely write a "Hello World" program in C.
I don't think substance use and abuse really gives one any additional programming skills, and I don't think the lack thereof implies someone is a coward or not creative. Drugs are just one more form of recreation... for some people, they are an important part of their emotional growth, for some they're just a small part of their social life, and others simply avoid them altogether. They certainly have no impact on what kind of a programmer you are. I know many brilliant people who would fit into each of the categories above, and I can't think of a single case in which using drugs in any way increased their ability to perform science/engineering work.
Using drugs isn't going to have a positive effect on someone's rational thinking ability or on their creativity in problem solving. Drug experiences may bring out different emotions that may positively affect their artistic work, but I really don't believe anyone who says they can eat a mess of acid and suddenly the quality of their code goes up and they can work out new alogrithms they couldn't figure out while straight.
Since this is obviously unenforceable, why'd they even bother? Are they really stupid enough to think they can enforce this? I'm beginning to wonder if some of these companies aren't acquiring and anouncing unenforceable patents just to get the free publicity on an article on /.
Hey, I wonder if I can patent that program? A frivolous patent generator that generates patent applications based on the likelyhood that they'll provide extraordinary amusement for the Slashdot community, therefore earning a company tons of free publicity.
I see how having a special court set up to handle technology cases could produce better, faster rulings, but exactly why does this make a tech company want to incorporate in Michigan? I can't see a big business advantage here... it's easier to sue and be sued? I suppose if you're in the "business" of enforcing frivolous software patents that helps you, but I don't see a huge advantage otherwise (unless, as the article suggests, the courts tend to rule in the comapny's favor, which seems like a pretty tricky ethical situation).
As for an online court, this doesn't sound like a great idea to me. Too many extra variables, and I can't even begin to imagine the number of appeals you'd get in the first 4 or 5 years until they worked the bugs out of the system. If Michigan really wants to attract High tech. businesses, they should do it with tax breaks (like Delaware) or support services (like New Jersey), not with courts.
Presumably, people who write Open Source code are doing it for their own enjoyment, which means they will tend to concentrate on the things they enjoy (adding new features) not the things they dislike (debugging someone else's code, documentation). This is one area where I feel the Open Source methods can be weak... there's no real imperative for quality control, since everyone's doing it for the enjoyment. A prestigous project may be able to enforce some quality, but for smaller projects, I can't think of any way to induce people to concentrate on the necessary but boring tasks as opposed to the fun (and maybe not necessary) tasks.
I assure you. Whether it's post-modern, popular, good, bad, ugly or indifferent, there's plenty of art out there. A child scrawling with crayons on a piece of paper is "art", and if someone wants to consider their program to be "art", sure, why not. The real question is: is it any good? The answer: Depends on who's looking at it. There are certain pieces of "art" that are very widely believed to be "good" or "great", but this just happens to be a consensus opinion. Personally, I like to judge art by the emotional experience it creates for me... by my interpretation, Beethoven's 5th is a wonderful piece of art, while your Perl script is terrible (although I may appreciate the great programming job you've done, for me personally, that just doesn't make it good art. Someone else probably feels differently).
There's tons of "art" in the world, and just because something is "art" doesn't mean it really has any value, any more than a child's drawing does. Is programming art? Sure. Are there any programs that are "good" art? Purely a matter of opinion...
How you proceed depends on how strong your trademark is. If it's distinctive and fairly unique (Kodak film), and your the first to use it, you can protect it as a strong trademark. If it's general (probably not in your case) it's a "weak" trademark (Al's Car Repair), and although you can't stop other people from using it, they can't stop you either.
If you have a strong trademark and want to protect it, the "Legal Guide for Starting and Running a Small Business" by Fred Steingold (Nolo) suggests:
1. Use your trademark as a proper adjective that describes your product.
2. Always capitalize the first letter of your trademark.
3. If your trademark has been placed on the Federal trademark register, consistently use the (R) symbol (I think other people have already chimed in with advice on what you can do to make it "commercial" and able to get put on the register).
4. Take prompt legal action if other businesses use your trademark without your permission (I'd expect a polite letter, sent certified mail, would be fine. Remember to keep a copy of the letter).
The book also talks about how to search for people who may already be using a mark you wish to use. The Trademark Electronic Search Service can be found on the U.S. Patent and Trademark Office Website . This lets you do a "direct hit" search (see if anyone else has registered that exact name). There is also a (pay-per-use) search engine called SAEGIS at www.saegis.com that can do analytical searches that look for marks with a similar name. I haven't used SAEGIS so I don't know how much they charge, but it may be worth it if you want to make absolutely sure no one else has a similar trademark.