Re:Comparing programming to "real world" endeavour
on
Software Craftsmanship
·
· Score: 1
I always find it amusing to read about people who try to compare programming (or software engineering, or whatever) to things such as house building, or even more general like "master craftsman", apprentice, etc
Whenever I hear an argument like that, it usually compares software to automotive companies. I like to remind them that if they want to use that comparison, then their automotive companies must be as adaptive as software.
The functional requirements (not just styling) change every year. Your customer base expands by orders of magnitude every year, requiring more and more support. The environment that the product runs in (rails, roads, rivers... whatever) changes every two or three. The actually product changes every five years... changing from building cars to airplanes to submarines. The materials used to build the product are completely replaced every ten years. The consumable (fuel) that that product consumes changes every four or five years. And you have to do all of this in six to eight month product cycles.
You can't rely on last years model to provide a base for next year's with all of those changes.
I know a physicist who claims that pi is in fact rational. He claims that the only reason we don't realize it yet is because of the current limitations of our circle measuring devices.
That's cool. Tell him that normal matter can accelerate past the speed of light in normal space. The only reason that we think that it can't is because we don't have an engine powerful enough to do it yet.
There is an old saying about all the jokes were written long ago, all we do is change the names and the places, It's the same way with crime. All the basic types of crime were listed in the Ten Commandants. All technology has done is provide new ways of committing those same crimes.
This has been a beef of mine with laws for a long time. Why do we need to make new laws for new technology? If basic types of crime are well know, why are there all of these special cases? Why wasn't the original law written with a view for the future? If society wants to make it illegal to calculate root4, why do our laws say "it is an offence to calculate root4 by a) using a slide rule, b) using a pen and paper or other writing utencils, c) mental calculation, or d) use of an electronic calculator"? Why not just say "it is an offence to calculate root 4".
For example, why are new laws needed to combat child porn on the internet? Why don't the old ones work? Does a law really need to say "it is an offence to distribute pornographic images of children over the internet"? Why not just "it is an offence to distribute pornographic images of children"?
When bank robbers moved from horses to cars was it important that lawmakers have a detailed understanding of cars before writing applicable laws?
Why did they need new laws? Why did the old law specify using a horse? Does this mean it is not illegal to use a cow as a method of transportation during a bank robbery, although horses and cars are prohibited?
Under United States law, it is unlawful "to use any telephone facsimile machine, computer, or other device to send an unsolicited advertisement" to any "equipment which has the capacity (A) to transcribe text or images (or both) from an electronic signal received over a regular telephone line onto paper." " Seems like this would be a nice source of spare income if it could be done reliably, but do I have to use a modem?
My point is, that between completely illegitimate spam that doesn't even have any real contact information...
Most spam has contact data. How can they expect to get your money if you have no way of sending it? Eventually you have to be able to send a check somewhere... unless they are doing a pump-and-dump.
Read the article. His tenuous argument is that email is similar to a fax, because he uses a dialup fax modem to read his email
No, the argument was that his computer is a "telephone facsimile machine" since it can "... transcribe text or images (or both) from an electronic signal received over a regular telephone line onto paper" as required by the statute. Further, the statute prohibits "[using] any telephone facsimile machine, computer, or other device to send an unsolicited advertisement to a telephone facsimile machine". The statute does not state that the advertisement must be sent over a telephone line, only that it must be sent to a "telephone facsimile machine".
Ie, the sender used a "computer" to send an "unsolicited advertisement" to his "telephone facsimile machine," which is prohibited section (b)(1)(C) of the statute.
On that note, how many of us use a fax modem any more I doesnt matter, if your computer has one, then it is a "telephone facsimile machine" as defined by the statute.
>the intermediate results are meaningless until you have the complete (or at least almost complete) infrastructure to interpret the data
If that is your case, then you are performing system testing and not unit testing. If intermediate results are meaningless but you want to test them, then you need to define what the intermediate result should be in your specification. That's what unit testing is: you test one unit of you code and say "if this unit works correctly, then it fulfills its design contract, and any other unit that uses its contract correctly will receive guaranteed results." If your intermediates are meaningless, then you can't say that, and you can't test individual units.
Unit tests are great, I write them for every class (except pure view components -- they change too much to keep the tests current). Just exercise every public method on the class and make sure you have coverage. If you don't know what a result should be, rethink your spec. If you want to test a private method, refactor. Run your unit tests as regression tests. Consider them to test each individual component.
I tried to switch from Network Solutions once. My account had been with them for two years and was due for renewal. A couple of weeks before the domain expired, I went to another registrar (netsol was overpriced by this point) and filled out a domain transfer form. The next day, my transfer was rejected because my account was "unpaid" at netsol. I tried again, and it was rejected for the same reason. So I sent netsol an email saying that my account had a few weeks left, and asking them what was up, and they sent me back a form letter saying that transfers are rejected if an account is unpaid. So I mailed them again and got no reply....
I then mailed the new registrar and they said that netsol did that a lot, and that my best bet was to renew my account with netsol, and then immediately transfer the domain before netsol would flag my account as "unpaid." So I did that and it got switched ok.
Just my story... I will never deal with them again. I think this was after the VeriSign buyout.
To answer your final question... I use RegisterSite.com. They dont have the best prices, but they offer good service and support.ca domains. When one of my domains had a problem, they actually called me to work it out... amazing concept...
No, all of the Xboxes would currently be distributed to use the current public key from the RSA keypair. To replace the key, microsoft would have to either recall every Xbox and replace its EPROM containing the key (or wherever it is). MS could not distribute a patch, since the patch would have to be encrypted and authenticated with the current keypair, which would already be compromised... unless they have another undocumented keypair specifically for distributing new keys. Even if they did this, they would lose backwards compatibility with all currently published disks, since they are signed with the old key.
Charter of Rights and Freedoms. Which section does it violate? Section 8: "Everyone has the right to be secure against unreasonable search or seizure." is the only thing that comes close. I don't know if data retention counts as unreasonable search and seizure. And you will note that Section 33 (a/k/a "the notwithstanding clause") can exclude section 8, but I doubt that they would try to use it for this garbage proposal.
So, here's the question. Why do they need to keep logs of web page accesses?
From the article: "Canadian officials say such laws are necessary to fight terrorism and combat even run-of-the-mill crimes. They also claim that by enacting these proposals, Canada will be following its obligations under the Council of Europe's cybercrime treaty, which the country is in the process of considering."
As a side note: "[would] authorize police to order Internet providers to retain logs of all Web browsing for up to six months. . . . In most circumstances, a court order would be required for government agents to conduct Internet monitoring."
When the RIAA comes and demands they cut off access to warez.org, they'll be in less of a position to say they can't/don't do content-based filtering. In for a penny, in for a pound; this may be shooting themselves in the foot.
How so? The RIAA has cleary stated that THEY WILL actively attack P2P users on any computer that is distributing music. They are protecting users here, not filtering.
Because they have demonstrated that they have the physical capacity to block access. They can no longer claim that blocking content is not possible, since they are actively doing so. The fact that they are protecting their users in this case won't matter. If they were compelled to block other access by a court order (or something else), then they would have to, since it is possible.
non-US citizens here on vacation DO NOT enjoy the same rights as Americans do. Nothing in the constitution says we have to extend those rights to everyone in the world.It specifically specifies US citizens.
Actually the Bill of rights contains phrases such as "Congress shall make no law... right of the people...", "The right of the people...", "any house", "No person...", "In all criminal prosecutions, the accused...", "nor shall any State deprive any person of life... nor deny to any person...", etc.
Restrictions on citizenship are only in the articles about voting and representation.
But I don't think the Win95-ish interface is that bad, frankly. The taskbar was actually a throwback to the earliest version of Windows that had the "running programs" all in one place, but that isn't that bad of a thing...running programs should look different from program launchers in my opinion. (That's a mistake I think OSX makes, kind of mixing the two)
The task bar was introduced because lusers did not know that they could run multiple programs under windows [all jokes aside], or at least how to do it. Most users would have "Program Manager" cover their entire desktop, and any app that they launched would also cover the whole screen, so the icons of apps running in the background would get covered by the app in the foreground and the user wouldn't know that they where there. I had to point this out to countless new users back in the day.
Personally, I like the Win9x interface. I would like to see a more document and project centric views though. The 9x interface is still to program centric, IMHO.
I can't see many people choosing an anoying flashy desktop over a bland functional one... as long as they want to effectively use their machines. I don't want my desktop to be a source of distraction -- it is there to give me access to my data, not to entertain me or steal system resources.
new, and potentially unbreakable, encryption technology
Unbreakable? Sounds like snake oil already...
An idea dawned on him for a unique way to use random numbers in a math equation to encrypt data. "Since you don't know what any of the values are mathematically, [a hacker] can't solve it,"
This is ridiculous. Some stream ciphers use random number generators for their encryptions. The problem is, that since the "random" numbers come from a random number generation algorithm, they are not random -- they just appear to be. When they are subject to analysis, patterns are found, and the whole system is compromised. The security lies in how hard it is to predict the "random" numbers.
Jason Kauffman is going to continue plugging away at his mechanical-engineering degree.
That's a good idea, since this sounds like the junk "unbreakable" encryption that comes around every few years. If he's interested in encryption, he should take some advanced math classes to get a better foundation to work from. And pick up a copy of Applied Crytography.
Sorry about the rant... but this kind of thing gets me going.
The Area code yes, but the prefix (first three numbers) is never split between land phones and cell phones
um, no... that must be new, or depend on you carrier. I have two cell numbers that are in the same prefix as land lines. 754-xxxx and 758-xxxx. The city where I signed up has the 752 through 759 prefixes (the company where I worked had a number that started with 758). Although I think you are right with new numbers -- my father got a cell in the same city (last year) with a 761 number.
How can porting MAME to an X-box possibly be either illegal or damaging to Microsoft?
It's probably a term of using the development kit that developers must follow certain protocols for releasing an application. ie, pay MS x dollars per shipped app. I haven't red the license, so I don't know.
The site says No binaries are allowed to be posted here. Specifically built with the XDK though!!!. I think that can be deciphered to support my argument.
When you publish something on the web, it is publicly available via HTTP. End of story.
I don't think that that is a good enough standard. When a television show is broadcast, or when a book is published, it is publicly available -- but we don't think that the publisher looses their right to copyright protection in these cases. Publishing on the web is similar. The creator wants people to see his/her creation, but does not automatically give visitors the right to archive and retransmit the works.
I always find it amusing to read about people who try to compare programming (or software engineering, or whatever) to things such as house building, or even more general like "master craftsman", apprentice, etc
Whenever I hear an argument like that, it usually compares software to automotive companies. I like to remind them that if they want to use that comparison, then their automotive companies must be as adaptive as software.
The functional requirements (not just styling) change every year. Your customer base expands by orders of magnitude every year, requiring more and more support. The environment that the product runs in (rails, roads, rivers... whatever) changes every two or three. The actually product changes every five years... changing from building cars to airplanes to submarines. The materials used to build the product are completely replaced every ten years. The consumable (fuel) that that product consumes changes every four or five years. And you have to do all of this in six to eight month product cycles.
You can't rely on last years model to provide a base for next year's with all of those changes.
I know a physicist who claims that pi is in fact rational. He claims that the only reason we don't realize it yet is because of the current limitations of our circle measuring devices.
That's cool. Tell him that normal matter can accelerate past the speed of light in normal space. The only reason that we think that it can't is because we don't have an engine powerful enough to do it yet.
There is an old saying about all the jokes were written long ago, all we do is change the names and the places, It's the same way with crime. All the basic types of crime were listed in the Ten Commandants. All technology has done is provide new ways of committing those same crimes.
This has been a beef of mine with laws for a long time. Why do we need to make new laws for new technology? If basic types of crime are well know, why are there all of these special cases? Why wasn't the original law written with a view for the future? If society wants to make it illegal to calculate root4, why do our laws say "it is an offence to calculate root4 by a) using a slide rule, b) using a pen and paper or other writing utencils, c) mental calculation, or d) use of an electronic calculator"? Why not just say "it is an offence to calculate root 4".
For example, why are new laws needed to combat child porn on the internet? Why don't the old ones work? Does a law really need to say "it is an offence to distribute pornographic images of children over the internet"? Why not just "it is an offence to distribute pornographic images of children"?
When bank robbers moved from horses to cars was it important that lawmakers have a detailed understanding of cars before writing applicable laws?
Why did they need new laws? Why did the old law specify using a horse? Does this mean it is not illegal to use a cow as a method of transportation during a bank robbery, although horses and cars are prohibited?
Under United States law, it is unlawful "to use any telephone facsimile machine, computer, or other device to send an unsolicited advertisement" to any "equipment which has the capacity (A) to transcribe text or images (or both) from an electronic signal received over a regular telephone line onto paper." " Seems like this would be a nice source of spare income if it could be done reliably, but do I have to use a modem?
No, you just need to have the capacity to.
My point is, that between completely illegitimate spam that doesn't even have any real contact information...
Most spam has contact data. How can they expect to get your money if you have no way of sending it? Eventually you have to be able to send a check somewhere... unless they are doing a pump-and-dump.
Read the article. His tenuous argument is that email is similar to a fax, because he uses a dialup fax modem to read his email
No, the argument was that his computer is a "telephone facsimile machine" since it can "... transcribe text or images (or both) from an electronic signal received over a regular telephone line onto paper" as required by the statute. Further, the statute prohibits "[using] any telephone facsimile machine, computer, or other device to send an unsolicited advertisement to a telephone facsimile machine". The statute does not state that the advertisement must be sent over a telephone line, only that it must be sent to a "telephone facsimile machine".
Ie, the sender used a "computer" to send an "unsolicited advertisement" to his "telephone facsimile machine," which is prohibited section (b)(1)(C) of the statute.
On that note, how many of us use a fax modem any more
I doesnt matter, if your computer has one, then it is a "telephone facsimile machine" as defined by the statute.
> IRC: where men are men, women are men, and children are FBI agents.
Really? I always pretended to be a girl. People seemed more willing to help when jill_17 or cindy_23 asked questions.
>the intermediate results are meaningless until you have the complete (or at least almost complete) infrastructure to interpret the data
If that is your case, then you are performing system testing and not unit testing. If intermediate results are meaningless but you want to test them, then you need to define what the intermediate result should be in your specification. That's what unit testing is: you test one unit of you code and say "if this unit works correctly, then it fulfills its design contract, and any other unit that uses its contract correctly will receive guaranteed results." If your intermediates are meaningless, then you can't say that, and you can't test individual units.
Unit tests are great, I write them for every class (except pure view components -- they change too much to keep the tests current). Just exercise every public method on the class and make sure you have coverage. If you don't know what a result should be, rethink your spec. If you want to test a private method, refactor. Run your unit tests as regression tests. Consider them to test each individual component.
> How many of you found it beneficial to expound on the virtues of open source software or the beauty of TCP/IP structure during a date?
Well... there was this one time that the chick was really into the four colour theorem.
I tried to switch from Network Solutions once. My account had been with them for two years and was due for renewal. A couple of weeks before the domain expired, I went to another registrar (netsol was overpriced by this point) and filled out a domain transfer form. The next day, my transfer was rejected because my account was "unpaid" at netsol. I tried again, and it was rejected for the same reason. So I sent netsol an email saying that my account had a few weeks left, and asking them what was up, and they sent me back a form letter saying that transfers are rejected if an account is unpaid. So I mailed them again and got no reply....
.ca domains. When one of my domains had a problem, they actually called me to work it out... amazing concept...
I then mailed the new registrar and they said that netsol did that a lot, and that my best bet was to renew my account with netsol, and then immediately transfer the domain before netsol would flag my account as "unpaid." So I did that and it got switched ok.
Just my story... I will never deal with them again. I think this was after the VeriSign buyout.
To answer your final question... I use RegisterSite.com. They dont have the best prices, but they offer good service and support
> ...can't M$ change it to another?
No, all of the Xboxes would currently be distributed to use the current public key from the RSA keypair. To replace the key, microsoft would have to either recall every Xbox and replace its EPROM containing the key (or wherever it is). MS could not distribute a patch, since the patch would have to be encrypted and authenticated with the current keypair, which would already be compromised... unless they have another undocumented keypair specifically for distributing new keys. Even if they did this, they would lose backwards compatibility with all currently published disks, since they are signed with the old key.
Charter of Rights and Freedoms. Which section does it violate? Section 8: "Everyone has the right to be secure against unreasonable search or seizure." is the only thing that comes close. I don't know if data retention counts as unreasonable search and seizure. And you will note that Section 33 (a/k/a "the notwithstanding clause") can exclude section 8, but I doubt that they would try to use it for this garbage proposal.
So, here's the question. Why do they need to keep logs of web page accesses?
From the article:
"Canadian officials say such laws are necessary to fight terrorism and combat even run-of-the-mill crimes. They also claim that by enacting these proposals, Canada will be following its obligations under the Council of Europe's cybercrime treaty, which the country is in the process of considering."
As a side note:
"[would] authorize police to order Internet providers to retain logs of all Web browsing for up to six months. . . . In most circumstances, a court order would be required for government agents to conduct Internet monitoring."
and would they really want to be degraded to a piece of jewlery ?
As opposed to a pile of ash, a rotting corpse, or a frozen head? I don't think that it matters what happens to our bodies once we leave them.
It wouldn't bother me if I were turned into jewlery... although I don't know if I'd want to be associated with that whole diamond evil empire.
When the RIAA comes and demands they cut off access to warez.org, they'll be in less of a position to say they can't/don't do content-based filtering. In for a penny, in for a pound; this may be shooting themselves in the foot.
How so? The RIAA has cleary stated that THEY WILL actively attack P2P users on any computer that is distributing music. They are protecting users here, not filtering.
Because they have demonstrated that they have the physical capacity to block access. They can no longer claim that blocking content is not possible, since they are actively doing so. The fact that they are protecting their users in this case won't matter. If they were compelled to block other access by a court order (or something else), then they would have to, since it is possible.
None. To break RSA you need to be able to factor the number, not determine primality.
non-US citizens here on vacation DO NOT enjoy the same rights as Americans do. Nothing in the constitution says we have to extend those rights to everyone in the world.It specifically specifies US citizens.
Actually the Bill of rights contains phrases such as "Congress shall make no law... right of the people...", "The right of the people...", "any house", "No person...", "In all criminal prosecutions, the accused...", "nor shall any State deprive any person of life... nor deny to any person...", etc.
Restrictions on citizenship are only in the articles about voting and representation.
Source: CONSTITUTION OF THE UNITED STATES
But I don't think the Win95-ish interface is that bad, frankly. The taskbar was actually a throwback to the earliest version of Windows that had the "running programs" all in one place, but that isn't that bad of a thing...running programs should look different from program launchers in my opinion. (That's a mistake I think OSX makes, kind of mixing the two)
The task bar was introduced because lusers did not know that they could run multiple programs under windows [all jokes aside], or at least how to do it. Most users would have "Program Manager" cover their entire desktop, and any app that they launched would also cover the whole screen, so the icons of apps running in the background would get covered by the app in the foreground and the user wouldn't know that they where there. I had to point this out to countless new users back in the day.
Personally, I like the Win9x interface. I would like to see a more document and project centric views though. The 9x interface is still to program centric, IMHO.
People also make too many generalizations.
I can't see many people choosing an anoying flashy desktop over a bland functional one... as long as they want to effectively use their machines. I don't want my desktop to be a source of distraction -- it is there to give me access to my data, not to entertain me or steal system resources.
new, and potentially unbreakable, encryption technology
Unbreakable? Sounds like snake oil already...
An idea dawned on him for a unique way to use random numbers in a math equation to encrypt data.
"Since you don't know what any of the values are mathematically, [a hacker] can't solve it,"
This is ridiculous. Some stream ciphers use random number generators for their encryptions. The problem is, that since the "random" numbers come from a random number generation algorithm, they are not random -- they just appear to be. When they are subject to analysis, patterns are found, and the whole system is compromised. The security lies in how hard it is to predict the "random" numbers.
Jason Kauffman is going to continue plugging away at his mechanical-engineering degree.
That's a good idea, since this sounds like the junk "unbreakable" encryption that comes around every few years. If he's interested in encryption, he should take some advanced math classes to get a better foundation to work from. And pick up a copy of Applied Crytography.
Sorry about the rant... but this kind of thing gets me going.
The Area code yes, but the prefix (first three numbers) is never split between land phones and cell phones
um, no... that must be new, or depend on you carrier. I have two cell numbers that are in the same prefix as land lines. 754-xxxx and 758-xxxx. The city where I signed up has the 752 through 759 prefixes (the company where I worked had a number that started with 758). Although I think you are right with new numbers -- my father got a cell in the same city (last year) with a 761 number.
How can porting MAME to an X-box possibly be either illegal or damaging to Microsoft?
It's probably a term of using the development kit that developers must follow certain protocols for releasing an application. ie, pay MS x dollars per shipped app. I haven't red the license, so I don't know.
The site says No binaries are allowed to be posted here. Specifically built with the XDK though!!!. I think that can be deciphered to support my argument.
When you publish something on the web, it is publicly available via HTTP. End of story.
I don't think that that is a good enough standard. When a television show is broadcast, or when a book is published, it is publicly available -- but we don't think that the publisher looses their right to copyright protection in these cases. Publishing on the web is similar. The creator wants people to see his/her creation, but does not automatically give visitors the right to archive and retransmit the works.
You can find the actual FTC Administrative Complaint here.