I know you can still get 5.x to run on a 486DX (not the SX - it requires a hardware FPU), and I believe it will run on a 386DX if you have an external floating point chip. Unfortunately, 5.x would need to be recompiled with different compiler flags to run, so installation might be a challenge!
3.x and 4.x both run fine on 386 and 486 class chips.
Why we use FreeBSD
on
Why FreeBSD
·
· Score: 5, Interesting
We use FreeBSD a lot; small firewalls on obsolete hardware, SMP database servers (PostgreSQL and MySQL, mainly), LDAP servers, mail servers, NFS/samba file servers, web servers, servers to monitor servers... just about anything that doesn't HAVE to be Windows to satisfy a client's desire for Exchange.
In general, it is rock solid; I've seen a FreeBSD server with a load of 80-something (process went nuts), and still been able to login and take corrective action without rebooting. I remember being quite shocked to find a console reporting that / was inaccessible due to a drive error - but server processes on other partitions continued to run just fine anyway. We've had a few hiccups with 5.x (although 5.4 fixed most of them), but our testing of 6-beta is going really well. FreeBSD is the masochist of operating systems: you hit it, and it just keeps asking for more!
There are other reasons to love it. The ports system is very solid, and it's been years since we had problems applying an upgrade due to dependency issues. The documentation is marvelous - man pages are useful, and the handbook covers most things. The community support mailing lists are very useful, too. Jails provide a convenient way to partition processes on a single server, although they are far from perfect at this point (they keep improving, though).
I really can't say enough good things about FreeBSD. It has been running most of our hosting setup, and many of our client's networks for years, and the only time we ever seem to run into problems is when hardware dies.
(For the record, I also use Debian - and it is good, but I prefer FreeBSD for servers that have to be trusted)
You can become a member of the US military without being a US citizen - they even go so far as to advertize it to aliens as a way to work towards citizenship! When I was an F1A foreign student (getting my Master's at SMSU, in Springfield MO), I received several recruiting brochures.
What's worse, is that non-resident aliens are signed up for Selective Service and could in theory be drafted to fight for the US without any real ties to it other than doing a degree there! I was positively shocked to find out that I could be conscripted to fight for the USA, even though I am a British citizen (I'm now a green-card holder, which means I pay taxes but can't vote... so much for "no taxation without representation" - maybe I need a tea party!)
I have a blind couple as a client, and was surprised to find a big-screen TV and DVD player in their front room. Apparently there is quite an industry in selling movies for the blind - complete with voiceovers telling you what's happening. From what they said, porn dominates that market, too!
I agree about Lindows, although I'm told that the most recent release (isn't it Linspire now?) doesn't give root by default. If true, that's a great improvement. (I do know a few desktop users who've switched to Linux, and spent most of their time as root - sometimes even after my explanations as to why that's a really bad idea; ignorant users are a problem everywhere!)
I also agree that in the real world, you don't see a lot of virus activity in *NIX. I do think that part of this comes from Windows providing a large, easy target; if Linux becomes a very popular desktop OS, I think we'll see a fair amount of malware developed for it. I'm not sure how much of it will be the traditional file-virus (and floppies!) variety, given that worms have a much easier time spreading (more likely, we'll see a few hybrids, viruses that propogate locally through files, but employ worm spreading techniques). With network shares showing up as mounts, it's possible to foresee an infected server spreading file viruses within an organization - but short of the odd CD burned with infected files on it, I think the mass-spreading days of traditional viruses are numbered (probably on most platforms).
AV vendors have a vested interest in scaring us (although some of their products for *NIX are very useful, for example malware scanning on mail servers - even if 99.999% of the items blocked are Windows nasties), and will probably make some headway selling their wares if Linux on the desktop becomes more prevalent/more of a target. They may turn out to be a necessary evil in the long run, although I hope not.
Finally, patching is a solution (on most platforms - a patched Windows box with sensible security settings survives pretty well in my experience), but then you have a different problem: patch management. Patches sometimes break things, so it is common to have patches quarantined and tested before deployment (giving a larger lead time for 0-day exploits). While the various *NIX update tools are good, it can still be a hassle to keep a few hundred servers, and a few thousand desktops all patched - and have them stay patched consistently. Easier under *NIX than Windows (although WUS helps a LOT), but still a problem. For home users, it's even more of a problem - you have to decide between helping users whose system dies horribly when an automatic update goes wrong, versus accepting that users will probably never get around to updating their system if you don't make them (and even with nice front-ends, apt-get dist-upgrade still causes issues occasionally!)
I think the reason people jumped on your posts is that it isn't the clear cut issue you make it out to be - and zealotry in security matters quickly turns into either denial, chasing the New Best Thing, or embarrassment when things go wrong. Sure, Windows is a lot more vulnerable/targeted than Linux. However, that may not always be the case, and until we somehow come up with bug-free system binaries/permissions, and a rock-solid trusted execution system (that isn't MS-style TCPA, doesn't violate user rights, etc.) that will always be the case.
I believe what the parent is trying to say is that while the default security model in *NIX derived OSes is pretty strong, it isn't perfect. All you need is one privilege escalation bug (giving root access to a normal user's process), and root ownership/non world writable status of files is no longer a problem for the virus seeking to run in/bin (or wherever). There have been a few Linux advisories of just this type of bug (for example, this one - first thing I found with a quick Google search), as well as for FreeBSD, OpenBSD, Mac OS X, etc.
It is unlikely that we've seen the last ever privilege escalation bug in Linux.
Linux is not even on the radar screen for midsize businesses. The survey involved over 1,400 executives of companies with annual revenue around $250 to $500 million.
That's midsize?!
I could easily see that being mid-size in some markets. One of my jobs is at a small (8-person) consulting shop, and we have annual total revenue well over $200k. How much of that is profit is a very different question. Dell and other big companies tend to think of small businesses having 100 or so workstations; assuming linear scaling (everyone is busy - it's worked that way so far for us!) it's not hard to see mid-size business having revenue in that region.
It's also worth noting that BIG business in the US is increasingly VERY big. That tends to push the middle upwards!
Alexis de Tocqueville must bespinning in his grave right now. The gentleman for whom this think-tank is named was a very forward-thinking member of the French nobility, right around the time that being of noble blood in France was hazardous to one's health. He is most famous for his comparison of Russia and the fledgling USA. He saw a lot of potential in the US, but believed that it's promise of democracy could be curbed by apathy, strengthening central governance, and a resulting tyranny of the strong over the smaller folk. That's pretty insightful for a French tourist in the 1800s! Given his observations, it seems likely that today he would believe that the use of patents, and shill-thinktanks to beat down the promise of OSS is exactly the type of thing that could lead to the nation's downfall. I'm sure he wouldn't want his name lent to such policies.
My object-relational mapping library (Persist, shameless plug!) runs smoothly on both Mono and Windows, with the exception of ODBC databases - Mono's ODBC stack doesn't support certain data types yet. It is actually faster under Mono than under Windows in some circumstances, and about the same speed normally. I've also created the middleware of a 3-tier mental healthcare billing system on Mono, and it handles remoting (with Windows-based clients, as well as cross-platform GTK# clients) pretty much perfectly. Implementing encrypting remoting sinks under Mono was a real pain, but is getting easier as the remoting code improves. Other than that, the only hassles have been to ensure that I ask the OS for paths, directory separator characters, and am careful about case sensitivity in filenames.
Mono really is a godsend in this respect. I have a lot of C# experience, as do the programmers with whom I work - it is a very productive language for medium to large middleware projects. Some of our larger projects require that we lease both the hardware and software stack to our clients, most of whom are non-profits who don't have huge amounts of cash on hand. Windows licensing for a small server could seriously eat into any profit margin when dealing with 50 remote offices (with about 20 users each), without a dedicated net connection (so a web-based app won't help). Mono lets us install a small Debian-based server at each small location, reducing licensing costs to zero - but not requiring that we abandon our existing codebase/installed base by switching to Java. All told, savings can easily run into the tens-of-thousands per larger client, per year.
A while ago, my employer had some real problems with CenturyTel, the only phone company in town. They messed up some (presumably virtual) paperwork and our DSL line went dead. Our first call resulted in a promise that as a business customer, we were a high priority - and it would be fixed soon. Our second call was greeted with "sorry, our engineers have gone home for the day, try tomorrow". Our third call resulted in "sorry, our engineers have all gone away to enjoy the holiday weekend, try again in 4 days!". Not acceptable!
So, frustrated (and tired after switching everything over to our other DSL line), I posted a blog entry with the title "I hate CenturyTel" and a big explanation as to what went wrong. Monday morning, our DSL line was fixed. The engineers on the other end were VERY apologetic, but I just assumed that they were trying to make amends - when the next day we got a call in the office from an executive at CenturyTel who had Googled for "I hate CenturyTel", found my blog, and yelled at some people to get things fixed. He then called us to personally apologize, gave us a bunch of freebies to make amends, and chatted with my boss for over half an hour about how to avoid this problem ever recurring. I came in from a client, my boss said "we just got a call about your blog" - and I assumed I'd libelled someone, was in trouble, etc. He then said "make sure you politely insult everyone who screws us over, it did wonders this time!"
I knew a fellow who was worked on Advanced Train Protection (APT - not the Debian tool, which works really well), and he was telling me about some of the problems they had. The biggest one was that when he was working on the project (in the 1980s), the maps they had of various railroad lines were in some cases a hundred years old - and hadn't been updated properly. They built a prototype based on old data, and after it did nothing to stop the train in the station went out and did some direct measurements - and figured out that in an emergency, APT would have stopped the train after it ploughed through about half of Burger King!
The company I work for initially had no source control (when I joined, I was employee #2), mainly because the boss and the web designer had never heard of it. I mentioned it a few times in the first year, but it didn't really go anywhere - the perceived learning curve put my coworkers off. Then I setup a much more professional setup (proper division between staging and live servers), and we started to grow. With one web developer and one programmer, we didn't overwrite each other very much, and our web developer got into Dreamweaver's multi-user functionality (we all developed on a shared development webserver at the time), and it worked okay. I started using Visual SourceSafe (yuck!) on some projects, just because it was helpful for me to store revisions - VSS was what we had lying around in our development tools, I'd had some bad CVS experiences, and wasn't all that aware of alternatives. Then growth kicked in, and suddenly we had three programmers, two designers, and a few outside clients all working on the stuff we host - and I got to fix the occasional "you overwrote my work!" screaming fits amongst clients/coworkers (this was easy to fix because we had a system that archived regular snapshots - not as good as source control, but not bad). So, I setup Subversion, created accounts for everyone who needed them, and gave everyone TortoiseSVN. I also talked my boss into mandating its use (he was as sick as I was with collisions/overwrites), which helped a lot. After about a week, everyone was happier - overwriting other's work because of an overenthusiastic upload was a thing of the past, no more fiddling with Dreamweaver's unreliable locking system, and we now have an SVN-based site publishing system (basically, you can tag revisions as "LIVE" or "STAGING", and a background script keeps the respective servers at that revision - while the development server stays on the head revision). We did have problems with a client trying to get two users to work in the same repository under different usernames, but otherwise it's rock solid.
So in my case, the reason for not using it was a combination of thinking "we're too small to need to worry about this", inertia, fear of complexity from some users, and the inability on my part to make a really solid case saying "this is what we need, this is why". When we grew, many of these arguments went away - and made making the case for it a lot easier.
I grew up with a Southern England accent, and then moved to Hull to do my BA. At first, I found the Yorkshire accent very hard to understand - but I adapted pretty quickly, only to find that when I used it nobody in the South could really understand me anymore. Then, I moved to Missouri (USA), and found I couldn't understand the local's drawl at all - but a few weeks later, I was getting by okay. Now I have the amusing situation that I still sometimes can't make myself understood, but my English friends tell me that I sound like an American. I guess with accents, you really can't win!
I was working very late on Christmas day to get a site released on time. The CMS we were using (a homegrown ASP monstrosity) was being temperamental, and I needed to fix a heading.... so I fired up PgAdmin (PostgreSQL rocks!) and typed "UPDATE content SET title='quilting' - minus the all important "WHERE contentid=X". Every single article in the database (around 900) suddenly gained the title 'quilting'. Thank heaven for a good restore procedure!
Ugh, the lameness filter kept complaining about this!
That's why sequences (as implemented by PostgreSQL and Oracle) are handy. Simply create a sequence, and call NEXTVAL(sequence_name) to get the identity of the next record. It isn't an autoincrementer (but can be used as one with default values), and you get the advantage of knowing what ID you will use before your insert - very handy for inserting a lot of related data at once. You can also do tricks like having sequences with different increment numbers, different base values, or even concatenate them with a string to get multi-master friendly safe replication.
For a sequence/nextval to be useful, the increment must be absolutely atomic - that is, it must return the next value and increment without any chance of the same number being given to another caller. Oracle and PostgreSQL do this for you.
You can simulate these in SQL Server with the following stored procedure (original source here:
Sequence table:
CREATE TABLE sequences (
-- sequence is a reserved word
seq varchar(100) primary key,
sequence_id int
);
MS SQL Server stored procedure:
CREATE PROCEDURE nextval
@sequence varchar(100),
@sequence_id INT OUTPUT
AS
-- return an error if sequence does not exist
-- so we will know if someone truncates the table
set @sequence_id = -1
UPDATE sequences
SET @sequence_id = sequence_id = sequence_id + 1
WHERE seq = @sequence
RETURN @sequence_id
I've used this to great effect in SQL server. I've had to emulate it in Access once (yuck! it worked, though!). I've never tried it in MySQL, but it can probably be done.
This page (see LAST_INSERT_ID(expr) talks about how to do it in MySQL. I don't use MySQL when I can avoid it; it's a great, fast database for high-read environments without triggers and similar, but I've never seemed to end up working in one of those!
There was a combination of factors at play. Bush failed to increase federal education assistance (for example, ESEA - Elementary and Secondary Education Act received $460million of the promised $3.5bn), reducing the ability of the school district to employ anyone in their main budget - teachers, consultants, etc. The Department of Education budget has gone up a bit, but that money isn't reaching schools - quite the opposite.
Additionally, Bush refused to release funds to bankrupt states (Missouri being one of them), leading to a nasty combination of withheld education funding and absence of any additional state-level assistance for schools.
Bush has continued this trend; No Child Left Behind is underfunded ($9 billion in 2002, $7.2 billion in 2003), he continually refuses to include any provision for school modernization (estimated at $127 billion backlog). Some of this money has been redirected to the Pell grant program - even though he also announced that Pell grant maximum awards aren't rising with inflation anymore, and are now harder to qualify for. He also slashed the Adult Education/Vocational Education budget, slashed payment for Head Start, hasn't funded IDEA (Individuals with Disabilities Education Act).
I was called in as a consultant at a local school district a few years ago. They - like a lot of rural school districts around here (Missouri) - had received a large E-rate grant and used it on a T1 and network infrastructure. They spent a LOT of money on their T1, Cisco router, and the phone company helpfully wired the entire school district (around 400 drops) onto the same segment of 10baseT - with buildings connected by 10mbit fibre (as a module for the multi-thousand dollar 10mbit hubs, with any sort of bridging disabled). The network would hit close to saturation point just from broadcast traffic without anyone actually doing anything! Worse, they had an old Mac server (formerly running Mac OS 7, it wouldn't boot at all!) with water damage, no form of firewall at all (the T1 was bridged to the entire internal network with every workstation on a public IP address), no documentation as to what workstations they even had (they had over 300), and no documentation as to what was on which static IP address (no DHCP). It was a total mess!
Unfortunately, E-rate grants didn't cover hiring independent consulatants - so they only had enough budget to have a consultant out once a week; they were able to understand that fixing this mess might take a while, though. We went out and documented what they had, installed a FreeBSD firewall (VERY restrictive - only known good outbound, no unrequested inbound at all) and server (converted workstations), and gradually cleaned workstations of the multitude of viruses, trojan horses, worms, spam relays and game servers that were installed everywhere. Finally, since the school couldn't get grants to replace their hubs we ended up chaining small 100mbit switches inbetween the uplinks of each hub - this cut network traffic a LOT. This got them to the point that their network was at least usable, even if they couldn't afford nicer hardware.
(I did find out that some other school districts in the area had similar setups; one had gone so far as to simply switch the router off permanently to avoid the issue!)
The next year, a directive came down from on high that unless content filtering was installed the district would have to repay the entire E-Rate grant! We added SquidGuard to the FreeBSD firewall, and setup a little web program that let teachers request that sites be added to/removed from the blocklist. It worked wonderfully, and kept the state off our back. The school then received a grant to buy 'administration software' and opted to use a horrible Mac-ported-to-Windows program that would crash spontaneously on its own with no users (we tried it on several different hardware/software setups). This cost thousands, took us months to get up and running - and is hated by staff and student alike. It also added enough bandwidth use to the network (for some reason, ALL of its database requests were broadcast rather than directed!) that things started to creak again.
The wierd thing with grants is that they are very specific in what you can do with them. The school could get grants for stuff they didn't want (wireless access for the whole school, laptops to give to kids), and couldn't get grants for things they did want (new switches NOT from the phone company who still recommended 10baseT hubs, consultant help). Bush's budget cuts meant that they could no longer afford our help, so I haven't been out there in a while. I heard a rumour that they got another E-Rate grant and now have a PIX firewall, a dual-CPU server, a giant bank of switches - and not even login security. That may be apocryphal, but it wouldn't surprise me.:-|
I had a virus-scanning mail gateway hit a load of around 90 a while ago, running FreeBSD 4-STABLE (we were seeing how far we could push it before putting it into production); amazingly enough, at load 90 I could still login and tweak Qmail's settings. We primarily use FreeBSD for hosting at work, it takes a beating day-in, day-out - and is solid as a rock.
I'm a UK citizen, living (with a Green Card, happily married) in the USA. Prior to 9/11, I could travel easily within the country - rarely stopped, security were somewhat courteous, and life was easy. Since 9/11, I can't make it through a single airport without being taken aside for a full search! Last time, I asked why - and was told that I'm in a database of likely travel threats. The only connection I have to terrorism is that I authored my Master's thesis (back in '98) on Terrorism and Democracy (the basic thesis was that terrorism is extra-effective against Western-style Democracies because panic reactions to acts of terror tend to remove the freedoms on which the society is based; terrorism therefore 'wins' against the Democracy because the rights of the citizens are increasingly compromised until the society is so locked down as to not be free at all. I really didn't think it would be that prophetic!). I can't find any way to have myself removed from this database, so now I travel Greyhound!
We have three tables: all numbers, numbers you can call, and the current No-Call List. The 'all numbers' list is updated sporadically, apparently whenever the client decides to update it. The No-Call list is updated quarterly, and numbers can vanish from the list: you only sign up for a limited time to the MO list - and if you don't refresh your membership, it no longer protects you. So we simply delete the current AGList from whichever 'all numbers' list we have at the time and send them the results.
I had a few qualms about accepting telemarketers as a client; I really hate telemarketers! However, the MO no-call list has so far been completely toothless, so at least this way I know they will comply and not call me. (They aren't primarily a telemarketing firm; I'll be very happy if they drop it completely!)
I have a client who periodically has us subtract 'no-call' numbers from their calling database (little more than numbers and names, from a phone book). They hired me in a hurry when they started calling people on the Missouri No-Call List by accident. Apparently they were not fined for a single transgression - the attorney general gave them a grace period to adjust after learning of their error, with little more than a verbal slap on the wrist.
I haven't heard from them about the federal list, so I doubt that they are compliant yet. They have voiced an interest in getting out of telemarketing altogether because of the growth/success of the Missouri no-call list; with any luck the federal list will be the last straw that makes them jump.
As an aside, I was surprised by how much money some companies are charging to subtract a list of numbers from a call list; I charged my regular hourly fee, which isn't too much for DELETE FROM call_list WHERE phone IN (SELECT phone FROM AGList)! I later found out that some companies were charging thousands for 'safe' call lists on CD!
I think you misunderstand the reasoning behind removing Perl from the base system (as well as not including Java, Python, etc.). You gain nothing but bloat and insecurity from having features you don't want/need installed on a server!
You are never far away from an up-to-date, zoomy version of your langauge of choice - simply go to the ports tree, and make install clean (or install a package, in most non-Java cases; Java admittedly requires an additional fetch/I Agree step because of Sun's licensing requirements, but it is easy - and you can make package for additional machines), but many users do not want/need these languages. Additionally, portupgrade makes it easy to update your packages without needing to update the base system.
When I did my BA (joint Law/Politics),I used the traditional old pen+paper. Despite mild dyslexia and the occasional problem staying awake in lectures I ended up with semi-decent notes. The key for me was that when it came to exam revision time, I would recopy the notes into a hierarchical note format (similar to outline view in Word); the simple act of reading my notes and restructuring them was generally enough to set even the most boring aspects of tort into my mind. If you reinforce listening to a lecture by writing notes, you increase retention. Recopying those notes later really help for long-term retention!
When it came time to do my Masters (Defense & Strategic Studies, of all things!), I picked up an HP WinCE clamshell PDA. The thing had decent battery life and a keyboard. I started using it for notes in class. The upside: my notes were much more legible/useful to read. The downside: I didn't come close to gaining the memory retention benefits of having to recopy the notes. (Fortunately, there were no sit-down exams for my Masters - so legible notes turned out to be more useful for paper writing. I'd have had a much harder time revising for exams if I'd had to, though).
So, my recommendation is to get a nice desktop for your dorm room - you will want to use it to write papers, goof off (very important that you enjoy study breaks - taking breaks helps most students, believe it or not!), and recopy notes come exam time. A PDA with keyboard is fine for lecture notes, although a laptop would work just as well/better if you can afford it in addition to a desktop.
Finally, there is a lot to be said for having really nicely laid out revision notes come exam time - sharing/discussing them with other students (particularly the cute ones!) is another good way to increase retention, possibly getting laid while you are at it.:-)
This reminds me of when I was young. My father and I built a trainset controller from Maplin Electronics; each train had a small circuit board added (with a unique ID number), and we could give each train individual commands. Once we had that running smoothly, we used an old Dragon 32 to build a complete train management system (in 6502 assembly, if I remember rightly; the Dragon was a bit limited, so we ended up writing the programs on graph paper, validating them, converting the notation to hex and poking it - before saving a memory dump). I remember being particularly happy with our simulated inertia system, even if it did make crashes more likely!
Projects like this are a lot of fun, and a great way to get into electronics.
The biggest reasons being cited for having one character per server are...
Twinking
I don't see this changing; in a lot of MMRPGs, while alts may be big twinkers, this pales by comparison with guildmates/friends. A friend finds a second +4 Sword of the Frenzied Wampus - he'll give it to you. One character per server may actually make this worse, since there is a greater chance of picking up items that you don't want for any of your characters.
In other words, twinking will still happen - but will be even more focussed on large guilds than it is now.
Muling
Muling will still happen, but to a lesser degree. I foresee a world in which people who buy second accounts create mules on some worlds - and share the use of the mule with a friend. This already happens in some multi-character games (quite common in Asheron's Call 1 which lacks banking).
The Spying Issue
Spying could be a problem, since factional/PvP is being played up so much. However, DAOC solved this very simply - allow multiple characters per server, but they all have to be in the same faction.
The player economy
If SWG's tradeskill system is as complete as Verant say it will be, then crafting has the potential to play a big role in the game; this is a good thing in that interdependant players tends to create a good atmosphere. It is also a bad thing in that new players are dependent upon the existing economy - and if they don't find people to help them, they will have a really unhappy time; this happens already in Asheron's Call 2 which has a player economy. Only having a single character on a given server would make me less likely to craft; I don't want to craft all the time (I play to escape reality, not simulate work!), so I like the opportunity to craft for a bit and then go and save the galaxy - without having to worry about coordinating cross-server guild relationships with friends/guildmates.
Overall, I think SWG is shooting itself in the foot with this. I personally wasn't going to play anyway - Star Wars isn't my thing, and I'd hate to see a 13 year old screaming 'D3WD, US3 F33R M! L33+ J3D! SK1llZ' - but I know a few people who are considering it. Not one of them is happy about this move.
I know you can still get 5.x to run on a 486DX (not the SX - it requires a hardware FPU), and I believe it will run on a 386DX if you have an external floating point chip. Unfortunately, 5.x would need to be recompiled with different compiler flags to run, so installation might be a challenge!
3.x and 4.x both run fine on 386 and 486 class chips.
In general, it is rock solid; I've seen a FreeBSD server with a load of 80-something (process went nuts), and still been able to login and take corrective action without rebooting. I remember being quite shocked to find a console reporting that / was inaccessible due to a drive error - but server processes on other partitions continued to run just fine anyway. We've had a few hiccups with 5.x (although 5.4 fixed most of them), but our testing of 6-beta is going really well. FreeBSD is the masochist of operating systems: you hit it, and it just keeps asking for more!
There are other reasons to love it. The ports system is very solid, and it's been years since we had problems applying an upgrade due to dependency issues. The documentation is marvelous - man pages are useful, and the handbook covers most things. The community support mailing lists are very useful, too. Jails provide a convenient way to partition processes on a single server, although they are far from perfect at this point (they keep improving, though).
I really can't say enough good things about FreeBSD. It has been running most of our hosting setup, and many of our client's networks for years, and the only time we ever seem to run into problems is when hardware dies.
(For the record, I also use Debian - and it is good, but I prefer FreeBSD for servers that have to be trusted)
What's worse, is that non-resident aliens are signed up for Selective Service and could in theory be drafted to fight for the US without any real ties to it other than doing a degree there! I was positively shocked to find out that I could be conscripted to fight for the USA, even though I am a British citizen (I'm now a green-card holder, which means I pay taxes but can't vote... so much for "no taxation without representation" - maybe I need a tea party!)
I have a blind couple as a client, and was surprised to find a big-screen TV and DVD player in their front room. Apparently there is quite an industry in selling movies for the blind - complete with voiceovers telling you what's happening. From what they said, porn dominates that market, too!
I also agree that in the real world, you don't see a lot of virus activity in *NIX. I do think that part of this comes from Windows providing a large, easy target; if Linux becomes a very popular desktop OS, I think we'll see a fair amount of malware developed for it. I'm not sure how much of it will be the traditional file-virus (and floppies!) variety, given that worms have a much easier time spreading (more likely, we'll see a few hybrids, viruses that propogate locally through files, but employ worm spreading techniques). With network shares showing up as mounts, it's possible to foresee an infected server spreading file viruses within an organization - but short of the odd CD burned with infected files on it, I think the mass-spreading days of traditional viruses are numbered (probably on most platforms).
AV vendors have a vested interest in scaring us (although some of their products for *NIX are very useful, for example malware scanning on mail servers - even if 99.999% of the items blocked are Windows nasties), and will probably make some headway selling their wares if Linux on the desktop becomes more prevalent/more of a target. They may turn out to be a necessary evil in the long run, although I hope not.
Finally, patching is a solution (on most platforms - a patched Windows box with sensible security settings survives pretty well in my experience), but then you have a different problem: patch management. Patches sometimes break things, so it is common to have patches quarantined and tested before deployment (giving a larger lead time for 0-day exploits). While the various *NIX update tools are good, it can still be a hassle to keep a few hundred servers, and a few thousand desktops all patched - and have them stay patched consistently. Easier under *NIX than Windows (although WUS helps a LOT), but still a problem. For home users, it's even more of a problem - you have to decide between helping users whose system dies horribly when an automatic update goes wrong, versus accepting that users will probably never get around to updating their system if you don't make them (and even with nice front-ends, apt-get dist-upgrade still causes issues occasionally!)
I think the reason people jumped on your posts is that it isn't the clear cut issue you make it out to be - and zealotry in security matters quickly turns into either denial, chasing the New Best Thing, or embarrassment when things go wrong. Sure, Windows is a lot more vulnerable/targeted than Linux. However, that may not always be the case, and until we somehow come up with bug-free system binaries/permissions, and a rock-solid trusted execution system (that isn't MS-style TCPA, doesn't violate user rights, etc.) that will always be the case.
It is unlikely that we've seen the last ever privilege escalation bug in Linux.
That's midsize?!
I could easily see that being mid-size in some markets. One of my jobs is at a small (8-person) consulting shop, and we have annual total revenue well over $200k. How much of that is profit is a very different question. Dell and other big companies tend to think of small businesses having 100 or so workstations; assuming linear scaling (everyone is busy - it's worked that way so far for us!) it's not hard to see mid-size business having revenue in that region.
It's also worth noting that BIG business in the US is increasingly VERY big. That tends to push the middle upwards!
Alexis de Tocqueville must bespinning in his grave right now. The gentleman for whom this think-tank is named was a very forward-thinking member of the French nobility, right around the time that being of noble blood in France was hazardous to one's health. He is most famous for his comparison of Russia and the fledgling USA. He saw a lot of potential in the US, but believed that it's promise of democracy could be curbed by apathy, strengthening central governance, and a resulting tyranny of the strong over the smaller folk. That's pretty insightful for a French tourist in the 1800s! Given his observations, it seems likely that today he would believe that the use of patents, and shill-thinktanks to beat down the promise of OSS is exactly the type of thing that could lead to the nation's downfall. I'm sure he wouldn't want his name lent to such policies.
Mono really is a godsend in this respect. I have a lot of C# experience, as do the programmers with whom I work - it is a very productive language for medium to large middleware projects. Some of our larger projects require that we lease both the hardware and software stack to our clients, most of whom are non-profits who don't have huge amounts of cash on hand. Windows licensing for a small server could seriously eat into any profit margin when dealing with 50 remote offices (with about 20 users each), without a dedicated net connection (so a web-based app won't help). Mono lets us install a small Debian-based server at each small location, reducing licensing costs to zero - but not requiring that we abandon our existing codebase/installed base by switching to Java. All told, savings can easily run into the tens-of-thousands per larger client, per year.
So, frustrated (and tired after switching everything over to our other DSL line), I posted a blog entry with the title "I hate CenturyTel" and a big explanation as to what went wrong. Monday morning, our DSL line was fixed. The engineers on the other end were VERY apologetic, but I just assumed that they were trying to make amends - when the next day we got a call in the office from an executive at CenturyTel who had Googled for "I hate CenturyTel", found my blog, and yelled at some people to get things fixed. He then called us to personally apologize, gave us a bunch of freebies to make amends, and chatted with my boss for over half an hour about how to avoid this problem ever recurring. I came in from a client, my boss said "we just got a call about your blog" - and I assumed I'd libelled someone, was in trouble, etc. He then said "make sure you politely insult everyone who screws us over, it did wonders this time!"
I knew a fellow who was worked on Advanced Train Protection (APT - not the Debian tool, which works really well), and he was telling me about some of the problems they had. The biggest one was that when he was working on the project (in the 1980s), the maps they had of various railroad lines were in some cases a hundred years old - and hadn't been updated properly. They built a prototype based on old data, and after it did nothing to stop the train in the station went out and did some direct measurements - and figured out that in an emergency, APT would have stopped the train after it ploughed through about half of Burger King!
So in my case, the reason for not using it was a combination of thinking "we're too small to need to worry about this", inertia, fear of complexity from some users, and the inability on my part to make a really solid case saying "this is what we need, this is why". When we grew, many of these arguments went away - and made making the case for it a lot easier.
I grew up with a Southern England accent, and then moved to Hull to do my BA. At first, I found the Yorkshire accent very hard to understand - but I adapted pretty quickly, only to find that when I used it nobody in the South could really understand me anymore. Then, I moved to Missouri (USA), and found I couldn't understand the local's drawl at all - but a few weeks later, I was getting by okay. Now I have the amusing situation that I still sometimes can't make myself understood, but my English friends tell me that I sound like an American. I guess with accents, you really can't win!
I was working very late on Christmas day to get a site released on time. The CMS we were using (a homegrown ASP monstrosity) was being temperamental, and I needed to fix a heading.... so I fired up PgAdmin (PostgreSQL rocks!) and typed "UPDATE content SET title='quilting' - minus the all important "WHERE contentid=X". Every single article in the database (around 900) suddenly gained the title 'quilting'. Thank heaven for a good restore procedure!
I still haven't lived that one down.
That's why sequences (as implemented by PostgreSQL and Oracle) are handy. Simply create a sequence, and call NEXTVAL(sequence_name) to get the identity of the next record. It isn't an autoincrementer (but can be used as one with default values), and you get the advantage of knowing what ID you will use before your insert - very handy for inserting a lot of related data at once. You can also do tricks like having sequences with different increment numbers, different base values, or even concatenate them with a string to get multi-master friendly safe replication.
For a sequence/nextval to be useful, the increment must be absolutely atomic - that is, it must return the next value and increment without any chance of the same number being given to another caller. Oracle and PostgreSQL do this for you.
You can simulate these in SQL Server with the following stored procedure (original source here: Sequence table: CREATE TABLE sequences ( -- sequence is a reserved word seq varchar(100) primary key, sequence_id int ); MS SQL Server stored procedure: CREATE PROCEDURE nextval @sequence varchar(100), @sequence_id INT OUTPUT AS -- return an error if sequence does not exist -- so we will know if someone truncates the table set @sequence_id = -1 UPDATE sequences SET @sequence_id = sequence_id = sequence_id + 1 WHERE seq = @sequence RETURN @sequence_id I've used this to great effect in SQL server. I've had to emulate it in Access once (yuck! it worked, though!). I've never tried it in MySQL, but it can probably be done.
This page (see LAST_INSERT_ID(expr) talks about how to do it in MySQL. I don't use MySQL when I can avoid it; it's a great, fast database for high-read environments without triggers and similar, but I've never seemed to end up working in one of those!
Additionally, Bush refused to release funds to bankrupt states (Missouri being one of them), leading to a nasty combination of withheld education funding and absence of any additional state-level assistance for schools.
Bush has continued this trend; No Child Left Behind is underfunded ($9 billion in 2002, $7.2 billion in 2003), he continually refuses to include any provision for school modernization (estimated at $127 billion backlog). Some of this money has been redirected to the Pell grant program - even though he also announced that Pell grant maximum awards aren't rising with inflation anymore, and are now harder to qualify for. He also slashed the Adult Education/Vocational Education budget, slashed payment for Head Start, hasn't funded IDEA (Individuals with Disabilities Education Act).
Unfortunately, E-rate grants didn't cover hiring independent consulatants - so they only had enough budget to have a consultant out once a week; they were able to understand that fixing this mess might take a while, though. We went out and documented what they had, installed a FreeBSD firewall (VERY restrictive - only known good outbound, no unrequested inbound at all) and server (converted workstations), and gradually cleaned workstations of the multitude of viruses, trojan horses, worms, spam relays and game servers that were installed everywhere. Finally, since the school couldn't get grants to replace their hubs we ended up chaining small 100mbit switches inbetween the uplinks of each hub - this cut network traffic a LOT. This got them to the point that their network was at least usable, even if they couldn't afford nicer hardware.
(I did find out that some other school districts in the area had similar setups; one had gone so far as to simply switch the router off permanently to avoid the issue!)
The next year, a directive came down from on high that unless content filtering was installed the district would have to repay the entire E-Rate grant! We added SquidGuard to the FreeBSD firewall, and setup a little web program that let teachers request that sites be added to/removed from the blocklist. It worked wonderfully, and kept the state off our back. The school then received a grant to buy 'administration software' and opted to use a horrible Mac-ported-to-Windows program that would crash spontaneously on its own with no users (we tried it on several different hardware/software setups). This cost thousands, took us months to get up and running - and is hated by staff and student alike. It also added enough bandwidth use to the network (for some reason, ALL of its database requests were broadcast rather than directed!) that things started to creak again.
The wierd thing with grants is that they are very specific in what you can do with them. The school could get grants for stuff they didn't want (wireless access for the whole school, laptops to give to kids), and couldn't get grants for things they did want (new switches NOT from the phone company who still recommended 10baseT hubs, consultant help). Bush's budget cuts meant that they could no longer afford our help, so I haven't been out there in a while. I heard a rumour that they got another E-Rate grant and now have a PIX firewall, a dual-CPU server, a giant bank of switches - and not even login security. That may be apocryphal, but it wouldn't surprise me.
I had a virus-scanning mail gateway hit a load of around 90 a while ago, running FreeBSD 4-STABLE (we were seeing how far we could push it before putting it into production); amazingly enough, at load 90 I could still login and tweak Qmail's settings. We primarily use FreeBSD for hosting at work, it takes a beating day-in, day-out - and is solid as a rock.
I'm a UK citizen, living (with a Green Card, happily married) in the USA. Prior to 9/11, I could travel easily within the country - rarely stopped, security were somewhat courteous, and life was easy. Since 9/11, I can't make it through a single airport without being taken aside for a full search! Last time, I asked why - and was told that I'm in a database of likely travel threats. The only connection I have to terrorism is that I authored my Master's thesis (back in '98) on Terrorism and Democracy (the basic thesis was that terrorism is extra-effective against Western-style Democracies because panic reactions to acts of terror tend to remove the freedoms on which the society is based; terrorism therefore 'wins' against the Democracy because the rights of the citizens are increasingly compromised until the society is so locked down as to not be free at all. I really didn't think it would be that prophetic!). I can't find any way to have myself removed from this database, so now I travel Greyhound!
I had a few qualms about accepting telemarketers as a client; I really hate telemarketers! However, the MO no-call list has so far been completely toothless, so at least this way I know they will comply and not call me. (They aren't primarily a telemarketing firm; I'll be very happy if they drop it completely!)
I haven't heard from them about the federal list, so I doubt that they are compliant yet. They have voiced an interest in getting out of telemarketing altogether because of the growth/success of the Missouri no-call list; with any luck the federal list will be the last straw that makes them jump.
As an aside, I was surprised by how much money some companies are charging to subtract a list of numbers from a call list; I charged my regular hourly fee, which isn't too much for DELETE FROM call_list WHERE phone IN (SELECT phone FROM AGList)! I later found out that some companies were charging thousands for 'safe' call lists on CD!
You are never far away from an up-to-date, zoomy version of your langauge of choice - simply go to the ports tree, and make install clean (or install a package, in most non-Java cases; Java admittedly requires an additional fetch/I Agree step because of Sun's licensing requirements, but it is easy - and you can make package for additional machines), but many users do not want/need these languages. Additionally, portupgrade makes it easy to update your packages without needing to update the base system.
When it came time to do my Masters (Defense & Strategic Studies, of all things!), I picked up an HP WinCE clamshell PDA. The thing had decent battery life and a keyboard. I started using it for notes in class. The upside: my notes were much more legible/useful to read. The downside: I didn't come close to gaining the memory retention benefits of having to recopy the notes. (Fortunately, there were no sit-down exams for my Masters - so legible notes turned out to be more useful for paper writing. I'd have had a much harder time revising for exams if I'd had to, though).
So, my recommendation is to get a nice desktop for your dorm room - you will want to use it to write papers, goof off (very important that you enjoy study breaks - taking breaks helps most students, believe it or not!), and recopy notes come exam time. A PDA with keyboard is fine for lecture notes, although a laptop would work just as well/better if you can afford it in addition to a desktop.
Finally, there is a lot to be said for having really nicely laid out revision notes come exam time - sharing/discussing them with other students (particularly the cute ones!) is another good way to increase retention, possibly getting laid while you are at it. :-)
Projects like this are a lot of fun, and a great way to get into electronics.
Twinking
I don't see this changing; in a lot of MMRPGs, while alts may be big twinkers, this pales by comparison with guildmates/friends. A friend finds a second +4 Sword of the Frenzied Wampus - he'll give it to you. One character per server may actually make this worse, since there is a greater chance of picking up items that you don't want for any of your characters.
In other words, twinking will still happen - but will be even more focussed on large guilds than it is now.
Muling
Muling will still happen, but to a lesser degree. I foresee a world in which people who buy second accounts create mules on some worlds - and share the use of the mule with a friend. This already happens in some multi-character games (quite common in Asheron's Call 1 which lacks banking).
The Spying Issue
Spying could be a problem, since factional/PvP is being played up so much. However, DAOC solved this very simply - allow multiple characters per server, but they all have to be in the same faction.
The player economy
If SWG's tradeskill system is as complete as Verant say it will be, then crafting has the potential to play a big role in the game; this is a good thing in that interdependant players tends to create a good atmosphere. It is also a bad thing in that new players are dependent upon the existing economy - and if they don't find people to help them, they will have a really unhappy time; this happens already in Asheron's Call 2 which has a player economy. Only having a single character on a given server would make me less likely to craft; I don't want to craft all the time (I play to escape reality, not simulate work!), so I like the opportunity to craft for a bit and then go and save the galaxy - without having to worry about coordinating cross-server guild relationships with friends/guildmates.
Overall, I think SWG is shooting itself in the foot with this. I personally wasn't going to play anyway - Star Wars isn't my thing, and I'd hate to see a 13 year old screaming 'D3WD, US3 F33R M! L33+ J3D! SK1llZ' - but I know a few people who are considering it. Not one of them is happy about this move.