I18n/localization is one of those tasks that has *lots* of questions that will need to be resolved... often you won't even know about all of the issues to resolve until you start digging into it.
I sorted out the i18n design for a project recently, so I can share some insights on the process. My project used Java/JSP, but the problems are mostly the same. One of the most important points to be made is that you *need* to sit down and design it all the way through -- this is not a "feature" that can be easily added in when you need it later (and extreme programming teams can get hosed on this one pretty easily).
Things to consider (in the sequence of a request for simplicity's sake): 1) How will you know what language a user wants (first time, and on subsequent pages)? The user should be able to select/change their preference (though you could use their browser-reported locale as a guess), and they should be able to *bookmark* the homepage in their language. You could use a cookie, and redirect from the basic homepage based on that. Personally I avoid depending on cookies where possible, I didn't want to have duplicated directory structures, and I didn't want an added param on every request, so I used multiple *subdomains*, one per supported locale. They all mapped to the same IP, same application -- but in the web application I could check the requested URL and set the locale (and build the page) correctly using that. There were links on the top of the homepage to switch languages -- which would just flip to the proper subdomain. (Important note -- this complicates getting a cert for SSL, since that's tied to the domain... keep that in mind).
Once you know what language you're using, build the page... this will probably involve getting data out of the database and displaying some of it.
First, make sure your tables support whatever character set the languages will need. Then make your data design carefully. You need to make sure that any data in the database that will show up onscreen: product descriptions, category names, and ALSO prices (you probably have to give prices in various currencies, right?).
Building the page -- you'll need more PHP-specific advice here, but the idea is that you need to get text and possibly images that are language-specific for each page. The general choices are: * Use a single PHP file for the content (e.g., a form for registration info), and get the text displayed from locale-specific files (so for the "name" label over that field, you'd grab the proper translation). * Maintain a separate PHP file for the content in each language, plug the proper one into the template.
The first option is better if your content is mostly short bits of text -- but if there are larger chunks of text it gets hard to read (and if the whole page is text -- like a privacy policy page, etc. -- the second option may make more sense). Personally, I supported both options.
What else? Don't forget that formatting of currency, numbers, dates, and times will vary by locale. Don't forget to review any Flash animations, dropdown menus, popup calendars, etc.. these will need to support changes based on locale. Organize your resources carefully, so that a simple substitution in the path will get you the right image, content file, etc. (e.g., images/fr_CA/whatever.gif).
Yes, it's a puff-piece, and the writeup works pretty darn hard to paint the "hackers" as impressed with the technical know-how of the execs. This is even more poorly executed in the sidebar.
Excerpted for your amusement; pay careful attention and watch to see what deep technical know-how Allchin actually demonstrates beyond "nodding knowingly" (honestly, the guy probably knows what MD5 is, but he comes across as pretty silly here in spite of the praise he's getting).
"Who Was That Guy"
During a recent talk in Redmond, security researcher Dan Kaminsky wasn't sure how geeky to get. After all, he was talking to a bunch of executives on the first day of Blue Hat, not Microsoft's rank-and-file engineers.
So he kept his comments brief when it came to a flaw in something called MD5--a "hashing" algorithm, or a kind of fingerprint used to authenticate documents. He figured it was probably too esoteric for his audience. The rest of his presentation was focused on a different security topic.
But when it came time for questions, "this one guy with a shock of white hair looks straight at me and just says, 'MD5.'" Kaminsky, who said the comment seemed more like an order than a request for information, complied by demonstrating how two Web pages could have the same "hash," as the man listened and nodded knowingly.
A week later, Kaminsky learned that his interrogator was Jim Allchin--one of the highest-ranking executives at Microsoft and, as the person in charge of the Windows operating system, one of the leaders in the technology industry as a whole. Allchin's questions made clear just how deep the technical knowledge runs among the most senior ranks of the world's biggest software company.
The brief encounter made a lasting impression on Kaminsky. "I was like, 'Who was that guy?'" he said.
Re:DVORAK for real world, SysAdmin/Programming use
on
Advocating Dvorak
·
· Score: 1
Of course, if you do QWERTY typing by the book, "cd" is just as irritating as "ls" in Dvorak...
Either you or someone you correspond with is infected with an email worm.
It was a strange thing, really; obviously you don't need any passwords to pull a joe job and use someone's email address as the reply-to... and I've definitely been getting tons of bounces back to address that I've never used... carl@mydomain, claudia@mydomain, etc.. I'm not concluding anything from this alone.
On the other hand, I have some profiles set up in my webmail account that I've never even used before (one I set up for a joke that I think I never got around to playing...), and the day after I was in the internet cafe in Vienna, I got a few rejected viruses and bounces from Austrian addresses, to those addresses. I changed all my passwords immediately, and since then have been getting a flood of generic bounces using my domains, but not from these addresses.
It seems odd that someone would have logged into my webmail to send viruses out (and then apparently delete them from the Sent mailbox - yes, I checked), but I could imagine this situation... then whoever it was may have used my domains for a joe job when I locked them out.
I've kept all of the bounces, I may do some more detailed analysis later.
Well, what are you really looking for? Do you like the serial form because it makes you slow down when reading an entire novel, or cuts it up into bite-sized chunks?
You could always just take a regular novel, slice it up, put each chapter in an envelope, and get a friend to mail them to you one at a time.
Seriously, this just isn't done much anymore. I know one example -- Dave Eggers was publishing a serial novel on Salon.com (subscription or sommething probably required)... it got up to episode 35 and kind of stopped (was that the end? I don't know) last summer. I'm guessing they abandoned the idea... and frankly, I wasn't reading it anymore, anyway. Serial novels are a form that seems very hard to do well -- the author doesn't get a chance to *revise* when he's painted himself into a corner, plotwise, or when he realizes he's running out of good material; he just has to keep on going, ignoring the inconsistencies and poor story arc and so on.
I'd say you're better off with a good book. Or... you could do some digging in a good library (ask the reference librarian for help) in finding what you want in old magazines; one of those old serials packed with spies and women on railroad tracks, with a cliff-hanger at the end of every segment could be fun to read.
I got back Friday night from travelling in Eastern Europe since early May. It was a sometimes-working holiday, so I actually had my laptop WITH ME, but publically available wireless access was basically non-existent, so most places I had to deal with internet cafe-style public terminals as my only internet access.
Since I was doing work, I *needed* to access at least email occasionally.
I used tricks like alternating typing in the username and password chars (and chars in the browser bar), and changed my passwords periodically as well, but I STILL suddenly started getting a flood of bounces and virus-filter alerts, mostly from Austrian domains, so I'm guessing it was the internet cafe in Vienna that trapped my password somehow.
Weird, in a way, because they seemed to have a much more professional setup (versus, for example, the internet cafe on Vis island in Croatia that had no special software or limitations whatsoever, just a few old computers with dialup internet access).
It sounds like neither of you were too keen on each other by that time, so I'm not sure it matters much. Either way, not much fun; good luck getting your head sorted out again.
In my defense, I told her no matter what happened I'd maintain the site and make any changes she wanted or had someone else do and then upload it myself, a gesture of good faith, and she immediately brought up lawyers.
This isn't much of an argument -- you're forcing her to "trust" the guy she just broke up with to maintain a site all about her? An act of good faith would be to give her the domain and let her take down the site; this is a mind game. You're trying to "punish" her for her attitude, or for whatever other grievances you have. I know how this kind of stuff happens; someone hurts you and you want to hurt them back... but the fact is that the best way to get back at her would be to move on with your life, enjoy yourself, and make yourself a nice life as if she'd never existed.
Shut the site down, pass off the domain name to her brother or something (so it's off your hands), and move on. Doing something (like hanging the domain name like a sword over her head) expressly to drive her nuts are what you do while you're still in a relationship -- if there's no relationship anymore, it's time to quit.
Those people that buy closed source software implicitly trust the vendor. If the vendor is very reputable for having perfected their creations (NASA), then you are correct, there is no antisocial behavior going on. However, given the fact that most closed source vendors do not have such a reputation (MS), there is nothing to base this level of trust on. Because of that, it is vital that anyone who wishes to use a piece of software to be able to see the code. Essentially, its a different method to achieve NASA quality in the long run. By no means does that mean that OSS is there, but as long as it remains open, it has a much better chance of success. The release of software is not antisocial, but given the capability of any one of those vendors, their refusal to release code is becoming more and more so.
You're not really arguing for open source here -- you're arguing for real developer support, which ideally would include source code access but need NOT grant the rights to redistribute. Plenty of developers decompile closed source software while trying to debug it (and been annoyed that this is against the license!) but don't even think of trying to redistribute it (the bigger open source part).
It's tough to argue that offering comprehensive developer support (including viewable but NOT open source) is still being "anti-social" in any way.
Have you seen nothing in how things are usually done in open source?
For the record, I have started a few small open source projects, and contributed to some larger ones. I have done for-pay development with the agreement to open-source the final result... I get some satisfaction out of this, but not enough cash to feed myself.
First of all, you can sell the software, even if it is opensource. Second, no one is going to take your code, fix it up, and then sell it. That would be quite a large investment on their part.
You lost me on the second point -- assume for a moment that I have spent 3 years developing and refining a production-ready application, which I am currently selling closed-source. Are you seriously saying that the effort involved in taking my code, changing the software title and icons, and reselling it is anywhere *near* the effort I put into developing it? I don't see it.
Instead, what you're more likely to find, is that people are sending you bug reports, fixes, suggestions. If you go the open source route, and you actually DO have very well written software, you're more likely to have a community centered around it than anything evil you imagine.
In the ideal situation of open-sourcing my software, I would end up with a strong community of developers who would help improve the software beyond what I could achieve on my own. Some company better-equipped for distribution and support will package, sell, and support the end-result software, and if I'm lucky they will hire me. If my software design is good enough, they will not need to hire me, and I will be left with a fuzzy warm feeling for having helped the world while I gnaw on a crust of bread.
In the worst case (but very possible) scenario, my wonderful software will target a small enough niche (or won't have that magic "developer itch" factor) that I *won't* have a good community of developers, plus any company with the resources can still package and sell it, and their only real competition will be other companies doing the same thing. I, with no funds to build a dist and support infrastructure, will be a) bankrupt, because without any income I can't pay off the debts from that 3-year dev cycle and b) not even have any warm fuzzy feeling.
I'm far from being anti-OSS (see above), but I still can't see a realistic picture in *all* software being open source.
One thing that might help you is that "support" doesn't necessarily mean "end-user tech support", [...] it just means that the customer (individual or business) might tell you what the "fresh new problem" is.
This is how I earn my money now, doing contract development. It's okay -- quite heavy on the people skills (requirements gathering is an art!), plus I'm not working on stuff that's particularly interesting to me. Plus -- I get paid by the hour. When I take time off, I don't earn anything. Hence the appeal of developing a closed-source product.
In the context of building extensions and customizations to the main software I developed... well, that gets back into subtle variations on the same problem, not solving new ones.
Maybe I'm delving into a discussion that I haven't researched deeply enough yet... but personally, while I do open-source some of my code, I have this dream of writing some difficult, closed-source software, and making money selling *that software*. NOT, for instance, selling support for that software. Support is the un-fun part of programming (does this make me anti-social?).
If I open-sourced this software, my huge time investment would immediately be lost -- other developers would take the code (and could avoid duplicating the years I spent, which is nice for them), make a few improvements, possibly package it up nicer, and distribute that. Yes, more people in the world can now use my software... but what should I do then? How do I fulfill my dream of working my ass off, then being able to *rest* for a bit and dabble in unprofitable work?
I don't like duplication of work any more than anyone else, but to some degree (especially for new products) it seems like a necessary evil to me. Where does the money come from in the all-software-is-libre model, especially for independant developers? I don't want to be RedHat. Selling retail boxes, configuration, and support doesn't appeal to me at all. Support is like solving the same boring problem, with tiny variations, millions of times, instead of tackling a fresh new problem and fixing it once and for all.
Read the grandparent post ("I'm heavily thinking about shifting from handwritten SQL and the Spring framework to hibernate") to get the context, and it's not hard to figure out.
Tip: substitute "generator" for "writer". Then try again.
I just checked the OED (well, the online version):
steal, v.
I. To take dishonestly or secretly.
e. esp. To plagiarize; to pass off (another's work) as one's own; to 'borrow' improperly (words, expressions). Also absol.
The OED is great for learning about how a word has ever been used, but if you're interested in communicating with people, most of the definitions in the OED aren't much use.
Notice how the first definition (I think that's what you have there) is to *take* dishonestly or secretly. That's a far cry from "to take honestly and legally, and to give to others without the appropriate permission of the original giver".
I agree it can be debated, but I still think it's a big stretch of the word steal... especially when we have other perfectly good words (and less misleading) words that clearly describe the issue.
It's like using the word "cleave" in the sense of stick two things together, instead of the more familiar sense of to split something apart. Why do it? You're just confusing people. In the case of "steal", people want to use the word because of the instant negative connotation... in spite of the poor fit. That's disingenuous; just talk about the actual problem, instead of relying on gut reactions to sway them. That's the kind of %@&# politicians pull all the time.
Check a dictionary. To steal is to take someone's property. All of the definitions are about taking and removing something, or something like "to commit theft". Theft is defined as "the felonious taking and removing of personal property with intent to deprive the rightful owner of it."
You can steal a car, or steal something more abstract like liberty, or an election -- but in all cases, the victim is deprived of the item stolen. Even when you steal a base in baseball, the opposing team "gave up a base", right?
There's no definition of "steal" that says anything about duplicating and redistributing someone's property.
Don't muddy the issue of copyright violations with misused, inappropriate words.
The pre-existing requirement is that DNS ownership information must be *valid*, i.e., you have to provide an actual address, phone number, and email through which you may be contacted. This could be the address of a company that will forward messages to you and protect your privacy.
The new requirement for.us domains is that the DNS info be *non-private* -- i.e., it has to be YOUR information, not the info of a redirector.
There are lots of services out there that will provide redirection services for you (GoDaddy, for one). Law enforcement can still easily get your actual information if they have a legal reason for it, but the wackos who feel you deserve to die because you're pro-abortion, or that violent ex-husband who's hunting you, or Big Brother who knows you're not doing anything *illegal* but would like to keep an eye on you just in case CAN NOT see your actual address and phone number.
This change they made will mean that all of those people *can* see your actual address and phone number. Anyone in the public can.
Personally, my sites are all pretty boring (so I don't have private registrations), but I have no trouble at all understanding the need.
You might run it by other people in the same boat at smallbizgeeks.com. Someone there is probably fighting with the same thing.
My thoughts:
The most common reaction is to just sign the contracts, and ignore them. The companies you are working will probably never do anything, even if you are technically breaking conditions in the fine print. This will probably work... but of course you do run the risk of being really screwed if a company decides to come after you because of some percieved danger to them. Not all parts of the contract are enforceable, but some are, and all parts are valid enough to get you into an expensive court battle.
If you can't afford to lose any clients, you might have to take this risk for a while. You're not in the strongest position -- they can probably find someone who will be willing to sign away their firstborn for the work.
Hopefully, you can afford to skip a few contracts -- and you can give them a revised version of the contract that you *are* willing to sign. This means you write in or attach the changes, and get the person hiring you to sign off on the changes.
In most cases, they *are* just using a boilerplate agreement, and don't even know what's in it. Just treat modifications to the contract as a standard part of the deal.
...and people who are totally innocent of any kind of theft (virtual or otherwise) are killed over *much* less money, every day. For example (quick google...), $15.
Yes, it's stupid to kill someone over a virtual sword... just like it's stupid to kill someone over practically anything. But it's *very* easy to understand why the guy might have been furious enough to do something stupid. He was stabbing someone who intentionally ripped him off, and made a lot of money out of it. It's pretty easy to understand why he was mad -- it's not a real sword, but that sure is real money, real entertainment value, and probably a huge time investment getting the sword in the first place that were lost in an instant.
Virtual worlds are not my cup of tea... but I can imagine the feeling of not having any backups of my hobby programming work for 3 months, foolishly lending my computer to a friend for a day... and finding that he'd sold it. I'm not saying I'd start stabbing... but it wouldn't be the computer value I'd care about. Are you going to tell me all that work is only "virtual" property, and I shouldn't worry about it?
I guess this is good, except I'm running flash click to play in Firefox, and have JavaScript pretty pared down.
Me too -- and it sure plays hell with sIFR. It detects that I don't have Flash activated, so it displays the CSS-rendered text. Then I click the Flash box and see the sIFR-rendered text, also.
Personally, I don't think it's the fix to browser fonts. Clever hack, yes. Solution, no.
I do have the feeling we're not far off, though. Actually, here's one way you could do it -- generate a gif for each word, with the "alt" tag being the actual text. Then highlighting works, cut and paste works (cut and paste the Right/Left graphics from Yahoo driving directions if you don't believe me)... it's just slow to load the page and render, and the user is screwed if they want to resize or set their own stylesheet.
I feel like there are a lot of pieces lying around, but no full solution yet. We may just need universally-supported, load/render on-the-fly fonts... someday.
You mentioned that assertions are valuable in large applications, but then you talk about IE vs. Mozilla and debugging JavaScript -- that's not assertions at all; that's error-handling.
Any browser takes HTML, JavaScript, CSS, etc. as user input -- as such, it could be *anything*, and the application must parse it safely. Handling errors in this input should never involve assertions, though, and assertions should always be turned off before distribution, because they are by definition a very unpleasant way to handle errors.
If you're taking a "design by contract" approach, you basically define the "contract" for each method with your assertions. If there's no sensible value your method foo() can return if the argument is null, you make that part of the "contract" with code that calls method foo(). When another programmer screws up and passes in null, it's instantly obvious to both of you who made the mistake, and how to fix it.
Without the contract (which ideally will be automatically documented), the other programmer has to guess what will happen if he passes in null. Suppose you just return a -1, or 0, or null result when foo() gets useless input. The program will keep working -- but that's very bad, because it could hide a serious bug (which might go out in the release), and make it very difficult to track down later.
Assertions make violating a method contract a fatal error -- which can often not only make it easier to avoid bugs, but when they do happen they are usually noticed so quickly that the offending code won't even get checked in.
Watch as AOL and MSN/Hotmail now mark IBM as a spammer...
How much spam do you get that's actually sent from AOL and Hotmail servers? Sure, you see joe jobs all the time with a reply-to address on one of these servers... but actual spam routed through them? Not much. They've done a decent job cracking down on it (it's in their own best interest, even without IBM retaliation in the picture).
It wouldn't be much use to attack the server the mail "pretends" it comes from. That's not what they're doing -- the vast majority of IBM's targets are going to be actual spammer-owned servers, open relays, and zombies.
I18n/localization is one of those tasks that has *lots* of questions that will need to be resolved... often you won't even know about all of the issues to resolve until you start digging into it.
I sorted out the i18n design for a project recently, so I can share some insights on the process. My project used Java/JSP, but the problems are mostly the same. One of the most important points to be made is that you *need* to sit down and design it all the way through -- this is not a "feature" that can be easily added in when you need it later (and extreme programming teams can get hosed on this one pretty easily).
Things to consider (in the sequence of a request for simplicity's sake):
1) How will you know what language a user wants (first time, and on subsequent pages)? The user should be able to select/change their preference (though you could use their browser-reported locale as a guess), and they should be able to *bookmark* the homepage in their language. You could use a cookie, and redirect from the basic homepage based on that. Personally I avoid depending on cookies where possible, I didn't want to have duplicated directory structures, and I didn't want an added param on every request, so I used multiple *subdomains*, one per supported locale. They all mapped to the same IP, same application -- but in the web application I could check the requested URL and set the locale (and build the page) correctly using that. There were links on the top of the homepage to switch languages -- which would just flip to the proper subdomain. (Important note -- this complicates getting a cert for SSL, since that's tied to the domain... keep that in mind).
Once you know what language you're using, build the page... this will probably involve getting data out of the database and displaying some of it.
First, make sure your tables support whatever character set the languages will need. Then make your data design carefully. You need to make sure that any data in the database that will show up onscreen: product descriptions, category names, and ALSO prices (you probably have to give prices in various currencies, right?).
Building the page -- you'll need more PHP-specific advice here, but the idea is that you need to get text and possibly images that are language-specific for each page. The general choices are:
* Use a single PHP file for the content (e.g., a form for registration info), and get the text displayed from locale-specific files (so for the "name" label over that field, you'd grab the proper translation).
* Maintain a separate PHP file for the content in each language, plug the proper one into the template.
The first option is better if your content is mostly short bits of text -- but if there are larger chunks of text it gets hard to read (and if the whole page is text -- like a privacy policy page, etc. -- the second option may make more sense). Personally, I supported both options.
What else? Don't forget that formatting of currency, numbers, dates, and times will vary by locale. Don't forget to review any Flash animations, dropdown menus, popup calendars, etc.. these will need to support changes based on locale. Organize your resources carefully, so that a simple substitution in the path will get you the right image, content file, etc. (e.g., images/fr_CA/whatever.gif).
HTH.
Q: Let's say only you and dead people can read hex. If you teach your buddy how to read hex also, what do you all have in common?
A: You are all deaf.
Excerpted for your amusement; pay careful attention and watch to see what deep technical know-how Allchin actually demonstrates beyond "nodding knowingly" (honestly, the guy probably knows what MD5 is, but he comes across as pretty silly here in spite of the praise he's getting).
Of course, if you do QWERTY typing by the book, "cd" is just as irritating as "ls" in Dvorak...
Either you or someone you correspond with is infected with an email worm.
It was a strange thing, really; obviously you don't need any passwords to pull a joe job and use someone's email address as the reply-to... and I've definitely been getting tons of bounces back to address that I've never used... carl@mydomain, claudia@mydomain, etc.. I'm not concluding anything from this alone.
On the other hand, I have some profiles set up in my webmail account that I've never even used before (one I set up for a joke that I think I never got around to playing...), and the day after I was in the internet cafe in Vienna, I got a few rejected viruses and bounces from Austrian addresses, to those addresses. I changed all my passwords immediately, and since then have been getting a flood of generic bounces using my domains, but not from these addresses.
It seems odd that someone would have logged into my webmail to send viruses out (and then apparently delete them from the Sent mailbox - yes, I checked), but I could imagine this situation... then whoever it was may have used my domains for a joe job when I locked them out.
I've kept all of the bounces, I may do some more detailed analysis later.
Well, what are you really looking for? Do you like the serial form because it makes you slow down when reading an entire novel, or cuts it up into bite-sized chunks?
You could always just take a regular novel, slice it up, put each chapter in an envelope, and get a friend to mail them to you one at a time.
Seriously, this just isn't done much anymore. I know one example -- Dave Eggers was publishing a serial novel on Salon.com (subscription or sommething probably required)... it got up to episode 35 and kind of stopped (was that the end? I don't know) last summer. I'm guessing they abandoned the idea... and frankly, I wasn't reading it anymore, anyway. Serial novels are a form that seems very hard to do well -- the author doesn't get a chance to *revise* when he's painted himself into a corner, plotwise, or when he realizes he's running out of good material; he just has to keep on going, ignoring the inconsistencies and poor story arc and so on.
I'd say you're better off with a good book. Or... you could do some digging in a good library (ask the reference librarian for help) in finding what you want in old magazines; one of those old serials packed with spies and women on railroad tracks, with a cliff-hanger at the end of every segment could be fun to read.
Okay, help me out if it's so simple.
I got back Friday night from travelling in Eastern Europe since early May. It was a sometimes-working holiday, so I actually had my laptop WITH ME, but publically available wireless access was basically non-existent, so most places I had to deal with internet cafe-style public terminals as my only internet access.
Since I was doing work, I *needed* to access at least email occasionally.
I used tricks like alternating typing in the username and password chars (and chars in the browser bar), and changed my passwords periodically as well, but I STILL suddenly started getting a flood of bounces and virus-filter alerts, mostly from Austrian domains, so I'm guessing it was the internet cafe in Vienna that trapped my password somehow.
Weird, in a way, because they seemed to have a much more professional setup (versus, for example, the internet cafe on Vis island in Croatia that had no special software or limitations whatsoever, just a few old computers with dialup internet access).
Anyway -- what else should I have done?
I think it would have been much less disturbing if you found a chunk of metal in your Wendy's chili, for example...
There's a job in the Wendys food creation process someplace that could *really* use some robotic automation.
It sounds like neither of you were too keen on each other by that time, so I'm not sure it matters much. Either way, not much fun; good luck getting your head sorted out again.
Cheers.
In my defense, I told her no matter what happened I'd maintain the site and make any changes she wanted or had someone else do and then upload it myself, a gesture of good faith, and she immediately brought up lawyers.
This isn't much of an argument -- you're forcing her to "trust" the guy she just broke up with to maintain a site all about her? An act of good faith would be to give her the domain and let her take down the site; this is a mind game. You're trying to "punish" her for her attitude, or for whatever other grievances you have. I know how this kind of stuff happens; someone hurts you and you want to hurt them back... but the fact is that the best way to get back at her would be to move on with your life, enjoy yourself, and make yourself a nice life as if she'd never existed.
Shut the site down, pass off the domain name to her brother or something (so it's off your hands), and move on. Doing something (like hanging the domain name like a sword over her head) expressly to drive her nuts are what you do while you're still in a relationship -- if there's no relationship anymore, it's time to quit.
Those people that buy closed source software implicitly trust the vendor. If the vendor is very reputable for having perfected their creations (NASA), then you are correct, there is no antisocial behavior going on. However, given the fact that most closed source vendors do not have such a reputation (MS), there is nothing to base this level of trust on. Because of that, it is vital that anyone who wishes to use a piece of software to be able to see the code. Essentially, its a different method to achieve NASA quality in the long run. By no means does that mean that OSS is there, but as long as it remains open, it has a much better chance of success. The release of software is not antisocial, but given the capability of any one of those vendors, their refusal to release code is becoming more and more so.
You're not really arguing for open source here -- you're arguing for real developer support, which ideally would include source code access but need NOT grant the rights to redistribute. Plenty of developers decompile closed source software while trying to debug it (and been annoyed that this is against the license!) but don't even think of trying to redistribute it (the bigger open source part).
It's tough to argue that offering comprehensive developer support (including viewable but NOT open source) is still being "anti-social" in any way.
Have you seen nothing in how things are usually done in open source?
For the record, I have started a few small open source projects, and contributed to some larger ones. I have done for-pay development with the agreement to open-source the final result... I get some satisfaction out of this, but not enough cash to feed myself.
First of all, you can sell the software, even if it is opensource. Second, no one is going to take your code, fix it up, and then sell it. That would be quite a large investment on their part.
You lost me on the second point -- assume for a moment that I have spent 3 years developing and refining a production-ready application, which I am currently selling closed-source. Are you seriously saying that the effort involved in taking my code, changing the software title and icons, and reselling it is anywhere *near* the effort I put into developing it? I don't see it.
Instead, what you're more likely to find, is that people are sending you bug reports, fixes, suggestions. If you go the open source route, and you actually DO have very well written software, you're more likely to have a community centered around it than anything evil you imagine.
In the ideal situation of open-sourcing my software, I would end up with a strong community of developers who would help improve the software beyond what I could achieve on my own. Some company better-equipped for distribution and support will package, sell, and support the end-result software, and if I'm lucky they will hire me. If my software design is good enough, they will not need to hire me, and I will be left with a fuzzy warm feeling for having helped the world while I gnaw on a crust of bread.
In the worst case (but very possible) scenario, my wonderful software will target a small enough niche (or won't have that magic "developer itch" factor) that I *won't* have a good community of developers, plus any company with the resources can still package and sell it, and their only real competition will be other companies doing the same thing. I, with no funds to build a dist and support infrastructure, will be a) bankrupt, because without any income I can't pay off the debts from that 3-year dev cycle and b) not even have any warm fuzzy feeling.
I'm far from being anti-OSS (see above), but I still can't see a realistic picture in *all* software being open source.
One thing that might help you is that "support" doesn't necessarily mean "end-user tech support", [...] it just means that the customer (individual or business) might tell you what the "fresh new problem" is.
This is how I earn my money now, doing contract development. It's okay -- quite heavy on the people skills (requirements gathering is an art!), plus I'm not working on stuff that's particularly interesting to me. Plus -- I get paid by the hour. When I take time off, I don't earn anything. Hence the appeal of developing a closed-source product.
In the context of building extensions and customizations to the main software I developed... well, that gets back into subtle variations on the same problem, not solving new ones.
So you wouldn't be giving any kind of support for your non-free software?
Not personally -- that wouldn't be the core of my business, it would be something that the core income could support hiring someone to do.
Maybe I'm delving into a discussion that I haven't researched deeply enough yet... but personally, while I do open-source some of my code, I have this dream of writing some difficult, closed-source software, and making money selling *that software*. NOT, for instance, selling support for that software. Support is the un-fun part of programming (does this make me anti-social?).
If I open-sourced this software, my huge time investment would immediately be lost -- other developers would take the code (and could avoid duplicating the years I spent, which is nice for them), make a few improvements, possibly package it up nicer, and distribute that. Yes, more people in the world can now use my software... but what should I do then? How do I fulfill my dream of working my ass off, then being able to *rest* for a bit and dabble in unprofitable work?
I don't like duplication of work any more than anyone else, but to some degree (especially for new products) it seems like a necessary evil to me. Where does the money come from in the all-software-is-libre model, especially for independant developers? I don't want to be RedHat. Selling retail boxes, configuration, and support doesn't appeal to me at all. Support is like solving the same boring problem, with tiny variations, millions of times, instead of tackling a fresh new problem and fixing it once and for all.
Informative? Hm.
Read the grandparent post ("I'm heavily thinking about shifting from handwritten SQL and the Spring framework to hibernate") to get the context, and it's not hard to figure out.
Tip: substitute "generator" for "writer". Then try again.
I just checked the OED (well, the online version):
steal, v.
I. To take dishonestly or secretly.
e. esp. To plagiarize; to pass off (another's work) as one's own; to 'borrow' improperly (words, expressions). Also absol.
The OED is great for learning about how a word has ever been used, but if you're interested in communicating with people, most of the definitions in the OED aren't much use.
Notice how the first definition (I think that's what you have there) is to *take* dishonestly or secretly. That's a far cry from "to take honestly and legally, and to give to others without the appropriate permission of the original giver".
I agree it can be debated, but I still think it's a big stretch of the word steal... especially when we have other perfectly good words (and less misleading) words that clearly describe the issue.
It's like using the word "cleave" in the sense of stick two things together, instead of the more familiar sense of to split something apart. Why do it? You're just confusing people. In the case of "steal", people want to use the word because of the instant negative connotation... in spite of the poor fit. That's disingenuous; just talk about the actual problem, instead of relying on gut reactions to sway them. That's the kind of %@&# politicians pull all the time.
Check a dictionary. To steal is to take someone's property. All of the definitions are about taking and removing something, or something like "to commit theft". Theft is defined as "the felonious taking and removing of personal property with intent to deprive the rightful owner of it."
You can steal a car, or steal something more abstract like liberty, or an election -- but in all cases, the victim is deprived of the item stolen. Even when you steal a base in baseball, the opposing team "gave up a base", right?
There's no definition of "steal" that says anything about duplicating and redistributing someone's property.
Don't muddy the issue of copyright violations with misused, inappropriate words.
The pre-existing requirement is that DNS ownership information must be *valid*, i.e., you have to provide an actual address, phone number, and email through which you may be contacted. This could be the address of a company that will forward messages to you and protect your privacy.
.us domains is that the DNS info be *non-private* -- i.e., it has to be YOUR information, not the info of a redirector.
The new requirement for
There are lots of services out there that will provide redirection services for you (GoDaddy, for one). Law enforcement can still easily get your actual information if they have a legal reason for it, but the wackos who feel you deserve to die because you're pro-abortion, or that violent ex-husband who's hunting you, or Big Brother who knows you're not doing anything *illegal* but would like to keep an eye on you just in case CAN NOT see your actual address and phone number.
This change they made will mean that all of those people *can* see your actual address and phone number. Anyone in the public can.
Personally, my sites are all pretty boring (so I don't have private registrations), but I have no trouble at all understanding the need.
You might run it by other people in the same boat at smallbizgeeks.com. Someone there is probably fighting with the same thing.
My thoughts:
The most common reaction is to just sign the contracts, and ignore them. The companies you are working will probably never do anything, even if you are technically breaking conditions in the fine print. This will probably work... but of course you do run the risk of being really screwed if a company decides to come after you because of some percieved danger to them. Not all parts of the contract are enforceable, but some are, and all parts are valid enough to get you into an expensive court battle.
If you can't afford to lose any clients, you might have to take this risk for a while. You're not in the strongest position -- they can probably find someone who will be willing to sign away their firstborn for the work.
Hopefully, you can afford to skip a few contracts -- and you can give them a revised version of the contract that you *are* willing to sign. This means you write in or attach the changes, and get the person hiring you to sign off on the changes.
In most cases, they *are* just using a boilerplate agreement, and don't even know what's in it. Just treat modifications to the contract as a standard part of the deal.
...and people who are totally innocent of any kind of theft (virtual or otherwise) are killed over *much* less money, every day. For example (quick google...), $15.
Yes, it's stupid to kill someone over a virtual sword... just like it's stupid to kill someone over practically anything. But it's *very* easy to understand why the guy might have been furious enough to do something stupid. He was stabbing someone who intentionally ripped him off, and made a lot of money out of it. It's pretty easy to understand why he was mad -- it's not a real sword, but that sure is real money, real entertainment value, and probably a huge time investment getting the sword in the first place that were lost in an instant.
Virtual worlds are not my cup of tea... but I can imagine the feeling of not having any backups of my hobby programming work for 3 months, foolishly lending my computer to a friend for a day... and finding that he'd sold it. I'm not saying I'd start stabbing... but it wouldn't be the computer value I'd care about. Are you going to tell me all that work is only "virtual" property, and I shouldn't worry about it?
...but you can't pre-order, so this is my assumption that the Tiger price will be the same as the (currently shown) 10.3 price.
I guess this is good, except I'm running flash click to play in Firefox, and have JavaScript pretty pared down.
Me too -- and it sure plays hell with sIFR. It detects that I don't have Flash activated, so it displays the CSS-rendered text. Then I click the Flash box and see the sIFR-rendered text, also.
Personally, I don't think it's the fix to browser fonts. Clever hack, yes. Solution, no.
I do have the feeling we're not far off, though. Actually, here's one way you could do it -- generate a gif for each word, with the "alt" tag being the actual text. Then highlighting works, cut and paste works (cut and paste the Right/Left graphics from Yahoo driving directions if you don't believe me)... it's just slow to load the page and render, and the user is screwed if they want to resize or set their own stylesheet.
I feel like there are a lot of pieces lying around, but no full solution yet. We may just need universally-supported, load/render on-the-fly fonts... someday.
You mentioned that assertions are valuable in large applications, but then you talk about IE vs. Mozilla and debugging JavaScript -- that's not assertions at all; that's error-handling.
Any browser takes HTML, JavaScript, CSS, etc. as user input -- as such, it could be *anything*, and the application must parse it safely. Handling errors in this input should never involve assertions, though, and assertions should always be turned off before distribution, because they are by definition a very unpleasant way to handle errors.
If you're taking a "design by contract" approach, you basically define the "contract" for each method with your assertions. If there's no sensible value your method foo() can return if the argument is null, you make that part of the "contract" with code that calls method foo(). When another programmer screws up and passes in null, it's instantly obvious to both of you who made the mistake, and how to fix it.
Without the contract (which ideally will be automatically documented), the other programmer has to guess what will happen if he passes in null. Suppose you just return a -1, or 0, or null result when foo() gets useless input. The program will keep working -- but that's very bad, because it could hide a serious bug (which might go out in the release), and make it very difficult to track down later.
Assertions make violating a method contract a fatal error -- which can often not only make it easier to avoid bugs, but when they do happen they are usually noticed so quickly that the offending code won't even get checked in.
Watch as AOL and MSN/Hotmail now mark IBM as a spammer...
How much spam do you get that's actually sent from AOL and Hotmail servers? Sure, you see joe jobs all the time with a reply-to address on one of these servers... but actual spam routed through them? Not much. They've done a decent job cracking down on it (it's in their own best interest, even without IBM retaliation in the picture).
It wouldn't be much use to attack the server the mail "pretends" it comes from. That's not what they're doing -- the vast majority of IBM's targets are going to be actual spammer-owned servers, open relays, and zombies.