The height of Linux usability and parity was Red Hat 6 through Red Hat 9. Those were the pinnace of Linux operating systems in terms of comparability to and competitiveness with other contemporary systems.
I am a big fan of Linux in technical terms, but not a big fan in terms of UX (basically, the social end of computing, where collaboration across large teams is basically required for a high quality product).
Android is illustrative of what Linux *can* be, but on the desktop has never managed to be because of the obvious differences between the social (i.e. people and hierarchy) infrastructure behind Android vs. behind the Linux desktop.
I used Linux from 1993 through 2010. Early on I used the same.twmrc files with TWM that I used on my HPUX and SunOS boxes at CS school. At the time, the Linux desktop was *light years* ahead of the Windows desktop. 16-bit color, high resolutions, fast, lots of very powerful applications from the Unix world and experimental desktop projects like InterViews that seemed very promising. People with MS-DOS or GEM or Windows 1/2.x computers were envious.
Later on I used FVWM. Then I switched to KDE in the KDE Beta 3 era. But then (mid-late '90s), Linux on the desktop had already been outrun by Windows 95 and Mac OS. The level of integration amongst services and components wasn't that of a coherent system like it was for Mac OS and Windows; the Linux "computing is a network" philosophy—very good for things like business and scientific computing—was obvious in comparison.
When KDE 4 was released, I tried to use it for a while but it got in my way. I had to rebuild my entire desktop over and over again as objects were lost, lost their properties, etc. After about two weeks on KDE 4 during which I mostly nursed KDE along rather than doing my actual work, I switched to GNOME 2.x. I see that as something of a golden age for desktop Linux—basic parity with what was going on in the Mac and Windows worlds if you used a polished distribution like Fedora. Install was different, equally demanding of skills, but the actual install and setup process for the desktop OS on a bare machine involved approximately the same amount of work as was true for Windows, and the result was basic feature and experience parity.
Then, the bottom fell out. I suspect that a lot of the need for the Linux desktop with experience parity to Windows was met by an increasingly revived Mac OS, and users flocked there. Myself included, in the end.
GNOME 3 came out and KDE 4 was finally becoming usable and there was something of a battle, but both were behind the curve relative to the stability and seamlessness of OS X, and OS X had end-user application developers already. They screamed and moaned during the transition from legacy Mac OS, but most of them hung on and redeveloped their applications for OS X, and there were a bunch of new application developers to boot.
On top of that, the major applications of the business and academic worlds made their way out for OS X as it became a viable platform. You now had a seamless desktop OS that offered all the big brands in user applications, plus stability, plus easy access to a *nix environment and command line if you wanted it.
I was busy fighting Linux during that "instability era" just as KDE4/GNOME3 happened and duked it out. Things were changing very quickly in many facets of the Linux base installs, in hardware, etc. and every update seemed to break my Thinkpad T60 which at the time ran on Fedora. I was spending a lot of time fixing dotfiles and scripts and trying to solve dependency problems, etc. Meanwhile, lots of new things that were starting to become commonplace needs (cloud services, mobile devices, etc.) didn't yet work well with Linux without lots of command line hacking and compiling of alpha-quality stuff from source.
A couple of fellow academics kept telling me to try Mac OS. Finally I did, I installed a hackintosh partition on my T60. By mid-2010, I realized that I was using my OS X boot, along with the GNU tools environment from MacPorts, far more than I was using the Linux partition, and that there were Mac applications that I was *dying* to start using on a daily basis, but ha
Just as importantly, the market has shifted. There is still a stable market for computing and it will continue to exist, but it no longer includes the home/casual user segment. Those people have gone over to tablets and phones (most all of the non-tech folks that I know now have an older laptop sitting dusty on their top closet shelf, unused for years, and don't plan to replace it; only about half have even bothered to get a bluetooth keyboard for their tablet, while the rest are perfectly satisfied with the onscreen keyboard).
Business, tech-oriented people, the self-employed, creatives, and so on will continue to buy full-fledged computing hardware and to upgrade it over time, but this is a much smaller market than once existed for computing, where the market included basically every home and individual in developed societies. So some correction in sales was (and probably remains) inevitable over time.
Only there are precious few protections for the consumer.
So when your used car breaks down catastrophically in a couple of months, it's "Oh, we must have missed that!" and when you try to use your warranty to cover it, it's excluded on one of 57 different technicalities, with maximum coverage for that particular type of repair that only covers a fraction of the typical cost, all spelled out in tiny print in a massive rulebook of which you do not actually get a copy when you purchase your vehicle and your "warranty."
And even if you manage to find something that is covered, and want to get your fractional pittance, you still have to pay out of pocket yourself for the repairs, then submit the receipt to the third-party corporation that provides the "warranty," who will scour your receipt for more technicalities on which to exclude your claim, and if they can't, will ultimately send you your fractional pittance in 8-12 months and after several letters from your attorney.
In short, U.S. "dealer checks" and "warranties" are worth less than lavatory tissue, which is why every reputable U.S. publication strongly advises used car buyers to pay to have their own favorite mechanic go over the vehicle (at a cost of $50-$200) before buying. So you can easily burn up $2k or more having cars vetted by a mechanic before you find one that he or she will actually tell you is a reasonable bet. Yet all of them are happily checked, warranted, etc.
I used to teach a pretty decent load of Chinese students in my classes in Manhattan (I taught at both NYU and on CUNY). By the '00s, they were significantly more creative, sophisticated, well-rounded, and learned (I make no claims about "intelligence") than my American students, who were really sort of "decadent" in the worst, stereotypical ways—knew only a few things about a few things but a lot about consumer goods and fashion, and didn't seem to think they needed to work, just didn't feel the global pressure from competing workers. Very entitled.
The Chinese students tended to cluster in 'A' territory and always approached me after class to talk about class topics until I had to leave, then followed up with serious questions by email. The American students always had one or two in the 'A' group and the rest clustering around low B and high C, and it was a struggle just to learn their names, as they had nothing at all to say to me unless I called on them in class. Ironically, many of the Chinese students had better formal English as well, though there were always also about half that were clearly 'winging it' and needed ESL—but were killing it in class performance anyway, managing to learn and to get through books by relying on a dictionary, a study group, and sheer determination.
And I had no real driver trouble that couldn't be worked around. Winmodems and winprinters weren't actually all that common in the grand scheme of things. Maybe for a year or two in the mid-'90s. But there was a wealth of used hardware available in those days that was the real deal.
Anyway, I always used external modems, including for a while a very weird Telebit modem with a steel case, a flip-open front door, and a non-AT command set that meant that I had to log into it via a terminal emulator and execute commands myself because only AT command sets were reported.
On the printing front, very early on I was able to get ahold of a secondhand Apple LaserWriter, and then set up Netatalk and a bunch of adapters to print to it over Either/RS-422 or something like that. It made everything on Linux a thousand percent easier because you could just dump postscript directly do it, and Linux print drivers weren't really sorted for many years.
In fact, there was even a really reasonable (for the period) WYSIWYG office suite called InterViews that ran under X and dumped out PostScript files for printing. The text editor was called 'ez' and I still have a bunch of non-CS homework from that era saved as '.ez' files somewhere. For the CS homework, I would just dial my university's SLIP pool and then telnet over to the Sun systems in the department where we had logins and used gcc for everything.
The actual hard part, as I recall, was getting Linux in the first place, which took me several months. There were no dial-up BBS systems I could find that had actual complete Linux distributions of any kind. The distributions that did exist at the time (I remember Slackware, Yggdrasil, Trans-Ameritech or something like that, and a couple of others, though maybe my memory is off) were set up as a series of dozens of 1.2mb or 1.44mb floppy disk images.
Not only was there no BBS that seemed to host a complete distro, but those were actually pretty sizable downloads at the time—it represented many hours of downloading even if a complete set could be found. At school, the systems on the actual 'net via 10-Base-2 and AUI at the time (our so-called 'smart hosts' that were in the DNS system) could download such things quickly from other smart-host FTP sites with complete sets, but they were Sun workstations with no floppy drives, and our filesystem quotas were not big enough to hold a complete set.
And before I had Linux actually installed, there was no way for me at home to log into those quotas and download the files from Unix machines anyway, otherwise I could have used FTP over dial-up to move a few images at a time through the pipline to home.
IN the end, I managed to find a local ISP that would set me up at home with a UUCP feed, and a vanilla UUCP dial-up binary set that was a massive bear to configure on a non-Unix system. Then I spent many weeks laboriously pulling images down over UUCP nightly from Usenet.
Once I finally had the complete binary set downloaded, I got ahold of many boxes of floppies, wrote the images, and did my first Linux install.
That bootstrapping was the hard part. Once Linux was actually installed, the entire non-BBS online universe of the Internet became massively easy to navigate (at the time, it was not easy to do Internet on PCs—there was little if anything on http:/// but that was the only protocol supported by DOS-based systems or by Macs) because now I had gopher, wais, archie, veronica, ftp, and so on. It was like boostraping your home computing universe into the Internet age.
The drivers were really of secondary importance once you got your hands on a complete distro. You'd just note which graphics hardware was supported by the X binaries, for example, and then go out and buy that card for $50 or $100. That was easy compared to actually getting your hands on a complete distro stored on the right machine and OS (DOS to write the images) and then getting it all written out and ready for install from floppies.
I find this use of the term "proprietary" to be significantly different from the usual intended meaning of the term.
Usually, "proprietary" means intellectual property belonging to a private organization, with a harsh hand taken to prevent reverse engineering and the stated assertion (either in EULAs or otherwise) that no use can be made in any way of reverse engineered output without being subject to legal action.
Here, "proprietary" apparently means "hard to understand" since everything else does not apply—not a private organization, no need to reverse engineer since it's an interpreted language, etc. By this standard, all of the perl and assembly code in the universe is "proprietary" since it's not written with forty character variable names.
1) Understanding information as representation (cryptography here) and eliminating conceptual ambiguity/unpredictability in algorithmics (security "flaws" here). These fundamentals are absolutely part of the basics of CS, but the emphasis is more on correctness: understanding the nature, reversibility, and properties of the representation and the invariants and rigor of the algorithmics. This is good CS in general, for all cases, and you're right, it's also the fundamentals of security.
But I think when they say "teach security" they actually mean:
2) Harden designed and deployed systems against common vectors for attack in real-world situations.
This requires not just the items from (1) but also a familiarity with particular architectures, implementations, protocols, languages, and conventions and conditions of user thought and behavior. So while there is overlap, I suspect that calls for "teaching security" aren't going to be satisfied with cryptographic theory and parsimonious, sound, and unambiguous algorithmics with strong assumption and bounds checking. Most policy people wouldn't consider that to be "teaching computer security."
Um, yes, pen and paper and chalk and chakboard. And math and proofs. Are you lowing mathematics to the lower of "fucking philosophy or gender studies?"
It should be required for anyone getting a degree that recommends their ability to write code and create systems.
It should not be required just because someone is getting a *computer science* degree, because (unless the science has completely disappeared) a lot of those guys would have to *first* learn how to code, *then* learn about deployment and networks and users, *then* learn security, and it would take serious time away from the actual thrust of their degree.
People are posting upthread about things being different now, about the engineering wing now being a part of many CS programs, which was not the case when I was in the field. So maybe a dual-track degree is in order. To get the degree with the software engineering emphasis, yes, you have to learn about security. But to get the degree on computational theory? It makes no sense to me, except in the case of those that want to work on cryptographic theory/information theory and so on.
For a lot of the guys I went to school with, it would just make no sense. They'd have to first learn to code before they learned about coding securely. Or they'd have to first learn about networks before they could learn about securing them. And so on. They were busy with problems totally unrelated to implementation and deployment, and it would turn the degree that they got into another degree entirely as they spent years learning how to build stuff, instead of how to rigorously conceptually represent stuff and how to rigorously prove stuff.
When I think "computer science," programmers are the farthest thing from my mind. I imagine blackboards and chalk and lots and lots of scribbling. Not writing well-formed PHP+SQL code. Like, totally separate universes.
I have no problem with the idea that there ought to be courses on security, just not in CS where (at least when I was a student) that's not really what they do. They're in the business of figuring out/proving/disproving whether things *can be computed in theory* and how, in theory.
Security just isn't a question that has anything to do with that, and these are people that write comparatively little code. It's not what the discipline is about.
There *are* people that spend their time learning how to code, and how to code properly for real-world situations and deployment (which is precisely where security becomes an issue). That's my point. Security ought to be taught where people are actually learning to code, deploy, and operate. It's a serious, rigorous field of its own. It just doesn't happen to be computer science (which, if it helps you, could just as easily be called "computation theory").
At least in the CS school I attended, I don't think there were many people that could have "fixed a computer" or "written an application," even amongst the faculty, really. Their job was to answer the question "Can this real-world phenomenon, problem, or pattern be usefully symbolically represented for processing, and if so, how, and with what consequences?" If they were able to answer this question, they'd then toss it over to engineers in the CE department for "Can you design for us an apparatus or a program that carries out this kind of symbolic representation in the interest of computation?"
CS = math + theory CE = programming + hardware IT = deployment + operations
That's the way it was at my university back in the '90s. This was at a large school that is in what is now the PAC-12 conference. Each one was a separate, rigorous four-year degree.
In my CS program, it was the same—huge on math and theory and the mathematical representation of concepts, problems, and sequences/patterns. Very little coding. Just enough code in year one to get you able to actually touch keyboards and do the math, but otherwise, very little "applied" technology of any kind.
That, we were told, belonged to the engineering wing over in computer engineering, who was to worry about implementation of CS concepts and theory, and to the applied/operations wing over in information technology, who was to worry about day-to-day computation in the real world using the implementations CS had designed. We even had a 1xx class on the divisions and consequences, etc.:
Sequence: CS = Research/Theory -> CE = Implementation -> IT = Real-world application of implementation -> Feedback sent back up the chain
So why not teach it where the programmers are being taught, in a CE or IT department, rather than in CS, where there is relatively little work on "programming" as such?
When I was in CS school, it had very little to do with "code" and everything to do with math and theory. CS was the science wing of computation fields. The coding was for the computer engineering and information technology students.
But the academic in me wants to say that computer science is not the right place for courses about practical security. Those should be in IT departments, no?
All these years in and Linux users still can't admit to themselves that it's harder to use.
Walk into office store, buy any major brand printer with an Ethernet jack or Wifi, connect to your network. On Mac OS, it's automatically configured by BonJour or you insert the CD/DVD and install. On Windows, it's either plug and play or you insert the CD/DVD and install. By this point you're already pressing most users' "It's too hard!" buttons.
Now head for Linux, where you have to do a bunch of additional clicks—and in many cases, configuration and Googling—to get it up and running. And "running at full potential" is still a question. Does your printer have color? Multiple trays? Duplexing? Getting all of these options working in theory (CUPS level) can range from a "many clicks" job to a "log into localhost:631" to "edit a PPD" issue. And even if you can get it running at the CUPS level, it turns out that different applications have different print dialogues rather than drawing on an environment/library resource that is shared amongst them all, and many do not have check boxes for "Duplex" or "Color" or a tray selector, etc. in their print dialogue. So you can either edit those applications' configuration files (in the rare cases in which their print dialogue can be configured) or you get to try to track down a different app with a print codebase that can cope, possibly compromising on other features needed for your workflow in the meantime.
This is not a minor issue. And this is not a particularly hard edge case. This is printing, like with a printer, basic office documents stuff and one of the basic reasons fro still owning an actual personal computer.
The last time I mentioned this simple example to a die-hard Linux user, about a year ago, they were like, "But who uses those features? Duplexing? Color? Multiple trays?"
The answer is: huge numbers of people. Walk into your local big-box office supply store these days. This is not 1991. Duplexing and color are now fairly basic printer features. Multi-tray is very common in everything from home-office/small business environments upward.
Again, this is just printing.
Now let's talk Bluetooth (which is almost as ubiquitous as USB these days), sheet feed scanning into cloud services, cloud services themselves, video editing, photo management, personal databases, virtually any "ecosystem" model that synchronizes data seamlessly between a mobile app and a desktop app, etc.
These are the things that people are doing with computers these days. The crowd here is all, like, "Bwahah! Who uses iOS and cloud services! Chumps!"
The fact is that people with iPhones and people with Android devices have a wide variety of applications available to them with a simple "two touch synchronized" model:
1) Install mobile app 2) Install matching desktop app 3) Data is synchronized between them and available on the go
The fact is that on Linux, for the vast majority of these cases, #2 is missing. People can laugh all they want but the fact is that a graduate student, for example, can not install Sente or Papers on Linux and synchronize papers and references between Linux and iOS.
And so on.
I understand perfectly well that you *can* ultimately do a great many things on Linux. And I used to be one of the kings of workflow hacking on Linux. My life was managed through a bunch of shell scripts that would parse and synchronize data for me between computers and devices using classic Unix services and intermediate hosts. I had all kinds of things "working" on Linux and even used to do video editing and mastering on Linux.
But the fact is that I was wasting tons of time on the overhead. I tried Mac OS because when KDE went 3 -> 4 and GNOME then went 2 -> 3, along with the userspace daemon changes going around at that time, my productivity ground to a halt because my workflows were broken. Hell, I was back to pounding on the same obscure init scripts to get my laptop sleep
The question is not "can you get it done on Linux." You'll note that I absolutely agree that it can.
The question is "can you get it done more easily / more quickly elsewhere." In fact, the answer is generally yes for everything other than web browsing, basic office documents management/creation, sci/tech research, or software development.
Linux is now fabulous at "install, set a wallpaper, start a browser, type a letter."
That 90% of general use is totally and completely conquered.
The problem is that basically anyone who is still using a desktop or a laptop needs one or two unique thing more than this, or they'd just go to a tablet like so many others have done.
Everyone has their one or two "unique use cases." Very often this unique use case involves one peripheral and one piece of supporting software or application.
This is where Linux falls down. Everyone can get 90% of their needs met with Linux. But for that extra 10%, Linux either does not support the hardware/application or does so in a way that results in an inferior experience compared to other platforms (Mac, Windows).
This can't be done centrally; that's been the Linux model for 25 years (add another driver to the kernel or another userspace daemon that has to be downloaded/compiled/customized/whatever). It has to be done by third party hardware and application makers, and to date the chicken-and-egg problem remains: it's tough to get out-of-the-box Linux support when the market share is so tiny. Third parties just can't recoup their costs.
Add to this the fact that many smaller / more niche software and hardware developers only support one platform (Mac or Windows) because quite simply that's the only platform where their labor, scalability, or expertise are practically deployable, and you have the problem that the only things keeping people tethered to their desktops/laptops are also the things that they can't as easily do with Linux.
General use: Tablets > Linux Specific productive uses: Mac+Windows > Linux
I was a Linux user for 17 years (1993 through 2010) and as I moved up the food chain in my professional life, it simply became too big a headache to continue to use it. Yes, things were always *possible* and there were always *ways to do it* but at the end of the day, for the niche needs I could plug in and/or install on Mac OS smoothy and reach full functionality in single-digit minutes, where on Linux it was the better part of hours to multiple hours in each case. Just as importantly, the Mac OS installs and device support remained stable once in place, while every time I ran an update in Linux it threatened to destabilize all of the devices/applications I relied on, after which more troubleshooting time would be required.
I was very hesitant to switch away from Linux at first, but now I can't imagine spending that amount of time on maintaining my work computing systems. It's just not on. I couldn't go back.
I was an early iPad adopter and used it for TONS of stuff. Got a bluetooth keyboard and wrote most of my dissertation on my first iPad. It was a GREAT device then.
Now?
The 9.7" iPad is too big. It's just plain too big, even the Air, which I now have. But I rarely use it, it's become something for the kids to watch Netflix on. Given what else is available now, it's too heavy. Just plain too heavy.
The iPad mini is too small. Not the display necessarily, but because of the aspect ratio, there's no way to pair it with a keyboard that's the same size but also touch-typable. There just isn't enough width there to make it possible.
So there are two iPad lines, and both of them are the wrong size for me.
On top of that, Apple STILL hasn't figured out that devices that are larger than a phone have a different use case. Most consumers are able to do most things without a full-fledged PC any longer IF and ONLY IF the device enables them to work with files and to manage their own storage. Android does this. iOS still doesn't.
So nearly all of my non-work computing now occurs on a Samsung Galaxy Tab S 8. It's an 8-inch screen, very close to iPad Mini in diagonal size, but because of the aspect ratio, Samsung can pair it with a bluetooth keyboard that remains very small, yet still wide enough to be touch typable at 80+ words per minute. I can use it with a bluetooth mouse when I need to work on fine-control things where fingers aren't appropriate. It's thinner and lighter than the iPad Air AND the iPad Mini. And it has a Micro SD slot and Android so I can (for example) save work attachments from Outlook for Android and open them in various applications, save them, and attach them to a new email to send on to the next person in the chain.
So my 8" Android tablet has become like a new generation of netbook. When separable from its keyboard and mouse, it's able to be used very comfortably as just a feather-light slate/tablet with a touch-centric OS. When with keyboard and mouse, it can substitute in most ways for a fully functional office computer that's smaller than a netbook, yet with reasonable ergonomics. I use it all . the . freaking . time. It is my go-to computing device for most tasks outside of the core of the workday.
iPad's problems are myriad, but they all boil down to Apple not keeping up with an evolving market. The iPad is stale in a variety of easily rectified ways, but Apple won't rectify them. I really don't care about a pencil. I just want one highly portable, lasts-a-day device on which I can do almost everything. My Android tablet is that, and Apple doesn't currently have an offering that even comes close—even though there's no technical reason why they couldn't.
The height of Linux usability and parity was Red Hat 6 through Red Hat 9. Those were the pinnace of Linux operating systems in terms of comparability to and competitiveness with other contemporary systems.
I am a big fan of Linux in technical terms, but not a big fan in terms of UX (basically, the social end of computing, where collaboration across large teams is basically required for a high quality product).
Android is illustrative of what Linux *can* be, but on the desktop has never managed to be because of the obvious differences between the social (i.e. people and hierarchy) infrastructure behind Android vs. behind the Linux desktop.
I used Linux from 1993 through 2010. Early on I used the same .twmrc files with TWM that I used on my HPUX and SunOS boxes at CS school. At the time, the Linux desktop was *light years* ahead of the Windows desktop. 16-bit color, high resolutions, fast, lots of very powerful applications from the Unix world and experimental desktop projects like InterViews that seemed very promising. People with MS-DOS or GEM or Windows 1/2.x computers were envious.
Later on I used FVWM. Then I switched to KDE in the KDE Beta 3 era. But then (mid-late '90s), Linux on the desktop had already been outrun by Windows 95 and Mac OS. The level of integration amongst services and components wasn't that of a coherent system like it was for Mac OS and Windows; the Linux "computing is a network" philosophy—very good for things like business and scientific computing—was obvious in comparison.
When KDE 4 was released, I tried to use it for a while but it got in my way. I had to rebuild my entire desktop over and over again as objects were lost, lost their properties, etc. After about two weeks on KDE 4 during which I mostly nursed KDE along rather than doing my actual work, I switched to GNOME 2.x. I see that as something of a golden age for desktop Linux—basic parity with what was going on in the Mac and Windows worlds if you used a polished distribution like Fedora. Install was different, equally demanding of skills, but the actual install and setup process for the desktop OS on a bare machine involved approximately the same amount of work as was true for Windows, and the result was basic feature and experience parity.
Then, the bottom fell out. I suspect that a lot of the need for the Linux desktop with experience parity to Windows was met by an increasingly revived Mac OS, and users flocked there. Myself included, in the end.
GNOME 3 came out and KDE 4 was finally becoming usable and there was something of a battle, but both were behind the curve relative to the stability and seamlessness of OS X, and OS X had end-user application developers already. They screamed and moaned during the transition from legacy Mac OS, but most of them hung on and redeveloped their applications for OS X, and there were a bunch of new application developers to boot.
On top of that, the major applications of the business and academic worlds made their way out for OS X as it became a viable platform. You now had a seamless desktop OS that offered all the big brands in user applications, plus stability, plus easy access to a *nix environment and command line if you wanted it.
I was busy fighting Linux during that "instability era" just as KDE4/GNOME3 happened and duked it out. Things were changing very quickly in many facets of the Linux base installs, in hardware, etc. and every update seemed to break my Thinkpad T60 which at the time ran on Fedora. I was spending a lot of time fixing dotfiles and scripts and trying to solve dependency problems, etc. Meanwhile, lots of new things that were starting to become commonplace needs (cloud services, mobile devices, etc.) didn't yet work well with Linux without lots of command line hacking and compiling of alpha-quality stuff from source.
A couple of fellow academics kept telling me to try Mac OS. Finally I did, I installed a hackintosh partition on my T60. By mid-2010, I realized that I was using my OS X boot, along with the GNU tools environment from MacPorts, far more than I was using the Linux partition, and that there were Mac applications that I was *dying* to start using on a daily basis, but ha
Way to hide your brand effectively, Mozilla!
Go with the blue one that actually says "Mozilla" somewhere in a way that most people will be able to recognize.
Just as importantly, the market has shifted. There is still a stable market for computing and it will continue to exist, but it no longer includes the home/casual user segment. Those people have gone over to tablets and phones (most all of the non-tech folks that I know now have an older laptop sitting dusty on their top closet shelf, unused for years, and don't plan to replace it; only about half have even bothered to get a bluetooth keyboard for their tablet, while the rest are perfectly satisfied with the onscreen keyboard).
Business, tech-oriented people, the self-employed, creatives, and so on will continue to buy full-fledged computing hardware and to upgrade it over time, but this is a much smaller market than once existed for computing, where the market included basically every home and individual in developed societies. So some correction in sales was (and probably remains) inevitable over time.
you will find that many dealerships do the same.
Only there are precious few protections for the consumer.
So when your used car breaks down catastrophically in a couple of months, it's "Oh, we must have missed that!" and when you try to use your warranty to cover it, it's excluded on one of 57 different technicalities, with maximum coverage for that particular type of repair that only covers a fraction of the typical cost, all spelled out in tiny print in a massive rulebook of which you do not actually get a copy when you purchase your vehicle and your "warranty."
And even if you manage to find something that is covered, and want to get your fractional pittance, you still have to pay out of pocket yourself for the repairs, then submit the receipt to the third-party corporation that provides the "warranty," who will scour your receipt for more technicalities on which to exclude your claim, and if they can't, will ultimately send you your fractional pittance in 8-12 months and after several letters from your attorney.
In short, U.S. "dealer checks" and "warranties" are worth less than lavatory tissue, which is why every reputable U.S. publication strongly advises used car buyers to pay to have their own favorite mechanic go over the vehicle (at a cost of $50-$200) before buying. So you can easily burn up $2k or more having cars vetted by a mechanic before you find one that he or she will actually tell you is a reasonable bet. Yet all of them are happily checked, warranted, etc.
I used to teach a pretty decent load of Chinese students in my classes in Manhattan (I taught at both NYU and on CUNY). By the '00s, they were significantly more creative, sophisticated, well-rounded, and learned (I make no claims about "intelligence") than my American students, who were really sort of "decadent" in the worst, stereotypical ways—knew only a few things about a few things but a lot about consumer goods and fashion, and didn't seem to think they needed to work, just didn't feel the global pressure from competing workers. Very entitled.
The Chinese students tended to cluster in 'A' territory and always approached me after class to talk about class topics until I had to leave, then followed up with serious questions by email. The American students always had one or two in the 'A' group and the rest clustering around low B and high C, and it was a struggle just to learn their names, as they had nothing at all to say to me unless I called on them in class. Ironically, many of the Chinese students had better formal English as well, though there were always also about half that were clearly 'winging it' and needed ESL—but were killing it in class performance anyway, managing to learn and to get through books by relying on a dictionary, a study group, and sheer determination.
And I had no real driver trouble that couldn't be worked around. Winmodems and winprinters weren't actually all that common in the grand scheme of things. Maybe for a year or two in the mid-'90s. But there was a wealth of used hardware available in those days that was the real deal.
Anyway, I always used external modems, including for a while a very weird Telebit modem with a steel case, a flip-open front door, and a non-AT command set that meant that I had to log into it via a terminal emulator and execute commands myself because only AT command sets were reported.
On the printing front, very early on I was able to get ahold of a secondhand Apple LaserWriter, and then set up Netatalk and a bunch of adapters to print to it over Either/RS-422 or something like that. It made everything on Linux a thousand percent easier because you could just dump postscript directly do it, and Linux print drivers weren't really sorted for many years.
In fact, there was even a really reasonable (for the period) WYSIWYG office suite called InterViews that ran under X and dumped out PostScript files for printing. The text editor was called 'ez' and I still have a bunch of non-CS homework from that era saved as '.ez' files somewhere. For the CS homework, I would just dial my university's SLIP pool and then telnet over to the Sun systems in the department where we had logins and used gcc for everything.
The actual hard part, as I recall, was getting Linux in the first place, which took me several months. There were no dial-up BBS systems I could find that had actual complete Linux distributions of any kind. The distributions that did exist at the time (I remember Slackware, Yggdrasil, Trans-Ameritech or something like that, and a couple of others, though maybe my memory is off) were set up as a series of dozens of 1.2mb or 1.44mb floppy disk images.
Not only was there no BBS that seemed to host a complete distro, but those were actually pretty sizable downloads at the time—it represented many hours of downloading even if a complete set could be found. At school, the systems on the actual 'net via 10-Base-2 and AUI at the time (our so-called 'smart hosts' that were in the DNS system) could download such things quickly from other smart-host FTP sites with complete sets, but they were Sun workstations with no floppy drives, and our filesystem quotas were not big enough to hold a complete set.
And before I had Linux actually installed, there was no way for me at home to log into those quotas and download the files from Unix machines anyway, otherwise I could have used FTP over dial-up to move a few images at a time through the pipline to home.
IN the end, I managed to find a local ISP that would set me up at home with a UUCP feed, and a vanilla UUCP dial-up binary set that was a massive bear to configure on a non-Unix system. Then I spent many weeks laboriously pulling images down over UUCP nightly from Usenet.
Once I finally had the complete binary set downloaded, I got ahold of many boxes of floppies, wrote the images, and did my first Linux install.
That bootstrapping was the hard part. Once Linux was actually installed, the entire non-BBS online universe of the Internet became massively easy to navigate (at the time, it was not easy to do Internet on PCs—there was little if anything on http:/// but that was the only protocol supported by DOS-based systems or by Macs) because now I had gopher, wais, archie, veronica, ftp, and so on. It was like boostraping your home computing universe into the Internet age.
The drivers were really of secondary importance once you got your hands on a complete distro. You'd just note which graphics hardware was supported by the X binaries, for example, and then go out and buy that card for $50 or $100. That was easy compared to actually getting your hands on a complete distro stored on the right machine and OS (DOS to write the images) and then getting it all written out and ready for install from floppies.
I find this use of the term "proprietary" to be significantly different from the usual intended meaning of the term.
Usually, "proprietary" means intellectual property belonging to a private organization, with a harsh hand taken to prevent reverse engineering and the stated assertion (either in EULAs or otherwise) that no use can be made in any way of reverse engineered output without being subject to legal action.
Here, "proprietary" apparently means "hard to understand" since everything else does not apply—not a private organization, no need to reverse engineer since it's an interpreted language, etc. By this standard, all of the perl and assembly code in the universe is "proprietary" since it's not written with forty character variable names.
Seems a stretch.
I think there are two fundamental concepts here:
1) Understanding information as representation (cryptography here) and eliminating conceptual ambiguity/unpredictability in algorithmics (security "flaws" here). These fundamentals are absolutely part of the basics of CS, but the emphasis is more on correctness: understanding the nature, reversibility, and properties of the representation and the invariants and rigor of the algorithmics. This is good CS in general, for all cases, and you're right, it's also the fundamentals of security.
But I think when they say "teach security" they actually mean:
2) Harden designed and deployed systems against common vectors for attack in real-world situations.
This requires not just the items from (1) but also a familiarity with particular architectures, implementations, protocols, languages, and conventions and conditions of user thought and behavior. So while there is overlap, I suspect that calls for "teaching security" aren't going to be satisfied with cryptographic theory and parsimonious, sound, and unambiguous algorithmics with strong assumption and bounds checking. Most policy people wouldn't consider that to be "teaching computer security."
Er, "to the level of."
After reading this thread, I think a lot of Slashdot posters have no idea what "computer science" as a science actually is.
They think AI researchers or computer vision folks started by sitting down at an Apple IIe and banging out:
"10 REM This is my first crack at an AI program. Let's see how it goes."
Um, yes, pen and paper and chalk and chakboard. And math and proofs. Are you lowing mathematics to the lower of "fucking philosophy or gender studies?"
This is what I think.
It should be required for anyone getting a degree that recommends their ability to write code and create systems.
It should not be required just because someone is getting a *computer science* degree, because (unless the science has completely disappeared) a lot of those guys would have to *first* learn how to code, *then* learn about deployment and networks and users, *then* learn security, and it would take serious time away from the actual thrust of their degree.
People are posting upthread about things being different now, about the engineering wing now being a part of many CS programs, which was not the case when I was in the field. So maybe a dual-track degree is in order. To get the degree with the software engineering emphasis, yes, you have to learn about security. But to get the degree on computational theory? It makes no sense to me, except in the case of those that want to work on cryptographic theory/information theory and so on.
For a lot of the guys I went to school with, it would just make no sense. They'd have to first learn to code before they learned about coding securely. Or they'd have to first learn about networks before they could learn about securing them. And so on. They were busy with problems totally unrelated to implementation and deployment, and it would turn the degree that they got into another degree entirely as they spent years learning how to build stuff, instead of how to rigorously conceptually represent stuff and how to rigorously prove stuff.
When I think "computer science," programmers are the farthest thing from my mind. I imagine blackboards and chalk and lots and lots of scribbling. Not writing well-formed PHP+SQL code. Like, totally separate universes.
I have no problem with the idea that there ought to be courses on security, just not in CS where (at least when I was a student) that's not really what they do. They're in the business of figuring out/proving/disproving whether things *can be computed in theory* and how, in theory.
Security just isn't a question that has anything to do with that, and these are people that write comparatively little code. It's not what the discipline is about.
There *are* people that spend their time learning how to code, and how to code properly for real-world situations and deployment (which is precisely where security becomes an issue). That's my point. Security ought to be taught where people are actually learning to code, deploy, and operate. It's a serious, rigorous field of its own. It just doesn't happen to be computer science (which, if it helps you, could just as easily be called "computation theory").
At least in the CS school I attended, I don't think there were many people that could have "fixed a computer" or "written an application," even amongst the faculty, really. Their job was to answer the question "Can this real-world phenomenon, problem, or pattern be usefully symbolically represented for processing, and if so, how, and with what consequences?" If they were able to answer this question, they'd then toss it over to engineers in the CE department for "Can you design for us an apparatus or a program that carries out this kind of symbolic representation in the interest of computation?"
Two very separate fields.
should have been.
CS = math + theory
CE = programming + hardware
IT = deployment + operations
That's the way it was at my university back in the '90s. This was at a large school that is in what is now the PAC-12 conference. Each one was a separate, rigorous four-year degree.
In my CS program, it was the same—huge on math and theory and the mathematical representation of concepts, problems, and sequences/patterns. Very little coding. Just enough code in year one to get you able to actually touch keyboards and do the math, but otherwise, very little "applied" technology of any kind.
That, we were told, belonged to the engineering wing over in computer engineering, who was to worry about implementation of CS concepts and theory, and to the applied/operations wing over in information technology, who was to worry about day-to-day computation in the real world using the implementations CS had designed. We even had a 1xx class on the divisions and consequences, etc.:
Sequence: CS = Research/Theory -> CE = Implementation -> IT = Real-world application of implementation -> Feedback sent back up the chain
So why not teach it where the programmers are being taught, in a CE or IT department, rather than in CS, where there is relatively little work on "programming" as such?
When I was in CS school, it had very little to do with "code" and everything to do with math and theory. CS was the science wing of computation fields. The coding was for the computer engineering and information technology students.
In fact, it's been decades.
But the academic in me wants to say that computer science is not the right place for courses about practical security. Those should be in IT departments, no?
All these years in and Linux users still can't admit to themselves that it's harder to use.
Walk into office store, buy any major brand printer with an Ethernet jack or Wifi, connect to your network. On Mac OS, it's automatically configured by BonJour or you insert the CD/DVD and install. On Windows, it's either plug and play or you insert the CD/DVD and install. By this point you're already pressing most users' "It's too hard!" buttons.
Now head for Linux, where you have to do a bunch of additional clicks—and in many cases, configuration and Googling—to get it up and running. And "running at full potential" is still a question. Does your printer have color? Multiple trays? Duplexing? Getting all of these options working in theory (CUPS level) can range from a "many clicks" job to a "log into localhost:631" to "edit a PPD" issue. And even if you can get it running at the CUPS level, it turns out that different applications have different print dialogues rather than drawing on an environment/library resource that is shared amongst them all, and many do not have check boxes for "Duplex" or "Color" or a tray selector, etc. in their print dialogue. So you can either edit those applications' configuration files (in the rare cases in which their print dialogue can be configured) or you get to try to track down a different app with a print codebase that can cope, possibly compromising on other features needed for your workflow in the meantime.
This is not a minor issue. And this is not a particularly hard edge case. This is printing, like with a printer, basic office documents stuff and one of the basic reasons fro still owning an actual personal computer.
The last time I mentioned this simple example to a die-hard Linux user, about a year ago, they were like, "But who uses those features? Duplexing? Color? Multiple trays?"
The answer is: huge numbers of people. Walk into your local big-box office supply store these days. This is not 1991. Duplexing and color are now fairly basic printer features. Multi-tray is very common in everything from home-office/small business environments upward.
Again, this is just printing.
Now let's talk Bluetooth (which is almost as ubiquitous as USB these days), sheet feed scanning into cloud services, cloud services themselves, video editing, photo management, personal databases, virtually any "ecosystem" model that synchronizes data seamlessly between a mobile app and a desktop app, etc.
These are the things that people are doing with computers these days. The crowd here is all, like, "Bwahah! Who uses iOS and cloud services! Chumps!"
The fact is that people with iPhones and people with Android devices have a wide variety of applications available to them with a simple "two touch synchronized" model:
1) Install mobile app
2) Install matching desktop app
3) Data is synchronized between them and available on the go
The fact is that on Linux, for the vast majority of these cases, #2 is missing. People can laugh all they want but the fact is that a graduate student, for example, can not install Sente or Papers on Linux and synchronize papers and references between Linux and iOS.
And so on.
I understand perfectly well that you *can* ultimately do a great many things on Linux. And I used to be one of the kings of workflow hacking on Linux. My life was managed through a bunch of shell scripts that would parse and synchronize data for me between computers and devices using classic Unix services and intermediate hosts. I had all kinds of things "working" on Linux and even used to do video editing and mastering on Linux.
But the fact is that I was wasting tons of time on the overhead. I tried Mac OS because when KDE went 3 -> 4 and GNOME then went 2 -> 3, along with the userspace daemon changes going around at that time, my productivity ground to a halt because my workflows were broken. Hell, I was back to pounding on the same obscure init scripts to get my laptop sleep
The question is not "can you get it done on Linux." You'll note that I absolutely agree that it can.
The question is "can you get it done more easily / more quickly elsewhere." In fact, the answer is generally yes for everything other than web browsing, basic office documents management/creation, sci/tech research, or software development.
Linux is now fabulous at "install, set a wallpaper, start a browser, type a letter."
That 90% of general use is totally and completely conquered.
The problem is that basically anyone who is still using a desktop or a laptop needs one or two unique thing more than this, or they'd just go to a tablet like so many others have done.
Everyone has their one or two "unique use cases." Very often this unique use case involves one peripheral and one piece of supporting software or application.
This is where Linux falls down. Everyone can get 90% of their needs met with Linux. But for that extra 10%, Linux either does not support the hardware/application or does so in a way that results in an inferior experience compared to other platforms (Mac, Windows).
This can't be done centrally; that's been the Linux model for 25 years (add another driver to the kernel or another userspace daemon that has to be downloaded/compiled/customized/whatever). It has to be done by third party hardware and application makers, and to date the chicken-and-egg problem remains: it's tough to get out-of-the-box Linux support when the market share is so tiny. Third parties just can't recoup their costs.
Add to this the fact that many smaller / more niche software and hardware developers only support one platform (Mac or Windows) because quite simply that's the only platform where their labor, scalability, or expertise are practically deployable, and you have the problem that the only things keeping people tethered to their desktops/laptops are also the things that they can't as easily do with Linux.
General use: Tablets > Linux
Specific productive uses: Mac+Windows > Linux
I was a Linux user for 17 years (1993 through 2010) and as I moved up the food chain in my professional life, it simply became too big a headache to continue to use it. Yes, things were always *possible* and there were always *ways to do it* but at the end of the day, for the niche needs I could plug in and/or install on Mac OS smoothy and reach full functionality in single-digit minutes, where on Linux it was the better part of hours to multiple hours in each case. Just as importantly, the Mac OS installs and device support remained stable once in place, while every time I ran an update in Linux it threatened to destabilize all of the devices/applications I relied on, after which more troubleshooting time would be required.
I was very hesitant to switch away from Linux at first, but now I can't imagine spending that amount of time on maintaining my work computing systems. It's just not on. I couldn't go back.
I honestly entered this story hoping to read lots of merciless ridicule of these phrases.
Where is it? Or have all the geeks finally left Slashdot?
I was an early iPad adopter and used it for TONS of stuff. Got a bluetooth keyboard and wrote most of my dissertation on my first iPad. It was a GREAT device then.
Now?
The 9.7" iPad is too big. It's just plain too big, even the Air, which I now have. But I rarely use it, it's become something for the kids to watch Netflix on. Given what else is available now, it's too heavy. Just plain too heavy.
The iPad mini is too small. Not the display necessarily, but because of the aspect ratio, there's no way to pair it with a keyboard that's the same size but also touch-typable. There just isn't enough width there to make it possible.
So there are two iPad lines, and both of them are the wrong size for me.
On top of that, Apple STILL hasn't figured out that devices that are larger than a phone have a different use case. Most consumers are able to do most things without a full-fledged PC any longer IF and ONLY IF the device enables them to work with files and to manage their own storage. Android does this. iOS still doesn't.
So nearly all of my non-work computing now occurs on a Samsung Galaxy Tab S 8. It's an 8-inch screen, very close to iPad Mini in diagonal size, but because of the aspect ratio, Samsung can pair it with a bluetooth keyboard that remains very small, yet still wide enough to be touch typable at 80+ words per minute. I can use it with a bluetooth mouse when I need to work on fine-control things where fingers aren't appropriate. It's thinner and lighter than the iPad Air AND the iPad Mini. And it has a Micro SD slot and Android so I can (for example) save work attachments from Outlook for Android and open them in various applications, save them, and attach them to a new email to send on to the next person in the chain.
So my 8" Android tablet has become like a new generation of netbook. When separable from its keyboard and mouse, it's able to be used very comfortably as just a feather-light slate/tablet with a touch-centric OS. When with keyboard and mouse, it can substitute in most ways for a fully functional office computer that's smaller than a netbook, yet with reasonable ergonomics. I use it all . the . freaking . time. It is my go-to computing device for most tasks outside of the core of the workday.
iPad's problems are myriad, but they all boil down to Apple not keeping up with an evolving market. The iPad is stale in a variety of easily rectified ways, but Apple won't rectify them. I really don't care about a pencil. I just want one highly portable, lasts-a-day device on which I can do almost everything. My Android tablet is that, and Apple doesn't currently have an offering that even comes close—even though there's no technical reason why they couldn't.
money supports the Clintons.