Yeah, they're not affected. My point is that I can't just say "to hell with Apple, I'll go back to FreeBSD" because I really do like these applications a lot. That's why I feel a bit bitter -- I was fully sucked into the Apple thing. I raved on and on to anyone that would listen about how great they were and stuff. Now they're leveraging that grip they've got to extract another $129 + $100 --> CAN$350 or so from me this year.
I was a fully-hooked Apple person. I would have been happy to buy a brand new mac every couple of years or so, putting a solid $1000+ per year on average into Apple. For that, I had assumed Apple would let me stay current with my operating system for a good year or two at least. I figured that as long as I was buying new hardware every couple of years, that would be a fair deal. Now they're using this to extract more money from me. In the long run, they're going to get a lot less money from me, because instead of me getting more and more immersed and hooked into the Apple way of doing things, I'm now trying to find an exit strategy.
Yep. There's good and bad. For me, though, today's announcements caused a subtle shift in my feelings. See, I just bought an iBook a couple of months ago.
Yesterday, I was a proud and happy mac owner. I really enjoyed it, and I thought the value was excellent. I was excited about the new software, the new hardware, and just the whole new approach that apple takes to computing. (Before I bought the iBook, I was primarily FreeBSD + M$ for games). I bought a new digital camera, and I already have over a thousand great pictures in iPhoto. I have 4GB of music in iTunes. All my friends use my iTools email address, and read my iTools webpages. I was learning how to develop with Cocoa. I was exploring the Unix guts, and getting to know it quite well. Even after months of use, I still thought the iBook was fun and cool -- previous laptops and other toys quickly became routine, but this was still a thrill.
Today, I -still- use iPhoto, iTunes, and the development tools. However, my attitude has shifted. Before I was totally hooked by the software and the hardware, and I was very happy and excited about it. I read the apple rumours sites, and really enjoyed this new approach. Now, after today, I'm -still- hooked by all of the software, but now I feel bitter and slightly resentful about that fact. iTunes, iPhoto, and all the rest are still excellent programs that I really don't want to give up. Now, as I say, I resent that fact rather than relish it.
The first hit is free I guess. It's very evil, what they did to me. They got me hooked, and then used it against me. *sigh*. I'll probably buy the update AND pay for the iTools/.Mac/whatever, but grudgingly. Because I'm hooked. I suppose it's my own fault, since companies exist purely to make profit and I conveniently ignored that while I played with my shiny new toys. Ah well. It was fun for a while I guess.
The key to learning more about security and making connections is to get involved with your local scene (or generate one, if necessary).
Find your local ISSA chapter (issa.org),and in Canada there is the CIPS Security Interest Group (through cips.ca). Also, talk to your local VARs and express an interest in security products. Usually they'll invite you to free morning seminars pushing security products.
The point of going to these meetings is to find peers. Once you know a few people, swap email addresses and war stories, that kind of thing, you'll get a base.
I've used these groups to meet colleagues, put together CISSP study groups, discuss issues, and share job opportunities and the like. Once you get a critical mass of people, it becomes very useful and interesting. It's not the same as a conference, but it is far better than working in a vacuum.
You are worth what you negotiate, period... Companies don't pay your salary out of the good of their collective hearts. They pay the lowest price they can get away with -- just like you do with anything YOU buy. Sure, sometimes you'll pay a premium for better service etc. but so will your employer.
If you aren't getting paid enough, then it's nobody's fault but your own. It's not up to your employer to hold your hand and make sure that you're paid very well. That's your job.
So if you say you're leaving for better salary, why wouldn't you accept a higher offer from your own company? Do you really think they'll ditch you just because you did that? Well, if so, then don't take it I guess. In my experience, companies seldom do that (though it happens, of course). From what I've seen, they consider it part of the employment game. If they don't think you're worth the extra bucks, they'll pass.
Usually, however, I've found that it's better for everyone if you ask for the raise -first-. That is, negotiate it. In life (especially business/work) EVERYTHING is a negotiation. If you've got a job offer that is just as good as your current job, except with higher pay, then you have an -exceptionally- strong bargaining position. Use it to your advantage and get an amicable resolution. Negotiation doesn't have to be nasty and confrontational. At the end, if both sides get what they want, then everyone wins.
Heh. We had one of the big EMC Symmetrix fridge-sized disk arrays in our office server room. When we decided to offload all our servers in our Vancouver office to colo space in Burnaby, the office manager hired a professional computer equipment moving company to get it all done right. They assured us they had done many such large-scale moves of really big expensive computer equipment. And the office manager says he checked their references and all was good.
So anyways, day of the move comes, and who shows up but a bunch of guys who do NOT look like pro movers. In fact, it looks JUST like a guy, his buddy, his brother-in-law, and someone they picked up on East Hastings by promising him twenty bucks for the day. Niiice. Despite our protests, the office manager let these guys do it anyhow.
So they manage to roll it into their cube-van (with a newly-painted-over produce company logo still barely visible on the sides). Thankfully, they duct-taped the symmetrix to the side of the van so it wouldn't fall over. Real professional.
Then they get to the colo, but they had neglected to run a quick bit of recon on the site. They didn't realize that there was no freight elevator rated to carry the few-thousand-pound symmetrix up to the second floor (and we had warned them about this when we hired them). They had to go up the staircase. This would be no problem for pros -- they'd grab a skid, rig up some pulleys from the top of the stairs, and slide it up. No problem.
These guys figured they'd dead-lift it up the stairs. I wasn't too worred about the symmetrix, though. At most, they'd be able to get four guys lifting at a time. Four Arnold Schwarzeneggers might have budged it, but not these soft-bellied lackeys. Heh.
I was really amused as these guys sat with the symmetrix for three and a half hours as they tried to find some gear to get it up those stairs. I had a moment of panic as they started opening up the door and tried to remove the disks to reduce the weight! I put a stop to that pretty quick though. Eventually the guys at the colo took pity on them and got the job done themselves.
Sounds good to me. There's a situation where the bubble sort is the best thing to use.:)
One of the answers I can come up with is that you can use the bubble sort method when really do want the items to bubble up naturally and somewhat slowly. That is, the goal is not necessarily to completely sort everything in the smallest amount of time/space, but more like to have the list slowly tend toward sortedness, even as it may be changing and diverging from sortedness.
The thought is that it may be useful to do a single pass of the bubble sort, then do other stuff which might even occasionally mess up the order a bit more, then go through for another pass, and so on and so on. So as time goes on, the list stays more or less sorted, and it sorts organically and smoothly, but is rarely in perfectly sorted order.
Yeah, it's a liberal interpretation, but that's fine. I'm not sure where it would be useful, but I bet I'll find a use for it one day.
It's more like you have to consider real-life situations individually. My point is very much like what you said -- you can construct a zillion different algorithms to do something, but the vast majority of them will be practically useless in anything but a really weird situation. Recognizing when they are and aren't useful is an important skill. And most of the time, you'll go with the tried-and-true quicksorts etc.
However, it's important to think about each situation. Pure algorithms are usually designed with the general case in mind. Individual situations, however are always specific cases. Most of the time, the general solution is obviously useful. Sometimes, however, there is a special case that might not fit the mold, and one of these crazy one-off algorithms might fit the bill exactly.
In my mind, you will not get a job with me if you cannot see what makes each application of an algorithm unique. Computer science optimizes the general case. Real-life programming optimizes the special case that you're dealing with in your particular program.
Never? Can you prove that there are no data structures and change patterns that do not result in the bubble sort being the fastest over all? I'd be very interested to see that proof.
I still maintain that there may be a situation in which a bubble sort is the right choice, and that the question is a good one. Maybe I can't think of it (and honestly, I've never used a bubble sort in any code I've written) and apparently neither can you.
For me, the most important thing to think about is to consider the situation in which you're using the algorithms. I ask the question, because I want to challenge the person I'm interviewing. The people who immediately laugh and say "Never!!" without thinking about it for a minute get passed over. If someone thought about it for a minute and replied what you did, I'd be happy with that. I'd be just as happy if someone thought about it for a minute and said, "maybe some cases in which the list is already sorted, but I'm trying to imagine how that would work".
There may be a pattern to the way the data is changed over time that means that bubble sorts will be the best. I want people to think about that, rather than laugh about the bubble sort as a terrible algorithm. It's not -- it does what its supposed to do and nothing more. It just may be an algorithm that has an extremely narrow range of applicability.
I would definitely teach the bubble sort, even if the lesson is, "sometimes there are simple and easy-to-use algorithms that are rarely the most useful." People have to learn to recognize that.
Er. Nevermind about the worst case. But in -any- case, bubble sort is VERY fast when the list is already sorted. And yes, it is very useful in practice.
The moral of the story is to always think about the reality of your data structures, and optimize for the most important and most relevant cases that you're dealing with, not to go with the slickest and coolest algorithms. Yes, Abrash is one of my heroes.:)
This is a standard interview question for me, when I interview programmers. "In what case would you want to use a bubble sort?" The answer, my friends, is very simple. The bubble sort is extremely fast when your list is almost always very nearly sorted, with very few (or no) elements out of order. For some algorithms, the already-sorted order is the worst case. For the bubble sort, it's the best case. So if you have a data structure that is updated frequently, but the order of the elements very rarely changes, you can use a bubble sort without being too embarrassed.:)
Living in Vancouver is wonderful. (As I type, I'm looking over Granville Island into the downtown core). We have an incredibly beautiful skyline. There are always tons of fun things to do (except after 11pm, when the Mayor says we all have to go to bed). The cultural diversity can cause difficulties, but mostly it means lots of good food, good shopping, and interesting people.
I've lived in the US, all over Canada, and throughout the Pacific Rim (all English-speaking countries though). Vancouver is easily my favourite city of them all.
I'll never get tired of having the mountains and the ocean so nearby. The hiking, skiing, cycling, and general outdoors activities are unmatched (and practically year-round).
The downsides? Driving and parking -sucks-. The transit system is cumbersome at best. Everything's pretty expensive. Too many people are far too politically-correct. Overall, though, it's a great place to be.
Re:We (probably) won't ever actually ACHIEVE AI
on
Arguing A.I.
·
· Score: 1
Incidentally, the exact nature of emergent properties is very actively studied. Check out the Sante Fe Institute, they're the poster children for the field.
The term isn't magic fairy dust sprinkled on hard problems. All it means is that you have a set of simple rules, but something surprising emerges from that, that you might not expect. It doesn't need physics or anything else, because it isn't fundamental. It's just a catch-phrase describing the wow-I-didn't-expect-that phenomenon.
I think intelligence doesn't need an explanation, any more than the flocking of birds needs rigorous derivation. Google boids for a very interesting demo. Is it how birds do flocking? Who cares? It works. I don't believe there is anything mysterious about intelligence. It's an observed property of a black box. If you could look inside that black box, I suspect you'd be disappointed.
Questions like yours, about whether or not it would have a subjective perceptual experience are irrelevant, I would say. In this respect, the Turing test has a very good point. If we can't tell the difference, then to us it's the same thing. If we think it's intelligent, then it is as intelligent as anything else that we experience, including people.
Re:We (probably) won't ever actually ACHIEVE AI
on
Arguing A.I.
·
· Score: 1
Absolutely. I don't think people should necessarily abandon the search for human-like AI. It will give us a very interesting insight into our own minds, at the very least.
I object to an apparent single-minded focus on Turing-test AI. I also object to an equating of consciousness with intelligence. I don't know if you intended that or not, but many seem to.
I think many people say AI, but they really mean human-like consciousness and awareness. Are house-flies intelligent? Rats? Dogs? Apes? Chimpanzees? My little brother? *heheheh*
If all or even just some of these are truly "intelligent", then I would argue that artificial intelligence is much simpler than we think. In fact, I'd argue that intelligence period is fairly simple -- it's an emergent property of complex adaptive systems. I'd say people don't recognize it where it is, since they're looking for something mystical and revolutionary, under the assumption that our own intelligence is mystical and revolutionary. I suspect its much simpler than people think.
Re:We (probably) won't ever actually ACHIEVE AI
on
Arguing A.I.
·
· Score: 1
What really annoys me about AI is that people seem to think that it must be human-like intelligence. Why is the Turing test so worshipped? Why on earth would we want to duplicate human intelligence when we could fabricate something completely unique?
Heck, if all we want to do is create human-like intelligence, I know how to do that very well. I plan to do it in about five years after I get married, and me and my wife have saved up a bit of cash (in the mean time we'll practice lots:). Sure, it takes a few years before the intelligence begins, and it'll take probably twenty or more for it to fully mature, but I have no doubt that it'll be fully functional.
For me, AI is far more interesting if its intelligence is novel. It may be difficult to recognize it at first, but I'm willing to bet it will be far more powerful than just making a really fast, long-lived human-like intelligence.
It's not too difficult to be a sysadmin. I came into this world from a degree in Physics & Math. The trick is to know what you're doing (for the most part) ahead of time. Now I'm in a senior positions, and I'm doing the hiring. So here are my easy steps to getting hired as a sysadmin:
1) Install and run as many different kinds of unix as you can get. DON'T just stick with Linux. When I do interviews and stuff, I get a million kids with Linux experience. Truly motivated sysadmins will also install xBSD and Solaris x86 (it's free -- go get it now). Run them every day. Make them work together over a network(NFS, NIS, etc). And when you apply, write all this experience down! Of course it counts as "real" experience!
2) Read all kinds of books. Develop your knowledge. You need to demonstrate a depth of understanding, in lieu of experience, when you're at an interview. If you can converse intelligently about the pros and cons of various topics, that's a good sign.
3) Here's an important one: do _NOT_ try to get a job at a small development shop run on Linux. This place will do very little for your career. You'll learn (guess what?) even more small-scale Linux skills. Woo. Now you're just like the vast majority of the people I interview but don't hire. From a career development point of view, it's far better to get into mid-sized or larger companies. Find places that can -afford- to buy EMC storage, Shark arrays, E6500s or 10ks, Cisco 8500s, giant robotic tape libraries. Find places that have fleets of enterprise servers, multiple remote offices, dedicated frame networks, and whatever other cool stuff you can find. Yeah, you'll be hopelessly lost in most of it, but you'll -learn-. If you're keen and enthusiastic, most places will let you get involved with the good stuff in some way. And if they don't let you watch over their shoulders while they're doing the cool stuff, leave and find another job if you can.
Sure, the "enterprise" stuff isn't the be-all and end-all of sysadmin. Buuuut having that stuff on your resume opens up a lot of doors, and gives you a lot of room to maneuver with your career. Small-scale shops are run very differently from "real" enterprise shops. That's not to say they're bad, it's just that it's a very small subset of the sysadmin universe, and it's vastly overpopulated right now.
Fair enough, perhaps it was real. You're right it was used irresponsibly, and that's my biggest problem with that footage. What motivation could CNN/Foxnews/whoever possibly have had, -other- than to inflame the already riled-up public? That's what irritates me more than anything else. There was no truly reasonable, positive motivation for showing that footage.
I guess that's mostly what I'm saying. Maybe this footage -was- real, but very few people publicly questioned it. Very few people stood up and said, "maybe those ones were a bunch of wackos, and maybe they don't represent the [insert ethnicity] population at large". Nope. But I heard tons of people talking about that footage, and loudly insisting that we "nuke the towel-heads into the stone age". Joe Sixpack has that image burned into his memory forever, and he'll enlist alongside his drinking buddies to ensure that he gets to pop a few caps into their collective asses.
No, feel free to watch CNN and other US news agencies. Just make sure that you question what you see, and keep in mind that there is no truly impartial news source.
Yeah, I saw all those people cheering and happy the day of the WTC destruction. But... how do we know that they were cheering about this destruction? Do you honestly believe everything you see on CNN?
Seriously, think about it. If you wanted to polarize a nation behind a military response against a middle-eastern country, apparently all you'd have to do is dig up some old stock footage of cheering people from the middle east, and claim that they were cheering because something awful happened to the US. People obviously accept it without question, and ravenously demand the blood of those who did it.
I really think I must have seen a different movie than almost everyone else.
First off, I have never even -seen- a FF game. What does that have to do with the plot? I certainly had no problems following it. There were a bunch of strange aliens, and they were killing people for whatever reason. Humans had to hide out in shielded structures and struggle to sruvive. Some scientists figured out a way to neutralize these critters, and it involved finding a bunch of specific things. The main characters fight through monsters and stuff to get them. They get them, and the "good guys" win. Yay us. What was so friggin' hard about that?
And why does everyone keep whining about inconsistencies and confusion with the monster things? It all made sense to me.
Also, so what if they all look a little plastic? Do you complain when cartoon-characters look a little bit like they're drawn or painted? Do you complain that, when you read a book, you have to make up the images entirely in your head? Duuuuh.
Yes, that's true. But, it all comes out in the end, and we still consistenly pull in that couple of percentage points to make money. I'm not actually one of the math guys that works this stuff out, I'm a Unix geek. I deal with logistics and security. But we certainly don't neglect these things -- there are staff members whose sole responsibility is to figure this out for us.
Real-world casinos can get away with neglecting this, because the "pro" gamblers are relatively few-and-far-between. On-line casinos, however, can't. All it takes is one pro with an automatic player running 24hrs/d for a week to make a bazillion dollars.
So, yes, we're more than familiar with "perfect" poker playing strategies, and that sort of thing. We do it ourselves, actually. Part of our company's intelligence strategy employs a group that does nothing but play "perfect" poker etc. on all the on-line gambling sites, to see which companies account for it and which don't. Sure, this group (and the automation software) is expensive, but they have no trouble making cash on the side when they find someone that has neglected these details, so they're happy:)
When you've got millions of dollars going through the system every day, you catch all the subtleties, and you can easily build up your own statistics on what people really do. We've been doing on-line gambling for three or four years now, and we've put manymany millions of transactions through, so we've mostly figured it out. Sure, there were some slips in the early days, but these were soon recognized and remedied.
My background? I'm a Sysadmin for one of the biggest on-line gambling companies in the world. I work in the software development house, advising on sysadmin & security issues. We do casino games, sports books, and parimutuel.
Sure, people always whine and complain about companies "fixing the odds" but I'll tell you, we don't even bother. The games that we create are straight odds exactly like you'd get from a fair dealer, perfect roulette wheel, etc.
No "real" on-line casinos will change their odds, because there's no point in fixing the games. The real money in online gambling comes from the hard-core players. They're always the ones who bet lots of money, and play religiously. You don't mess with these guys, you just let 'em play.
See, the great thing about being running a gambling outfit is that statistics works for you. You win some, you lose some, but after a few thousand customers it all evens out. In order to make money, the casinos don't actually pay out at 100% -- they usually pay out at something in the high 90s. It's not much different to Joe Gambler, but after thousands and thousands of gamblers go through the casino, that couple of percentage points adds up to give the casino a net win. So in a sense, I suppose they do "rig" the games, but they tell you right up front exactly how they do it, by telling you the payouts.
Moral of the story? Casinos always win in the long run. They really have no reason to cheat.
Dude, who cracks passwords any more? These days, it's far more likely the bad guys will get a root shell on a particular box before they'll crack passwords. Then it doesn't really matter any more, does it?
IMNSHO, picking ridiculous passwords is a major waste of effort. All that is necessary is to "beat" all password guessers by a reasonable margin -- ie, stay well out of their dictionaries. As long as you'll make it so that dictionary attacks are no good, you'll have pushed the weakest link in your security on to something else.
This means that pseudo-random passwords are easily good enough. No, "s00P3rS3kr1t" isn't a good choice for a password, but "SdN4N.Stm" will probably foil any dictionary.
Heck, these days if someone manages to get a shadow file, then they're almost to the point where they don't need it any more.
...and those who are in their right minds will continue to use triple-DES over Rijndael/AES for a good while longer.
Fancy new algorithms are wonderful things, but they're untested. Give Rijndael a couple of years to mature before you leap whole-heartedly into using it. There is nothing wrong with 3DES right now. The keyspace is sufficient, and there are no known practical attacks after manymany years of use.
Who'd use it in production? Well, production means different things. Oracle databases? No. Bind? Sure.
Plus, I think we're going to buy a bunch as development test servers, and for building network mock-ups and stuff like that. Talk about a great way to prototype a production network without spending a hundred thousand dollars...
Removing kinetic energy from waves won't cause unwanted harm because the energy would have been released on the coastline in the first place?
Well, what about those ecosystems that depend on it being released on *them* -- namely, the critters (and plants) that live in intertidal zones and rely on heavy surf for their survival? There are many such ecosystems, and they are indeed important. Who knows what impact it will have? Maybe it'll be small, but it certainly -won't- be non-zero. If you affect surf, you'll affect the intertidal zone.
Yeah, they're not affected. My point is that I can't just say "to hell with Apple, I'll go back to FreeBSD" because I really do like these applications a lot. That's why I feel a bit bitter -- I was fully sucked into the Apple thing. I raved on and on to anyone that would listen about how great they were and stuff. Now they're leveraging that grip they've got to extract another $129 + $100 --> CAN$350 or so from me this year.
I was a fully-hooked Apple person. I would have been happy to buy a brand new mac every couple of years or so, putting a solid $1000+ per year on average into Apple. For that, I had assumed Apple would let me stay current with my operating system for a good year or two at least. I figured that as long as I was buying new hardware every couple of years, that would be a fair deal. Now they're using this to extract more money from me. In the long run, they're going to get a lot less money from me, because instead of me getting more and more immersed and hooked into the Apple way of doing things, I'm now trying to find an exit strategy.
Yep. There's good and bad. For me, though, today's announcements caused a subtle shift in my feelings. See, I just bought an iBook a couple of months ago.
Yesterday, I was a proud and happy mac owner. I really enjoyed it, and I thought the value was excellent. I was excited about the new software, the new hardware, and just the whole new approach that apple takes to computing. (Before I bought the iBook, I was primarily FreeBSD + M$ for games). I bought a new digital camera, and I already have over a thousand great pictures in iPhoto. I have 4GB of music in iTunes. All my friends use my iTools email address, and read my iTools webpages. I was learning how to develop with Cocoa. I was exploring the Unix guts, and getting to know it quite well. Even after months of use, I still thought the iBook was fun and cool -- previous laptops and other toys quickly became routine, but this was still a thrill.
Today, I -still- use iPhoto, iTunes, and the development tools. However, my attitude has shifted. Before I was totally hooked by the software and the hardware, and I was very happy and excited about it. I read the apple rumours sites, and really enjoyed this new approach. Now, after today, I'm -still- hooked by all of the software, but now I feel bitter and slightly resentful about that fact. iTunes, iPhoto, and all the rest are still excellent programs that I really don't want to give up. Now, as I say, I resent that fact rather than relish it.
The first hit is free I guess. It's very evil, what they did to me. They got me hooked, and then used it against me. *sigh*. I'll probably buy the update AND pay for the iTools/.Mac/whatever, but grudgingly. Because I'm hooked. I suppose it's my own fault, since companies exist purely to make profit and I conveniently ignored that while I played with my shiny new toys. Ah well. It was fun for a while I guess.
The key to learning more about security and making connections is to get involved with your local scene (or generate one, if necessary).
Find your local ISSA chapter (issa.org),and in Canada there is the CIPS Security Interest Group (through cips.ca). Also, talk to your local VARs and express an interest in security products. Usually they'll invite you to free morning seminars pushing security products.
The point of going to these meetings is to find peers. Once you know a few people, swap email addresses and war stories, that kind of thing, you'll get a base.
I've used these groups to meet colleagues, put together CISSP study groups, discuss issues, and share job opportunities and the like. Once you get a critical mass of people, it becomes very useful and interesting. It's not the same as a conference, but it is far better than working in a vacuum.
You are worth what you negotiate, period... Companies don't pay your salary out of the good of their collective hearts. They pay the lowest price they can get away with -- just like you do with anything YOU buy. Sure, sometimes you'll pay a premium for better service etc. but so will your employer.
If you aren't getting paid enough, then it's nobody's fault but your own. It's not up to your employer to hold your hand and make sure that you're paid very well. That's your job.
So if you say you're leaving for better salary, why wouldn't you accept a higher offer from your own company? Do you really think they'll ditch you just because you did that? Well, if so, then don't take it I guess. In my experience, companies seldom do that (though it happens, of course). From what I've seen, they consider it part of the employment game. If they don't think you're worth the extra bucks, they'll pass.
Usually, however, I've found that it's better for everyone if you ask for the raise -first-. That is, negotiate it. In life (especially business/work) EVERYTHING is a negotiation. If you've got a job offer that is just as good as your current job, except with higher pay, then you have an -exceptionally- strong bargaining position. Use it to your advantage and get an amicable resolution. Negotiation doesn't have to be nasty and confrontational. At the end, if both sides get what they want, then everyone wins.
Heh. We had one of the big EMC Symmetrix fridge-sized disk arrays in our office server room. When we decided to offload all our servers in our Vancouver office to colo space in Burnaby, the office manager hired a professional computer equipment moving company to get it all done right. They assured us they had done many such large-scale moves of really big expensive computer equipment. And the office manager says he checked their references and all was good.
So anyways, day of the move comes, and who shows up but a bunch of guys who do NOT look like pro movers. In fact, it looks JUST like a guy, his buddy, his brother-in-law, and someone they picked up on East Hastings by promising him twenty bucks for the day. Niiice. Despite our protests, the office manager let these guys do it anyhow.
So they manage to roll it into their cube-van (with a newly-painted-over produce company logo still barely visible on the sides). Thankfully, they duct-taped the symmetrix to the side of the van so it wouldn't fall over. Real professional.
Then they get to the colo, but they had neglected to run a quick bit of recon on the site. They didn't realize that there was no freight elevator rated to carry the few-thousand-pound symmetrix up to the second floor (and we had warned them about this when we hired them). They had to go up the staircase. This would be no problem for pros -- they'd grab a skid, rig up some pulleys from the top of the stairs, and slide it up. No problem.
These guys figured they'd dead-lift it up the stairs. I wasn't too worred about the symmetrix, though. At most, they'd be able to get four guys lifting at a time. Four Arnold Schwarzeneggers might have budged it, but not these soft-bellied lackeys. Heh.
I was really amused as these guys sat with the symmetrix for three and a half hours as they tried to find some gear to get it up those stairs. I had a moment of panic as they started opening up the door and tried to remove the disks to reduce the weight! I put a stop to that pretty quick though. Eventually the guys at the colo took pity on them and got the job done themselves.
Sounds good to me. There's a situation where the bubble sort is the best thing to use. :)
One of the answers I can come up with is that you can use the bubble sort method when really do want the items to bubble up naturally and somewhat slowly. That is, the goal is not necessarily to completely sort everything in the smallest amount of time/space, but more like to have the list slowly tend toward sortedness, even as it may be changing and diverging from sortedness.
The thought is that it may be useful to do a single pass of the bubble sort, then do other stuff which might even occasionally mess up the order a bit more, then go through for another pass, and so on and so on. So as time goes on, the list stays more or less sorted, and it sorts organically and smoothly, but is rarely in perfectly sorted order.
Yeah, it's a liberal interpretation, but that's fine. I'm not sure where it would be useful, but I bet I'll find a use for it one day.
It's more like you have to consider real-life situations individually. My point is very much like what you said -- you can construct a zillion different algorithms to do something, but the vast majority of them will be practically useless in anything but a really weird situation. Recognizing when they are and aren't useful is an important skill. And most of the time, you'll go with the tried-and-true quicksorts etc.
However, it's important to think about each situation. Pure algorithms are usually designed with the general case in mind. Individual situations, however are always specific cases. Most of the time, the general solution is obviously useful. Sometimes, however, there is a special case that might not fit the mold, and one of these crazy one-off algorithms might fit the bill exactly.
In my mind, you will not get a job with me if you cannot see what makes each application of an algorithm unique. Computer science optimizes the general case. Real-life programming optimizes the special case that you're dealing with in your particular program.
Never? Can you prove that there are no data structures and change patterns that do not result in the bubble sort being the fastest over all? I'd be very interested to see that proof.
I still maintain that there may be a situation in which a bubble sort is the right choice, and that the question is a good one. Maybe I can't think of it (and honestly, I've never used a bubble sort in any code I've written) and apparently neither can you.
For me, the most important thing to think about is to consider the situation in which you're using the algorithms. I ask the question, because I want to challenge the person I'm interviewing. The people who immediately laugh and say "Never!!" without thinking about it for a minute get passed over. If someone thought about it for a minute and replied what you did, I'd be happy with that. I'd be just as happy if someone thought about it for a minute and said, "maybe some cases in which the list is already sorted, but I'm trying to imagine how that would work".
There may be a pattern to the way the data is changed over time that means that bubble sorts will be the best. I want people to think about that, rather than laugh about the bubble sort as a terrible algorithm. It's not -- it does what its supposed to do and nothing more. It just may be an algorithm that has an extremely narrow range of applicability.
I would definitely teach the bubble sort, even if the lesson is, "sometimes there are simple and easy-to-use algorithms that are rarely the most useful." People have to learn to recognize that.
Er. Nevermind about the worst case. But in -any- case, bubble sort is VERY fast when the list is already sorted. And yes, it is very useful in practice.
:)
The moral of the story is to always think about the reality of your data structures, and optimize for the most important and most relevant cases that you're dealing with, not to go with the slickest and coolest algorithms. Yes, Abrash is one of my heroes.
This is a standard interview question for me, when I interview programmers. "In what case would you want to use a bubble sort?" The answer, my friends, is very simple. The bubble sort is extremely fast when your list is almost always very nearly sorted, with very few (or no) elements out of order. For some algorithms, the already-sorted order is the worst case. For the bubble sort, it's the best case. So if you have a data structure that is updated frequently, but the order of the elements very rarely changes, you can use a bubble sort without being too embarrassed. :)
Living in Vancouver is wonderful. (As I type, I'm looking over Granville Island into the downtown core). We have an incredibly beautiful skyline. There are always tons of fun things to do (except after 11pm, when the Mayor says we all have to go to bed). The cultural diversity can cause difficulties, but mostly it means lots of good food, good shopping, and interesting people.
I've lived in the US, all over Canada, and throughout the Pacific Rim (all English-speaking countries though). Vancouver is easily my favourite city of them all.
I'll never get tired of having the mountains and the ocean so nearby. The hiking, skiing, cycling, and general outdoors activities are unmatched (and practically year-round).
The downsides? Driving and parking -sucks-. The transit system is cumbersome at best. Everything's pretty expensive. Too many people are far too politically-correct. Overall, though, it's a great place to be.
Incidentally, the exact nature of emergent properties is very actively studied. Check out the Sante Fe Institute, they're the poster children for the field.
The term isn't magic fairy dust sprinkled on hard problems. All it means is that you have a set of simple rules, but something surprising emerges from that, that you might not expect. It doesn't need physics or anything else, because it isn't fundamental. It's just a catch-phrase describing the wow-I-didn't-expect-that phenomenon.
I think intelligence doesn't need an explanation, any more than the flocking of birds needs rigorous derivation. Google boids for a very interesting demo. Is it how birds do flocking? Who cares? It works. I don't believe there is anything mysterious about intelligence. It's an observed property of a black box. If you could look inside that black box, I suspect you'd be disappointed.
Questions like yours, about whether or not it would have a subjective perceptual experience are irrelevant, I would say. In this respect, the Turing test has a very good point. If we can't tell the difference, then to us it's the same thing. If we think it's intelligent, then it is as intelligent as anything else that we experience, including people.
Absolutely. I don't think people should necessarily abandon the search for human-like AI. It will give us a very interesting insight into our own minds, at the very least.
I object to an apparent single-minded focus on Turing-test AI. I also object to an equating of consciousness with intelligence. I don't know if you intended that or not, but many seem to.
I think many people say AI, but they really mean human-like consciousness and awareness. Are house-flies intelligent? Rats? Dogs? Apes? Chimpanzees? My little brother? *heheheh*
If all or even just some of these are truly "intelligent", then I would argue that artificial intelligence is much simpler than we think. In fact, I'd argue that intelligence period is fairly simple -- it's an emergent property of complex adaptive systems. I'd say people don't recognize it where it is, since they're looking for something mystical and revolutionary, under the assumption that our own intelligence is mystical and revolutionary. I suspect its much simpler than people think.
What really annoys me about AI is that people seem to think that it must be human-like intelligence. Why is the Turing test so worshipped? Why on earth would we want to duplicate human intelligence when we could fabricate something completely unique?
Heck, if all we want to do is create human-like intelligence, I know how to do that very well. I plan to do it in about five years after I get married, and me and my wife have saved up a bit of cash (in the mean time we'll practice lots :). Sure, it takes a few years before the intelligence begins, and it'll take probably twenty or more for it to fully mature, but I have no doubt that it'll be fully functional.
For me, AI is far more interesting if its intelligence is novel. It may be difficult to recognize it at first, but I'm willing to bet it will be far more powerful than just making a really fast, long-lived human-like intelligence.
It's not too difficult to be a sysadmin. I came into this world from a degree in Physics & Math. The trick is to know what you're doing (for the most part) ahead of time. Now I'm in a senior positions, and I'm doing the hiring. So here are my easy steps to getting hired as a sysadmin:
1) Install and run as many different kinds of unix as you can get. DON'T just stick with Linux. When I do interviews and stuff, I get a million kids with Linux experience. Truly motivated sysadmins will also install xBSD and Solaris x86 (it's free -- go get it now). Run them every day. Make them work together over a network(NFS, NIS, etc). And when you apply, write all this experience down! Of course it counts as "real" experience!
2) Read all kinds of books. Develop your knowledge. You need to demonstrate a depth of understanding, in lieu of experience, when you're at an interview. If you can converse intelligently about the pros and cons of various topics, that's a good sign.
3) Here's an important one: do _NOT_ try to get a job at a small development shop run on Linux. This place will do very little for your career. You'll learn (guess what?) even more small-scale Linux skills. Woo. Now you're just like the vast majority of the people I interview but don't hire. From a career development point of view, it's far better to get into mid-sized or larger companies. Find places that can -afford- to buy EMC storage, Shark arrays, E6500s or 10ks, Cisco 8500s, giant robotic tape libraries. Find places that have fleets of enterprise servers, multiple remote offices, dedicated frame networks, and whatever other cool stuff you can find. Yeah, you'll be hopelessly lost in most of it, but you'll -learn-. If you're keen and enthusiastic, most places will let you get involved with the good stuff in some way. And if they don't let you watch over their shoulders while they're doing the cool stuff, leave and find another job if you can.
Sure, the "enterprise" stuff isn't the be-all and end-all of sysadmin. Buuuut having that stuff on your resume opens up a lot of doors, and gives you a lot of room to maneuver with your career. Small-scale shops are run very differently from "real" enterprise shops. That's not to say they're bad, it's just that it's a very small subset of the sysadmin universe, and it's vastly overpopulated right now.
Fair enough, perhaps it was real. You're right it was used irresponsibly, and that's my biggest problem with that footage. What motivation could CNN/Foxnews/whoever possibly have had, -other- than to inflame the already riled-up public? That's what irritates me more than anything else. There was no truly reasonable, positive motivation for showing that footage.
I guess that's mostly what I'm saying. Maybe this footage -was- real, but very few people publicly questioned it. Very few people stood up and said, "maybe those ones were a bunch of wackos, and maybe they don't represent the [insert ethnicity] population at large". Nope. But I heard tons of people talking about that footage, and loudly insisting that we "nuke the towel-heads into the stone age". Joe Sixpack has that image burned into his memory forever, and he'll enlist alongside his drinking buddies to ensure that he gets to pop a few caps into their collective asses.
Nice.
No, feel free to watch CNN and other US news agencies. Just make sure that you question what you see, and keep in mind that there is no truly impartial news source.
Yeah, I saw all those people cheering and happy the day of the WTC destruction. But... how do we know that they were cheering about this destruction? Do you honestly believe everything you see on CNN?
Seriously, think about it. If you wanted to polarize a nation behind a military response against a middle-eastern country, apparently all you'd have to do is dig up some old stock footage of cheering people from the middle east, and claim that they were cheering because something awful happened to the US. People obviously accept it without question, and ravenously demand the blood of those who did it.
I really think I must have seen a different movie than almost everyone else.
First off, I have never even -seen- a FF game. What does that have to do with the plot? I certainly had no problems following it. There were a bunch of strange aliens, and they were killing people for whatever reason. Humans had to hide out in shielded structures and struggle to sruvive. Some scientists figured out a way to neutralize these critters, and it involved finding a bunch of specific things. The main characters fight through monsters and stuff to get them. They get them, and the "good guys" win. Yay us. What was so friggin' hard about that?
And why does everyone keep whining about inconsistencies and confusion with the monster things? It all made sense to me.
Also, so what if they all look a little plastic? Do you complain when cartoon-characters look a little bit like they're drawn or painted? Do you complain that, when you read a book, you have to make up the images entirely in your head? Duuuuh.
Yes, that's true. But, it all comes out in the end, and we still consistenly pull in that couple of percentage points to make money. I'm not actually one of the math guys that works this stuff out, I'm a Unix geek. I deal with logistics and security. But we certainly don't neglect these things -- there are staff members whose sole responsibility is to figure this out for us. Real-world casinos can get away with neglecting this, because the "pro" gamblers are relatively few-and-far-between. On-line casinos, however, can't. All it takes is one pro with an automatic player running 24hrs/d for a week to make a bazillion dollars. So, yes, we're more than familiar with "perfect" poker playing strategies, and that sort of thing. We do it ourselves, actually. Part of our company's intelligence strategy employs a group that does nothing but play "perfect" poker etc. on all the on-line gambling sites, to see which companies account for it and which don't. Sure, this group (and the automation software) is expensive, but they have no trouble making cash on the side when they find someone that has neglected these details, so they're happy :)
When you've got millions of dollars going through the system every day, you catch all the subtleties, and you can easily build up your own statistics on what people really do. We've been doing on-line gambling for three or four years now, and we've put manymany millions of transactions through, so we've mostly figured it out. Sure, there were some slips in the early days, but these were soon recognized and remedied.
My background? I'm a Sysadmin for one of the biggest on-line gambling companies in the world. I work in the software development house, advising on sysadmin & security issues. We do casino games, sports books, and parimutuel. Sure, people always whine and complain about companies "fixing the odds" but I'll tell you, we don't even bother. The games that we create are straight odds exactly like you'd get from a fair dealer, perfect roulette wheel, etc. No "real" on-line casinos will change their odds, because there's no point in fixing the games. The real money in online gambling comes from the hard-core players. They're always the ones who bet lots of money, and play religiously. You don't mess with these guys, you just let 'em play. See, the great thing about being running a gambling outfit is that statistics works for you. You win some, you lose some, but after a few thousand customers it all evens out. In order to make money, the casinos don't actually pay out at 100% -- they usually pay out at something in the high 90s. It's not much different to Joe Gambler, but after thousands and thousands of gamblers go through the casino, that couple of percentage points adds up to give the casino a net win. So in a sense, I suppose they do "rig" the games, but they tell you right up front exactly how they do it, by telling you the payouts. Moral of the story? Casinos always win in the long run. They really have no reason to cheat.
Dude, who cracks passwords any more? These days, it's far more likely the bad guys will get a root shell on a particular box before they'll crack passwords. Then it doesn't really matter any more, does it?
IMNSHO, picking ridiculous passwords is a major waste of effort. All that is necessary is to "beat" all password guessers by a reasonable margin -- ie, stay well out of their dictionaries. As long as you'll make it so that dictionary attacks are no good, you'll have pushed the weakest link in your security on to something else.
This means that pseudo-random passwords are easily good enough. No, "s00P3rS3kr1t" isn't a good choice for a password, but "SdN4N.Stm" will probably foil any dictionary.
Heck, these days if someone manages to get a shadow file, then they're almost to the point where they don't need it any more.
...and those who are in their right minds will continue to use triple-DES over Rijndael/AES for a good while longer. Fancy new algorithms are wonderful things, but they're untested. Give Rijndael a couple of years to mature before you leap whole-heartedly into using it. There is nothing wrong with 3DES right now. The keyspace is sufficient, and there are no known practical attacks after manymany years of use.
Who'd use it in production? Well, production means different things. Oracle databases? No. Bind? Sure. Plus, I think we're going to buy a bunch as development test servers, and for building network mock-ups and stuff like that. Talk about a great way to prototype a production network without spending a hundred thousand dollars...
Removing kinetic energy from waves won't cause unwanted harm because the energy would have been released on the coastline in the first place?
Well, what about those ecosystems that depend on it being released on *them* -- namely, the critters (and plants) that live in intertidal zones and rely on heavy surf for their survival? There are many such ecosystems, and they are indeed important. Who knows what impact it will have? Maybe it'll be small, but it certainly -won't- be non-zero. If you affect surf, you'll affect the intertidal zone.
Too much physics and not enough biology.