Wednesday, November 19, 2008                 Register

The Harry Yeh Blog! From http://harryyeh.blogspot.com
04/12/2008 Debugging WCF Applications - 2 Ways to do it!
At some point if you are a WCF developer, you will realize the pain of developing and Debugging web services and it's not a question of if you will encounter the dreaded "The Underlying Connection Closed unexpectedly" error, it's just a question of when. If you are doing a lot of object serialization (like trying to bring back an ArrayList) you will encounter this error very quickly. This post will help to solve "The Underlying Connection Closed unexpectedly" by enabling you to debug your WCF Projects properly.

There are really 2 ways to debug WCF Projects. 

The first and not so obvious but simple way, which will only get you so far, is to set break points in your WCF project and then run the project in the visual studio debugger. Then from your project that your are calling the service reference from, be sure to add the debugger url as your service reference and then run the program. (Usually your debugging web service if you open up visual studio will be http://localhost:{some port}/YourService.svc )

Depending on which service you are hitting, you can step through the break points. For simple debugging and simple errors, this method work very quickly.

You will find out very quickly though that this way will not catch all your errors. 

 The documentation on Debugging WCF is very sparse and not intuitive, and for the documentation that is available, it is somewhat long winded, so I will just get to the point:

Therefore, you must master the use of configuring your web.config files, use the tool.

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcConfigEditor.exe"

To create your configuration files. You will use this tool to modify your web.config file to enable the Message tracing and service tracing.

Once this is done, after you run your program if it craps out, you then use the

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\SvcTraceViewer.exe"

to view your trace files. It is from within this trace log file you will be able to find out what went wrong in your WCF File.

That's all there is to WCF Debugging!

A Good Link on CodeProject


04/12/2008 2 Weeks After using the Mac - What a great switch! Still loving it!
So after the excitement has died down and now the Mac is officially integrated into my life, here are some experiences I would like to share with everyone regarding my transition. I am happy to say that whatever applications I can use on a Mac I actually do. 

The main applications I use in Mac are Microsoft Word, Excel, Entourage (Replacement for Outlook - much better!), MSN, Parallels, Remote Desktop, Address Book, iCal, Safari and Finder.

I spend about 70% of my time still in Windows because I develop with Visual Studio. However, I am working on another internet startup project that is done with Ruby on Rails, so it was great to be able to develop on the Mac platform natively.

So if I am spending 70% of my time in Windows, I should just use Windows and not Mac OS right? WRONG. I find I am much more productive with My Windows Apps using a Mac then just Windows By itself because I get to use a combination of the two.

By Combining the use of Spaces on Mac OS, Virtuawin in Windows, Parallels with Coherence and Full Screen, I have made my developer and work environment 100x better than it could have been with Windows alone.

Also being a long time Windows user, it was really nice to have a change of pace. This move to Mac was definitely one of the most exciting changes in the Tech industry I have gone through, truly and exciting transformation.

So without further a do, here are some of my critiques on Mac OS Leopard in general + their programs.

Hardware

Definitely when you buy a Mac, you are getting the best Industrial Designed Hardware bar-none. The Mac Pro has the best industrial designed case known to man. just check out these pictures on my Facebook.

With the integration of parallels and Windows, I find it hard that I will ever buy a PC Again. Also after using my 2x30" LCD Cinema Displays, I had to look at a 17" LCD today and I was wondering how on earth I ever go anything done using those screens.

Multimedia

The multimedia experience on a Mac is the best. They are so far ahead of the competition it's not even funny. Also the integration with the iPhone, Apple TV, Macbook Pro, really make the platform Unbeatable. It is the seamless integration that the Mac provides that makes it truly unique. Frontrow is great because it turns any of your Mac's instantly into a Media Center. Also I love that when I watch a movie on my iPhone and sync up with my Computer, when I watch the same movie on my Apple TV or my Mac Pro, it leaves off where I was last watching!


Parallels vs VMWare Fusion (Virtualization)

There has been much debate over this subject, after using both, I have concluded that each one does something specifically better than the other. For myself, I use both but for different purposes. Parallels is the clear winner if you are running your Windows XP frequently since the level of integration with Coherence and the maturity of Parallels is much better than VMWare Fusion. For example, VMWare Fusion's Fusion feature, which is equivalent to Parallels coherence is very buggy and doesn't support Multi-Monitors. Even though VMware runs multiple CPU's, the level of integration with the Mac OS is not as tight as Parallels. Even the features such as shared folder, Parallels is the clear winner.

However if I am testing operating systems such as Windows Server 2008 x64 you really have to use VMWare because Parallels doesn't support x64. That being said, each one serves it's purpose but for the general public that doesn't use server virtualization, I would recommend Parallels (at least until Fusion becomes a more mature product even though it is faster)

The only thing that really sucks about Parallels, is doesn't have 64-bit support yet, and only single CPU.

Hardware Devices and Printing

I was pretty lazy with this and haven't gotten around to figuring everything out, so I still print everything through my Virtual Machines In Windows.

Time Machine

Even if you never actually rely on the backups (I do) it is so easy to setup and cool just to look at that you need to set it up. The 3-D display of going back in time is worth it just to look at. Plus the ease of backup makes it a no-brainer. Just wish they made is so you can pick drives outside of your own local drives to back up - VERY COOL! I got the time capsule so it works very well.

Mac OS is Stable And Never Crashes (That's BS)

So I can give you the skinny on this, I have crashed my Mac Many times, however I think this is just because I am pushing it. I admit it is stable but then again so is Windows. I do like that there  are no viruses on a Mac but then again I have to virtualize most of my apps. (But I do this anyway). Also, I can't really put the same load on a Mac that I put on a Windows Machine. But the odd time I do large file copies or I have do something funny with Parallels, I get the graceful "Gray screen of restart Please" vs the Windows Blue Screen of Death.

Macs do crash, all computers do. I would say Ubuntu crashes the least but I have never had a computer "Not crash on Me".

Also with Parallels, you need to be careful when using Spaces and Coherence, because Parallels will CRASH ALOT if you use Spaces with Coherence. My work around for this because I have multi-monitors, is to use Virtuawin inside my Windows VM and run Parallels at Full Screen.

03/28/2008 More Mac Madness - Converting a PC User to a Mac in 1 Hour or Less - Guaranteed!
So after officially using the Mac for one week, every time I go back to my PC I get this wierd feeling in my stomach, almost like I am going back to an older system. Of course, the biggest piece is just because I am so used to the OS X interface that it's difficult to go back to just using Windows.

I love Windows, I just happen to love it on Mac much more than on a PC!

That being said, aside from the Macbook Air story that I have with my mom jumping on the bandwagon, apparently other folks in the family have been bit by it as well!

So the night before I am off to San Francisco at around 1AM I am having this discussion with my brother. Like most "Pre Mac" users, he was telling me how much he loved his PC. I specifically said to him "I bet you I will have you getting a Mac within the next month!".

Of course his response was "Macs are too expensive, I like my PC better. I DON'T NEED A Mac!". So of course he had seen my Mom's Mac book Air, but the kicker part was when I showed him Parallels and the Mac Mini + Spaces. After the next hour, he says to me "Hmm, I am due for a new Laptop and My wife's birthday is coming up (end of May yeah right), I'll take 2 Macbook Airs, can you order them?". So I ask when? He replies "Right now? ehheh".

So next thing you know, we are scouring the price engines to get the best price for the Mac book Airs. We end up at PC Connection for $1,750 USD each, no taxes and free shipping!

Here are the specs on the Macbook Air:

MacBook Air 13" 1.6Ghz Intel Core 2 Duo 2GB RAM 80GB iSight
Apple Computer
Thinnovation.

So clearly I was wrong, it didn't take a month to convert a PC User to a Mac, it only takes 1 hour!

I will most likely get one for myself and my wife, since the Macbook Air draws such a crowd and attention, I will probably become an Apple Salesman...

03/25/2008 Increase your productivity with Virtual Desktops
Once of the best reasons for me to go over to Mac this week was the built in spaces feature. However, after being spoiled on the Mac all week, I did have to use my PC. One of the things I missed the most going back to the PC though was the Spaces application on Mac OS. Although I have use the Virtual Desktop features with Linux, I never used it quite as heaviliy as I did with the Mac OS. So I setout to find a replacement in Windows.

I sincerly hope that Microsoft in the next version of Windows bundles something like Spaces or Virtual Desktops into the OS, it is the standard to have something like this nowadays.

The program I recommend is an open source project called VirtuaWin.

03/24/2008 The Macbook Air - Don't believe the Bad Reviews it kicks ass!
So in tradition with continuing the Mac Madness this week, I convince my parents on Easter Sunday to head over to Best Buy with me to look at the new Macbook Pros. You need to realize, my parents haven't been in an electronics store let alone a best buy probably for the last 5 years (I go at least once a week :p) so the first thing they were amazed with was how many flat screen televisions were on display and how inexpensive they were.

Of course, we weren't at Best Buy to look the the televisions (although they were interested in the 50" Plasmas) we were there to look at the Macbook Air. Despite the negative publicity and buzz around the Macbook Air being too light, too niche or too slow for a Mac, all of these points are irrelevant because the Macbook was designed for a very special niche - either a secondary notebook, for people who like to travel light, or the executive who likes the lightest notebook - the latter being my mother.

So of course after she saw how light the notebook was and having to leave town in a few days, she said to me "I want that" after we walked out of the store. Of course with my luck, Best Buy didn't have it in stock - fortunately Future Shop next door did and I bolted over there to pick one up.

After using it for the last few hours, I must say I wouldn't mind having this as a secondary notebook but since I am a hardcore power user, this notebook definitely would only serve the purpose of email, word processing, chat and communications - which is what most executives do any way.

The battery life is great, over 5 hours, the keyboard works very well, and I love the Multi Touch track pad. I also recommend the bluetooth wireless mighty mouse for the notebook since long periods of usage with the trackpad can get tiring . A couple of things I do need to buy for it include the time capsule, so we have 802.11n and also the usb Ethernet adapter since it doesn't have a built in ethernet port.

All in all, I would have to say the Macbook Air kicks ass (the magnetic power cord was genius and so is the backlit keyboard.) and I would recommend it to anyone who cares about style, weight and usability. I would only recommend this as a secondary notebook though for power users.

03/23/2008 Apple, Mac, where have you been all my life? I'm so glad I found you...
So after 24 hours non-stop on a Mac, I can honestly say I will not be heading back to the PC. Not because I don't like the PC, but because I can run everything that I can run on the PC inside a Mac. The newer Macs have really set the bar and stage, particularly the operating system itself and what it is capable of. My predicition is that Apple will be the big company the next 10 years, it is truly Apple's time to shine. If you haven't seen the movie Pirates of Silicon Valley, I would strongly encourage you to watch it since it talks about the history between Microsoft and Apple, and how Apple was basically killed by MS but managed to survive, and now is thriving!

An interesting article to read is in Wired magazine "How Apple Got Everything Right by Doing Everything Wrong." . It truly explains how Apple as transformed it self since 1997 when Steve Jobs returned.

Apple will be the force to reckeoned with since they have a strong Alliance with Google, and everything they are doing righ now is perfect. One of the biggest points I haven't talked about is the foundation of the Mac, which is OS X.

OS X runs Windows Applications with Virtualizaton better than Windows can with Windows. That's CRAZY! The useability and productivity I have now with my PC apps because I am running a Mac are much better and higher all because of the great OS design.

I was going to wait a month to buy my workstation, however after playing with the Mac Mini yesterday, there was no point in waiting since I need to make the move NOW!! The products Apple have made for 2008 are so amazing, I have spent the entire week learning about their product stack, and I am looking at their certification and becoming an Apple partner since I really believe in their products! I truly believe Apple is ready for the Corporate and Enterprise market which is the space I work in so this is where I will be pushing a lot of their products. Also the timing is perfect since Apple just released new that they will allow OS X Server to be virtualized, which is a huge part and decision for me to even consider running Apple servers because we virtualize EVERYTHING. Some more info on the VTMN blog.

You can think of my purchases as "Demos" to really learn about the product and an investment which I think will pay off since the platform and hardware is solid. Also my prediction is that these machines should last me at least 2 years (which is very long for me considering I get a new computer at least every 6 months), maybe 3 but I highly doubt that just because I am sure the processor and disk speeds will be much higher even a year to 2 years from now.

So here is my shopping list this week for everything I bought from Apple. I would have shorted Apple stock before last week but now I would buy it since I am sure they went up a few points after my purchases this week. I have always wanted to shop at http://www.newegg.com/ I finally got the excuse to after getting the Mac Pro since I needed 16GB of memory. All prices are in USD.

Apple Store Online (Custom Configured) Price Subtotal
1 Macbook Pro 17" with 1920x1200 Hi Res Screen Matte Finish - 250 GB Hard Drive $2,899.00 $2,899.00
1 iPhone 8GB (through Friend from Apple) $299.00 $299.00
2 "Apple 30"" 2560x1600 Widescreen Cinema
Display (Refurbished Apple Store)" $1,499.00 $2,998.00
1 "Mac Pro Dual-Quad Core (8 Cpus) with
Hardware Raid Controller, 320GB Drive, Nvidia
512MB Video Card" $3,899.00 $3,899.00


Apple Store (Burlingame)
1 Wireless Keyboard $79.99 $79.99

Apple Store (Stanford)
1 Apple TV 160GB $349.00 $349.00

New Egg
4 iRam - 2Gig FB-Dimms DDR2 - 800 for Mac Pro $209.00 $836.00
2 Transcend - JetRam DDR2 667 2GB for Mac Pro $33.50 $67.00
Sub Total $11,426.99
California 7.25% State sales Tax $828.46
$12,255.45 My First Week with Apple

Things I am still missing
2 1 Terabyte Sata Hard Drive $250.00 $500.00
1 320GB Sata Hard Drive $79.99 $79.99
1 Apple Xserve $4,000.00 $4,000.00
1 Apple Time Capsule 1 TB with 802.11n $499.00 $499.00 (This is really cool it automatically backs up your computer?)
$5,078.99


Damn their shit expensive, but damn their shit is the best, you really get what you pay for!

I am sure I will be writing about Macs for the next little while (maybe the rest of my life...) - I now understand the Mac craze, I am even looking at all the cool music apps now just for fun!

03/23/2008 The Mac Madness Continues...
After using the Mac Mini all day, I must truly say that once you go Mac, it is very difficult to go back - TO ANYTHING ELSE! One product that really shines is VMWare Fusion. The concept of virtualization was never new to me, however, the "Unity" button is definitely new to me. I don't even think this feature exists on the Windows or Linux versions of VMware.

Essentially, it allows you to run the application that is inside the virtual machine to appear like it is actually part of the Mac machine. This is crazy for me because that means I can use tools like Visual Studio without being limited to it running inside a remote desktop window. THIS IS AMAZING!

The madness will surely continue for the next few days, if not weeks, I am definitely getting a workstation at this point!

Here are some pictures to wet your appetite on what VMware Fusion can do.




03/22/2008 Becoming a Apple Mac "Crack" Addict
After many years of convincing myself that I would never buy or use a Mac computer because PC computers were better, I have come to appreciate and realize what the craze is all about when it comes to the Mac platform.

I don't think I have been this crazy about a computer EVER. I think the only parallels in excitement and anticipation in waiting for my new 17" Macbook Pro to arrive would be the following: Since I first started developing in VB and ASP, Windows 2000 and 95, and when I got my 10 screen LCD Setup.

However, I don't think anything comes close because never have I spent an entire week thinking and researching everything about the platform and a computer, I currently have a serious case of MAC "Crack" Addiction as I call it. In the past week, I must have gone to an Apple Store at least 3 times, visited the Apple Store about 100 times (probably at least once and hour), talked about it at least once every 2 hours and checked on the status of my Macbook Pro every 3 to 4 hours :p.

For me, I would say it all started with the speaking to some of my colleagues at a contract I was working. Normally, I purchase a new PC or notebook at least every 6 months to a year, simply because the development work I am doing + virtualization always requires me to have a fast running machine. I have held of buying anything the last year (2007 was the only year I have gone through not buying a single server or PC) because frankly, there wasn't much change in the PC platform. We were using virtualization heavily and there was no new OS or major software changes on the market, and I had already bought my Vista PC back in December of 2006 along with my Dell Notebook.

So one of my colleagues had a Lenovo notebook on his desk, and I had always been the biggest fans of Lenovo / IBM thinkpads. In my opinion, Lenovo is #1 for PC based Notebooks, Dell is #2, HP and Compaq are #3. Stay clear away from Sony Vaio they are garbage from my experience but they look nice. Toshiba I have just never been a fan of although they are the best for Japanese notebooks.

I have always like the Thinkpads because they were the workhorse of notebooks, had the best design, had the mini keyboard light and had the best service and warranty (always 3 year). They were also the most expensive notebooks, which is why we went with Dell because Dells were the most similar to Thinkpads but were much cheaper. However one of the things I hate most about the Dell notebooks now are that they don't come with a built in microphone. Because I use my computer as an IP phone, this was a real pain in the ass and for the last 2 years, I have hated this the most about Dell Notebooks. Aside from that they were fine.

So continuing the story, I was admiring the Lenovo and telling them how much I loved Thinkpads, then my colleague goes "That's a piece of shit" you should get a Mac. So then I stared over at his 23" Screen along with his 17" Macbook Pro that was on his desk. He was talking about how much better the Mac was than the PC, especially now that it had the Intel processor. Just to give you some background, I had purchased a Mac Mini with the Core Duo platform about a year ago, and frankly I wasn't that impressed. The only reason I purchased one was because of the safari browser I was testing, and to let my kids play on a computer so they wouldn't touch mine. From Summer of last year, the Mac mini was basically put into storage and I thought I would never use it again.

After looking at the Macbook Pro on my colleague's desk something I told him about the features that I loved about the thinkpad. Particularly the little keyboard light you could turn on so that you can view the keyboard when it's dark. My colleague goes "that's lame, the Macbook Pro keyboard lights up when it's dark." It was at this point I felt something come over me almost like a turning point. I also saw the small wireless keyboard and all the features he was showing me. He also mentioned that PC World even mentioned that that Mac's run Windows faster than any PC based computers. It was at this point I actually considered maybe getting a Macbook for a notebook. However it didn't stop there, another colleague who was the IT Director was also a huge Mac fan and after speaking with him, I was sold. I had already known about the virtualization with Parallels and VMware, and being a very heavy user of VMware and virtualization, I was pretty comfortable running my development machine inside a VM.

What pushed me further though, was the March 6 presentation Steve Jobs gave about the iPhone SDK. My reaction to the iPhone before also was substandard because I had never liked the fact that the Apple platform was fun to develop on. With the opening of the SDK for the iPhone, now I was hooked into the iPhone because the iPhone is essentially a Unix handheld computer. What pushed me even further, was watching the video for Ruby on Rails. Apparently, lots of people use Mac as the platform to develop Ruby on Rails applications. Because I develop mostly internet application and have been looking at Ruby on Rails, this also made the Mac more attractive for me. Then I started thinking about how damn sexy the Apple equipment looked compared to the PC equipment as well as the user interface. I figured I spent about 10 hours a day in front of a computer, I may as well stare at the hottest looking piece of hardware on the planet.

From the technology perspective, I had already been using Ubuntu on one of my notebooks for the last 4 months, which actually probably helped in making me want to use a Mac even more because Mac OS X is based on a Unix Kernel. The problem with Ubuntu is that it was still relatively immature and there were still somethings I didn't like about it. The Mac however, seems to be everything the Ubuntu is but is more established and better supported commercially, which makes it great because it almost seems like I was searching for something and the Mac is it! There is virtualization, great commercial support, a huge user base and a solid OS.

Another part that also stood out for me was this article and excerpt from wikipedia:

For over three years now, Mac OS X has gotten faster with every release — and not just "faster in the experience of most end users", but faster on the same hardware. This trend is unheard of among contemporary desktop operating systems



This was crazy for me to comprehend because every time Windows came out with a new OS, you would need to buy hardware.

It was from this point on I started going nuts about the Mac. I started scouring the net for deals and I must give Kudos to Apple, they sure know how to control the market.

So in summary in my first week, I bought the iPhone, Macbook Pro 17 with the 1920x1200 resolution screen, a 30" Cinema Display and the wireless keyboard. I also took my Mac Mini out of storage and dropped 2GB of memory into it. I am currently writing this Blog from my Mac Mini because I haven't received my Macbook Pro yet.

If all goes well (Which I am sure it will), I will be purchasing 2 more 30" Displays so that I have 3 x 30" display, the new Mac Pro workstation - Dual Quad Core? CRAZY ( I am due for a Desktop workstation upgrade) and we will also be evaluating the XServe 1 U Server.

The major applications and tasks I will be doing will involve the following

1) Running VMWare Fusion - testing compatibility with moving virtual machines
2) Running Office 2008
3) Cisco VPN Client
4) Ruby on Rails Web Development
5) Connecting to Active Directory
6) iPhone SDK Development

My hats off to Apple, I think they are truly starting to transition to the Corporate space rather than just being consumer oriented. I am so excited to get my new Mac next week that I started using my Mac Mini today for all the tasks that I want to do on my PC. I will keep the updates on the progress of my move to the Mac. This is truly an exciting time in computing for Apple because their solutions are very well integrated as well for all PC users looking a change from their standard and usual PC usage.


03/22/2008 GRID Computing
Many of you may have heard the term GRID computing, for those of you who don't know what GRID Computing is, here is the quick and dirty definition from wikipedia:

Grid computing is a phrase in distributed computing which can have several meanings:

  • Multiple independent computing clusters which act like a "grid" because they are composed of resource nodes not located within a single administrative domain. (formal)
  • Offering online computation or storage as a metered commercial service, known as utility computing, computing on demand, or cloud computing.
  • The creation of a "virtual supercomputer" by using spare computing resources within an organization.
  • The creation of a "virtual supercomputer" by using a network of geographically dispersed computers. Volunteer computing, which generally focuses on scientific, mathematical, and academic problems, is the most common application of this technology.
So in a nutshell, Grid Computing allows you to take a task, and chop it up into smaller tasks, send them over the network to be processed on multiple computers.

When would you use this? Currently I am applying and investigating the use of Grid Computing in the Financial Services vertical and Video Encoding and Transcoding.

In the Financial service vertical for example, building complex financial models for Hedge Funds or analyzing large sets of data require lots of computing time, so Grid Computing is perfect for this.

Another project currently requires encoding and transcoding video formats on the fly as well as offline, which requires heavy processor time.

These are just 2 examples of which I am using and investigating the use of Grid Computing. Any task that requires heavy CPU computation should be a candidate for Grid Computing. There are a few Grid Computing packages I have been looking at, here are just a few. Grid Computing requires you to have some development experience depending on the package and more often or not you have to code your applications to be asynchronous so that it can be distributed on a Grid in real time.

Digipede - For Microsoft .NET Applications or the Microsoft Platform

Alchemi - For Microsoft .NET Applications - Open Source

Apple XGrid - Comes with MAC OS X Server

Grid Gain - Java based Grid Computing - Open Source and most widely used



Wikipedia Resource

03/08/2008 SIP & NAT TRUNKING SUCKS - Use IAX2 Trunking if you need to NAT
IAX Trunking is definately the way to go, it took me 2 minutes to setup vs. SIP Trunking over NAT which doesn't work very well. A word to the wise, if your DID provider has IAX and you have NAT, use that!

A good provider I use is http://www.voicenetwork.ca

03/06/2008 Cisco 7970 SIP on Asterisk and Trixbox
If you have ever worked with a Cisco 7970 Phone, you will notice they are very flaky sometimes and are in a real need for a hard reset. Normally the factory reset of holding # and pressing 123456789*0# works but if that doesn't you'll either have to setup a TFTP server and load some default firmware or press 3 4 6 1 6 7 2 8 5 0 * #

A good page discussing this issue for people playing around with different firmware - Thank goodness for this page, otherwise I would have an $800.00 doorstop.

http://www.voipuser.org/forum_topic_10868.html

02/18/2008 DOS 16-Bit Emulation in Linux - Ubuntu
Yes there are still people that run 16-bit apps. I have heard that Vista x64 doesn't support 16-bit windows apps, which means that you will have to find some type of emulator to run the older versions of software.

You can use DOSBox which is fine for games, but if you need something to run older 16-bit apps that have printing, you'll need a emulator called DOSEMU. I still have some clients that run ACCPAC on the older 16-bit systems, so this was an interesting task since we could push Ubuntu as a desktop client if we were able to completely emulate the 16-bit DOS environment along with printing.

http://www.dosbox.org

http://www.dosemu.org/

02/18/2008 Mounting Windows Shares in Ubuntu using CIFS
Using CIFS (Common Internet File System) is the method to mount windows shares on a Linux box (Ubuntu in my case). CIFS is the replacement for SMBMOUNT, the following is an example of how to use this command. You must execute it as root.


sudo mount -t cifs //{IPADDRESS}/{Windows Share} /mnt/yourdirectory -o username=administrator,password=password

A good post that discusses this in detail:

http://ubuntuforums.org/showthread.php?t=288534

02/17/2008 Firefox 3 Beta 3 Released - Get IT!
If you are using Firefox 2, I highly recommend getting the beta 3 product. There are a lot of issues with version 2. Currently running Firefox 3 beta 3 on my Ubuntu notebook has been a lifesaver, clearly there are major memory leak issues with it.

Here is the quick and dirty on how to install Beta 3 along side with your Firefox 2 in Ubuntu.

http://tombuntu.com/index.php/2008/02/14/install-firefox-3-beta-3-in-ubuntu-with-one-command/

02/12/2008 Time Synchrnoization with VMWare Guest Operating Systems
For most applications that aren't time senstive or running RTP like applications, you may or may not notice the time difference on your servers. In this blog I will discuss specifically the issues I have had with running Guest Virtual Machines inside VMWare with Windows and Linux.

The blog specifically talks about Linux Guest Operating Systems inside VMware and the importance of time synchronization. I am running some test asterisk and trixbox machines inside vmware, and since the RTP and VOIP protocols are time sensitive, it is extremely important that the clocks and times are synchronized properly. If not, you will get garbled voice conversations or improper timestamps for your call log. The problem in VMWare is pretty bad with time delay, so you need to configure some Grub start up parameters as well as configure vmware tools to properly not use the time sync feature with the host operating system.

Some good articles describing in detail how to rectify the problem in VMWare.
http://support.novell.com/docs/Tids/Solutions/10100597.html
http://www.excalibur-partners.com/archives/2

02/12/2008 Open Source IP Telephony - VOIP - Asterisk
Trixbox CE

Trixbox CE is definately one of the best (if not the best) packaged open source asterisk solution out available. We currently migrated our 1.2 asterisk solution over to the 1.4.18 build (latest on Trixbox) and it has been great so far. Definately one of the best things about Trixbox CE is being able to use HudLite (which is a client plug in) but also having a much better web user interface on the server. Features such as the FOP, Endpoint Manager, CDR Reporting and the ARI to login and view the interface really make a big difference if you are used to just working with asterisk with no user interface.

Kudos also go to the community and Trixbox for making the Package Update Manager for allowing great updates via the web interface. FreePBX is also the other inteface packaged with the system. Over all, a very welcome addition to our infrastructure vs. the older asterisk build which we had in 2 years ago.

I am also very happy with the fact that you have access to the Mysql Database and customization of the PHP scripts so you can make quite a few optimized changes on the server to make Trixbox display data how you want.

However, be warned, to really get the most out of Trixbox CE, you still need to have quite a good expertise with Telephony, Linux but most of all, you need to understand the asterisk architecture still because there are still somethings you need to do that the user interface can't handle. (Probably only 10% but the 10% are critical features.) Paging, Call Groups, Trunking are all done much better in this newer release!

Trixbox Pro

Normally after an install, I assume you would go to the IP Address of the machine, instead I get the Apache screen asking me to contact the administration. Rather than typing the IP Address of your machine, after install, you need to go to http://cp.trixbox.com/ . You can only hope that cp.trixbox never goes down or you are hooped because this is how you have access to the machine. Why it was designed like this I could understand for managability, but it places way too much reliance on Trixbox to run your phone system. If this is the case, i recommend you purchase support for the system because you are depending on them, but I dont' recommend running the free Trixbox Pro version and relying on Trixbox.


The big difference with Trixbox CE and Trixbox Pro is that Pro is more of a managed service where as CE is more of a standalone.

You can find out more about Trixbox at http://www.trixbox.com/

My preference is definately the CE version since there is so much functionality and flexibility, plus you don't depend on the connection to Fonality to view the user interface.

Popular OS choices

Trixbox and some of our other vendors all seem to prefer Cent OS for asterisk, I am not sure why but that seems to be the general consensus, although from the looks on the Digium site they seem to prefer Fedora Core.

02/12/2008 WCF - Windows Communication Foundation
WCF, WCF, WCF it seems that since the initial release of .NET Framework 3.0, Everyone has been talking about WCF. For those of you who don't know, WCF is Microsoft's Amalgamation of the following technologies and services into one set of libraries for the .NET Framework 3.0. Specifically these are the area of web services (improved), Message Queuing, COM+, DCOM and .NET Remoting.

Personally from experience I would have though WF (Workflow) would have been the big piece everyone is talking about, but it seems the combination of WF and WCF is what everyone is talking since SOA (Service Oriented architectures) is the big buzz word these days. So I ask myself, what's the real benefit or using WCF and why does every company under the sun that I talk to want this technology? Well the answer in my opinion is that it really opens up you design architecture of the traditional component based modeling for development and allows you to expose your libraries as services, rather than as stand alone DLLs.

At first like most new technologies, I asked, why should I change to this methodology or technology? It was pretty much the same question I asked when I was a junior developer, why do we need to write wrappers? After converting some of my existing business layer project to WCF, I started to see the benefits where WCF can play a MAJOR role in your architecture because no longer do you need to copy DLL's to have clients access your data, you can expose your internal data as a service which long term allows you to plug in additional technologies and work with multiple platforms.

I took a simple example of the following ASP.NET web page. Normally, for me to pull a Dataset from a database, I would have my business layer connect to my data access layer then to the database. Normally, the ASP.NET Web page, would require you to add a direct reference to the business logic component. With the WCF project, I took all the methods of the business object and exposed them as WCF services. At first, this seemed silly to me, because my Web Site was grabbing information from another web server, when it could just access the database directly. Then I thought, well, now my WPF, Win32 and even open source programs that can reference SOAP API's will be able to grab data from the same business components. Best of All, I could use all of IIS's features such as security, load balancing and SSL to provide a very efficient and secure way of managing my data. Best of all, if I wanted to expose my business components or services to the rest of the world, it's ready!

But then I asked, "what about performance?". Well WCF has improved, and WCF to WCF calls are all using SOAP Binary. After finding this out, I was sold! All the business components I develop now that needs to be exposed to Presentation interfaces, I now exposes as Web Services on WCF. This is not even using the advanced features such as Queuing or Remoting. But it's great to know that if I want to use this with my components, I can!

Maybe I'll even do this with my database abstraction layer (probably not but the idea sounded interesting).

With workflow, I can now create a business process workflow using WF, host it inside a WCF service and then throw that out to the clients. A great way to have loosely coupled services, and true SOA!

Some people think that this maybe overkill, exposing all of your business components as WCF services, but I think this is the future with web services. You also never know when you will need that integration or flexibility, so with WCF you definitely have this flexibility.

You can read up more on WCF at MSDN.

I recommend the Apress Book Professional WCF - Practical Microsoft SOA Implementation.

I also recommend you take one of your existing projects and add WCF to it so you can really see how the technology applies to your business, once you do, you won't go back!

If you want to truly abstract your Presentation layer, I think WCF is great because you can take all of your exposing business logic, throw it into a WCF project, recompile, host the service in IIS and then have your clients add the reference to the web service.

02/11/2008 The Skinny on LINQ

LINQ is a great feature for those of us who are developers and a God-Send in some ways because it allows to to have SQL like syntax to manipulate your data objects in C#. This is definately one of the great reasons to use .NET Framework 3.5. Traditionally if you wanted to manipulate data (which is what we developers do most of the time), you would have to transform between Datasets, XML documents and configuration files. With LINQ, you can now use SQL like syntax on objects that use the IEnumerable Interface, Datasets or XML!

You can read up more about he LINQ project at MSDN.


02/10/2008 .NET Delegates, Indexers and The Lambda Operator (.NET Framework 3.5)
The following 3 topics are useful advanced C# Features and have matured in .NET Framework 3.5.

Delegates

Traditionally in other development environment such as VB, C or C++ in order to access the Win32 API you would use callback functions or call backs. The problem with this style and method is that you access a raw memory address. In the .Net Framework, Call back functions are known as delegates and provide a much better type safety and object oriented way of accessing the functions.

So the proper definition of a Delegate in .net a type safe object that points to another method or a list of methods and can be invoked or called at a later time. .Net Delegates can point to either static or instance methods.

When you want to creat a delegate in C# you use the keyword delegate.

You can read up more on C# Delegates at MSDN.

The Lambda Operator =>

Lambda expressions allow you to author anonymouse methods in a more consise way that ultimately simplifies the uses of .NET Delegate types.

You can read up more on C# Lambdas at Developer.com

Indexer Methods

Indexer methods allow you to design custom classes and structures that can be indexed like arrays which is the most useful when dealing with generic or non generic collection types.

You can read up more on C# Indexers at CSharp Help.

02/10/2008 SQL Server 2005 Large Data Values
SQL Server 2005 has some new data types, specifically designed to replace the older data types for storing large values. These would be varchar(max), nvarchar(max) and varbinary(max). These data types are meant to replace the older text, ntext and image column data types.

This article descibes enabling large values to in a table with a column that has data that is larger than 8K. A good example of this is a large XML File.
http://technet.microsoft.com/en-us/library/ms173530.aspx

This article explains the different large data types.
http://technet.microsoft.com/en-us/library/ms178158.aspx

02/10/2008 C# 2008 and .NET Framework 3.5 New Features
There are several interesting and new feature with the language for C# 2008 which I will discuss. One of the things that's always been exciting with the .NET Framework and the C# language is that Microsoft continues to evolve the libraries while at the same time improve the core language of C#. C# by the way, is the language I develop in primarily along with PHP and SQL.


Extension Methods

This has to be one of the best features of any language or framework. Extension methods allow you to add methods to an existing class or DLL. What this means is that if you don't have access to the original source code (or type) you can override and add methods to the type class. I thought this was a very interesting feature since this means even with components you purchased, you could add or override the methods as you see fit. VERY COOL!

Implicit Variables

I thought at first this was a strange feature since it was technically going back to the old days of VB where you don't have to define variables explicitly (with their data type) but there are some benefits and are to be used on a case by case basis, such as in the case with LINQ which I will be discussing.

"The LINQ technology set makes use of query expressions that can yield dynamically created result sets based on the format of the query itself. In
these cases, implicit typing is extremely helpful, as we do not need to explicitly define the type that a query may return, which in some cases would be literally impossible to do. " From Apress Pro C# 2008 and the .NET 3.5 Platform

Partial Methods

This is probably the strangest of all the newest features, in .NET 2.0, we have partial classes, which are great because it allows you to split 1 big class into multiple class files. A partial method must return void only, so I don't really see the benefit of it unless you are making one long sequential method, but in that case it's bad design anyway. This feature probably won't be used much.

Object Initializer Syntax

A useful feature since now when I instantiate my objects I can hydrate all the data in them in a few lines, vs. before where I would have to define every single property. Kind of like initializing arrays so a very good feature with less coding.

Anonymous Types

Another interesting feature, when I saw this my first thought is VB object type VARIANT. Aren't variants bad for performance? Again the mention with the use of Anonymous types is with LINQ which I will discuss in another Blog.

Some excerpts from this blog were taken from the Apress book Pro C# 2008 with and the .NET 3.5 Platform

02/09/2008 Xen, KVM and VMware Different Virtualization Technologies
Upon reading an article about Ubuntu picking KVM over Xen, I decided to dig a little deeper to see what the different types of Virtulizations there were.



KVM is more of a VM running on top of the Guest OS where as Xen is more attached to the bare metal of the hardware. What this means is that KVM goes through the operating system for all of its requests (similar to VMWare Server) and Xen can access the hardware directly (similar to VMWare ESX Server) using a technology called paravirtualization.



The bare metal option can provide definate performance gains since you have access to hardware directly and it seems that Xen is quickly catching up to VMWare ESX server on the Bare metal front for virtualization. Xen is currently under very heavy development.



An few links and articles about Xen and VMWare



http://www.linuxinsight.com/the_difference_between_xen_and_vmware.html



http://direct2dell.com/one2one/archive/2006/10/31/3369.aspx

02/09/2008 Building XML From SQL Server 2005
As XML has become increasing popular as a method of transfering and describing data, more often or not we sometimes have to convert tabular data streams into XML Files. Since SQL Server 2000 with the FOR XML EXPLICIT clause, we have been able to return queries into an XML Format. SQL Server 2005 however provides some better mechnisms for returning XML Data, as as stated in an MSDN article, the newer way is much better than the old way. When you see it the old method compared to the new method you will see why I call it "XML FROM HELL".

The New PATH Mode

SELECT CustomerID as "@CustomerID", CompanyName, Address as "address/street", City as "address/city", Region as "address/region", PostalCode as "address/zip", Country as "address/country", ContactName as "contact/name", ContactTitle as "contact/title", Phone as "contact/phone", Fax as "contact/fax"FROM CustomersFOR XML PATH('Customer'), ROOT('doc')

This will return



Alfreds Futterkiste

Obere Str. 57
Berlin
12209
Germany

...


vs. THE OLD WAY


SELECT top 1
1 as TAG,
NULL as Parent,
1 as "doc!1!dummy!hide",
NULL as "Customer!2!CustomerID",
NULL as "Customer!2!CompanyName!element",
NULL as "address!3!street!element",
NULL as "address!3!city!element",
NULL as "address!3!region!element",
NULL as "address!3!zip!element",
NULL as "address!3!country!element",
NULL as "contact!4!name!element",
NULL as "contact!4!title!element",
NULL as "contact!4!phone!element",
NULL as "contact!4!fax!element"
FROM Customers
UNION ALL
SELECT 2, 1,
1,
CustomerID, CompanyName,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL
FROM Customers
UNION ALL
SELECT 3, 2,
1,
CustomerID, NULL,
Address, City, Region, PostalCode, Country,
NULL, NULL, NULL, NULL
FROM Customers
UNION ALL
SELECT 4, 2,
1,
CustomerID, NULL,
NULL, NULL, NULL, NULL, NULL,
ContactName, ContactTitle, Phone, Fax
FROM Customers
ORDER BY "doc!1!dummy!hide","Customer!2!CustomerID"
FOR XML EXPLICIT, TYPE

The query from Hell!

The MSDN Article describing this feature is at

http://msdn2.microsoft.com/en-us/library/ms345137.aspx

02/05/2008 Auto-Suggest Program for typing in Windows
I have always wondered since the advent of text messaging when they would have something similar to the auto-Suggest Program for typing in on cel phones. Well there is a program called LetMeType at
http://hubpages.com/hub/LetMeType__a_Free_Autocomplete__Autosuggest_Program_Utility_for_Windows

It is definately a neat program and does allow you to type a bit faster as you train it. So the more you type the more typeing you do the more suggestions it will provides.

The best thing about this program is that it works for all of your Windows programs, meaing web browsers, Outlook, Office etc.

02/05/2008 The New Rich Media Web - Silverlight, Adobe AIR, Adobe Flex
By now you have probably seen some links on Microsoft's new rich media platform Silver light. Microsoft is planning on have the entire Beijing Olympics 2008 on Silver light. The Great thing about Silver light is you will get the rich media platform and ability to use all the existing .NET tools to do it.

Adobe AIR is another product, I downloaded it and tried the EBay Desktop application which is amazing. It is truly exciting to see the direction of the rich media and the direction the web is going towards. This is nice because this means that the "Software as a Service" may soon become a bigger reality with these platforms and run times since the browser will be your gateway to get these rich applications you can run on your desktop, but still use open web protocols to transfer data. This technology can definately be labelled as Web 2.0 since it is very different than the web applications from 10 years ago.

A good blog discussing the different platforms.

http://www.scottklarr.com/topic/39/adobe-air-vs-flash-vs-flex-vs-microsoft-silverlight/


Privacy Statement    |    Terms Of Use Copyright 1998-2008 by Comet Computing