Consider this though: a pendulum on the scale of a planet swings slowly. This implies two things, first change should be going slow, but all evidence at the moment seems to support that the climate is changing pretty rapidly in the last few decades. It also implies that once we give the pendulum a solid push, it won't be coming back any time soon. It may have lasting repurcussions for centuries to come.
Personally, I'm pretty convinced that humans are having an impact on a global scale, and if not now, it surely will start having a major effect soon... the population just keeps growing and it will definitely reach 10 billion before the end of this century.
There's only so much a planet will be able to support. We're already having a global impact in many areas -- resource depletion, deforestation and practically every undomesticated animal that is human size or larger is in danger of becoming extinct.
So, this is great in situations where you are able to uniquely watermark a copy of something and then give it to a specific person who then you can hold responsible for keeping it secret.
I can imagine the following occuring:
1) I secretly copy and spread some watermarked media from a person I donot like. Person gets his/her life ruined by lawsuits.
2) Whoever is handing out the watermarked copy leaks that same copy elsewhere (accidental, on purpose, does it matter?). Again, some person gets his/her life ruined by lawsuits.
I'd be very careful accepting anything that has been watermarked, infact, it should be in the law that I'm required to be notified that what I'm accepting has been watermarked. It's way too easy to screw me over later, even if I instantly disintegrated the copy they gave me (and probably signed for). Someone else could be spreading it, their system could not be watertight, someone could perhaps forge the watermark (perhaps the very people creating the mark for example... it's not like they're nice people).
The best one is still when Windows complains about a disk being full or a file unreadable when I'm moving 10000 files to another drive -- "Couldn't write file X, Ok." and it aborts the entire operation leaving me to find out what has been copied and where to start over from (not easy when there are many folders and one of them was partially copied).
Being an ex-Amiga user this unfriendly behaviour completely boggles me -- why not offer a "try again" option here? I could delete some files in the mean time and then let the operation continue could I not? Windows does pretend to be a multitasking system right? A user might magically switch to another explorer and delete some files magically making more space available...
I never understood the why behind fading menus, sliding windows, rotating cubes with images, or anything else that could be done instant but is artifically slowed down -- other than for marketing purpose (or eye-candy).
Why don't I like it when a menu "slides" open? It's because I often already know what I want from the menu, and I will subconsciously start to move the mouse roughly in the direction where the item I want will be, while my eyes gather more information to position the mouse exactly over the correct item. If a menu "slides in" or "fades in" or whatever, the feedback I get to position the mouse correctly is delayed (fade in), or even wrong (when sliding in as the item is still moving).
Position is often the thing people remember the best. I don't need to know what most application icons look like, but I do know that a specific program or file icon is somewhere on the top left, or somewhere left halfway down the screen. Windows on my taskbar are exactly the same, I know roughtly where I left the window -- that's why I completely hate stacking of similar windows. I often have multiple browser windows open (even when using Firefox) and I know the "slashdot" window is somewhere on the left or whatever... stacking 5 other windows on that button and then forcing me to read the title to get the correct window is ludicrous -- especially because if I click wrong, I need to repeat the process again (and if I'm lucky the "stacked" order hasn't changed). If I click wrong with all the tasks simply unstacked, I go back with the mouse to the same area, click the wrong one again (so it minimizes) then shift slightly and click the right one. Stacking of similar items makes all of that harder... the sole benefit it has is that I can read (a very small part of) the title on the button (something I never do since I locate the window by knowing where I left it) yet obscures many other titles because they're stacked.
Not all effects are necessarily bad from a usability standpoint. Showing where a minimized window is going might actually be good (if subtle and fast enough). I usually find however that just turning off all animations/slides/fades/transparancy/you-name-it is a far saner default to start from. I even turn off gif animations in my browser... once you get used to the nice static pages without anything flashing or animating 50 times per second you'll really wonder how you could stand all that crap on web pages before...
In your example, the person that placed the copyrighted work on the web server that hosts the work is the infringer.
Actually, that feels the wrong way around. If I make available some copyrighted material on my web server, then die of some mysterious illness, leaving the web server running, then I think that the one downloading the material is the one infringing -- so neither linking to content or making it available is violating copyright.
If I hadn't died, I'm still not the one actively making the copy, technically the copy is being "created" slowly on the downloading side (well technically the thing is copied thousands of times locally, and at every hop (calculating CRC's, moving it to buffers, etc etc.., but that's the digital world... copyright just doesn't work there).
What if I remove the copy then after it was downloaded? I'm sure I can find some music I don't want anymore that I could delete after it was downloaded:)
I strongly suspect AAC has already caught up to MP3 in popularity.
Reality check needed here, AAC has nowhere near the penetration of MP3 just because iTunes uses it as a default. People were ripping CD's and playing MP3's long before iTunes even existed (I think I started in 1995 or so), building HUGE collections of MP3's which were shared by the harddisk load (because downloading an MP3 over the internet still took like 15 minutes using a 56k modem). Even now I hardly encounter AAC's (unless they're encoded into an AVI stream).
As for the story that MP3 infringes on some patents, well it has no impact on how I will use my music. I also seriously doubt AAC will be patent free (or any other audio compression format for that matter), it's just that MP3 is popular right now and it's a nice big target.
I can't help but snicker at your comment. Windows machines need to be restarted for them to be properly updated. Most other systems however just reload the patched software and only restart specific services -- there's no need to do a full restart. As for the need to urgently having to reboot my Linux Servers... I can't really think of a good reason why unless doing a hardware upgrade in which case I'd be on-site anyway.
When I want to know the last time I had a powerfailure at home, I just type:
Excuse me, but marking a drive invalid because of a read failure (that's only temporary because of a drive spinning up) seems absolutely non-sensical to me. How about retrying the read? Surely it should be able to be read correctly again in senseable timeout, like 10 seconds, when the alternative is complete array failure... The second drive never failed, only your software marked it as failed because it doesn't bother to retry the read a few times.
Luckily Linux Software RAID is smarter than that. It won't mark a drive as failed because a sector cannot be read once.. it will retry until a time out is reached. If no drives have failed yet, and the read error is permanent, it will even try to reconstruct the sector and write it back in the hopes that the drive will reallocate it (most drives only reallocate sectors on writes).
Google's idea of "high temperature" however is somewhere around 40 degrees C, and you'll be lucky to get such a low temperature in most desktop PC's, especially models that only bother to cool the CPU with a fan that only kicks in when CPU temperature becomes too high.
In most desktop systems drives can easily push beyond 45 C, and then you WILL see a drastic reduction of hard disk life (most drives are rated for 55 degrees C max). Often enough I see setups where people have packed 2 or 3 hard disks on top of each other in 3,5" bays, often sandwiched above or below a floppy drive. Air flow is minimal. Drives in such a configuration easily go beyond 60 degrees C.
Searches are faster with column-oriented: you access the record file for "Favorite slashdot admin" and look for entries which say "Phred", and then output the list of rows of data which match. Instead of going through the whole database top to bottom for the search, you just search on the one column. If you have 100 columns of data, then you look through 1/100th of the total data in the search. To pull data out, you then have to look at all the column files and index in the right number of records, but that goes relatively quickly.
Assuming your search returned relatively few results. In row orientated databases there is a cut-off point where it becomes more efficient to do a table scan instead of using an index, this is usually when atleast 5-10% of all the rows must be accessed.
With a column orientated database, this cut-off point would be reached far sooner, quite possibly for a 25 column table at just 1/25th the records returned.
Reading the complete table would be a far more frequent occurence in a column orientated database in cases where full records are being requested by applications (which is a common practice in almost all programs that use somekind of Object Relational mapping). A 25 column table with a record size of 2000 bytes from which you select roughly 0.1% of the records for a financial report would mean that in a row orientated database you read 2k of data out of every 2 MB of table on average. With a column orientated setup, you'd read roughly 80 (2000/25) bytes of data out of every 80 kB of "column-table" multiplied 25 times.
Obviously reading 80 bytes of every 80 kB would be immensily slow (hard drives usually read stuff in far larger chunks without any performance impact), so at 0.1% of rows selected you're effectively already doing a full table scan. The row orientated database however will still be able to get some more performance by skipping huge chunks of table.
Also, the column based approach lowers the performance of retrieving a row by its primary key, one of the single most common operations of a database. In a row orientated database this would involve 2 or 3 index accesses plus one to retrieve the entire row. In a column orientated database it would be 2 or 3 index accesses plus one access for every column to retrieve. Retrieving a customer with their address records could easily result in hundreds of extra accesses in such a model.
I'm a bit skeptical if such a database would consistently perform better. It could do well in some cases, but it can do far worse in others.
Buffer overflows may not be the only security problem, but at the moment they are by far the most common security problem. A race condition MIGHT allow you some unauthorized access to certain things.. more likely however, it will just show up as a minor malfunction in the program without any security implications at all.
It certainly won't allow you to execute arbitrary code in for example a Java application -- infact, you'd have to find a bug in the JVM itself or one of the native implementations of basic classes like String to have any chance of that. That is however highly unlikely given the amount of use these core parts of Java see.
Oracle leaves stuff broken and calls it a feature, like treating the empty string as NULL.
Or not providing standard 32-bit/64-bit numerical types which is incredibly annoying and short sighted as it means we now have to make sure that no numbers overflow somehow (either on our side or on Oracle's side, depending on how data is being updated) and cannot be stored safely into an 32 bit integer.
Or imposing stupid limits that no other database imposes, like for example doing 200 INSERTs in a table which has a foreign key constraint, results in Oracle creating 200 "hidden" cursors to check these key constraints, and then has the nerve to complain to my program (that is only doing INSERTs) that I have too many cursors open.
Using the highest transaction isolation level (serializable in Java) is completely broken. It would just barf on more than 500 INSERTs in a single transaction.
And I'm not even touching the numerous other problems with for example the JDBC driver that cannot grasp the concept that we might actually want to treat CLOBs as Strings, and that we donot care that such a string may be 4GB in size.
All-in-all, SQL Server, PostgreSQL and MySQL were 10 times easier to support and write programs for.
What he meant was that humans will become more like pets. We feed pets, protect them, shelter them, clean up after them, we even decide if they can breed and with who. All they do all day is lie about doing nothing essential for their survival.
If gadgets start doing that for humans, we'll start to lose our edge. Everything is taken care of for you, you just need to lie infront of the TV all day doing nothing of any importance -- we'll call you when you need to eat and go to bed. A lot of our pet animals would do badly surviving in the wild their ancestors originated from, they've changed. They're no longer very well suited to that environment. The same could happen to us.
It's far easier, just encrypt the drive, then give out the wrong password. When they find out everything is a garbled mess, claim you wiped the drive months ago -- there's no way to prove that you didn't really wipe the drive but just gave out a bad password, and they can't prove when you wiped the drive (ie, before or after you got a court order).
And you're not going to fill that 1Tb harddrive with JPGs, movies and MP3
Sure I am... easily in fact as I already own over 2 TB of storage. Just my whole Star Trek collection (all series, all seasons, all movies) takes over 300 GB (and that's DivX compressed).
3D environments don't take significantly more storage at all, unless you intend to store a "scene" as a 3d bitmap. In fact, I'd wager that if software could extract objects from a movie, make models of them, then just render them in the position desired, that it would actually take significantly less space.
Talking to passengers is not remotely the same thing as talking on a cell phone. A passenger, unlike a person on the other side of a cell phone, is an extra set of eyes on the road.
If you ever had a conversation with someone inside your car, you know that the conversation suddenly stops when something more or less dangerous might happen. Not to mention that a passenger can help point out stuff that you may have missed.
No memory management. For example, here is 1GB database on a dedicated host with 2GB of RAM. PG should suck the while DB into RAM and run selects from there, right?
That's probably what is happening, however, memory occupied by your OS file caching mechanism doesn't count towards the amount of memory used.
It caches the last few results, but otherwise goes to disk for data even if there is anough RAM to cache the whole DB. The PG developers keep saying that it's the job for the OS. Now, which OS should we use then? FreeBSD, Linux, Windows? Which one?
They are right in my opinion, and any of the above mentioned OSes will do. They all are quite adept at file caching. PostgreSQL accesses a table file, OS reads it and caches it. PostgreSQL accesses table file again, OS serves file from cache. Where exactly lies the problem?
Just make sure you have enough FREE memory so the OS can use that to cache all the files PostgreSQL frequently uses.
I work for a company that does that. Solution, I installed cgiproxy at home and browse whatever I like.
Personally, I'm pretty convinced that humans are having an impact on a global scale, and if not now, it surely will start having a major effect soon... the population just keeps growing and it will definitely reach 10 billion before the end of this century.
There's only so much a planet will be able to support. We're already having a global impact in many areas -- resource depletion, deforestation and practically every undomesticated animal that is human size or larger is in danger of becoming extinct.
What's the address of your webcam?
1) I secretly copy and spread some watermarked media from a person I donot like. Person gets his/her life ruined by lawsuits.
2) Whoever is handing out the watermarked copy leaks that same copy elsewhere (accidental, on purpose, does it matter?). Again, some person gets his/her life ruined by lawsuits.
I'd be very careful accepting anything that has been watermarked, infact, it should be in the law that I'm required to be notified that what I'm accepting has been watermarked. It's way too easy to screw me over later, even if I instantly disintegrated the copy they gave me (and probably signed for). Someone else could be spreading it, their system could not be watertight, someone could perhaps forge the watermark (perhaps the very people creating the mark for example... it's not like they're nice people).
Being an ex-Amiga user this unfriendly behaviour completely boggles me -- why not offer a "try again" option here? I could delete some files in the mean time and then let the operation continue could I not? Windows does pretend to be a multitasking system right? A user might magically switch to another explorer and delete some files magically making more space available...
Why don't I like it when a menu "slides" open? It's because I often already know what I want from the menu, and I will subconsciously start to move the mouse roughly in the direction where the item I want will be, while my eyes gather more information to position the mouse exactly over the correct item. If a menu "slides in" or "fades in" or whatever, the feedback I get to position the mouse correctly is delayed (fade in), or even wrong (when sliding in as the item is still moving).
Position is often the thing people remember the best. I don't need to know what most application icons look like, but I do know that a specific program or file icon is somewhere on the top left, or somewhere left halfway down the screen. Windows on my taskbar are exactly the same, I know roughtly where I left the window -- that's why I completely hate stacking of similar windows. I often have multiple browser windows open (even when using Firefox) and I know the "slashdot" window is somewhere on the left or whatever... stacking 5 other windows on that button and then forcing me to read the title to get the correct window is ludicrous -- especially because if I click wrong, I need to repeat the process again (and if I'm lucky the "stacked" order hasn't changed). If I click wrong with all the tasks simply unstacked, I go back with the mouse to the same area, click the wrong one again (so it minimizes) then shift slightly and click the right one. Stacking of similar items makes all of that harder... the sole benefit it has is that I can read (a very small part of) the title on the button (something I never do since I locate the window by knowing where I left it) yet obscures many other titles because they're stacked.
Not all effects are necessarily bad from a usability standpoint. Showing where a minimized window is going might actually be good (if subtle and fast enough). I usually find however that just turning off all animations/slides/fades/transparancy/you-name-it is a far saner default to start from. I even turn off gif animations in my browser... once you get used to the nice static pages without anything flashing or animating 50 times per second you'll really wonder how you could stand all that crap on web pages before...
If I hadn't died, I'm still not the one actively making the copy, technically the copy is being "created" slowly on the downloading side (well technically the thing is copied thousands of times locally, and at every hop (calculating CRC's, moving it to buffers, etc etc.., but that's the digital world... copyright just doesn't work there).
What if I remove the copy then after it was downloaded? I'm sure I can find some music I don't want anymore that I could delete after it was downloaded :)
As for the story that MP3 infringes on some patents, well it has no impact on how I will use my music. I also seriously doubt AAC will be patent free (or any other audio compression format for that matter), it's just that MP3 is popular right now and it's a nice big target.
I can't help but snicker at your comment. Windows machines need to be restarted for them to be properly updated. Most other systems however just reload the patched software and only restart specific services -- there's no need to do a full restart. As for the need to urgently having to reboot my Linux Servers... I can't really think of a good reason why unless doing a hardware upgrade in which case I'd be on-site anyway.
When I want to know the last time I had a powerfailure at home, I just type:
> uptime
15:07:23 up 80 days, 19:30, 2 users, load average: 1.49, 1.68, 1.59
Excuse me, but marking a drive invalid because of a read failure (that's only temporary because of a drive spinning up) seems absolutely non-sensical to me. How about retrying the read? Surely it should be able to be read correctly again in senseable timeout, like 10 seconds, when the alternative is complete array failure... The second drive never failed, only your software marked it as failed because it doesn't bother to retry the read a few times.
Luckily Linux Software RAID is smarter than that. It won't mark a drive as failed because a sector cannot be read once.. it will retry until a time out is reached. If no drives have failed yet, and the read error is permanent, it will even try to reconstruct the sector and write it back in the hopes that the drive will reallocate it (most drives only reallocate sectors on writes).
Google's idea of "high temperature" however is somewhere around 40 degrees C, and you'll be lucky to get such a low temperature in most desktop PC's, especially models that only bother to cool the CPU with a fan that only kicks in when CPU temperature becomes too high.
In most desktop systems drives can easily push beyond 45 C, and then you WILL see a drastic reduction of hard disk life (most drives are rated for 55 degrees C max). Often enough I see setups where people have packed 2 or 3 hard disks on top of each other in 3,5" bays, often sandwiched above or below a floppy drive. Air flow is minimal. Drives in such a configuration easily go beyond 60 degrees C.
With a column orientated database, this cut-off point would be reached far sooner, quite possibly for a 25 column table at just 1/25th the records returned.
Reading the complete table would be a far more frequent occurence in a column orientated database in cases where full records are being requested by applications (which is a common practice in almost all programs that use somekind of Object Relational mapping). A 25 column table with a record size of 2000 bytes from which you select roughly 0.1% of the records for a financial report would mean that in a row orientated database you read 2k of data out of every 2 MB of table on average. With a column orientated setup, you'd read roughly 80 (2000/25) bytes of data out of every 80 kB of "column-table" multiplied 25 times.
Obviously reading 80 bytes of every 80 kB would be immensily slow (hard drives usually read stuff in far larger chunks without any performance impact), so at 0.1% of rows selected you're effectively already doing a full table scan. The row orientated database however will still be able to get some more performance by skipping huge chunks of table.
Also, the column based approach lowers the performance of retrieving a row by its primary key, one of the single most common operations of a database. In a row orientated database this would involve 2 or 3 index accesses plus one to retrieve the entire row. In a column orientated database it would be 2 or 3 index accesses plus one access for every column to retrieve. Retrieving a customer with their address records could easily result in hundreds of extra accesses in such a model.
I'm a bit skeptical if such a database would consistently perform better. It could do well in some cases, but it can do far worse in others.
I then put back a mirror image of my partition, and voila, it plays old content again. And no, I won't allow it to access the internet.
It certainly won't allow you to execute arbitrary code in for example a Java application -- infact, you'd have to find a bug in the JVM itself or one of the native implementations of basic classes like String to have any chance of that. That is however highly unlikely given the amount of use these core parts of Java see.
Oracle leaves stuff broken and calls it a feature, like treating the empty string as NULL. Or not providing standard 32-bit/64-bit numerical types which is incredibly annoying and short sighted as it means we now have to make sure that no numbers overflow somehow (either on our side or on Oracle's side, depending on how data is being updated) and cannot be stored safely into an 32 bit integer. Or imposing stupid limits that no other database imposes, like for example doing 200 INSERTs in a table which has a foreign key constraint, results in Oracle creating 200 "hidden" cursors to check these key constraints, and then has the nerve to complain to my program (that is only doing INSERTs) that I have too many cursors open. Using the highest transaction isolation level (serializable in Java) is completely broken. It would just barf on more than 500 INSERTs in a single transaction. And I'm not even touching the numerous other problems with for example the JDBC driver that cannot grasp the concept that we might actually want to treat CLOBs as Strings, and that we donot care that such a string may be 4GB in size. All-in-all, SQL Server, PostgreSQL and MySQL were 10 times easier to support and write programs for.
What he meant was that humans will become more like pets. We feed pets, protect them, shelter them, clean up after them, we even decide if they can breed and with who. All they do all day is lie about doing nothing essential for their survival. If gadgets start doing that for humans, we'll start to lose our edge. Everything is taken care of for you, you just need to lie infront of the TV all day doing nothing of any importance -- we'll call you when you need to eat and go to bed. A lot of our pet animals would do badly surviving in the wild their ancestors originated from, they've changed. They're no longer very well suited to that environment. The same could happen to us.
It's far easier, just encrypt the drive, then give out the wrong password. When they find out everything is a garbled mess, claim you wiped the drive months ago -- there's no way to prove that you didn't really wipe the drive but just gave out a bad password, and they can't prove when you wiped the drive (ie, before or after you got a court order).
Actually, there is plenty of encryption options that would be completely unfeasible to crack, even by all the governments in this world combined.
As long as you guys think that you're ahead of the curve, I should have no problems circumventing these :)
3D environments don't take significantly more storage at all, unless you intend to store a "scene" as a 3d bitmap. In fact, I'd wager that if software could extract objects from a movie, make models of them, then just render them in the position desired, that it would actually take significantly less space.
If you ever had a conversation with someone inside your car, you know that the conversation suddenly stops when something more or less dangerous might happen. Not to mention that a passenger can help point out stuff that you may have missed.
You need to run the tsearch2.sql script to prepare the database for FTS, if it wasn't in your default template.
You create an extra column for the column you want indexed and create a trigger to update this extra column each time the original column changes.
Finally you create an index on the extra column. Run VACUUM to update table statistics.
I managed to get it working without much prior knowledge or experience of PostgreSQL in about an hour orso.
Just make sure you have enough FREE memory so the OS can use that to cache all the files PostgreSQL frequently uses.