Another Belated Microsoft Memo
fiannaFailMan writes "Bill Gates has sent out another memo heralding the latest big development in the industry, as he sees it. This time it's web-based software using technology such as AJAX (that MS 'invented but failed to exploit'). The Economist says 'As in previous cases, what is new is not the idea itself, but the fact that Microsoft is taking it seriously.' Zach Nelson of NetSuite decided against writing a memo. 'Writing memos is cheap,' he says, whereas 'writing software is a whole lot harder.'"
Note to self: learn to write software
So does Microsoft have a patent on AJAX? Can they leverage their parenting of the technology to stifle progress once again? Who owns AJAX?
Personally, the whole AJAX thing is cool, and at the same time scary.
I'm a web developer, and right now I am really getting into the stride of making very good apps, very quickly.
With AJAX, the expectations will rise considerably. The development effort will go way up...all to do the same things we are doing now.
I know that this sounds stupid to a lot of you...but think about games. Better graphics increase development time and effort, but don't necessarily make a better game.
Soon, EVERY web app will need to be an AJAX app...even if it doesn't need to be.
The age of simple software is once again coming to a close.
No reason to lie.
Mr Gates is probably laying the framework for changes in the AJAX support in IE aimed at breaking competitors products.
That has to be the worst idea to come out of a marketing drone since synergistic paradigm. At least Microsoft is actually working on new stuff lately. Google and Firefox have urged them to restart their old habits of copying that we haven't seen since the mid nineties.
Later this year Microsoft is planning to release a hard drive based MP3 player.
These guys are so far behind the times it's not even funny. The next thing you know they'll be talking about how we really need something to search the web with, or an online way to look up an address. Hey, here's an idea, we'll make a website that contains information about stuff and make it editable by everyone.. We can call it a Wiki!
My software never has bugs.
It just develops random features.
...how powerful and profitable Microsoft would be if they weren't always five years late to the party.
This isn't the first time Microsoft has been late to the race. They are the masters of catch up and making the most of what someone else pioneered.
Slashdotters are quick to laugh at Micro$oft, but Microsoft is the one laughing all the way to the bank.
"A government is a body of people, usually notably ungoverned." - Shepard Book Quoting Malcolm Reynolds
There you have it Slashdotters. Here, Microsoft has some innovation to show. Sincerely, I have been slashdotting for a long time and can say I have seen very little if anything about M$ being recognized for its innovation.
This I believe, is one of them. Thank you M$.
Memo to self-
Stop writing memos.
He who knows best knows how little he knows. - Thomas Jefferson
Dear Anonymous Coward,
;)
Let me just say that—
Sorry, Billy got a BSOD. He'll send his message momentarily.
And by momentarily, I mean in no less time than 72 hours.
Keep your eyes to the sky.
Oh, they managed to exploit it, albeit indirectly.
yes, amazing. zonk dissapears for a while, comes back, posts 2 dupes in a day.
-- lol pwned
I agree with PBS's Robert X Cringely: the leak's just a distraction. It's only there to make Wall St. think Microsoft is still relevant and on the edge of the wave.
The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
But with this web-based/AJAX thingies it is a bit a conflict of interest for Microsoft. MS desperately tries to jump onto the services band-wagon. But the truth is that their main revenue comes from shrink-wrapped software (like Windows or Office). They *try* to laverage that to other areas but they fail miserably.
Take MS vs. Google. Now Google still IMHO does everything before MS, and then MS goes "me too" and issues something similar but yet worse than Google offering. In normal situation - meaning MS has no money to pump from OS/software revenue into new markets they would not get a chance against Google - they will simply bankrupt. Right now they pump the money but I doubt they get any revenue (even to go on zero line) from their web services.
Now as far as I understand they wan't to couple web-based software (more like service) with shrink-wrappedsoftware like Windows and Office. I base that on various interviews with MS execs about MS product line I've read. But this is like flawed idea from the begining. The most valuable part (IMHO) about web software is that it only needs a browser and server infrastructure on the other end. So in fact you do not need to pay any special attention to the client side (as you would have to with shrink-wrapped software). So for e.g. you could have a big extranet with 5000 clients across the world, using one sophisticated application by web and only thing you need is decent server architecture and on client side - commodity: standard browser running on any OS, maybe a printer or smth. to get the job done.
This is completely the opposite of having fat clients loaded with bloated OS and software suites - the MS way.
So I see a conflict here.
AJAX is a good idea for larger services, like Gmail, that many people use and it is completely seamless. However, AJAX is much harder to code, and it's not necessary for a smaller company, which doesn't need the marginal gains vs. the coding. Still, for a large company like Google, it takes less time to load (which makes Gmail seem better) and also saves bandwidth.
"Bill, is this your memo: 'how to run a government 101 at 11:00' ?"
"No, it's George's. I took the advanced class last year."
Did anyone else first read the title as "Another Baleeted Microsoft Memo"? :/
Zonk has sent out another memo heralding the latest big development in the industry, as he sees it. This time it's web-based software using technology such as DUPES (that Slashdot 'invented but failed to exploit'). The Economist says 'As in previous cases, what is new is not the story itself, but the fact that Slashdotters are taking it seriously.' Commander Taco of Slashdot decided against writing a memo. 'Posting dupes is easy,' he says, whereas 'professional quality editing is a whole lot harder.'"
// TODO: Insert Cool Sig
Kinda like the old saying "the second mouse gets the cheese."
Top 10 Reasons To Procrastinate
10.
Lemme fix that link for you
http://www.microsoft.com/windows/default.mspx
I'd say they've managed to exploit it fairly directly.
[Fuck Beta]
o0t!
From TFA: This prompted yet another memo from Marc Benioff, the marketing-savvy boss of Salesforce.com, a leading proponent of the software as a service model. If Microsoft were serious about Web 2.0 and Microsoft Live, he suggested helpfully in an internal memo sent to the press, it should rename its traditional software Microsoft Dead. Web 2.0, he said, was not about old companies constrained by their legacy products but new firms such as, naturally, Salesforce.com, Writely, Numsum, Zimbra and Goffice.
Flying is easy, just throw yourself at the ground and miss. -Douglas Adams
memo (in Spanish)? as in the first meaning? :P
"Isn't the first time"? This isn't the TENTH time! I've lost count, ran out of fingers.
Sometimes they catch up. Sometimes they lose. In the 90s they had a reputation for catching up and winning. This decade they mostly haven't. MS doesn't have the clout it used to.
How come nobody's noticed this YET? Or perhaps, it invited way too many hits last time /. posted it!
What was a nice thing for solving problems otherwise difficult to solve, has turned into something that is making my expensive computer grind to a halt. Currently no browser likes to have multiple commercial pages open at the same time (which is how I often browse). Everybody from the content hoster, the ad folks, the editorial, and design folks gotta have some Ajax running. VERY VERY little does anything useful from either a UI or Content view, but in the end makes browsing slower, makes my computer slower, and makes me hate the F77ck3rs who think Ajax is cool. I hope this comes to a quick near death like when Java was cool.
Microsoft has a project called 'Atlas' that has a set of prebuilt controls and javascript files that you can use for your projects. It can be found at asp.net. The nice thing about this project is you can define an Atlas (it's just AJAX really) control the same way you define a typical asp control ( vs. ) and then link in the pre-defined .js files. I have been reading about AJAX for a while now on Slashdot (my employeer has been using it for quite a while now and I didn't even know it) but hadn't tried it out. Atlas is so simple that I had my first page converted in a matter of minutes. An earlier submitter pointed out that not all pages need to be converted or built using AJAX but the customer is demanding it. This is an interesting topic, and I have considered this myself. I have found that almost every page in the types of websites that I create don't need this technology. Most of them are your typical form where you just insert data and update a database. If you don't need a high level of interactivity, AJAX might not be the best option.
After you said that writing code is a whole lot harder than writing a memo, I got to thinking: When was the last time Bill Gates coded anything? I mean I was just wondering. For all the supposedly evil things his company has done, albeit with him at the helm, he started out as a geek. Geeks like to do geeking things, I don't care how old you are... what do you think he's done recently?
to provide the "X" in AJAX, but the concept was envisioned by Netscape all along.
Oh, get it right. XmlHttpRequest was implemented as a standard long after, and only because of, Microsoft's ActiveX implementation, which has been around since IE4. Before that, Microsoft had a Remote Scripting library for ASP, which allows the same functionality as "AJAX". The Remote Scripting library even worked in Netscape 4, which was a common browser at the time I built my first "AJAX" application.
Do you know what "AJAX" is? It's a term coined by some overpaid design guru talking head to describe technology that has been around, and in heavy use by non-public webapps, for many years.
Microsoft pioneered this whole way of thinking, even if they didn't implement it very creatively on many of their sites, and many of their better ideas (CSS expressions & behaviors, XML data islands) have still not become standards, while others have.
And, yes, I am posting this from Firefox, running on an Ubuntu distro. I am not a Microsoft apologist, but mindlessly parrotting off commonly-believed falsehoods just pisses me off. When IE 5 was first released, it was a groundbreaking app, better than anything else on the market, and many of its innovative features are still unknown to most of the A-List, blogorati circle-jerk web-brochure designers who think making a glorified to-do list is "changing the face of the web".
Whatever. Unix is a giant web of copycat implementations. We may love it, but it goes without saying that very few unique innovations have taken place in the Unix world for the past decade.
hello dear sirs my name is jamesh i are india (bihar) can u guide me install red had linux 9?
Java applets have all the user interface/networking capabilities that AJAX has and some more.
I think that Sun missed the boat on this one. Instead of working on a lightweight JVM for every platform, they kept bloating the language and the implementation. I don't see many Java applets anymore, it's mostly Flash and now AJAX.
All you say is quite true.
Now if they could just learn ( say catch up a bit ) and
stop acting like they have to own everything software,
maybe slashdotters will stop treating them so terribly.
emt 377 emt 4
Yes, but with lots of Unix software, they're licensed in such a way as to say "Dupe me! Comeeee on baby dupe me!"
Innovation in Unix is expected to be duplicated and improved upon, and is licensed as such.
MS says "Oh, ya, we have that too now." And copies it.
If you like what I've said here, and want to read more, go to http://www.krillrblog.com
"Now a barrage of memos signals the emergence of a new generation of web-based software, often called 'Web 2.0'. As in previous cases, what is new is not the idea itself, but the fact that Microsoft is taking it seriously." Funny how when Microsoft takes something seriously, I don't. This Web 2.0 crap is stupid. Just because the W3C and some developers who use XML are becoming better doesn't mean we have to dub the "World Wide Web" a.k.a. "The Internet" a.k.a. "Porn" a.k.a. "The Net/Web", "The Web 2.0". We already have enough names, can't it just be called, "The Internet" as it should be called, hence the interconnected networks?
Hmmm, you sure about that? Last time I checked, hardware virtualization had been implemented on Unix way before it was brought to Windows by VMWare and Virtual PC. Same for RAID. Sun's NFS and RPC were way ahead of anything MS had until years later.
--
Mad science! Robots! Underwear! Cute girls! Full comic online! http://www.girlgeniusonline.com/
Back in late 2000 I wrote a web page that displayed a SVG map, based on census tract data from the whole US, and when the user selected a different set of variables to view (say comparing population density to property values) the javascript on the page would request the data from my web server, which would run the needed SQL query, and return the result in XML to recolor/change the map, without reloading the huge map geometry, just the new data.
.CGI module to turn the request into SQL and the data into XML. The big thing was SVG, it just wasn't widly supported at the time, the Adobe SVG software choked on anything complex, and Firefox 1.0 didn't even include it.
I don't recall using any ActiveX; just JavaScript and a little
I guess the distinction is in the asynchronous prefix, where you have an outside object on the client side, calling back into your JavaScript when it's done.
I just put an end marker on the data I was retrieving, and waited for it to appear, or for an error condition to occur.
If they could have enabled threads in Javascript, that would be more flexable I think.
I agree with your premise. Microsoft often can't afford to take advantage of truly innovative technology, because that technology might erode their desktop monopoly.
Some of the logic along the way is... problematic.
Microsoft introduced ActiveX to ensure the web was tied to their platform. The reason ActiveX was "much maligned" is because it was just DCOM wrapped up in web semantics. Since DCOM was poorly-designed, ActiveX inherited many problems, including extremely poor security. At the time, CORBA was the standard for remote execution, and although it was a standard, it had many drawback when compared to DCOM-- namely, poor implementations that often didn't work together properly, naming service issues (still a problem, though its getting better), and huge bloat / performance issues.
Their platform was hardly fantastic. It was cobbled together, riddled with stability and security issues, and was tied intimately to the MS-Windows platform. The primary reason nobody adopted it on the web, outside of the compatibility nightmare, was that ActiveX controls required a Microsoft server on the other end, meaning exposing an important service to the internet. I believe that was Microsoft's intent-- get application developers to use ActiveX (most app developers were MS-Windows developers), and force the sysadmins to install MS-Windows servers to support them. But that might just be paranoid delusions on my part.
I'm glad you remember to glory days of ActiveX and IIS servers with such a warm fuzzy glow. All I remember were the serious ActiveXploits, IIS worms, and performance problems created by this "fantastic platform."
Microsoft is to software what Budweiser is to beer.
Microsoft is far ahead of the curve on "AJAX" stuff its not even funny. Hell, Microsoft invented XMLHttpRequest 7 years ago or so. And Ajax is a joke compared to something like XAML and a .NET runtime in the browser. It'll make all this html/css/javascript+dom look like the stone age, and it'll all be in the browser. Word and anything else they want to run will look and almost act native. I used Visual Studio ActiveX that responded reasonably years ago.
Microsoft DID NOT invent Ajax.
..... da ta da da! Next. Given that the only thing it (the web) could run on at the time was Next... I guess Steve Jobs had more to bring to bear in creating Ajax than MS did.
.... it had to exist post Sun creation. Sun was created After the Http request was first used. Java was first created in 1991, and introduced to the public in 1994. LONG after javascript had existed.
Ajax = Asynchronous Javascript and XML.
XML is a subset of SGML which existed before M$.
Javascript is a child of LiveScript, both were created by Netscape. Nothing in what is Ajax was ever created by M$ period. The fact that they are able to see the value and talk it up is cool, but they invented none of it.
Now I'm sure someone will bring up M$ Remote Scripting. It like LiveScript where basically in house products. Remote Script did not exist in the public realm. However at the time of it's "creation", M$ was lacking a viable browswer (Definition of Viable is it works.) IE 1.0 and 2.0 where total jokes, 3.0 was the equal of Netscape 1.0 and 4.0 began to work. By this time however both MS and Netscape were fully supporting LiveScript/JavaScript (Sometimes in name only, as each tried to extend beyond the other.)
But in short Please, stop say M$ invented Ajax. This is like claiming that Honda invented the Car. They build them yes but they did not invent them.
Now according to wikipedia something called. Remote Scripting supposedly pre-dated HTTP requests. (according to Wikipedia.) Nope.. sorry didn't. The concept of HTTP requests etc had been layed out for a long time before M$ existed (pre-dating the Altair) But it took Berners-Lee to be able to make it usable and, Stanford Linear Accelorator to do the most important step. Create a Distant End. In fact at the time the ONLY usable OS for this was
Since Remote Scripting required a Java applet to work
So no, I had more to do with Ajax than M$ did. And I had nothing at all to do with the concept.
I'm sorry, I'm to tired to be witty at the moment so this message will have to do.
AJAX is a great way to make it harder to get at the data you want without following the intended process. Take flash as another good example of this. Unless a flash author goes out of his/her way to make the thing indexable, the information is locked in. You can't link in to the middle of a flash script the way you can with an html site.
You have to walk through the silly flash stuff to get to the data you want. I tried to get information on automobiles recently, but the trend there is flash in a big way. Well, they didn't really say anything useful about their cars, anyway. The only information I could get was from the third-party sites. It's like any advertising in that they make you walk through the data in the fashion that most influences you to ignore the things you don't like (or don't know) and pay attention to the pretty color.
AJAX, as far as I can tell, is a great way to limit the indexability of information and provide a single point of entry for it.
Of course, XML was supposed to do exactly the opposite by making the information completely indexable, and Mr. Bossman totally got on the hypetrain to Nowhere.
The anonymous user has an informative post.
evil is as evil does
The early implementations of remote scripting was done with a tiny little java applet. That's why it worked in both netscape and IE. MS decided to re-do it because they decided they hate java one one day and also to make it a MS only technology. Needless to say that killed the technology until it became cross platform again.
evil is as evil does
If the wiki is wrong you should do something about it, sure any senseble person should take into account that its not (at) all hard facts that's Wikipedia, but people do tend to get there knowledge from it. If you are aware it is wrong on a certain point, do something about it please.
Apple are nearly right. IE 5.0 was the first version of IE to ship with MSXML and the XmlHttpRequest object.
However MSXML 2.0, which was where XmlHttpRequest first appeared was available for download before that. We were using MSXML 2.0 with IE 4.0 to do AJAX style apps before IE 5.0 was released.
Microsoft's patents on the C#/.NET APIs have already greatly stifled progress. If Microsoft didn't have those patents, Mono would likely be far more widely used on Linux. It has taken a lot of work to determine that those patents are likely not relevant or enforceable, and nevertheless they still have a bad PR effect for Mono.
In general, merely having a patent stifles progress and is an anti-competitive practice because it forces competitors to work around it, in particular given that Microsoft has threatened to enforce its portfolio and clearly has the means to do it.
Microsoft also uses its patent portfolio to negotiate patent cross licensing agreements and they use patents in the negotiation of individual business deals. And Microsoft uses patents to threaten countersuits when they are threatened with a legitimate patent lawsuit, usually resulting in a cross licensing deal and settlement.
'Writing memos is cheap,' he says, whereas 'writing software is a whole lot harder.'" Bullshit I say, do you have any idea how many hours that can be wasted writing a memo.
"As a user who has had to endure every application being a web application, even if it never needed to be"
The whole reason web apps took off IMHO was because distributing these big apps, both stand-alone and C/S was difficult and was requiring a degree of coordination that was difficult to pull off. Anybody who did C/S apps and tried to make sure all the Windows clients out there had a consistent ODBC driver will tell you what a pain these things are (plus these types of apps tended to be 2-tier, which is harder to scale than a 3-tiered app).
Web apps for all their flaws got around the entire software distribution issue and has allowed people to cut costs by allowing a more rational back-end intrastructure. While some apps suffered, overall, people like them because web apps tend to work in a very consistent way. AJAX is simply restoring the balance by allowing more complex UI's to be distributed centrally. Personally, I think its a bit of a fad, but it will probably have a long-lasting impact on people's expectation of functionality.
You were mistaken. Which is odd, since memory shouldn't be a problem for you
"and a .NET runtime in the browser"
.net runtime works in firefox on the mac or linux and then we'll talk. Until then, you bear the mark of somebody who just doesn't get it.
Just what we want. A non-portable solution that only works in Windows in IE.
Great solution.
I'll bet you think everybody should install the jet engine on their desktop, because its so fucking standardized. Whee! Throw whatever MS wants onto your desktop and make sure the next application crashes because of version incompatibilities. What a terrific idea.
Let me know when the
Unfortunately, I just can't see an Ajax version of MS Office products taking off. An Ajax-based document retrieval system implemented on a network could work, though.
Sad, really.
Jeremy
I hope you're not one of those who count HTML and CSS as "languages"...
I coded -- and still code -- in more languages than that even before my company decided to label me as a "Web Developer" for working on web-enabled applications. That "age of simple web pages" that you speak of was the time when Webmasters were just that, and nobody thought of considering them "developers". I still do not consider making web pages "software development" as such, but more like User Interface implementation. Multi-tierred, full-featured, web applications are another matter.
-dZ.
--
"There can be only Juan!"
- Juan McCloud from the Clann McCloud, El Highlandero.
Carol vs. Ghost
If Microsoft has suddenly realised that they need to 'exploit' AJAX, great. Make it easy to code. I've been looking at Atlas (atlas.asp.net) and I am unimpressed with the difficulty of getting it working for my application. MS either needs to get better documentation out there, or rethink the framework.
I've also been looking at OpenLaszlo (Openlaszlo.org) and although it is designed for a much jazzier UI than I need, it might do the trick for me. I'm still pondering about whether I want to deal with the Tomcat/Java dependency on the server or not...
My last option if I want to implement a bunch of AJAX behavior is to write a bunch of JavaScript routines myself. I did this for my last project, which is OK, but I feel sorry for the next web developer who comes along and has to maintain that application.
I'm leaning towards Laszlo, just because my development timeframe is very short (hey, what else is new?)
I actually got a BSOD the other day (XP Professional on my work laptop) - no idea why. I must admit it's the first in a while, but they do still happen.
What a long, strange trip it's been.
Dictionary.com weighs in thusly:
Usage Note: Momentarily is widely used in speech to mean "in a moment," as in The manager is on another line, but she'll be with you momentarily. This usage rarely leads to ambiguity since the intended sense can usually be determined on the basis of the tense of the verb and the context. Nonetheless, many critics hold that the adverb should be reserved for the senses "for a moment," and the extended usage is unacceptable to 59 percent of the Usage Panel.
Has Bill Gates ever architected or implemented any code at Microsoft? He's known to have bought BASIC and DOS pretty much done and spent his time peddling it, struggling to make deals in the beginning, and when those deals came through he had a heck of a lot more to deal with on the business side of Microsoft. When did he ever have time to implement any code - especially after he scored that deal with IBM? Also by then Microsoft was busy licensing BASIC left and right, and started acquiring other companies to diversify their product offerings as soon as they gained some success. I'm not knocking Gates, but really - how much does he really need to know about the details of writing a class to decide "AJAX good, posting back then reloading the entire page bad?"
Being technically savvy when it comes to decision making at the exective level doesn't mean you have to know how to properly allocate memory and implement proper thread management - it requires a basic knowledge of the benefits and drawbacks to each technology, and quite often you'll be referring to your department members for the nitty-gritty technical details and advice. If you're, say, a VP of development (in a reasonable-sized company) and are spending your time implementing a data abstraction layer, you really ought to either not be a VP, or you need to hire someone else to be the VP and go back to being a coder.
So I think AC has hit the nail on the head with that post. Having execs at Microsoft code would be a colossal waste of time and money. What their execs DO need to do is a) take input from engineers much sooner b) start listening to customers again and c) don't shoot the messenger (the engineers) when they tell you that you're making the wrong decision or that the company needs to change direction with the industry.
The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
They won't happen in Vista - you'll get the "Red Screen of Death" because when Microsoft finally got sick of the BSOD jokes they had to do something about it. ;-)
In all seriousness though (actually the RSOD thing is real, the untrue part above is the rationale for it) WinXP can and does BSOD. It doesn't happen for "Floppy not found" or "reinsert CD" crap, but "IRQL NOT LESS OR EQUAL" BSOD messages stemming from a damaged (or simply buggy) driver, flaked-out motherboard, bad memory, or even viruses still do occur. Microsoft has made great strides in improving Windows' ability to handle errors but it still has a long way to go (hence the rumors you read online about Microsoft switching to a BSD-like architecture after Vista, I have no idea how true or untrue that is).
The Christian Right is Neither (Christian nor right). See: Matthew 23, Matthew 25, Ezekiel 16:48-50
"3, Insightful"? How 'bout "0, Uninformed"? The crimes laid out in Thomas Penfield Jackson, U.S. District Judge's COURT'S FINDINGS OF FACT are criminal under any reasonable legal system, including those of a 'truly free society'. There is an old saying: "your right to swing your fist ends at the tip of my nose" that is applicable. 5-year perspective on the case is interesting. Microsoft regularly flexes their patent muscle by refusing to grant use of patents it owns to competitors. E.g. Bill Gates himself has turned down patent licensing requests for use of Microsoft patents proposed as IETF standards. (google Microsoft IETF patent or read this) Their anti-competitive practices most certainly do involve patents. Patent abuse is even an incriminating component of the above FINDINGS OF FACT. And Microsoft's abuses go far beyond those discussed in the FINDINGS OF FACT; see http://kmfms.com/whatsbad.html.
Make 'em pay! http://Payola.org #include "stddisclaimer
Microsoft pioneered this whole way of thinking
The earliest example that I've noticed of "ajax"-like functionality was on Amazon.com. When you vote on comments for a product, there's a javascript snippet that communicates with the server, using a hidden image object. No XMLHttpRequest object necessary.
While it was a good idea, what doomed Microsoft's effort was that they implemented it as a feature unique to only their browser, based on ActiveX.
It wasn't until after the Mozilla team implemented XMLHttpRequest that it became widely used. So, all this talk which implies that Microsoft is responsible for AJAX's popularity today is hogwash. They invented it, but it took others to make it cross-platform and useful.
O lord, bless this thy holy hand grenade, that with it thou mayest blow thine enemies to tiny bits, in thy mercy.