With this phone, I have transitioned from being a classic PDA-phone user, to a socially-connected phone user. Let me elaborate on this.
In the Beginning
Historically when phones started out, they simply make phones calls, and little else. Most come with a limit of 50 contacts in their address book.
Then phones started to get 'smart'. The first attempt was to enable PDA features into it. This includes applications like appointments, to-do lists and calculators.
For a short while Palm had a good PDA combo: their phone features were adequate, and combined with their rich base of PDA applications, their PDA phone implementation was infused with fun and useful apps written by the community previously written for the classic Palm 3 and V series.
Nokia tried a different tactic, and invented the phone as a portable game console. It even had 3-d gaming capabilities. The idea was good, but it remained a niche to this day. My take is that a game console is only as successful as the multitude of games available for its platform. It's a chicken-and-egg problem that if Nokia doesn't resolve soon, we might see Sony Ericsson merge their PSP into their phones one day. That is a strategy that is almost guaranteed to succeed.
The Phone as a Corporate Device
For all the development on phones as a PDA-phone, it remained very much a personal telephony device. I would say that it was BlackBerry who brought the phone to its next evolution as an enterprise communication device. With their push-mail technology, people can now send and receive mails from their corporate mail accounts easily and quickly. Today, BlackBerry remains a popular phone for mobile corporate users. Microsoft-powered phones also became a leading player in this arena, but I won't go further here.
Evolution on the Personal Phone
Evolution on the personal telephony device did not stagnate however. Sony merged their Walkman audio player into the phone, and it was very successful for a period of time, until Nokia outran the innovation with their Music Express series. Recently GPS became a standard-issue on high-end phones, so people started to treat their phones as a cheap replacement for the tradditional car GPS device.
Where it is Now: Getting Connected and Looking Pretty
Apple lead the charge with its iPhones. The cool factor is overwhelming: the operating system is incredibly beautiful with its huge screen, bleeding edge multitouch technology, and amazingly designed graphics interface. With a screen this big, surfing the Internet is a lot more practical, and that encouraged people to demand more Internet based applications. Looking at the current phenomenon on the Internet, that will be social network applications like Facebook, Twitter, and instant messaging.
What is HTC Hero and Android?
HTC Hero runs Android, an operating system that is an alternative to the only-for-me iPhone OS. Android is created by Google, and is available for any phone manufacturer to power their phone hardware.
The game for phones manufacturers used to be all about designing coolness in the phone's physical shell. The new fight is now on developing visually appealing and socially relevant applications for the connected individual. While not everyone is willing to subscribe to 3G technology, free public Internet access can be had in increasingly many places.
Getting out of Scope
I meant to talk more about my experience with the Hero, but perhaps I'd do that in the next post...
Could not initialize the browser's security component. The most likely cause is problems with files in your browser's profile directory. Please check that this directory has no read/write restrictions and your hard disk is not full or close to full. It is recommended that you exit the browser and fix the problem. If you continue to use this browser session, you might see incorrect browser behavior when accessing security features.The simple cause is that some (or all) of the files and folders not given full control in Windows 7 (it'll work in XP though). All you need to do, is to give the Thunderbird folder full access for all users.
That should do it.
Ref
http://mcgrath.ca/2008/06/15/could-not-i
A little wiser and less lazy now
I try to hide information about my web server as much as possible. On the Apache, the first thing to do is to turn off
ServerSignature - add that to your httpd.conf line.With that disabled, whenever you try to access an invalid page, the error page does not include the server info at the page footer.
But that's not all
Apache also leaks out the same sensitive info in its headers! That's pretty hard to spot on a typical browser, but if you use FireFox with Live HTTP Headers installed, it's all very clear.
Add this line to your httpd.conf:
ServerTokens ProdThat should do it.
Further reading
http://httpd.apache.org/docs/1.3/mod/cor
http://httpd.apache.org/docs/1.3/mod/cor
For the past 4 months, I can't recall a time when I used Dreamweaver. Visual Studio has quietly won me over with its 1 low-key feature: abililty to auto-justify the html page.
My recently completed project used a heckofalot of Ajax and CSS stuff. As I got used to handcoding the stylesheets and jQuery scripts, the convenience of a wysiwyg html editor is no longer necessary. Rather, I needed an editor that can justify the xhtml pages - and in the process organise my coding mess. Visual Studio (Express) did that reasonably well. In fact VS 2008 does this even better.
Well done Microsoft. One up for you there!
When SQL Server Express 2005 came out, it was a happy thing. I could install the engine installer from one file, and then the management console from another.
Then SQL Server Express 2008 came along and confused everyone. There's no longer a separate installer for the management console, and if you really want the console, you need to download the version that packages the engine with it. That's an awfully big file to download, but more than anything it confused the heck out of me when I was trying to find the console installer.
Now Microsoft finally accepted that the Old Way was better, and we can happily select to download just the console, the engine, or both.
Ref:
http://www.microsoft.com/express/sql/do wnload/
Then SQL Server Express 2008 came along and confused everyone. There's no longer a separate installer for the management console, and if you really want the console, you need to download the version that packages the engine with it. That's an awfully big file to download, but more than anything it confused the heck out of me when I was trying to find the console installer.
Now Microsoft finally accepted that the Old Way was better, and we can happily select to download just the console, the engine, or both.
Ref:
http://www.microsoft.com/express/sql/do
I have this 2-3 years old Acer TravelMate 3040 laptop, which worked beautifully with XP in the years when Lisa used it for work. And when netbooks came along I came to own it.

Today I installed Windows 7 RC1 onto the laptop, and here's the rundown:
Installation and Drivers
Installation was so smooth I was pleasantly surprised. I put the installation disk in, answered some installation questions, and went off to play a game (or two). When I returned, the OS was done!
Unfortunately I have no idea how long it took, though if I were to hazard a guess it should be 30-40min.
Driver-wise, I need not visit Acer's driver site for installation. Windows 7 seems to know enough of my hardware, including the CPU, sound, and the wireless.
So far so good!
Wireless and networking
Not much to say here. They found my SSID. I punched in the password, and I was in
Performance
My Acer has a dual-core with 1.5 GB RAM, and despite the crappy Intel 945 Express chipset, Aero Peek was enabled. What is Aero Peek? It's that funky transparent-feel that is available since Vista. Only in Windows 7, some useful enhancements were thrown in.
Since I usually do little more than surf around on this laptop, there's not much perceptible difference in the launch and execution speed of the browsers. That I consider to be good - my expectation for Windows 7 on this laptop is to be at least be as fast as XP, and no slower.
Eye Candy
The eye candy is mostly appealing. Frankly after so many years on XP, the change is quite welcome. In particular:
1. Alt-Tab shows me the thumbnail image of the window. If you hold on the tab long enough, Windows hides all other windows and shows the current tabbed window,
2. Try using Windows-Tab instead of Alt-Tab, to flip through the list of opened windows.
3. The taskbar shows only the icons (as an option) of the opened windows. This gives more space to list all the opened windows. If you mouse over these icons on the taskbar, you see the thumbnail image of the window.
Annoyances
I'm writing this post barely an hour after using it. I'm sure there'd be something screwy I'd encounter along the way. But for now, it's all good.
Conclusion
If it's out by then, I'd want it for Christmas.
Today I installed Windows 7 RC1 onto the laptop, and here's the rundown:
Installation and Drivers
Installation was so smooth I was pleasantly surprised. I put the installation disk in, answered some installation questions, and went off to play a game (or two). When I returned, the OS was done!
Unfortunately I have no idea how long it took, though if I were to hazard a guess it should be 30-40min.
Driver-wise, I need not visit Acer's driver site for installation. Windows 7 seems to know enough of my hardware, including the CPU, sound, and the wireless.
So far so good!
Wireless and networking
Not much to say here. They found my SSID. I punched in the password, and I was in
Performance
My Acer has a dual-core with 1.5 GB RAM, and despite the crappy Intel 945 Express chipset, Aero Peek was enabled. What is Aero Peek? It's that funky transparent-feel that is available since Vista. Only in Windows 7, some useful enhancements were thrown in.
Since I usually do little more than surf around on this laptop, there's not much perceptible difference in the launch and execution speed of the browsers. That I consider to be good - my expectation for Windows 7 on this laptop is to be at least be as fast as XP, and no slower.
Eye Candy
The eye candy is mostly appealing. Frankly after so many years on XP, the change is quite welcome. In particular:
1. Alt-Tab shows me the thumbnail image of the window. If you hold on the tab long enough, Windows hides all other windows and shows the current tabbed window,
2. Try using Windows-Tab instead of Alt-Tab, to flip through the list of opened windows.
3. The taskbar shows only the icons (as an option) of the opened windows. This gives more space to list all the opened windows. If you mouse over these icons on the taskbar, you see the thumbnail image of the window.
Annoyances
I'm writing this post barely an hour after using it. I'm sure there'd be something screwy I'd encounter along the way. But for now, it's all good.
Conclusion
If it's out by then, I'd want it for Christmas.
Watching the sneak preview of an upcoming technology (on Youtube), I can't help but lament at how technology is seriously NOT cool here. These engineers at Google live and breathe Geek Stuff every day of their lives, and they have every reason to be god damn proud of who they are (software engineers!)...
Anyway back to the topic: this Google Wave stuff is very exciting - at least it made me look forward to its 'beta' launch. Imagine a communication platform that harmonises all the protocols we've been using - email, IM, Twits (and more of course) - and adds new cool stuff on top of all these: journalling, universal search, rich media support (ie. video, photo, web mashups).
IMHO everyone should watch this demo. I'm interested to know how non techies take to a unified communication protocol...or should I call it a Communication Super Protocol?
Ref
http://www.youtube.com/watch?v=v_UyVmITi YQ
Anyway back to the topic: this Google Wave stuff is very exciting - at least it made me look forward to its 'beta' launch. Imagine a communication platform that harmonises all the protocols we've been using - email, IM, Twits (and more of course) - and adds new cool stuff on top of all these: journalling, universal search, rich media support (ie. video, photo, web mashups).
IMHO everyone should watch this demo. I'm interested to know how non techies take to a unified communication protocol...or should I call it a Communication Super Protocol?
Ref
http://www.youtube.com/watch?v=v_UyVmITi
System.Security.Principal.WindowsIdentit y.GetCurrent().Name returns the userid of the running application, but not the user name. To do that, this code should do the trick:DirectoryEntry("WinNT://servername/usern ame"))
{
string fullName = domain.Properties["FullName"].Value;
}
PHP released a significant update today. They are now at 5.3.0
One of the new features is the introduction of the (much anticipated) namespace support. Yes after all these years of praise and hype, only now does PHP join in the namespace bandwagon! A little late, but better late than never...
Looking at the sample code, I cannot help but be a little disappointed at their code of the namespace seperator. It could have been the popular period (.), or Perl/ C++'s colon-colon (::). But they HAVE to use the /!
I can't help but feel that while it's good to be different (or at least try something different), the choice of separator is not exactly the best choice.
Quite ugly, actually.
Ref
http://sg2.php.net/manual/en/language.na mespaces.rationale.php
One of the new features is the introduction of the (much anticipated) namespace support. Yes after all these years of praise and hype, only now does PHP join in the namespace bandwagon! A little late, but better late than never...
Looking at the sample code, I cannot help but be a little disappointed at their code of the namespace seperator. It could have been the popular period (.), or Perl/ C++'s colon-colon (::). But they HAVE to use the /!
<?php
namespace my\name; // see "Defining Namespaces" section
class MyClass {}
function myfunction() {}
const MYCONST = 1;
$a = new MyClass;
$c = new \my\name\MyClass; // see "Global Space" section
$a = strlen('hi'); // see "Using namespaces: fallback to global
// function/constant" section
$d = namespace\MYCONST; // see "namespace operator and __NAMESPACE__
// constant" section
$d = __NAMESPACE__ . '\MYCONST';
echo constant($d); // see "Namespaces and dynamic language features" section
?> I can't help but feel that while it's good to be different (or at least try something different), the choice of separator is not exactly the best choice.
Quite ugly, actually.
Ref
http://sg2.php.net/manual/en/language.na
What is CRAM-MD5?
Simply put, it's yet another 1-way hash algorithm. It's popular on *NIX and *BSD machines, so this form of authenticate is pervasive, and naturally the algorithm for it can be found on popular languages.
Show me the code!
Here you go:
That's it?!?
What do you expect? It's Perl ya-know? But seriously, it's a simple but effective method.
Ref
http://www.terrencemiao.com/Webmail/msg0 0567.html
http://www.scconsult.com/bill/crampass.p l
Simply put, it's yet another 1-way hash algorithm. It's popular on *NIX and *BSD machines, so this form of authenticate is pervasive, and naturally the algorithm for it can be found on popular languages.
Show me the code!
Here you go:
$encPass = hmac_md5_hex($ticket, $password);That's it?!?
What do you expect? It's Perl ya-know? But seriously, it's a simple but effective method.
Ref
http://www.terrencemiao.com/Webmail/msg0
http://www.scconsult.com/bill/crampass.p
I'm not sure why, but sometimes connecting to my FBSD box from my home ISP creates a significant lag during the login phase.
Most documentation points to the sshd daemon trying to lookup my fqdn from my IP. So the lag basically indicates the time taken to complete the lookup.
I'm not very convinced by this comment, as a CLI nslookup call to my IP is almost instantaneous. In any case, to cut the delay, here's the steps:
w/538/517/
Most documentation points to the sshd daemon trying to lookup my fqdn from my IP. So the lag basically indicates the time taken to complete the lookup.
I'm not very convinced by this comment, as a CLI nslookup call to my IP is almost instantaneous. In any case, to cut the delay, here's the steps:
- login as root (you'd have to su -l from a user who is part of the wheel group)
- edit
/etc/ssh/sshd_config - go to the line that says
# UseDNS yes - uncomment the line, and change the text to
UseDNS no - save the file and return to CLI
- stop the server by typing
/etc/rc.d/sshd stop - stop the server by typing
/etc/rc.d/sshd start
Ref
http://www.freebsdonline.com/content/vieFor those who write code, and like to do so with subtle finesse, here's a good writeup on your options.
Quote:
In the past, we’ve had to decide between tiny monospace fonts or jagged edges. But today, modern operating systems do a great job of anti-aliasing, making monospace fonts look great at any size. It’s not 1990 anymore. Give your tired eyes a break and bump up that font size. If you have any doubt that anti-aliased fonts are apropos for code, note that even the venerable BBEdit — which for years has shipped with un-aliased Monaco 9 set as the default — has made the jump.
Ref:
http://hivelogic.com/articles/view/top-1 0-programming-fonts
Quote:
In the past, we’ve had to decide between tiny monospace fonts or jagged edges. But today, modern operating systems do a great job of anti-aliasing, making monospace fonts look great at any size. It’s not 1990 anymore. Give your tired eyes a break and bump up that font size. If you have any doubt that anti-aliased fonts are apropos for code, note that even the venerable BBEdit — which for years has shipped with un-aliased Monaco 9 set as the default — has made the jump.
Ref:
http://hivelogic.com/articles/view/top-1
Quote:
http://www.templetons.com/brad/clarinet-h istory.html
June 8, 2009 sees the 20th anniversary of the public launch of an electronic news publishing company I built named ClariNet. It seems odd to think of just 20 years as distant history, but the story of the internet is so accelerated that the world has changed in such a short time.
ClariNet has a claim on being the first "dot-com." Of course, how you judge that depends on your definition of what a dot-com company is, and there are of course other definitions and other companies with valid claims.
Refhttp://www.templetons.com/brad/clarinet-h
Found in a resume received today (quoted verbatim):
Expectations: Insist on sole responsibilities for small projects with clear concise requirements or have direct client communications for requirement gathering.
Expectations: A really technical team lead for big projects with proper development practices. (strong empathize on requirement gathering and technical specifications, modular approach towards implementations and strong use of design patterns and prototyping)
Expectations: Maintenance/Enhancement projects with proper readable documentations like fully documented database schema and business logic/functional specifications.I'd suspect it's not available on Vista either.
Somebody tell me the security implications in including it in on default install.
Good thing Microsoft has the brains to make it available as an optional install.
Geez.
Somebody tell me the security implications in including it in on default install.
Good thing Microsoft has the brains to make it available as an optional install.
Geez.
Forget what your vendor tells you. An Asian software team is typically about 1 hero building 80% of the application, if he is lucky, he will have 1 sidekick to finish the rest. A rated 'Big' team maxes out at 4 people - 1 hero snr, 1 hero jnr, 2 newbies.
It doesn't matter if we're talking about System Integrators or Product People (aka ISVs). It's the still the same: typically 2 people, and if you're lucky you get 4 (with the efficiency of 3).
I'm not going to talk about why this happens (think about the lines of businessmen with low budgets for labour, and lack of appreciation for quality control, and you'd be mostly there). I do however want to think through how a 2-man team needs to work.
Developer #1
1. The Code Guru of the team. Designs the core framework of the app, taking into consideration the UI workflow.
2. Writes 70% of the code.
3. Applies the UI based on a given template.
4. Tests that the UI template is scaleable, flexible, and bug-free.
5. Challenges the limits of the UI, by considering 'silver bullet' app features.
Developer #2
1. The useability expert. Thinks through how an application should work. Ensures all UI elements are consistent.
2. Creates the UI template.
3. Application tester. Identifies all the functional and useability bugs.
4. Writes 30% of the code.
5. Challenges the limits of the code framework, by considering 'silver bullet' UI features
Objectives of a Tiny Team Framework
The single most important objective is to ensure that no developer is allowed to lapse into complacency. Given an environment where there is no checks and balances, a typical employee is likely to:
1. Slow down his pace of development. Some will get academic about work-related roadblocks, others simply start doing non-work related stuff.
2. Minimise the quantity and quality of work
A TTF needs to operate in a peer relationship, where no one member is to be seen as the leader. All members should constantly be confirming the work of the other. For example: Developer #1 will confirm that the javascript library given by Developer #2 can be applied - bug free - to his current set of data to be displayed.
Individual Skills of a Tiny Team Framework
The success of an environment like this requires that every member is an independent contributor to the job. In other words, competency needs to be at minimum above average. Specifically:
1. All members must be self motivated to a reasonable extent.
2. All members must be able to communicate effectively to the rest of the team, especially ideas, problems, and situations.
3. All members must possess some appreciation of all of the responsibilities of the rest. For example, Developer #1 must have some knowledge of CSS and Javascript. Developer #2 must have competency in the programming languages used in the application.
Success of a Tiny Team Framework
A TTF is generally in a vulnerable position: the fact that the team is tiny means that there are issues of budget, and appreciation of effort to say the least.
I will summarise the dependencies into 3 broad categories:
1. Team quality: mostly what was mentioned earlier.
2. Environment: including support from the sales and business team.
3. Budget: some things can be scrounged up, but when it's time to buy, it's time to buy.
Good luck on your Tiny Team.
It doesn't matter if we're talking about System Integrators or Product People (aka ISVs). It's the still the same: typically 2 people, and if you're lucky you get 4 (with the efficiency of 3).
I'm not going to talk about why this happens (think about the lines of businessmen with low budgets for labour, and lack of appreciation for quality control, and you'd be mostly there). I do however want to think through how a 2-man team needs to work.
Developer #1
1. The Code Guru of the team. Designs the core framework of the app, taking into consideration the UI workflow.
2. Writes 70% of the code.
3. Applies the UI based on a given template.
4. Tests that the UI template is scaleable, flexible, and bug-free.
5. Challenges the limits of the UI, by considering 'silver bullet' app features.
Developer #2
1. The useability expert. Thinks through how an application should work. Ensures all UI elements are consistent.
2. Creates the UI template.
3. Application tester. Identifies all the functional and useability bugs.
4. Writes 30% of the code.
5. Challenges the limits of the code framework, by considering 'silver bullet' UI features
Objectives of a Tiny Team Framework
The single most important objective is to ensure that no developer is allowed to lapse into complacency. Given an environment where there is no checks and balances, a typical employee is likely to:
1. Slow down his pace of development. Some will get academic about work-related roadblocks, others simply start doing non-work related stuff.
2. Minimise the quantity and quality of work
A TTF needs to operate in a peer relationship, where no one member is to be seen as the leader. All members should constantly be confirming the work of the other. For example: Developer #1 will confirm that the javascript library given by Developer #2 can be applied - bug free - to his current set of data to be displayed.
Individual Skills of a Tiny Team Framework
The success of an environment like this requires that every member is an independent contributor to the job. In other words, competency needs to be at minimum above average. Specifically:
1. All members must be self motivated to a reasonable extent.
2. All members must be able to communicate effectively to the rest of the team, especially ideas, problems, and situations.
3. All members must possess some appreciation of all of the responsibilities of the rest. For example, Developer #1 must have some knowledge of CSS and Javascript. Developer #2 must have competency in the programming languages used in the application.
Success of a Tiny Team Framework
A TTF is generally in a vulnerable position: the fact that the team is tiny means that there are issues of budget, and appreciation of effort to say the least.
I will summarise the dependencies into 3 broad categories:
1. Team quality: mostly what was mentioned earlier.
2. Environment: including support from the sales and business team.
3. Budget: some things can be scrounged up, but when it's time to buy, it's time to buy.
Good luck on your Tiny Team.
I generally look forward to new releases of products I use. It's like getting a upgrading to a newer car of the same make: it'd sport a more modern design, comes with more little features, and sometimes you just want to get excited by the change.
Microsoft enteprise products are a mixed bag. On one hand it throws in more of the good stuff: auto completion, better response etc. Almost all the time, the something new will throw in changes which leave you wondering why the heck they did this.
And today it's about preventing users from changing the database schema. Specifically this happens only for SQL Server 2008 (including Express).
To be more exact: if the table has existing data, and the modification involves the server internally needing to recreate the table, you are prevented from doing this by default. Instead you get this error:
That sounds reasonable. But what if you're left with a dialog box that says exactly that, and leaves you wondering how to override it (because you legitimately need to make the change)? That's when you have to Google for help from someone who has kindly documented the steps online (not me. I had to find the same person).
That page can be found here:
http://www.worldofasp.net/news/MSSQL/re-4 539_SQL-Server-2008-Error---Saving-chang es-is-not-permitted--.aspx
Microsoft enteprise products are a mixed bag. On one hand it throws in more of the good stuff: auto completion, better response etc. Almost all the time, the something new will throw in changes which leave you wondering why the heck they did this.
And today it's about preventing users from changing the database schema. Specifically this happens only for SQL Server 2008 (including Express).
To be more exact: if the table has existing data, and the modification involves the server internally needing to recreate the table, you are prevented from doing this by default. Instead you get this error:
Saving changes is not permitted.That sounds reasonable. But what if you're left with a dialog box that says exactly that, and leaves you wondering how to override it (because you legitimately need to make the change)? That's when you have to Google for help from someone who has kindly documented the steps online (not me. I had to find the same person).
That page can be found here:
http://www.worldofasp.net/news/MSSQL/re-4
If you read the wrong documents, you'd be spending too much time figuring out how a purportedly few-step commands to configure a static DHCP just doesn't work on Cisco's routers.
Some tips
1. If you're tying an IP by MAC address, the field to use is client-identifier, NOT hardware-address. I don't know the difference between the two.
2. In your client-identifier, prefix it with 01. I can't remember why this needs to be, but I seem to remember a document explaining it. Eg. 0100.2219.262a.54
3. If your server is currently assigned to a regular DHCP IP, you need to clear the binding BEFORE refreshing your DHCP lease. The command is this:
4. If you need to set a fair number of static IPs, there's an alternative: by prepping everything in a file, and pointing the Cisco config to that file. See Ref. documents for details.
Ref. documents
1. http://www.joe-ma.co.za/page.php?28
2. http://www.cisco.com/en/US/docs/ios/12_3 t/12_3t11/feature/guide/gtdhcpsm.html#wp 1053415
Some tips
1. If you're tying an IP by MAC address, the field to use is client-identifier, NOT hardware-address. I don't know the difference between the two.
2. In your client-identifier, prefix it with 01. I can't remember why this needs to be, but I seem to remember a document explaining it. Eg. 0100.2219.262a.54
3. If your server is currently assigned to a regular DHCP IP, you need to clear the binding BEFORE refreshing your DHCP lease. The command is this:
clear ip dhcp binding <ip>4. If you need to set a fair number of static IPs, there's an alternative: by prepping everything in a file, and pointing the Cisco config to that file. See Ref. documents for details.
Ref. documents
1. http://www.joe-ma.co.za/page.php?28
2. http://www.cisco.com/en/US/docs/ios/12_3
Received a batch of Dell SC1435 servers recently. The noisy level is amazing (and annoyingly) high. Turn on a batch of them in the server room and...oh man.
This is quite uncharacteristic, given that I'm also using their old PowerEdge servers, which can be so quiet you barely know they're there.
Some things still cannot be taken for granted, despite previous favourable experiences.
This is quite uncharacteristic, given that I'm also using their old PowerEdge servers, which can be so quiet you barely know they're there.
Some things still cannot be taken for granted, despite previous favourable experiences.
I don't understand it. It's been out there annoying everyone for so long, I wonder why nobody went up in arms over this.
Problem
If you try to send a mail via System.Net.Mail.MailMessage, you'd end up getting extra =0D string paddings at the end of each line (before the actual \r\n line breaks).
Cause
System.Net.Mail.MailMessage has switched to using quoted-printable as the content-transfer-encoding format.
Why it's annoying
You cannot change it. Adding a header to switch it back does not work.
How to get around it
Switch back to System.Web.Mail.MailMessage. I know it'd deprecated, but works without needing to jump through hoops. I like it that way.
Comments
Seriously Microsoft. Spend less time creating yet-another-complex-framework. Fix the current ones that drive your developers nuts. I'm not jumping into 3.5 any time soon.
Ref
http://msdn.microsoft.com/en-us/library/s ystem.net.mail.mailmessage(VS.85).aspx
Problem
If you try to send a mail via System.Net.Mail.MailMessage, you'd end up getting extra =0D string paddings at the end of each line (before the actual \r\n line breaks).
Cause
System.Net.Mail.MailMessage has switched to using quoted-printable as the content-transfer-encoding format.
Why it's annoying
You cannot change it. Adding a header to switch it back does not work.
How to get around it
Switch back to System.Web.Mail.MailMessage. I know it'd deprecated, but works without needing to jump through hoops. I like it that way.
Comments
Seriously Microsoft. Spend less time creating yet-another-complex-framework. Fix the current ones that drive your developers nuts. I'm not jumping into 3.5 any time soon.
Ref
http://msdn.microsoft.com/en-us/library/s
