Friday, February 29, 2008

MS SQL Server Compact 3.5

SQL Server Compact is a free, easy-to-use embed-able database engine that lets you develop desktop and mobile applications that run on all Windows platforms (Windows XP, Vista, Pocket PC, and Smart-phone).

Microsoft SQL Server: SQL Server Compact 3.5

  • Small footprint (under 2MB in size).
  • Use familiar programming models (SQL Syntax and ADO.NET).
  • Easily scale up from SQL Server Compact and T-SQL to more powerful editions of SQL Server.

Choosing Between SQL Server Compact 3.5 and SQL Server 2005 Express Edition

http://www.microsoft.com/sql/editions/compact/sscecomparison.mspx

editions_compact

JawBone

I need to get me one of these!

www.jawbone.com

First Look at Using Expression Blend with Silverlight 2

A very good beginner's level tutorial to using Expression Blend to construct the UI for an application and on using data-binding to connect the UI to .NET classes.

First Look at Using Expression Blend with Silverlight 2 - ScottGu's Blog

Wednesday, February 27, 2008

Make your own Nikon GPS attachment

epicblog has instructions for creating your own GPS attachment for a Nikon D200 camera.

step8  wiring

Monday, February 25, 2008

Broken Images with Blogger, Picasa, and Custom Domains

Recently I blogged about changing my blogs address from theRajahs.blogspot.com to blog.aggregatedIntelligence.com.

I thought that everything was working fine - until I looked at the web pages from a different browser. Every image that I had uploaded was coming up as a broken link. The images were there in Picasa, but for some reason would not show up as part of my blog posts.

Finally I figured out that it definitely had something to do with how Blogger and Picasa interact and it did not have anything to do with Windows Live Writer. But What!

Turns out that it is a known issue. The problem has to do with serving of images by Picasa to domains that are not *.blogspot.com.

Anyways this post by Joe Cheng from the WLW group has more information about the issue. Broken Images with Blogger, Picasa, and WLW.

In addition Joe also provides a very good command line utility - that fixes posts that were detected as having been created by WLW.

What a royal pain!

Interesting Maps: Internet Censorship

On the heels of today's news about how the Pakistan's governments attempt to censor the Internet lead to a 2 hour YouTube outage (http://www.news.com/8301-10784_3-9878655-7.html?tag=nefd.lede) here is an interesting map on the black holes of the Internet.

internetblackhole

Interestingly - Pakistan is not one of them!

Black holes in the Internet: 24 Hours Against Internet Censorship / RSF

Sunday, February 24, 2008

Scrum as applied in the Visual Studio Enterprise Tools group

David Willson is the Engineering Lead in the Visual Studio Enterprise Tools group. His latest post discusses how his group implements Agile development methodologies. Interesting Read.

Our Scrum Cycle - drwill's daemon

Microsoft Makes Strategic Changes in Technology and Business Practices to Expand Interoperability

New interoperability principles and actions will increase openness of key products.

REDMOND, Wash. — Feb. 21, 2008 — Microsoft Corp. today announced a set of broad-reaching changes to its technology and business practices to increase the openness of its products and drive greater interoperability, opportunity and choice for developers, partners, customers and competitors.

Specifically, Microsoft is implementing four new interoperability principles and corresponding actions across its high-volume business products:

(1) ensuring open connections;

(2) promoting data portability;

(3) enhancing support for industry standards; and

(4) fostering more open engagement with customers and the industry, including open source communities.

via MS PressPass (read more):

Microsoft Makes Strategic Changes in Technology and Business Practices to Expand Interoperability: New interoperability principles and actions will increase openness of key products.

Microsoft Interoperability Website: http://www.microsoft.com/interop/

Using Blogger with a custom domain

Recently I purchased AggregatedIntelligence.com as the domain name for all my web programming adventures.

The first thing I wanted to do is get my blog address changed to http://blog.AggregatedIntelligence.com. The simplest way to do this is by setting up a redirection of the address to my existing blog address. Even though this works - it will not lead to the address to the posts changing from http://therajahs.blogspot.com/xxx to http://blog.AggregatedIntelligence.com/xxx.

My biggest worry about moving my blog address from http://theRajahs.blogspot.com/ was - whether all the old links via the old address would still continue working. The good news is that Google will keep forwarding the old links to the new address.

So on with the change!

Here are the instructions to using a custom domain registered with GoDaddy.com with your Blogger account.

  1. Log into your GoDaddy account.
  2. Go to the manage domains tab.
    5
  3. Click on the "Total DNS Control and MX Records" link
    1
  4. Click on the button "Add new CName Record" - which adds an aliased sub dominan address.
    2
  5. In the next page add the alias name. (As I wanted my blog address to be blog.AggregatedIntelligence.com - the alias name would be just "blog").
    Also add "ghs.Google.com" as the "Points to Host Name" value. Finally click OK.
    3
  6. That is it. Just remember to set the new address in Blogger.
    This is done via the Publishing page of customizations page set on blogger.
    (Also notice that Google says that it will keep current links working to the old address).
    6
  7. Finally test the changes.
    New address: http://blog.aggregatedIntelligence.com/
    Old address: http://theRajahs.blogspot.com/ (should redirect to blog.AggregatedIntelligence.com)
    Forwarding of an old address link: http://therajahs.blogspot.com/2007/08/mio-c310x-sec-s3c2410x-test-bd-driver.html (should redirect to http://blog.aggregatedIntelligence.com/2007/08/mio-c310x-sec-s3c2410x-test-bd-driver.html)

More information can be had from : http://help.blogger.com/bin/answer.py?answer=55373

Microsoft Software Licensing and Protection Services

In the current versions of the products that we publish at VLS we use Macrovision's FLexNet package to provide the licensing services.

Today, I found out that Microsoft has released a new licensing product called "Microsoft Software Licensing and Protection Services" (SLP), which provides an API and SDK to protect IP as well as monetize your .NET software products.

protect-innovate-manage

A couple of major differences between FlexNet and SLP is the fact that SLP provides native .NET support. (FlexNET - can be used with .NET via interop). The other is that SLP also provides for protection from code reverse engineering via a code transformation technology called "Code Protector".

So is SLP going to be a DotFuscator and FlexNET killer?

One of the biggest features that I could not find out about in SLP is whether it supports network based licensing tokens (aka floating licenses).

Keep watching to see my comparison between FlexNET and SLP (That is if I can get an evaluation license to SLP easily).

Some of the things I would like to check out:

  1. If the code transformation technology leads to slowdown of the application.
  2. How easy is it to customize what is transformed in the dlls - so that the API parts of the dlls are still accessible to other programmers?
  3. Does SLP support network based licenses?
  4. How are the licenses locked? (ie computer id, Mac id, etc). Also does it support dongles?
  5. What reporting capabilities are available from the licensing service?

News of MSLP's release via Protect your Assets.

Saturday, February 23, 2008

LiDAR Server - serving LIDAR data via the Internet

During the ILMF 2008 conference that was held in Denver, QCoherent released a prototype of a web service that allows users to visualize as well as work with LIDAR data hosted on a central server.

The service which is currently called "LiDAR Server" (http://www.lidarserver.com/) is running off of a 1.3 GHz Celeron D processor and 1GB of RAM machine. LiDAR Server allows the user to visualize LIDAR data using TINS and even allows you to analyze the data using a profile viewer. In addition the service also allows you to extract derivative products from the point cloud - such as contours, TINs, etc.

LidarServer is still a prototype and is sort of clunky - but the concept is truly ground breaking. The idea of hosting of LIDAR data on a central server is not new - USGS Click is one such service. But being able to interact with the data itself and in addition to be able to save derivative products from the original data - is new and I don't think has been done before.

Such a service would be of enormous use to government users - such as cities or the forest service - who might want their data to be available to a wide range of users. It also allows the users of such a service to quickly disseminate their LIDAR data as soon as its available to them. Finally being able to use the data from within a web browser makes the data accessible to even those who don't have a GIS application such as ArcMAP or QTModeller.

My thoughts on improvements to this service:

  • Viewer: Currently the view into the data is static. Each click requires the page to be reloaded with a new set of images.
    • The interaction with the viewer should be more in tune with Web2.0. It should be dynamic, and data should automatically get cached behind the scenes - so that I can move around in the data just as I would with Google Maps.
    • It would be even more awesome if QC would implement their viewer much like Microsoft's Virtual Earth 3D viewer. This would allow one to work with their data in a 3D environment, instead of just a 2d view.
  • Web services: The way to go forward in my mind is to actually break this technology into 2 pieces.
    1. A web page based viewer.
    2. Actual web services that would allow developers to interact with the data via REST (or SOAP)

Implementing LiDAR Server as these two separate components will then allow other developers to create more plugins based on the web service. The web service would be the key to opening up the data to a myriad other uses. The LIDAR data could then be consumed within applications such as ArcMAP or QTModeller in addition to the web page based viewer for visualization. Applications such as LIDAR Analyst could directly download the data and generate derivative products and upload it back to the server. One might even be able write plugins that will allow for visualization of the data within Virtual Earth or Google Earth.
In addition if the web-service can serve out images (just as it does now), it would be possible to load the data directly into Google Maps (or Google Earth) via image overlay tiles.

LiDAR Server is definitely one of those technologies that makes me exclaim "Now why didn't I think of that!"

SNAG-0003

LiDAR Server showing an overview of the LIDAR data, an in-depth view of the data as well as a profile of the data.

Podcasting while on the move

BlogTalkRadio has an interesting service that will be useful for those who like to pod cast as an event is occurring or when you are on the move.

Called Cinch (http://cinch.blogtalkradio.com/), the service provides you with a call in number, to which you place a call, leave a message, which then is converted to a digital file and a RSS is generated for your pod-cast.

Sounds like a great service. Though I haven't tried it out. So I am not sure of the quality of the recordings and if the service employs any on the fly filtering to cancel out honking of car horns or the drone of engines.

But its definitely a cool idea!

Tuesday, February 19, 2008

Developer RoadTrip

The code trip is a developer road trip that some Microsoft evangelists are taking visiting US cities. Included in the schedule is a stop-over at Missoula. This would be a cool time to meet and hear some very talented MS speakers. Also you will get to look at and play with some MS tools that have been released recently (like VS 2008, Silverlight, etc.)

You might also get to see some stuff being blown up!

The Missoula stop over is scheduled for March 12th. More information is available at : The Code Trip

Friday, February 15, 2008

VS 2008 - Professional

P2151219Until today I was using the RTM version of VS2008. With less than 20 days left to the end of my evaluation period of Visual Studio 2008, today the DHL guy brought me my very own copy of VS 2008, complete with a key for the pro version!

http://www.defyallchallenges.com/

Wednesday, February 13, 2008

TomTom, portable GPS car navigation systems

TomTom launches online content-sharing platform through TomTom HOME (link)

TomTom released a major upgrade to its TomTom home software yesterday. This version of TT Home is supposed to make it so that "Users can seamlessly download, upload and share content with other members of the TomTom satnav community for free".

Now to go and see whether it works with my TT One 3rd Ed. (according to the website - it should).

Here are the interesting parts from the press release:

  • Users simply connect their device to their computer, launch TomTom HOME and select the type of content that interests them. Within each area, the user will see a list of content supplied either by TomTom, a third party or individual TomTom customers. They simply click on the ‘add’ button to install the content onto their TomTom device. To upload and share content, users simply fill in a short description of the content and can then easily transfer the item from their device to TomTom HOME.
  • Symbolizing the importance of user-generated content, users can rate content via a star system, as well as sorting the content by popularity in the TomTom community. Additionally, TomTom HOME will automatically distribute any updates to existing content. For example, if a user updates a POI set of favorite restaurants, their changes would automatically be sent out to TomTom HOME users who have previously downloaded that set.
  • New management improvements to Map Share, TomTom’s patented map improvement technology. Now users can limit the corrections they download by region, enabling those with limited memory space on their device to use Map Share more selectively. Additionally, Map Share now features a status indicator which keeps users informed on how up-to-date their maps are.

The software can be downloaded from: http://www.tomtom.com/plus/service.php?ID=17&Lid=4

screenshot

A car that runs on air?

Aircar. Image: BBCAccording to this article in today's edition of the BBC, the Tata company is going to begin selling a car that is powered by air in India. Tata is the same company that recently released the people car - a car that sells for about $2500.

The car was developed by a French inventor.

A car that runs on air - would mean that it would be zero emissions Though its carbon footprint wont be zero - as the power required to compress the air would have to come from somewhere. The important thing would be that instead of the emissions occurring in a city - they would occur some place remote. And if the power came from a fossil fuel fired plant - the emissions can be scrubbed or sequestered into the ground. Though the ideal case would be if the power came from a sustainable source such as a wind or solar farm.

For a city like Denver, where emissions are such a huge problem - these cars would be great.

The biggest question is the safety of carrying high pressured air in your car. According to the inventor - the air is stored in carbon fibre tanks - which wont blow - but will rip - and so wont be an issue.

Another issue is that these cars have to be made extremely light - and so air-conditioning equipment might not be available. Without that - this car would be unusable in the winter out here in Colorado.

But the bottom line is - I would buy a car like this for daily city driving.

India's Tata backs air-power car
BBC NEWS | Science/Nature | India's Tata backs air-power car

http://www.popularmechanics.com/automotive/new_cars/4217016.html

http://www.theaircar.com/

http://www.mdi.lu/eng/affiche_eng.php?page=accueil

Tata press release:http://www.tatamotors.com/our_world/press_releases.php?ID=281&action=Pull

Saturday, February 09, 2008

Understanding Representational State Transfer

Understanding Representational State Transfer?? What???? Well you might have heard of it by its more common name "REST". And you most probably use it on a daily basis - it is how the browser gets the web-pages to you.

Here is a nice simple explanation of what it is: How I Explained REST to My Wife by Ryan Tomayko

8088619_4fdba8cebd_o

from: http://www.flickr.com/photos/44788450@N00/8088619/

Thursday, February 07, 2008

Configuring Visual Studio to Debug .NET Framework Source Code

If you haven't heard about this before - Microsoft now provides code to many of the files in the .NET framework as well as the PDB files - so that you can debug into the framework methods.

Shawn Burke has written about how to setup Visual Studio so that you can perform the debugging.
Configuring Visual Studio to Debug .NET Framework Source Code

Visual Studio will download the files on an as needed basis. That can be a problem if you arent connected all the time or if you dont have Visual Studio and all you want to do is read the source code.

Now there is a tool that will allow you to download the entire set of files at once.

.NET Mass Downloader

Different flavors of Windows Mobile 6

I recently began playing with the Windows Mobile 6 SDK and the first thing that you realize are there are 2 major flavors - Standard and Professional. Within these two flavors - there are more choices to make. Truly mind boggling!

Here is what I found from my research:

4 The first thing to realize is that there are 3 flavors of the devices that you can buy: Standard, Classic and Professional. Classic and Professional devices support touch screens, whereas Standard does not. If you wish to develop for the classic or the professional devices, then you need the professional version of the WM6 sdk.

The standard and professional devices are smartphones - support phone services as well as act as a PDA, the classic devices - are only PDAs. (If you are looking for a map from the old devices then basically the Windows Mobile for PocketPC platform is now the WM6 Classic platform and the old Smartphone platform is now the Standard and Professional WM6 platforms).

The good news is that even though there are two versions of the SDK, there is quite a large overlap over the libraries used and the installer created using any one of the SDKs can be used to deploy to all three types of devices.

Here is a summary of the different types of devices supported by the 2 versions of the SDK:

  • Windows Mobile 6 Standard SDK (does not support touch screens, but supports phones)
    • Windows Mobile 6 Standard (176x220 pixels - 96 dpi)
    • Windows Mobile 6 Standard Landscape QVGA (240x320 pixels - 131 dpi)
    • Windows Mobile 6 Standard QVGA (320x240 pixels - 131 dpi)
  • Windows Mobile 6 Professional SDK (supports touch screens - all versions except classic support phone services)
    • Windows Mobile 6 Classic (240x320 pixels - 96 dpi)
    • Windows Mobile 6 Professional (240x320 pixels - 96 dpi)
    • Windows Mobile 6 Professional Square (240x240 pixels - 96 dpi)
    • Windows Mobile 6 Professional Square QVGA (320x320 pixels - 128 dpi)
    • Windows Mobile 6 Professional Square VGA (480x480 pixels - 192 dpi)
    • Windows Mobile 6 Professional VGA (480x640 pixels - 192 dpi)

One can use either Visual Studio 2005 or 2008 for developing applications for WM6.

For code that will run on the device - there are two major ways in which you can create your applications:

  • Use native code for high performance, if you need direct hardware access, or if you require the smallest footprint. For native development, use Visual C++ to access Windows Mobile’s native APIs, as well as the Win32, ATL, and MFC frameworks.
  • Use managed code with the .NET Compact Framework for user interface-centric applications that require fast time-to-market or rapid application development. You should also use managed code if you want easy access to Web services or data held in SQL Server or SQL Server Compact Edition.  With .NET Compact Framework, you can use Visual Basic .NET or C# to access a healthy subset of the.NET Framework libraries.  Windows Mobile 6 ships with the .NET Compact Framework in ROM.
  • Useful links:

    Monday, February 04, 2008

    C# 3.0 - New Language Features - Part 4

    Extension Methods

    Many times the classes that you are provided with (maybe as part of the BCL or someone else's API) wont have a method that you use often on instances of that class. For example - take the string class. It doesn't have a Right method that allows you to easily extract n characters from the right of that string. This would normally mean that you have to write a static method and call it - providing the string as one of the arguments.

    The only problem with writing a static method that returns the n right most characters is that someone else who might work on your code might not realize that a function like that exists and might write duplicate code to perform the same function.

    The way around this problem would be if we could write methods - that extend the set of methods provided by a class. Thus a method called Right would appear as one of the methods available on the string class objects.

    The solution is now available as part of C# 3.0 and its called "Extension Methods".

    Here is the Right method - that will return the right most n characters from a string - written as an extension method.

    public static class ExtensionMethods
    {
    public static string Right(this string inString, int numChars)
    {
    if (inString == null)
    return null;
    if (numChars < 0 || numChars > inString.Length)
    throw new ArgumentOutOfRangeException("numChars");
    return inString.Substring(inString.Length - numChars, numChars);
    }
    }



    Here is what you need to know to write an extension method.




    1. Extension methods need to be written in static classes.


    2. The first argument is of the type that the method is being extended on. The first argument is preceded by the keyword this.


    3. Extension methods are available only as part of C#3.x.


    4. Extension methods are a feature of the compiler and are not available at run-time.



    The above extension method will be available on objects of string type. An additional requirement is that the namespace in which the extension method was declared must be available (either by a using statement or by declaration). The following shows how the extension method is used.




    string sample = "The lazy brown fox";
    Console.WriteLine(sample.Right(9)); //returns brown fox



    The reason that I like extension methods is the fact that in VS 2008 - intellisense provides support to discover such methods - as shown in the following screen shot.



    2 1



    The image on the left shows intellisense showing all the member methods - as well as the extension method Right, that I defined. (Notice the blue down arrow - symbolizing an extension method). The image on the left shows the parameter info for the right method. (Again notice that the parameter info is shown as though Right is a member method of the string class - except for the prefix that tells you that it is in fact an extension method).



    As extension methods are a compile time feature - basically - a shortcut for your code - what happens when the code is compiled is that the instance method syntax is substituted with the call to the actual static method. This is shown in the code below - which is the IL generated on a  call to the Right extension method. (See example above):




    L_0001: ldstr "The lazy brown fox"
    L_0006: stloc.0
    L_0007: ldloc.0
    L_0008: ldc.i4.s 9
    L_000a: call string CSharp35FeaturesEM.ExtensionMethods::Right(string, int32)



    Notes:

    Clash between names of an existing method and an extension method with the same arguments:

    So what happens if there is a clash in the names of the methods. In such a case - the method defined within the class takes precedence over the extension method with the same name. For example if I defined an extension method called Contains as follows:




    public static bool Contains(this string inString)

    Then this extension method will not be available for calling as instance method. (Though you could call it as a normal static method).


    Clash between names of two extension methods with the same arguments:

    In case of a clash in names between 2 extension methods on the same class - then a compiler error will be generated and the only way to call one the methods will be via the static method syntax.



    public static class ExtensionMethods
    {
    public static string Left(this string inString, int numChars)
    {
    return "Left 1";
    }
    }

    public static class ExtensionMethods2
    {
    public static string Left(this string inString, int numChars)
    {
    return "Left 2";
    }
    }



    Trying to call the extension method Left as follows:

    sample.Left(3); will result in a "error CS0121: The call is ambiguous..."



    The only way to call one of the methods is by using static method syntax as follows:

    ExtensionMethods.Left(sampleString, 3);

    Sunday, February 03, 2008

    C# 3.0 - New Language Features - Part 3

    Automatic Properties

    Automatic properties is a feature that reduces the amount of typing that a developer has to perform to implement basic properties - properties that don't do anything other than set or return the value of backing value.

    An example of such properties is shown in the following old school code:

    class OldPerson
        {
            static public void TestPerson()
            {
                OldPerson testPersonOne = new OldPerson();
                testPersonOne.FirstName = "XYZ";
                testPersonOne.LastName = "abc";
    
                Console.WriteLine(testPersonOne.FirstName + " " + testPersonOne.LastName);
            }
            private string m_firstName;
            public string FirstName { get { return m_firstName; } set { m_firstName = value; } }
            private string m_lastName;
            public string LastName { get { return m_lastName; } set { m_lastName = value; } }
        }

    In the above example - m_firstName and m_lastName are simply present as backing stores for the properties FirstName and LastName. Wouldn't it be nice to be able to just define the properties instead of having to define both the backing store and the properties.

    In C# 3.0 this is possible with the feature called "Automatic Properties".

    The following is an example of using automatic properties:

    class Person
        {
            static public void TestPerson()
            {
                Person testPersonOne = new Person();
                testPersonOne.FirstName = "XYZ";
                testPersonOne.LastName = "abc";
    
                Console.WriteLine(testPersonOne.FirstName + " " + testPersonOne.LastName);
            }
            public string FirstName { get; set; }
            public string LastName { get; set; }
        }

    The FirstName and LastName properties are simply defined by the name of the properties followed by get; set;.

    Here are the implementation details:

    • Automatic properties must define both the get and set accessors.
    • The default access level of the set and get accessors is internal.
    • One can define access level on the accessors as shown in the following code, where the set accessor is defined as having only private access and hence the property has read only access from other classes.
      public string FirstName { get; private set; }
      public string LastName { get; private set; }
    • One cannot define the access level on both the accessors of a property: hence the following is illegal
      //even setting both to public is illegal
      public string LastName { private get; private set; }
    • Automatic properties is a compile time feature. What happens is the compiler automatically creates the backing store for you. The backing store is not available to the developer. The name of the compiler generated backing store is random and hence cannot be retrieved using reflection (atleast not easily). It is because the backing store cannot be accessed by the developer - that both the set and get accessors have to be defined on the property.
    • The fact that the developer cannot access the underlying backing store means that they cannot directly mess around with the backing store. So one wont be able to do the following as was done with the OldPerson class:
      public void MessWithPrivateData()
      {
            m_firstName = null;
            m_lastName = null;
      }
    • Automatic properties can return complex types - such as structs and classes, as shown below:
      public OldPerson OldPerson { get; set; }

    Saturday, February 02, 2008

    ShipGooder: Find out the costs of mailing using different services and service types

    flockofmailIt is immensely hard to determine the costs of mailing a package right now. Typically one has t o visit multiple service provider websites and keep track of the costs from each one.

    Not anymore! ShipGooder allows you to specify the to and from zip codes and the weight of the package and shows you a matrix of mailing costs using different providers and service types (over-night, ground, etc).  Currently they seem to support all the large providers in the US - USPS, UPS, DHL and FEDex

    ShipGooder

    Save on Next Year's Taxes - TurboTax tips

    lgo-turbotax-logoThese tax saving tips are courtesy of TurboTax - they come up once you have finished filing your taxes. There are some very good tips in here - so I decided to post them.

    YOUR HOME

    Whether you're a seasoned real estate investor or thinking about buying your first home, we have money-saving tips for you:uncle_sam_wink

    Homeowner's bible
    . Be a packrat with paperwork. Some costs associated with buying a new home affect your tax basis, the amount from which you'll figure your profit when you sell. You can deduct other costs in the year of the purchase, including any points you pay (or the seller pays for you) to get a mortgage and any property taxes paid by the seller in advance for time you actually own the home. Keep paperwork on home improvements, too.

    Use your IRA to save for your first home. Sure, the R in IRA stands for retirement, but an IRA can be a powerful tool when you're saving for a home. Up to $10,000 can be withdrawn penalty-free for the purchase of your first home.

    Don't underestimate the cost of home-equity debt
    . Generally, interest on up to $100,000 of debt secured by your home can be deducted, no matter what you use the money for. But if you are among the growing number of taxpayers who pay the alternative minimum tax (AMT), home-equity debt is only deductible if the loan was used to buy or improve your home.

    Money_in_Home Stay actively involved in rental real estate
    . Anti-tax-shelter legislation can prevent losses from real estate investments from being deducted against other kinds of income. However, if you are actively involved in a rental activity, you can deduct up to $25,000 of such losses, if your adjusted gross income is less than $100,000. You don't have to mow grass and unclog toilets to qualify as actively involved, but you should make sure you're involved in setting rents and approving tenants and management firms.

    Take advantage of tax-free rental income
    . You may not think of yourself as a landlord, but if you live in an area that hosts an event that draws a crowd, such as the Super Bowl or a major golf tournament, renting out your home temporarily could make you a bundle, tax-free. A special provision in the law lets you rent out your home for up to 14 days a year without having to report a dime of the money you receive as income.

    Convert a vacation home to your principal residence
    . It's perfectly legal to sell your home of two years, claim tax-free profit up to $250,000, and then move into a vacation property. After you have lived in that home for two years, you can sell and claim tax-free profit up to $250,000, including any increase in value from the days it was a vacation home. It is $500,000 for married couples.

    Second homes can offer a vacation from taxes
    . If you're trying to decide whether you can afford a second home, remember that you'll get some help from the IRS. Mortgage interest on a loan to buy a second home is deductible, just as it is for the mortgage on your principal residence. Interest on up to $1.1 million of first- and second-home debt can be deducted. Property taxes can be written off, too. Things get more complicated - and perhaps more lucrative - if you rent out the place part of the year to help cover the bills.

    Save energy, save taxes
    . Home improvements designed to save energy can reduce your tax bill, too. There is a tax credit worth 10% of the cost of new insulation, doors, windows, and high-efficiency furnaces, water heaters, and central air conditioning. The maximum credit is $500, with no more than $200 attributable to windows. A bigger credit is available if you install a solar energy system. These tax breaks are set to disappear after 2007.

    MARRIAGE

    27992 Tying the knot can save you cash. Here are a couple of things for the newlyweds to consider:

    Time your wedding
    . If you're planning a wedding near the end of the year, put the romance aside for a moment to consider the tax consequences. Tax law still includes a marriage penalty that forces some pairs to pay more combined tax as a married couple than as singles. For others, tying the knot saves on taxes. Consider whether it's in your best interest to have a December or January ceremony.

    A tax shuffle for newlyweds:
    Whether you have one job between you or two or more, revise withholding at work to reflect the tax bill you'll owe as a couple. There's still a marriage tax penalty for some couples, but most couples get a marriage tax bonus and pay less than if they were single.

    KIDS AND FAMILY

    kids-money-question Oh, the joys of parenthood. Here are some money-savers for battle-worn parents and rookie moms and dads alike:

    Pay child-care bills with pre-tax dollars
    . After taxes, it can easily take $7,500 or more of salary to pay $5,000 worth of child care expenses. But, if you use a child-care reimbursement account at work to pay those bills, you get to use pre-tax dollars. That can save you one-third or more of the cost, since you avoid both income and Social Security taxes. If your boss offers such a plan, take advantage of it.

    Make the most of a child-care reimbursement account
    . If Mom and Dad both work and have access to a flex plan, it's worth more to a spouse whose salary is still subject to Social Security tax than to one who has earned enough to stop paying Social Security tax for the year. Money you run through a reimbursement plan avoids the Social Security tax, as well as the income tax. That saves an extra 6.2% for those still subject to Social Security tax. The maximum wage subject to Social Security tax is $97,500 for 2007.

    Deduct interest paid by Mom and Dad
    . Until recently, parents had a good reason not to help their kids pay off student loans. If the parents were not liable for the debt, then no one got to deduct the interest. Now it's treated as if the parents gave the money to the debtor (who then paid it toward the loan) instead of the loan company. The child can take the tax deduction as long as the parents can't claim him or her as a dependent.

    Save for college the tax-smart way
    . Stashing money in a custodial account can save on taxes. But it can also get you tied up with the expensive kiddie tax and gives full control of the cash to your child when he or she turns 18 or 21. Using a state-sponsored 529 college savings plan can make earnings completely tax free and lets you keep control over the money. If one child decides not to go to college, you can switch the account to another child or take it back.

    Contribute to a Coverdell
    . You can contribute up to $2,000 a year per student to a Coverdell Education Savings Account. You don't get a deduction, but money you stash in a Coverdell for, say, a child or grandchild grows tax deferred and can be withdrawn tax free to pay education bills, including elementary and high school expenses. The Contributions for 2007 can be made as late as April 15, 2008, but the sooner the money is deposited the sooner earnings are sheltered from taxes.

    Minimize the bite of the kiddie tax
    . The rule that taxes a child's income at the parents' rate now covers children up to age 18. You can minimize the damage by steering a child's investments into tax-free municipal bonds or growth stocks that won't be sold until the child turns 18.

    Tally adoption expenses
    . Thousands of dollars of expenses incurred in connection with adopting a child can be recouped via a tax credit, so it pays to keep careful records. You may be able to deduct as much as $11,390 for 2007, and $11,650 for 2008. If you adopt a child with special needs, you get the maximum credit even if you spend less.

    NEW JOB

    Nailing a new job is difficult enough. Fortunately, with TurboTax it's easy to report your new income and save a few bucks along the way. Here are a few tips to keep in mind:

    Tally your job-hunting expenses
    . As long as you're looking for a new position in the same line of work, you can deduct job-hunting costs, including travel expenses such as food, lodging and transportation, if your search takes you away from home overnight.

    Keep track of the costs for a job-related move
    . If the new job is at least 50 miles farther from your old home than your old job was, you can deduct the cost of the move even if you don't itemize expenses. If it's your first job, the mileage test is met if the new job is at least 50 miles away from your old home. If you move after getting married, and either you or your new spouse has a job at the new location, you can deduct the cost of moving yourselves and your belongings (including all those wedding presents).

    CHARITABLE CONTRIBUTIONS

    Help your favorite charities and improve your tax picture with these tips:

    Put away your checkbook
    . If you plan to make a significant gift to charity in 2007, consider giving appreciated stocks or mutual fund shares that you've owned for more than one year instead of cash. Doing so supercharges the saving power of your generosity. Your charitable contribution deduction is the fair market value of the securities on the date of the gift, and you never have to pay tax on the profit.

    Be creative with your generosity
    . A charitable-remainder trust can avoid capital gains taxes on appreciated assets, allowing you to receive a tax deduction now for a charitable contribution made after your death. A charitable-lead trust can help you avoid taxes on appreciated assets, earn an immediate tax deduction, and still provide an inheritance for your heirs later on. A donor-advised fund can earn you a deduction for the full value of appreciated assets now, even though you won't have to determine who will benefit from your generosity until later

    Tote up out-of-pocket costs of doing good
    . Keep track of what you spend while doing charitable work. This can include what you spend on stamps for a fundraiser, the cost of ingredients for casseroles you make for the homeless, or the number of miles you drive your car for charity. Add such costs to your cash contributions when figuring your charitable contribution deduction.

    INVESTING

    You need a break now and then, but we can help keep your money working year-round. Rest assured that TurboTax can handle your investment situation, from purchase to portfolio:investing

    Make your IRA contributions now, not later
    . The sooner your money is in the account, the sooner it begins to earn tax-deferred or, if you use a Roth IRA, tax-free returns.

    Avoid the wash-sale rule
    . If you sell a stock, bond, or mutual fund for a loss, and then buy back the identical security within 30 days, you can't claim the loss on your tax return. The IRS considers the transaction a wash, since your economic situation really hasn't changed. It's easy to avoid being stung by the wash-sale rule, though. Watch the calendar, or buy similar but not identical securities.

    Think twice about selling stock for a profit if you're subject to AMT
    . Although long-term capital gains benefit from the same 15% maximum rate under both the regular tax rules and the alternative minimum tax, a capital gain can effectively cost more than 15% in AMT-land. The special AMT exemption is phased out as income rises. For example, a $1,000 capital gain can wipe out $250 of the exemption, effectively exposing $1,250 to tax. This means your tax bill rises by more than $150 for that $1,000 gain.

    Don't buy a tax bill
    . Before you invest in a mutual fund near the end of the year, check to see when the fund will distribute dividends. On that day, the value of shares will fall by the amount paid out. Buy just before the payout and the dividend will effectively rebate part of your purchase price, but you'll owe tax on the amount. Buy after the payout and you'll get a lower price, and no tax bill.

    Check the calendar before you sell
    . You must own an investment for more than one year for profit to qualify as a long-term gain and enjoy preferential tax rates. The holding period starts on the day after you buy a stock, mutual fund, or other asset and ends on the day you sell it.

    Keep a running tally of your basis
    . For assets you buy, your tax basis is basically how much you have invested. It's the amount from which gain or loss is figured when you sell. If you use dividends to purchase additional shares, each purchase adds to your basis. If a stock splits or you receive a return-of-capital distribution, your basis changes. Be sure to keep all your paperwork in a safe place - only by carefully tracking your basis can you protect yourself from overpaying taxes on your profits when you sell.

    Mind your portfolio for tax savings
    . Investors have significant control over their tax liability. As you near the end of the year, tote up gains and losses on sales to date and review your portfolio for paper gains and losses. If you have a net loss so far, you have an opportunity to take some tax-free profit. Alternatively, a net profit on previous sales can be offset by taking losses on sales before the end of the year.

    Tell your broker which shares to sell
    . Doing so gives you more control over the tax consequences when you sell stock. If you fail to specifically identify the shares to be sold, the tax law's FIFO (first-in-first-out) rule comes into play and the shares you've owned the longest (and perhaps the ones with the biggest gain) are considered to be sold. With mutual funds, an average basis can be used when determining gain or loss, but that alternative isn't available for stocks.

    RETIREMENT

    You've worked hard. Now it's time your money started working for you. We can help:

    Protect your heirs
    . Make sure beneficiary designations for your IRAs are up to date. If your IRA goes to your estate rather than a designated beneficiary, unfavorable withdrawal rules could cost your heirs dearly.

    Time claiming social security benefits
    . If you stop working, you can claim benefits as early as age 62. But each year you delay - until age 70 - promises higher benefits for the rest of your life. And, delaying benefits means postponing the time you'll owe tax on them.

    Dodge a 50% tax penalty
    . Taxpayers over age 70½ are required to take minimum withdrawals from their IRAs each year. Failing to do so subjects them to one of the toughest penalties in tax law: The IRS claims 50% of the amount that should have come out of the account. Contact your IRA sponsor to pinpoint the minimum required payout to avoid penalties.

    Fund an IRA for your child or grandchild
    . As soon as a child has income from a job - such as babysitting, a paper route, working retail - he or she can have an IRA. The child's own money doesn't have to be used to fund the account (fat chance that it would). Instead, a generous parent or grandparent can provide the funds, or perhaps match the child's contributions dollar for dollar. Long-term, tax-free growth can be remarkable. Just make sure that whatever income a child earns is reported on the child's tax return.

    Give it away
    . Money you give away during your lifetime won't be in your estate to be taxed at your death. That's one reason there's also a federal gift tax. However, the law allows you to give up to $12,000 ($24,000 with your spouse) to any number of people each year without worrying about the gift tax. For example, you and your spouse can reduce your estate $48,000 each year by giving $24,000 to your two children.

    MEDICAL AND HEALTHCARE

    A few quick changes and some long-term planning can help you stay healthy, physically and fiscally:

    moremoney Go for a healthy tax break
    . Be aggressive if your employer offers a medical reimbursement account, sometimes called a flex plan. These plans let you divert part of your salary to an account which you can then tap to pay medical bills. Plan this carefully as money left in the account after your medical bills have been paid, will be forfeited. The advantage? You avoid both income and Social Security tax on the money, which can save you 20% to 35% or more compared with spending after-tax money.

    Add in the value of deducting long-term care premiums
    . As you shop for long-term care insurance, remember that a portion of the cost is deductible. The older you are, the more you can write off. For employees, this is a medical expense, which means it only saves money if your medical expenses exceed 7.5% of your adjusted gross income. If you're self-employed, you avoid the 7.5% limitation and get this deduction even if you don't itemize.

    Keep careful records of the cost of medically necessary improvements
    . You might be able to deduct some of the costs associated with medically necessary improvements to your home or vehicle. These improvements - such as adding a wheelchair ramp, lowering counters, widening a doorway, or installing hand controls for a car - can increase the value of your home or vehicle. The difference between the increased value and the cost is considered a medical expense.

    Include travel expenses in medical deductions
    . In addition to the cost of getting to and from the doctor, you can deduct up to $50 a night for lodging if seeking medical care requires you to be away from home overnight. You can include lodging for a person traveling with the person seeking care. The $50 is per person, so if you travel with a sick child to get medical care, you can deduct $100 a day. As with other medical expenses, you get a tax benefit only to the extent your expenses exceed 7.5% of your adjusted gross income.

    MORE WAYS TO SAVE

    Check out these valuable tips to fatten your pocketbook:
    12electric_m_m
    Buy a hybrid
    . You can drive away with a tax credit if you buy a gasoline/electric hybrid car in 2008. The size of the credit depends on how fuel-stingy your new car is, but the tax savings can range from $250 to more than $2,000. Buy early since the tax credit is reduced after the manufacturer sells its 60,000th vehicle.

    Give yourself a raise
    . The odds are high that you're having too much tax taken out of your paycheck every payday. The evidence is clear: If you have a big refund coming, too much is coming out of your paycheck. About 90 million of the returns filed in the U.S. last year called for refunds averaging more than $2,200. That's almost $200 each month. Filing a new W-4 with your employer (get one from your payroll office) will ensure you get more of your money when you earn it.

    Ask your boss to pay for you to improve yourself
    . Companies can offer employees up to $5,250 of tax-free educational assistance each year. That means the boss pays the bills, but the amount doesn't show up as part of your salary on your W-2. The courses don't have to be job-related and even graduate-level courses qualify.

    Don't be afraid of home-office rules
    . If you use part of your home regularly and exclusively for your job, you may be able to deduct some costs as home-office expenses, including part of your utility bills, insurance premiums, and maintenance costs.

    Pay estimated taxes ... or not
    . If you receive significant income not subject to withholding - from self-employment or investments, for example - you probably need to make quarterly estimated tax payments to avoid an IRS penalty. However, if withholding will equal 100% of your 2007 income tax bill (or 110% if your income was more than $150,000), you don't need to make estimated payments, no matter how much extra income you make this year. For more help, check out TurboTax Estimated Taxes at www.turbotax.com.

    The above article was taken from TurboTax.com

    Other TurboTax articles:

    Top 10 tax saving tips:
    http://turbotax.intuit.com/tax-tools/top_10_year_end_tax_tips/article

    Ten Tax Tips for After January 1, 2008
    http://turbotax.intuit.com/tax-tools/ten_tax_tips_for_after_the_new_year/article