Greetings, I strongly recommend Firehand Ember. I've been using it for years and years, and it's fast, clean, functional, handles tens of thousands of files in a directory, gives a lot of useful options, scales with interpolation, slideshows, etc., etc...
I've given them a good bit of money over the years, but it's totally worth it. They also support thumbnails of folders, basically by grabbing the first image in the folder and putting it as a decoration on a folder graphic.
I'm just a very satisfied customer. I tried everything else out there, and loathed them (including acdsee), as they didn't present the majority of my images as thumbnails in the largest view portion. ThumbsPlus never worked right for me, but Firehand has never given me any problems.
That'll work if you haven't put anything in. If you have added stuff (I never went the sample route, so I presume you can add to it), then try putting it into 'list' mode, instead of 'shelving' mode, and sorting by 'Lookup Time'. Everything in the sample should be at the top, because it was (obviously) 'looked up' before you started using the program.
If 'lookup time' isn't a column, click the hammer/sickle (okay, wrench, but...) in the upper right, and add Lookup Time to the list of columns you have. (By the way, that is an EXCELLENT feature, and I'm letting you (wjsdelicious) know now that I'm going to steal it (well, reimplement it at least) for my table-based Java app, to please my legions of adoring OS X fans.;)
Okay, so your legions outnumber mine... Especially since I'm one of yours...
Delicious Library absolutely rocks, by the way. Several hundred books so far, and only a few frustrations.
If I'm pounding in books using the iSight, and it can't find the covers of my 1970's SF novels, I'd very much like to be able to turn the book around, click a button, and use that handy-dandy webcam/barcode scanner as a momentary scanner, and import the picture. Plus Cmd-N, then click on the ISBN field is a bit annoying, I'd like to be able to set the default selected column on creation of a New item, so that in marathon 'indexing' sessions I can focus on pounding in ISBN numbers. I've got a thousand more books to go, so anytime in the next few weeks would be fine...:) I kid, I kid...
Seriously though, this program drove me to buy an iSight. I'd wanted one for a while, but when I learned I could catalog my roughly 2K of books, movies and games with an iSight and DL, I walked out the door to an Apple store and plopped my money down, and am quite happy with the choice, both software and hardware.
Greetings, A telling quote from Holub's article on his site about getters/setters...
We do know how we will use the classes, so you don't have to waste time building unnecessary flexibility.
His article actually explicitly is against the public accessible groupings of data, preferring instead what is (to me) equally distasteful, which is having the 'data objects' know everything that could be done with them, and contain the functionality to do it all. This is fine if you never need flexibility in your data, for different representations, display formats, UI toolkits, calculations, business logic, etc., and you can predict the complete set of uses in advance, like in examples in a book. Most real software development doesn't work like this though.
Certainly there are occasions when this is right, but most of the time this is a recipe for disaster, as you put too much system knowledge, and therefore too much tying between classes, in what should just be a relatively simple representational class.
It depends a lot on what you're doing, of course, and I'd definitely agree that keeping get/set to a minimum is important (and even moreso for set than get), but it's definitely not a tool to discard from your toolset because Holub says so.
-- Morgan Schweers, CyberFOX!
Re:Getters/setters bad?
on
Holub on Patterns
·
· Score: 3, Interesting
Greetings, Data objects are just groupings of data. The member variables should be public and accessible to it's users.
This is the only thing I disagree with in that. I believe that a get/set interface to data objects is in fact the only right place for get/setters.
Why? Because you might want to abstract that data object into something more intelligent in a later refactoring, and then you have the burden of replacing every variable reference in everything that touches that class. Nasty, nasty stuff, and it's better to design that nastiness out in the first place.
I believe in no public member variables, as a general rule (breakable, of course, on occasion, but terribly rarely), as it causes too tight a binding between classes and the value objects that are passed around (called 'tying' by some). This may put me at odds with Holub (I haven't read this book yet), but it wouldn't be the first time.
Holub is an EXCEPTIONALLY good introductory author, very easy to read, and clearly brings you to the point he's trying to make. However, I recall coming back to his C books after many years as a professional developer, re-reading them out of curiousity, and realizing that he was teaching a few principles that were questionable at best, and ignored at-the-time best practices. Now it's very possible that he would also think they are questionable these days, but putting them in a book lends them an air of authority through time.
I'll probably pick up the book, as more examples of good pattern use are always valuable, but as an engineer who has developed countless classes where 'value objects' become more intelligent, I strongly recommend against direct member variable access.
Greetings, Hear hear! The next full release of my own open source app will warn users of 1.3.x that when 1.5 is released, 1.3.x will no longer be supported.
It's REALLY hard to constrain myself to 1.3.x stuff, and I made a critical mistake very recently where I wrote:
StringBuffer sb = new StringBuffer("This..."); StringBuffer sb2 = new StringBuffer("is a test.");
sb.append(sb2);
Now, under 1.3.x the StringBuffer object doesn't have an 'append' function that takes (specifically) a StringBuffer. But it does take a String. The 1.4.x compiler generates
sb2.add(sb)
but the 1.3.x compiler generates
sb2.add(sb.toString());
So the code gives no errors when compiled with 1.3.x, but if you compile the same source with a 1.4.x compiler, it blows up when running on a 1.3.x JRE. (Heh, can I plug the idea of version-specific coding errors as a PMD ruleset?)
I want to ditch my own regex library, string replace functions, etc., and be able to use 1.4. However, I have to slowly wean my users off 1.3.x, by warning them in advance that when 1.5 hits, I'm no longer supporting 1.3.
Y'know, if you've got original ideas in the codec space, there are companies who will hire you. (Equator, in Seattle, WA is probably one. I used to work for them, and they always wanted good codec folks.)
They aren't in Vermont, though, that's for sure.
Anyhow, I GPL a few packagaes myself, only one of which has a lot of use, and I'll tell you a basic law, whether you contribute to the public good or not.
Pay Yourself First.
I know, and most others know, that you can't contribute to the good of the world if you can't eat. It's the whole heirarchy of needs thing, to put it another way. People who think they can shortcut to the 'doing good for the world' step, often get bitter because they're not eating, not sleeping, not appreciated, and in general because they didn't take care of the foundation before they got to the roof.
The right way to do it is to get a job as a software developer (in this case), you get an okay to decent paying job, and then AFTER work, you do what you feel brings good to the world, whatever it might be. As subtle and deep as a brilliant audio innovation, or as simple(!hah!) as raising your children as best you can.
But no matter how important you feel your contributions to the world are, Pay Yourself First. Even, and especially, if you're a genius in your field, nobody wins if you have a breakdown or die because of financial troubles.
It's not the governments job to figure out who the geniuses and crackpots are, though. It should never, ever have been, because it's just not something a government agency is qualified for. I'd be furious if my contributions to the government's wealth-redistribution project (i.e. taxes) were used even MORE to fund people whose primary skill was asking for money, even if it also meant some more geniuses were funded.
Pay yourself first, and make the world better when you've got food, safety and shelter, and friends and partners who appreciate you.
<flamishness>I really didn't want to dispute the free-market capitalism slam, because the rest of my response is the real meat, but I have to note that it is ONLY under free-market capitalism that the most brilliant of ideas come out, because in socialist systems, the self-esteem that comes from the pride of personal ownership is fundamentally missing. Yes, with capitalism there some bad people who get a lot of money because they are bad, but I can live with that. Why? Because I've always paid myself first, in time and money, and I have food, shelter and safety, people I love and belong with, and am proud of the work I've done. I don't have to feel that someone else is doing well, while I am not. Ken Lay never harmed you or me by receiving a great deal of money. (In fact, I lost a little money investing in Enron, but that's because I didn't do sufficient due diligence, and I accept that as one of my early investing lessons.) He had the ambition and the will, albiet not morals we would agree on, to build something. Despite being clearly scum, I bet he contributes more than my yearly salary to charities each year. His contribution back is definitely greater than mine, and possibly yours right now, even though he was a scumbag.</flamishness>
The answer to your question (from me) is this... I'm not a voter who cares about the polls, or what other sheep think, offhand. Dean's values match with mine, and he stands up for them, and that's absolutely the first time that's happened in the 16 years I've been eligible to vote, and the 22 years I've been actually conscious of the political process.
I'm supposed to vote for someone whose stand, whose stated beliefs, blow with the wind of the polls? Or just with someone whose beliefs I don't agree with at all, just because they appeal more to the 'middle american' types, and might be more electable?
Would you?
Think about it... Which would you rather vote for, someone who truly embodied what you believe a president should be, including the strength of their beliefs, or someone who based their platform on what they believe will get them elected?
This one time, the choice is really, really straightforward for me. I get to vote FOR a presidential candidate, instead of AGAINST one.
Greetings, Well... To get this right would take a while, and is massively off-topic, but IIRC, the original Colossal Caves (Adventure, by Crowther and Woods) was written in Fortran, and had a twisty maze of passages, which was also used in Dungeon/Zork, which was very heavily influenced by Adventure.
The commercial (Infocom) Zork series is a splitting up of the Dungeon/Zork program, which was not originally written in Fortran, it was in fact originally written in MDL by Marc Blank and Dave Lebling, and translated to Fortran by a 'somewhat paranoid DEC engineer who prefers to remain anonymous'.
Zork took the Dungeon world, split it up into three worlds, and then added a bunch more stuff to each part of it, although most additions were to Zork II and III, IIRC. Zork I was mostly identical to the early part of Dungeon.
The Adventure versions are are also known by their point values (330, 551, etc.). There are modified versions of Adventure which add large amounts of other areas, and up the points to as many as 1000 points. I've played Adventure on machines ranging from my PalmPilot to PC's of all shades, to Vaxen and even a Prime mini/mainframe which had the largest and highest point version I'd ever seen. (>1000 points, iirc).
The names Zork and Dungeon have been completely intermingled. I was under the impression it was originally named Dungeon, and then later named Zork, but many of the history pages have it the other way around.
The original Dungeon/Zork had 'GDT', a 'Grand (Game?) Debugging Tool', that let you examine objects, and rooms, in the world. Getting to it required knowing some magic way of translating a key that was printed when you typed in 'GDT'. In my case, it meant teaching myself VAX assembly language, so I could debug and patch the binary, so whatever I typed was accepted...
I'm a terribly long-standing fan of IF, even before it had that moniker, having learned a lot about programming by writing text adventure games, parsers, and all the database-like coding needed to make a good text adventure game.
I can still lose myself in the games, just like I can lose myself in a really good book. It's a different world, and a lot of fun as long as you're okay letting your imagination provide all the graphics.
If my choice is to not put food on the table, or keep a house over our heads, or take a software development job that is a little unpleasant, I'll take the job. I've been there, I've been out of work, and I know that there ISN'T a choice.
It's fine and dandy to say that there are other ways of making money, but if you're skilled in one area (computers), and there's no work in that area available, you're screwed. Even if the choice is between minimum wage at a Home Depot (if they even hire you, knowing that you'll leave as soon as the economy improves, and if that's even enough to pay your mortgage payments and feed your family), and writing spyware for $65K/year, I'll write spyware.
I curse spyware heavily, and dislike it personally, but I don't hate the authors of the programs. It's not being a hitman (hello? can we get some perspective delivered here? 30min or less?), or a child porn publisher, or anything on the scale of things that ACTUALLY HARM people.
When the pangs of hunger are gnawing at you, and worse, at your children, you will do what you need to, and pray that something as white collar as writing software that pops up ads is the least offensive thing you'll have to do.
For what it's worth, however, I agree with the Software Engineering Code of Ethics and Professional Practice, as a general way to work. If at all possible, discouraging unethical software activities is a good thing.
I do not believe, however, in fanaticism over any issue short of the direct lives and well-being of my family.
Once again, some perspective is necessary... Spyware is unpleasant, but it's not evil.
Greetings, Well, give Sony some credit on the pivot, they have some experience (and more they can borrow) on cellphone hinges, which is what that probably is based on.
Others have answered the likely cycles question... Myself, I say forget Palm vs. Wince, I'm now torn between the Zaurus (a shell prompt & 802.11b on my PDA!) and this. One thing this does lack is a microphone interface, for taking verbal notes. I'd far prefer that over another digital camera.
Welp, once I have money again...
One of these days, one of these PDAs is going to come with a rolled-up unfoldable sheet of thin material you can put underneath a ream of paper, and will capture your pressure movements over the paper above it. This results in a digital copy of your drawn image, for later conversion into a better digital form... There were PDAs like that (from Montblanc, in fact, IIRC, but too bulky), but the soft, thin, foldable material idea hasn't been tried yet that I know of. Technologically, I thoroughly believe it's feasible.
3DFx (now owned by nVidia) made the daughter-cards that could be daisy-chained.
I don't believe #9 ever got past 32MB onboard. They widened their data path to 128bits for faster access, but I don't think they ever saw a need for large memory (usually used for texturing), as they were 2D-oriented. Most of their cards used S3 chips, but later on they developed their own. Much of this is also in the article that we're responding to...
Check out the last (only) #9 card Anandtech has reviewed, it was back in 1998, and it had 32MB of memory... They were dead before cheap large memory became common.
Uhhh... IIRC, this is handled under the AHRA (Audio Home Recording Act), partially under Title 17, Chapter 10, Subchapter D, section 1008. To wit:
No action may be brought under this title alleging infringement of copyright based on the manufacture, importation, or distribution of a digital audio recording device, a digital audio recording medium, an analog recording device, or an analog recording medium, or based on the noncommercial use by a consumer of such a device or medium for making digital musical recordings or analog musical recordings.
Seperately, I believe that Title 17, Chapter 1, Section 110, 5.a clearly suggests that home performance of a copyrighted work is not copyright infringement. (Reference: US Code) Because I'd have to append parts of this one together, I won't quote it here, because it would be not precisely the same wording, but do look at it, as it feels like one of the clearer statements.
Similarly, albiet weaker, I think that a case could be made regarding home performance from Title 17, Chapter 1, Section 109, (c).
Notwithstanding the provisions of section 106(5), the owner of a particular copy lawfully made under this title, or any person authorized by such owner, is entitled, without the authority of the copyright owner, to display that copy publicly, either directly or by the projection of no more than one image at a time, to viewers present at the place where the copy is located.
Anyhow, IANAL, obviously, and none of this is legal advice, but I'm relatively confident that home duplication for non-commercial use is supported. Fundamentally, it is impossible to provide any form of digital playback without internal copying (generally to a temporary buffer, followed by decode, true even with raw Redbook audio), and therefore a legalized copying mechanism is absolutely required for home devices.
However, the question of media-shifting, and more importantly format-shifting (both partially addressed by my first reference), is a much more grey area, imho. My faulty memory provides some suggestion that non-commercial use of audio cassette recordings of owned legitimate copies was upheld, but I'm not sufficiently caselaw aware to find it. Furthermore, the precedent may have involved an acknowledgement of the generational loss involved, which would potentially invalidate it in the case of digital duplication. It needs more investigation by people with far better l3g4l skillz than I.;)
-- Cyberfox
p.s. Absolutely none of this absolves individuals who are violating copyright by providing media-shifted copies of copyrighted audio to the general public. I can't, obviously, speak to the potential of contributory infringement on the part of Kazaa, Morpheus, or any of the Gnutella programs.
Re:Pay Pal and Ebay & Citibank and and and
on
PayPal Goes Public
·
· Score: 1
Greetings,
P2P in the epayment world doesn't mean Peer-to-Peer. It means Person to Person. It means an individual paying another individual, instead of paying a company. (It also means Path-to-Profitability for startup companies, to give you an idea how overloaded P2P is.)
Yes, the payment still goes through a central organization, but the direct destination for that payment is another person.
With the ObDisclaimer that my own grammar (especially with respect to parenthetical expressions and run-on sentences) is not up to snuff, here's my take on this.
I have spent about 5 years on BBS's in the 80's, then 11 years on Usenet, and finally several years here and many other community sites. I'm just relatively grateful when people provide sentences I can mentally parse at all.
If you take grammar too seriously, you'll have an ulcer if you stay on the internet too long.
The classic response here is 'Are you suggesting that if it's overwhelming, I shouldn't try to change it at all?' Nope, but I will say that posting a piece of flamage about 'it's' vs. 'its' is sure not the way to win converts to good grammar.
Write yourself up a nice page that summarizes 'Strunk and White', with special focus on the mistakes that you see lots of people making online. Then, make a name for yourself as someone people respect, either by coding a lot, or having really well informed, well written opinions that match the community opinions. Then, once you have an audience, start proselytizing your grammar pages.
The other option is that you can accept that like in most forms of software, 'Good Enough' is the target. If prose reasonably carries 90% of its meaning, then it's not something to be worried about.
I've taken the last option, as I can't imagine subjecting myself to the stress of trying to correct 150 million people's grammar. This is especially true when the meaning that is intended is carried, despite technical errors.
Given that, even I will tease, and maybe constructively criticize when someone's misuse of the language changes the fundamental meaning of a statement.
Reading articles from individuals on the internet is like eating at a fast food restaurant. It's relatively filling, gets the job done, and it REALLY doesn't matter which 'fork' you use.
Similarly, in conversational (spoken) english, ALL the niceties of sentence structure and grammar go out the window in favor of communication efficiency. Does this balkanize the language? Of course not. Do people who prefer verbosity and precise grammar in speech sound pompous and uncommuncative? Why yes, they do! Use the correct grammatical constructs when it is necessary to ensure correctness. Be relaxed otherwise.
Once again, for the sake of repetition... If the meaning is suitably carried, then the goal of communication is reached. The details are only for the picky, or for competitions where the details matter.
Another way to put this, is something that was stated in RFC's forever ago... 'Be conservative in what you send out, be liberal in what you receive.' In this case, that translates to: write well, if you can, but accept loosely written texts as they are.
Greetings,
Fair warning, I'm mostly talking out of my hat, from the 'user' perspective. (I'm a developer, but I've never looked at the binary word formats.) When I save as a 'Word 97' file in Word 2000, it actually saves in the plain-text RTF format.
This is, of course, not the binary format used by Word 2K, or even (I believe) Word '97. It's weird, but that's how it's working right now.
Sure, that RTF file is easy to parse/read, but that's not a format that will be useful at all if you want to interact with Word2K for example... (I know nothing about Office XP.)
Quick note: Genesis was Sega, and the first case in question that I know of was either the NES or SNES, in which EA decided that they had enough of the crap from Nintendo, and released their own games... and were promptly sued. They won, eventually.
That was before the DMCA.
Don't bet on the same legal protections you had in the past, unfortunately. This isn't random bitching about the DMCA, this is EXACTLY the sort of thing that the DMCA targets. It'd be nice if Nintendo took EA (a classic reverse-engineering shop) or someone to court over it, via the DMCA, and the reverse engineering shop won, but I wouldn't place money on that battle these days.
As for believing that all boot processes can be faked, that's just not true for the end user. You often must modify the hardware in order to boot your own creations. The end user, for example, to this day STILL can't burn CD-ROM's that are immediately bootable on UNMODIFIED Playstations (used as an example because of the age of the platform). Sure, if you've got the right high-end specific hardware, you can do it. The vast general populace can't, and that includes the vast majority of developers.
As for the decryption crack, all it needs to do is a physical verification of a non-writable portion of the disk before boot, and *poof* you cannot make CD's without very high end equipment. It's not an encryption issue, it's an access-control issue. Most Playstation CD's aren't even encrypted, the data is raw on the disk. (Playing just the Final Fantasy cut scene movies on my PC is fun!) The disk, however, has physical protection that prevents you playing a copy of it, UNLESS you've modified your Playstation to not need that physical protection.
You won't be able to burn a CD or DVD in a consumer burner that will boot on a PS2, unless you've modified your PS2. To the best of my knowledge, the PS2 mods currently available are all still 'unstable', or only allow you to be in one mode (Japanese, American) at a time. That may have changed.
In summary, be careful what comments you call 'stupid'. The boot process IS the crown jewel, the protection enforced IS valuable to the companies, and Sony will NOT give it away. Even if they did, I would still wager that you and I couldn't build media that would boot. Last but not least, legal protections offered in the past may not still be in place, due to the DMCA explicitly outlawing them.
Greetings,
They do have 650 employees. Over 400 of them are customer support, in fact. I applied there a while ago.
They kick ass, and are some of the smartest people I've met in a LONG time. Energetic, decent, smart, and fun. The worst complaint I've seen lodged against them is that they are over-protective in terms of fraud. But if you look at the other online payment systems, they've all been driven under by fraud.
Greetings,
One sad part is that so few people understand what 'the September that Never Ended' even refers to.
Unfortunately, due to human nature, there's no way to make the medium popular, widely used, and free (speech, not beer) without attracting the kind of people who want to prey on it, and lower the quality of discussion. (Referring to both spam, and the kind of trollop exemplified by another responder to the 'Bad example' post.)
I do have to agree that despite the sheer volume of crap that I get in the email and on the web, making the medium more widely used is a greater good than the bad that followed.
Maybe you're thinking of Bruce Perens, who has had the tendency to speak in a loud, unqualified voice on many matters. (He's been doing a lot better recently, but still has flashes of useless flamage. Not that I'm better, but I'm not trying to be a spokesman for anyone but myself.)
Bruce Schneier IS a security expert. His credentials have nothing to do with open source, in fact.
He's also not a loudmouth in any sense, nor does he offer much in the way of unqualified statements. ESPECIALLY when it comes to crypto.
I'm POSITIVE you're thinking of Bruce Perens instead of Bruce Schneier, the highly respected encryption and security analyst whose Twofish encryption standard was one of the final potentials for the new American Encryption Standard.
If Bruce Schneier, the author of the standard-setting book 'Applied Cryptography', offered his opinion on encryption protocols it would definitely weigh well.
Greetings,
Pioneered at Oracle?!? Bleh. Forever ago, back when the technical magazine was 'Popular Electronics', a company mocked up a box with blinky lights, called it a computer, and got the cover. They then built the computer inside it. (I don't recall that computer's name, it was one of the early 'also rans' in the Altair era.)
Speaking of Altair, how about that boy Bill Gates? Bill Gates evidently called up the Altair company (MITS), told them he had a Basic for their system, offered to sell it to them, and when they accepted (or asked for him to show them, I don't recall which), he (and Paul Allen, I believe) PROCEEDED TO WRITE IT ON THE TRIP OUT THERE!
Greetings,
Read David Brin's The Transparent Society. It answers that question, both well and poorly. I disagree with pieces of it, but it's a brilliant look at the whole problem.
The SF book 'Earth' (also by Brin, of course) also touches on the same subject, but as fiction keeps a focus on telling a good story. For a surprisingly thorough look, you really want to read The Transparent Society.
I like MySQL, but that's because it's a brutally simple entry-level RDBMS. They're adding all the stuff they 'left out' (including the GPL license!), but if I were to look for a hefty and serious free DB right now, I'd go with Interbase.
Greetings,
A simple, honest question that I care about a lot.
Is there a point in marketshare that Microsoft will consider porting their Office suite to Linux, possibly starting from their Mac OS X codebase?
Can you give us any hints about where that point is?
You've got a hard job. Best of luck with it.
-- Morgan Schweers, CyberFOX!
Greetings,
I strongly recommend Firehand Ember. I've been using it for years and years, and it's fast, clean, functional, handles tens of thousands of files in a directory, gives a lot of useful options, scales with interpolation, slideshows, etc., etc...
I've given them a good bit of money over the years, but it's totally worth it. They also support thumbnails of folders, basically by grabbing the first image in the folder and putting it as a decoration on a folder graphic.
Take a look at it, it's free for demo use.
I'm just a very satisfied customer. I tried everything else out there, and loathed them (including acdsee), as they didn't present the majority of my images as thumbnails in the largest view portion. ThumbsPlus never worked right for me, but Firehand has never given me any problems.
-- CyberFOX
Greetings,
;)
:) I kid, I kid...
That'll work if you haven't put anything in. If you have added stuff (I never went the sample route, so I presume you can add to it), then try putting it into 'list' mode, instead of 'shelving' mode, and sorting by 'Lookup Time'. Everything in the sample should be at the top, because it was (obviously) 'looked up' before you started using the program.
If 'lookup time' isn't a column, click the hammer/sickle (okay, wrench, but...) in the upper right, and add Lookup Time to the list of columns you have. (By the way, that is an EXCELLENT feature, and I'm letting you (wjsdelicious) know now that I'm going to steal it (well, reimplement it at least) for my table-based Java app, to please my legions of adoring OS X fans.
Okay, so your legions outnumber mine... Especially since I'm one of yours...
Delicious Library absolutely rocks, by the way. Several hundred books so far, and only a few frustrations.
If I'm pounding in books using the iSight, and it can't find the covers of my 1970's SF novels, I'd very much like to be able to turn the book around, click a button, and use that handy-dandy webcam/barcode scanner as a momentary scanner, and import the picture. Plus Cmd-N, then click on the ISBN field is a bit annoying, I'd like to be able to set the default selected column on creation of a New item, so that in marathon 'indexing' sessions I can focus on pounding in ISBN numbers. I've got a thousand more books to go, so anytime in the next few weeks would be fine...
Seriously though, this program drove me to buy an iSight. I'd wanted one for a while, but when I learned I could catalog my roughly 2K of books, movies and games with an iSight and DL, I walked out the door to an Apple store and plopped my money down, and am quite happy with the choice, both software and hardware.
Thanks muchly!
-- Morgan Schweers, CyberFOX!
Greetings,
A telling quote from Holub's article on his site about getters/setters...
We do know how we will use the classes, so you don't have to waste time building unnecessary flexibility.
His article actually explicitly is against the public accessible groupings of data, preferring instead what is (to me) equally distasteful, which is having the 'data objects' know everything that could be done with them, and contain the functionality to do it all. This is fine if you never need flexibility in your data, for different representations, display formats, UI toolkits, calculations, business logic, etc., and you can predict the complete set of uses in advance, like in examples in a book. Most real software development doesn't work like this though.
Certainly there are occasions when this is right, but most of the time this is a recipe for disaster, as you put too much system knowledge, and therefore too much tying between classes, in what should just be a relatively simple representational class.
It depends a lot on what you're doing, of course, and I'd definitely agree that keeping get/set to a minimum is important (and even moreso for set than get), but it's definitely not a tool to discard from your toolset because Holub says so.
-- Morgan Schweers, CyberFOX!
Greetings,
Data objects are just groupings of data. The member variables should be public and accessible to it's users.
This is the only thing I disagree with in that. I believe that a get/set interface to data objects is in fact the only right place for get/setters.
Why? Because you might want to abstract that data object into something more intelligent in a later refactoring, and then you have the burden of replacing every variable reference in everything that touches that class. Nasty, nasty stuff, and it's better to design that nastiness out in the first place.
I believe in no public member variables, as a general rule (breakable, of course, on occasion, but terribly rarely), as it causes too tight a binding between classes and the value objects that are passed around (called 'tying' by some). This may put me at odds with Holub (I haven't read this book yet), but it wouldn't be the first time.
Holub is an EXCEPTIONALLY good introductory author, very easy to read, and clearly brings you to the point he's trying to make. However, I recall coming back to his C books after many years as a professional developer, re-reading them out of curiousity, and realizing that he was teaching a few principles that were questionable at best, and ignored at-the-time best practices. Now it's very possible that he would also think they are questionable these days, but putting them in a book lends them an air of authority through time.
I'll probably pick up the book, as more examples of good pattern use are always valuable, but as an engineer who has developed countless classes where 'value objects' become more intelligent, I strongly recommend against direct member variable access.
-- Morgan Schweers, CyberFOX!
Hear hear! The next full release of my own open source app will warn users of 1.3.x that when 1.5 is released, 1.3.x will no longer be supported.
It's REALLY hard to constrain myself to 1.3.x stuff, and I made a critical mistake very recently where I wrote:Now, under 1.3.x the StringBuffer object doesn't have an 'append' function that takes (specifically) a StringBuffer. But it does take a String. The 1.4.x compiler generates but the 1.3.x compiler generates So the code gives no errors when compiled with 1.3.x, but if you compile the same source with a 1.4.x compiler, it blows up when running on a 1.3.x JRE. (Heh, can I plug the idea of version-specific coding errors as a PMD ruleset?)
I want to ditch my own regex library, string replace functions, etc., and be able to use 1.4. However, I have to slowly wean my users off 1.3.x, by warning them in advance that when 1.5 hits, I'm no longer supporting 1.3.
I recommend doing the same.
-- Morgan Schweers
Greetings,
Y'know, if you've got original ideas in the codec space, there are companies who will hire you. (Equator, in Seattle, WA is probably one. I used to work for them, and they always wanted good codec folks.)
They aren't in Vermont, though, that's for sure.
Anyhow, I GPL a few packagaes myself, only one of which has a lot of use, and I'll tell you a basic law, whether you contribute to the public good or not.
Pay Yourself First.
I know, and most others know, that you can't contribute to the good of the world if you can't eat. It's the whole heirarchy of needs thing, to put it another way. People who think they can shortcut to the 'doing good for the world' step, often get bitter because they're not eating, not sleeping, not appreciated, and in general because they didn't take care of the foundation before they got to the roof.
The right way to do it is to get a job as a software developer (in this case), you get an okay to decent paying job, and then AFTER work, you do what you feel brings good to the world, whatever it might be. As subtle and deep as a brilliant audio innovation, or as simple(!hah!) as raising your children as best you can.
But no matter how important you feel your contributions to the world are, Pay Yourself First. Even, and especially, if you're a genius in your field, nobody wins if you have a breakdown or die because of financial troubles.
It's not the governments job to figure out who the geniuses and crackpots are, though. It should never, ever have been, because it's just not something a government agency is qualified for. I'd be furious if my contributions to the government's wealth-redistribution project (i.e. taxes) were used even MORE to fund people whose primary skill was asking for money, even if it also meant some more geniuses were funded.
Pay yourself first, and make the world better when you've got food, safety and shelter, and friends and partners who appreciate you.
<flamishness>I really didn't want to dispute the free-market capitalism slam, because the rest of my response is the real meat, but I have to note that it is ONLY under free-market capitalism that the most brilliant of ideas come out, because in socialist systems, the self-esteem that comes from the pride of personal ownership is fundamentally missing. Yes, with capitalism there some bad people who get a lot of money because they are bad, but I can live with that. Why? Because I've always paid myself first, in time and money, and I have food, shelter and safety, people I love and belong with, and am proud of the work I've done. I don't have to feel that someone else is doing well, while I am not. Ken Lay never harmed you or me by receiving a great deal of money. (In fact, I lost a little money investing in Enron, but that's because I didn't do sufficient due diligence, and I accept that as one of my early investing lessons.) He had the ambition and the will, albiet not morals we would agree on, to build something. Despite being clearly scum, I bet he contributes more than my yearly salary to charities each year. His contribution back is definitely greater than mine, and possibly yours right now, even though he was a scumbag.</flamishness>
-- Kilroy Balore, CyberFOX!
Greetings,
The answer to your question (from me) is this... I'm not a voter who cares about the polls, or what other sheep think, offhand. Dean's values match with mine, and he stands up for them, and that's absolutely the first time that's happened in the 16 years I've been eligible to vote, and the 22 years I've been actually conscious of the political process.
I'm supposed to vote for someone whose stand, whose stated beliefs, blow with the wind of the polls? Or just with someone whose beliefs I don't agree with at all, just because they appeal more to the 'middle american' types, and might be more electable?
Would you?
Think about it... Which would you rather vote for, someone who truly embodied what you believe a president should be, including the strength of their beliefs, or someone who based their platform on what they believe will get them elected?
This one time, the choice is really, really straightforward for me. I get to vote FOR a presidential candidate, instead of AGAINST one.
Dean for President.
-- CyberFOX!
Greetings,
Well... To get this right would take a while, and is massively off-topic, but IIRC, the original Colossal Caves (Adventure, by Crowther and Woods) was written in Fortran, and had a twisty maze of passages, which was also used in Dungeon/Zork, which was very heavily influenced by Adventure.
The commercial (Infocom) Zork series is a splitting up of the Dungeon/Zork program, which was not originally written in Fortran, it was in fact originally written in MDL by Marc Blank and Dave Lebling, and translated to Fortran by a 'somewhat paranoid DEC engineer who prefers to remain anonymous'.
Zork took the Dungeon world, split it up into three worlds, and then added a bunch more stuff to each part of it, although most additions were to Zork II and III, IIRC. Zork I was mostly identical to the early part of Dungeon.
The Adventure versions are are also known by their point values (330, 551, etc.). There are modified versions of Adventure which add large amounts of other areas, and up the points to as many as 1000 points. I've played Adventure on machines ranging from my PalmPilot to PC's of all shades, to Vaxen and even a Prime mini/mainframe which had the largest and highest point version I'd ever seen. (>1000 points, iirc).
The names Zork and Dungeon have been completely intermingled. I was under the impression it was originally named Dungeon, and then later named Zork, but many of the history pages have it the other way around.
The original Dungeon/Zork had 'GDT', a 'Grand (Game?) Debugging Tool', that let you examine objects, and rooms, in the world. Getting to it required knowing some magic way of translating a key that was printed when you typed in 'GDT'. In my case, it meant teaching myself VAX assembly language, so I could debug and patch the binary, so whatever I typed was accepted...
Some more information is available here (Colossal Caves), and here (Dungeon/Zork), and you can find out more about Interactive Fiction's history as well.
I'm a terribly long-standing fan of IF, even before it had that moniker, having learned a lot about programming by writing text adventure games, parsers, and all the database-like coding needed to make a good text adventure game.
I can still lose myself in the games, just like I can lose myself in a really good book. It's a different world, and a lot of fun as long as you're okay letting your imagination provide all the graphics.
-- CyberFOX!
Greetings,
.
This is absurd.
If my choice is to not put food on the table, or keep a house over our heads, or take a software development job that is a little unpleasant, I'll take the job. I've been there, I've been out of work, and I know that there ISN'T a choice.
It's fine and dandy to say that there are other ways of making money, but if you're skilled in one area (computers), and there's no work in that area available, you're screwed. Even if the choice is between minimum wage at a Home Depot (if they even hire you, knowing that you'll leave as soon as the economy improves, and if that's even enough to pay your mortgage payments and feed your family), and writing spyware for $65K/year, I'll write spyware.
I curse spyware heavily, and dislike it personally, but I don't hate the authors of the programs. It's not being a hitman (hello? can we get some perspective delivered here? 30min or less?), or a child porn publisher, or anything on the scale of things that ACTUALLY HARM people.
When the pangs of hunger are gnawing at you, and worse, at your children, you will do what you need to, and pray that something as white collar as writing software that pops up ads is the least offensive thing you'll have to do.
For what it's worth, however, I agree with the Software Engineering Code of Ethics and Professional Practice, as a general way to work. If at all possible, discouraging unethical software activities is a good thing.
I do not believe, however, in fanaticism over any issue short of the direct lives and well-being of my family.
Once again, some perspective is necessary... Spyware is unpleasant, but it's not evil
-- Cyberfox!
Greetings, ;)
It wasn't Montblanc, it was A.T.Cross, I always get those high-end pen companies mixed up...
-- Cyberfox!
Greetings,
;)
Well, give Sony some credit on the pivot, they have some experience (and more they can borrow) on cellphone hinges, which is what that probably is based on.
Others have answered the likely cycles question... Myself, I say forget Palm vs. Wince, I'm now torn between the Zaurus (a shell prompt & 802.11b on my PDA!) and this. One thing this does lack is a microphone interface, for taking verbal notes. I'd far prefer that over another digital camera.
Welp, once I have money again...
One of these days, one of these PDAs is going to come with a rolled-up unfoldable sheet of thin material you can put underneath a ream of paper, and will capture your pressure movements over the paper above it. This results in a digital copy of your drawn image, for later conversion into a better digital form... There were PDAs like that (from Montblanc, in fact, IIRC, but too bulky), but the soft, thin, foldable material idea hasn't been tried yet that I know of. Technologically, I thoroughly believe it's feasible.
And yes, Dexter is a good dog.
-- Cyberfox!
Greetings,
3DFx (now owned by nVidia) made the daughter-cards that could be daisy-chained.
I don't believe #9 ever got past 32MB onboard. They widened their data path to 128bits for faster access, but I don't think they ever saw a need for large memory (usually used for texturing), as they were 2D-oriented. Most of their cards used S3 chips, but later on they developed their own. Much of this is also in the article that we're responding to...
Check out the last (only)
#9 card Anandtech has reviewed, it was back in 1998, and it had 32MB of memory... They were dead before cheap large memory became common.
-- Cyberfox!
Uhhh... IIRC, this is handled under the AHRA (Audio Home Recording Act), partially under Title 17, Chapter 10, Subchapter D, section 1008. To wit:
Seperately, I believe that Title 17, Chapter 1, Section 110, 5.a clearly suggests that home performance of a copyrighted work is not copyright infringement. (Reference: US Code) Because I'd have to append parts of this one together, I won't quote it here, because it would be not precisely the same wording, but do look at it, as it feels like one of the clearer statements.
Similarly, albiet weaker, I think that a case could be made regarding home performance from Title 17, Chapter 1, Section 109, (c).
Anyhow, IANAL, obviously, and none of this is legal advice, but I'm relatively confident that home duplication for non-commercial use is supported. Fundamentally, it is impossible to provide any form of digital playback without internal copying (generally to a temporary buffer, followed by decode, true even with raw Redbook audio), and therefore a legalized copying mechanism is absolutely required for home devices.
However, the question of media-shifting, and more importantly format-shifting (both partially addressed by my first reference), is a much more grey area, imho. My faulty memory provides some suggestion that non-commercial use of audio cassette recordings of owned legitimate copies was upheld, but I'm not sufficiently caselaw aware to find it. Furthermore, the precedent may have involved an acknowledgement of the generational loss involved, which would potentially invalidate it in the case of digital duplication. It needs more investigation by people with far better l3g4l skillz than I.
-- Cyberfox
p.s. Absolutely none of this absolves individuals who are violating copyright by providing media-shifted copies of copyrighted audio to the general public. I can't, obviously, speak to the potential of contributory infringement on the part of Kazaa, Morpheus, or any of the Gnutella programs.
Greetings,
P2P in the epayment world doesn't mean Peer-to-Peer. It means Person to Person. It means an individual paying another individual, instead of paying a company. (It also means Path-to-Profitability for startup companies, to give you an idea how overloaded P2P is.)
Yes, the payment still goes through a central organization, but the direct destination for that payment is another person.
-- Cyberfox!
Greetings,
With the ObDisclaimer that my own grammar (especially with respect to parenthetical expressions and run-on sentences) is not up to snuff, here's my take on this.
I have spent about 5 years on BBS's in the 80's, then 11 years on Usenet, and finally several years here and many other community sites. I'm just relatively grateful when people provide sentences I can mentally parse at all.
If you take grammar too seriously, you'll have an ulcer if you stay on the internet too long.
The classic response here is 'Are you suggesting that if it's overwhelming, I shouldn't try to change it at all?' Nope, but I will say that posting a piece of flamage about 'it's' vs. 'its' is sure not the way to win converts to good grammar.
Write yourself up a nice page that summarizes 'Strunk and White', with special focus on the mistakes that you see lots of people making online. Then, make a name for yourself as someone people respect, either by coding a lot, or having really well informed, well written opinions that match the community opinions. Then, once you have an audience, start proselytizing your grammar pages.
The other option is that you can accept that like in most forms of software, 'Good Enough' is the target. If prose reasonably carries 90% of its meaning, then it's not something to be worried about.
I've taken the last option, as I can't imagine subjecting myself to the stress of trying to correct 150 million people's grammar. This is especially true when the meaning that is intended is carried, despite technical errors.
Given that, even I will tease, and maybe constructively criticize when someone's misuse of the language changes the fundamental meaning of a statement.
Reading articles from individuals on the internet is like eating at a fast food restaurant. It's relatively filling, gets the job done, and it REALLY doesn't matter which 'fork' you use.
Similarly, in conversational (spoken) english, ALL the niceties of sentence structure and grammar go out the window in favor of communication efficiency. Does this balkanize the language? Of course not. Do people who prefer verbosity and precise grammar in speech sound pompous and uncommuncative? Why yes, they do! Use the correct grammatical constructs when it is necessary to ensure correctness. Be relaxed otherwise.
Once again, for the sake of repetition... If the meaning is suitably carried, then the goal of communication is reached. The details are only for the picky, or for competitions where the details matter.
Another way to put this, is something that was stated in RFC's forever ago... 'Be conservative in what you send out, be liberal in what you receive.' In this case, that translates to: write well, if you can, but accept loosely written texts as they are.
-- Cyberfox!
Greetings,
Fair warning, I'm mostly talking out of my hat, from the 'user' perspective. (I'm a developer, but I've never looked at the binary word formats.) When I save as a 'Word 97' file in Word 2000, it actually saves in the plain-text RTF format.
This is, of course, not the binary format used by Word 2K, or even (I believe) Word '97. It's weird, but that's how it's working right now.
Sure, that RTF file is easy to parse/read, but that's not a format that will be useful at all if you want to interact with Word2K for example... (I know nothing about Office XP.)
-- Cyberfox!
Greetings,
Quick note: Genesis was Sega, and the first case in question that I know of was either the NES or SNES, in which EA decided that they had enough of the crap from Nintendo, and released their own games... and were promptly sued. They won, eventually.
That was before the DMCA.
Don't bet on the same legal protections you had in the past, unfortunately. This isn't random bitching about the DMCA, this is EXACTLY the sort of thing that the DMCA targets. It'd be nice if Nintendo took EA (a classic reverse-engineering shop) or someone to court over it, via the DMCA, and the reverse engineering shop won, but I wouldn't place money on that battle these days.
As for believing that all boot processes can be faked, that's just not true for the end user. You often must modify the hardware in order to boot your own creations. The end user, for example, to this day STILL can't burn CD-ROM's that are immediately bootable on UNMODIFIED Playstations (used as an example because of the age of the platform). Sure, if you've got the right high-end specific hardware, you can do it. The vast general populace can't, and that includes the vast majority of developers.
As for the decryption crack, all it needs to do is a physical verification of a non-writable portion of the disk before boot, and *poof* you cannot make CD's without very high end equipment. It's not an encryption issue, it's an access-control issue. Most Playstation CD's aren't even encrypted, the data is raw on the disk. (Playing just the Final Fantasy cut scene movies on my PC is fun!) The disk, however, has physical protection that prevents you playing a copy of it, UNLESS you've modified your Playstation to not need that physical protection.
You won't be able to burn a CD or DVD in a consumer burner that will boot on a PS2, unless you've modified your PS2. To the best of my knowledge, the PS2 mods currently available are all still 'unstable', or only allow you to be in one mode (Japanese, American) at a time. That may have changed.
In summary, be careful what comments you call 'stupid'. The boot process IS the crown jewel, the protection enforced IS valuable to the companies, and Sony will NOT give it away. Even if they did, I would still wager that you and I couldn't build media that would boot. Last but not least, legal protections offered in the past may not still be in place, due to the DMCA explicitly outlawing them.
-- Cyberfox!
Greetings,
They do have 650 employees. Over 400 of them are customer support, in fact. I applied there a while ago.
They kick ass, and are some of the smartest people I've met in a LONG time. Energetic, decent, smart, and fun. The worst complaint I've seen lodged against them is that they are over-protective in terms of fraud. But if you look at the other online payment systems, they've all been driven under by fraud.
Grow or die.
-- Cyberfox!
Greetings,
One sad part is that so few people understand what 'the September that Never Ended' even refers to.
Unfortunately, due to human nature, there's no way to make the medium popular, widely used, and free (speech, not beer) without attracting the kind of people who want to prey on it, and lower the quality of discussion. (Referring to both spam, and the kind of trollop exemplified by another responder to the 'Bad example' post.)
I do have to agree that despite the sheer volume of crap that I get in the email and on the web, making the medium more widely used is a greater good than the bad that followed.
All things change.
Cyberfox!
Greetings,
Maybe you're thinking of Bruce Perens, who has had the tendency to speak in a loud, unqualified voice on many matters. (He's been doing a lot better recently, but still has flashes of useless flamage. Not that I'm better, but I'm not trying to be a spokesman for anyone but myself.)
Bruce Schneier IS a security expert. His credentials have nothing to do with open source, in fact.
He's also not a loudmouth in any sense, nor does he offer much in the way of unqualified statements. ESPECIALLY when it comes to crypto.
I'm POSITIVE you're thinking of Bruce Perens instead of Bruce Schneier, the highly respected encryption and security analyst whose Twofish encryption standard was one of the final potentials for the new American Encryption Standard.
If Bruce Schneier, the author of the standard-setting book 'Applied Cryptography', offered his opinion on encryption protocols it would definitely weigh well.
Bruce Perens' would be useless, or worse.
Cyberfox!
Extremely well put. Thank you for stating it so clearly, and with a minimum of bombast.
Cyberfox!
Greetings,
Pioneered at Oracle?!? Bleh. Forever ago, back when the technical magazine was 'Popular Electronics', a company mocked up a box with blinky lights, called it a computer, and got the cover. They then built the computer inside it. (I don't recall that computer's name, it was one of the early 'also rans' in the Altair era.)
Speaking of Altair, how about that boy Bill Gates? Bill Gates evidently called up the Altair company (MITS), told them he had a Basic for their system, offered to sell it to them, and when they accepted (or asked for him to show them, I don't recall which), he (and Paul Allen, I believe) PROCEEDED TO WRITE IT ON THE TRIP OUT THERE!
Oracle invented Vaporware? Not hardly.
Cyberfox!
Greetings,
Read David Brin's The Transparent Society. It answers that question, both well and poorly. I disagree with pieces of it, but it's a brilliant look at the whole problem.
The SF book 'Earth' (also by Brin, of course) also touches on the same subject, but as fiction keeps a focus on telling a good story. For a surprisingly thorough look, you really want to read The Transparent Society.
Cyberfox!
Greetings,
*whispering tone* Interbase...
I like MySQL, but that's because it's a brutally simple entry-level RDBMS. They're adding all the stuff they 'left out' (including the GPL license!), but if I were to look for a hefty and serious free DB right now, I'd go with Interbase.
Cyberfox!