Assembly signing changes in VS 2005

Bruce has a post (which I verbatim here) highlighting one of the small changes in Whidbey which will make life easier for a whole bunch of us.

In Whidbey, the name of the .snk file is included as a property on the project and is picked up my msbuild when compiling.  To get to it:

  • Right-click on the project in the solution explorer and select Properties.
  • Click on the Signing tab.
  • Provide the path to the .snk file.

How is it done today? As Bruce reminds us (and I verbatim here) signing assemblies in VS2003 and earlier meant adding attributes to the AssemblyInfo file, something similar to the following.

[assembly: AssemblyKeyFile(“..\\..\\ObjectSharp.snk”)]
[assembly: AssemblyDelaySign(false)]

But there are a couple of issues associated with these attributes.  First, the path to the key file is actually embedded in the assembly.  If you use a full path, it is possible that information about your machine (servers and directories, for example) can be easily extracted by using ildasm.  Not overtly dangerous, but not the best situation.

Also, providing a relative path to the key file is annoying.  I’m sure most of you have dealt with the trial and error of finding exactly where the .snk file is relative to the compilation directory.

Finally, because compilation cleanliness is important to all of us, keeping the AssemblyKeyFile attribute in AssemblyInfo generates a warning message.  Not always critical, but annoying.

Signs you are becoming a geek!

Thanks to Wai for pointing me to this one. Before we go on, I would like to point out that there is nothing wrong in being a geek.

Signs you are becoming a geek:

  1. Monitor tan.
  2. Before heading to the bathroom you inform your friends you’re off to download and log out.
  3. You become physically ill at the mention of the RIAA, and visibly excited at the mention of object-oriented programming.
  4. You have a poster on your wall of the Linux penguin.
  5. You’re mad because all your friends got goodnight kisses after prom, but your sister just slugged you in the arm and said “Thanks, bro”.
  6. You think having twice as many computers as there are people in the house is a bare minimum.
  7. You feel that living life like the movie “tron” wouldn’t be so bad.
  8. In your little black book, you list (both) the girls you know in order by IP address.
  9. You can type faster than you can speak
  10. When your shrink says “Mother . . . ” you say “ . . . Board.”
  11. If, by some happy accident, you someday have kids, you want to name them after your favourite fonts.

Fastest way to build 10K records on a Device?

Tom Krueger is a Microsoftie and spends a lot of his time dreaming up and working on Smart Clients. He was a very quirky and informative post on the Fastest way to build 10,000 records on a Device?

  1. Tie one end of a piece of string to the WiFi antenna, if your device has one, and tie the other end to a tin can. Enumerate the 10,000 records on your desktop computer and verbally dictate each record into the tin can.
    • Performance: slow;
      Success rate: zero.
      Implementation: easy peasy lemon squeezy.
  2. Purchase a flock of carrier pigeons, 10,000 in number. Hand-write each record onto a piece of paper and attach to the bird. Aim the bird at the device and release.
    • Performance: slow:
      Success rate: zero.
      Implementation: possibly very messy.
  3. Move to SQL Server. RDA and Merge Replication are your friends.
    • Performance: good!
      Success rate: >1,000,000,000 pigeons.
      Implementation: well documented.
  4. Hire 10,000 people and get them to memorise one record each. Get them to follow the device wherever it goes.
    • Performance: In theory, should outperform Oracle for record access. In reality, you’re statistically likely to get a few “slow” records
      Success rate: Depends on the demographics of your recordset.
      Implementation: costly, just like Oracle 🙂
  5. Populate the DataSet on the server and transmit as a DataSet object using Web Services ().
    • Performance: suffers from a serialisation/serialisation overhead which is costly with 10,000 records.
      Success rate: Jackpot, baby!
      Implementation: piece of cake.
  6. Re-architect your solution. No one should need 10,000 records on a device. Don’t even think about loading that into a ListView either 🙂

Lucky Dad's 8000 miles away!

Karan pointed me to this one on Yahoo and the boy am I glad that my dad is 8000 miles away in India! :o) Though I am a vegetarian, this could easily enough be “Paneer”. :o)

BLUEWELL, West Virgina – A family meal erupted into a gun battle after a father and son clashed over how to cook chicken. The two men argued Sunday over the best way to prepare skinless chicken for dinner. “It started out as a physical confrontation, but it escalated until both of them were shooting at each other,” Detective Sgt. A.D. Beasley of the Mercer County Sheriff’s Department said Monday.

Beasley said each man fired a .22-caliber handgun at the other. Harley Shrader was struck by a bullet that went through the upper part of his right ear and lodged in the back of his head. He was treated at a hospital and released. The elder Shrader was not injured.

Jackie Lee Shrader, 49, was charged with malicious wounding and wanton endangerment. Harley Lee Shrader, 24, was charged with wanton endangerment.

Why are T, K, V such a hot topic in Generics?

Is something as simple as do the T, K and V parameterised types make sense versus mnemonics in Generics a hot item to talk about? You bet, people cannot seem to get enough of it.The crux of the issue here is do T, K, V, etc in examples like List<T>, IDictionary<K,V> make sense versus something like List<Item>, IDictionary<Key, Value>. Apparently both sides make seemingly valid arguments and from what I gather, its also a hot discussion topic within Microsoft. There have been examples that point out that c# is supposed to be easy to understand and not messy as shown in this example. But in the long discussion here are the main points in favour of descriptive names:

  1. You can tell at a glance what each type parameter is used for.
  2. As with method parameters, so with type parameters: descriptive names are useful and helpful and mean you have to memorise less.
  3. To dispel the mistaken notion that a type parameter is simply a placeholder that doesn’t “mean anything”.
  4. Saying of List<T>: “it’s a list of some type T” may work, but other similar situations don’t work (e.g. Point<T>)
  5. Even List<T> isn’t as simple as people think it is; “T” is never really OK.
  6. T, V, K etc. may (just) be OK for native English speakers, but is not OK for those whose first language is not English.
  7. If you choose the first letter of each word as your type parameter name (e.g. K, V), what if two or more words start with the same letter ?
  8. Using descriptive names reduces the incidence of name clashing where two or more “T”s mix in the same lexical space.
  9. You don’t have to look up what “T” means virtually every single time you come back to use a generic class, and you don’t have to bear it mind while you’re using the class (and why should you ?).
  10. The case for using of single letters gets worse as more type parameters are added to generic classes in the future.
  11. Using “T” leads you to then use “U” (as in the Converter delegate). “T” may stand for Type, but “U” doesn’t stand for anything. So the single-letter convention is inconsistent as well as unhelpful.
  12. The brain isn’t overloaded having to remember what “T” and “U” stand for in more complex situations where generic types are mixed (e.g. in List<T>’s ConvertAll method).

I personally don’t particularly care, though given a choice, I prefer the <T,K,V> but that is probably because what I am use to seeing. We of course will know the outcome of this when Whidbey ships. 🙂

Top 10 Bush Tax Proposals – John Kerry on David Letterman

Ah, the political heat is in the air here in the US and the mudslinging is in full swing. Here are the Top 10 Bush Tax Proposals:

10. No estate tax for families with at least two U.S. presidents.

9. W-2 Form is now Dubya-2 Form.

8. Under the simplified tax code, your refund check goes directly to Halliburton.

7. The reduced earned income tax credit is so unfair, it just makes me want to tear out my lustrous, finely groomed hair.

6. Attorney General (John) Ashcroft gets to write off the entire U.S. Constitution.

5. Texas Rangers can take a business loss for trading Sammy Sosa.

4. Eliminate all income taxes; just ask Teresa (Heinz Kerry) to cover the whole damn thing.

3. Cheney can claim Bush as a dependent.

2. Hundred-dollar penalty if you pronounce it “nuclear” instead of “nucular”.

1. George W. Bush gets a deduction for mortgaging our entire future.

Yes, the GC *can* leak memory – there I said it!

Shawn Van ness has an excellent article, that spells out how event listeners can cause memory leaks, yep even when running in managed code. Steve Main sums it up pretty well:

The main issue is the “lapsed listener” problem. This occurs when objects subscribe to events and subsequently get out of scope. The problem is that the event subscriber doesn’t get garbage collected because the event is still holding a reference to it inside of the event’s invocation list. The event subscriber is still considered reachable from the GC’s point of view. As such, it doesn’t get collected until the event goes out of scope (which is usually at application shutdown) which means that the event subscriber is effectively “leaked”.

Moral of the story: when you implement an Observer pattern, it’s important to consider the relative lifetime of events and subscribers. If implemented naively, you’ll end up having objects that live a lot longer than you think they should. Unsubscribe() is your friend.

As Fabrice writes, .NET’s delegates and events are implementations of the Observer Design Pattern . But the current problem is one more reminder that Design Patterns should not be applied blindly.

If you write the following code, you’ll see that the object instance gets correctly released and collected:

StoopidObject object = new StoopidObject();
If you write the following code instead, although there is no apparent reference kept to the Observer, the Observer instance will not be released:
Observer observer = new Observer();
Subject subject = new Subject();
subject.SomethingHappened += new EventHandler(observer.subject_SomethingHappened);


Guys from around the community came with various solutions. They call them Weak Delegates. Follow the links to learn more:

More Information:

Google picking on Microsoft?

NY Post reports that Google is working on a new browser (as reported on /. if you check among other domains, they are taken by google). Based on the half-dozen hires in recent weeks, Google appears to be planning to launch its own Web browser and other software products to challenge Microsoft. Google hired Joshua Bloch, one of the main developers for Java, from Sun. They also hired four people who worked on Internet Explorer. One of them, Adam Bosworth, is credited with being a driving force not only behind IE, Access too. Most recently, Google grabbed Joe Beda, the lead developer on Avalon.

Other blogs and analysts believe Google is working on an instant-messaging program and a Web browser to challenge Internet Explorer. The strategy is supported by other clues as well. Last month, Google hosted Mozilla Developer Day on its campus, a gathering of programmers that work together to build sequels to Mozilla, which could be shaped to Google’s specifications and be embedded with Google search, Gmail free e-mail and other Google applications.

Visual History of Spam

 Microsoft employee Raymond Chen (who seems to have loads of time on his hand) has compiled unique evidence of the explosion of spam: he’s saved every spam message and virus-laden e-mail he’s received at work since 1997. Not willing to stop there, Chen graphed the spams and viruses to create a cool visual representation of one man’s malicious traffic. Cazh1 on the other hand has another take on the whole History of Spam thing – the impact of spammers changing message formats to get past the spam filters.

An alternative to Windows?

Well after an interesting post on Forbes view on Linux and Microsoft and Karan’s lash back on the same I am back with more. Do I think is there an alternative to Windows? Absolutely! Is it for everyone? Well, if you believe the article in MIT’s Technology Review then probably yes.

Microsoft still commands 94 percent of the market for PC operating systems. But Linux is gaining fast. In Toronto, customers can walk into the world’s first retail Linux store,, and walk out with a Linspire workstation for as little as $222. Over the last three years, the fraction of home and office PCs powered by Linux has roughly doubled, to almost 3 percent, and it’s set to double again before the end of 2005, according to market research firm IDC. Linux’s market share has already surpassed Apple’s!

But whatever Microsoft does, the for home or office users, open source offers a range of free, often innovative desktop applications that aren’t available for Windows.

Exactly how many of the people junking their old Windows machines will actually switch to Linux boxes? That depends on which group you’re talking about.

  • First there are the casual home users: those who use their computers mainly to surf the Web and exchange e-mail and the occasional digital photo with friends and relatives. “They are going to look for the lowest-cost machine available to them,” says Dan Kusnetzky, vice president of systems software research at IDC. Several existing Linux-based programs, such as OpenOffice, “would be more than sufficient in that category,” he says.
  • Another group ripe for migration to the Linux desktop is corporate employees who use their office computers for just one or two tasks throughout the day. “Help desks, call centers, IT departments, receptionists, shipping and receiving—jobs where all somebody needs is a browser and Web-based e-mail—that one-third of your people could go to Linux today,” says Stuart Cohen, CEO of the Open Source Development Labs. And that’s a substantial one-third: U.S. call centers alone employ 2.9 million agents.

So what does it mean for Windows and Microsoft? Well not much in the sense that all the arguments above make perfect sense but there is another side to it that one needs to consider. In public statements, Microsoft officials still downplay the open-source threat to Windows and Office. The company’s actions, however, bespeak a much higher level of concern: it has begun slashing prices and even mimicking the open-source movement’s own tactics, opening up portions of its closely guarded code to outside inspection.

In Thailand, for example, where Linux PCs from Thai firm Laser Computer are the top-selling brand, Microsoft last year created stripped-down, Thai-language versions of Windows XP Home Edition and Office XP and offered them as a bundle for about $37—about one-sixteenth of their combined U.S. retail price. The company is trying similar markdowns in Malaysia, another Linux stronghold, and is considering offering cut-rate software packages in other developing countries.

While there’s no talk of Thai-style price reductions for Windows software in the United States, does offer a PC with Windows XP Home Edition for $298, and Microsoft has launched a major publicity campaign asserting that the cost of retraining and support means switching to Linux and open-source applications is actually more expensive than sticking with Windows, especially for large organisations. Microsoft’s recent moves add up to an acknowledgement that the company must now compete—and perhaps even coexist—with the open-source movement. “There is no one correct way to create software,” acknowledges Jason Matusow, who directs Microsoft’s Shared Source Initiative, a two-year-old program under which more than a million software developers and corporate customers can view—but not copy or redistribute—the code behind Windows and 16 other programs.

Open-Source Détente? While the anti-Microsoft belligerence is widely shared in the open-source community, others in the movement foresee an eventual accommodation between the two sides, especially as Linux wins major customers in government, education, and developing countries. Microsoft is “too well run, too smart a company,” says Cohen of the Open Source Development Labs. “They will look at the market-share data, and at some point the needle will hit a number where they’ll say, ‘This is big enough that we are not going to fight it; we are going to participate.’ Exactly how, I think they are still trying to figure out.”

Might Microsoft produce versions of Office that run on Linux, as it did for Apple’s Macintosh OS X? Will it suddenly open-source the code for major portions of its operating system and office applications and fall back on income from its server software, its home entertainment products, its online services, and the network-based services in which it has been investing heavily? The company says it has no such plans, and outcomes like these are hard to imagine, given Microsoft’s heavy financial dependence on Windows and Office. But the company’s current course—staking much of its future on the next version of Windows, when some of the improvements being discussed are already part of free open-source programs such as Dashboard—has its own risks.

So, what do the real users say and feel? Here are some quotes on the discussion (from the same person):

  • Linux attempts to be easier, but in real life stuff goes wrong, especially with regard to hardware compatibility. The Linux world has to conform to a Windows hardware world, which means they are always playing catchup with regard to writing drivers and supporting devices. For example, printing on Linux is crazy and every program you’ve got will handle it with a different interface and through a different mechanism.
  • Count the number of files in /etc and /var and see how that number compares to the number of GUI configuration tools there are. The GUIs are just slapped on top of the ancient UNIX architecture. We have to pray nothing goes wrong and all our problems can be handled with pretty GNOME tools. Eventually you need to get in the guts of UNIX. Windows has the advantage of having been developed more recently and all administration can be done from a smaller, more central and consistent, set of tools.
  • If Linux ever pulls past Windows and becomes a source of really significant innovation, I’ll eat my words. But I really doubt it will happen. (The fact that people took Torvald’s gift to the world of a free modern kernel and the best thing they could think to do with it was run GNU on top doesn’t suggest much desire to blaze any truly new trails.) Most importantly, there’s human nature: Whenever somebody comes up with a truly novel, paradigm changing idea, they seem to suddenly become capitalists. Everybody in computer science is a hippie until they get a patentable idea.
  • I am somehow never amazed at the attitudes and purported beliefs of Linux advocates. I would personally love to see a real, viable competitive threat to Windows. After all, I’m a firm believer that competition brings about the most innovation at the best price for the consumer. However, to tout Wal-Mart Linux boxes as viable options to Microsoft Windows/Office equipped PCs is to admit that you do nothing valuable with your PC.

"Thanks, Linux" says Microsoft?

As Forbes writes (which I verbatim here), Is Linus Torvalds secretly working for Microsoft? That sounds crazy until you consider that lately, the free operating system he created, Linux, has been helping Microsoft close deals. Consider the deal that Microsoft snagged with the London borough of Newham, announced in early August. Looking to overhaul their computer systems, the Brits originally planned to dump Microsoft’s Windows and switch to open-source programs, including Linux. But when they commissioned a study to evaluate costs, they found it would be cheaper to stick with Windows. So they signed on for a 10-year deal. “We think the savings following the Linux route would have been about half what they were when following the Microsoft route,” says Richard Steel, Newham’s director of information and communications technology.

How could “free” Linux cost more than Windows? First of all, Red Hat the leading Linux distributor, now charges $799 to $2,499 for each server running Linux. That’s not for the software, mind you, but for “maintenance.” Semantics aside, you’re paying for Linux. Add in the cost of retraining users and IT staff, rewriting applications to run on Linux, and the cost of paying separately for programs like application servers, Web servers and directories (which come bundled with Windows). You also may need to pay consultants to stitch the pieces together, and you might need to buy insurance to protect you against lawsuits over intellectual property rights. (One outfit hawks such policies for $150,000 year.)

So one of the question that comes up is how long will it take Linux to catch up with Windows in terms of features, device driver support and breadth of applications?

  • Torvalds’ Linux kernel (the core of the operating system) is 13 years old. Other parts of the operating system are even older. Even if Linux does catch up, will it matter? If the Linux camp simply manages to create an operating system that does roughly what Windows does for roughly the same price, what will be the point?
  • Rivals like IBM and Novell are pumping millions of dollars and mountains of brainpower into development of a commodity operating system – they are re-inventing the wheel.
  • Meanwhile, Microsoft is climbing “up the stack,” growing stronger in Web applications and business applications, using its server operating system as a launching pad to push into adjacent markets just as it used its PC operating system to take over the market for desktop applications.
  • Forrester Research says 56% of companies now cite Microsoft’s .NET technologies as their primary development platform, while 44% use J2EE as their building blocks. That smaller portion is shared by BEA, IBM, Oracle and Sun.

Microsofties say they were more worried about Linux a few years ago, when it was a truly free program, spreading on its own, from user to user, like a virus. Now that Linux costs real money, and is sold by buttoned-down blue suits from IBM and Novell, Microsoft feels more confident. Microsoft has beaten these guys, badly, in operating system wars before.

So whats in the future?

  • IBM and its Linux allies have more luck when they use Linux to attack each other rather than Microsoft. HP, IBM and Sun spent 20 years building a Unix market. Now they’re lobbing Linux grenades into each other’s camps, stealing Unix customers from each other. In the end this kamikaze warfare will destroy all the profit in this market, as fat-margin Unix boxes are replaced by low-margin Linux systems. Worldwide sales of Unix servers have already plunged from $26.5 billion in 2000 to $16.4 billion in 2003, according to market researcher IDC.
  • Microsoft too is losing sales to Linux. By 2008, sales of Intel-based servers running Linux will approach $10 billion, versus $22 billion for Windows, IDC reckons. And, yes, as Newham proves, Linux is forcing Microsoft to slash prices and to work harder to keep customers.

For years customers griped that Microsoft was gouging them. Now, thanks to IBM, Novell, and Red Hat, customers are learning what it is that Microsoft charges them for–upgrades, patches, research and development, indemnification, integration of disparate programs. Some, like the folks in Newham, are discovering that Microsoft isn’t ripping them off at all.

Another day, another security update (this one is Critical though)

Microsoft released today another critical security update – Buffer Overrun in JPEG Processing (GDI+) Could Allow Code Execution (833987). A buffer overrun vulnerability exists in the processing of JPEG image formats that could allow remote code execution on an affected system. Any program that processes JPEG images on the affected systems could be vulnerable to this attack, and any system that uses the affected programs or components could be vulnerable to this attack. An attacker who successfully exploited this vulnerability could take complete control of an affected system.

If you have Windows XP SP2 installed then you are fine, but if you installed Office (or any of the other products affected by this – a pretty long list) after you installed XP SP2 then you have this vulnerability.

Mitigating Factors:

  • An attacker who successfully exploited this vulnerability could gain the same privileges as the user. Users whose accounts are configured to have fewer privileges on the system would be at less risk than users who operate with administrative privileges.
  • The vulnerability could only be exploited by an attacker who persuaded a user to open a specially crafted file or to view a directory that contains the specially crafted image. There is no way for an attacker to force a user to open a malicious file.
  • In a Web-based attack scenario, an attacker would have to host a Web site that contains a Web page that is used to exploit this vulnerability. An attacker would have no way to force users to visit a malicious Web site. Instead, an attacker would have to persuade them to visit the Web site, typically by getting them to click a link that takes them to the attacker’s site.
  • Windows XP, Window XP Service Pack 1, and Windows Server 2003 are the only operating systems that contain the vulnerable component by default. By default, Windows 98, Windows 98 SE, Windows Me, Windows NT 4.0, and Windows 2000 are not. However, the vulnerable component will be installed by any of the programs listed in the affected software section of this bulletin on these operating systems and you should install the appropriate security update for those programs.

Workarounds: Read e-mail messages in plain text format if you are using Outlook 2002 or later, or Outlook Express 6 SP1 or later, to help protect yourself from the HTML e-mail attack vector.

More Information:

Dell Busy in India?

This is really funny and I am probably getting someone in trouble. I get pretty good logs for this blog, who gets on it from where, how long, etc. you know the drill. If your hold time with Dell Support (most of which is outsourced to India) is longer than normal then it is probably because of me *grin*. As you can see in the image below, seems like those guys are just too busy reading my blog and at last count had spend close an hour and a half here! You can click on the image to see the full size.

Paris Catacombs – You have no idea what's down there

Karan has a very interesting post on the Paris Catacombs which was inspired by a story in the Guardian which stated the French police finding a real underground full-sized cinema screen, projection equipment, and tapes of a wide variety of films, including 1950s film noir classics and more recent thrillers. A smaller cave next door had been turned into an informal restaurant and bar. “There were bottles of whisky and other spirits behind a bar, tables and chairs, a pressure-cooker for making couscous” the police said. The whole thing was running off professionally installed electric and phone systems. Three days later, when the police returned accompanied by experts from the French electricity board to see where the power was coming from, the phone and electricity lines had been cut and a note was lying in the middle of the floor saying : “Do not try to find us.”

The catacombs in Paris

Can A University Ban WiFi Networks?

Techdirt writes on how University of Texas is having WiFi Blues. Can’t they run this on a different frequency and allow their students to run it on a different one? Why does Bush country want to do everything the difficult way and different? 😉

Slashdot is running a story about The University of Texas at Dallas banning independent WiFi networks to avoid interference with the university-run WiFi network. There’s just one (big) problem. The FCC has made it clear that only they have the right to regulate unlicensed spectrum. That was the point of the ruling they made just a few months ago telling airports they can’t stop anyone from setting up WiFi networks within the airport. At the same time, though, this does demonstrate some of the issues with unlicensed spectrum. As great as it’s been for generating massive growth for things like WiFi, interference is still a problem – and one that not enough people have paid attention to.

More Info:

Preventing write operation to USB storage devices in Windows XP

This is an interesting factoid that Microsoft added as part of Windows XP Service Pack 2 that lets users prevent data from being written to USB devices (via a registry key). But this is just the start, Longhorn is supposed to add more comprehensive “features”.  Much has been made of the security risks posed by portable storage devices such as USB keys, or flash drives, music players like the iPod, and other small gadgets that can store vast amounts of data. Some fear that such tiny devices can be used to quickly copy sensitive data off business PC hard drives, or to introduce malicious software onto corporate networks.  In the next version of Windows, Microsoft will give big companies an easy way to block use of such devices, while making it easier for consumers to connect their home systems to them.

How to disable a USB device then? Never thought you would ask *grin*. Microsoft calls this “Controlling block storage devices on USB buses”. This feature provides the ability to set a registry key that will prevent write operations to USB block storage devices, such as memory sticks. When this registry key is enabled, the devices function only as read-only devices. You can implement this setting as part of a security strategy to prevent users from transporting data using these devices.

Who does this feature apply to?

  • Users who do not want data to be written from their computer to a USB storage device.
  • IT professionals who want to implement organisation controls over the use of USB block storage devices

What settings are added or changed in Windows XP SP2?

  • Setting Name: WriteProtect
  • Location: HKEY_LOCAL_MACHINE\System\CurrentControlSet\
  • Default Value: DWORD=0
  • Possible Values: 0 – Disabled, 1 – Enabled

More Information:

Selling my Car

I want to put up my 1998 Honda Accord EX on the market and if any of you are interested in buying an excellent vehicle then please leave me a comment here.

I have brand new tires and brakes on the car. I also have all service records (Major, Minor and Oil Changes) and have kept the car in brand new condition both from the outside and inside with regular and timely servicing. The car looks great and is in excellent mechanical condition and needs no reconditioning. The engine is good with no leaks, etc. and the paint is glossy with the interior in a excellent condition too. This car has a clean title.

Here are some of the particulars:

  • Body: 1998 Honda Accord EX 4 Door Sedan
  • Engine: 4 Cylinder 2.3 L VTEC
  • Transmission: 5 Speed Manual
  • Mileage: 82K
  • Equipment Features:
    • Air Conditioning
    • Power Steering
    • Power Windows
    • Power Locks
    • Title Wheel
    • Cruise Control
    • AM/FM Stereo
    • CD Player
    • Premium Sound
    • Dual Front Air Bags
    • ABS (4 Wheels)
    • Power Seat
    • Moon Roof
    • Alloy Wheels

Asking Price: $8,650 (Or Best Offer)

Below are some pictures from various angles of the car including the inside (if you cannot see the pictures then scroll down a bit). You can click on each to see higher resolution image.