Now I see a lot of people here trying to bash MS because of this article...
Heres a clue for all the readers out there: Slashdot is not a site for bashing Microsoft. "News for Nerds" and "Stuff that Matters" does NOT always translate into "Microsoft is Evil" "Open source Rocks".
This is a very nice, informative article that points out >WHERE Microsoft got the technology for SFU. I for one am glad to know that technology from OpenBSD has been adopted by MS and incorporated into their OS.
Now what would be better would be to know if Interex and/or MS has given anything BACK to the *BSD community as a result of this...
I see nothing wrong with what MS has done - Part of the reason I use BSD-Licened software is because it allows just this sort of commercial adoption of the code.
My concern WRT "Plan B" is that you now have a second point of entry into the existing database which must be kept up-to-date with internal structure changes and the like (we no longer store "fullname" on the person table, you now get it by concatenating "firstname" and "lastname", etc.).
This basically adds to the maintainer's job, whereas "Plan A" (modifying the existing UI to update LDAP) consolidates all the DB Updating bits into one program (and presumably the LDAP server is configured only to allow that program to make updates, by host or binding-user restrictions).
As far as initial coding effort, 200 lines of code could easily implement the LDAP command parsing (in perl or C, and assuming a limited subset of the available commands), however you must take in to account the code to translate from internal storage schema (presumably some RDBMS, or (*gag*) flatfiles) to output that an LDAP client can parse without vomiting on itself. This is where I see the expense and work coming in.
I also have a visceral dislike for reinventing the wheel, since such reimplementations often result in rather defective wheels - How long has it taken OpenLDAP to get to the state it is in now? And anyone who uses it knows it still has bugs and issues...
Well, some applications of it (LDAP for user management) anyway, but that's a subject for a different rant.
To address your question -- you are in a situation similar to me: You need to implement LDAP access to some data you already have stored somewhere else (presumably in a format "better" than an LDAP directory).
Your best bet would be to implement an OpenLDAP or iPlanet/Netscape/Sun directory server, seed it with the data you already have(a conversion script could probably be written easily), and "educate" the software you use to maintain your current database so that it updates LDAP as well as the current system (using the Net::LDAP module for Perl, or something similarly generic that would work with any LDAP server).
However, since this is not what you want (you don't have the "time or hardware resources" to maintain an LDAP server), you are unfortunately stuck with plan B: Write a listener on port 389 that understands LDAP queries, goes into your current database, grabs the data and spits it out in an LDAP-Like way.
Were I you, I would re-evaluate the cost and difficulty of running an LDAP server and maintaining the synchronization (or migrating the data to LDAP entirely, if it lends itself well to the directory/tree structure of LDAP). Plan B generally pretty much SUCKS, and will inevitably require more time/effort/money to implement and maintain.
Nonetheless, the Net::LDAP library for Perl would be a good place to start with this task. You could also look at the OpenLDAP software as a reference implementation (the code is a fairly easy read (to me anyway) and should be helpful in designing your serverlike hybrid.
You may also wish to look into commercial "metadirectory" products which take one central authoritative datasource and multiplex it out in a variety of formats. When I last looked at these they all sucked, but the "best of breed" back then was something called "DC Directory Server". If you could find one that suits your needs it may be the way to go.
I know this wasn't very helpful, the truth is (as I have been discovering myself) anything LDAP is still kinda raw, and anything complex like what you are trying to do is really not well-explored (or at least not well-documented). Maybe some other slashdotters can be more insightful than me though:-D
Alright, I REALLY hate the fact that I'm starting to sound like those 80 year olds sitting on the porch of the retirement home kvetching about how it used to be in "The Good Old Days", but...
I remember a better time - A long time ago - when the SPAM content of my inbox was GUARANTEED to be less than the archive of legit mail I have piled up. - Now, in the last 5 days I have 507 bits of spam, and 307 "archived" real mails sitting in my inbox awaiting (eventual) sorting into categories.
But, far more on topic (or off depending on your point of view), I remember back when search engines were useful because their content was guaranteed to be SOMEWHAT relevant to what you searched for. Yes, I know they were never perfect. You could search for Reddywhip, innocently hoping to get a site about whipped cream and inadvertently wind up at reddywhip.org (not your intended destination I'm sure), but now with the clutter from blogs that don't have the common sense to have a NOINDEX in their META tags or an appropriate robots.txt file, the damn things are becoming saturated with CRAP! Add to this the result of "googlebombing" (admittedly a much smaller effect, but still something that gets noticed - obviously or it wouldnt be done) and things are really starting to get out of control.
Honestly, "nerds" should know better than to abuse search engines like this, and slashdot editors should know better than to post stories like this one - where the only "nerdly" bit is the link to the googlebombing article - itself already a story on slashdot (one with a great deal of merit in and of itself) - which will only serve to encourage more googlebombing and further degrade the quality of search results.
Moderators: Go ahead, I know it's offtopic, but this kind of stuff SERIOUSLY pisses me off. Nothing personal against Clif & his article selection, I happen to like some of his articles, but this one just serves to inflame an already bad situation.
No, seriously... If your old thermal receipts have faded, they can sometimes be fixed by ironing them (no steam, just a hot iron or an incandescent lightbulb).
This only works if the thermal lettering has faded but the paper is still mostly white - The heat-sensitive layer where the original letters were is desensitized and the faded letters will not re-blacken, but the rest of the receipt will, giving you a negative copy of the receipt.
Note that this doesn't work for all thermal printer receipts, it depends on the type of paper used in the machines (the catalina coupons at most supermarkets (they print on thermal paper with red strips on the top/bottom) work, but the register tape at the supermarket I used to work at wouldn't - not sure why.
From my brief stint in retail (grocery store) I can say that even when the terminals allow manual input many stores still use the imprinter - mostly to protect the store (since you never swiped the card you need the imprint to prove the person actually HAD the card with them -- otherwise the store is open to serious liability ("But I never went into that store and bought that plasma TV!").
Although the terminal still authorizes the transaction and verifies the card is not lost/stolen/overlimit/whatever the imprinter receipt is the store's record that the actual card was there.
> The stuff schools are teaching in quickly changing
> fields like IT is already dated anyhow.
I have to disagree MOST STRONGLY with this statement. While certain material (how to program in C/C++/Java/Pascal/Cobol/Algol/Ada/whatever) is or may one day be dated and obsolete, the FUNDAMENTAL CONCEPTS (good, efficent algorithm design, the basics of discrete mathematics and its applications to programming/algorithm design, advanced problem-solving skills) will NEVER be dated.
To consider a college/university education only as "I learned C" places it on the same level as job training schools, where one may learn how to do something, but not WHY to do it that way ("It is better to use a mathematical equation to find the sum of the first N positive integers rather than a loop." but with no explanation of the Gauss formula, how/why it works and why it is better (for those of you who can't answer the last question - think: 1 mathematical formula, lets be pessimistic and say 20 operations have to be performed to evaluate it for integers 1-100. Summing integers in a loop we have 100 additions, plus at least 101 comparisons for the loop check, 201 operations, or already ~10x longer for N=100. Now extrapolate to N=[something really obscenely huge])).
That having been said, I don't know what additional value a Ph.D would bring in the Real World - I believe that experience counts for more than education after a certain point (I myself have a fairly nice position at a consulting/software design company. I am still an undergraduate student, I got this job my senior year in High School - WHY? Because I came in knowing more about what that company valued (DNS, NIS, UNIX administration, good, solid programming skills) than most undergraduate or graduate students they interviewed. These are not things you will find in a university course - They are things you learn by experience.)
Bottom line IMHO - A Ph.D will be a HUGE asset IF you intend to teach at the university level. A Masters will likely be a requirement at that level to become full-time faculty, and a Bachelors to be an adjunct (policies vary at different schools).
In the workforce, A Bachelors is a HUGE boost over just HS education, a Masters lends you a little more credence, and a Ph.D - Probably something you should work on at night school while you have a steady job to fund it (this is in fact how I intend to get my masters degree - The job market is just heating up again and I don't want to spend more time in school when I could be making some decent coin and getting started on my life.)
Funny, my experience has been just the opposite - I went camping with some friends and we all took our phones along for emergencies.
Well, lo and behold none of them (AT&T, Verizon and 2 Nextels) worked at the camp site (in a valley at Macedonia Brook State Park (CT)), but when we climbed up to a fair height during our hike both nextel phones had full service, the Verizon was on analog-roaming and my AT&T phone was pleading No Service.
There are some places my Nextel (switched this year)doesn't get service (my room for one, with gobs of unshielded open-cased computer hardware - if you put it down in the wrong spot you're screwed), but there are others (assorted basements, data centers, a few subway stations) where I never had service with AT&T.
Granted it is an expensive leash, but it works for me.
Typically anything I write has "~mikeg" or "mikeg: [some date/time stamp] - watever I changed" or my email address (mikeg@whatever-company.com) stuck in a comment somewhere.
Often something of that nature will appear if you do a "strings" on the executable if the language I was working in is a compiled one, typically my email address works its way into the code somehow (help screens, version info, etc.)
For systems hardware, a large cursive MG in green or black marker on an inside surface, usually under the motherboard or on the bottom of drive bays, indicates that I built the system. Smaller MGs (in blue or black), usually with dates, indicate service done (these are sometimes on a frame bar or even a removable panel). When a machine finally reaches the end of its life, I initial it with red marker and leave it open until it is stripped and disposed of. I understand the signing practice used to be quite common with mainframe service techs but has become less so with PCs and cheap servers - I for one would love to see it revived as it makes it easy to know who was the last person to work on machine X.
For an OS build, my footprints are unmistakeable - anything outside of the OS goes in/usr/local/*, excepting "biggies" like a database server or web server (web servers go in/home/web or/home/www, database servers usually reside in/usr/local/[db_software_name]). A/usr/local/src directory with the source code for EVERYTHING I've installed, as well as a "bigmake" script which rebuilds it all the way I had it stays on the machine for future generations. This script is used when upgrading software, or when rebuilding from scratch, and usually has a whole load of variables in it to turn off/on various parts of the build (for example, on my FreeBSD systems the first stage of this script is to cvsup and rebuild the OS/kernel - probably not something you want to do if you're just upgrading apache).
So... What they're saying is basically if I "encrypt" everything I store with rot13 then when someone breaks in and steals [insert favorite sensitive bit of data here] from my database I dont have to say a thing to anyone - after all, it was encrypted....
Academic honesty and integrity lie at the heart of any educational enterprise. Students are expected to do their own work and neither to give nor to receive assistance during quizzes, examinations, or other class exercises.
---
My university's academic honesty policy (Here, page through to p. 54 (PDF page 47)) is much longer, but boils down to the same thing - Dont cheat, Dont help anyone else cheat, if you do we're gonna beat you to death with a textbook.
Legally (copyright law - See This site) I am not sure if code for school counts as a "work for hire" in which case the copyright is held by the school, or as an original work by an author (an "answer for a test" is considered a work for hire). I do not know how the interpretation would hold up in a legal challenge, but if you want to cover yourself you could place a notice in all of your programs claiming copyright (again, the "works for hire" clause may invalidate this. Check with a real lawyer.).
As far as academic honesty policies go, I am SURE that I am in violation of the Hofstra policy (which states that students "must not only avoid cheating, but the apppearance of cheating" - something I've been WAITING for the chance to challenge since I find it obscenely offensive to allow a professor to presume a student is cheating if their paper is too close to the edge of their desk). Certainly by making answers to lab exercises available I violate this policy.
Udel's policy seems more realistic - you are not to give or receive assistance on [any assignment]. I don't believe that you violate the spirit of this statement by making your work available, since your intent is (hopefully) not to have people grab your work, change variable names and submit it as their own.
As for violating the LETTER of the policy - intentionally or not, there is the potential for this to be viewed as "giving assistance" on an assignment. Personally, I think it is no more harmful than talking about the assignment with another student, but in the strictest sense of nearly every academic honesty policy even TALKING about the assignments can be considered giving/receiving assistance.
BASICALLY, this really long post boils down to "See what your school says, then come back and tell us (or at least me)". Whatever you do, try to get it in writing that your site does not violate the academic (dis)honesty policy of your university, that way if someone decides they dont like it in the future and you need to defend yourself against allegations of cheating/collaboration you have something tangible and not "But Mr. Foo in legal said X last year...", only to find (as too often happens) that Mr. Foo has either left or changed his position on the issue.
I hope some 20/30/40-somethings who read slashdot (ESPECIALLY all you Ohio citizens!!) DO pick up the phone and call. While I doubt the IE-Only problem is deliberate, there are plenty of form mail scripts that work in .
It is genuinely possible that the representitive in question doesn't know about this problem (do you REALLY think they read all the mail themselves?), so the best way to bring it to her attention (or at least her staff's) is to deluge them with POLITE requests that they fix the form so it works in all browsers.
For those of you who don't recall, the Pinto was a car with a minor flaw - If you bumped into its ass it tended to explode in a fireball. Ford new of the problem, and even had a "patch" to fix it (minor design change adding some shielding around the tank if I recall). They chose not to fix the problem because of economics.
The same principle applies to large companies and security patches - If there's no exploit and we don't tell anyone the problem exists, maybe we can get away without investing the time/money (programmers are expen$ive!) in fixing it. Much like Ford, they are gambling that the losses due to the bug/hole/whatever won't be significant enough to hurt their profits long-term.
Software is a business, like any other, and businesses tend to make stupid decisions when they see a way to save a few pennies. They may be wrong (VERY VERY WRONG), but until EVERYONE makes it clear that the "patch it when it gets exploited" mentality hurts their business, the companies will continue doing as they have done.
While not an algorithm (and I don't think you can come up with an algorithm to generate TRUE randomness...), this is an incredibly small and easy to use piece of random-number-generating hardware.
It would be very easy to integrate this into (eg) UNIX -/dev/random reads the stream of numbers coming off the device.
While not a programmatic solution to the random number problem, this is definately a viable one, provided of course it works as well as they claim.
1) I didnt know Jesus could tap dance, I'd imagine it would be difficult in those sandals.
2) Although you were being a sarcastic prick, you are quite correct. ALL COMPUTER SCIENCE MAJORS SHOULD BE REQUIRED TO TAKE AT LEAST ONE COURSE IN ENGLISH COMPOSITION. The quality of written work I see from my peers is quite frankly disgusting.
Some of us (the obsessive-compulsives like me) try to make our sites compliant, or as compliant as possible while still rendering acceptably in most browsers (my targets: IE 5+, NS4+ (incl. Mozilla/NS6)).
Unfortunately, most browsers are horribly broken (IE renders incomplete s, Netscape 4's CSS support is dodgy at best, both browsers can flake out with complex tables used to do positioning), so sometimes we need to leave in the "old-school" hints (like tags) to get things to work. That is NOT an excuse to not try to code to the standards. I have a number of sites which are XHTML-1.0 and 1.1 compliant (100% according to the W3C validator) that are in development now, and an equal number that are close to compliance with the exception of tags needed to support legacy browsers.
Short version of this comment: Code to the standards and bitch out the browser makers to adhere to them AS WRITTEN. It's not the designer's fault(although it is our problem) that companies cant read a standards document and make appropriate changes (and yes, I realize that keeping up with the standards is time consuming and expensive - do it anyway. You want to be in this market, keep up.)
This would be something I would be interested in testing (if only I could get my hands on the hardware...)
I suppose I'll just have to admire from afar and drool over the cool technology that now works on my operating system (even though I can't think of any uses I personally would have for it, though I'm sure somebody can...)
Wonder how long this will take to make it into Darwin? Wonder if anyone even makes crypto hardware for apples for that matter...
May I suggest that while we are discussing this abomination of a bill here on slashdot we also take the time to open our word processors and write letters to our representatives?
Remember that technically they are supposed to represent US, not the person/corporation with the biggest checkbook.
It may also do well to write your senators -- A similar bill will likely start up there eventualy, or if this mess passes the house it will wind up in the senate eventually. Find your Representative and your Senators and make your opinion known.
(BTW - remember that paper letters are far more difficult to ignore than outraged emails. Especially en masse.)
Okay, a day late, but this reminded me of an assignment that is too evil NOT to give your students, especially if you want to teach the basics of GOOD algorithms:
Propose a problem (any problem, just make sure it is defined well. Mathematical problems or sequences, something with an elegant (or at least short) recursive solution, etc), and have each member of the class go home and write an algorithm to solve the problem.
The next day collect the algorithms and hand them out randomly to other students. Have the students code up the algorithm AS GIVEN, making comments on the algorithm and in their code as they feel is appropriate.
This was an assignment in my AP CS A class in 1999, and some of the algorithms were interesting
(For example, one of them required the implementer to code an "if loop" (in C++)). Grading was based on (a) your algorithm (correct, clear, implementable), (b) how well you implemented the algorithm given to you (did you follow it or did you improvise your own solution?) and (c) the "quality" of your comments (corrections, etc.) on the algorithm you were given.
This assignment was definately a good experience for me. Plus it served a good purpose for our teacher (who took the best algorithm writers/correctors) and used them as (essentially) TAs the next year.
Now I see a lot of people here trying to bash MS because of this article...
Heres a clue for all the readers out there: Slashdot is not a site for bashing Microsoft. "News for Nerds" and "Stuff that Matters" does NOT always translate into "Microsoft is Evil" "Open source Rocks".
This is a very nice, informative article that points out >WHERE Microsoft got the technology for SFU. I for one am glad to know that technology from OpenBSD has been adopted by MS and incorporated into their OS.
Now what would be better would be to know if Interex and/or MS has given anything BACK to the *BSD community as a result of this...
I see nothing wrong with what MS has done - Part of the reason I use BSD-Licened software is because it allows just this sort of commercial adoption of the code.
My concern WRT "Plan B" is that you now have a second point of entry into the existing database which must be kept up-to-date with internal structure changes and the like (we no longer store "fullname" on the person table, you now get it by concatenating "firstname" and "lastname", etc.).
This basically adds to the maintainer's job, whereas "Plan A" (modifying the existing UI to update LDAP) consolidates all the DB Updating bits into one program (and presumably the LDAP server is configured only to allow that program to make updates, by host or binding-user restrictions).
As far as initial coding effort, 200 lines of code could easily implement the LDAP command parsing (in perl or C, and assuming a limited subset of the available commands), however you must take in to account the code to translate from internal storage schema (presumably some RDBMS, or (*gag*) flatfiles) to output that an LDAP client can parse without vomiting on itself. This is where I see the expense and work coming in.
I also have a visceral dislike for reinventing the wheel, since such reimplementations often result in rather defective wheels - How long has it taken OpenLDAP to get to the state it is in now? And anyone who uses it knows it still has bugs and issues...
Well, some applications of it (LDAP for user management) anyway, but that's a subject for a different rant.
:-D
To address your question -- you are in a situation similar to me: You need to implement LDAP access to some data you already have stored somewhere else (presumably in a format "better" than an LDAP directory).
Your best bet would be to implement an OpenLDAP or iPlanet/Netscape/Sun directory server, seed it with the data you already have(a conversion script could probably be written easily), and "educate" the software you use to maintain your current database so that it updates LDAP as well as the current system (using the Net::LDAP module for Perl, or something similarly generic that would work with any LDAP server).
However, since this is not what you want (you don't have the "time or hardware resources" to maintain an LDAP server), you are unfortunately stuck with plan B: Write a listener on port 389 that understands LDAP queries, goes into your current database, grabs the data and spits it out in an LDAP-Like way.
Were I you, I would re-evaluate the cost and difficulty of running an LDAP server and maintaining the synchronization (or migrating the data to LDAP entirely, if it lends itself well to the directory/tree structure of LDAP). Plan B generally pretty much SUCKS, and will inevitably require more time/effort/money to implement and maintain.
Nonetheless, the Net::LDAP library for Perl would be a good place to start with this task. You could also look at the OpenLDAP software as a reference implementation (the code is a fairly easy read (to me anyway) and should be helpful in designing your serverlike hybrid.
You may also wish to look into commercial "metadirectory" products which take one central authoritative datasource and multiplex it out in a variety of formats. When I last looked at these they all sucked, but the "best of breed" back then was something called "DC Directory Server". If you could find one that suits your needs it may be the way to go.
I know this wasn't very helpful, the truth is (as I have been discovering myself) anything LDAP is still kinda raw, and anything complex like what you are trying to do is really not well-explored (or at least not well-documented). Maybe some other slashdotters can be more insightful than me though
Good luck
Alright, I REALLY hate the fact that I'm starting to sound like those 80 year olds sitting on the porch of the retirement home kvetching about how it used to be in "The Good Old Days", but...
I remember a better time - A long time ago - when the SPAM content of my inbox was GUARANTEED to be less than the archive of legit mail I have piled up. - Now, in the last 5 days I have 507 bits of spam, and 307 "archived" real mails sitting in my inbox awaiting (eventual) sorting into categories.
But, far more on topic (or off depending on your point of view), I remember back when search engines were useful because their content was guaranteed to be SOMEWHAT relevant to what you searched for.
Yes, I know they were never perfect. You could search for Reddywhip, innocently hoping to get a site about whipped cream and inadvertently wind up at reddywhip.org (not your intended destination I'm sure), but now with the clutter from blogs that don't have the common sense to have a NOINDEX in their META tags or an appropriate robots.txt file, the damn things are becoming saturated with CRAP! Add to this the result of "googlebombing" (admittedly a much smaller effect, but still something that gets noticed - obviously or it wouldnt be done) and things are really starting to get out of control.
Honestly, "nerds" should know better than to abuse search engines like this, and slashdot editors should know better than to post stories like this one - where the only "nerdly" bit is the link to the googlebombing article - itself already a story on slashdot (one with a great deal of merit in and of itself) - which will only serve to encourage more googlebombing and further degrade the quality of search results.
Moderators: Go ahead, I know it's offtopic, but this kind of stuff SERIOUSLY pisses me off. Nothing personal against Clif & his article selection, I happen to like some of his articles, but this one just serves to inflame an already bad situation.
No, seriously... If your old thermal receipts have faded, they can sometimes be fixed by ironing them (no steam, just a hot iron or an incandescent lightbulb).
This only works if the thermal lettering has faded but the paper is still mostly white - The heat-sensitive layer where the original letters were is desensitized and the faded letters will not re-blacken, but the rest of the receipt will, giving you a negative copy of the receipt.
Note that this doesn't work for all thermal printer receipts, it depends on the type of paper used in the machines (the catalina coupons at most supermarkets (they print on thermal paper with red strips on the top/bottom) work, but the register tape at the supermarket I used to work at wouldn't - not sure why.
From my brief stint in retail (grocery store) I can say that even when the terminals allow manual input many stores still use the imprinter - mostly to protect the store (since you never swiped the card you need the imprint to prove the person actually HAD the card with them -- otherwise the store is open to serious liability ("But I never went into that store and bought that plasma TV!").
Although the terminal still authorizes the transaction and verifies the card is not lost/stolen/overlimit/whatever the imprinter receipt is the store's record that the actual card was there.
> The stuff schools are teaching in quickly changing
> fields like IT is already dated anyhow.
I have to disagree MOST STRONGLY with this statement. While certain material (how to program in C/C++/Java/Pascal/Cobol/Algol/Ada/whatever) is or may one day be dated and obsolete, the FUNDAMENTAL CONCEPTS (good, efficent algorithm design, the basics of discrete mathematics and its applications to programming/algorithm design, advanced problem-solving skills) will NEVER be dated.
To consider a college/university education only as "I learned C" places it on the same level as job training schools, where one may learn how to do something, but not WHY to do it that way ("It is better to use a mathematical equation to find the sum of the first N positive integers rather than a loop." but with no explanation of the Gauss formula, how/why it works and why it is better (for those of you who can't answer the last question - think: 1 mathematical formula, lets be pessimistic and say 20 operations have to be performed to evaluate it for integers 1-100. Summing integers in a loop we have 100 additions, plus at least 101 comparisons for the loop check, 201 operations, or already ~10x longer for N=100. Now extrapolate to N=[something really obscenely huge])).
That having been said, I don't know what additional value a Ph.D would bring in the Real World - I believe that experience counts for more than education after a certain point (I myself have a fairly nice position at a consulting/software design company. I am still an undergraduate student, I got this job my senior year in High School - WHY? Because I came in knowing more about what that company valued (DNS, NIS, UNIX administration, good, solid programming skills) than most undergraduate or graduate students they interviewed. These are not things you will find in a university course - They are things you learn by experience.)
Bottom line IMHO - A Ph.D will be a HUGE asset IF you intend to teach at the university level. A Masters will likely be a requirement at that level to become full-time faculty, and a Bachelors to be an adjunct (policies vary at different schools).
In the workforce, A Bachelors is a HUGE boost over just HS education, a Masters lends you a little more credence, and a Ph.D - Probably something you should work on at night school while you have a steady job to fund it (this is in fact how I intend to get my masters degree - The job market is just heating up again and I don't want to spend more time in school when I could be making some decent coin and getting started on my life.)
Funny, my experience has been just the opposite - I went camping with some friends and we all took our phones along for emergencies.
Well, lo and behold none of them (AT&T, Verizon and 2 Nextels) worked at the camp site (in a valley at Macedonia Brook State Park (CT)), but when we climbed up to a fair height during our hike both nextel phones had full service, the Verizon was on analog-roaming and my AT&T phone was pleading No Service.
There are some places my Nextel (switched this year)doesn't get service (my room for one, with gobs of unshielded open-cased computer hardware - if you put it down in the wrong spot you're screwed), but there are others (assorted basements, data centers, a few subway stations) where I never had service with AT&T.
Granted it is an expensive leash, but it works for me.
Typically anything I write has "~mikeg" or "mikeg: [some date/time stamp] - watever I changed" or my email address (mikeg@whatever-company.com) stuck in a comment somewhere.
/usr/local/*, excepting "biggies" like a database server or web server (web servers go in /home/web or /home/www, database servers usually reside in /usr/local/[db_software_name]). A /usr/local/src directory with the source code for EVERYTHING I've installed, as well as a "bigmake" script which rebuilds it all the way I had it stays on the machine for future generations.
Often something of that nature will appear if you do a "strings" on the executable if the language I was working in is a compiled one, typically my email address works its way into the code somehow (help screens, version info, etc.)
For systems hardware, a large cursive MG in green or black marker on an inside surface, usually under the motherboard or on the bottom of drive bays, indicates that I built the system. Smaller MGs (in blue or black), usually with dates, indicate service done (these are sometimes on a frame bar or even a removable panel). When a machine finally reaches the end of its life, I initial it with red marker and leave it open until it is stripped and disposed of.
I understand the signing practice used to be quite common with mainframe service techs but has become less so with PCs and cheap servers - I for one would love to see it revived as it makes it easy to know who was the last person to work on machine X.
For an OS build, my footprints are unmistakeable - anything outside of the OS goes in
This script is used when upgrading software, or when rebuilding from scratch, and usually has a whole load of variables in it to turn off/on various parts of the build (for example, on my FreeBSD systems the first stage of this script is to cvsup and rebuild the OS/kernel - probably not something you want to do if you're just upgrading apache).
So...
/~mikeg
What they're saying is basically if I "encrypt" everything I store with rot13 then when someone breaks in and steals [insert favorite sensitive bit of data here] from my database I dont have to say a thing to anyone - after all, it was encrypted....
DUH!!!!!!
EUCANTCODE
From the udel academic honesty policy:
Academic honesty and integrity lie at the heart of any educational enterprise. Students are expected to do their own work and neither to give nor to receive assistance during quizzes, examinations, or other class exercises.
---
My university's academic honesty policy (Here, page through to p. 54 (PDF page 47)) is much longer, but boils down to the same thing - Dont cheat, Dont help anyone else cheat, if you do we're gonna beat you to death with a textbook.
Legally (copyright law - See This site) I am not sure if code for school counts as a "work for hire" in which case the copyright is held by the school, or as an original work by an author (an "answer for a test" is considered a work for hire). I do not know how the interpretation would hold up in a legal challenge, but if you want to cover yourself you could place a notice in all of your programs claiming copyright (again, the "works for hire" clause may invalidate this. Check with a real lawyer.).
As far as academic honesty policies go, I am SURE that I am in violation of the Hofstra policy (which states that students "must not only avoid cheating, but the apppearance of cheating" - something I've been WAITING for the chance to challenge since I find it obscenely offensive to allow a professor to presume a student is cheating if their paper is too close to the edge of their desk). Certainly by making answers to lab exercises available I violate this policy.
Udel's policy seems more realistic - you are not to give or receive assistance on [any assignment]. I don't believe that you violate the spirit of this statement by making your work available, since your intent is (hopefully) not to have people grab your work, change variable names and submit it as their own.
As for violating the LETTER of the policy - intentionally or not, there is the potential for this to be viewed as "giving assistance" on an assignment. Personally, I think it is no more harmful than talking about the assignment with another student, but in the strictest sense of nearly every academic honesty policy even TALKING about the assignments can be considered giving/receiving assistance.
BASICALLY, this really long post boils down to "See what your school says, then come back and tell us (or at least me)". Whatever you do, try to get it in writing that your site does not violate the academic (dis)honesty policy of your university, that way if someone decides they dont like it in the future and you need to defend yourself against allegations of cheating/collaboration you have something tangible and not "But Mr. Foo in legal said X last year...", only to find (as too often happens) that Mr. Foo has either left or changed his position on the issue.
Best of luck
Honey, that's an amendment, not an article.
Love your point, but make it correctly or you WILL be seen as an idiot and ignored by the great unwashed.
And what makes you think it's just teenagers?
I hope some 20/30/40-somethings who read slashdot (ESPECIALLY all you Ohio citizens!!) DO pick up the phone and call. While I doubt the IE-Only problem
is deliberate, there are plenty of form mail scripts that work in .
It is genuinely possible that the representitive in question doesn't know about this problem (do you REALLY think they read all the mail themselves?), so the best way to bring it to her attention (or at least her staff's) is to deluge them with POLITE requests that they fix the form so it works in all browsers.
Think about it.
I have a firm grip on reality.... and I can squeeze hard and strangle the little b@stard any time I want to.
For those of you who don't recall, the Pinto was a car with a minor flaw - If you bumped into its ass it tended to explode in a fireball.
Ford new of the problem, and even had a "patch" to fix it (minor design change adding some shielding around the tank if I recall). They chose not to fix the problem because of economics.
The same principle applies to large companies and security patches - If there's no exploit and we don't tell anyone the problem exists, maybe we can get away without investing the time/money (programmers are expen$ive!) in fixing it. Much like Ford, they are gambling that the losses due to the bug/hole/whatever won't be significant enough to hurt their profits long-term.
Software is a business, like any other, and businesses tend to make stupid decisions when they see a way to save a few pennies. They may be wrong (VERY VERY WRONG), but until EVERYONE makes it clear that the "patch it when it gets exploited" mentality hurts their business, the companies will continue doing as they have done.
While not an algorithm (and I don't think you can come up with an algorithm to generate TRUE randomness...), this is an incredibly small and easy to use piece of random-number-generating hardware.
/dev/random reads the stream of numbers coming off the device.
It would be very easy to integrate this into (eg) UNIX -
While not a programmatic solution to the random number problem, this is definately a viable one, provided of course it works as well as they claim.
It's spaceball one.... She's gone to PLAID!
1) I didnt know Jesus could tap dance, I'd imagine it would be difficult in those sandals.
2) Although you were being a sarcastic prick, you are quite correct. ALL COMPUTER SCIENCE MAJORS SHOULD BE REQUIRED TO TAKE AT LEAST ONE COURSE IN ENGLISH COMPOSITION. The quality of written work I see from my peers is quite frankly disgusting.
Some of us (the obsessive-compulsives like me) try to make our sites compliant, or as compliant as possible while still rendering acceptably in most browsers (my targets: IE 5+, NS4+ (incl. Mozilla/NS6)).
Unfortunately, most browsers are horribly broken (IE renders incomplete s, Netscape 4's CSS support is dodgy at best, both browsers can flake out with complex tables used to do positioning), so sometimes we need to leave in the "old-school" hints (like tags) to get things to work. That is NOT an excuse to not try to code to the standards. I have a number of sites which are XHTML-1.0 and 1.1 compliant (100% according to the W3C validator) that are in development now, and an equal number that are close to compliance with the exception of tags needed to support legacy browsers.
Short version of this comment: Code to the standards and bitch out the browser makers to adhere to them AS WRITTEN. It's not the designer's fault(although it is our problem) that companies cant read a standards document and make appropriate changes (and yes, I realize that keeping up with the standards is time consuming and expensive - do it anyway. You want to be in this market, keep up.)
</rant>
Is there no tag or equivalent in this standard?
I didnt have a DTD to grep through since they havent released it yet, but I hope there's still a convenient way to place images on a page.
Anyone care to point out the glaringly obvious (yet overlooked on my part) location of this in the WD?
Much Appreciated,
This would be something I would be interested in testing (if only I could get my hands on the hardware...)
I suppose I'll just have to admire from afar and drool over the cool technology that now works on my operating system (even though I can't think of any uses I personally would have for it, though I'm sure somebody can...)
Wonder how long this will take to make it into Darwin? Wonder if anyone even makes crypto hardware for apples for that matter...
May I suggest that while we are discussing this abomination of a bill here on slashdot we also take the time to open our word processors and write letters to our representatives?
Remember that technically they are supposed to represent US, not the person/corporation with the biggest checkbook.
It may also do well to write your senators -- A similar bill will likely start up there eventualy, or if this mess passes the house it will wind up in the senate eventually.
Find your Representative and your Senators and make your opinion known.
(BTW - remember that paper letters are far more difficult to ignore than outraged emails. Especially en masse.)
... A Mayan teenager has just been dumped by her boyfriend, she goes out with her friends for a nice jug of chocolate to drown her sorrows....
:)
Some things just don't seem to change, eh?
Okay, a day late, but this reminded me of an assignment that is too evil NOT to give your students, especially if you want to teach the basics of GOOD algorithms: Propose a problem (any problem, just make sure it is defined well. Mathematical problems or sequences, something with an elegant (or at least short) recursive solution, etc), and have each member of the class go home and write an algorithm to solve the problem. The next day collect the algorithms and hand them out randomly to other students. Have the students code up the algorithm AS GIVEN, making comments on the algorithm and in their code as they feel is appropriate. This was an assignment in my AP CS A class in 1999, and some of the algorithms were interesting (For example, one of them required the implementer to code an "if loop" (in C++)). Grading was based on (a) your algorithm (correct, clear, implementable), (b) how well you implemented the algorithm given to you (did you follow it or did you improvise your own solution?) and (c) the "quality" of your comments (corrections, etc.) on the algorithm you were given. This assignment was definately a good experience for me. Plus it served a good purpose for our teacher (who took the best algorithm writers/correctors) and used them as (essentially) TAs the next year.