Identity theft by foreign thieves is scarier because the US legal system and police systems alone aren't sufficient to track them down. International crime has jurisdictional issues, and you have no guarantee that the authorities in whatever country you're dealing with will cooperate, or even have the means to do so. This isn't an "outsourcing is bad because foreigners can't be trusted" problem, it is a "outsourceing is bad because the same rules that protect US customers need not apply".
Anything that makes getting away with identity theft easier / harder to prosecute makes the situation worse.
One of the greatest misconceptions about Free Software, especially among observers outside of the community, is that Free Software is "just software". It is one thing for an analyst to criticise a piece of software one writes for money either under contract or as part of a job, and entirely different thing from them to criticise software that is a labor of love. Free Software proponents can go to far, but in many cases it is because the critique feels far more personal than was necessarily intended. And for those proponents, who do not write code but merely advocate its use, being told that it is "just software" misses a vital element of why so many people support the movement; because it is FREE. This is a matter of patriotism, the defense of our liberties to run our machines as we see fit, free of interference from commercial vendors, is a political statement. When you criticise Free Software, for better or worse, you do not criticise "just software", but an entire ecosystem of ideas and beliefs that work in cooperation to produce what is possibly a better way of doing things. It may be religious, but in the same way that scientists are religious about science. And look how well evolutionary biologists react when attacked:)
Well considering all of my computers have lasted longer than any of my relationships (by several orders of magnitude), and I have more fond memories of playing video games than dating, YMMV.
I recommend spending $100 on a good multi-tool.
I live in Buffalo, and Erie county has one of the highest percentage population over 65 of any county in the country. Now many of us cross the border on a regular basis. Rowing, doughnuts, french fries, chinese food, highschool kids go drinking, summer homes, etc. Our old people go shopping (cheaper Ice Cream other side of the border). It will be utterly hilarious when there's hundereds of senior citizens crossing into cananda forgetting their passports (as most American don't have them in the first place). And then getting stranded in Canada.
I for one may just "forget" my passport and not come back. Not that it matters, since you can always hop in a motor boat, kayak, or dare I say it SWIM! You're supposed to check in with customs, but no one ever does.
You know I've implemented some real world applications recently for a contract job, and the Ocaml applications are actually faster than the C++ equivalents using the STL. So you mileage may vary based on your problem set (or Ocamlfu as the case may be).
As for how Ocaml is supposed to be programmed, there's a reason Ocaml supports imperative programming, because you should use the form that is most efficient for your problem. Some programs benefit from a functional approach (and it helps if you implement properly tailrecursive functions, and make intelligent use of arrays and other block data structures). So one can argue Ocaml is not particularly functional, because it more pragmatically allows for multiple styles of programming. You can do functional programming in C++ actually, but depending on the optimizer you end up with stack issues.
My experience with maintaining and extending the Ocaml programs over large C++ code bases is a world of difference. Ocaml wins hands down. Even extending the language to support 3rd party libraries, doesn't place sufficient barriers to maintenance.
But ymmv... as with all things.
When I perform different tasks I use different programs. Each program does a different thing, and its UI is geared towards what that program does. I do not expect my word processor to display my playlist and let me pause and fastforward or rewind my spell checking.
I use linux as my desktop (have for 10 years now), and recently moved my parents to a linux machine (they finally trashed one box too many even behind a firewall). My parents use 4 applications, that's it. I use 8 + a collection of compilers, interpreters, databases, servers. Of those 8 primary ones, they all run on both windows and linux, so I choose linux.
Think about it, the applications most people use are very few in number. Consistency isn't important, because it is more important that they do the job they do well. Do you complain that Never Winter Nights and Doom3 don't have consistent interfaces? I mean I sure wish Doom3 worked more like my spreadsheet!:)
Unix didn't lose the Unix wars, Microsoft doesn't control the world. Just because most people are to indifferent to use something else (and that's all it is folks, they just don't care) doesn't mean that MS won. It just means most people's lives are suboptimal. Sucks for them.
When I lived in the Bay Area I would spend 40 minutes driving up 880 in traffic burning fuel the whole way. I then moved to NYC, and walked to work. Got rid of the car, stopped burning fuel. Since leaving NYC, I now telecommute and work from home. If I need to go somewhere I ride a bike. By living in a city, I don't need to travel far for all my needs. I can walk to restaurants and the grocery store. (2 blocks to the nearest). Less stress, more exercise, more free time, less energy... and its cheaper...
If you spend the majority of your waking hours doing things you don't believe in or really want to do because it "pays well", you are under valuing your life. You only get to live once, why waste it?
(practicing what I preach, spent 3 years in cubeland, and I'm never going back)
Back in 2000, I remember Raster showing how cool EVAS was (the rendering backend of E17), and he pointed out that OpenGL sucked for doing a lot of 2D windowing because creating textures was so resource intensive. If you had textures that had to be rendered on the fly back then, you were pretty much limited by the hardware. Now 5 years later, we've got another project implementing the same basic idea, and largely because of politics and waiting for hardware we've barely moved anywhere. Congrats Raster you were right all long:)
For me an upgrade is in order when a contract specifies that I can't develop the software I'm designing on some archaic system. My professional development box was purchased in 2000 (800mhz Duron), and my box before that a P75 (ca. 1995) is running the family web station in the kitchen. (for the record Firefox on a P75 with 96MB)
Now I'm looking at a contract gig that might require an upgrade if they require I deliver a Java app, but if I can get them to take my Ocaml or Common Lisp version instead, that runs on my current hardware, why should I upgrade?
Moral, you don't have to anymore for most uses, and if you use the right tools, the code you write will certainly work on your client's boxes. Rather than use that latest and greatest class library, maybe you should consider if you can do the same task with less.
One of the things I have learned from reading Google News is just how few people are doing any acutal reporting. The vast majority of major new organizations are just repeating what they get off of the AP wire, which you might as well read directly. When Google really shines though, is when it finds those out of the way news sources that actually break a non-AP story. During the US military engagements in the middle east, Al-Jezera is often more intelligent than the regurgitated spin releases vomited from CBS/FOX/etc. Google also give you the opportunity to compare coverage on a wide range of sites, aggregating the gamut of viewpoints. I'm sorry, but Google is only "hurting" more established channels by providing more direct access to the fringe press. For the fringes, and those of us who enjoy the range of analysis, this is a huge boon.
Actually no, if you must know I studied statistics in college where I was a dual math/history major.
I also develop statistical models for sports games
and have worked on numerical simulations for modeling physical systems.
My personal experiences have taught me the value of a statistical model; they're convicing because they play upon a set of beliefs people of certain academic persuasions assume. Their applicability to reality, however, are often demonstrably tenuous at best. Even relatively simple models
like a damped driven Duffings oscilators are so variable that it is difficult to ascertain that any physical system is accurately modeled by one.
My anecdotal evidence was meant merely to support the position that some non-formally trained programmers are qualified. I deny this popular assumption that "all those lib art people are unqualified". These sorts of generalizations are "generally" counter productive, and the prejudice they are born out of a symptom of a medieval mentality that infects our society.
BTW ad hominem attacks are poor basis for logical
arguments. I am only testifying to facts based on personal experience, YMMV.
Now, I happen to have my masters in Medieval History, and have to object to this notion that having a college degree qualifies you as a programmer. I worked through college and gradschool as a programmer (started programming grammar school). I've worked for VA Linux and designed games for MLB and Fox Sports. I do contract work now, porting software to linux and doing game design for cell phones and things. I know guys who work as release engineers at VMWare, who design Linux based disaster recovery software used by IBM, and a hoard of other applications. And they all like me either have a degree in something not computer related or don't have a college degree at all. At my last full time job we hired two kids out of Harvard, near the top of their class in CS, and neither knew how a compiler actually worked, or how a system bus operated, or how one programmed a device driver. This priesthood mentality derived from the farce of academia is antitheical to American ingenuity over history and real world results. Formal training only makes for a more delusional monkey who thinks he knows more than he does. I know more informally trained people working in the industry now, than I do formally trained ones. And most of the formally trained ones have given up and gone to business school. But that's my 2 cents.
Identity theft by foreign thieves is scarier because the US legal system and police systems alone aren't sufficient to track them down. International crime has jurisdictional issues, and you have no guarantee that the authorities in whatever country you're dealing with will cooperate, or even have the means to do so. This isn't an "outsourcing is bad because foreigners can't be trusted" problem, it is a "outsourceing is bad because the same rules that protect US customers need not apply". Anything that makes getting away with identity theft easier / harder to prosecute makes the situation worse.
One of the greatest misconceptions about Free Software, especially among observers outside of the community, is that Free Software is "just software". It is one thing for an analyst to criticise a piece of software one writes for money either under contract or as part of a job, and entirely different thing from them to criticise software that is a labor of love. Free Software proponents can go to far, but in many cases it is because the critique feels far more personal than was necessarily intended. And for those proponents, who do not write code but merely advocate its use, being told that it is "just software" misses a vital element of why so many people support the movement; because it is FREE. This is a matter of patriotism, the defense of our liberties to run our machines as we see fit, free of interference from commercial vendors, is a political statement. When you criticise Free Software, for better or worse, you do not criticise "just software", but an entire ecosystem of ideas and beliefs that work in cooperation to produce what is possibly a better way of doing things. It may be religious, but in the same way that scientists are religious about science. And look how well evolutionary biologists react when attacked :)
Well considering all of my computers have lasted longer than any of my relationships (by several orders of magnitude), and I have more fond memories of playing video games than dating, YMMV. I recommend spending $100 on a good multi-tool.
I live in Buffalo, and Erie county has one of the highest percentage population over 65 of any county in the country. Now many of us cross the border on a regular basis. Rowing, doughnuts, french fries, chinese food, highschool kids go drinking, summer homes, etc. Our old people go shopping (cheaper Ice Cream other side of the border). It will be utterly hilarious when there's hundereds of senior citizens crossing into cananda forgetting their passports (as most American don't have them in the first place). And then getting stranded in Canada. I for one may just "forget" my passport and not come back. Not that it matters, since you can always hop in a motor boat, kayak, or dare I say it SWIM! You're supposed to check in with customs, but no one ever does.
You know I've implemented some real world applications recently for a contract job, and the Ocaml applications are actually faster than the C++ equivalents using the STL. So you mileage may vary based on your problem set (or Ocamlfu as the case may be). As for how Ocaml is supposed to be programmed, there's a reason Ocaml supports imperative programming, because you should use the form that is most efficient for your problem. Some programs benefit from a functional approach (and it helps if you implement properly tailrecursive functions, and make intelligent use of arrays and other block data structures). So one can argue Ocaml is not particularly functional, because it more pragmatically allows for multiple styles of programming. You can do functional programming in C++ actually, but depending on the optimizer you end up with stack issues. My experience with maintaining and extending the Ocaml programs over large C++ code bases is a world of difference. Ocaml wins hands down. Even extending the language to support 3rd party libraries, doesn't place sufficient barriers to maintenance. But ymmv... as with all things.
When I perform different tasks I use different programs. Each program does a different thing, and its UI is geared towards what that program does. I do not expect my word processor to display my playlist and let me pause and fastforward or rewind my spell checking. I use linux as my desktop (have for 10 years now), and recently moved my parents to a linux machine (they finally trashed one box too many even behind a firewall). My parents use 4 applications, that's it. I use 8 + a collection of compilers, interpreters, databases, servers. Of those 8 primary ones, they all run on both windows and linux, so I choose linux. Think about it, the applications most people use are very few in number. Consistency isn't important, because it is more important that they do the job they do well. Do you complain that Never Winter Nights and Doom3 don't have consistent interfaces? I mean I sure wish Doom3 worked more like my spreadsheet! :)
Unix didn't lose the Unix wars, Microsoft doesn't control the world. Just because most people are to indifferent to use something else (and that's all it is folks, they just don't care) doesn't mean that MS won. It just means most people's lives are suboptimal. Sucks for them.
When I lived in the Bay Area I would spend 40 minutes driving up 880 in traffic burning fuel the whole way. I then moved to NYC, and walked to work. Got rid of the car, stopped burning fuel. Since leaving NYC, I now telecommute and work from home. If I need to go somewhere I ride a bike. By living in a city, I don't need to travel far for all my needs. I can walk to restaurants and the grocery store. (2 blocks to the nearest). Less stress, more exercise, more free time, less energy... and its cheaper...
If you spend the majority of your waking hours doing things you don't believe in or really want to do because it "pays well", you are under valuing your life. You only get to live once, why waste it?
(practicing what I preach, spent 3 years in cubeland, and I'm never going back)
Back in 2000, I remember Raster showing how cool EVAS was (the rendering backend of E17), and he pointed out that OpenGL sucked for doing a lot of 2D windowing because creating textures was so resource intensive. If you had textures that had to be rendered on the fly back then, you were pretty much limited by the hardware. Now 5 years later, we've got another project implementing the same basic idea, and largely because of politics and waiting for hardware we've barely moved anywhere. Congrats Raster you were right all long :)
For me an upgrade is in order when a contract specifies that I can't develop the software I'm designing on some archaic system. My professional development box was purchased in 2000 (800mhz Duron), and my box before that a P75 (ca. 1995) is running the family web station in the kitchen. (for the record Firefox on a P75 with 96MB) Now I'm looking at a contract gig that might require an upgrade if they require I deliver a Java app, but if I can get them to take my Ocaml or Common Lisp version instead, that runs on my current hardware, why should I upgrade? Moral, you don't have to anymore for most uses, and if you use the right tools, the code you write will certainly work on your client's boxes. Rather than use that latest and greatest class library, maybe you should consider if you can do the same task with less.
One of the things I have learned from reading Google News is just how few people are doing any acutal reporting. The vast majority of major new organizations are just repeating what they get off of the AP wire, which you might as well read directly. When Google really shines though, is when it finds those out of the way news sources that actually break a non-AP story. During the US military engagements in the middle east, Al-Jezera is often more intelligent than the regurgitated spin releases vomited from CBS/FOX/etc. Google also give you the opportunity to compare coverage on a wide range of sites, aggregating the gamut of viewpoints. I'm sorry, but Google is only "hurting" more established channels by providing more direct access to the fringe press. For the fringes, and those of us who enjoy the range of analysis, this is a huge boon.
Actually no, if you must know I studied statistics in college where I was a dual math/history major. I also develop statistical models for sports games and have worked on numerical simulations for modeling physical systems. My personal experiences have taught me the value of a statistical model; they're convicing because they play upon a set of beliefs people of certain academic persuasions assume. Their applicability to reality, however, are often demonstrably tenuous at best. Even relatively simple models like a damped driven Duffings oscilators are so variable that it is difficult to ascertain that any physical system is accurately modeled by one. My anecdotal evidence was meant merely to support the position that some non-formally trained programmers are qualified. I deny this popular assumption that "all those lib art people are unqualified". These sorts of generalizations are "generally" counter productive, and the prejudice they are born out of a symptom of a medieval mentality that infects our society. BTW ad hominem attacks are poor basis for logical arguments. I am only testifying to facts based on personal experience, YMMV.
Now, I happen to have my masters in Medieval History, and have to object to this notion that having a college degree qualifies you as a programmer. I worked through college and gradschool as a programmer (started programming grammar school). I've worked for VA Linux and designed games for MLB and Fox Sports. I do contract work now, porting software to linux and doing game design for cell phones and things. I know guys who work as release engineers at VMWare, who design Linux based disaster recovery software used by IBM, and a hoard of other applications. And they all like me either have a degree in something not computer related or don't have a college degree at all. At my last full time job we hired two kids out of Harvard, near the top of their class in CS, and neither knew how a compiler actually worked, or how a system bus operated, or how one programmed a device driver. This priesthood mentality derived from the farce of academia is antitheical to American ingenuity over history and real world results. Formal training only makes for a more delusional monkey who thinks he knows more than he does. I know more informally trained people working in the industry now, than I do formally trained ones. And most of the formally trained ones have given up and gone to business school. But that's my 2 cents.