Solving the /etc Situation? 293
mrfibbi asks: "/etc is a mess, plain and simple. Each program has its own (incompatible) config file format and the naming scheme/hierarchy is left almost solely to the author. Furthermore, package updates are a mess, either choosing to replace the entire config file, reject any updated versions (which leads to inconsistencies), or, as is the case with etc-update, asking the user to manually merge the files, which takes forever after a big update. We've revamped /dev with udev, but we've still failed to come up with a universal, duct-tape-free solution for the problem. Though solutions exist, there has been little or no adoption, either due to a personal dislike for the idea or API, or just an indifference to the problem. Should we work toward migrating to an Elektra-like system? Something else? Or do most simply find it not worth the trouble?"
I got an ... _angle_ (Score:5, Funny)
Re:I got an ... _angle_ (Score:3, Insightful)
Re:I got an ... _angle_ (Score:2)
Re:I got an ... _angle_ (Score:2)
Re:I got an ... _angle_ (Score:2)
Re:I got an ... _angle_ (Score:2)
No, they [gnome.org] beat you to it.
Re:I got an ... _angle_ (Score:3, Insightful)
So, we make it a nicely-formatted XML text file, obviously.
Each user should be able to access only their portion of the file.
Each application can access only their portion of the file, and are _signed_ (by the system) as to what changed what and when.
The amount of changes backed-up could be left to the user or sysad when the file is changed
Re:I got an ... _angle_ (Score:2)
Re:I got an ... _angle_ (Score:3, Insightful)
And do you know how disorganized a single file can get? Much more than a single directory, that's for sure. I like having a separate config file for things because file system operations are so much easier to handle than text editing alone.
Some of you might find
Re:I got an ... _angle_ (Score:3, Informative)
Ever wonder what that NTUSER.DAT file in your home directory is?
Re:I got an ... _angle_ (Score:2)
Each user should be able to access only their portion of the file.
he is implying that everything is kept in the central registry, when clearly this should not be. Such things also require semantics that are only in Reiser4.
Re:I got an ... _angle_ (Score:4, Informative)
Data in the registry is stored in hives mounted at various places in the registry's hierarchy. The registry's root is a key named \REGISTRY in the Object Manager [windowsitpro.com]'s namespace. Win32 confuses things a little by renaming \REGISTRY\MACHINE to HKEY_LOCAL_MACHINE and \REGISTRY\USER to HKEY_USERS, and providing some pseudo keys, like for the current user, but the idea is the same. The RegLoadKey [microsoft.com], RegUnLoadKey [microsoft.com] and RegSaveKey [microsoft.com] functions can be used to dynamically mount, unmount and copy hives in the registry. The key \REGISTRY\MACHINE\SYSTEM\CurrentControlSet\Contro
What I'm trying to say is that the registry is no more centralized than the VFS is in Linux. The registry consists of various hives mounted at different locations, just like the VFS consists of various filesystems mounted at different locations.
As for messyness, is this due to the structure of the registry itself, or Microsoft's usage of it: do you really think that if Windows used an
Personally, I don't think the layout is all that bad.
Re:I got an ... _angle_ (Score:4, Insightful)
When it comes down to it, I would prefer some heirarchal system. I think the habit of some apps (like Apache) having their conf files in a subdirectory of /etc might be a good way to go.
Re:I got an ... _angle_ (Score:4, Insightful)
Re:I got an ... _angle_ (Score:2)
Re:I got an ... _angle_ (Score:2)
Any centalized method should have that, plus strict usage methods.
Re:I got an ... _angle_ (Score:5, Insightful)
You are on crack. Seriously cheap crack. There are so many problems with your idea I can't even figure out where to start.
One badass file that everything clamours to get access to, even through a well defined API is going to be hell. Contention abounds. A bug can kill the entire system configuration. And then you throw the saviour of the digital world into it: XML. Why don't you just make it a binary file and have every single problem the Win32 registry has.
A unified configuration scheme is a great idea. XML really isn't IMO the solution, and one big badass file is certainly the wrong way to go about it.
Re:I got an ... _angle_ (Score:2)
Do the KDA and Gnome people have any insight? How do they make people conform to their standards?
All that can, I guess, be done is for someone to implement a registry framework (including lots of tools to manipulate it for people, and a dev kit to make it trivial to build into you
Re:I got an ... _angle_ (Score:2)
Re:I got an ... _angle_ (Score:2)
How is the registry non-secure? Registry keys have the same privelage options as items in the filesystem under Windows.
Re:I got an ... _angle_ (Score:3, Insightful)
Uhm, are you joking? What you describe has already been invented, it's called "the filesystem".
So, we make it a nicely-formatted XML text file, obviously.
This is the "joke" part. Let's ignore it.
Each user should be able to access only their portion of the file.
Unix filesystem permissions? Check.
Each application can access only their portion of the file,
Open only the files you need? Check.
and are _signed_ (by the system) as to what changed what and when.
Not 100% sure what you mean (ho
Re:I got an ... _angle_ (Score:2)
Congrats! Great minds indeed think alike. You've just re-invented Elektra. Read the original article. (-: Seriously! Go read it! You'll laugh at how similar Elektra is.
The only exception is that it might be nice to have XML metadata throughout the hierarchy for optional type-checking, etc. by automated tools.
Re:I got an ... _angle_ (Score:2, Interesting)
Re:I got an ... _angle_ (Score:2)
This would require a bunch of new software and a config daemon running all the time. This daemon would be an additional single point of failure or possible attack vector. It would also eliminate the possibility of manual repair should something go completely awry.
The Elektra folks already though about the whole XML approach and they've described quite nicely why it isn't such a
Re:I got an ... _angle_ (Score:3, Interesting)
How is the registry "non-secure" and "non-manageable" ?
It can be remotely edited, or (much preferably) modified via Group Policy for centralised system configuration.
Its "locations" and "structure" are well defined.
Access is restricted down to the key level by per-user ACLs.
It's transactional.
A user's personal registry settings are stored
Re:I got an ... _angle_ (Score:3, Interesting)
Simple (Score:3, Insightful)
&
should do it, I'd have thought. Then restrict it to a tree structure only under there and everybody should be happy.
A simple request (Score:3, Insightful)
I'd be very grateful for nothing more than a README file, in
Re:A simple request (Score:4, Insightful)
Re:A simple request (Score:3, Insightful)
I don't see the problem with the man pages. Except when they are non-obvious. But anything that simply doesn't have one should be filed as a bug IMHO.
Re:A simple request (Score:4, Insightful)
Re:A simple request (Score:2)
A GUI admin interface with all options, possible values, descriptions, and examples sourced from XML meta-data is even better.
Elektra now! (:
http://elektra.sf.net
Re:A simple request (Score:2)
try this out for size:
'man -k foo'
and then try these:
Re:A simple request (Score:3, Informative)
I use Postfix in preference to Sendmail on every machine I have control over, and it hasn't reduced my "angst" any.
I use et al (Score:5, Funny)
so.. clearing the mess.. (Score:4, Interesting)
wouldn't it be actually easier to get them to place stuff in
because going over to elektra seems actually more work. even elektra's web page admits.. "It is much more an agreement then a piece of software. Relation is 99% to 1%.".
do I have a problem with
Re:so.. clearing the mess.. (Score:3, Insightful)
Elektra-style configuration could easily be phased in over time. That's part of the beauty and simplicity of it.
wouldn't it be actually easier to get them to place stuff in
It wouldn't solve the problem -- which is that it takes too much time and effort to administer a system using today's
This is just how OSS is... (Score:5, Interesting)
Re:This is just how OSS is... (Score:2)
Here the users have the choice between having a messy architecture.
OSS is about having to deal with a constant lack of consistency
Re:This is just how OSS is... (Score:4, Insightful)
OSS is about choices. But not all choices bring value to the community. As a long time Linux admin, I can tell you that peoples' different ideas on how apps should be configured does NOT bring any value whatsoever to Open Source. It does quite the opposite. We absolutely must find a compromise and bring sanity to the situation.
So far, Elektra is the best compromise. It doesn't require any new tools. It doesn't require any drastic changes in most software. It doesn't create any single points of failure. It retains the human readable and human editable nature of
Elektra + XML meta-data now! (:
I have the answer (Score:4, Funny)
--
<runs_away type="duck" reason="run forest, run !"/>
Re:I have the answer (Score:3, Interesting)
Re:I have the answer (Score:2)
It's an improvement, but Elektra plus optional XML meta-data is much more powerful and flexible. Forget new APIs and use our trusty filesystems instead.. it makes perfect sense. Seriously.. head over to http://elektra.sf.net and read all about it! (:
How about changing the GPL? (Score:3, Funny)
Seriously though. The best way would be to set up a standard and then begin to push the agenda across the linux distributions asking them to ask the developers to abide by the standard.
Another offbeat solution is that: (You can have a kernel module which reads the program files and if not in the correct format will tell the user it is wrong and therefore it will not run the binary. This would get users to 1. hack a solution or hopefully 2. complain to the developers to fix the problem.)
Or maybe make programs use a specific installer which does this...
Or you could chmod all the other directories to prohibit the programs from writing someplace else...
Re:How about changing the GPL? (Score:2, Interesting)
Comment removed (Score:5, Insightful)
Re:Messes are inevitable (Score:5, Informative)
What's the conceptual differences between
and except that the latter can be browsed and edited with any editor that understands XML (as opposed to only Vim with the file-format-specific highlighter), can be deterministically validated by generic tools, and doesn't require the program's author to implement his own configuration file parser?XML isn't a perfect fit everywhere, but /etc is one of the places I think it works brilliantly.
Re:Messes are inevitable (Score:5, Insightful)
Re:Messes are inevitable (Score:3, Insightful)
Re:Messes are inevitable (Score:2)
Now one thing you must consider, however, is that XML meta-data would be a good thing. It would allow you to edit your flat files in an Elektra hierarchy any way you wish, but it would also allow for rich, self-describing config trees easily managable with a rich GUI admin tools.
Yuch (Score:2)
If you want to change /etc you are going to have to convince vi or even ed users like me. xml ain't gonna do it. We use vi because emacs takes to many keypresses to start. We are not going to type the variable name twice. No way. Try again.
/etc is a mess wich could first be slightly cleaned by moving every config file into a subdi
Re:Yuch (Score:2)
I fully agree. Head on over to Elektra's website, http://elektra.sf.net, and ponder the alternative of breaking configuration down into a standard file hierarchy much like
And it would be trivial to re-combine everything into a single list for rapid text editing.. just traverse the tree. I'll bet an editor for this would be mere weekend project in Perl.
Elektra + optional XML me
Re:Messes are inevitable (Score:5, Insightful)
The XML version is harder to read than the
It is also harder to edit using command-line tools. It is harder to edit with ANY common unix tool, actually. You *must* use editors that understand XML (do you have editors like that on every machine by default? And no, syntax highlighting doesn't exactly count).
How do you diff/merge? How do you push out changes to *some* of the values to your farm of 100 machines? Remember, your XML file can look like this too, and still be equivalent: (the extra spaces here and there are
Say goodbye to the entire arsenal of simple well-established unix text-munging tools. Say hello to multi-megabyte XML parsers, just to slurp up key/value pairs.
XML is definitely NOT what I'd want to see on my machines. Especially ones that are meant to be reliable.
Here's how I would write that hypothetical program. I'd create a directory
Want to quickly double-check a setting? Use grep, find, a GUI tool, whatever you want. NEVER underestimate the power of line-oriented text files. Searching XML with grep is a nightmare.
Am I just showing off my 'leet command line skeelz here? No I'm showing how simple and flexible this scheme is. It's pretty hard to make the configs unparseable or inconsistent. They can be automated, or edited with vim, or whatever. Heck, in your XML examples, you have to type each tag *twice* (open/close)! Yeesh. That doubles the chance of mistakes, right there.
Re:Messes are inevitable (Score:4, Insightful)
Hahahaha!
You might not be able to see how, but thanks to your example, the rest of us have had an excellent demonstration.
Re:Messes are inevitable (Score:2)
Re:Messes are inevitable (Score:2)
Re:Messes are inevitable (Score:3, Interesting)
Here's what he says about XML files
The most serious problem with XML is that it doesn't play well with traditional Unix tools. Software that wants to read an XML format needs an XML parser; this means bulky, complicated programs. Also, XML is itself rather bulky; it can be difficult to see the data amidst all the markup.
Re:Messes are inevitable (Score:2)
I don't know how everyone got off on this silly XML tangent. Head over to http://elektra.sf.net to find a Unix-admin friendly alternative to
Elektra + optional XML meta-data now!
Re:Messes are inevitable (Score:2)
It works. It's far better than Windows registry. But it can be improved and this is what the Elektra project mentioned in the topic is all about. Unfortunately, it appears that nobody posting to this thread has actually read about the idea. (as usual.. skip the article and jump into a flamewar) Everyone just assumes the only alternative to
Not really sure this is that big of a problem (Score:2)
make && make install
Don't get me wrong, I think there should probably be a "conf" directory in addition to an "etc" directory, but hey, if all packages pertaining to kerberos are in
Besides, most people don't follow conventions anyway, how much stuff is in
Re:Not really sure this is that big of a problem (Score:2)
I think you have identified the source of the problem.
Quips aside, When I was a boy the creator of the OS defined what went into
People have forgotten, never knew, or just don't care about stuff like that anymore. We all pay the price. Recently, I downloaded an OSS binary package (with
Re:Not really sure this is that big of a problem (Score:2)
One idea, no really (Score:2, Interesting)
"xtransetc" build a navigatiable page set from the files, allow you to hop around quickly and remotely.
"genetc" fills the dir from the xml files, as you've tweaked it (with comments
Switch OS's (Score:2)
Re:Switch OS's (Score:2)
Re:Switch OS's (Score:2)
The good, the bad, and the ugly (Score:4, Interesting)
The real problem is that the user doesn't automatically know how to correlate a process, configuration file, startup script, etc., and it affects more than just
1) Printing services are managed by CUPS.
2) To start and stop printing services, I need to run
3) If that doesn't work properly, the process to kill is named cupsd.
4) The config file for specific printers for CUPS is
5) The config file for the cups service as a whole is
6) To manage most things about CUPS (though not browsing and sharing), I don't really want to touch the files in
Just for kicks, let's consider the same situation under MacOS X (10.3):
1) I can control pretty much everything about printing services (including browsing and sharing) from the Print & Fax section of the System Preferences
2) If I really need to mess with the config files, they are in
3) If I really need to manually start and stop printing services I use
4) If I really need to use the web interface to CUPS, it is still at http://localhost:631/
The really important thing here is that on a Mac, I don't even need to know that printing is handled by CUPS. The down side is that on any *nix, unlike Windows, I don't have a way of seeing all the services my machine is providing (to itself or the net). Of course, under Windows it's pretty hard to tell what a service is really for, or how to configure it. When you get right down to it, each system has some good ideas, but none of them have it right.
I want a system where I can get a list of running services (not just all processes), the ports on which they are listening (I don't care if they are TCP, UDP, Unix domain, whatever passes for IPC on Windows, or even Mach ports), and be able to trivially turn a service on, or off, or configure it with a simple commandline or a click of the mouse.
Give me the Windows services manager (with a console equivalent) with the ability to see through what interfaces (e.g. ports) that service is provided, the ability to configure when and how it is started (e.g. at which runlevel), the ability to configure it directly from there (e.g. bring up a custom configurator, a web browser with the appropriate URL, or a text editor on the right files with a double-click in the list). I don't care where the configuration is on disk (though this better integrate well with backup software), nor how it's stored (though there had better be a human-readable text format that can be exported and imported, if necessary).
Furthermore, there should be a separation of default configuration of user applications and configuration of services. Why does
Re:The good, the bad, and the ugly (Score:2)
I want a system where I can get a list of running services (not just all processes), the ports on which they are listening (I don't care if they are TCP, UDP, Unix domain, whatever passes for IPC on Windows, or even Mach ports), and be able to trivially turn a service on, or off, or configure it with a simple commandline or a click of the mouse.
SuSE Yast does all this.
Give me the Windows services manager (with a console equivalent) with the ability to see through what interfaces (e.g. ports) that ser
Re:The good, the bad, and the ugly (Score:2, Informative)
Are you aware of netstat -anp as root?
chkconfig fulfills a lot of your later wants too.
I'm happy using those tools, if you want to write a front end UI, feel fre
Re:The good, the bad, and the ugly (Score:3, Insightful)
gobolinux (Score:3, Interesting)
I am not clueless or Myths and misconceptions about the design of GoboLinux [gobolinux.org]
GoboHide: surviving aside the legacy tree [gobolinux.org]
Turn it into AIX? (Score:2)
All that is the windowsizeation of unix. The whole mess of
The real mess is the difference between
Proper hier structures dictate that apps installed as a part
What's the big deal? (Score:2)
oh wait...that only works if the user knows what's going on with the system...I'd hate to be an administrator in charge of many computers
as usual, complexity is the problem (Score:4, Insightful)
* The config files are way too complex NOW, even without XML. Everybody invents pointless file formats. For instance if you need a flag for a program, just use the abscence or presence of a file in a directory in the filesystem! Don't create a format, write a parser, deal with error checking, etc, etc, just to set a damn flag. Another advantage to using the filesystem as a database (or "registry" if you prefer) is that it becomes super-easy to automate. Automation, simplicity, and guaranteed correctness are GOOD things.
Something to think about: your filesystem is a key/value database, for example "/etc/hostname" is a key, and the contents of that file is the value. There, you don't have to write a parser or a new config file format. Use what's already there.
I remember when Red Hat and other distros started setting up Apache (and other programs) so that they read extra config files out of a directory, instead of trying to automate in-place edits using sed or something. Suddenly everything got 10x easier. Need to install a new config? Just link or copy to the directory.
Taking this to the logical conclusion, you have DJB's software (qmail, djb-dns, etc). Ultra-minimal config using only environment variables or a few line-oriented files. Very flexible, easy to automate, updates can be atomic, merges/updates can done with ssh/rsync, and so forth. Configs can be placed anywhere you want, not just in a special spot in
Gentoo is on the right track in this department. They use filesystem-based configs for some things (for instance the bash-completion package can be configured by linking things into a directory).
* If you absolutely need a complex config, use a shell script that sets environment variables. Many distros (BSD, gentoo again) also use configs that are shell scripts. I.e. the config is just a script that sets some variables. If you want, you can add some code in the script to do calculations or have other logic. This is very nice and flexible. And you don't have to write a new parser, you can assume
* Merging updates: this is impossible to automate. This is the same problem as branching/merging in a version control system. The best thing we can do is 1) KEEP THE CONFIGS SIMPLE as mentioned above 2) use version control to track changes and assist with the merge and 3) again, keep it simple! (Imagine what a nightmare XML would be for merging, by the way). You as an admin should know how to merge the configs, and the machine should make it as simple as possible.
Again Gentoo is on the right track here too. It makes it easy for you to diff/merge your new configs, and can even keep old revisions in version control with RCS.
* The name of the directory (/etc) is bad, it should be
So in conclusion,
And please, no XML!
Re:as usual, complexity is the problem (Score:2)
Filesystems are designed to store things on disk, they are not meant to efficiently store and retrieve (key, value) pairs. That is what a database is for. Databases also have to deal with disk storage, and they do that through the filesystem in an intelligent way. However, their functionality is WAY more complicated than simply makinga file for each key/value pair.
Finally, as a bus
Re:as usual, complexity is the problem (Score:2)
But how would you design Apache's config format to be simple and still retain the same amount of flexibility?
Linux turns newbies into programmers (Score:3, Interesting)
Maybe a naming standard would be more appropriate. A solution like Windows Registry would give me nightmares. Have you ever dealt with a corrupt registry on a system?
I say keep
Re:Linux turns newbies into programmers (Score:2)
/etc is a mess? (Score:2, Insightful)
Very organized, consistent, and above all easy to understand.
Partially fine as it is (Score:2)
Really a problem? (Score:2)
For most services, a simple cut and dry config file is all that is really needed. This has worked for many years, and most of the problem can be solved by having good manual pages for each of the files (see OpenBSD for good man pages).
For the few problems that need a more complex solution, then those can be taken on a case-by-case basis. For example, Sun revamped the whole init process with SMF, replacing many separate files and directories with a few command line tools. Of course, there is compatibilit
Why it will continue to be a mess. (Score:2)
Diversity is fine... (Score:2)
I don't have an issue with multiple file formats, like another poster said, find and grep do the job quite nicely. However, what I don't like is that there is no history of modifications. No single way to undo any modification.
My proposal is to leave format of
NO XML! (Score:2)
Re:NO XML! (Score:3, Interesting)
Please enumerate them. I recommend something like
<ol>
<li>first</li>
<li>second</li>
<li> t hird</li>
</ol>
Remember, there are some tiny programs that need to access files in
It's a shlib. It's in memory already. Get over it.
Or do you want some dependency on an XML library in
Mac OSX Solution (Score:2)
Use the filesystem! (Score:5, Insightful)
It's easy: make a file for each key and put the literal value (not encrypted or encoded or anything) into the file. Want the "registry key" foo/bar/baz? Look in ~/configuration/foo/bar/baz, and if it is no there look in
The filesystem already supports a totally arbitrary name hierarchy, and the data is allowed to be blocks of bytes of arbitrary size. YOU DO NOT NEED ANYTHING ELSE!
Comments could be supported by renaming the file baz to baz.comment. You could also document the expected structure of each directory with a
Elektra is close, but the files are not raw data.
I don't understand why this solution is not absolutely obvious to everybody. What is the problem? Why is anybody proposing anything other than this?
Re:Use the filesystem! (Score:3)
Except, of course, the requirement that may no longer use any old file system. When you use one inode per key, you're going to quickly run out of inodes. Especially when you've made your root filesystem tiny. You can, of course, use a really small inode size for the root filesystem, but that's going to affect everything else in the filesystem. To avoid wasting huge amounts of space, you're going to have to make your inodes ridiculously tiny. And even after I do that, what's t
Re:Use the filesystem! (Score:3, Insightful)
I don't understand why this solution is not absolutely obvious to everybody. What is the problem? Why is anybody proposing anything other than this?
Sounds interesting, but editing a program's configuration would be a royal pain in the ass with this system. Right now, I can open the conf file, browse through it, read the commentaries and change what needs to be changed. With your proposal, I would have to open a new file for each setting, plus one for the commentary. Unless, of course, there is a special
The key is APIs (Score:2)
Then you can make some simple command-line tools would make it easy
Koan (Score:3, Funny)
A master notices his young apprentice in a state of obvious distress. "What troubles you, my apprentice" asks the master. The apprentice replies "I am fed up with the mess that is /etc. There are dozens of file formats, all of them incompatible, and most of them are difficult to apply changes to automatically".
The master calmly asks the apprentice, "How would you solve this problem?" The apprentice thinks for a moment and then excitedly blurts "I know, I shall invent a new configuration file format that will be in all ways superior to the existing formats. Every application will use my format and there will no longer be any problem".
The master quickly strikes the apprentice on the head with his bamboo discipline rod. "You fool, then I would have to support yet another incompatible file format".
And the apprentice was enlightened.
Why I don't have a problem with /etc (Score:4, Insightful)
I fail to see how a 'common format' is going to help anyone - it's not the format that causes head-scratching, it's working out how to achieve what one wants using the options available.
Because of the simple text file nature of /etc one can easily place the directory into some sort of revision control system (RCS, CVS and the like), making tracking of changes extremely simple.
My view... (Score:4, Insightful)
Re:A really bad idea (Score:2)
I've seen more than a few computers where a bad block on the hard drive mapped back to the registry. At that point you have to reinstall windows and all your programs. It would be much easier to reinstall windows with your old programs/icons/preferences in place if each program kept thier settings in an Ini.
Linux makes this easy. Tar $home, install new distribution. Add user, extract home.tgz. All icons, preferences etc. restore
Re:A really bad idea (Score:2)
Re:A really bad idea (Score:2)
A registry != the Windows registry. None of the standard Windows registry complaints apply to GConf, for example (not that it doesn't have faults of its own). If you want to argue against the general concept of registries, anecdotes about bad experiences with the Windows registry aren't relevant.
Re:A really bad idea (Score:2)
It's not binary (so not easily corrupted) and it's pretty much fully documented.
The main point of my first post is that centralizing all your config data into one tool doesn't add any value.
Centralizing config data does add value. It saves developers from having to write a seperate, potentially buggy, config parser for every project, it allows administrators to easily manage system defaults and control what settings users are able to change, and it ena
Re:A really bad idea (Score:2)
A registry is not any easier or harder to backup and restore than /etc, so I don't think it's really an issue.
You didn't answer my comment about how one should use the registry. The problem isn't binary/non-binary, it's "am I go
Re:Could be a job for diff and patch... (Score:2, Interesting)
The problem I see is the same sort of thing that CVS fails at, logical inconsistancy.
Suppose I have added foo=off at the top of the file, and the new config adds a default for foo, foo=on at the bottom. I'm sure going to be shocked when I'm exploited through the foo unicode vulnerability I didn't know I was subject to!
You get the idea.
Re:I have a solution: (Score:2)