A Bomb and unauthorized duplication are different.
on
Hacker Crackdown?
·
· Score: 2
Interesting argument, but at another hand, what about full-disclosure security lists where someone illustrates HOW to crack something by writing an exploit?
Is this fundamentally wrong?
Not to mention, the difference between a bomb and someone playing Metallica MP3's without paying. One destroy's property, and can cause injury or death. The other is a $10 economic damage.
United States Copyright Office
A Brief History and Overview
.....
May 31, 1790
First copyright law enacted under the new U.S. Constitution. Term of 14 years with privilege of renewal for term of 14 years. Books, maps, and
charts protected. Copyright registration made in the U.S. District Court where the author or proprietor resided.
--
Don't forget, for those who think about all the plusses of a 70 year copyright law.. I hope you're not doing anything related to Christmas.. Rudolph the reindeer is still under copyright for another 50 years or so. And your book better not contain the lyrics of Happy Birthday, as that's copyrighted too.
It's a doubleedged sword, you have to no innate right to use other's artistic works, whether they be Rudolph, Happy Birthday, Darth Vader, Mickey Mouse.
Of course, if copyright had always been 70 years, Rudolph never would have been created, as Santa and his sleight wouldn't have left copyrigh until the 70's. (Thomas Nast, the creator of Santa, died a in the 1900's.)
I don't know the whole history of LISP from way back when, maybe it was interpreted for the first few versions from 20 years ago.:)
C practically started out as being a simple frontend, one-to-one translatable to assembly language. And now we have optimizing compilers that do a hell of a lot more.
This all is about 20 years before my time, so I don't have all the details.
That C function is (believe it or not!) The demo code written by the creator of Splay trees. (Daniel Sleator, CMU) for the splay operation. BTW, it can be decoded in either language, with a 8-line block comment at the head, and about 8 lines explaining the variables and the invariants.
As for syntax, I think I know where you're problem is.. With C, you create lots of variables, but each line of code is essentially atomic. With LISP, it's (syntatically) annoying to bind a variable, so you use function calls. This means that the 'line of code' in C is short, but it's long in LISP. (I experience a similar problem with GUI programming in TCL. It's easy to create&destroy a widget set. To create and UPDATE it has no flashing, but requries a lot more work.)
For examile, I can think of a few things that might help. A coding style change, with a macro&codewalker to turn:
(assn
(a = (- (circbuffer-room circbuffer) 1))
(b = (- (circbuffer-alloc-size circbuffer) wi))
(c = (min a b))
c)
You're right about the first to be easier to understand, but calling it an artifact caused the syntax of LISP is wrong. I'm using a lot of LISP syntax there. I think it's the deeper reason, it's easier to keep track of what a single variable is than the gob of code. Fortunatly, you're not really tied to the existing syntax that LISP gives you, and the macro 'assn' is about 6 lines of code (If you want an implementation, I'll write the 6 lines.) . Infix is also a lot more familiar for representing expressions, but a long line of infix code is just as hard to understand:
Here, the ability to break this up into multiple lines of code would make it a LOT easier to understand, the same way it helped above. (What this code is trying to do is overwrite attributes on text, which can be both flags or colors. For flags, it or's them, for colors, it overwrites. Given the #define names and some study, you could infer that. You could never just read it out.)
--
Now, before I start too much on compilers, I only know one compiler fairly well, CMUCL, as ACL costs about 30x what I can afford.
The CMUCL compiler was a very sophisticated compiler for it's day, and (appears) to still be the most sophisticated even today. It uses type declarations. It treats them as assertations to be checked, but also does type inference on them. If you give declarations on your defstructs and functions, it'll usually do enough type inference to determine everything else. Under these conditions, it spits out essentially the same optimized code that C/C++ compilers would. In a benchmark with EGCS, it takes about 30% longer for array multiplication. Not bad for a compiler that's been orphaned for 6-7 years and in the public domain.
CLOS method call for PCL under CMUCL is fairly expensive, about 10x a function/closure call. For highly recursive functions or inner loops, that sucks, otherwise, only profiling can tell whether it matters. (I benchmark it at about 500ns). Comparing C++ and CLOS, CLOS offers dispatch on multiple arguments, something which C++ cannot. With the MOP, it offers infinitely more than C++ could. It's not an apples to apples comparison.
Depending on the nature of your codebase, CMUCL might speed it up some or a lot, or slow it down, or be a wrong choice. Also, what you describe has happened in the past, the Garnet project at CMU started out in Lisp, when they ported it to C++, they found their first C++ version about 3x faster than their highly-optimized LISP. (This might be an artifact of bad compilers or coders, or the fact that they didn't use CLOS. As Gabriel wrote, It can be too easy to write slow code in LISP.)
The paper I was referring to had a dozen people write the same program in Lisp and C/C++. They then compared the programs. ALthough the fastest overall program was done in C++, the average/median C++ program took about 100 seconds. The average/median lisp program took about 50. If you compare the best of the two, LISP lost.. If you compare a random pair, LISP wins by 2x. Ah, glorious statistics, the art of lying with numbers.:) There are some other details comparing with Java an development time. Read it if you're interested. http://www-aig.jpl.nasa.gov/public/home/gat/lisp-s tudy.html
First: LISP is not an interpreted language. It has modern, high-performance optimizing compilers that are comparable in performance to C/C++, and have been for the last decade. In fact, a paper from a year ago showed that it was twice as fast as C++, by either measure you want to used: execution speed or productivity. (reference available upon request.)
A simple syntax lets one programmably alter program code. These types of operations are potent. (See Aspect oriented programming, where they're reinventing macro's for C++/Java. I agree that it'll be a big thing in 10-20 years.) Macro's let one transparently and trivially add in automatic serialization onto objects. Or handle remote-procedure call, orthogonal persistence, network-transparency. Literally, these can be added to a class with one line of code.
Like any other powerful feature, it can be overused or abused and make code swiss cheese. But, properly used (CLOS/Series/defpackage), it lets one add signifigant semantic abilities to a language.
You cannot look at a C program and just read it. For example: What does this code do?
typedef struct tree_node Tree;
struct tree_node {
Tree * left, * right;
int item;
};
Tree * foobar (int i, Tree * t) {
Tree N, *l, *r, *y;
if (t == NULL) return t;
N.left = N.right = NULL;
l = r = &N;
for (;;) {
if (i < t->item) {
if (t->left != NULL && i < t->left->item) {
y = t->left; t->left = y->right; y->right = t; t = y;
}
if (t->left == NULL) break;
r->left = t; r = t; t = t->left;
} else if (i > t->item) {
if (t->right != NULL && i > t->right->item) {
y = t->right; t->right = y->left; y->left = t; t = y;
}
if (t->right == NULL) break;
l->right = t; l = t; t = t->right;
} else break;
}
l->right=t->left; r->left=t->right; t->left=N.right; t->right=N.left;
return t;
}
You claim that LISP is incomprehensible and cannot be read without looking at the details or macros. C/C++, without macro's, appears to have the same shortcoming.
Because you have to trace through all of the classes and functions and definitions. Large, or even small gobs of code are hard to understand in any language. LISP, Java, or C++, although it can be helped if the people use reasonable variable names and comment their code with invarients.
Please do tell me what this code does and how it works. Yes this was some code I was attempting to port to LISP. I gave up trying to understand it and rolled my own implementation. I won't post what it does. You can email your guess if you want.
It seem strange looking at these types of languages. The more langauges evolve, the more they get the sementics of LISP.
LISP has an interactive read eval print loop, so you can do interactive development without signifigant recompilation.
Java inner classes are just a more verbose way of getting closures.
LISP gives you dynamic redefinition of classes and a lot of introspection of classes, objects, etc. It has safe execution in that it's crash-proof. All objects are subtypes of 't', but may be declared more explicitly. It also has seperate compilation.
It does have a few things that other languages don't. It's 30 years old, although using post-1989 versions is more pleasant. CMUCL has an interpreter, bytecode compiler, and machine code compiler. It's had all the functionality of 'aspect oriented programming' for about 20 years. You can use LISP to define transformations on LISP programs. (The 'SERIES' package is an obvious example, but the OO subsystem is another.)
The base OO system (CLOS) is a wet-dream, and with MOP, you can add network-transparency, orthogonal persistence to objects, or even reimplement your own OO system.
Admittedly, it doesn't support compilation into hard-to-reverse-engineer bytecode and later compilation of that bytecode. Products would have to be distributed in an executable format, or as source.
As someone already claimed I was wrong with 14/28 years...
http://www.loc.gov/copyright/docs/circ1a.html
Circular 1a
United States Copyright Office A Brief History and Overview
.....
May 31, 1790 First copyright law enacted under the new U.S. Constitution. Term of 14 years with privilege of renewal for term of 14 years. Books, maps, and charts protected. Copyright registration made in the U.S. District Court where the author or proprietor resided.
If the Libray of Congress isn't a definitive source, I don't know what is.
Honestly, I wouldn't mind copyright laws so much if they were reasonable... I'm advocating either removing copyright entirely..... Or,
How about reducing copyright to the origional term of 14-28 years? Keep it at about the same (pre-DMCA) strength, but make it shorter.. What I dislike about the current copyright is the terms. They make me and everyone else feel helpless in front of our culture, when we want to get into things that are modern.
Why *can't* we create a montage of planet of the apes and the origional startrek? Why can't I create a montage of I Love Lucy and Star Trek, where the Enterprise fights it out with 60's american culture? See my signature.
Our culture is held hostage to 75 year copyrights. The only ones who might get a chance to explore my culture it will be my great grandkids, and they won't care. Just as I don't care about the only culture I can freely use. It's too old, too alien. It *predates* the great depression! And they keep on extending copyrights retroactively!
Personally, I think that it might be too late to just reduce copyrights a reasonable term. I'd prefer that instead, as copyright *is* a relatively known quantity. It's a really bad kludge, but the other kludge's I seem much worse.
Copyright, in england, was origionally used by the crown for censorship.. The 'copyright' office would own title to all books, and distribute a 'copyright' to a bookprinter, so they could publish it. Publishing a book without having a copy right was a serious crime..
Then copyrights were used by the printers guild to lock out competetors. They would call ones who printed a manuscript, 'pirates'.
It was almost a century later that the right to control a work got switched to the writer/artist.
Then I'm all for it.. Visionaries like Stallman have been questioning copyright for the last 20 years. Highly internet literate people have also been questioning the use of copyright.
But we are a minority, too small to even have the potential to be dangersous.
But napster is letting tens of millions of people get, create, distribute, and trade artistic works. Take that away, and they'll question why, and those tens of millions might be able to rearrange the whole edifice of intellectual property.
As such, assuming the music was not registered for renewal, anything before 1985 would be public domain, and anything before 1995 would be within 10 years of being in the public domain..
If we assume that the companies registered everything for an extra 14 years. (Not a given, after all, 90% of music loses money, and why throw more money after bad), then anything before 1972 would be in the public domain. And anything before 1982 would be within 10 years of being in the public domain...
Mmmmm. Starwars in the public domain, joining Santa Clause... Makes my mouth water.
Every megabyte of unused memory in your system means that you're paying for memory you never use.
That's why, historically, unix or linux runs with so little *free* memory, because it tries to cache as much of the drive as possible. Read caches can be thrown away painlessly; just zero-fill the pages and pass them to the program. Dirty pages need to be written, but 'updated' flushes them to disk after 30 seconds.
True, that disk cache might not have much of a hit rate, but if the memory isn't needed for anything else, and it might save adozen disk hit's, what's the point in not using it?
So, yeah, The system I'm on now has 256mb, with: 2mb for the kernel, 4mb free, 145mb buffer, 34mb cache, 7mb on swap, leaving about 70mb being spent on programs and other misc.. I'm not quite sure where it's going, and I suspect that a lot of it is flushable. (I'm not on it locally, so there's no X/enlightenment, just squid, netscape, xemacs, apache, and some xterms.)
The public isn't completley stupid. DIVX died after all, because everyone realized what had happened..
And also, don't forget about the phase-1/phase-2 players.. The idea is that every player has an embedded shutoff switch, after which it WONT allow MP3's to play anymore. Then, come in a few years, every CD released has that trigger embedded in it.
Copyright, in england, started as a way for censorship. All books and literature had to be owned by the crown where it would license out the ability to publish to the printer cartel. One had to have a license to publish a particular literature, or one would get the axe.
Later it was used by the printer cartel to preserve their monopoly against 'pirates', or printers who were not a member of the cartel but printed stuff anyways.
In the US constitution, copyright was given for a limited term to encourage the growth of useful arts and scences. Tell me, how does THAT requirement square with my.sig?
The record companies will be happy to sell you songs individually, or sell them over the internet, but those songs must be encrypted, digitially signed, and permanently linked to a particular player, (a closed source, obfuscated player program or hardware.) And you gotta give them you player's serial number.
Oh, and they'll also be licensed and not sold, and, because they're now selling songs, they'll claim that there's no reason for any player to play unencrypted music, so all THOSE players will be made illegal. Of course, like software, they won't accept returns.
And if the player they've licensed for goes sour, you'll be stuck with megabytes of useless crap. They'll never let you convert your music to a second player, as you might be lying about your origional one breaking and you might be a pirate. So you'll have to buy it all over again.
Need I continue?
Oh, and once they've made everything else illegal, they'll put on limits. You can only play the music so many times before it disables, or so many times a month, or a limited timeframe to play it in.
And of course, once people forget about free music and think 'public domain' is a dirty word, the price will go up. $1? $5? $20? a track. The monopolies will screw you for as much as they [safetly] can. And then they'll work to make copyrights perpetual.
This is what the record companies want out of the digital future. This is what any 'copyright control' company wants. Music, lyrics, video, photography, software. This is what they all want.
Napster and any other way of letting the MASSES trade media that's unencrypted and not digitally linked (Masses != computer nerds who know FTP or IRC.) risks this bright future for record companies. It gives the heretical idea that people should question copyright. Something which they haven't seriously done in decades. Like the witches at the stake, Napster must be destroyed for that reason.
Computers don't necessarily make information free. They're good at processing information, duplicating it, checking it, debiting accounts... Thus, they allow control at a fine level that would have been impossible in the past. The media companies want this control, and are holding our public heritage as a hostage until they get it. This is why you they don't release content on the internet.
To those who think this isn't happening.. They're working on a specification for encrypted-USB speakers. Intel demo'ed a graphics chipset that encrypts every pixel to your monitor. DIVX came and (thankfully) died.
The internet gives everyone a press. As a famous quote goes ``Freedom of the press is only for those who have one.'' The internet must be controlled to protect those who already have presses. The media companies own the presses, and they claim to own the content they publish. Generally, they don't create that content, but they're damn good at grabbing control of it. They are powerful, and used to scheming for what they want.
They'd be happy to sell you songs individually, but those songs will be encrypted, digitially signed, and permanently linked to a particular player, (a closed source, obfuscated player program or hardware.) And you gotta give them you player's serial number.
Oh, and they'll also be licensed and not sold, and, because they're now selling songs, they'll claim that there's no reason for any player to play unencrypted music, so all THOSE players will be made illegal. Of course, like software, they won't accept returns.
And if the player they've licensed for goes sour, you'll be stuck with megabytes of useless crap. They'll never let you convert your music to a second player, as you might be lying about your origional one breaking and you might be a pirate. So you'll have to buy it all over again.
Need I continue?
Oh, and once they've made everything else illegal, they'll put on limits. You can only play the music so many times before it disables, or so many times a month, or a limited timeframe to play it in.
And of course, once people forget about free music and think 'public domain' is a dirty word, the price will go up. $5? $20? a track. The monopolies will screw you for as much as they [safetly] can. And then they'll work to make copyrights perpetual.
This is what the record companies want out of the digital future. This is what any 'copyright control' company wants. Music, lyrics, video, photography, software. This is what they all want.
Napster and any other way of letting the MASSES trade media that's unencrypted and not digitally linked (Masses != computer nerds who know FTP or IRC.) risks that bright future for record companies. It gives the heretical idea that people should question copyright. Something which they haven't seriously done in decades. Like the witches at the stake, Napster must be destroyed for that reason.
Computers don't necessarily make information free. They're good at processing information, duplicating it, checking it, debiting accounts... Thus, they allow control at a fine level that would have been impossible in the past.
The internet gives everyone a press. As a famous quote goes ``Freedom of the press is only for those who have one.'' The internet must be controlled to protect those who already have presses.
"The VCR is to the American film producer and the American public as the Boston Strangler (a serial killer of the time) is to the woman alone," said Jack Valenti, president of the MPAA, the group which sued Sony over the Betamax.
How can you negotiate with people like this? How can you even have sympathy for them?
Napster isn't being run by idealistic young teenagers or 20-year-olds. It's being run by a well pedigreed team of middle managers. They're not going to sacrifice themselves or Napster just to make a statement. They're going to settle one way or another. (See my other post for why I claim that.)
Although, I will agree that the RIAA was a little stupid. Napster, because of the aforementioned team of middle-managers was trying to figure out how to safetly join the RIAA fold. How to satisfy the industry while still being able to do their own thing. Now they've lost one way or another. They'll either castrate their service, or go dead. Either way they'll lose their mindshare/marketshare.
And get replaced by services that ARE being run by idealistic young students, and who won't try to be concilatory.
If Napster is disabled for a week, they might recover. If they're disabled for a month, I don't think it matters past that point, they'll have lost most of their marketshare and mindshare and I doubt they'll ever recover.
That's what I call some DAMN signifigant harm to Napster.. I thought that an injuction was only granted to prevent signifigant harm to one party when it would not signifigantly harm the other party.. Oh well, I guess the law runs different if you're the record industry.. Unless it's settled in a month, Napster is the walking dead.
I give it $100 if they don't settle within a week. They'll have to implement something where any song with a particular word in the title is rejected. And the RIAA gets to choose which words. And if you have a song that has those words in the title well, sorry.:/
If this is true, then the MPAA is acting just like the RIAA with their phase1 and phase2 players. Phase one is to get the public to accept it. The phase1 players play unencrypted, unsigned media. But then they flip a switch and you can only play encrypted, signed media. And from that point forward, you HAVE TO GO THROUGH them to get anything published.
And, if it's true, then the switch has been flipped in the case of DVD players. You can no longer play unencrypted discs. You can no longer avoid paying a license fee to the DVD/CA to make a disc.
(I did some research and cannot confirm that that is true. But I can confirm that the phase1/phase2 switch DOES disable changing your region code. In Phase 1, you can switch regions, in Phase 2, the DVD drive itself holds the region code and it cannot be changed or reset.)
Quick question: Anyone know how to tell if you have a phase1/phase2 player?
In my quest to see encryption used everywhere.. Don't forget that ICQ logs have been used in court before, and will be used in court in the future.
So, I'm not against encryption in them. (Though Kerberos is a funky choice for this, I'm trying to imagine a KDC for tens of millions of users, and failing.:)
What might be considered best by you for your children may not be the best for your children.
If you knew that you'd have an intelligent kid, but they would be motivated toward art instead of engineering? Would you abort them?
You might consider giving your kids a predilection for doing good at engineering good, but what about the rest of society? Will they look toward fashion models? Football players? Actors? How many soccer-mom's are there would would pay thousands for their kids to have the perfect body for playing soccer? Or acting? Or playing football?
Finally, look at the realm of 'disease' the lines for what is abnormal are VERY malleable. After Columbine, wearing black trenchcoats and liking certain music is considered abnormal. Have you ever heard of human growth hormone? It was origionally given to people who had a genetic flaw and would not grow past 4 feet without it. But being taller is a positive trait. Parents with genetically normal, but short, kids were fighting and getting HGH for their kids.
Should you treat being normal, but short, as if it were a disease? Is it ethical to allow parents to experiment on their children?
We have limitations of what parents can do to their children for a reason. To protect them until they can make their own choices. This does break down in a few cases (circumcision), but overall, it's true. If we give people free (genetic) reign to do as they choose, that would be tantemount to sanctioning child abuse.
Furthermore, what might be best for an individual, say a peacock with a longer tail, may not be the best for a group when everyone evolves into long tails where they get eaten and die.
IE: the pipes to the united states tend to have the highest bandwidth. The network you refer to might have 60x the bitrate, but does Canada have as dense a mesh of fiber as the US?
It doesn't matter if your fiber can handle 10x the number of bits, if I have 1000x amount of fiber.
This is why many of the routes go through the US, the individual global networks tend to cross-connect with each other within the US. Within the US, it's at least an approximately tight mesh. Outside of the US, most of the lines look like parallel spider-webs that only interconnect within the US.
As I pointed out in another post.. Set up a FTP site where you exchange porn. Or use email. You now have an excuse to exchange large numbers of images back and forth. And a realistic reason too! And snoops might save copies just for 'safekeeping'. Besides, if they think that you're 'morally unsound' act of just moving porn back and forth, they're more likely to miss the fact that you're smuggling contraband data out.
Since the images tend to be low quality, you can introduce noise artificially and then stego the data on top. You have to choose a stego technique whereby the information is hidden such that it is impossible to determine if anything is stego'ed. MAKE SURE YOU FIND A GOOD TECHNIQUE! Your friend's life may literally depend on it.
If you want to be clever, make a prepackaged program 'logo_pron' that has an undocumented feature where it can accept a secret message and stego's it into the image while innocously introducing a logo. Make it look like some crappy shareware program. That way, if they test it, it behaves like it's supposed to. Or make it look like a program that puts 'personalized messages' onto images.
As someone else pointed out. If they suspect you and are monitoring you or you're endstation, and they catch you doing something, you're hosed. Never forget this critical fact.
Your best bet is to hide it in something obvious and apparently innocous. Crappy shareware. Ratio porn site on a.edu system. Porn trading.
Which reminds me of something..
Where do you find enough porn to stego an entire censored newspaper?:)
Interesting argument, but at another hand, what about full-disclosure security lists where someone illustrates HOW to crack something by writing an exploit?
Is this fundamentally wrong?
Not to mention, the difference between a bomb and someone playing Metallica MP3's without paying. One destroy's property, and can cause injury or death. The other is a $10 economic damage.
http://www.loc.gov/copyright/docs/circ1a.html
United States Copyright Office
A Brief History and Overview
.....
May 31, 1790
First copyright law enacted under the new U.S. Constitution. Term of 14 years with privilege of renewal for term of 14 years. Books, maps, and
charts protected. Copyright registration made in the U.S. District Court where the author or proprietor resided.
--
Don't forget, for those who think about all the plusses of a 70 year copyright law.. I hope you're not doing anything related to Christmas.. Rudolph the reindeer is still under copyright for another 50 years or so. And your book better not contain the lyrics of Happy Birthday, as that's copyrighted too.
It's a doubleedged sword, you have to no innate right to use other's artistic works, whether they be Rudolph, Happy Birthday, Darth Vader, Mickey Mouse.
Of course, if copyright had always been 70 years, Rudolph never would have been created, as Santa and his sleight wouldn't have left copyrigh until the 70's. (Thomas Nast, the creator of Santa, died a in the 1900's.)
Instant passwords: tr -d -c 'a-zA-Z0-9./' /dev/urandom | dd bs=1 count=8
I don't know the whole history of LISP from way back when, maybe it was interpreted for the first few versions from 20 years ago.
C practically started out as being a simple frontend, one-to-one translatable to assembly language. And now we have optimizing compilers that do a hell of a lot more.
This all is about 20 years before my time, so I don't have all the details.
That C function is (believe it or not!) The demo code written by the creator of Splay trees. (Daniel Sleator, CMU) for the splay operation. BTW, it can be decoded in either language, with a 8-line block comment at the head, and about 8 lines explaining the variables and the invariants.
As for syntax, I think I know where you're problem is.. With C, you create lots of variables, but each line of code is essentially atomic. With LISP, it's (syntatically) annoying to bind a variable, so you use function calls. This means that the 'line of code' in C is short, but it's long in LISP. (I experience a similar problem with GUI programming in TCL. It's easy to create&destroy a widget set. To create and UPDATE it has no flashing, but requries a lot more work.)
For examile, I can think of a few things that might help. A coding style change, with a macro&codewalker to turn:
(assn
(a = (- (circbuffer-room circbuffer) 1))
(b = (- (circbuffer-alloc-size circbuffer) wi))
(c = (min a b))
c)
into:
(min (- (circbuffer-room circbuffer) 1)
(- (circbuffer-alloc-size circbuffer) wi))
You're right about the first to be easier to understand, but calling it an artifact caused the syntax of LISP is wrong. I'm using a lot of LISP syntax there. I think it's the deeper reason, it's easier to keep track of what a single variable is than the gob of code. Fortunatly, you're not really tied to the existing syntax that LISP gives you, and the macro 'assn' is about 6 lines of code (If you want an implementation, I'll write the 6 lines.) . Infix is also a lot more familiar for representing expressions, but a long line of infix code is just as hard to understand:
(Taken from a quick patch)
+#define F_APPLY_FG_ATTRIBUTE(orig,add) \
+ (((add) & F_FGCOLOR) ? \
+ (((orig) & ~F_FGCOLORMASK ) | ((add) & F_FGCOLORMASK )) \
+ : (orig))
+#define F_APPLY_BG_ATTRIBUTE(orig,add) \
+ (((add) & F_BGCOLOR) ? \
+ (((orig) & ~F_BGCOLORMASK ) | ((add) & F_BGCOLORMASK )) \
+ : (orig))
+
+
+#define F_APPLY_ATTRIBUTE(orig,add) (\
+ F_APPLY_FG_ATTRIBUTE ( F_APPLY_BG_ATTRIBUTE ( (orig) , (add) ) , (add) ) \
+ | ( (add) & ~ (F_BGCOLORMASK | F_FGCOLORMASK) ) )
Here, the ability to break this up into multiple lines of code would make it a LOT easier to understand, the same way it helped above. (What this code is trying to do is overwrite attributes on text, which can be both flags or colors. For flags, it or's them, for colors, it overwrites. Given the #define names and some study, you could infer that. You could never just read it out.)
--
Now, before I start too much on compilers, I only know one compiler fairly well, CMUCL, as ACL costs about 30x what I can afford.
The CMUCL compiler was a very sophisticated compiler for it's day, and (appears) to still be the most sophisticated even today. It uses type declarations. It treats them as assertations to be checked, but also does type inference on them. If you give declarations on your defstructs and functions, it'll usually do enough type inference to determine everything else. Under these conditions, it spits out essentially the same optimized code that C/C++ compilers would. In a benchmark with EGCS, it takes about 30% longer for array multiplication. Not bad for a compiler that's been orphaned for 6-7 years and in the public domain.
CLOS method call for PCL under CMUCL is fairly expensive, about 10x a function/closure call. For highly recursive functions or inner loops, that sucks, otherwise, only profiling can tell whether it matters. (I benchmark it at about 500ns). Comparing C++ and CLOS, CLOS offers dispatch on multiple arguments, something which C++ cannot. With the MOP, it offers infinitely more than C++ could. It's not an apples to apples comparison.
Depending on the nature of your codebase, CMUCL might speed it up some or a lot, or slow it down, or be a wrong choice. Also, what you describe has happened in the past, the Garnet project at CMU started out in Lisp, when they ported it to C++, they found their first C++ version about 3x faster than their highly-optimized LISP. (This might be an artifact of bad compilers or coders, or the fact that they didn't use CLOS. As Gabriel wrote, It can be too easy to write slow code in LISP.)
The paper I was referring to had a dozen people write the same program in Lisp and C/C++. They then compared the programs. ALthough the fastest overall program was done in C++, the average/median C++ program took about 100 seconds. The average/median lisp program took about 50. If you compare the best of the two, LISP lost.. If you compare a random pair, LISP wins by 2x. Ah, glorious statistics, the art of lying with numbers.
Let's take this to email if you have any reply.
First: LISP is not an interpreted language. It has modern, high-performance optimizing compilers that are comparable in performance to C/C++, and have been for the last decade. In fact, a paper from a year ago showed that it was twice as fast as C++, by either measure you want to used: execution speed or productivity. (reference available upon request.)
A simple syntax lets one programmably alter program code. These types of operations are potent. (See Aspect oriented programming, where they're reinventing macro's for C++/Java. I agree that it'll be a big thing in 10-20 years.) Macro's let one transparently and trivially add in automatic serialization onto objects. Or handle remote-procedure call, orthogonal persistence, network-transparency. Literally, these can be added to a class with one line of code.
Like any other powerful feature, it can be overused or abused and make code swiss cheese. But, properly used (CLOS/Series/defpackage), it lets one add signifigant semantic abilities to a language.
You cannot look at a C program and just read it. For example: What does this code do?
typedef struct tree_node Tree;
struct tree_node {
Tree * left, * right;
int item;
};
Tree * foobar (int i, Tree * t) {
Tree N, *l, *r, *y;
if (t == NULL) return t;
N.left = N.right = NULL;
l = r = &N;
for (;;) {
if (i < t->item) {
if (t->left != NULL && i < t->left->item) {
y = t->left; t->left = y->right; y->right = t; t = y;
}
if (t->left == NULL) break;
r->left = t; r = t; t = t->left;
} else if (i > t->item) {
if (t->right != NULL && i > t->right->item) {
y = t->right; t->right = y->left; y->left = t; t = y;
}
if (t->right == NULL) break;
l->right = t; l = t; t = t->right;
} else break;
}
l->right=t->left; r->left=t->right; t->left=N.right; t->right=N.left;
return t;
}
You claim that LISP is incomprehensible and cannot be read without looking at the details or macros. C/C++, without macro's, appears to have the same shortcoming.
Because you have to trace through all of the classes and functions and definitions. Large, or even small gobs of code are hard to understand in any language. LISP, Java, or C++, although it can be helped if the people use reasonable variable names and comment their code with invarients.
Please do tell me what this code does and how it works. Yes this was some code I was attempting to port to LISP. I gave up trying to understand it and rolled my own implementation. I won't post what it does. You can email your guess if you want.
It seem strange looking at these types of languages. The more langauges evolve, the more they get the sementics of LISP.
LISP has an interactive read eval print loop, so you can do interactive development without signifigant recompilation.
Java inner classes are just a more verbose way of getting closures.
LISP gives you dynamic redefinition of classes and a lot of introspection of classes, objects, etc. It has safe execution in that it's crash-proof. All objects are subtypes of 't', but may be declared more explicitly. It also has seperate compilation.
It does have a few things that other languages don't. It's 30 years old, although using post-1989 versions is more pleasant. CMUCL has an interpreter, bytecode compiler, and machine code compiler. It's had all the functionality of 'aspect oriented programming' for about 20 years. You can use LISP to define transformations on LISP programs. (The 'SERIES' package is an obvious example, but the OO subsystem is another.)
The base OO system (CLOS) is a wet-dream, and with MOP, you can add network-transparency, orthogonal persistence to objects, or even reimplement your own OO system.
Admittedly, it doesn't support compilation into hard-to-reverse-engineer bytecode and later compilation of that bytecode. Products would have to be distributed in an executable format, or as source.
lynx -dump some_URL | tr -c 'a-zA-Z' '\n' | grep -i innovat | wc -l
Here, I use 'tr' to break up words into seperate lines.
As someone already claimed I was wrong with 14/28 years...
http://www.loc.gov/copyright/docs/circ1a.html
Circular 1a
United States Copyright Office
A Brief History and Overview
.....
May 31, 1790
First copyright law enacted under the new U.S. Constitution. Term of 14 years with privilege of renewal for term of 14 years. Books, maps, and charts protected. Copyright registration made in the U.S. District Court where the author or proprietor resided.
If the Libray of Congress isn't a definitive source, I don't know what is.
Honestly, I wouldn't mind copyright laws so much if they were reasonable... I'm advocating either removing copyright entirely..... Or,
How about reducing copyright to the origional term of 14-28 years? Keep it at about the same (pre-DMCA) strength, but make it shorter.. What I dislike about the current copyright is the terms. They make me and everyone else feel helpless in front of our culture, when we want to get into things that are modern.
Why *can't* we create a montage of planet of the apes and the origional startrek? Why can't I create a montage of I Love Lucy and Star Trek, where the Enterprise fights it out with 60's american culture? See my signature.
Our culture is held hostage to 75 year copyrights. The only ones who might get a chance to explore my culture it will be my great grandkids, and they won't care. Just as I don't care about the only culture I can freely use. It's too old, too alien. It *predates* the great depression! And they keep on extending copyrights retroactively!
Personally, I think that it might be too late to just reduce copyrights a reasonable term. I'd prefer that instead, as copyright *is* a relatively known quantity. It's a really bad kludge, but the other kludge's I seem much worse.
Copyright, in england, was origionally used by the crown for censorship.. The 'copyright' office would own title to all books, and distribute a 'copyright' to a bookprinter, so they could publish it. Publishing a book without having a copy right was a serious crime..
Then copyrights were used by the printers guild to lock out competetors. They would call ones who printed a manuscript, 'pirates'.
It was almost a century later that the right to control a work got switched to the writer/artist.
Then I'm all for it.. Visionaries like Stallman have been questioning copyright for the last 20 years. Highly internet literate people have also been questioning the use of copyright.
But we are a minority, too small to even have the potential to be dangersous.
But napster is letting tens of millions of people get, create, distribute, and trade artistic works. Take that away, and they'll question why, and those tens of millions might be able to rearrange the whole edifice of intellectual property.
As such, assuming the music was not registered for renewal, anything before 1985 would be public domain, and anything before 1995 would be within 10 years of being in the public domain..
If we assume that the companies registered everything for an extra 14 years. (Not a given, after all, 90% of music loses money, and why throw more money after bad), then anything before 1972 would be in the public domain. And anything before 1982 would be within 10 years of being in the public domain...
Mmmmm. Starwars in the public domain, joining Santa Clause... Makes my mouth water.
Every megabyte of unused memory in your system means that you're paying for memory you never use.
That's why, historically, unix or linux runs with so little *free* memory, because it tries to cache as much of the drive as possible. Read caches can be thrown away painlessly; just zero-fill the pages and pass them to the program. Dirty pages need to be written, but 'updated' flushes them to disk after 30 seconds.
True, that disk cache might not have much of a hit rate, but if the memory isn't needed for anything else, and it might save adozen disk hit's, what's the point in not using it?
So, yeah, The system I'm on now has 256mb, with: 2mb for the kernel, 4mb free, 145mb buffer, 34mb cache, 7mb on swap, leaving about 70mb being spent on programs and other misc.. I'm not quite sure where it's going, and I suspect that a lot of it is flushable. (I'm not on it locally, so there's no X/enlightenment, just squid, netscape, xemacs, apache, and some xterms.)
The public isn't completley stupid. DIVX died after all, because everyone realized what had happened..
And also, don't forget about the phase-1/phase-2 players.. The idea is that every player has an embedded shutoff switch, after which it WONT allow MP3's to play anymore. Then, come in a few years, every CD released has that trigger embedded in it.
Copyright, in england, started as a way for censorship. All books and literature had to be owned by the crown where it would license out the ability to publish to the printer cartel. One had to have a license to publish a particular literature, or one would get the axe.
.sig?
Later it was used by the printer cartel to preserve their monopoly against 'pirates', or printers who were not a member of the cartel but printed stuff anyways.
In the US constitution, copyright was given for a limited term to encourage the growth of useful arts and scences. Tell me, how does THAT requirement square with my
The record companies will be happy to sell you songs individually, or sell them over the internet, but those songs must be encrypted, digitially signed, and permanently linked to a particular player, (a closed source, obfuscated player program or hardware.) And you gotta give them you player's serial number.
Oh, and they'll also be licensed and not sold, and, because they're now selling songs, they'll claim that there's no reason for any player to play unencrypted music, so all THOSE players will be made illegal. Of course, like software, they won't accept returns.
And if the player they've licensed for goes sour, you'll be stuck with megabytes of useless crap. They'll never let you convert your music to a second player, as you might be lying about your origional one breaking and you might be a pirate. So you'll have to buy it all over again.
Need I continue?
Oh, and once they've made everything else illegal, they'll put on limits. You can only play the music so many times before it disables, or so many times a month, or a limited timeframe to play it in.
And of course, once people forget about free music and think 'public domain' is a dirty word, the price will go up. $1? $5? $20? a track. The monopolies will screw you for as much as they [safetly] can. And then they'll work to make copyrights perpetual.
This is what the record companies want out of the digital future. This is what any 'copyright control' company wants. Music, lyrics, video, photography, software. This is what they all want.
Napster and any other way of letting the MASSES trade media that's unencrypted and not digitally linked (Masses != computer nerds who know FTP or IRC.) risks this bright future for record companies. It gives the heretical idea that people should question copyright. Something which they haven't seriously done in decades. Like the witches at the stake, Napster must be destroyed for that reason.
Computers don't necessarily make information free. They're good at processing information, duplicating it, checking it, debiting accounts... Thus, they allow control at a fine level that would have been impossible in the past. The media companies want this control, and are holding our public heritage as a hostage until they get it. This is why you they don't release content on the internet.
To those who think this isn't happening.. They're working on a specification for encrypted-USB speakers. Intel demo'ed a graphics chipset that encrypts every pixel to your monitor. DIVX came and (thankfully) died.
The internet gives everyone a press. As a famous quote goes ``Freedom of the press is only for those who have one.'' The internet must be controlled to protect those who already have presses. The media companies own the presses, and they claim to own the content they publish. Generally, they don't create that content, but they're damn good at grabbing control of it. They are powerful, and used to scheming for what they want.
They'd be happy to sell you songs individually, but those songs will be encrypted, digitially signed, and permanently linked to a particular player, (a closed source, obfuscated player program or hardware.) And you gotta give them you player's serial number.
Oh, and they'll also be licensed and not sold, and, because they're now selling songs, they'll claim that there's no reason for any player to play unencrypted music, so all THOSE players will be made illegal. Of course, like software, they won't accept returns.
And if the player they've licensed for goes sour, you'll be stuck with megabytes of useless crap. They'll never let you convert your music to a second player, as you might be lying about your origional one breaking and you might be a pirate. So you'll have to buy it all over again.
Need I continue?
Oh, and once they've made everything else illegal, they'll put on limits. You can only play the music so many times before it disables, or so many times a month, or a limited timeframe to play it in.
And of course, once people forget about free music and think 'public domain' is a dirty word, the price will go up. $5? $20? a track. The monopolies will screw you for as much as they [safetly] can. And then they'll work to make copyrights perpetual.
This is what the record companies want out of the digital future. This is what any 'copyright control' company wants. Music, lyrics, video, photography, software. This is what they all want.
Napster and any other way of letting the MASSES trade media that's unencrypted and not digitally linked (Masses != computer nerds who know FTP or IRC.) risks that bright future for record companies. It gives the heretical idea that people should question copyright. Something which they haven't seriously done in decades. Like the witches at the stake, Napster must be destroyed for that reason.
Computers don't necessarily make information free. They're good at processing information, duplicating it, checking it, debiting accounts... Thus, they allow control at a fine level that would have been impossible in the past.
The internet gives everyone a press. As a famous quote goes ``Freedom of the press is only for those who have one.'' The internet must be controlled to protect those who already have presses.
How can you negotiate with people like this? How can you even have sympathy for them?
--
Napster isn't being run by idealistic young teenagers or 20-year-olds. It's being run by a well pedigreed team of middle managers. They're not going to sacrifice themselves or Napster just to make a statement. They're going to settle one way or another. (See my other post for why I claim that.)
Although, I will agree that the RIAA was a little stupid. Napster, because of the aforementioned team of middle-managers was trying to figure out how to safetly join the RIAA fold. How to satisfy the industry while still being able to do their own thing. Now they've lost one way or another. They'll either castrate their service, or go dead. Either way they'll lose their mindshare/marketshare.
And get replaced by services that ARE being run by idealistic young students, and who won't try to be concilatory.
If Napster is disabled for a week, they might recover. If they're disabled for a month, I don't think it matters past that point, they'll have lost most of their marketshare and mindshare and I doubt they'll ever recover.
:/
That's what I call some DAMN signifigant harm to Napster.. I thought that an injuction was only granted to prevent signifigant harm to one party when it would not signifigantly harm the other party.. Oh well, I guess the law runs different if you're the record industry.. Unless it's settled in a month, Napster is the walking dead.
I give it $100 if they don't settle within a week. They'll have to implement something where any song with a particular word in the title is rejected. And the RIAA gets to choose which words. And if you have a song that has those words in the title well, sorry.
As the parent points out (mod him up).
If this is true, then the MPAA is acting just like the RIAA with their phase1 and phase2 players. Phase one is to get the public to accept it. The phase1 players play unencrypted, unsigned media. But then they flip a switch and you can only play encrypted, signed media. And from that point forward, you HAVE TO GO THROUGH them to get anything published.
And, if it's true, then the switch has been flipped in the case of DVD players. You can no longer play unencrypted discs. You can no longer avoid paying a license fee to the DVD/CA to make a disc.
(I did some research and cannot confirm that that is true. But I can confirm that the phase1/phase2 switch DOES disable changing your region code. In Phase 1, you can switch regions, in Phase 2, the DVD drive itself holds the region code and it cannot be changed or reset.)
Quick question: Anyone know how to tell if you have a phase1/phase2 player?
In my quest to see encryption used everywhere.. Don't forget that ICQ logs have been used in court before, and will be used in court in the future.
:)
So, I'm not against encryption in them. (Though Kerberos is a funky choice for this, I'm trying to imagine a KDC for tens of millions of users, and failing.
--
What might be considered best by you for your children may not be the best for your children.
If you knew that you'd have an intelligent kid, but they would be motivated toward art instead of engineering? Would you abort them?
You might consider giving your kids a predilection for doing good at engineering good, but what about the rest of society? Will they look toward fashion models? Football players? Actors? How many soccer-mom's are there would would pay thousands for their kids to have the perfect body for playing soccer? Or acting? Or playing football?
Finally, look at the realm of 'disease' the lines for what is abnormal are VERY malleable. After Columbine, wearing black trenchcoats and liking certain music is considered abnormal. Have you ever heard of human growth hormone? It was origionally given to people who had a genetic flaw and would not grow past 4 feet without it. But being taller is a positive trait. Parents with genetically normal, but short, kids were fighting and getting HGH for their kids.
Should you treat being normal, but short, as if it were a disease? Is it ethical to allow parents to experiment on their children?
We have limitations of what parents can do to their children for a reason. To protect them until they can make their own choices. This does break down in a few cases (circumcision), but overall, it's true. If we give people free (genetic) reign to do as they choose, that would be tantemount to sanctioning child abuse.
Furthermore, what might be best for an individual, say a peacock with a longer tail, may not be the best for a group when everyone evolves into long tails where they get eaten and die.
--
IE: the pipes to the united states tend to have the highest bandwidth. The network you refer to might have 60x the bitrate, but does Canada have as dense a mesh of fiber as the US?
It doesn't matter if your fiber can handle 10x the number of bits, if I have 1000x amount of fiber.
This is why many of the routes go through the US, the individual global networks tend to cross-connect with each other within the US. Within the US, it's at least an approximately tight mesh. Outside of the US, most of the lines look like parallel spider-webs that only interconnect within the US.
As I pointed out in another post.. Set up a FTP site where you exchange porn. Or use email. You now have an excuse to exchange large numbers of images back and forth. And a realistic reason too! And snoops might save copies just for 'safekeeping'. Besides, if they think that you're 'morally unsound' act of just moving porn back and forth, they're more likely to miss the fact that you're smuggling contraband data out.
.edu system. Porn trading.
:)
Since the images tend to be low quality, you can introduce noise artificially and then stego the data on top. You have to choose a stego technique whereby the information is hidden such that it is impossible to determine if anything is stego'ed. MAKE SURE YOU FIND A GOOD TECHNIQUE! Your friend's life may literally depend on it.
If you want to be clever, make a prepackaged program 'logo_pron' that has an undocumented feature where it can accept a secret message and stego's it into the image while innocously introducing a logo. Make it look like some crappy shareware program. That way, if they test it, it behaves like it's supposed to. Or make it look like a program that puts 'personalized messages' onto images.
As someone else pointed out. If they suspect you and are monitoring you or you're endstation, and they catch you doing something, you're hosed. Never forget this critical fact.
Your best bet is to hide it in something obvious and apparently innocous. Crappy shareware. Ratio porn site on a
Which reminds me of something..
Where do you find enough porn to stego an entire censored newspaper?