A good photographer prefers a good camera. Sure, they can still do way better with a plastic snappy than an amateur with a top of the line Hasselblad or Sinar. But there's a reason the pro prefers the good camera. Being a professional photographer requires a combination of the artistic skill and the technical skill. What if you need to photograph the front of building of several floor levels high, from ground level? Is your shot going to end up with the building appearing to lean backwards because you leaned up to get it all in the frame? You could step backwards if you have the space and waste most of the film area and get a lower quality image straight on. Or you can use a top quality large format rail camera that lets you shift a wide coverage lens with respect to the film plane. But you wouldn't use that large format camera for sports photography if you got a press pass to the Super Bowl. The right tool for the job is what is needed. The pros know what tool to use and how to use that tool.
Likewise, a good programmer prefers the right tools for the job, and knows how to use them. But not all programming jobs are alike. While a language like PHP works great for many and perhaps most web applications, a programmer whose skill is limited to just PHP is not going to know when PHP doesn't do so well, and certainly won't be able to work with something else when it gets identified as appropriate. A PHP programmer is likely limited in experience to get web programming, and won't necessarily know much about many of the backend process chores that might be needed for a full application that happens to have a web interface to it (as so many these days do). A programmer who has experience in a number of languages (it doesn't have to be a huge number... 4 to 6 languages of a diverse variety is usually enough)... AND has done actual development in those languages at one time or another, is the one that is best equipped to make architectural decisions about how to set up an application.
And how many PHP programmers know to, and know how to, organize their coding effectively, such as clear separation of logic and content? PHP makes it so easy to NOT do the right thing. When I was doing evaluation of Y2K bugs for a client on January 2000, I found that the vast majority of the bugs that did crop up were errors of lack of experience by the programmer, and errors of convenience (it was easier to concatenate "19" and 2 digits of a year than it was to add 1900 to a numeric value that represented number of years since 1900). Languages like PHP and Perl with their strong facility with strings made it easy for the inexperienced programmer to do the wrong things. The experienced programmer could work in the same language and do the little extra effort to get it right. Programmers of a language like C where the right way is usually easier than the wrong way (comparatively speaking) would have acquired knowledge of the right way (do the calculation, then present the results), and could apply it in just about any language (certainly in all the major languages).
If I were hiring programmers for a job for which something like PHP or Python was an appropriate language choice, I would still hold experience programming in C to be of value. In lieu of that, assembly programming would have some value, too. In fact, given enough experience with enough different languages actually used for real development purposes, I would even hire someone who doesn't even know the language the project will use, because it would be clear they could learn the language (it's just a tool) while bringing real world development issue insight to the project. That fits in with your idea of the coder that doesn't really know any language.
He believes the genes which make someone analytical may also impair their social and communication skills. A weakness in these areas is the key characteristic of autism.
Maybe. My alternative hypothesis is that the genes that cause the brain to be wired up for better social skills (mirror neurons) either cause analytical skills to not be developed, or else there is a fundamental conflict (e.g. the social skills themselves inhibit analytical skills). With less influence by such genes, the analytical skills can develop or come out.
There doesn't need to be any RFC. I simply send reports to abuse@${serverdomain} and ignore auto-replies. Once any one domain reaches a count of 3 separate incidents of spam, then no further email is accepted from that domain and no further reports are sent to them (the third and final report does say that they are now blacklisted due to our "three strikes" policy). One exception is if it is a case of a zombie machine operated by a customer of the ISP whose domain is in reverse DNS, and they provide a subdomain to aggregate these addresses for separate blocking, I block just that. ISPs that don't put customer addresses in a subdomain (alternative is to put the customer's own domain in as reverse DNS) do so at their own peril (their domain will get blacklisted at 3 incidents). If I do get any human response indicating steps taken to correct problems, I will, if I believe they are not lying to me, remove the incident counts against them. Of course, if they say they take steps to prevent spam, and I still get spam the same way, it will be obvious at some point they are not telling the truth.
I read elsewhere that 75% of what is coming OUT from Hotmail/MSN server is spam of one sort or another (and apparently mostly phishing and similar scams based on what I've gotten in the past). It's time to just refuse all email from Hotmail/MSN servers... except for specific email addresses you know of by whitelisting them. This is what I have had to do (because Hotmail/MSN reached the point of representing more than 50% of all incoming spam because I've been rather effective at blocking spam from lots of other sources such as the bulk of home zombie machines). Just block them, whitelist any friends that still use it, and move on.
This is just another case of corporate greed. These companies are wanting to exploit the good work of thousands of dedicated free software developers so they can sell more hardware to more customers wanting something to run all these new innovative applications on.
Oh wait... this is a good thing! I guess greed directed the right way can work wonders.
The really valuable data they are gathering is the invitation relationships. Who invites who. For example, if someone invites a lot of people that turn out to be spammers, then there is a good chance that person know who spammers are, and possibly even who invited them, too.
Thanks. The gPhoto link therein was actually where my greatest interest was. I guess time lapse might have been a bad example. How about having a camera commanded to shoot an image when triggered by another event, such as tripping an LED beam path by a wild animal or trespasser, or when requested by someone accessing a web site. The idea is I want to have the computer do it when I'm not there (or located remotely).
You might have to move up to medium format some day. I do know that black & white infrared film (the only kind I use) is made in medium format. You'll just have to be a lot more careful when loading the film in the camera (medium format is not a simple metal coverage cartridge as 35mm is) or have extra camera backs if applicable to the camera you might get.
Actually, digital can go to down to longer wavelengths than film can. I've heard of expensive digital cameras (mostly doing video output) going well down to 10,000 nm and longer (while film can only barely make it beyond 1300 nm without extreme handling requirements).
The standard image area in 35mm film cameras is 36mm x 24mm. Digital sensors, however, are smaller than that. This is why they tend to recommend using a lens of about 35mm focal length to get the same normal composition of a 50mm focal length lens with film. Some lenses are especially manufactured strictly for DSLR cameras by reducing the image coverage area to just that of the smaller digital sensor area. It costs less to make these because of the smaller lens elements and more compact size. It also means less weight for the photographer to hold. As the bulk of the market for secondary lenses migrates to DSLR cameras, it will mean more profit for the camera makers to limit manufacturing to just these kinds of lenses.
Digital sensors, however, do not operate as well (as film) when light is coming in at an angle. The further from the center of the sensor (or film image area), the more angled is the light that forms the image. The close the rear aperture of the lense is to the sensor, the worse this angle. It will still be a good idea to keep the sensor some distance back from the lens (not an issue except for rectilinear ultra wide angle lenses). While eliminating the flapping mirror will help reduce mechanical vibration of the camera, I suspect we'll see many "hybrid viewfinder" cameras in which the optical path can still be used for the best quality setup and focus, but the mirror can be locked out of place and the digital viewfinder (perhaps integrated into the same eyepiece) can be used to decide when to actually make the shot(s).
I'm also looking forward to digitally operated lenses where the elements can be moved in ways not easily done by mechanical methods, including different configurations to optimize for different aperture (stop down) settings.
... if I can find a suitable camera that will work flawlessly with Linux or BSD giving me full resolution raw uncompressed (or at least losslessly compressed such as PNG) image files without requiring special software from the camera maker (unless it comes in open source form ready to compile on Linux or BSD). As an added bonus, it would be nice if the camera can also be controlled via the same connection (USB, Firewire, Ethernet) to make it actually shoot pictures when my software decides it's time to shoot (nice for making high definition time lapse movies, for example).
Even though I presently have 2 cameras and several lenses from the Nikon line, I have already decided to abandon Nikon due to their non-open raw image format as reported on 19 April 2005, 23 April 2005, and 25 April 2005.
If they need a specific amount of equipment that uses a specific amount of power, then it seems silly to require them to expand to a larger building if the existing building is capable of handling the cooling load. This is just a ploy to force businesses to occupy more land so the county gets more land tax revenue.
If your county doesn't serve businesses well, then move to another county that does. I'm sure the new county will be happy to have the employment move in.
... are they going to tax it based on how many copies I have made of it? If I put MS Windows on 100 PCs legally, I have to either buy 100 copies, or get some enterprise licensing that still amounts to a discount times 100 or so, well more than the base price of one copy. Yet with many retail open source packages, I buy just one copy and can install it on those 100 PCs. And what if I downloaded it? Does that count the same as buying one copy?
What if I have one piece of software worth say $100 and use it on 2 PCs, and have another piece of software worth about the same but use it on 50 PCs? Is that going to be taxed differently? What if both are installed on all PCs? What if all software is accessible to all PCs via network file sharing?
While I have some concerns over being taxed on it (aside from the fact that I don't live in Tennessee, though this could potentially happen in other places, too), I'm actually more concerned about the impact that as-yet-unknown methods of counting will have on how computer and networks have to be managed. For example, it can be very convenient to have every program accessible from every computer on the network, but if the tax structure counts each PC the software is usable from (as opposed to is used from, which would be even harder to do), then I would be forced to make technical changes in the network structure that have no technical merits.
If I did live in Tennessee, I guess I would have to put my data center in another state.
How would it identify a proxy server? If it adds information on each web query (somehow) then for a proxy server, would it not identify the proxy machine itself, instead of the users? That could be interesting for ISPs put user web access through a proxy. If there's a way an ISP can make that not happen, then a user could set up something just like that at home to make that not happen (and program the proxy to filter out whatever got added at the client machine).
That would be one sophisticated device if it can modify a network stream independent of all interface devices and independent of all operating systems. In reality it's really going to have to be something that is voluntarily used, requiring implementation to access it in the OS and/or client. If you choose not to use it, then you would either lack the information the web server is asking for, or try to fake it and fail because the information is strongly encrypted. Such a server might choose not to serve you because of that (for example servers to file your income taxes) while others won't deploy any such checks because of the nature of their market (e.g. pr0n servers).
Not to underrate AIT's scumminess, but did you try to get the charges reversed through your credit card company, and upon 2nd fraudulent billing, get that merhcant blocked on your card? The better credit card companies will clear these things up. They may need your request in writing, but this can be done. I know, because I've done it before (not with AIT since I've never done business with them).
And FYI, your link is broken. Shouldn't it be http://aitsucks.com/? You're supposed to check you links on/. before clicking submit.
* Never link statically with libdl. For example, application, statically linked on RH 7.3 witl libdl will misteriously crash on RH9
I've heard about this problem, but I don't recall whether it is due to a bug in glibc, or a bug in Redhat's many modifications. I just know I haven't run into any such problem in Slackware. I don't even touch Redhat anymore given so many issues like this.
Oh, you say, Ubuntu and Debian are popular? Ouch, not among our cutomers.
Maybe you should do a survey of your Linux customers and find out exactly why they chose the distribution they are using. I'll bet the answer mostly turns out to be things like "more applications support it". Then you'll see the circular argument. Suffice it to say, if more software makers supported a platform like Slackware or Ubuntu, then more people would choose it. When more people choose it, your market for that version enlarges. There will be other reasons for choosing something like Redhat, such that's what the CEO first heard of.
Then take the subset of cases where the decision of which distribution was left up to a technical person who has lots of experience, and you'll find a wider, and better, variety.
One possible contributor to the memory issue here, and in some other programs, could be the way the memory is allocated. Memory is obtained from the kernel in chunks a multiple of a page size. These pages cannot be returned back to the kernel unless all usage of the entire page is gone. Memory usage for a typical object tends to be small pieces. If the pieces allocated for one page (in one tab) are interleaved with pieces allocated for another page (in another tab), then closing one of those tabs, even if the mainline code destructs all objects which correctly free all their underlying memory allocations, does not necessarily result in pages being released back to the kernel.
So how can memory allocations get scattered around like that? Consider that many objects need to persist as long as the page exists, but many others can be destructed because they are only needed when the page is being loaded or rendered. During loading and rendering, both sets of objects can be created in a mixture. Then the non-persistent ones would be destructed. Because of the order of allocation of underlying memory, the persistent objects tend to be interleaved with the non-persistent ones. That then means most pages may have some persistent object lying around, preventing it from being returned to the kernel.
Solutions to this problem would be difficult. But I also think this effort would be valuable for any and all large projects that can face this kind of memory issue. Some means is needed to control the memory alloction, and in particular to allow grouping of memory into contexts. The first kind of context would be a context for each tab or window being opened by the browser user. That way, if a tab is closed, it should substantially destruct objects grouped together. But this can also be wasteful because the non-persistent objects that do get destructed after rendering is done cannot have their memory recycled by other contexts. So another dimenstion of context needs to be on the basis of what is persistent vs. non-persistent, so that all non-persistent memory gets grouped together so it can be returned to the kernel as whole pages, which can then be recycled to other contexts (getting the pages from the kernel again).
This would require a much more involved memory allocation system. Further, it would also require major changes in many of the abstract programming classes used by such large programs... in ways that tend to be counter to what the abstraction is all about in the first place. Abstraction is supposed to hide details about the underlying implementation so the programmer can/should concentrate on application logic. But this is not really an optimal way to program when dealing with limited resource issues that need to be managed, such as the memory issues seen here. In particular, the various classes themselves won't know whether they are persistent (in the context of what the browser application needs) or not. Many instances of the very same class may be created for both persistent and non-persistent intents, so the class itself could never be designed to make any such assumptions (e.g. think of hiding the details in reverse... the class does not see the details of the application, e.g. which instances are to be long lived and which are not).
A concept that may help with this is one that would have to be applied to the whole of such object oriented programming, or even non-OO functions that also could allocate memory for such variant uses (this isn't fundamentally an OO problem... OO merely exposes it due to the larger application scale that OO enables to be implemented). This concept is to create instance groups that can span laterally across all classes. It would require that each time an instance is created, that it be associated with a particular instance group. Then instead of destructing each instance individually, the group is destructed, which destructs all instances in the group. The implementation of all thi
I've switched to opening links in new windows a lot now. In part this is because I want to group a set of tabs together. And it's easier to just close the whole mess by closing that whole window (generally all on one site or about one topic). But it seems FF is not free-ing up memory in these cases, either.
I don't see why a tab or a new window should be different internally, though. It should only be a matter of associating the state of a loaded page with a given display context. The real issue, though, is the memory management issue. Apparently something fundamentally wrong in the browser architecture is preventing that. I highly suspect it is due to over-abstraction and/or the inability of some tools they are using to properly destruct objects that are no longer needed. It does seem that large complex software projects such as this do tend to suffer a lot of complexity issues that result in basic things like free-ing memory becoming impossible to do. I don't encounter these problems in my programs, but then, I don't do anything nearly as large as Firefox, nor do I use a team of developers, nor do I use all these abstract tools by ignoring their internal operation implementations. I'll be curious as to the actual, real cause.
One of the things I occaisionally do is set up older computers that would otherwise end up in an environmentally dangerous scrap heap so they can be used by people that otherwise be unable to afford a computer (at least one with all legal software loaded). A lean configuration of Slackware has worked well before. I'm considering using Ubuntu in the future, but it raises the lower limit on memory. And Firefox on any of these has posed problems.
But the real problem is these older machines are limited in how much memory can be added at all. I have machines around that can't go above 32 MB or 64 MB. My own desktop is an 800 MHz machine that is now at the maximum 512 MB of RAM (the Intel chipset won't go higher) already has Firefox issues on a few web sites that are heavy on images and such.
I do have the following suggestion I have made elsewhere which seems to be ignored by the Firefox developers. I can set Firefox to just not load images at all. But that is annoying. What would help a lot is to have a configuration setting to go ahead and load images, but just not run animations of animated images. In addition, a pair of buttons to turn on and off the image animations would be very valuable. Also, a right click menu item for each image individually that would allow turning it's animation on and off (present if that image is an animated one) would help. Same for Marquees.
Slackware matters to me. It's so far the only distribution I can use as a basis for the specialized systems I put together. It can be tweaked and changed around without suddenly and mysteriously breaking. I rewrote all the rc scripts in/etc from scratch in one day and they just worked on Slackware. I tried the same on Redhat with no success after deciding that one week was the limit of time I should pursue on that. Slackware is also the only system that I've been able to install entirely in a subdirectory on an existing system (an earlier Slackware version). I do it this way almost exclusively since 8.0 to do my installs, instead of booting from a CDROM. It's easier to rsync replicate onto various machines. And it's easier to build into a custom bootable CDROM (and a single CD that can boot on both x86 and Sparc thanks to Slackware's Sparc spinoff Splack).
Debian is probably the best alternative option if Slackware ceased being. But it has a more difficult (e.g. SysV based) rc system (which I'd replace first). With a number of Debian derivatives (such as Ubuntu which I have been playing around with since I got my 5.10 disks a few days ago), it's clearly at least a workable system I should spend a little more time with.
Otherwise it would be BSD (probably OpenBSD, but maybe NetBSD) for me.
Slackware matters to me for much the same reason Linux matters to me. Despite all the pressure (mostly from those trying to "mainstream" it into business and corporate culture, or commoditize it) to make Linux be totally uniform, the greatest think I love about Linux, and Slackware, is its ability to be molded into what I want to make of it.
BTW, my sister-in-law has told me she's ready to give up Windows if I can get this one application she needs working under Linux in a Windows emulator (maybe Wine). I'll have to work on that and see if it will run. But it won't be Slackware for her. She gets Ubuntu. Slackware matters; just not for everyone.
A good photographer prefers a good camera. Sure, they can still do way better with a plastic snappy than an amateur with a top of the line Hasselblad or Sinar. But there's a reason the pro prefers the good camera. Being a professional photographer requires a combination of the artistic skill and the technical skill. What if you need to photograph the front of building of several floor levels high, from ground level? Is your shot going to end up with the building appearing to lean backwards because you leaned up to get it all in the frame? You could step backwards if you have the space and waste most of the film area and get a lower quality image straight on. Or you can use a top quality large format rail camera that lets you shift a wide coverage lens with respect to the film plane. But you wouldn't use that large format camera for sports photography if you got a press pass to the Super Bowl. The right tool for the job is what is needed. The pros know what tool to use and how to use that tool.
Likewise, a good programmer prefers the right tools for the job, and knows how to use them. But not all programming jobs are alike. While a language like PHP works great for many and perhaps most web applications, a programmer whose skill is limited to just PHP is not going to know when PHP doesn't do so well, and certainly won't be able to work with something else when it gets identified as appropriate. A PHP programmer is likely limited in experience to get web programming, and won't necessarily know much about many of the backend process chores that might be needed for a full application that happens to have a web interface to it (as so many these days do). A programmer who has experience in a number of languages (it doesn't have to be a huge number ... 4 to 6 languages of a diverse variety is usually enough) ... AND has done actual development in those languages at one time or another, is the one that is best equipped to make architectural decisions about how to set up an application.
And how many PHP programmers know to, and know how to, organize their coding effectively, such as clear separation of logic and content? PHP makes it so easy to NOT do the right thing. When I was doing evaluation of Y2K bugs for a client on January 2000, I found that the vast majority of the bugs that did crop up were errors of lack of experience by the programmer, and errors of convenience (it was easier to concatenate "19" and 2 digits of a year than it was to add 1900 to a numeric value that represented number of years since 1900). Languages like PHP and Perl with their strong facility with strings made it easy for the inexperienced programmer to do the wrong things. The experienced programmer could work in the same language and do the little extra effort to get it right. Programmers of a language like C where the right way is usually easier than the wrong way (comparatively speaking) would have acquired knowledge of the right way (do the calculation, then present the results), and could apply it in just about any language (certainly in all the major languages).
If I were hiring programmers for a job for which something like PHP or Python was an appropriate language choice, I would still hold experience programming in C to be of value. In lieu of that, assembly programming would have some value, too. In fact, given enough experience with enough different languages actually used for real development purposes, I would even hire someone who doesn't even know the language the project will use, because it would be clear they could learn the language (it's just a tool) while bringing real world development issue insight to the project. That fits in with your idea of the coder that doesn't really know any language.
Maybe. My alternative hypothesis is that the genes that cause the brain to be wired up for better social skills (mirror neurons) either cause analytical skills to not be developed, or else there is a fundamental conflict (e.g. the social skills themselves inhibit analytical skills). With less influence by such genes, the analytical skills can develop or come out.
There doesn't need to be any RFC. I simply send reports to abuse@${serverdomain} and ignore auto-replies. Once any one domain reaches a count of 3 separate incidents of spam, then no further email is accepted from that domain and no further reports are sent to them (the third and final report does say that they are now blacklisted due to our "three strikes" policy). One exception is if it is a case of a zombie machine operated by a customer of the ISP whose domain is in reverse DNS, and they provide a subdomain to aggregate these addresses for separate blocking, I block just that. ISPs that don't put customer addresses in a subdomain (alternative is to put the customer's own domain in as reverse DNS) do so at their own peril (their domain will get blacklisted at 3 incidents). If I do get any human response indicating steps taken to correct problems, I will, if I believe they are not lying to me, remove the incident counts against them. Of course, if they say they take steps to prevent spam, and I still get spam the same way, it will be obvious at some point they are not telling the truth.
I read elsewhere that 75% of what is coming OUT from Hotmail/MSN server is spam of one sort or another (and apparently mostly phishing and similar scams based on what I've gotten in the past). It's time to just refuse all email from Hotmail/MSN servers ... except for specific email addresses you know of by whitelisting them. This is what I have had to do (because Hotmail/MSN reached the point of representing more than 50% of all incoming spam because I've been rather effective at blocking spam from lots of other sources such as the bulk of home zombie machines). Just block them, whitelist any friends that still use it, and move on.
This is just another case of corporate greed. These companies are wanting to exploit the good work of thousands of dedicated free software developers so they can sell more hardware to more customers wanting something to run all these new innovative applications on.
Oh wait ... this is a good thing! I guess greed directed the right way can work wonders.
The really valuable data they are gathering is the invitation relationships. Who invites who. For example, if someone invites a lot of people that turn out to be spammers, then there is a good chance that person know who spammers are, and possibly even who invited them, too.
If they do that, great. That will mean better imaging with optics that are optimal at closer distances between rear element and objective image.
Thanks. The gPhoto link therein was actually where my greatest interest was. I guess time lapse might have been a bad example. How about having a camera commanded to shoot an image when triggered by another event, such as tripping an LED beam path by a wild animal or trespasser, or when requested by someone accessing a web site. The idea is I want to have the computer do it when I'm not there (or located remotely).
You might have to move up to medium format some day. I do know that black & white infrared film (the only kind I use) is made in medium format. You'll just have to be a lot more careful when loading the film in the camera (medium format is not a simple metal coverage cartridge as 35mm is) or have extra camera backs if applicable to the camera you might get.
Actually, digital can go to down to longer wavelengths than film can. I've heard of expensive digital cameras (mostly doing video output) going well down to 10,000 nm and longer (while film can only barely make it beyond 1300 nm without extreme handling requirements).
The standard image area in 35mm film cameras is 36mm x 24mm. Digital sensors, however, are smaller than that. This is why they tend to recommend using a lens of about 35mm focal length to get the same normal composition of a 50mm focal length lens with film. Some lenses are especially manufactured strictly for DSLR cameras by reducing the image coverage area to just that of the smaller digital sensor area. It costs less to make these because of the smaller lens elements and more compact size. It also means less weight for the photographer to hold. As the bulk of the market for secondary lenses migrates to DSLR cameras, it will mean more profit for the camera makers to limit manufacturing to just these kinds of lenses.
Digital sensors, however, do not operate as well (as film) when light is coming in at an angle. The further from the center of the sensor (or film image area), the more angled is the light that forms the image. The close the rear aperture of the lense is to the sensor, the worse this angle. It will still be a good idea to keep the sensor some distance back from the lens (not an issue except for rectilinear ultra wide angle lenses). While eliminating the flapping mirror will help reduce mechanical vibration of the camera, I suspect we'll see many "hybrid viewfinder" cameras in which the optical path can still be used for the best quality setup and focus, but the mirror can be locked out of place and the digital viewfinder (perhaps integrated into the same eyepiece) can be used to decide when to actually make the shot(s).
I'm also looking forward to digitally operated lenses where the elements can be moved in ways not easily done by mechanical methods, including different configurations to optimize for different aperture (stop down) settings.
... if I can find a suitable camera that will work flawlessly with Linux or BSD giving me full resolution raw uncompressed (or at least losslessly compressed such as PNG) image files without requiring special software from the camera maker (unless it comes in open source form ready to compile on Linux or BSD). As an added bonus, it would be nice if the camera can also be controlled via the same connection (USB, Firewire, Ethernet) to make it actually shoot pictures when my software decides it's time to shoot (nice for making high definition time lapse movies, for example).
Even though I presently have 2 cameras and several lenses from the Nikon line, I have already decided to abandon Nikon due to their non-open raw image format as reported on 19 April 2005, 23 April 2005, and 25 April 2005.
If they need a specific amount of equipment that uses a specific amount of power, then it seems silly to require them to expand to a larger building if the existing building is capable of handling the cooling load. This is just a ploy to force businesses to occupy more land so the county gets more land tax revenue.
Then I guess I should quit coding in C and go back to assembly.
If your county doesn't serve businesses well, then move to another county that does. I'm sure the new county will be happy to have the employment move in.
... are they going to tax it based on how many copies I have made of it? If I put MS Windows on 100 PCs legally, I have to either buy 100 copies, or get some enterprise licensing that still amounts to a discount times 100 or so, well more than the base price of one copy. Yet with many retail open source packages, I buy just one copy and can install it on those 100 PCs. And what if I downloaded it? Does that count the same as buying one copy?
What if I have one piece of software worth say $100 and use it on 2 PCs, and have another piece of software worth about the same but use it on 50 PCs? Is that going to be taxed differently? What if both are installed on all PCs? What if all software is accessible to all PCs via network file sharing?
While I have some concerns over being taxed on it (aside from the fact that I don't live in Tennessee, though this could potentially happen in other places, too), I'm actually more concerned about the impact that as-yet-unknown methods of counting will have on how computer and networks have to be managed. For example, it can be very convenient to have every program accessible from every computer on the network, but if the tax structure counts each PC the software is usable from (as opposed to is used from, which would be even harder to do), then I would be forced to make technical changes in the network structure that have no technical merits.
If I did live in Tennessee, I guess I would have to put my data center in another state.
It's needed when reading email.
How would it identify a proxy server? If it adds information on each web query (somehow) then for a proxy server, would it not identify the proxy machine itself, instead of the users? That could be interesting for ISPs put user web access through a proxy. If there's a way an ISP can make that not happen, then a user could set up something just like that at home to make that not happen (and program the proxy to filter out whatever got added at the client machine).
That would be one sophisticated device if it can modify a network stream independent of all interface devices and independent of all operating systems. In reality it's really going to have to be something that is voluntarily used, requiring implementation to access it in the OS and/or client. If you choose not to use it, then you would either lack the information the web server is asking for, or try to fake it and fail because the information is strongly encrypted. Such a server might choose not to serve you because of that (for example servers to file your income taxes) while others won't deploy any such checks because of the nature of their market (e.g. pr0n servers).
Not to underrate AIT's scumminess, but did you try to get the charges reversed through your credit card company, and upon 2nd fraudulent billing, get that merhcant blocked on your card? The better credit card companies will clear these things up. They may need your request in writing, but this can be done. I know, because I've done it before (not with AIT since I've never done business with them).
And FYI, your link is broken. Shouldn't it be http://aitsucks.com/? You're supposed to check you links on /. before clicking submit.
Better yet, have it install Ubuntu and solve the longer term problem, too. :-)
I've heard about this problem, but I don't recall whether it is due to a bug in glibc, or a bug in Redhat's many modifications. I just know I haven't run into any such problem in Slackware. I don't even touch Redhat anymore given so many issues like this.
Maybe you should do a survey of your Linux customers and find out exactly why they chose the distribution they are using. I'll bet the answer mostly turns out to be things like "more applications support it". Then you'll see the circular argument. Suffice it to say, if more software makers supported a platform like Slackware or Ubuntu, then more people would choose it. When more people choose it, your market for that version enlarges. There will be other reasons for choosing something like Redhat, such that's what the CEO first heard of.
Then take the subset of cases where the decision of which distribution was left up to a technical person who has lots of experience, and you'll find a wider, and better, variety.
One possible contributor to the memory issue here, and in some other programs, could be the way the memory is allocated. Memory is obtained from the kernel in chunks a multiple of a page size. These pages cannot be returned back to the kernel unless all usage of the entire page is gone. Memory usage for a typical object tends to be small pieces. If the pieces allocated for one page (in one tab) are interleaved with pieces allocated for another page (in another tab), then closing one of those tabs, even if the mainline code destructs all objects which correctly free all their underlying memory allocations, does not necessarily result in pages being released back to the kernel.
So how can memory allocations get scattered around like that? Consider that many objects need to persist as long as the page exists, but many others can be destructed because they are only needed when the page is being loaded or rendered. During loading and rendering, both sets of objects can be created in a mixture. Then the non-persistent ones would be destructed. Because of the order of allocation of underlying memory, the persistent objects tend to be interleaved with the non-persistent ones. That then means most pages may have some persistent object lying around, preventing it from being returned to the kernel.
Solutions to this problem would be difficult. But I also think this effort would be valuable for any and all large projects that can face this kind of memory issue. Some means is needed to control the memory alloction, and in particular to allow grouping of memory into contexts. The first kind of context would be a context for each tab or window being opened by the browser user. That way, if a tab is closed, it should substantially destruct objects grouped together. But this can also be wasteful because the non-persistent objects that do get destructed after rendering is done cannot have their memory recycled by other contexts. So another dimenstion of context needs to be on the basis of what is persistent vs. non-persistent, so that all non-persistent memory gets grouped together so it can be returned to the kernel as whole pages, which can then be recycled to other contexts (getting the pages from the kernel again).
This would require a much more involved memory allocation system. Further, it would also require major changes in many of the abstract programming classes used by such large programs ... in ways that tend to be counter to what the abstraction is all about in the first place. Abstraction is supposed to hide details about the underlying implementation so the programmer can/should concentrate on application logic. But this is not really an optimal way to program when dealing with limited resource issues that need to be managed, such as the memory issues seen here. In particular, the various classes themselves won't know whether they are persistent (in the context of what the browser application needs) or not. Many instances of the very same class may be created for both persistent and non-persistent intents, so the class itself could never be designed to make any such assumptions (e.g. think of hiding the details in reverse ... the class does not see the details of the application, e.g. which instances are to be long lived and which are not).
A concept that may help with this is one that would have to be applied to the whole of such object oriented programming, or even non-OO functions that also could allocate memory for such variant uses (this isn't fundamentally an OO problem ... OO merely exposes it due to the larger application scale that OO enables to be implemented). This concept is to create instance groups that can span laterally across all classes. It would require that each time an instance is created, that it be associated with a particular instance group. Then instead of destructing each instance individually, the group is destructed, which destructs all instances in the group. The implementation of all thi
I've switched to opening links in new windows a lot now. In part this is because I want to group a set of tabs together. And it's easier to just close the whole mess by closing that whole window (generally all on one site or about one topic). But it seems FF is not free-ing up memory in these cases, either.
I don't see why a tab or a new window should be different internally, though. It should only be a matter of associating the state of a loaded page with a given display context. The real issue, though, is the memory management issue. Apparently something fundamentally wrong in the browser architecture is preventing that. I highly suspect it is due to over-abstraction and/or the inability of some tools they are using to properly destruct objects that are no longer needed. It does seem that large complex software projects such as this do tend to suffer a lot of complexity issues that result in basic things like free-ing memory becoming impossible to do. I don't encounter these problems in my programs, but then, I don't do anything nearly as large as Firefox, nor do I use a team of developers, nor do I use all these abstract tools by ignoring their internal operation implementations. I'll be curious as to the actual, real cause.
One of the things I occaisionally do is set up older computers that would otherwise end up in an environmentally dangerous scrap heap so they can be used by people that otherwise be unable to afford a computer (at least one with all legal software loaded). A lean configuration of Slackware has worked well before. I'm considering using Ubuntu in the future, but it raises the lower limit on memory. And Firefox on any of these has posed problems.
But the real problem is these older machines are limited in how much memory can be added at all. I have machines around that can't go above 32 MB or 64 MB. My own desktop is an 800 MHz machine that is now at the maximum 512 MB of RAM (the Intel chipset won't go higher) already has Firefox issues on a few web sites that are heavy on images and such.
I do have the following suggestion I have made elsewhere which seems to be ignored by the Firefox developers. I can set Firefox to just not load images at all. But that is annoying. What would help a lot is to have a configuration setting to go ahead and load images, but just not run animations of animated images. In addition, a pair of buttons to turn on and off the image animations would be very valuable. Also, a right click menu item for each image individually that would allow turning it's animation on and off (present if that image is an animated one) would help. Same for Marquees.
Slackware matters to me. It's so far the only distribution I can use as a basis for the specialized systems I put together. It can be tweaked and changed around without suddenly and mysteriously breaking. I rewrote all the rc scripts in /etc from scratch in one day and they just worked on Slackware. I tried the same on Redhat with no success after deciding that one week was the limit of time I should pursue on that. Slackware is also the only system that I've been able to install entirely in a subdirectory on an existing system (an earlier Slackware version). I do it this way almost exclusively since 8.0 to do my installs, instead of booting from a CDROM. It's easier to rsync replicate onto various machines. And it's easier to build into a custom bootable CDROM (and a single CD that can boot on both x86 and Sparc thanks to Slackware's Sparc spinoff Splack).
Debian is probably the best alternative option if Slackware ceased being. But it has a more difficult (e.g. SysV based) rc system (which I'd replace first). With a number of Debian derivatives (such as Ubuntu which I have been playing around with since I got my 5.10 disks a few days ago), it's clearly at least a workable system I should spend a little more time with.
Otherwise it would be BSD (probably OpenBSD, but maybe NetBSD) for me.
Slackware matters to me for much the same reason Linux matters to me. Despite all the pressure (mostly from those trying to "mainstream" it into business and corporate culture, or commoditize it) to make Linux be totally uniform, the greatest think I love about Linux, and Slackware, is its ability to be molded into what I want to make of it.
BTW, my sister-in-law has told me she's ready to give up Windows if I can get this one application she needs working under Linux in a Windows emulator (maybe Wine). I'll have to work on that and see if it will run. But it won't be Slackware for her. She gets Ubuntu. Slackware matters; just not for everyone.