1) Some enterprising math/CS graduate student could probably try a drop-in replacement for some simple wavelet transformations instead of DCT. They might even create a block-level estimater that picks the correct wavelet/DCT kernel to use. I suspect you wouldn't have to touch too many other parts of it.
2) Arithmetic encoding is patented by Samsung. (gak!) And it's not like it's hard or anything. Huffman coding was shown to approach arithmetic encoding efficiency as the number of symbols increases, which usually means that distinction is not something to cry about. So we can deal with huffman vs. arithmetic coding for now until the patents expire, at which point everyone (info-zip, IJG, bz2, xiph.org) will switch to it to gain that extra 1-2%.
But you have to admit, the FFMPEG project guys are pretty fucking hardcore.
I give them all my love, despite the shaky legality of their work. And I will hoard their releases for various ISO MPEG standards as I have DeCSS for years to come so I can play with my oh-so-blasphemously encoded and decoded media.
Ogg Vorbis supports arbitrarily many channels, as does AAC. Oh, and then thre's AC3, which natively understands how to optimally store 5.1 channels. Too little, too late, and completely irrelevant.
I don't think you can just boot a stock copy of Solaris on any SPARC machine without a thin layer of virtualization glue.
In any case, this technology doesn't remove that need (they mention the need for a "Hyper-OS" and small modifications to the host operating system)... it just pushes a lot of the common stuff (simulating interrupts, catching exceptions) into the hardware.
Full dynamic range of the eye (across all light levels) is 10^9 which is just a bit less than 2^30. The scene-relative dynamic range of the eye (single light level) is 3 * 10 ^ 4, which is less than 2 ^ 15.
The eye can discern at most 200 distinct luminence levels, with the smallest delta L'/L = 1.01.
Considering that if we choose 2^32 as the channel bit depth, if choose a dumb linear encoding scheme with a 24/8 fixed float format, and 256 as the absolute darkest perceived color, we get a minumum delta of 257/256, which is less than 1.01. The dynamic range of 2^23 rests comfortably inbetween the scene-balanced and global illumination limits of the human eye. For film work, scene-balanced is all that matters (unless you've got a REALLY powerful projector or wanted to preserve actual lighting conditions)... so I think that's more than sufficient.
And if you choose a non-linear floating point scheme, well the IEEE format (21 bit mantissa, 11 bit exponent) is WAY more than necessary to surpass the human eye's dynamic range.
So no matter how you look at it, 2^32 is way more than enough bits to encode lightness values in an umabigous, lifelike way.
128-bits is MORE than enough bitspace to encode a 3-channel color scheme (whether RGB, CIEL*a*b, what-have-you).
So clearly, the problem in the false look is in the software and model deficiencies, not something as simple as a data format. Believe me, pixel formats and how they relate to the eye have been analyzed to death, and they are overspecified to eliminate this possibility.
the game designer and artists can't possibly be expected to design every model and room down to the last exposed nail and fingerprint. There's a lot of potential detail to notice that must be added but has _no bearing_ on gameplay at all (which is the point, right?)
So somebody needs to come up with a way to automate the randomization of object models, textures, etc. in such a fashion that all that data doesn't have to be stored, but can be generated at run time to within defined limits. The key is making sure it looks realistic but uninteresting so it doesn't interfere nor interact with the scripted gameplay. And it has to do this in realtime...
Yes, and the answer comes straight from num theory
on
Everything and More
·
· Score: 1
The argument goes kind of like this:
All real numbers are the limit of two sets of numbers, the set of rational numbers for which the solution x to an expression E is definitely lesser than the set members, and the set of rational numbers for which x is definitely greater. This pair of "least upper" and "greatest lower" bounds is identical to the real number "solution" to E.
For example, suppose the number in question is the square root of two. The sets of numbers that you wish to consider are all q in Q such that q x, where x satisfies x * x = 2. We can drop any q or q' replaced for x and trivially see which set it belongs to (lesser or greater). In each case, we are guaranteed a least member of q', and greatest member of q, even if the sets are infinite (!) and we call them q_l and q_r. (Proof: there are an infinite number of unique rationals between any distinct rationals a and b, but every countably infinite set contains a minimum or maximally valued element) The pair q_l and q_r are the real number sqrt(2).
In the case of 0.99999... = 1.00000 we could say we wish to solve x * x = 1, and let q_l be the sum of fractions 9/10 + 9/100 + 9/1000... (which is itself a fraction), and q_r be the sum of fractions 1 + 0/10 + 0/100 + 0/1000... and you can prove that there are no other q strictly greater than q_l, nor q' strictly lesser than q_r that satisfy the expression x * x = 1. (Go ahead, try to construct a number that is provably in the set but has a finite difference between itself and that previously greatest member q_l) The proof is an inductive proof (and induction is an axiom of the set used to define this bracket defintion of real numbers).
I may have a few details/terms confused, as this was 4 years ago that we looked at this.
but how they are MADE has vastly been overhauled. You rarely see an engineer with a slide rule anymore. Cars are crashed millions of times virtually before they ever are put on a track. You can send a package halfway across the world for much less than you could 25 years ago.
Business processes have seen the greatest changes in the last 25 years. (All the outsourcing should be a sign that this has been successful; business prcoesses have become fluid and more efficient, although some people would debate on calling it "success")
That's just you showing your age. My parents said the same things about 8 years ago. They constantly say that "this show is just like this other show" and blah blah blah.
Well guess what, I wasn't around 20 years ago. So it's new to me (to borrow a line from NBC). We'll get tired of it, and we'll just end up watching the Price is Right and Wheel of Fortune for kicks.
And our children will relive all the classic TV tales and themes without having to bother us to recount them or break out our AVIs.
Steps for GNOME in Redhat/Mandrake/what-have-you..
on
Fault Tolerant Shell
·
· Score: 1
First, we need to make sure that your configuration file is always "tagged" so that we can make it behave specially no matter how many modifications or forks you make. We'll use MIME types for this purpose.
The easiest way is the most direct: edit the file "/etc/gnome-vfs-mime-magic" with a text editor as root (this is the only time you need root access).
Somewhere near the bottom, add a line like this: 0 [TAB] string [TAB] \#somethingunique [TAB] mime/type
[TAB] indicates you can use as many tabs or spaces to line up the data like the other columns in the file, but it doesn't actually matter to the system. The first part (zero, then "string") indicates that the type tagger should look at the beginning of the file for a string to match. The string that needs to be at the beginning of the file is \#somethingunique, which can be whatever you want, but the first letter should be a comment character for the configuration file format (usually a hash mark "#").
The backslash is necessary to "escape" the hash mark because this gnome-vfs-mime-magic file ALSO uses the hash mark for a comment character, and you need to tell it that you mean for it to look for the hash mark, and not comment the rest of the line out.:-)
The last part, "mime/type" is any MIME type of your choosing. (MIME types are things like text/html, image/jpeg, etc. etc. and are used to uniquely identify file formats). It has to be unique for the application you want to automate. So if it was "Visual Boy Advance", I might choose personal/vba-conf. I'm going to suggest you use the prefix "personal" to let you know that YOU added it for your own use.
Okay, now that you've done that, find the configuration file you want to be able to run by just double clicking.
Add in a line (it has to be the FIRST line) that matches the #somethingunique you chose earlier. Now, whenever the GNOME file browser sees this file, it will detect it as "personal/vba-conf" or whatever instead of the default "text/plain" for text configuration files.
Okay, now open up "File Types and Programs" from your "foot" menu, under Preferences. Click "Add File Type...". Fill in the description, choose a goofy icon, and in the MIME type box, type personal/vba-conf or whatever the new MIME type you're using for these configuration files.
There doesn't seem to be an appropriate Category choice for what we're doing, so I just picked "Misc".
Go all the way down to the Actions section, and go to Program to Run. Type in the full path to the program that uses the configuartion file. Make sure to add any command line options you want, and make the last one be the one that lets you choose a _different_ configuration file. In the case of VisualBoyAdvance, that's the -c option. So I type in:/usr/local/bin/VisualBoyAdvance -c in the box. The system will always add the path of the configuration file as a last option to the program, so that's why you need to end it with the -c or whatever.
If you need a terminal window open to interact with the program or to read error messages, make sure "Run in Terminal" is checked.
When you think you have it straight, hit "OK".
That's it.
Do a ps -ef , and grep for "nautilis". Kill that process, so it restarts the file manager for good measure.
Now whenever you double click the configruation file, it'll call your custom command line with that configuration file as an argument.
You can copy the configuration file, edit it, rename it, move it, whatever, and it'll still launch the program when you double click it.
Only thing you have to watch out for is to make sure you keep that first "magic" line in there. A fresh, virgin configuration file will not have this magic behavior until you add the magic line. Of course, any modified copies you make will.
I've found that a hard drive with 8MB of cache, and a system with 512MB of RAM (all of which ends up as buffer cache) provides more than enough bandwidth for any application that I can use in my humble abode.
Writing to it over NFS/samba is not nearly as fast as local disk, but I use it to primarily to source common data and generally act as a connectivity applicance, not as a data warehouse.
but marked "lift points". You know, portals with hand grips near the base of the unit that are clearly marked (so you don't break it by holding it in the wrong place)
I think there's already a way to implement it using a combination of file type actions and MIME magic. I will post a quick tutorial on how to get it working for you.
Question: what software were you hoping to operate with multiple configuration files in particular? Also, what environment are you using? (KDE, Gnome, CDE, etc. etc.) That way I can tailor the example to your specific situation.
You want a flower or a slotted radiator. Ensure the motherboard layout allows the heatsink oriented so that the openings face towards the I/O plate.
Install a big-ass 120mm, god-like cu. ft per min fan above the IO plate, and mount it with rubber fasteners, if available.
Feel free to use the low-RPM mode of the main cpu fan, because the large case fan will be doing most of the air moving (pulling it across the fins from the northbridge side of the motherboard). You can probably fashion an air hood to ensure the airflow goes only through the CPU heatsink and ditch the main CPU fan, if you're clever.
I'm trying to sleep. Not only do you have to wake up the whole goddamn neighborhood with your obnoxious shit-cars, but you have to pull over and start carrying on about it on my FUCKING LAWN.
We're currently doing experiments monitoring this at work. We want to isolate engine vs. tire vs. transmission noise across various makes and models of cars during ramp up, idle, and braking. It's a fun project involving lots of wireless and embedded tech, with audio, sig proc, and linux thrown in there too to make it interesting.
From what little of the results I've looked at, it's pretty clear that tire noise is dominant during cruise.
...there's only one set of speakers. They use a circuit to electronically subtract the external mic-noise to the analog audio signal before sending it to the voice coils. Hence no need for acoustic preservation of energy, nor superposition of speakers to achieve the desired effect across all audible frequencies.
The whine of the fan is due to vibrations caused by the inefficiency of the particular design, and manufacturing defects in the fan or it's mounting. A "perfect" fan would be silent except for the sound of moving air.
They haven't gotten rid of the whoosh sound yet; canceling out the whine while still leaving the sound of moving air is probably a good sign that air is still moving:-) If the managed to someone completely mask the sound, then I'd start worrying about air flow reduction (although I'd start by moving my head around the fan port first, to see if it's just perceptual)
FreshRPMS/a. is your BEST friend.
I'm 100% serious. And if you're lazy, install yum, point it at FreshRPMs, and "yum mplayer", "yum xine", "yum ogle" away.
That looks vaguely sexual. Sigh.
1) Some enterprising math/CS graduate student could probably try a drop-in replacement for some simple wavelet transformations instead of DCT. They might even create a block-level estimater that picks the correct wavelet/DCT kernel to use. I suspect you wouldn't have to touch too many other parts of it.
2) Arithmetic encoding is patented by Samsung. (gak!) And it's not like it's hard or anything. Huffman coding was shown to approach arithmetic encoding efficiency as the number of symbols increases, which usually means that distinction is not something to cry about. So we can deal with huffman vs. arithmetic coding for now until the patents expire, at which point everyone (info-zip, IJG, bz2, xiph.org) will switch to it to gain that extra 1-2%.
But you have to admit, the FFMPEG project guys are pretty fucking hardcore.
I give them all my love, despite the shaky legality of their work. And I will hoard their releases for various ISO MPEG standards as I have DeCSS for years to come so I can play with my oh-so-blasphemously encoded and decoded media.
Ogg Vorbis supports arbitrarily many channels, as does AAC. Oh, and then thre's AC3, which natively understands how to optimally store 5.1 channels.
Too little, too late, and completely irrelevant.
1) The chip interface to the northrbridge has been improved and will allow it to go "Really Fast".
2) The chip has an intergrated memory controller and/or PCI express bridge/controller ala Opteron.
I don't think you can just boot a stock copy of Solaris on any SPARC machine without a thin layer of virtualization glue.
In any case, this technology doesn't remove that need (they mention the need for a "Hyper-OS" and small modifications to the host operating system)... it just pushes a lot of the common stuff (simulating interrupts, catching exceptions) into the hardware.
You can't remote root a system with no open ports unless the firewall code itself is compromised.
And _that_ I've never heard of (except in the case of BlackICE and ZoneAlarm)
Full dynamic range of the eye (across all light levels) is 10^9 which is just a bit less than 2^30.
The scene-relative dynamic range of the eye (single light level) is 3 * 10 ^ 4, which is less than 2 ^ 15.
The eye can discern at most 200 distinct luminence levels, with the smallest delta L'/L = 1.01.
Considering that if we choose 2^32 as the channel bit depth, if choose a dumb linear encoding scheme with a 24/8 fixed float format, and 256 as the absolute darkest perceived color, we get a minumum delta of 257/256, which is less than 1.01. The dynamic range of 2^23 rests comfortably inbetween the scene-balanced and global illumination limits of the human eye. For film work, scene-balanced is all that matters (unless you've got a REALLY powerful projector or wanted to preserve actual lighting conditions)... so I think that's more than sufficient.
And if you choose a non-linear floating point scheme, well the IEEE format (21 bit mantissa, 11 bit exponent) is WAY more than necessary to surpass the human eye's dynamic range.
So no matter how you look at it, 2^32 is way more than enough bits to encode lightness values in an umabigous, lifelike way.
128-bits is MORE than enough bitspace to encode a 3-channel color scheme (whether RGB, CIEL*a*b, what-have-you).
So clearly, the problem in the false look is in the software and model deficiencies, not something as simple as a data format. Believe me, pixel formats and how they relate to the eye have been analyzed to death, and they are overspecified to eliminate this possibility.
the game designer and artists can't possibly be expected to design every model and room down to the last exposed nail and fingerprint. There's a lot of potential detail to notice that must be added but has _no bearing_ on gameplay at all (which is the point, right?)
So somebody needs to come up with a way to automate the randomization of object models, textures, etc. in such a fashion that all that data doesn't have to be stored, but can be generated at run time to within defined limits. The key is making sure it looks realistic but uninteresting so it doesn't interfere nor interact with the scripted gameplay. And it has to do this in realtime...
The argument goes kind of like this:
... (which is itself a fraction), and q_r be the sum of fractions 1 + 0/10 + 0/100 + 0/1000 ... and you can prove that there are no other q strictly greater than q_l, nor q' strictly lesser than q_r that satisfy the expression x * x = 1. (Go ahead, try to construct a number that is provably in the set but has a finite difference between itself and that previously greatest member q_l)
All real numbers are the limit of two sets of numbers, the set of rational numbers for which the solution x to an expression E is definitely lesser than the set members, and the set of rational numbers for which x is definitely greater. This pair of "least upper" and "greatest lower" bounds is identical to the real number "solution" to E.
For example, suppose the number in question is the square root of two. The sets of numbers that you wish to consider are all q in Q such that q x, where x satisfies x * x = 2. We can drop any q or q' replaced for x and trivially see which set it belongs to (lesser or greater). In each case, we are guaranteed a least member of q', and greatest member of q, even if the sets are infinite (!) and we call them q_l and q_r. (Proof: there are an infinite number of unique rationals between any distinct rationals a and b, but every countably infinite set contains a minimum or maximally valued element) The pair q_l and q_r are the real number sqrt(2).
In the case of 0.99999... = 1.00000 we could say we wish to solve x * x = 1, and let q_l be the sum of fractions 9/10 + 9/100 + 9/1000
The proof is an inductive proof (and induction is an axiom of the set used to define this bracket defintion of real numbers).
I may have a few details/terms confused, as this was 4 years ago that we looked at this.
When software fails to install because it tries to write files all over the disk, I find out before my system gets disorganized (i.e. braindead).
:-)
And it's nice to know no rouge ActiveX Control/Script can play with my registry!
I feel safe enough to turn off System Restore.
but how they are MADE has vastly been overhauled. You rarely see an engineer with a slide rule anymore. Cars are crashed millions of times virtually before they ever are put on a track. You can send a package halfway across the world for much less than you could 25 years ago.
Business processes have seen the greatest changes in the last 25 years. (All the outsourcing should be a sign that this has been successful; business prcoesses have become fluid and more efficient, although some people would debate on calling it "success")
They simply have run out of things to show
That's just you showing your age. My parents said the same things about 8 years ago. They constantly say that "this show is just like this other show" and blah blah blah.
Well guess what, I wasn't around 20 years ago. So it's new to me (to borrow a line from NBC). We'll get tired of it, and we'll just end up watching the Price is Right and Wheel of Fortune for kicks.
And our children will relive all the classic TV tales and themes without having to bother us to recount them or break out our AVIs.
First, we need to make sure that your configuration file is always "tagged" so that we can make it behave specially no matter how many modifications or forks you make.
:-)
/usr/local/bin/VisualBoyAdvance -c
We'll use MIME types for this purpose.
The easiest way is the most direct: edit the file "/etc/gnome-vfs-mime-magic" with a text editor as root (this is the only time you need root access).
Somewhere near the bottom, add a line like this:
0 [TAB] string [TAB] \#somethingunique [TAB] mime/type
[TAB] indicates you can use as many tabs or spaces to line up the data like the other columns in the file, but it doesn't actually matter to the system.
The first part (zero, then "string") indicates that the type tagger should look at the beginning of the file for a string to match. The string that needs to be at the beginning of the file is \#somethingunique, which can be whatever you want, but the first letter should be a comment character for the configuration file format (usually a hash mark "#").
The backslash is necessary to "escape" the hash mark because this gnome-vfs-mime-magic file ALSO uses the hash mark for a comment character, and you need to tell it that you mean for it to look for the hash mark, and not comment the rest of the line out.
The last part, "mime/type" is any MIME type of your choosing. (MIME types are things like text/html, image/jpeg, etc. etc. and are used to uniquely identify file formats).
It has to be unique for the application you want to automate. So if it was "Visual Boy Advance", I might choose personal/vba-conf. I'm going to suggest you use the prefix "personal" to let you know that YOU added it for your own use.
Okay, now that you've done that, find the configuration file you want to be able to run by just double clicking.
Add in a line (it has to be the FIRST line) that matches the #somethingunique you chose earlier. Now, whenever the GNOME file browser sees this file, it will detect it as "personal/vba-conf" or whatever instead of the default "text/plain" for text configuration files.
Okay, now open up "File Types and Programs" from your "foot" menu, under Preferences. Click "Add File Type...". Fill in the description, choose a goofy icon, and in the MIME type box, type personal/vba-conf or whatever the new MIME type you're using for these configuration files.
There doesn't seem to be an appropriate Category choice for what we're doing, so I just picked "Misc".
Go all the way down to the Actions section, and go to Program to Run. Type in the full path to the program that uses the configuartion file. Make sure to add any command line options you want, and make the last one be the one that lets you choose a _different_ configuration file. In the case of VisualBoyAdvance, that's the -c option. So I type in:
in the box. The system will always add the path of the configuration file as a last option to the program, so that's why you need to end it with the -c or whatever.
If you need a terminal window open to interact with the program or to read error messages, make sure "Run in Terminal" is checked.
When you think you have it straight, hit "OK".
That's it.
Do a ps -ef , and grep for "nautilis". Kill that process, so it restarts the file manager for good measure.
Now whenever you double click the configruation file, it'll call your custom command line with that configuration file as an argument.
You can copy the configuration file, edit it, rename it, move it, whatever, and it'll still launch the program when you double click it.
Only thing you have to watch out for is to make sure you keep that first "magic" line in there. A fresh, virgin configuration file will not have this magic behavior until you add the magic line. Of course, any modified copies you make will.
What do you think of that?
I've found that a hard drive with 8MB of cache, and a system with 512MB of RAM (all of which ends up as buffer cache) provides more than enough bandwidth for any application that I can use in my humble abode.
Writing to it over NFS/samba is not nearly as fast as local disk, but I use it to primarily to source common data and generally act as a connectivity applicance, not as a data warehouse.
I assume you have an inverted situation?
because the sales guy in the store doesn't know either (usually), so the guys are less likely to get ripped off in this respect.
I learned this really quick. No matter what the sex, the salesperson still makes things up to sound helpful and push the sale.
but marked "lift points". You know, portals with hand grips near the base of the unit that are clearly marked (so you don't break it by holding it in the wrong place)
I think there's already a way to implement it using a combination of file type actions and MIME magic. I will post a quick tutorial on how to get it working for you.
Question: what software were you hoping to operate with multiple configuration files in particular? Also, what environment are you using? (KDE, Gnome, CDE, etc. etc.) That way I can tailor the example to your specific situation.
You want a flower or a slotted radiator. Ensure the motherboard layout allows the heatsink oriented so that the openings face towards the I/O plate.
Install a big-ass 120mm, god-like cu. ft per min fan above the IO plate, and mount it with rubber fasteners, if available.
Feel free to use the low-RPM mode of the main cpu fan, because the large case fan will be doing most of the air moving (pulling it across the fins from the northbridge side of the motherboard). You can probably fashion an air hood to ensure the airflow goes only through the CPU heatsink and ditch the main CPU fan, if you're clever.
(2x200MHz w/ 512MB of RAM, mind you) with a dual PII400, and then shortly after, a 866E Celeron.
The celeron is the fastest out of all of them. It's also the smallest and quietest.
I'm trying to sleep. Not only do you have to wake up the whole goddamn neighborhood with your obnoxious shit-cars, but you have to pull over and start carrying on about it on my FUCKING LAWN.
GET OFF MY PROPERTY!!!
We're currently doing experiments monitoring this at work. We want to isolate engine vs. tire vs. transmission noise across various makes and models of cars during ramp up, idle, and braking. It's a fun project involving lots of wireless and embedded tech, with audio, sig proc, and linux thrown in there too to make it interesting.
From what little of the results I've looked at, it's pretty clear that tire noise is dominant during cruise.
I've got these behind my house Works wonders.
...there's only one set of speakers. They use a circuit to electronically subtract the external mic-noise to the analog audio signal before sending it to the voice coils. Hence no need for acoustic preservation of energy, nor superposition of speakers to achieve the desired effect across all audible frequencies.
The whine of the fan is due to vibrations caused by the inefficiency of the particular design, and manufacturing defects in the fan or it's mounting. A "perfect" fan would be silent except for the sound of moving air.
:-) If the managed to someone completely mask the sound, then I'd start worrying about air flow reduction (although I'd start by moving my head around the fan port first, to see if it's just perceptual)
They haven't gotten rid of the whoosh sound yet; canceling out the whine while still leaving the sound of moving air is probably a good sign that air is still moving