Re:Crossbrowser libraries just perpetuate the prob
on
Learning Ext JS
·
· Score: 1
You are the victim of a false either-or mindset. Most people have access to multiple browsers nowadays. It's not like it costs anything. How many computer users do YOU know who have only IE?
If they've got an iPod, they've probably also got Safari.
If they're at all computer literate, or know someone who is they've also got firefox.
If they're into trying new things, they've got chrome.
So while they might still have IE6 or IE7, it's not the whole story, and not supporting the old versions doesn't shut out nearly as many people as you think. Realistically, you MIGHT be eliminating 5% of the market by ignoring older versions - the people who never update - but their computers are already p0wned anyway, so you're not missing anything except bot traffic.
It is for the type of questions these essays are usually supposed to answer. I remember the 124/250 word shorts MIT required back when I applied (didn't get in, but because of grades) being perfectly reasonable. I'm a massive cheerleader for more writing in engineering (I'm a writing tutor/computer engineering student who constantly tells science/engineering kids why the skills they're picking up in an assignment will be useful later), but I thought the girl's critique (and essay) was a perfect example of the kind of pretentious purple prose that nobody, least of all engineers, needs practice in. Short answers force students to get to the point and be careful with their syntax and sentence structure, which are writing valuable skills for engineers and sciences. Good writers can be just as good with 125 words as 500, and horrible writers skill doesn't change with length requirements. I think the articles are blowing this up to be a much bigger deal then it actually is.
Response favouring brevity: 163 words.
Hate to see what you'd write if you were in favour of "the kind of pretentious purple prose that nobody, least of all engineers, needs practice in".
Arguably, the ability to seek good outside assistance says as much about your likelihood of success in a University context as any other ability you might have.
Ah, the old "It's not what you know, but who you know" trick.
When I applied the biggest essay question was "If you were walking on a tight rope, what would you want under you?"
... and the proper answers are:
"The tightrope, stupid!"
"Doesn't matter - if I'm walking a tightrope, it's only a foot off the ground anyway."
"In this dream scenario am I naked and do I get to pick who I fall on?"
"[insert name here], because I never liked the SOB anyway. If I fall, I'm taking them with me!"
"The International Space Station. Falling off a tightrope in zero G is no big deal, and the view... just THINK of the VIEW!!!"
All good answers, and all less than 25 words.- 76 words total. Shows creativity, fast thinking (didn't take long to come up with these 5), and a sense of humour. Short and sweet and to the point.
(75 if you actually insert a first and last name in place of ["insert name here"], because some nazi is going to count.)
it is to find balanced individuals with a broad range of interests, who are are likely to become the leaders of tomorrow.
So they're looking for people who know how to lie, cheat, bullshit themselves and the world, steal without blushing when caught, have extra-marital affairs (there's your "broad" interest), drink like a fish and do crack, believe that some supernatural force will fix up anything they screw up too much, not be too good in the climate sciences, extra-lousy at living within a budget or basic math like balancing a chequebook (how much is that deficit now???), know how to wear a suit, smile at a camera, read from a teleprompter, basic "executive summary" only reading skills, not turn into a barking hyena and say "are you fucking nuts?" when someone says "intelligent design"...
I thought MIT was for developing scientists and engineers, not politicians. Thanks for correcting me.
Re:The guys behind EXTJS are terrible
on
Learning Ext JS
·
· Score: 1
You don't need to assign copyright to contribute code you want to GPL. As a matter of fact, it's best if you keep copyright, so that nobody else can monkey around with the licensing terms (remember the dust-ups a few projects have had when copyright assignees tried to restrict later versions over the original authors' objections ?)
"This code copyright the author date email yadda yadda yadda. Licensed and distributed solely under the terms of the General Public License (GPL), version $WhateverFloatsYourBoat. You should have received a copy of the GPL with this code. If not, you can obtain a copy at $URL. Please report violations to $YourEmailAddy."
As long as your code is clearly labeled as gpl, (and the same version) as their code, there's no reason they can't include the addition. It also keeps the lines clear as to who's responsible for code "borrowing" solely with the author, so if someone who tries to submarine proprietary code into a project in order to sabotage it, the project can always say "It's clearly not our code. We didn't write it, we don't hold the copyright to it, and we'll remove it and write around it, but you really want to talk to the copyright holder."
Of course, if the saboteur and the plaintiff are one and the same, unclean hands and estoppel come to the rescue, and the code can be considered to have been properly licensed to the project under the original terms.
We should do the same with submarine patent filings (Rambus recently lost $$$ for pulling that stunt, iirc).
No serial port, no parallel port, no network card, you can STILL transfer files.
Dig up an old infrared keyboard.
Plug the receiver into the target machine - it'll appear just like a regular keyboard.
Cannibalize the keyboard. You want to hook up the infra-red LED to your serial port. If you can't find instructions on the net (this is not an original project, so you SHOULD be able to find a howto), find a thirsty EE and offer them beer and pizza for their assistance.
Trigger the led, via the serial port on YOUR machine, to send the keyboard scan codes to the target machine for the following:
DEBUG [filename]
E (may not be this command - it's been a few decades:-)
send the file, byte by bite, in hex.
RCX [value] (set the register to the program length )
W
Q
Voila, your computer has typed in the program for you, without anything more than a keyboard interface on the target machine. Sorry that I can't take credit for the idea, but the good thing about it is that it will work with any computer that has a keyboard and a copy of debug (and all versions of dos shipped with debug). Nice way of getting around security when they've filled in the USB plugs, removed the optical drive, etc. (But if they think that disabling serial port in the bios and pasword-protecting the bios works, just use debug to set the ports to their proper non-zero addresses in the bios, and you should now have working serial ports again).
If they don't have a serial port, look for a parallel port - you can do bi-directional communications through that in a pinch, even if the port isn't bi-directional (you only get 4 bits at a time, but so what - files that fit on a 5-/4 or 8" floppy aren't going to be THAT big - and all machines with 3-1/2" floppies have serial ports).. Or just run the drive cable to another machine. There's ALWAYS more than one way to do it.
TFA is *always* relevant, despite this being slashdot. and as I pointed out, you CAN fix your laptop so that you can use an external batter pack and hot-swap, if you really want to, for under $5 of parts, so what is the problem again?
Re:Crossbrowser libraries just perpetuate the prob
on
Learning Ext JS
·
· Score: 1
And sometimes idealism pays off. Refusing to waste time accomodating IE6 ended up with me having oone of those "discussions" with the boss. After 2 months, he backed down, because I was right - his customers were dropping IE6. Being a lead means more than just doing what you're told. It means having an overview of the customers, the market, trends, and the needs,
It also means knowing what to cut. IE6 compatibility was the "what to cut" then. IE7 is the "what to cut" today. Don't even bother testing against it - it's time that won't be paid back.
Heck, the stuff I'm writing now, I refuse to even look at it in Windows until it's complete. It'll probably work fine under IE8 with a few tweaks, but I'm not going to waste any time accommodating anything older. People who won't upgrade simply aren't the target market, any more than people who are using a 486.
Re:The guys behind EXTJS are terrible
on
Learning Ext JS
·
· Score: 1
"Linking", under the gpl, refers to compiled code only.
The point of the commercial license is because people will want to modify the library, not just access its' functions. At that point, they would have to make the mods available under the gpl... which means in unobfuscated form.
If you're going to use a library, and you're going to modify it, why not share the benefits of your mods, and reap the benefits of other people fixing any bugs you may have introduced?
Re:Crossbrowser libraries just perpetuate the prob
on
Learning Ext JS
·
· Score: 1
All your points are based on a faulty premise - that requiring people to use a standards-compliant browser is somehow denying them access.
It's not. They're free to make the choice. There's no financial cost involved, and this decade, the people who have switched have also benefited from better security, so no downside, and a decent upside. But if people don;t want to use a particular browser, that's their choice - and one that I don't have to waste time accomodating.
The browser is just a tool - anyone who won't upgrade out of stupidity is also a tool, and simply not my market.
When my former boss kept complaining about compatibility problems with IE6, I told him to upgrade. He refused - "lots of our customers use IE6." I told him that, while I *could* fix it in IE6, it would break every other browser, and it wasn't worth it - plus it would delay release. And that if he wasn't happy, let someone else add the IE6 compatibility. In the end, pretty much everyone upgraded their browser anyway, so the "issue" of my refusing to do something stupd that would have delayed us by a few months was only an issue for a few months. Problem is, most devs don't have enough confidence in themselves to tell their boss when they're wrong, so we get these stupid hacks, written mostly by hacks with no sense of the long term implications.
Which is why we still have stupidity like active-x.
We are NOT here to continue to enable people in their bad decisions. Doing so is simply unethical.
And yes, ethics matter. So no soup for those who refuse to adhere to standards.
Re:The guys behind EXTJS are terrible
on
Learning Ext JS
·
· Score: 1
Good point wrt the gpl and obfuscating code.
Two points:
if your code only calls functions in the library, you only need to provide a copy of the library (at no time is the library linked, either statically or dynamically, to your code);
the library is dual-licensed, so people who buy and deploy the commercial version don't need to give anything
That being said, I think the whole idea of trying to obfuscate javascript is self-defeating. The real gravy and meatballs, crown jewels, etc., is the stuff (data and apps) on the server, not the interface to it that javascripted web pages show the end user.
The extra battery option is especially appreciated -- I can go 4-5 hours on battery power.
Nowhere in TFA does the person say that they can't swap batteries - just that they want to be able to run on battery power for a total of 4-5 hours. A laptop with a single battery that lasts 4-5 hours would also meet the spec just fine, as would a spare battery, or a laptop powered by a long-duration fuel cell, or even Mr. Fusion.
He does if he needs to put something on an actual diskette to transfer it to another system.
Nope - he can always use another system running a virtual image. And for older machines that don't have usb or a network card, there's always the serial port (telix is a great program for that, and I've used it to grab the data from REALLY old unix boxes - circo the early '80s).
Or you can explain that IE compatibility is currently a shifting target, and that it will:
more than double the initial development time and cost
increase by a factor of 5 to 10 the ongoing support cost
Then give them the old "on time, on budget, on spec - pick two".
Requirements are never cast in stone - not in the face of time and budget constraints. If you don't believe that, you've never experienced feature creep.
Re:Crossbrowser libraries just perpetuate the prob
on
Learning Ext JS
·
· Score: 1
"But my customers want it to work in their browser!" is not an argument when better browsers are freely available.
Really? When your customers contact you about this or that not working right in IE, all you tell them is to use a different browser? Don't you think that's a bit lazy?
No, it's the mirror image of "This site is best viewed^W^Wonly works in IE." What's sauce for the goose is sauce for the gander. Simply tell the customer to search for "Internet explorer is a steaming pile of crap" and that, while Microsoft is working towards a version that is standards-compliant (or at least standards-compatible - NOT the same thing), they still have a ways to go.
How "standard" is a "standard" if people aren't following it?
People ARE following them - then having to rewrite/bloat/break their code for ONE browser. The standards are listed at w3.org.
Oddly enough, the exact reason I don't have to spend a considerable amount of time debugging IE is because I use a library that is cross-browser compatible, because of things like browser sniffing. My time spent debugging problems in IE has dropped significantly since starting with ExtJS.
... and if you code only to the standard, your time spend debugging problems in IE will be zero. At the very least, dropping support for anything prior to IE8 (and especially ignoring IE6) is sensible.
Also, there's the dual issues of bloat and customization: bloat because these libraries are BIG, and customization, because now any custom js extensions you write are dependent on interactions with both the browser and the library, which just adds another potential set of corner cases to test for.
Re:The guys behind EXTJS are terrible
on
Learning Ext JS
·
· Score: 2, Insightful
A lot of people may think, it's web client code, who cares, but for some of us web client code is becoming more and more like any other application code.
There's one important difference.
Web client code, by its' nature (it has to run on the client) isn't something you can hide. Any obfuscation can be de-obfuscated given enough incentive (and the fact that you've tried to hide it is "incentive enough" for some people). They HAVE to have the source to run it. (and this ignores the whole "performance hit from obfuscation" issue).
Sure, stick your copyright notice on it, but don't classify it the same as "any other application code". It's out there in the open. The real meatballs and gravy will always be on the server side in any data-driven web app.
Crossbrowser libraries just perpetuate the problem
on
Learning Ext JS
·
· Score: 1
It's been well documented that working with JavaScript can be problematic across various browsers. In response a number of JavaScript libraries have been created to alleviate the issues in dealing with different browsers, allowing developers to focus on application logic rather than platform concerns.
Why not just refuse to use non-standard features, browser sniffing, etc. Accommodating multiple broken browsers just perpetuates the "we don't need no stinking standards but our OWN!" mentality. We've seen IE being forced to move towards standards compliance because of the growing market share of Firefox, which was closer to the standard.
"But my customers want it to work in their browser!" is not an argument when better browsers are freely available. What next - make a version that works for IE3 or Mosaic because someone is still running WFW3.1?
We benefit from standards for everything else - electricity, water, sanitation, food, health, ram, tires, gasoline, soda pop containers, air quality, asbestos, drugs, alcohol, etc. - and yet in this one area, we tolerate immaturity. Why? Because too many devs don't want to have to learn the standards, and too many project managers don't have the guts to tell their bosses that compatibility with an incompatible browser is not the most effective allocation of resources.
It's pretty bad when more than half the time ona web project is "fixing" broken IE rendering. That time could be better spent making a better product, rather than making the existing product bloated and more bug-prone.
Even if you're running some long process that you don't want to interrupt, suspend-to-disk and restore works fine, so you don't need a second internal battery, just a spare. Heck, it even works fine for resuming interrupted updates under suse (found out the hard way when I did 8 gigs of updates and forgot to plug the adapter in. Automatically suspended to disk half-way through - plugging the power in and pressing the power button, it reconnected and continued without a hiccup). This whole "I don't want to take a minute to swap batteries" is just SO contrived.
Most of the time, my laptop is either at least as far away as a desktop screen (it's sitting on my desk) or even further (it's sitting on a table in the living room). Even on your lap, the laptop is further away than your desktop screen.
Laptops are only good as dev machines if you have a second screen hooked up to them. Then again ANY developer who doesn't have at least 2 screens going at the same time really needs to ask why they hobble themselves intentionally. Web development really needs 2 machines and 3 screens, because of the need for compatibility testing, so a laptop is also useful then, either as the primary or secondary box.
Even for those like myself who refuse to use an IDE (clunky, boring, stupid, gets in the way, whatever the excuse of the day is) two screens are just such an improvement in terms of workflow.
Even under linux, hibernating a laptop to swpa bateries is no big deal - just close the lid if you're too lazy to mouse over to "suspend to disk", wait for the hd indicator to stop flashing, and swap the batteries. Then open the lid, hold down the power button, and back to work really fast. This way, the laptop only has the weight of one battery at a time - added benefit.
You are the victim of a false either-or mindset. Most people have access to multiple browsers nowadays. It's not like it costs anything. How many computer users do YOU know who have only IE?
If they've got an iPod, they've probably also got Safari.
If they're at all computer literate, or know someone who is they've also got firefox.
If they're into trying new things, they've got chrome.
So while they might still have IE6 or IE7, it's not the whole story, and not supporting the old versions doesn't shut out nearly as many people as you think. Realistically, you MIGHT be eliminating 5% of the market by ignoring older versions - the people who never update - but their computers are already p0wned anyway, so you're not missing anything except bot traffic.
In Soviet Amerika, Microsoft p0wnes YOU!
Hey, someone had to say it ...
I really own it? Great!
8 words
Response favouring brevity: 163 words.
Hate to see what you'd write if you were in favour of "the kind of pretentious purple prose that nobody, least of all engineers, needs practice in".
Ah, the old "It's not what you know, but who you know" trick.
All good answers, and all less than 25 words.- 76 words total. Shows creativity, fast thinking (didn't take long to come up with these 5), and a sense of humour. Short and sweet and to the point.
(75 if you actually insert a first and last name in place of ["insert name here"], because some nazi is going to count.)
So they're looking for people who know how to lie, cheat, bullshit themselves and the world, steal without blushing when caught, have extra-marital affairs (there's your "broad" interest), drink like a fish and do crack, believe that some supernatural force will fix up anything they screw up too much, not be too good in the climate sciences, extra-lousy at living within a budget or basic math like balancing a chequebook (how much is that deficit now???), know how to wear a suit, smile at a camera, read from a teleprompter, basic "executive summary" only reading skills, not turn into a barking hyena and say "are you fucking nuts?" when someone says "intelligent design" ...
I thought MIT was for developing scientists and engineers, not politicians. Thanks for correcting me.
"This code copyright the author date email yadda yadda yadda. Licensed and distributed solely under the terms of the General Public License (GPL), version $WhateverFloatsYourBoat. You should have received a copy of the GPL with this code. If not, you can obtain a copy at $URL. Please report violations to $YourEmailAddy."
As long as your code is clearly labeled as gpl, (and the same version) as their code, there's no reason they can't include the addition. It also keeps the lines clear as to who's responsible for code "borrowing" solely with the author, so if someone who tries to submarine proprietary code into a project in order to sabotage it, the project can always say "It's clearly not our code. We didn't write it, we don't hold the copyright to it, and we'll remove it and write around it, but you really want to talk to the copyright holder."
Of course, if the saboteur and the plaintiff are one and the same, unclean hands and estoppel come to the rescue, and the code can be considered to have been properly licensed to the project under the original terms.
We should do the same with submarine patent filings (Rambus recently lost $$$ for pulling that stunt, iirc).
Sure it's nutzo, but it's been done ... desperation is the REAL mother of invention.
Voila, your computer has typed in the program for you, without anything more than a keyboard interface on the target machine. Sorry that I can't take credit for the idea, but the good thing about it is that it will work with any computer that has a keyboard and a copy of debug (and all versions of dos shipped with debug). Nice way of getting around security when they've filled in the USB plugs, removed the optical drive, etc. (But if they think that disabling serial port in the bios and pasword-protecting the bios works, just use debug to set the ports to their proper non-zero addresses in the bios, and you should now have working serial ports again).
TAMTOWTDI
If they don't have a serial port, look for a parallel port - you can do bi-directional communications through that in a pinch, even if the port isn't bi-directional (you only get 4 bits at a time, but so what - files that fit on a 5-/4 or 8" floppy aren't going to be THAT big - and all machines with 3-1/2" floppies have serial ports).. Or just run the drive cable to another machine. There's ALWAYS more than one way to do it.
TFA is *always* relevant, despite this being slashdot. and as I pointed out, you CAN fix your laptop so that you can use an external batter pack and hot-swap, if you really want to, for under $5 of parts, so what is the problem again?
And sometimes idealism pays off. Refusing to waste time accomodating IE6 ended up with me having oone of those "discussions" with the boss. After 2 months, he backed down, because I was right - his customers were dropping IE6. Being a lead means more than just doing what you're told. It means having an overview of the customers, the market, trends, and the needs,
It also means knowing what to cut. IE6 compatibility was the "what to cut" then. IE7 is the "what to cut" today. Don't even bother testing against it - it's time that won't be paid back.
Heck, the stuff I'm writing now, I refuse to even look at it in Windows until it's complete. It'll probably work fine under IE8 with a few tweaks, but I'm not going to waste any time accommodating anything older. People who won't upgrade simply aren't the target market, any more than people who are using a 486.
"Linking", under the gpl, refers to compiled code only.
The point of the commercial license is because people will want to modify the library, not just access its' functions. At that point, they would have to make the mods available under the gpl ... which means in unobfuscated form.
If you're going to use a library, and you're going to modify it, why not share the benefits of your mods, and reap the benefits of other people fixing any bugs you may have introduced?
All your points are based on a faulty premise - that requiring people to use a standards-compliant browser is somehow denying them access.
It's not. They're free to make the choice. There's no financial cost involved, and this decade, the people who have switched have also benefited from better security, so no downside, and a decent upside. But if people don;t want to use a particular browser, that's their choice - and one that I don't have to waste time accomodating.
The browser is just a tool - anyone who won't upgrade out of stupidity is also a tool, and simply not my market.
When my former boss kept complaining about compatibility problems with IE6, I told him to upgrade. He refused - "lots of our customers use IE6." I told him that, while I *could* fix it in IE6, it would break every other browser, and it wasn't worth it - plus it would delay release. And that if he wasn't happy, let someone else add the IE6 compatibility. In the end, pretty much everyone upgraded their browser anyway, so the "issue" of my refusing to do something stupd that would have delayed us by a few months was only an issue for a few months. Problem is, most devs don't have enough confidence in themselves to tell their boss when they're wrong, so we get these stupid hacks, written mostly by hacks with no sense of the long term implications.
Which is why we still have stupidity like active-x.
We are NOT here to continue to enable people in their bad decisions. Doing so is simply unethical.
And yes, ethics matter. So no soup for those who refuse to adhere to standards.
Good point wrt the gpl and obfuscating code.
Two points:
That being said, I think the whole idea of trying to obfuscate javascript is self-defeating. The real gravy and meatballs, crown jewels, etc., is the stuff (data and apps) on the server, not the interface to it that javascripted web pages show the end user.
Oh, and I like your current sig.
Nowhere in TFA does the person say that they can't swap batteries - just that they want to be able to run on battery power for a total of 4-5 hours. A laptop with a single battery that lasts 4-5 hours would also meet the spec just fine, as would a spare battery, or a laptop powered by a long-duration fuel cell, or even Mr. Fusion.
Nope - he can always use another system running a virtual image. And for older machines that don't have usb or a network card, there's always the serial port (telix is a great program for that, and I've used it to grab the data from REALLY old unix boxes - circo the early '80s).
There's ALWAYS an alternative.
Then give them the old "on time, on budget, on spec - pick two".
Requirements are never cast in stone - not in the face of time and budget constraints. If you don't believe that, you've never experienced feature creep.
No, it's the mirror image of "This site is best viewed^W^Wonly works in IE." What's sauce for the goose is sauce for the gander. Simply tell the customer to search for "Internet explorer is a steaming pile of crap" and that, while Microsoft is working towards a version that is standards-compliant (or at least standards-compatible - NOT the same thing), they still have a ways to go.
People ARE following them - then having to rewrite/bloat/break their code for ONE browser. The standards are listed at w3.org.
Also, there's the dual issues of bloat and customization: bloat because these libraries are BIG, and customization, because now any custom js extensions you write are dependent on interactions with both the browser and the library, which just adds another potential set of corner cases to test for.
There's one important difference.
Web client code, by its' nature (it has to run on the client) isn't something you can hide. Any obfuscation can be de-obfuscated given enough incentive (and the fact that you've tried to hide it is "incentive enough" for some people). They HAVE to have the source to run it. (and this ignores the whole "performance hit from obfuscation" issue).
Sure, stick your copyright notice on it, but don't classify it the same as "any other application code". It's out there in the open. The real meatballs and gravy will always be on the server side in any data-driven web app.
Why not just refuse to use non-standard features, browser sniffing, etc. Accommodating multiple broken browsers just perpetuates the "we don't need no stinking standards but our OWN!" mentality. We've seen IE being forced to move towards standards compliance because of the growing market share of Firefox, which was closer to the standard.
"But my customers want it to work in their browser!" is not an argument when better browsers are freely available. What next - make a version that works for IE3 or Mosaic because someone is still running WFW3.1?
We benefit from standards for everything else - electricity, water, sanitation, food, health, ram, tires, gasoline, soda pop containers, air quality, asbestos, drugs, alcohol, etc. - and yet in this one area, we tolerate immaturity. Why? Because too many devs don't want to have to learn the standards, and too many project managers don't have the guts to tell their bosses that compatibility with an incompatible browser is not the most effective allocation of resources.
It's pretty bad when more than half the time ona web project is "fixing" broken IE rendering. That time could be better spent making a better product, rather than making the existing product bloated and more bug-prone.
Even if you're running some long process that you don't want to interrupt, suspend-to-disk and restore works fine, so you don't need a second internal battery, just a spare. Heck, it even works fine for resuming interrupted updates under suse (found out the hard way when I did 8 gigs of updates and forgot to plug the adapter in. Automatically suspended to disk half-way through - plugging the power in and pressing the power button, it reconnected and continued without a hiccup). This whole "I don't want to take a minute to swap batteries" is just SO contrived.
Most of the time, my laptop is either at least as far away as a desktop screen (it's sitting on my desk) or even further (it's sitting on a table in the living room). Even on your lap, the laptop is further away than your desktop screen.
Laptops are only good as dev machines if you have a second screen hooked up to them. Then again ANY developer who doesn't have at least 2 screens going at the same time really needs to ask why they hobble themselves intentionally. Web development really needs 2 machines and 3 screens, because of the need for compatibility testing, so a laptop is also useful then, either as the primary or secondary box.
Even for those like myself who refuse to use an IDE (clunky, boring, stupid, gets in the way, whatever the excuse of the day is) two screens are just such an improvement in terms of workflow.
Even under linux, hibernating a laptop to swpa bateries is no big deal - just close the lid if you're too lazy to mouse over to "suspend to disk", wait for the hd indicator to stop flashing, and swap the batteries. Then open the lid, hold down the power button, and back to work really fast. This way, the laptop only has the weight of one battery at a time - added benefit.