I know we don't have the previous satellite images from years gone by, but would it be practical to use some sort of image diffing program to look for changes in satellite imagery in the future? Yes, you'd get all the new building activity and whatnot, but we should also be able to tell when new craters hit (or other bigger changes happen) automatically. 'course, I've no idea how often global satellite images are updated, or how long it takes, so it might not be practical any time soon... Hundred years or so from now, it would be fun (if nothing else) to watch movies of how areas changed, both from direct human changes (buildings, etc) and from natural forces (coastal erosion and so on).
There seemed to be nothing in the article about selling physical singles. The choice is selling singles online, or promoting a single on the radio and only selling a full physical CD. Where's the middle ground? Record companies have been bitching about sales going down, but have made it harder to get the songs they promote. Hint - offering it in more formats (physical and digital) will increase sales.
I went to HRBlock this year for the second time, but in a different state than last year (US state, not state of mind). I went there because I'd had HRBlock do it last year, and thought they could pull up my previous information. No dice. A national chain company (well, mostly franchises) using all the same software on a network but there's no way to get the information between offices. Unless that changes next year, I will probably not use them again.
As for PHP native sessions, the other post again answers it very accurate but not why I dislike them. A it is not enabled on all servers. This is bad because PHP code should be portable. B it is blocking, only 1 thread can work on a sessions data at a time. This is bad on high performance servers. C. it uses the filesystem for something wich it is not meant to do. D. it is a bitch to admin. E. the alternatives are just so much better.
A) It's enabled on nearly all servers running PHP, except for some which may explicitly lock down some things (though I've never come across something like this). session 'auto-start' may be disabled by default, but few people go through the bother of removing 'session_start()' from the available function list. The reason most people leave it on is to enjoy the portability of the hundreds/thousands of pre-done PHP apps which expect it to be on.
B) Blocking? Default PHP session write to the file system, and there can be more than one thing writing to the file system at the same time. Not to the same *file*, but rare - never? - is the case where two different processes should be updating the session data at the same time. I'm speaking of standard out-of-the-box LAMP setups. Unless you go to the trouble of separating each session var into a distinct field in a database, storing them in a database won't help the 'blocking' issue when you're talking about multiple distinct processes needing to update the same single blob of session data.
C) File systems were meant to store text files, which is exactly what the default PHP session handler does.
D) What is a bitch to admin about PHP session files? What is there to admin about them in general? Do you mean permissions during backup procedures or something?
E) All alternatives have their tradeoffs to make.
Personally, I don't normally use PHP's native session handling for a couple reasons.
1) The default in a shared host environment is to store everything in/tmp or some other equally world-readable directory. Yes, there are CGI or proxied setups or safe_mode which help deal with the promiscuous reading issues, but they entail extra work.
2) The default session handling process will always write out the entire session blob of data (to the file system, for example) even if nothing in the $_SESSION array has been changed, added or deleted. It's a bit wasteful in large-scale environments, although it was probably easier to develop that way.
Take it out of Windows Update then - just something that comes with Windows Vista Server (or whatever it'll be called). It's not being 'forced' on anyone - it's just something you get for free with Windows.
I agree, and I touched on this topic of Google's growing ownership of data and people seeming not to care about it here. It was more centered on the "google wifi" proposals in the news last fall, but the idea is the same. Many people really DON'T see any harm in it, or "so what, google should be rewarded for this" type of attitude. I've met very few people who understand the importance of how much control google will have over web metadata.
Will we see antitrust actions against google at some point? Maybe that's why they moved the analytics program to 'invite only' from 'free for all'? Imagine if MS had bought an industry leading application (urchin), rolled it in to the next Windows Update, and given it away for free. What would the reaction have been?
Not my *worst* experience, but my first really bad experience with using third parties to host projects...
In '99, I was doing some freelance work for an ecommerce project, and it was hosted at hiway. Right after launch (meaning after the site owner had spent thousands on marketing/mailing/promotion/etc) hiway suspended the site for 'resource abuse'. What???
"CPU usage is too high".
That's about all we got - for a week. I had some loon on the phone telling me to rewrite my queries because doing "Select *" from a table in mysql can cause a lot of resource usage, nitpicking over whether all file handles were being closed, etc. I tried very hard to be accomodating, but it was NOT our code! They wouldn't even LOOK at any of the other 500+ customers on that server - they shut us down, and that was it.
Turns out, after 8 days of us being shut off, they 'found out' that it was someone else's script on that server which was using up all the resources.
I just couldn't get over how awful the experience was. Yes, we should have run our own server, but things were much more costly back then...
and the power/money that can come from it, read "When Genius Failed" (or listen to the audiobook like I did). It's a bit long, but there's quite a lot of "holy cow!" moments when reading/listening, when you realize just how much power a few people can hold over the market with arbitrage/options.:)
I always wanted a farr better deal
on
High-Tech RepoMan
·
· Score: 1
I wondered what happened to good old Mel. The way channel 20 and 50 were blanketed with Mel Farr ads when I was growing up, I had this skewed vision that that's how everyone bought cars! "$99 down, $99/month!"
Why, oh why, was the scoping done so utterly backwards?! I was cleaning up some code, moving it into a function, and suddenly it stopped working. I had realized the answer the first time I tweaked it, but summarily forgot the second time around. What was it? Why, naturally, I had forgotten to do 'global $foo' inside my function - how stupid could I be to think code inside a function wouldn't pick up the contents of the variable as declared outside it?
Why, oh why, are you creating a function and not actually mandating that anyone pass in functions? You're obviously changing the original code to *call* the new function - why not actually pass in what variables you need rather than rely on 'global'?
Why, oh why, can I not have something as basic as 'microtime()' in Perl, instead having to rely on Time::HiRes? Having so many external CPAN dependancies makes the code very system dependant - moving to a new server might mean that your code won't run because a particular CPAN module isn't installed. Not that you *can't* get it running, but it's a pain. PHP avoids a lot of that by having many useful functions 'built-in'.
It's not always about writing code that's convenient for yourself, but is easy to read by others (or yourself 6 months later). By forcing the 'global' keyword, PHP helps keep the code readable. Granted, there's many other ways to make PHP unreadable and unmaintainable, but this isn't one of them.
Have a base controller include that one core_defines.php file, the include(CLASS_PATH."foo.php");
Yes, it's not the namespace support you're talking about, but it's much better than having all your include() statements use "../../../" notation in them. There are two primary issues with that approach.
1. The path where you store those files might need to change for some reason. 2. It's not as clear from looking at it what type of file is being loaded unless you have class_*, lib_*, and other filename prefixes on each file. include(TEMPLATE_PATH."/foo.php") is very easy to guess at the intent of the include statement.
What I *don't* understand is how using autoload makes this process much easier. If I reference a class that's not yet loaded, autoload() will get called with the name of the class. It seems I would need to have potentially loads of paths to check in the autoload() function to 'find' the particular file I wanted, and hope that it didn't find another class of the same name in another directory before it found the one I was looking for.
I guess you could just push all the paths on to the include_path setting, but scanning multiple directories has its own performance issues. It seems to me that simply being explicit about what packages a particular file needs to execute is, in most situations, the best. Yes, it's a bit more, work, but being explicit makes things easier to understand.
Wouldn't call it 'funny', but yes, I'm completely aware of this limitation, and it irks the heck out of me. It's why many people won't move to innodb as a table type - because they're already got a lot of legacy tables they want to be able to fulltext search. At least, that's been my experience.
People bitch about MySQL not having transactions, then other people respond with 'just choose the table type innodb!'. Point is, transactions aren't something someone writing a mysql app can assume will be available without some gyrations on the end user's part. And the same thing exists for Postgres and fulltext indexes. Unless they're default and can be assumed to be on every installation of 8.2 (or whatever) they essentially don't exist.
Just installed the Windows version. Just a quick couple notes here...
1. Installer was seemingly faster than 8.0 version. 2. Installer could do a little bit better job of hiding all the 'options' (ISBN, Fuzzy search, etc) you can install. Put them behind an 'advanced' button or something - it's a little intimidating to see so many options at first. Also the PL language choices are odd - 'pl/Perl' and 'pl/Perl (untrusted)' ??? These are things that could probably be hidden from the majority of people just testing it out for the first time - either install everything by default, or nothing, but put some of these things behind 'advanced' tabs. 3. pgAdmin III bundled tool is 1.4 - I think I was using 1.3 last time I installed. Visually it looks a bit nicer - I'm assuming they've fixed some bugs or something similar to warrant a number change.:)
I'll probably get flamed for #2, but I'm just putting out some suggestions. The fact that there *is* a Windows installer at all is a good thing - I'd just like to see it improve to help reach a wider audience for future releases.
Good call - I did find it just a few minutes ago but I did neglect to mention that while I run windows at work, we run linux as the webservers (a move I've found increasingly common over the years), and I run linux at home (part time since late 98 and full time since 2001) and on external servers I manage - at home currently ubuntu (testing it out), normally mandrake/mandriva, and have run RHEL, fedora, debian, knoppix, suse, caldera, RH5/6/7/8/9 and slackware.
Whew! thanks for reminding me - I almost forgot to throw all that in!
nevermind - I'm just hard of reading this morning
on
PostgreSQL 8.1 Available
·
· Score: 4, Informative
i'm pretty sure there are ready made scripts out there to build a msi from the latest firefox release if thats your preffered method of deployment.
My guess is that this is the preferred method at most companies of > 50 people. I've worked at a number of companies over the past 3 years. This is by far the primary reason given for not deploying Mozilla/Firefox. MS gives tools to easily customize IE and push it out to everyone on the network very quickly. I'm working with a company now that realizes there are problems with IE - specifically DOM and scripting issues - yet we still use IE for the intranet apps despite these problems because customizing and pushing out Firefox and new versions to handle security fixes is deemed too much work relative to the IE answer.
you go there and browse the page and when you find what you want, it is literally a one-click download-and-install
It's a bad user experience on several levels.
1. 'extensions' brings up a small window with 3 buttons and a link - the link is the different one (smallest visual appearance) that brings you to an extension place.
2. The procedure isn't one click, as I get a fairly scary warning box saying to not install software from places I don't trust. Should I trust the extension? Pretty much every extension out there is 'unsigned' (probably because learning how to sign things is a big PITA, and is going to cost people some $ as well)
3. People looking for extensions may also wind up on mozdev, and the popup blocker in firefox blocks pretty much every attempt at installing an extension that way because it's a new popup and you have to grant popup permissions to that URL.
Having many 'standard' plugins focused on serving a particular market bundled in to a browser is a great idea.
2 other things I'd like to see are file upload progress meters standard (and big and visible) and a built-in media capture (sound recorder) which would allow forms to capture sound for forum posting attachments.
and RoR will generate CRUD stuff for TableName. What happens when the structure of "TableName" changes? Does RoR handle regenerating without overwriting what you've customized?
BTW, I'm not into RoR, but was planning on doing an interview with someone on RoR for my podcast. The initial interviewee is AWOL, so if any RoR enthusiasts want to talk about this in more detail on a podcast, let me know.
MySQL gives an approximation on innodb tables, but for myisam tables it gives back accurate counts, not approximations.
I know we don't have the previous satellite images from years gone by, but would it be practical to use some sort of image diffing program to look for changes in satellite imagery in the future? Yes, you'd get all the new building activity and whatnot, but we should also be able to tell when new craters hit (or other bigger changes happen) automatically. 'course, I've no idea how often global satellite images are updated, or how long it takes, so it might not be practical any time soon... Hundred years or so from now, it would be fun (if nothing else) to watch movies of how areas changed, both from direct human changes (buildings, etc) and from natural forces (coastal erosion and so on).
There seemed to be nothing in the article about selling physical singles. The choice is selling singles online, or promoting a single on the radio and only selling a full physical CD. Where's the middle ground? Record companies have been bitching about sales going down, but have made it harder to get the songs they promote. Hint - offering it in more formats (physical and digital) will increase sales.
I went to HRBlock this year for the second time, but in a different state than last year (US state, not state of mind). I went there because I'd had HRBlock do it last year, and thought they could pull up my previous information. No dice. A national chain company (well, mostly franchises) using all the same software on a network but there's no way to get the information between offices. Unless that changes next year, I will probably not use them again.
As for PHP native sessions, the other post again answers it very accurate but not why I dislike them. A it is not enabled on all servers. This is bad because PHP code should be portable. B it is blocking, only 1 thread can work on a sessions data at a time. This is bad on high performance servers. C. it uses the filesystem for something wich it is not meant to do. D. it is a bitch to admin. E. the alternatives are just so much better.
/tmp or some other equally world-readable directory. Yes, there are CGI or proxied setups or safe_mode which help deal with the promiscuous reading issues, but they entail extra work.
A) It's enabled on nearly all servers running PHP, except for some which may explicitly lock down some things (though I've never come across something like this). session 'auto-start' may be disabled by default, but few people go through the bother of removing 'session_start()' from the available function list. The reason most people leave it on is to enjoy the portability of the hundreds/thousands of pre-done PHP apps which expect it to be on.
B) Blocking? Default PHP session write to the file system, and there can be more than one thing writing to the file system at the same time. Not to the same *file*, but rare - never? - is the case where two different processes should be updating the session data at the same time. I'm speaking of standard out-of-the-box LAMP setups. Unless you go to the trouble of separating each session var into a distinct field in a database, storing them in a database won't help the 'blocking' issue when you're talking about multiple distinct processes needing to update the same single blob of session data.
C) File systems were meant to store text files, which is exactly what the default PHP session handler does.
D) What is a bitch to admin about PHP session files? What is there to admin about them in general? Do you mean permissions during backup procedures or something?
E) All alternatives have their tradeoffs to make.
Personally, I don't normally use PHP's native session handling for a couple reasons.
1) The default in a shared host environment is to store everything in
2) The default session handling process will always write out the entire session blob of data (to the file system, for example) even if nothing in the $_SESSION array has been changed, added or deleted. It's a bit wasteful in large-scale environments, although it was probably easier to develop that way.
Take it out of Windows Update then - just something that comes with Windows Vista Server (or whatever it'll be called). It's not being 'forced' on anyone - it's just something you get for free with Windows.
I agree, and I touched on this topic of Google's growing ownership of data and people seeming not to care about it here. It was more centered on the "google wifi" proposals in the news last fall, but the idea is the same. Many people really DON'T see any harm in it, or "so what, google should be rewarded for this" type of attitude. I've met very few people who understand the importance of how much control google will have over web metadata.
Will we see antitrust actions against google at some point? Maybe that's why they moved the analytics program to 'invite only' from 'free for all'? Imagine if MS had bought an industry leading application (urchin), rolled it in to the next Windows Update, and given it away for free. What would the reaction have been?
Not my *worst* experience, but my first really bad experience with using third parties to host projects...
In '99, I was doing some freelance work for an ecommerce project, and it was hosted at hiway. Right after launch (meaning after the site owner had spent thousands on marketing/mailing/promotion/etc) hiway suspended the site for 'resource abuse'. What???
"CPU usage is too high".
That's about all we got - for a week. I had some loon on the phone telling me to rewrite my queries because doing "Select *" from a table in mysql can cause a lot of resource usage, nitpicking over whether all file handles were being closed, etc. I tried very hard to be accomodating, but it was NOT our code! They wouldn't even LOOK at any of the other 500+ customers on that server - they shut us down, and that was it.
Turns out, after 8 days of us being shut off, they 'found out' that it was someone else's script on that server which was using up all the resources.
I just couldn't get over how awful the experience was. Yes, we should have run our own server, but things were much more costly back then...
and the power/money that can come from it, read "When Genius Failed" (or listen to the audiobook like I did). It's a bit long, but there's quite a lot of "holy cow!" moments when reading/listening, when you realize just how much power a few people can hold over the market with arbitrage/options. :)
I wondered what happened to good old Mel. The way channel 20 and 50 were blanketed with Mel Farr ads when I was growing up, I had this skewed vision that that's how everyone bought cars! "$99 down, $99/month!"
Why, oh why, are you creating a function and not actually mandating that anyone pass in functions?
That should have read 'parameters' not 'functions'. Oops...
Why, oh why, was the scoping done so utterly backwards?! I was cleaning up some code, moving it into a function, and suddenly it stopped working. I had realized the answer the first time I tweaked it, but summarily forgot the second time around. What was it? Why, naturally, I had forgotten to do 'global $foo' inside my function - how stupid could I be to think code inside a function wouldn't pick up the contents of the variable as declared outside it?
Why, oh why, are you creating a function and not actually mandating that anyone pass in functions? You're obviously changing the original code to *call* the new function - why not actually pass in what variables you need rather than rely on 'global'?
Why, oh why, can I not have something as basic as 'microtime()' in Perl, instead having to rely on Time::HiRes? Having so many external CPAN dependancies makes the code very system dependant - moving to a new server might mean that your code won't run because a particular CPAN module isn't installed. Not that you *can't* get it running, but it's a pain. PHP avoids a lot of that by having many useful functions 'built-in'.
+1 insightful
It's not always about writing code that's convenient for yourself, but is easy to read by others (or yourself 6 months later). By forcing the 'global' keyword, PHP helps keep the code readable. Granted, there's many other ways to make PHP unreadable and unmaintainable, but this isn't one of them.
core_defines.php
Have a base controller include that one core_defines.php file, the
include(CLASS_PATH."foo.php");
Yes, it's not the namespace support you're talking about, but it's much better than having all your include() statements use "../../../" notation in them. There are two primary issues with that approach.
1. The path where you store those files might need to change for some reason.
2. It's not as clear from looking at it what type of file is being loaded unless you have class_*, lib_*, and other filename prefixes on each file. include(TEMPLATE_PATH."/foo.php") is very easy to guess at the intent of the include statement.
What I *don't* understand is how using autoload makes this process much easier. If I reference a class that's not yet loaded, autoload() will get called with the name of the class. It seems I would need to have potentially loads of paths to check in the autoload() function to 'find' the particular file I wanted, and hope that it didn't find another class of the same name in another directory before it found the one I was looking for.
I guess you could just push all the paths on to the include_path setting, but scanning multiple directories has its own performance issues. It seems to me that simply being explicit about what packages a particular file needs to execute is, in most situations, the best. Yes, it's a bit more, work, but being explicit makes things easier to understand.
Wouldn't call it 'funny', but yes, I'm completely aware of this limitation, and it irks the heck out of me. It's why many people won't move to innodb as a table type - because they're already got a lot of legacy tables they want to be able to fulltext search. At least, that's been my experience.
People bitch about MySQL not having transactions, then other people respond with 'just choose the table type innodb!'. Point is, transactions aren't something someone writing a mysql app can assume will be available without some gyrations on the end user's part. And the same thing exists for Postgres and fulltext indexes. Unless they're default and can be assumed to be on every installation of 8.2 (or whatever) they essentially don't exist.
Thanks for the explanation link, and thanks for the work you've put in to pgAdmin.
Just installed the Windows version. Just a quick couple notes here...
:)
1. Installer was seemingly faster than 8.0 version.
2. Installer could do a little bit better job of hiding all the 'options' (ISBN, Fuzzy search, etc) you can install. Put them behind an 'advanced' button or something - it's a little intimidating to see so many options at first. Also the PL language choices are odd - 'pl/Perl' and 'pl/Perl (untrusted)' ??? These are things that could probably be hidden from the majority of people just testing it out for the first time - either install everything by default, or nothing, but put some of these things behind 'advanced' tabs.
3. pgAdmin III bundled tool is 1.4 - I think I was using 1.3 last time I installed. Visually it looks a bit nicer - I'm assuming they've fixed some bugs or something similar to warrant a number change.
I'll probably get flamed for #2, but I'm just putting out some suggestions. The fact that there *is* a Windows installer at all is a good thing - I'd just like to see it improve to help reach a wider audience for future releases.
Good call - I did find it just a few minutes ago but I did neglect to mention that while I run windows at work, we run linux as the webservers (a move I've found increasingly common over the years), and I run linux at home (part time since late 98 and full time since 2001) and on external servers I manage - at home currently ubuntu (testing it out), normally mandrake/mandriva, and have run RHEL, fedora, debian, knoppix, suse, caldera, RH5/6/7/8/9 and slackware.
Whew! thanks for reminding me - I almost forgot to throw all that in!
Found it!
/ is the link.
http://www.postgresql.org/ftp/binary/v8.1.0/win32
Clicking the '8.1' link on the 'new releases' section on the front page takes you to the 'source' files only. That was the problem I had!
I can't seem to find a Windows binary on the 'ftp browser' on their site. Am I missing something? Or is the Windows version of 8.1 not available yet?
What's the betting it'll be only Firefox on Windows?
i'm pretty sure there are ready made scripts out there to build a msi from the latest firefox release if thats your preffered method of deployment.
My guess is that this is the preferred method at most companies of > 50 people. I've worked at a number of companies over the past 3 years. This is by far the primary reason given for not deploying Mozilla/Firefox. MS gives tools to easily customize IE and push it out to everyone on the network very quickly. I'm working with a company now that realizes there are problems with IE - specifically DOM and scripting issues - yet we still use IE for the intranet apps despite these problems because customizing and pushing out Firefox and new versions to handle security fixes is deemed too much work relative to the IE answer.
you go there and browse the page and when you find what you want, it is literally a one-click download-and-install
It's a bad user experience on several levels.
1. 'extensions' brings up a small window with 3 buttons and a link - the link is the different one (smallest visual appearance) that brings you to an extension place.
2. The procedure isn't one click, as I get a fairly scary warning box saying to not install software from places I don't trust. Should I trust the extension? Pretty much every extension out there is 'unsigned' (probably because learning how to sign things is a big PITA, and is going to cost people some $ as well)
3. People looking for extensions may also wind up on mozdev, and the popup blocker in firefox blocks pretty much every attempt at installing an extension that way because it's a new popup and you have to grant popup permissions to that URL.
Having many 'standard' plugins focused on serving a particular market bundled in to a browser is a great idea.
2 other things I'd like to see are file upload progress meters standard (and big and visible) and a built-in media capture (sound recorder) which would allow forms to capture sound for forum posting attachments.
I've seen this referenced before:
script/generate scaffold TableName
and RoR will generate CRUD stuff for TableName. What happens when the structure of "TableName" changes? Does RoR handle regenerating without overwriting what you've customized?
BTW, I'm not into RoR, but was planning on doing an interview with someone on RoR for my podcast. The initial interviewee is AWOL, so if any RoR enthusiasts want to talk about this in more detail on a podcast, let me know.