In the daemon's advocate column, Greg Lehey explains Microsoft's SIS (the symlink thing) and why they aren't really the same as symbolic links. Pretty informative.
Linux isn't really built around a single code base, although it is certainly more of a single code base than BSD is.
I was under the impression that the Linux code base was unified. Sure, the drivers are contributed and maintained by random folk, but Linus has the final say over what is part of Linux. This sounds like a single code base to me, as opposed to the *BSD's, where there are four code bases which have almost nothing in common except history.
That's the argument that Microsoft has been trying to sell you for a while now. Why take the time to put something else on this PC? It already has Windows. Why bother doing something else, something risky, or experimental, even if you stand to gain quite a bit from the experiment?
Sorry, don't mean to jump on you -- but this sort of thing (porting something from one platform to another) is exactly what advances the state of technology. Being able to take an OS and customize the shit out of it (which you only really do with source code access), to me, justifies bying a limited functionality box like this one and only building exactly what you need on it.
Imagine how much they could charge for listing your company's name on the outside of their envelope, associated with the word porn. You know that every 14-year-old boy who saw this in the mailbox wrote down every URL, and probably visited them all. That's thousands, possibly more, of banner ads that will get served just to people looking for porn. Come to think of it, all those concerned parents are also going to look at all the sites listed, for similar reasons ("Gotta find out which site to block"). If I owned a company, and needed some sneaky ad money, I would jump at this chance.
Although it's not really the same thing, this reminds me of how search engines will prominently feature ads for certain companies based on search terms (Ford ads when you search for "cars", etc).
I should probably state up front that, when it comes to organizing files and directories, I am a huge fan of hierarchies and namespaces. Nothing is more frustrating than a disorganized FTP site, and few things are harder to use.
The easiest way to layout your file system, for FTP, is by functionality. I don't know what you are putting in there (the final answer depends greatly on this, of course), but I am going to assume that your company makes software products and is making the source/binaries available via anonymous FTP.
Other than the standard subdirectories required for operation of the FTP server (/bin,/etc,/lib,/dev), create a directory called/pub. Create a sibdirectory called software (which will live next to your mirrors subdirectory, natually:) ). In/pub/software, create a subdirectory for each package name. So here is a sample/pub:
If you have multiple versions of your software available, and if you provide source as well as binaries, you can further subdivide each packages subdirectory with src and dist subdirectories, putting Foo-0.1.tar.gz into/pub/software/Foo/src and Foo-0.1-linux-gnu-pc.tar.gz into/pub/software/Foo/dist.
I think this makes for a well-organized FTP system where things are easy to find, even if a particular user isn't very familiar with your system. It maintains a clear distinction between version numbers and software packages. Using symbolic links, you can point to the correct versions of required libraries. This also makes your FTP site very easy for other sites to mirror. Did I mention that I like namespaces and organizational hierarchies?
these versions are being produced by someone with access to the source code
When will this someone make the code available? If the source is not supposed to be out there, floating around, you would think that it benefit from being distributed. Stick it on a few anonymous servers, have a bunch of people archive it on their harddrives, and then eventually, distribute it on via gnutella.
Now here's a thought: what if there was a generic XML dialect (KML (Kernel Markup Language)?) that wasn't Linux specific -- if the maintainers of the Linux kernel, HURD, and the BSDs were able to come together, decide upon the standard feature set (without the specifics of implementations, i.e., modules as opposed to microkernel plugins) of modern kernels, and create an XML specification that would be valid across different kernels? Something where I could say, for instance, "give me PPP support, sound support, and ip masquerading, but not NFS or automounter support in my kernel", and have the same KML file be interpreted correctly whether I am compiling Linux, OpenBSD, or HURD. Now that would be groovy -- for those of us that need to run different platforms or different machine types.
Of course, I have no idea if this is feasable, it just seems like a pretty cool idea to me.
Over the last few months I've rebuiltmy kernel many times. often to try new features, or just to see what the differences were between stable and development, for example. I've found that the first few times are difficult (thank goodness I've had someone to give me a hand), but after that, I really haven't had a problem. Perhaps the kernel configs are getting a little complicated, but I don't think that means someone should write a markup language for it.
Besides, isn't the whole thing already managed by individual makefiles? Each developer adds a makefile to the subsection holding their module, and make calls the targets recursively? ls -R/usr/src/linux-2.3.51 | grep 'Makefile' | wc -l gives me 256 Makefiles, so that seems to be how it works.
Re:Things I found in a computer case
on
Quickielanche
·
· Score: 3
At the last job I was at, we used to order HP monitors with every PC we bought (total of about 200 or so over 3 years), and every single one had a nicely folder cheetos bag in it (the single serving snack size one).
This caught my eye early this morning, and my first reaction was, "Are they going to raise the price of VMWare?" There's already a "Windows tax" on new PC's, is there going to be one on VMWare?
I have to wonder if this is the first step of Micro$oft's plan to move into Linux territory. Why port Office to Linux, if they can keep all the Windows-to-Linux converts using Office? Office is where their money comes from anyway.
I treat this in the same way that I treated the annoucement of Micro$oft's investment in Apple -- partly for the PR, partly to make it seem like they are playing nice in the business field, and partly to see if this can be a profitable outlet for Office and their other tools.
Nah, don't be silly. If I want to bypass this, and I own a web site, I'll write a 3 line Perl script to proxy the page from my server, and set the referer appropriately. Child's play, if you're determined enough.
I've been thinking about doing something similar for a while: create a "standard" personal distribution that can just be dropped into place on a new machine. It seems like the best plan would be to install a new machine exactly how you want it, and, on a spare partition, create one bigass tarball. Copy this tarball to a CD. Create a boot disk, minimal kernel with CD support. Boot off the boot disk, create the new partitions, and then untar the image from the CD. Is this an oversimplification? Maybe, but maybe not. There's really no reason why Linux has to be more difficult than this. Of course, this assumes that the machines have similar hardware, which is often the case when you get machines in batches. darren Cthulhu for President!
Here's to hoping that Micro$oft releases their source code to the public.
I'm not sure if I'm in the minority here, or what, but I'm pretty anxious to see the source code for Windows. I think it'd probably be very instructive, even if (as a lot of nay-sayers say) it would be a lesson in what not to do.
But if this actually happened, what would be considered the source code for windows? Windows 2000 has a very different code base than, say, Windows 95 (which is DOS-based); would all the versions be released? I suppose the answer depends on whether they are forced by judicial mandate to release it, or if they release it based on a settlement of their own devising.
The classes seem pretty PC/Mac oriented. This is not actually all that surprising -- I didn't expect Kernel Internals or anything -- and probably not all that bad. The intro courses (Introduction to Embedded Programming: DSP and the C, C++, and Java classes) look promising. The platform specific C++ classes (MFC, Mac) are probably a Godsend to someone who isn't me. All in all, it looks pretty promising. I registered, and am waiting to be notified of a bunch of classes...
When I sign up for a user account at a particular site, I like to use a simple password at first (a variation on something obvious, like 'pa55w0rd') until I'm sure that I like the site and will continue visiting. If there is some information there that I consider worthwhile, I'll visit more often, and take the time to come up with a decent password. But often, strong passwords are unnecessary -- people who are forced to choose difficult passwords against their will tend to forget them, and often won't come back, whereas people who choose good passwords and are concerned with the integrity of their (insert site here) account will tend to be more conscientious.
Here are some suggestions:
assign passwords. Choose a 10-character password with random alphanumerics and assign the password to that user (as Slashdot does when you create the account), and don't let them change it.
Ensure that the length of the password is greater than 8 characters.
ensure that no two characters next to each other are the same (to avoid passwords like '666' or 'fffffffff')
good mix of uppercase, lowercase, and numbers, with at least one punctuation character.
The problem with password validation is that it tends to not be fast, and running it over the web on a busy site, where there may be dozens or even hundreds of simultaneous instances of this password validator running, can get extremely messy. Keep it simple, whatever you do.
Here's a thought -- have the user enter a "password suggestion," rather than an actual password. Then run it through some sort of standard filter(s) -- for example, rot13 it, then turn it into piglatin, and then transform it into k3wlt0k. (Perl's Text::Bastardize module will do all of these, and more). That way, their preferred password is (sort of) preserved, while you are ensured that they have a (somewhat) obfuscated password. Coupled with minimum password lengths (like 8 or 10 characters) means a password that, at the very least, is pretty silly, and not something like "MyDogFred".
True example: I have a friend who insists on using the name of the site the password is for as the password, so that he will not forget it. Dumb dumb dumb.
And exactly which ls do you think you'll be using? To the best of my knowledge, and I may be wrong here, but the only freely available copies of most of the software that is considered "standard" is the GNU versions. The *BSDs use GNU tools, and all the proprietary vendors (Sun, Digital, HP-UX, IBM, SGI, BSDI, etc) have their own proprietary versions of the tools. So, which tools are these?
You raise some good points, but miss something very important. This is not (or, at least, should not be) about being Anti-Micro$oft; it's about offering other operating systems. I also am a very firm believer in using the appropriate tool for the job; as well as being very much pro-*nix, I am a M$-Certified Professional, and spent a lot of time with NT, Win9x, NetWare, MacOS, and DOS. There are times when Windows 95 is the most approriate choice -- I would probably never recommend Linux to a non-technical person if they didn't have an interest in learning about it -- but there are many, many times when it is not. Too often people choose the default, rather than the best option. Kind of like when you build Perl -- many questions say, "If you don't understand this question, just hit ENTER." This is not always the best option (although it is correct much more often in the case of Perl than it is with OSes).
From our perspective (the users out there who care about what OS/tools/software we use), there are much better options that M$ windows/office/visual *++ -- but for many casual users, this may not be the case. But this is not the point. This whole thing is about decisions being made for you. Nothing more, nothing less.
This, by the way, is why I will never again use an Apple operating system without an 'X' in it.
Re:There's a BIG problem with WorkSpot
on
Update On WorkSpot
·
· Score: 2
Are you sure that's the only thing that's special? I suspect that if that script ran "passwd root", the effects would qualify as "special".
Nope, still nothing special about the name "root". It's a character string, nothing more, nothing less. The problem, though, is that Unix searched through the password file line by line and stops when it reaches the name it is looking for. So, "passwd root" will do what you think it will if the admin hasn't changed the name associated with UID 0. Many, if not most, good sysadmins change the superuser's name.
By the way, even Microsoft recommends, as part of the standard "NT hardening", changing the name of the Administrator and Guest accounts.
But, just as an aside, if you use a system with shadow passwords (good idea) and you want to change the name of the root user, be sure to do it in both/etc/passwd and/etc/shadow (or run/usr/sbin/pwunconv first) before you log out as root, or you'll in a world of hurt (have your installation media close by if you do this!). Experience talking here...
In the daemon's advocate column, Greg Lehey explains Microsoft's SIS (the symlink thing) and why they aren't really the same as symbolic links. Pretty informative.
darren
Cthulhu for President!
Anyone know what this statement means?
I was under the impression that the Linux code base was unified. Sure, the drivers are contributed and maintained by random folk, but Linus has the final say over what is part of Linux. This sounds like a single code base to me, as opposed to the *BSD's, where there are four code bases which have almost nothing in common except history.
Can anyone clarify this for me?
darren
Cthulhu for President!
That's the argument that Microsoft has been trying to sell you for a while now. Why take the time to put something else on this PC? It already has Windows. Why bother doing something else, something risky, or experimental, even if you stand to gain quite a bit from the experiment?
Sorry, don't mean to jump on you -- but this sort of thing (porting something from one platform to another) is exactly what advances the state of technology. Being able to take an OS and customize the shit out of it (which you only really do with source code access), to me, justifies bying a limited functionality box like this one and only building exactly what you need on it.
darren
Cthulhu for President!
Imagine how much they could charge for listing your company's name on the outside of their envelope, associated with the word porn. You know that every 14-year-old boy who saw this in the mailbox wrote down every URL, and probably visited them all. That's thousands, possibly more, of banner ads that will get served just to people looking for porn. Come to think of it, all those concerned parents are also going to look at all the sites listed, for similar reasons ("Gotta find out which site to block"). If I owned a company, and needed some sneaky ad money, I would jump at this chance.
Although it's not really the same thing, this reminds me of how search engines will prominently feature ads for certain companies based on search terms (Ford ads when you search for "cars", etc).
darren
Cthulhu for President!
I should probably state up front that, when it comes to organizing files and directories, I am a huge fan of hierarchies and namespaces. Nothing is more frustrating than a disorganized FTP site, and few things are harder to use.
The easiest way to layout your file system, for FTP, is by functionality. I don't know what you are putting in there (the final answer depends greatly on this, of course), but I am going to assume that your company makes software products and is making the source/binaries available via anonymous FTP.
Other than the standard subdirectories required for operation of the FTP server (/bin, /etc, /lib, /dev), create a directory called /pub. Create a sibdirectory called software (which will live next to your mirrors subdirectory, natually :) ). In /pub/software, create a subdirectory for each package name. So here is a sample /pub:
If you have multiple versions of your software available, and if you provide source as well as binaries, you can further subdivide each packages subdirectory with src and dist subdirectories, putting Foo-0.1.tar.gz into /pub/software/Foo/src and Foo-0.1-linux-gnu-pc.tar.gz into /pub/software/Foo/dist.
I think this makes for a well-organized FTP system where things are easy to find, even if a particular user isn't very familiar with your system. It maintains a clear distinction between version numbers and software packages. Using symbolic links, you can point to the correct versions of required libraries. This also makes your FTP site very easy for other sites to mirror. Did I mention that I like namespaces and organizational hierarchies?
darren
Cthulhu for President!
...Actually, the protocol specs are at http://capnbry.dyndns.org/gnutella /protocol.html
darren
Cthulhu for President!
When will this someone make the code available? If the source is not supposed to be out there, floating around, you would think that it benefit from being distributed. Stick it on a few anonymous servers, have a bunch of people archive it on their harddrives, and then eventually, distribute it on via gnutella.
Cthulhu for President!
I always wondered what this script would be...
#!/bin/sh
Or maybe
#!/bin/sh
/usr/lib/netscape/netscape done
while true ; do
darren
Cthulhu for President!
Now here's a thought: what if there was a generic XML dialect (KML (Kernel Markup Language)?) that wasn't Linux specific -- if the maintainers of the Linux kernel, HURD, and the BSDs were able to come together, decide upon the standard feature set (without the specifics of implementations, i.e., modules as opposed to microkernel plugins) of modern kernels, and create an XML specification that would be valid across different kernels? Something where I could say, for instance, "give me PPP support, sound support, and ip masquerading, but not NFS or automounter support in my kernel", and have the same KML file be interpreted correctly whether I am compiling Linux, OpenBSD, or HURD. Now that would be groovy -- for those of us that need to run different platforms or different machine types.
Of course, I have no idea if this is feasable, it just seems like a pretty cool idea to me.
Cthulhu for President!
Over the last few months I've rebuiltmy kernel many times. often to try new features, or just to see what the differences were between stable and development, for example. I've found that the first few times are difficult (thank goodness I've had someone to give me a hand), but after that, I really haven't had a problem. Perhaps the kernel configs are getting a little complicated, but I don't think that means someone should write a markup language for it.
Besides, isn't the whole thing already managed by individual makefiles? Each developer adds a makefile to the subsection holding their module, and make calls the targets recursively? ls -R /usr/src/linux-2.3.51 | grep 'Makefile' | wc -l gives me 256 Makefiles, so that seems to be how it works.
darren
Cthulhu for President!
Wasn't the solution to this problem posted a few days ago? The Unmaintained Free Software Open Source project is your answer. It would help out UFO a lot too, to get such a high-profile site on there.
darren
Cthulhu for President!
At the last job I was at, we used to order HP monitors with every PC we bought (total of about 200 or so over 3 years), and every single one had a nicely folder cheetos bag in it (the single serving snack size one).
Weird.
darren
Cthulhu for President!
. . . here. They must have a lot of faith in it, huh?
darren
Cthulhu for President!
This caught my eye early this morning, and my first reaction was, "Are they going to raise the price of VMWare?" There's already a "Windows tax" on new PC's, is there going to be one on VMWare?
I have to wonder if this is the first step of Micro$oft's plan to move into Linux territory. Why port Office to Linux, if they can keep all the Windows-to-Linux converts using Office? Office is where their money comes from anyway.
I treat this in the same way that I treated the annoucement of Micro$oft's investment in Apple -- partly for the PR, partly to make it seem like they are playing nice in the business field, and partly to see if this can be a profitable outlet for Office and their other tools.
darren
Cthulhu for President!
Nah, don't be silly. If I want to bypass this, and I own a web site, I'll write a 3 line Perl script to proxy the page from my server, and set the referer appropriately. Child's play, if you're determined enough.
darren
Cthulhu for President!
Did a quick freshmeat search, and found a few. Hotbot returned "fewer than 1000" results for "web-based software management software" (exact phrase). Topclick has 61 results for "web-based project management software" (with quotes included); Google also returned 61 for the same query, although the order was different.
Sorry about just pasting in URLs -- I don't have any first hand experience with any of them.
oh yeah, er, um, first post.
darren
Cthulhu for President!
So, has anyone written a Lisp interface for Mindstorms yet? I know about not-quite-c...
darren
Cthulhu for President!
I've been thinking about doing something similar for a while: create a "standard" personal distribution that can just be dropped into place on a new machine. It seems like the best plan would be to install a new machine exactly how you want it, and, on a spare partition, create one bigass tarball. Copy this tarball to a CD. Create a boot disk, minimal kernel with CD support. Boot off the boot disk, create the new partitions, and then untar the image from the CD. Is this an oversimplification? Maybe, but maybe not. There's really no reason why Linux has to be more difficult than this. Of course, this assumes that the machines have similar hardware, which is often the case when you get machines in batches. darren
Cthulhu for President!
Here's to hoping that Micro$oft releases their source code to the public.
I'm not sure if I'm in the minority here, or what, but I'm pretty anxious to see the source code for Windows. I think it'd probably be very instructive, even if (as a lot of nay-sayers say) it would be a lesson in what not to do.
But if this actually happened, what would be considered the source code for windows? Windows 2000 has a very different code base than, say, Windows 95 (which is DOS-based); would all the versions be released? I suppose the answer depends on whether they are forced by judicial mandate to release it, or if they release it based on a settlement of their own devising.
darren
Cthulhu for President!
The classes seem pretty PC/Mac oriented. This is not actually all that surprising -- I didn't expect Kernel Internals or anything -- and probably not all that bad. The intro courses (Introduction to Embedded Programming: DSP and the C, C++, and Java classes) look promising. The platform specific C++ classes (MFC, Mac) are probably a Godsend to someone who isn't me. All in all, it looks pretty promising. I registered, and am waiting to be notified of a bunch of classes...
darren
Cthulhu for President!
When I sign up for a user account at a particular site, I like to use a simple password at first (a variation on something obvious, like 'pa55w0rd') until I'm sure that I like the site and will continue visiting. If there is some information there that I consider worthwhile, I'll visit more often, and take the time to come up with a decent password. But often, strong passwords are unnecessary -- people who are forced to choose difficult passwords against their will tend to forget them, and often won't come back, whereas people who choose good passwords and are concerned with the integrity of their (insert site here) account will tend to be more conscientious.
Here are some suggestions:
The problem with password validation is that it tends to not be fast, and running it over the web on a busy site, where there may be dozens or even hundreds of simultaneous instances of this password validator running, can get extremely messy. Keep it simple, whatever you do.
Here's a thought -- have the user enter a "password suggestion," rather than an actual password. Then run it through some sort of standard filter(s) -- for example, rot13 it, then turn it into piglatin, and then transform it into k3wlt0k. (Perl's Text::Bastardize module will do all of these, and more). That way, their preferred password is (sort of) preserved, while you are ensured that they have a (somewhat) obfuscated password. Coupled with minimum password lengths (like 8 or 10 characters) means a password that, at the very least, is pretty silly, and not something like "MyDogFred".
True example: I have a friend who insists on using the name of the site the password is for as the password, so that he will not forget it. Dumb dumb dumb.
darren
Cthulhu for President!
And exactly which ls do you think you'll be using? To the best of my knowledge, and I may be wrong here, but the only freely available copies of most of the software that is considered "standard" is the GNU versions. The *BSDs use GNU tools, and all the proprietary vendors (Sun, Digital, HP-UX, IBM, SGI, BSDI, etc) have their own proprietary versions of the tools. So, which tools are these?
darren
Cthulhu for President!
Here is what I came up with...
darren
Cthulhu for President!
You raise some good points, but miss something very important. This is not (or, at least, should not be) about being Anti-Micro$oft; it's about offering other operating systems. I also am a very firm believer in using the appropriate tool for the job; as well as being very much pro-*nix, I am a M$-Certified Professional, and spent a lot of time with NT, Win9x, NetWare, MacOS, and DOS. There are times when Windows 95 is the most approriate choice -- I would probably never recommend Linux to a non-technical person if they didn't have an interest in learning about it -- but there are many, many times when it is not. Too often people choose the default, rather than the best option. Kind of like when you build Perl -- many questions say, "If you don't understand this question, just hit ENTER." This is not always the best option (although it is correct much more often in the case of Perl than it is with OSes).
From our perspective (the users out there who care about what OS/tools/software we use), there are much better options that M$ windows/office/visual *++ -- but for many casual users, this may not be the case. But this is not the point. This whole thing is about decisions being made for you. Nothing more, nothing less.
This, by the way, is why I will never again use an Apple operating system without an 'X' in it.
darren
Cthulhu for President!
Nope, still nothing special about the name "root". It's a character string, nothing more, nothing less. The problem, though, is that Unix searched through the password file line by line and stops when it reaches the name it is looking for. So, "passwd root" will do what you think it will if the admin hasn't changed the name associated with UID 0. Many, if not most, good sysadmins change the superuser's name.
By the way, even Microsoft recommends, as part of the standard "NT hardening", changing the name of the Administrator and Guest accounts.
But, just as an aside, if you use a system with shadow passwords (good idea) and you want to change the name of the root user, be sure to do it in both /etc/passwd and /etc/shadow (or run /usr/sbin/pwunconv first) before you log out as root, or you'll in a world of hurt (have your installation media close by if you do this!). Experience talking here...
darren
Cthulhu for President!