Don't those individual humans have any responsibility or culpability for wrong-doing?
Both in legal practice and psychologically - No, they don't. A CEO has to more-or less personally and provably give the order to shoot a busload of orphans before the legal system will impose any sanctions beyond some pittance of a fine against individuals acting under the corporate umbrella. And while Nuremberg may not have accepted "just following orders" as a defense, humans really do think that way - Most people would much rather commit atrocities than lose their job or have their peers think less of them.
But if I band together with a lynch mob and go out and kill people as a group, am I absolved because the mob was "looking after its own interests, which is to" kill people?
Google "Shell Oil Nigeria Murder" for a good perspective on that. They actually outsourced to the local Junta the torture and murder of a local tribe inconveniently living on land Shell wanted to "drill baby drill", and skated away scot-free - The USSC has even gone so far out on a limb to protect its corporate masters that they outright shielded Shell from civil lawsuits by Nigerian refugees in the US.
Make no mistake, I fully agree with you in principle, and would like to see the CEO of RDS (along with many, many others just as guilty of similar crimes) sent to Oklahoma to try one of their early morning experimental drug cocktails. But the reality of our current situation has corporations essentially immune from most legal consequences by definition; an unwillingness to go after the humans actually responsible; and a human wetware flaw that means yes, you and I would probably do the same thing in their shoes.
I hate FPs like this - Yes, enough that I feel a need to complain about them in the discussion instead of just moving on.
I use Linux. I've rolled my own kernels (as in actually writing code, not just a custom config and build of the stock tree). And I have never heard of Wayland or Weston. And out of three links, could you have included one going to "what the hell is Wayland"? No. You have a release announcement and a PR page.
Wayland may well rock the world. But when writing up an FP about something obscure (yes, it is - I don't care how many of your friends run it), you would do well to link to an intro-to-obscure-thing page.
Fine. Buy a Tesla. Quality has a price. Your car or your money.
Not knocking on Tesla, because yes, they make a damned fine car. Wish I could afford one!
But to address your deeper point - Three different makes available in the US offer a 10 year / 100k warranty on cars that start under $20k. Another three offer it on cars under $35k. Strangely, not one of those companies bases its operations out of America.
And GM? Well now! They'll let you pay extra for a whopping six years of no rust. I would love to see the accounting tricks that led to them somehow showing a profit post-bailout. And no doubt I will, when SarbOx II bans them.
The problem is that some nations want to enforce their rules on other nations.
Damned straight. Every single country on this pathetic mudball has the "right" to enforce their own laws on their own domestic network. Want to connect that network with your neighbors? Then shut the fuck up about what your neighbor does that you don't happen to like. Once you decide to play, you have exactly one "right" left - Take your ball and go home.
Unfortunately, Google (by virtue of having a corporate presence just about everywhere) has little choice but to at least give lip-service to compliance with the EU's new physically-impossible ruling (what, did an Italian magistrate make the final call?). The EU will very soon get a reminder of the Streisand effect, however - For ever takedown notice they send to Google, you can expect a hundred sites to pop up mirroring that content, completely outside any jurisdiction where they can put local execs in prison for noncompliance.
And yes, I realize the hypocrisy risk here, and would say the same thing about my own government. Seriously, filing charges against a foreign government's standing military officers for not playing nice on our network? WTF, Obama? Either put up the other side of the "great firewall", or step down before you get us into WWIII, dumbass.
We have two and a half military forces on this planet worth considering in this discussion. Control of Europe matters only insofar as they give us friendly locations to stage military operations somewhat closer to Russia. And while the Mongol Horde may well erupt someday soon to conquer the entire planet, for now they seem content to pursue the American dream of owning the most disposable stuff.
So yeah, option #1 makes the most sense, because we won't actually go with #3, and knowing that, Russia has no reason not to call us on #2, forcing us to back down and look pathetic.
Interestingly, the fact that Putin appears to have deescalated a bit in the last couple days, in light of what I just said, one has to wonder what he really wanted in the first place - Because rest assured, he sure as hell didn't back down because of anything we did.
Next up is sanctions against the individuals in question. No more iPhones for you!
I can hear the quote from Zhang Gaoli already: "After analyzing the sanctions against our military officers, I suggest to the USA to make their iPads using cardboard and trained fireflies".
Oh, wait, China makes most of the world's cardboard, too. Hmm... Woven cat hairballs? I think we still have at least some domestic production of those, if Fluffy hasn't outsourced it to a Mexican Hairless (don't ask) yet...
Clearly trolling, but you have perfectly expressed "the enemy's" stance on DRM. "We" need DRM because some people want to preserve their positions of power over the information-have-nots, simple as that.
And I don't even mean music and movies, we can live without those. I mean textbooks; I mean research journal access; I mean "for profit" municipal codes of law; I mean for-profit industry standards specs; I mean proprietary and impenetrable pricing structures like health insurance fees.
So although you troll us, you magnificent bastard, you also have one of the insightful posts on this topic so far.
You seem to have confused math with technology. I'm frequently amazed by how many/. posters don't quite understand what "technology" means: more efficient ways to perform tasks with the same base resources.
You might want to invest in a better dictionary.
Optimize: make the best or most effective use of (a situation, opportunity, or resource).
Efficient: achieving maximum productivity with minimum wasted effort or expense
Ephemeralization: the ability of technological advancement to do "more and more with less and less until eventually you can do everything with nothing".
It would appear you wanted one of those words (or something related), rather than technology:
1. the branch of knowledge that deals with the creation and use of technical means and their interrelation with life, society, and the environment, drawing upon such subjects as industrial arts, engineering, applied science, and pure science.
2. the terminology of an art, science, etc.; technical nomenclature.
3. a scientific or industrial process, invention, method, or the like.
4. the sum of the ways in which social groups provide themselves with the material objects of their civilization.
Even if we limit our use of "technology" to require actual implementations of ideas rather than the ideas themselves - The JPEG standard turns 31 this year. MP3, likewise, turns 23.
Communicating with, storing data in, retrieving data from, or otherwise intercepting and changing computer resources without consent is unauthorized access. It's against the law.
I can't tell if it worries me more that you think I would try to debug code on a system I hacked into... Or that you've never heard of low-end web hosting providers.
Real-world access permissions don't always match the ideal, and the fact that I can legally upload a CGI via FTP doesn't mean I can hook into a remote debugger. Dealing with an overly locked-down hosting company doesn't break the law, Scoutmaster AC.
Fair enough - I suppose if you enjoy that, hey, whatever you like doing, you like doing!
Me, I love getting down as close to the CPU as I can and making it beg for mercy. But I suppose I can appreciate, if not personally enjoy, what you describe.
Because in my experience it's the "apprentices" that tend to lean far too heavily on printf, which is always taught before debuggers and is much easier to use.
Our experiences differ somewhat drastically, then - Perhaps this involves a difference between the Windows world and the Linux world. In Linux, yes, knowing how to attach and use the standard debuggers counts as something of a fine skill set (though I don't think that still holds true like it used to - We have a hell of a lot more choices today than just GDB/DDD). In the Windows world, when the code breaks, the IDE throws you into a debugger and all but tells you what happened and what to do about it.
Because Real Programmers build houses using only hammers. Nailguns, screwdrivers, shovels, and power tools are for pussies.
Nice strawman, but no. Real programmers use power tools when appropriate. But when the sawzall won't fit in a tight space, the real programmer knows how to use a keyhole saw.
When you spend 8 hours troubleshooting an open-source project to compile with a third party proprietary library it feels damn good to make it work. Coding is good because it's hard. The higher the stakes the more the accomplishment of that task will make me proud/happy.
Sorry, but no. If I have a known-working source tree that I want to work with just to tweak one tiny nuisance, I want to download it, open the project, make the change, then build/test/deploy.
In gaming, you have the concept of artificial vs natural hardness. When the game makes you do things just right with cheap tricks like an almost unavoidable trap right before boss / end of the level, when it requires pixel-perfect jumps, when it has insanely complex or tedious puzzles to solve, when it has time limits that require you to essentially memorize which buttons to mash and when, when it doesn't allow saves except at completely useless spots, the devs have made it artificially hard because they failed to make it challenging through more natural means.
In coding, we have the same problem, except we don't (usually) do it to ourselves intentionally - And you describe the most egregious example of it, configuring dependencies. I love a good challenge in writing actual code. Optimizing a tight loop cycle by cycle, importing useful numbers from a BOL file that everyone else has given up on, implementing a new (to me) algorithm in language X (I had a great time learning SQL for that reason, because most of my stock tricks from the C world don't translate well). Those all leave me feeling deeply satisfied at the end of the day. When, however, I can't even get the damned thing to build because I have to tweak 17 obscure dependencies:
"Oh yeah, it doesn't work with the newest 2.17.99 release of WidgetBlaster, you need to hunt down 2.17.94"
"Oh, you used the default build parameters for WidgetBlaster? Heh, you have to pass it the undocumented NoFleem flag at compile time"
"Yeah, NoFleem doesn't actually have any effect unless you install the not-obviously-required WidgetFleem library first"
"Well, you can't actually do it in one pass, since WidgetFleem has a circular dependency on WidgetBlaster - So build WidgetBlaster without NoFleem, then build WidgetFleem, then rebuild WidgetBlaster with the NoFleem option".
"Oh yeah, it only works in GCC 4.4.x, they changed the optimizer after that one and it breaks WidgetFleem."
"Did I mention you need to cross-compile it from an OS X machine because a critical buildtool doesn't exist on Windows?"
Shit like that drives me up the wall, I have zero patience for - or enjoyment of - trying to work around someone else's quirky build environment. If your code depends on obscure external packages, include them in your source tree, and include building them in your default project/makefile, period. I don't care if it makes your source tree 2.5GB, because I'll need to download them all anyway, and at least you know the right versions to include.
People that need debuggers will never be any good. For good programmers, a debugger occasionally safes some time.
This statement, while literally true, requires some qualification.
Knowing how to use a proper debugger can save you days of pain. But you also can't depend on always having the ability to use a good debugger - Simplest case, trying to debug remote code running on a server for which you have deploy-but-not-debug permissions on (this comes up a lot for me, actually).
And in those situations, the ability to track down a bug with nothing more than a set of print/alert statements saying "I got here, X=47" means the difference between "programmer" and "wizard's apprentice" (by which I mean if the IDE's wizard fails you, you end up almost drowning until a real programmer saves you).
The retina and optic nerve might be the closest we might get, so are you willing to give up an eye for this? Go full-on Borg?
We already have working CBI tech - Cochlear implants have effectively made deafness an "optional" disability in the modern world. We also have more-or-less working artificial retinas (albeit still only in the experimental stage), and within a few years most forms of blindness will also become a historical curiosity.
Realistically, we could have already come up with a working general purpose CBI if we had put serious (think anti-cancer) effort into it. We have "enough" understanding of how the brain works at a high level to introduce external artificial signals into it now, with a bit of trial-and-error to figure out exactly where we need to splice in and how to modulate the signals. The problem? This sort of research has an extremely high level of risk, and since the FDA officially does not consider normalcy a treatable condition, making the safety-vs-reward threshold even higher for experimentation with live humans.
The thing about technology is: the absolute best thing today, really the best, is utter crap in 20 years.
I know, right? Fourier transforms? Meh, sooo 1820s! No one except dinosaurs use them anymore... Certainly not the entirety of digital compressed audio and video, nope nope nope!
All the cool kids today use DCT. No, wait, 40 years old? Can't trust anything over 40! Quick, port everything to wavelets! What? The HWT could legally drink alcohol in the US this year? Fuck, someone come up with a new time/frequency domain transform before all these old workhorses expire into "utter crap"!
/ Still get paid primarily to code in C. // It has a hash mark at the end of its name these days, but I won't hold that against it.
I've often said that you don't fix a software bug until you've fixed the process that allowed the bug to be created. The above quote is of a similar sentiment.
Sounds great! Now just show me a program (more complex than "Hello World") with no bugs.
Yes, culture can play a large role in the frequency and severity of bugs released into production code. But humans make mistakes, simple as that. No amount of code reviews or test suites or BS like "pair programming" can ever get around that basic fact.
Or perhaps as a better example of the problem with that philosophy - Show me a program with no bugs that used OpenSSL. In that case, even the trivial "Hello World" example would have a serious bug completely out of the control of the developer.
That's not what I submitted at all. They basically cut the last half of my post off, typed something totally different and provided an entirely different link.
But really, don't those applications directly address two of the critical unsolved issues in Materials Science? How to make iPhones survive an unbraked atmospheric reentry, and how to best have your makeup accidentally come off when you wash your hands? I know those keep me up at night worrying...
If course, I think we give Slashdot too much credit to actually attribute that to a real live editor's less-than-useless intervention. They didn't edit that, it just counts as a new feature of Beta - Take some random sponsor-of-the-week's link and merge it with otherwise coherent submissions. Revlon probably submitted an ad that included some BS technobabble about high-tech age-defying polymers, and the submission system automatically detected your post as the most relevant to the ad, albeit in a laughably inappropriate way.
I took a semester of linear algebra, too, and it was hands down, full stop the most useless course I took in my entire college career.
You already mentioned regression. How about affine tranformations (or virtually the entirety of 3d graphics)? Markov chains? FFT? Force/tension distribution? State space modelling? Covariance matrices? Projection of an m-brane onto a n-brane (or any shift in dimensionality, really)?
Linear algebra makes all of those trivial to compute. Yes, some of them have more straightforward solutions using calculus, but those don't always tend to readily map well to code.
If anything, I would say that your professor failed in not explaining why the topic matters... Because linear algebra shows up everywhere in CS.
why saddle yourself with mountains of debt just to get a degree that's basically worthless for the "real world,"
Mountains of debt? Worthless?
I went to a state school (admittedly one with a good rep for engineering), finished with a few $K in student loans that I paid off in my first year after graduating. I made double what my highschool and college friends did just in my internship. I had a job offer the day I graduated, as well as a non-stop stream of recruiter calls.
And today as a seasoned professional, I make 3x the median educated professional income in my area.
If you want to call that worthless - Hey, sorry you couldn't make it, but thanks for contributing to the dropouts that keep me well paid!;)
So learning abstract calculus for 3 semesters, linear algebra, analysis / topology is not going to give you coding ability.
I don't normally respond to ACs, but you have it so wrong, I couldn't resist.
Linear algebra quite possibly counts as the single most useful pure-math course I took as part of my CS degree - With statistics as a close second. And of course, I don't even mention boolean algebra because it counts as just too obvious (protip: fully parenthesize everything, because no, that line doesn't do what you meant, and I have to fix it after they can your ass).
No, HR doesn't understand that. HR doesn't understand a single goddamned word on your resume, so don't bother - Just make sure your cover letter mentions every buzzword in the job listing, and HR will pass you along to the actual hiring manager.
And he will appreciate the difference between someone who did a static webpage as their capstone project vs someone who can chat about the meaning of the various ways to measure the average of a set of values (free hint: mean/median/mode ain't even a weak start to that conversation).
You can certainly find better books to help you learn a particular programming language. You can find better books about the history of programming. You can find better books on algorithmics that will make you a better programmer overall. You can even find better writing (although the skill that went into some chapters - "Crab Canon" in particular - simply blow me away), if you just want a good read overall.
But if you don't read GEB and fall in love - you need to find a different career, because programming ain't for you. Seriously. I didn't get into the field because of Hofstadter, but that one book pretty much embodies 90% of the reason I did. And even as a seasoned pro, you will learn something from it - Hell, even after 20+ read-throughs, I still discover something awesome and new each time I revisit it.
Since 'mid 90s' was before the age of AJAX and constant communication, there is no possible way that Prodigy had any information other than 'bzipitidoo accessed the complaints page 3 minutes ago,' Only after hitting the submit button would you send anything back to the server
Although vaguely web-esque, back in the dark days before the modern internet, online services like Prodigy didn't run in standards compliant web browsers. They used dedicated proprietary thick-clients to establish the connection and display the content to the user.
You might also think it seems a bit inefficient to do a round-trip for every single keystroke, but again, different world. When you have a modem dedicated to handling the connection, your "packet" consists of a mere ten bits per byte (assuming 8N1), and client-side buffering just means wasted bits (not) on the line.
This is why it is being used, and why people do choose it over USB today.
Except, not so much.
Outside the Apple foodchain, I have yet to see a single Thunderbolt device (actually used... yes, I technically have seen a monitor that supports it - connected by HDMI), from the home to the recording studio to the server room. Nada.
Thunderbolt may well have a world of advantage over USB, just like Firewire did. And just like Firewire, history will relegate it to a niche of obsolescence caused by a simple lack of adoption in the face of a number of much more popular standards.
Don't those individual humans have any responsibility or culpability for wrong-doing?
Both in legal practice and psychologically - No, they don't. A CEO has to more-or less personally and provably give the order to shoot a busload of orphans before the legal system will impose any sanctions beyond some pittance of a fine against individuals acting under the corporate umbrella. And while Nuremberg may not have accepted "just following orders" as a defense, humans really do think that way - Most people would much rather commit atrocities than lose their job or have their peers think less of them.
But if I band together with a lynch mob and go out and kill people as a group, am I absolved because the mob was "looking after its own interests, which is to" kill people?
Google "Shell Oil Nigeria Murder" for a good perspective on that. They actually outsourced to the local Junta the torture and murder of a local tribe inconveniently living on land Shell wanted to "drill baby drill", and skated away scot-free - The USSC has even gone so far out on a limb to protect its corporate masters that they outright shielded Shell from civil lawsuits by Nigerian refugees in the US.
Make no mistake, I fully agree with you in principle, and would like to see the CEO of RDS (along with many, many others just as guilty of similar crimes) sent to Oklahoma to try one of their early morning experimental drug cocktails. But the reality of our current situation has corporations essentially immune from most legal consequences by definition; an unwillingness to go after the humans actually responsible; and a human wetware flaw that means yes, you and I would probably do the same thing in their shoes.
I hate FPs like this - Yes, enough that I feel a need to complain about them in the discussion instead of just moving on.
I use Linux. I've rolled my own kernels (as in actually writing code, not just a custom config and build of the stock tree). And I have never heard of Wayland or Weston. And out of three links, could you have included one going to "what the hell is Wayland"? No. You have a release announcement and a PR page.
Wayland may well rock the world. But when writing up an FP about something obscure (yes, it is - I don't care how many of your friends run it), you would do well to link to an intro-to-obscure-thing page.
Just sayin'.
Fine. Buy a Tesla. Quality has a price. Your car or your money.
Not knocking on Tesla, because yes, they make a damned fine car. Wish I could afford one!
But to address your deeper point - Three different makes available in the US offer a 10 year / 100k warranty on cars that start under $20k. Another three offer it on cars under $35k. Strangely, not one of those companies bases its operations out of America.
And GM? Well now! They'll let you pay extra for a whopping six years of no rust. I would love to see the accounting tricks that led to them somehow showing a profit post-bailout. And no doubt I will, when SarbOx II bans them.
The problem is that some nations want to enforce their rules on other nations.
Damned straight. Every single country on this pathetic mudball has the "right" to enforce their own laws on their own domestic network. Want to connect that network with your neighbors? Then shut the fuck up about what your neighbor does that you don't happen to like. Once you decide to play, you have exactly one "right" left - Take your ball and go home.
Unfortunately, Google (by virtue of having a corporate presence just about everywhere) has little choice but to at least give lip-service to compliance with the EU's new physically-impossible ruling (what, did an Italian magistrate make the final call?). The EU will very soon get a reminder of the Streisand effect, however - For ever takedown notice they send to Google, you can expect a hundred sites to pop up mirroring that content, completely outside any jurisdiction where they can put local execs in prison for noncompliance.
And yes, I realize the hypocrisy risk here, and would say the same thing about my own government. Seriously, filing charges against a foreign government's standing military officers for not playing nice on our network? WTF, Obama? Either put up the other side of the "great firewall", or step down before you get us into WWIII, dumbass.
1. Ignore it and let the EU sort it out
We have two and a half military forces on this planet worth considering in this discussion. Control of Europe matters only insofar as they give us friendly locations to stage military operations somewhat closer to Russia. And while the Mongol Horde may well erupt someday soon to conquer the entire planet, for now they seem content to pursue the American dream of owning the most disposable stuff.
So yeah, option #1 makes the most sense, because we won't actually go with #3, and knowing that, Russia has no reason not to call us on #2, forcing us to back down and look pathetic.
Interestingly, the fact that Putin appears to have deescalated a bit in the last couple days, in light of what I just said, one has to wonder what he really wanted in the first place - Because rest assured, he sure as hell didn't back down because of anything we did.
Next up is sanctions against the individuals in question. No more iPhones for you!
I can hear the quote from Zhang Gaoli already: "After analyzing the sanctions against our military officers, I suggest to the USA to make their iPads using cardboard and trained fireflies".
Oh, wait, China makes most of the world's cardboard, too. Hmm... Woven cat hairballs? I think we still have at least some domestic production of those, if Fluffy hasn't outsourced it to a Mexican Hairless (don't ask) yet...
No doubt, China will cooperate fully in extraditing members of their active military so they can stand trial in the US for following their orders.
Not an Obama hater, but seriously, Russia and now China? Trying to start WWIII on two fronts, in case one backs down? 2016 can't come fast enough.
We need an "insightful troll" mod. +0.5, perhaps.
Clearly trolling, but you have perfectly expressed "the enemy's" stance on DRM. "We" need DRM because some people want to preserve their positions of power over the information-have-nots, simple as that.
And I don't even mean music and movies, we can live without those. I mean textbooks; I mean research journal access; I mean "for profit" municipal codes of law; I mean for-profit industry standards specs; I mean proprietary and impenetrable pricing structures like health insurance fees.
So although you troll us, you magnificent bastard, you also have one of the insightful posts on this topic so far.
You seem to have confused math with technology. I'm frequently amazed by how many /. posters don't quite understand what "technology" means: more efficient ways to perform tasks with the same base resources.
You might want to invest in a better dictionary.
Optimize: make the best or most effective use of (a situation, opportunity, or resource).
Efficient: achieving maximum productivity with minimum wasted effort or expense
Ephemeralization: the ability of technological advancement to do "more and more with less and less until eventually you can do everything with nothing".
It would appear you wanted one of those words (or something related), rather than technology:
1. the branch of knowledge that deals with the creation and use of technical means and their interrelation with life, society, and the environment, drawing upon such subjects as industrial arts, engineering, applied science, and pure science.
2. the terminology of an art, science, etc.; technical nomenclature.
3. a scientific or industrial process, invention, method, or the like.
4. the sum of the ways in which social groups provide themselves with the material objects of their civilization.
Even if we limit our use of "technology" to require actual implementations of ideas rather than the ideas themselves - The JPEG standard turns 31 this year. MP3, likewise, turns 23.
Communicating with, storing data in, retrieving data from, or otherwise intercepting and changing computer resources without consent is unauthorized access. It's against the law.
I can't tell if it worries me more that you think I would try to debug code on a system I hacked into... Or that you've never heard of low-end web hosting providers.
Real-world access permissions don't always match the ideal, and the fact that I can legally upload a CGI via FTP doesn't mean I can hook into a remote debugger. Dealing with an overly locked-down hosting company doesn't break the law, Scoutmaster AC.
Fair enough - I suppose if you enjoy that, hey, whatever you like doing, you like doing!
:)
Me, I love getting down as close to the CPU as I can and making it beg for mercy. But I suppose I can appreciate, if not personally enjoy, what you describe.
We might work well together.
Because in my experience it's the "apprentices" that tend to lean far too heavily on printf, which is always taught before debuggers and is much easier to use.
Our experiences differ somewhat drastically, then - Perhaps this involves a difference between the Windows world and the Linux world. In Linux, yes, knowing how to attach and use the standard debuggers counts as something of a fine skill set (though I don't think that still holds true like it used to - We have a hell of a lot more choices today than just GDB/DDD). In the Windows world, when the code breaks, the IDE throws you into a debugger and all but tells you what happened and what to do about it.
Because Real Programmers build houses using only hammers. Nailguns, screwdrivers, shovels, and power tools are for pussies.
Nice strawman, but no. Real programmers use power tools when appropriate. But when the sawzall won't fit in a tight space, the real programmer knows how to use a keyhole saw.
When you spend 8 hours troubleshooting an open-source project to compile with a third party proprietary library it feels damn good to make it work. Coding is good because it's hard. The higher the stakes the more the accomplishment of that task will make me proud/happy.
Sorry, but no. If I have a known-working source tree that I want to work with just to tweak one tiny nuisance, I want to download it, open the project, make the change, then build/test/deploy.
In gaming, you have the concept of artificial vs natural hardness. When the game makes you do things just right with cheap tricks like an almost unavoidable trap right before boss / end of the level, when it requires pixel-perfect jumps, when it has insanely complex or tedious puzzles to solve, when it has time limits that require you to essentially memorize which buttons to mash and when, when it doesn't allow saves except at completely useless spots, the devs have made it artificially hard because they failed to make it challenging through more natural means.
In coding, we have the same problem, except we don't (usually) do it to ourselves intentionally - And you describe the most egregious example of it, configuring dependencies. I love a good challenge in writing actual code. Optimizing a tight loop cycle by cycle, importing useful numbers from a BOL file that everyone else has given up on, implementing a new (to me) algorithm in language X (I had a great time learning SQL for that reason, because most of my stock tricks from the C world don't translate well). Those all leave me feeling deeply satisfied at the end of the day. When, however, I can't even get the damned thing to build because I have to tweak 17 obscure dependencies:
"Oh yeah, it doesn't work with the newest 2.17.99 release of WidgetBlaster, you need to hunt down 2.17.94"
"Oh, you used the default build parameters for WidgetBlaster? Heh, you have to pass it the undocumented NoFleem flag at compile time"
"Yeah, NoFleem doesn't actually have any effect unless you install the not-obviously-required WidgetFleem library first"
"Well, you can't actually do it in one pass, since WidgetFleem has a circular dependency on WidgetBlaster - So build WidgetBlaster without NoFleem, then build WidgetFleem, then rebuild WidgetBlaster with the NoFleem option".
"Oh yeah, it only works in GCC 4.4.x, they changed the optimizer after that one and it breaks WidgetFleem."
"Did I mention you need to cross-compile it from an OS X machine because a critical buildtool doesn't exist on Windows?"
Shit like that drives me up the wall, I have zero patience for - or enjoyment of - trying to work around someone else's quirky build environment. If your code depends on obscure external packages, include them in your source tree, and include building them in your default project/makefile, period. I don't care if it makes your source tree 2.5GB, because I'll need to download them all anyway, and at least you know the right versions to include.
People that need debuggers will never be any good. For good programmers, a debugger occasionally safes some time.
This statement, while literally true, requires some qualification.
Knowing how to use a proper debugger can save you days of pain. But you also can't depend on always having the ability to use a good debugger - Simplest case, trying to debug remote code running on a server for which you have deploy-but-not-debug permissions on (this comes up a lot for me, actually).
And in those situations, the ability to track down a bug with nothing more than a set of print/alert statements saying "I got here, X=47" means the difference between "programmer" and "wizard's apprentice" (by which I mean if the IDE's wizard fails you, you end up almost drowning until a real programmer saves you).
The retina and optic nerve might be the closest we might get, so are you willing to give up an eye for this? Go full-on Borg?
We already have working CBI tech - Cochlear implants have effectively made deafness an "optional" disability in the modern world. We also have more-or-less working artificial retinas (albeit still only in the experimental stage), and within a few years most forms of blindness will also become a historical curiosity.
Realistically, we could have already come up with a working general purpose CBI if we had put serious (think anti-cancer) effort into it. We have "enough" understanding of how the brain works at a high level to introduce external artificial signals into it now, with a bit of trial-and-error to figure out exactly where we need to splice in and how to modulate the signals. The problem? This sort of research has an extremely high level of risk, and since the FDA officially does not consider normalcy a treatable condition, making the safety-vs-reward threshold even higher for experimentation with live humans.
The thing about technology is: the absolute best thing today, really the best, is utter crap in 20 years.
// It has a hash mark at the end of its name these days, but I won't hold that against it.
I know, right? Fourier transforms? Meh, sooo 1820s! No one except dinosaurs use them anymore... Certainly not the entirety of digital compressed audio and video, nope nope nope!
All the cool kids today use DCT. No, wait, 40 years old? Can't trust anything over 40! Quick, port everything to wavelets! What? The HWT could legally drink alcohol in the US this year? Fuck, someone come up with a new time/frequency domain transform before all these old workhorses expire into "utter crap"!
/ Still get paid primarily to code in C.
I've often said that you don't fix a software bug until you've fixed the process that allowed the bug to be created. The above quote is of a similar sentiment.
Sounds great! Now just show me a program (more complex than "Hello World") with no bugs.
Yes, culture can play a large role in the frequency and severity of bugs released into production code. But humans make mistakes, simple as that. No amount of code reviews or test suites or BS like "pair programming" can ever get around that basic fact.
Or perhaps as a better example of the problem with that philosophy - Show me a program with no bugs that used OpenSSL. In that case, even the trivial "Hello World" example would have a serious bug completely out of the control of the developer.
That's not what I submitted at all. They basically cut the last half of my post off, typed something totally different and provided an entirely different link.
But really, don't those applications directly address two of the critical unsolved issues in Materials Science? How to make iPhones survive an unbraked atmospheric reentry, and how to best have your makeup accidentally come off when you wash your hands? I know those keep me up at night worrying...
If course, I think we give Slashdot too much credit to actually attribute that to a real live editor's less-than-useless intervention. They didn't edit that, it just counts as a new feature of Beta - Take some random sponsor-of-the-week's link and merge it with otherwise coherent submissions. Revlon probably submitted an ad that included some BS technobabble about high-tech age-defying polymers, and the submission system automatically detected your post as the most relevant to the ad, albeit in a laughably inappropriate way.
I took a semester of linear algebra, too, and it was hands down, full stop the most useless course I took in my entire college career.
You already mentioned regression. How about affine tranformations (or virtually the entirety of 3d graphics)? Markov chains? FFT? Force/tension distribution? State space modelling? Covariance matrices? Projection of an m-brane onto a n-brane (or any shift in dimensionality, really)?
Linear algebra makes all of those trivial to compute. Yes, some of them have more straightforward solutions using calculus, but those don't always tend to readily map well to code.
If anything, I would say that your professor failed in not explaining why the topic matters... Because linear algebra shows up everywhere in CS.
why saddle yourself with mountains of debt just to get a degree that's basically worthless for the "real world,"
;)
Mountains of debt? Worthless?
I went to a state school (admittedly one with a good rep for engineering), finished with a few $K in student loans that I paid off in my first year after graduating. I made double what my highschool and college friends did just in my internship. I had a job offer the day I graduated, as well as a non-stop stream of recruiter calls.
And today as a seasoned professional, I make 3x the median educated professional income in my area.
If you want to call that worthless - Hey, sorry you couldn't make it, but thanks for contributing to the dropouts that keep me well paid!
So learning abstract calculus for 3 semesters, linear algebra, analysis / topology is not going to give you coding ability.
I don't normally respond to ACs, but you have it so wrong, I couldn't resist.
Linear algebra quite possibly counts as the single most useful pure-math course I took as part of my CS degree - With statistics as a close second. And of course, I don't even mention boolean algebra because it counts as just too obvious (protip: fully parenthesize everything, because no, that line doesn't do what you meant, and I have to fix it after they can your ass).
No, HR doesn't understand that. HR doesn't understand a single goddamned word on your resume, so don't bother - Just make sure your cover letter mentions every buzzword in the job listing, and HR will pass you along to the actual hiring manager.
And he will appreciate the difference between someone who did a static webpage as their capstone project vs someone who can chat about the meaning of the various ways to measure the average of a set of values (free hint: mean/median/mode ain't even a weak start to that conversation).
Math isn't CS. But CS is math.
This, a million times this.
You can certainly find better books to help you learn a particular programming language. You can find better books about the history of programming. You can find better books on algorithmics that will make you a better programmer overall. You can even find better writing (although the skill that went into some chapters - "Crab Canon" in particular - simply blow me away), if you just want a good read overall.
But if you don't read GEB and fall in love - you need to find a different career, because programming ain't for you. Seriously. I didn't get into the field because of Hofstadter, but that one book pretty much embodies 90% of the reason I did. And even as a seasoned pro, you will learn something from it - Hell, even after 20+ read-throughs, I still discover something awesome and new each time I revisit it.
Since 'mid 90s' was before the age of AJAX and constant communication, there is no possible way that Prodigy had any information other than 'bzipitidoo accessed the complaints page 3 minutes ago,' Only after hitting the submit button would you send anything back to the server
Although vaguely web-esque, back in the dark days before the modern internet, online services like Prodigy didn't run in standards compliant web browsers. They used dedicated proprietary thick-clients to establish the connection and display the content to the user.
You might also think it seems a bit inefficient to do a round-trip for every single keystroke, but again, different world. When you have a modem dedicated to handling the connection, your "packet" consists of a mere ten bits per byte (assuming 8N1), and client-side buffering just means wasted bits (not) on the line.
This is why it is being used, and why people do choose it over USB today.
Except, not so much.
Outside the Apple foodchain, I have yet to see a single Thunderbolt device (actually used... yes, I technically have seen a monitor that supports it - connected by HDMI), from the home to the recording studio to the server room. Nada.
Thunderbolt may well have a world of advantage over USB, just like Firewire did. And just like Firewire, history will relegate it to a niche of obsolescence caused by a simple lack of adoption in the face of a number of much more popular standards.
US ISPs have steadfastly refused to provide adequate service outside major metropolitan areas for decades.
Threatening not to do something they already don't do strikes me as a pretty damned weak threat.