<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Digital Review Blog &#187; admin</title>
	<atom:link href="http://DevelopersVoice.com/author/admin/feed" rel="self" type="application/rss+xml" />
	<link>http://DevelopersVoice.com</link>
	<description>Inside The World of Digital Products</description>
	<lastBuildDate>Mon, 05 Jul 2010 08:19:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Debugging tips for SharePoint</title>
		<link>http://DevelopersVoice.com/debugging-tips-for-sharepoint.html</link>
		<comments>http://DevelopersVoice.com/debugging-tips-for-sharepoint.html#comments</comments>
		<pubDate>Wed, 19 May 2010 03:57:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Sharepoint Tips]]></category>
		<category><![CDATA[Sharepoint]]></category>

		<guid isPermaLink="false">http://DevelopersVoice.com/debugging-tips-for-sharepoint.html</guid>
		<description><![CDATA[Debugging on SharePoint is much the same as debugging any other ASP.Net application&#8230;you can use the same techniques. Here are some of my tips for diagnosing &#38; solving your problems&#8230; Debugging starts with your first line of code As you start writing some code you need to bear in mind that at some point you will need [...]]]></description>
			<content:encoded><![CDATA[<p>Debugging on SharePoint is much the same as debugging any other ASP.Net application&#8230;you can use the same techniques. Here are some of my tips for diagnosing &amp; solving your problems&#8230;</p>
<h3>Debugging starts with your first line of code</h3>
<p>As you start writing some code you need to bear in mind that at some point you <strong>will</strong> need to debug it. This may mean attaching a debugger (easy) or looking at a crash dump (hard). This means debugging should always be at the back of your mind when writing any code&#8230;ask yourself &#8220;when this is live how am I going to find out what has gone wrong?&#8221;</p>
<p>In practice this means making full use of the features of .Net &#8230; <span style="font-family: 'Courier New';">System.Diagnostics</span>, <span style="font-family: 'Courier New';">try&#8230;catch</span>, <span style="font-family: 'Courier New';">exception logging</span>, etc. One thing in particular to remember is that if you do ever have to look at a crash dump your variable &amp; method names will be in there too. The more descriptive they are the easier it is going to be to analyse the dump. Also bear in mind that the less code in each method the easier it will be to pin-point the location of the error. <a href="http://www.knowdotnet.com/articles/refactoring_modular_readable.html" target="_blank">Les Smith</a> has some good points to make about refactoring&#8230;I would add that refactoring making debugging easier!</p>
<h3>Use <span style="font-family: 'Courier New';">Trace.Write</span> &amp; <span style="font-family: 'Courier New';">Debug.Write</span></h3>
<p>This is the first thing I would recommend. Adding these method calls at suitable places in your code can really help to solve problems. Used in conjunction with <a href="http://www.microsoft.com/technet/sysinternals/utilities/debugview.mspx" target="_blank">DebugView</a> these methods can give you great insight to what is happening within your code. Personally I use <span style="font-family: 'Courier New';">Trace</span> whenever something unexpected or &#8216;out of the ordinary&#8217; occurs, normally exceptions, but it could be anything that may help solve a problem. Calls to the <span style="font-family: 'Courier New';">Trace</span> methods remain in release code and so will add an overhead to the code execution. I generally use <span style="font-family: 'Courier New';">Debug</span> to enable me to see code execution paths during development and as these do nothing in a release build can be used much more liberally.</p>
<p>Using the <span style="font-family: 'Courier New';">Trace</span> statements can really help when you cannot attach a debugger (on a live server) to give you more information of what has gone wrong. If you ensure you use <span style="font-family: 'Courier New';">try&#8230;catch&#8230;finally</span> blocks throughout your code, using <span style="font-family: 'Courier New';">Trace</span> to log the exception makes it easy to see where the error has occurred (including the call stack) simply by running DebugView on the server.</p>
<h3>Use <span style="font-family: 'Courier New';">try&#8230;catch&#8230;finally</span></h3>
<p>When developing ASP.Net controls and WebParts I like to add <span style="font-family: 'Courier New';">try&#8230;catch</span> blocks when overriding methods like<span style="font-family: 'Courier New';">OnInit</span>, <span style="font-family: 'Courier New';">OnLoad</span>, <span style="font-family: 'Courier New';">CreateChildControls</span> and <span style="font-family: 'Courier New';">Render</span>. I do this because I don&#8217;t what the whole page to fail to render simply because one control has a problem&#8230;If the search box control throws an exception, why shouldn&#8217;t the rest of the page display? Therefore my Render method would look like this&#8230;</p>
<p><span style="font-family: 'Courier New';">protected override void Render(HtmlTextWriter writer)<br />
{<br />
try<br />
{<br />
// Do something to render the control, which may cause an exception</span><span style="font-family: 'Courier New';"><br />
}<br />
catch (Exception ex)<br />
{<br />
Trace.Write(ex);<br />
Trace.WriteLine(HttpContext.Current.Request.Url.ToString());<br />
// Maybe render an error message</span><span style="font-family: 'Courier New';"><br />
}<br />
}</span></p>
<p>This way if an exception is thrown the page will still render&#8230;the user may not get the full functionality of the page, but at least they get something. Essentially wrapping your code in a <span style="font-family: 'Courier New';">try&#8230;catch</span> block has a negligible hit in terms of performance and so you should look to using them wherever something may throw, even if you just <span style="font-family: 'Courier New';">Trace</span> and re-throw the exception. Also you should bear in mind that throwing an exception is a big overhead and should only be used when a real exception has occurred&#8230;something you really did not expect and cannot recover from.</p>
<h3>Check the SharePoint log files</h3>
<p>These will be located in the <span style="font-family: 'Courier New';">/12/LOGS</span> folder. The log files contain errors &amp; messages generated by SharePoint. I have to say that generally they don&#8217;t give you as much information as you would like (sometimes nothing), but occasionally they point you straight to the problem. Either way you should always check them just in case.</p>
<p>You should also know that you can increase or decrease the amount of logging SharePoint does in Central Administration. Here you can change the verbosity of the logging within different parts of the application. Its not the easiest interface to use, but you can increase the number of messages logged&#8230;doing this has solved problems for me in the past.</p>
<p>You change the settings under &#8216;Logging and Reporting&#8217; in the operations tab&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://DevelopersVoice.com/debugging-tips-for-sharepoint.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET: Controlling Caching in ASP.NET Web Forms</title>
		<link>http://DevelopersVoice.com/asp-net-controlling-caching-in-asp-net-web-forms.html</link>
		<comments>http://DevelopersVoice.com/asp-net-controlling-caching-in-asp-net-web-forms.html#comments</comments>
		<pubDate>Wed, 19 May 2010 03:51:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Asp.net]]></category>
		<category><![CDATA[.net]]></category>

		<guid isPermaLink="false">http://DevelopersVoice.com/?p=19</guid>
		<description><![CDATA[ASP.NET allows you to cache pages. The means that when the code behind the page runs, it produces HTML, the HTML is sent down to the client, however a copy is stored in the memory of the web server. If the same page is requested again, then the page is retrieved from the cache and [...]]]></description>
			<content:encoded><![CDATA[<p>ASP.NET allows you to cache pages. The means that when the code behind the page runs, it produces HTML, the HTML is sent down to the client, however a copy is stored in the memory of the web server. If the same page is requested again, then the page is retrieved from the cache and the code is not rerun. You have virtually infinite flexibility on controlling when the cache gets flushed.</p>
<p>The most basic caching is implemented by placing this line at the top of your ASPX page:</p>
<pre>&lt;%@ OutputCache Duration="3600" VaryByParam="none"%&gt;</pre>
<p>What this tells the ASP.NET caching code is to cache the page for one hour.</p>
<p>The full spec for the @OutputCache lines is:</p>
<pre>&lt;%@ OutputCache Duration="#ofseconds" Location="Any � Client � Downstream �
Server � None" VaryByControl="controlname" VaryByCustom="browser �
customstring" VaryByHeader="headers" VaryByParam="parametername" %&gt;</pre>
<p><strong>Duration</strong> is a count in seconds to cache.</p>
<p><strong>Location</strong> allows the caching to occur on the server, on the client, on a proxy server in between. The default is Any. If you always want server caching (which seems to me to be the most useful choice), change the line to read:</p>
<pre>&lt;%@ OutputCache Duration="3600" Location="Server" VaryByParam="none"%&gt;</pre>
<p><strong>VaryByControl</strong> is only used by user controls, not on standard web pages. See the .NET documentation for more details.</p>
<p><strong>VaryByCustom=&#8221;browser&#8221;</strong> keeps a different copy of the output for each browser name and major version information. So if you have cloaking by browser version going on (which is easy to implement in .NET), then each separate page will get delivered.</p>
<p><strong>VaryByCustom=&#8221;customstring&#8221;</strong> Allows you to specify a string that will be passed to your code. To make this useful, you must then override the GetVaryByCustomString method in the Global.asax file. For example, place this line in your ASPX file:</p>
<pre>&lt;%@ OutputCache Duration="3600" Location="Server" VaryByCustom="Referer" VaryByParam="none"%&gt;</pre>
<p>Then in your Global.asax file add the following code:</p>
<pre>public override String GetVaryByCustomString(System.Web.HttpContext hcContext, String strCustom)
{
    switch (strCustom)
    {
    case "Referer":
        Uri uriReferrer = hcContext.Request.UrlReferrer;
        String strRet;
        if (uriReferrer != null)
            strRet = uriReferrer.Host;
        else
            strRet = null;
        return strRet;
    default:
        return base.GetVaryByCustomString(hcContext, strCustom);
    }
}</pre>
<p><strong>VaryByHeader</strong> allows you to cache based off of some field in the HTTP header sent by the client. The classic example is based off the Accept-Language header line.</p>
<p><strong>VaryByParam</strong> allows you to cache different versions based off of querystring or post field parameters. So http://www.domain.com/foo.aspx?bar=baz would be cached separately from http://www.domain.com/foo.aspx?bar=bletch</p>
<p>There are also ways of controlling the caching through code.</p>
]]></content:encoded>
			<wfw:commentRss>http://DevelopersVoice.com/asp-net-controlling-caching-in-asp-net-web-forms.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET Tip: Using a Nullable Value Type</title>
		<link>http://DevelopersVoice.com/net-tip-using-a-nullable-value-type.html</link>
		<comments>http://DevelopersVoice.com/net-tip-using-a-nullable-value-type.html#comments</comments>
		<pubDate>Tue, 18 May 2010 05:44:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSharp tips]]></category>

		<guid isPermaLink="false">http://DevelopersVoice.com/?p=17</guid>
		<description><![CDATA[How often do your programs grab some data from a database and throw the values returned into local variables without giving the data another thought? I used to, until my programs started throwing exceptions because of nulls in the data. So, what did I do? I checked every field coming back from the database that [...]]]></description>
			<content:encoded><![CDATA[<p>How often do your programs grab some data from a database and throw the values returned into local variables without giving the data another thought? I used to, until my programs started throwing exceptions because of nulls in the data. So, what did I do? I checked every field coming back from the database that could possibly be null before storing it in a local variable. Depending upon what your database allows, this could lead to an explosion of code. Here is an example of the type of code that was used to check for a null value before storing it in a local variable. In this case, the BranchCode from a DataReader is being checked:</p>
<blockquote>
<pre>double BranchCode;
if (dr["BranchCode"] == DBNull.Value)
   BranchCode = -1;
else
    BranchCode = dr["BranchCode"];</pre>
</blockquote>
<p>This worked, but later in the code the &#8220;magic value&#8221; of -1 would have to be checked to see whether the variable had a valid BranchCode.</p>
<blockquote>
<pre>if (BranchCode &lt;&gt; -1)
{
   ...
}</pre>
</blockquote>
<p>Nullable types allow a cleaner solution to this problem. You can store the data returned from the database into a nullable variable without worry about an exception being thrown at that time. You still may have to perform the check for a valid value later, depending upon exactly how you are using the variable. You can declare a value type variable as nullable using the ? type modifier. Nullable types have two read-only properties that you use to get information about the variable. HasValue returns false if the value is null; otherwise, it returns true. If HasValue returns true, you can access the Value property, which contains the currently stored value. If you attempt to use the Value property when HasValue is false, an exception will be thrown. Here is what the example above would look like using a nullable type:</p>
<blockquote>
<pre>double? BranchCode;
BranchCode = dr["BranchCode"];

if (BranchCode.HasValue)
{
   switch (BranchCode.Value)
   {
      ...
   }
}</pre>
</blockquote>
<p>In addition to checking HasValue, you can also just compare the value to null, like this</p>
<blockquote>
<pre>if (BranchCode != null)
{
   ...
}</pre>
</blockquote>
<p>You do need to use some caution, however, when using nullable types. Nullable numeric types can be used in comparisons and expressions just like normal numeric expressions. If the nullable variable has a non-null value, everything will work as you would expect. If the nullable variable is null, you need to realize that the result of the expression could be null and make sure that case is handled appropriately.</p>
]]></content:encoded>
			<wfw:commentRss>http://DevelopersVoice.com/net-tip-using-a-nullable-value-type.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nokia N97 NAM &#8211; review</title>
		<link>http://DevelopersVoice.com/nokia-n97-nam.html</link>
		<comments>http://DevelopersVoice.com/nokia-n97-nam.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 04:26:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nokia]]></category>
		<category><![CDATA[preview]]></category>

		<guid isPermaLink="false">http://DevelopersVoice.com/nokia-n97-nam.html</guid>
		<description><![CDATA[Nokia N97 NAM &#8211; Specs Overview Regions available Canada Technology GSM 850/900/1800/1900 MHz UMTS 850/1900/2100 MHz Packet Data GPRS, EDGE, HSDPA SIM Card Yes World Phone Yes Operating System Symbian v9.4 (S60 5th Edition) Processor ARM11 434 MHz Internal Flash Memory 32 GB RAM No ROM No GPS Yes FlightMode Unknown Hearing Aid Compatible Unknown [...]]]></description>
			<content:encoded><![CDATA[<h3>Nokia N97 NAM &#8211; Specs</h3>
<table id="spectable" class="c_part" style="width: 100%; float: none;">
<tbody>
<tr id="hdrow1" class="thead">
<th>Overview</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row1">
<tr>
<td>Regions available</td>
<td class="nb">Canada</td>
</tr>
<tr class="cmpr odd">
<td>Technology</td>
<td class="nb">GSM 850/900/1800/1900 MHz<br />
UMTS 850/1900/2100 MHz</td>
</tr>
<tr>
<td>Packet Data</td>
<td class="nb">GPRS, EDGE, HSDPA</td>
</tr>
<tr class="cmpr odd">
<td>SIM Card</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>World Phone</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Operating System</td>
<td class="nb">Symbian v9.4 (S60 5th Edition)</td>
</tr>
<tr>
<td>Processor</td>
<td class="nb">ARM11 434 MHz</td>
</tr>
<tr class="cmpr odd">
<td>Internal Flash Memory</td>
<td class="nb">32 GB</td>
</tr>
<tr>
<td>RAM</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>ROM</td>
<td class="nb">No</td>
</tr>
<tr>
<td>GPS</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>FlightMode</td>
<td class="nb">Unknown</td>
</tr>
<tr>
<td>Hearing Aid Compatible</td>
<td class="nb">Unknown</td>
</tr>
<tr class="cmpr odd">
<td>TTY/TDD</td>
<td class="nb">Unknown</td>
</tr>
<tr>
<td>SAR</td>
<td class="nb">Head: 0.66 W/kg<br />
Body: Unknown</td>
</tr>
<tr class="cmpr odd">
<td>Languages</td>
<td class="nb">English, French, Spanish</td>
</tr>
<tr>
<td>Manufacturer Warranty</td>
<td class="nb">1 Year</td>
</tr>
<tr class="cmpr odd">
<td>Accessories Included</td>
<td class="nb">AC Charger, Data Cable, Headset, Manual, Standard Battery</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow2" class="thead">
<th>Power &amp; Battery</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row2">
<tr>
<td>Type</td>
<td class="nb">Lithium-Ion (Li-Ion), 1500 mAh</td>
</tr>
<tr class="cmpr odd">
<td>Removable Battery</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Talk Time</td>
<td class="nb">Up to:<br />
320 minutes (2G)<br />
Unknown (3G)</td>
</tr>
<tr class="cmpr odd">
<td>Standby Time</td>
<td class="nb">Up to:<br />
700 hours (2G)<br />
Unknown (3G)</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow3" class="thead">
<th>Physical Characteristics</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row3">
<tr>
<td>Design Type</td>
<td class="nb">Slider</td>
</tr>
<tr class="cmpr odd">
<td>Multi-Use Smart Phone / PDA</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Colors</td>
<td class="nb">Black, White</td>
</tr>
<tr class="cmpr odd">
<td>Dimensions [H x W x D]</td>
<td class="nb">11.7 x 5.5 x 1.6 cm<br />
(4.6 x 2.2 x 0.6 in)</td>
</tr>
<tr>
<td>Weight</td>
<td class="nb">150 grams<br />
(5.3 ounces)</td>
</tr>
<tr class="cmpr odd">
<td>Rugged Design</td>
<td class="nb">No</td>
</tr>
<tr>
<td>Antenna Type</td>
<td class="nb">Internal</td>
</tr>
<tr class="cmpr odd">
<td>Changeable Faceplates</td>
<td class="nb">No</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow4" class="thead">
<th>Display / Screen</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row4">
<tr>
<td>Type</td>
<td class="nb">Color</td>
</tr>
<tr class="cmpr odd">
<td>Technology</td>
<td class="nb">LCD (TFT)</td>
</tr>
<tr>
<td>Colors</td>
<td class="nb">16.7 million</td>
</tr>
<tr class="cmpr odd">
<td>Resolution</td>
<td class="nb">640 x 360 pixels</td>
</tr>
<tr>
<td>Size</td>
<td class="nb">Unknown</td>
</tr>
<tr class="cmpr odd">
<td>Secondary Display</td>
<td class="nb">No</td>
</tr>
<tr>
<td>Sensors</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Graphics</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Themes</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Backlit Illumination</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Battery Strength Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Signal Strength Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Voice Mail Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Text Message Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>High Speed Data Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Bluetooth Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Additional Display Features</td>
<td class="nb">-</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow5" class="thead">
<th>Input / Navigation</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row5">
<tr class="cmpr odd">
<td>Input Type</td>
<td class="nb">QWERTY</td>
</tr>
<tr>
<td>Navigation Type</td>
<td class="nb">D-pad, Touchscreen</td>
</tr>
<tr class="cmpr odd">
<td>Illuminated Keypad</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Predictive Text Entry</td>
<td class="nb">T9</td>
</tr>
<tr class="cmpr odd">
<td>Voicemail Key</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Any Key Answer</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Voice Commands</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Keypad Lock</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>External Volume Control</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>External Media Playback Controls</td>
<td class="nb">Unknown</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow6" class="thead">
<th>Call Management</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row6">
<tr class="cmpr odd">
<td>Phone Book Capacity</td>
<td class="nb">Depends on system memory</td>
</tr>
<tr>
<td>Multiple Numbers Per Contact</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Auto Answer</td>
<td class="nb">No</td>
</tr>
<tr>
<td>Photo Caller ID</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Voice Activated Dialing</td>
<td class="nb">Yes</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow7" class="thead">
<th>Web / Email / Messaging</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row7">
<tr>
<td>Web Browsing Type</td>
<td class="nb">Yes (WAP 2.0, HTML)</td>
</tr>
<tr class="cmpr odd">
<td>Browser</td>
<td class="nb">-</td>
</tr>
<tr>
<td>Javascript</td>
<td class="nb">Unknown</td>
</tr>
<tr class="cmpr odd">
<td>Flash</td>
<td class="nb">Unknown</td>
</tr>
<tr>
<td>Email</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Email Protocols</td>
<td class="nb">POP3, IMAP, SMTP, Microsoft Exchange, Lotus Domino</td>
</tr>
<tr>
<td>Additional Email Features</td>
<td class="nb">-</td>
</tr>
<tr class="cmpr odd">
<td>Messaging Services</td>
<td class="nb">SMS, EMS, MMS, IM (AIM, MSN, Yahoo)</td>
</tr>
<tr>
<td>Push-to-talk (PTT)</td>
<td class="nb">Yes</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow8" class="thead">
<th>Connectivity</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row8">
<tr class="cmpr odd">
<td>USB</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Bluetooth</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Bluetooth Profiles</td>
<td class="nb">-</td>
</tr>
<tr>
<td>Infrared</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>WiFi</td>
<td class="nb">Yes (802.11 b/g)</td>
</tr>
<tr>
<td>WiFi Encryption</td>
<td class="nb">Unknown</td>
</tr>
<tr class="cmpr odd">
<td>UMA Support</td>
<td class="nb">Unknown</td>
</tr>
<tr>
<td>Data Tethering Compatibility</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Java Applications</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Brew Applications</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Expansion Slots</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Expansion Slots Info</td>
<td class="nb">microSD (up to 16 GB)</td>
</tr>
<tr class="cmpr odd">
<td>ECML / Digital Wallet</td>
<td class="nb">Unknown</td>
</tr>
<tr>
<td>PC Synchronization</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>PictBridge</td>
<td class="nb">Unknown</td>
</tr>
<tr>
<td>TV-out</td>
<td class="nb">Unknown</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow9" class="thead">
<th>Camera</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row9">
<tr class="cmpr odd">
<td>Built-In</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Resolution</td>
<td class="nb">5+ megapixels</td>
</tr>
<tr class="cmpr odd">
<td>Zoom</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Flash</td>
<td class="nb">Yes (LED)</td>
</tr>
<tr class="cmpr odd">
<td>Additional Camera Info</td>
<td class="nb">Auto focus, Geotagging, Self-timer, Carl Zeiss Tessar lens</td>
</tr>
<tr>
<td>Video Capture / Recording</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Video Recording Formats</td>
<td class="nb">MPEG-4</td>
</tr>
<tr>
<td>Video Recording Parameters</td>
<td class="nb">-</td>
</tr>
<tr class="cmpr odd">
<td>Secondary Camera</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Secondary Camera Info</td>
<td class="nb">-</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow10" class="thead">
<th>Audio / Video</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row10">
<tr class="cmpr odd">
<td>Audio Playback</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Audio Formats</td>
<td class="nb">MP3, eAAC+, eAAC, AAC, WAV</td>
</tr>
<tr class="cmpr odd">
<td>Radio</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Video Playback</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Video Playback Formats</td>
<td class="nb">H.264 / AVC, MPEG-4, WMV, RealVideo</td>
</tr>
<tr>
<td>Mobile TV</td>
<td class="nb">Unknown</td>
</tr>
<tr class="cmpr odd">
<td>Streaming Video</td>
<td class="nb">No</td>
</tr>
<tr>
<td>External Speakers</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Headset Jack</td>
<td class="nb">Other / proprietary</td>
</tr>
<tr>
<td>Custom Ringtones</td>
<td class="nb">Truetone / MP3</td>
</tr>
<tr class="cmpr odd">
<td>Downloadable Ringtones</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Ringtone Composer</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Ringer ID</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Vibration Alert</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Speakerphone</td>
<td class="nb">Yes</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow11" class="thead">
<th>Apps</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row11">
<tr>
<td>To-Do / Task List</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Calendar</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>World Clock</td>
<td class="nb">Unknown</td>
</tr>
<tr class="cmpr odd">
<td>Alarm</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Stopwatch</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Timer</td>
<td class="nb">Unknown</td>
</tr>
<tr>
<td>Calculator</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Currency Converter</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Weather</td>
<td class="nb">Unknown</td>
</tr>
<tr class="cmpr odd">
<td>Stocks</td>
<td class="nb">Unknown</td>
</tr>
<tr>
<td>Maps</td>
<td class="nb">Unknown</td>
</tr>
<tr class="cmpr odd">
<td>Notepad</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Voice Memos / Recorder</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Games</td>
<td class="nb">Downloadable</td>
</tr>
<tr>
<td>Included Software</td>
<td class="nb">-</td>
</tr>
</tbody>
<tbody></tbody>
<tbody id="row12"></tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://DevelopersVoice.com/nokia-n97-nam.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nokia 5800 XpressMusic – Review</title>
		<link>http://DevelopersVoice.com/nokia-5800-xpressmusic-review.html</link>
		<comments>http://DevelopersVoice.com/nokia-5800-xpressmusic-review.html#comments</comments>
		<pubDate>Wed, 27 Jan 2010 03:31:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Nokia]]></category>

		<guid isPermaLink="false">http://DevelopersVoice.com/?p=5</guid>
		<description><![CDATA[Nokia 5800 XpressMusic &#8211; Specs Overview Regions available Canada Technology GSM 850/900/1800/1900 MHz UMTS 850/1900 MHz Packet Data GPRS, EDGE, HSDPA SIM Card Yes World Phone Yes Operating System Symbian 9.4 with S60 5th edition Processor ARM 11 369 MHz Internal Flash Memory 81 MB RAM 128 MB ROM 256 MB GPS Yes (A-GPS) FlightMode [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Nokia 5800 XpressMusic &#8211; Specs</strong></p>
<table id="spectable" class="c_part" style="float: none;">
<tbody>
<tr id="hdrow1" class="thead">
<th>Overview</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row1">
<tr>
<td>Regions available</td>
<td class="nb">Canada</td>
</tr>
<tr class="cmpr odd">
<td>Technology</td>
<td class="nb">GSM 850/900/1800/1900 MHz</p>
<p>UMTS 850/1900 MHz</td>
</tr>
<tr>
<td>Packet Data</td>
<td class="nb">GPRS, EDGE, HSDPA</td>
</tr>
<tr class="cmpr odd">
<td>SIM Card</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>World Phone</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Operating System</td>
<td class="nb">Symbian 9.4 with S60 5th edition</td>
</tr>
<tr>
<td>Processor</td>
<td class="nb">ARM 11 369 MHz</td>
</tr>
<tr class="cmpr odd">
<td>Internal Flash Memory</td>
<td class="nb">81 MB</td>
</tr>
<tr>
<td>RAM</td>
<td class="nb">128 MB</td>
</tr>
<tr class="cmpr odd">
<td>ROM</td>
<td class="nb">256 MB</td>
</tr>
<tr>
<td>GPS</td>
<td class="nb">Yes (A-GPS)</td>
</tr>
<tr class="cmpr odd">
<td>FlightMode</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Hearing Aid Compatible</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>TTY/TDD</td>
<td class="nb">No</td>
</tr>
<tr>
<td>SAR</td>
<td class="nb">Head: 1.00 W/kg</p>
<p>Body: 0.55 W/kg</td>
</tr>
<tr class="cmpr odd">
<td>Languages</td>
<td class="nb">English, French, Spanish</td>
</tr>
<tr>
<td>Manufacturer Warranty</td>
<td class="nb">1 Year</td>
</tr>
<tr class="cmpr odd">
<td>Accessories Included</td>
<td class="nb">AC Charger, Carrying case, Data Cable, Hand Strap, Headset, Manual, Software CD, Standard Battery, Stylus, 8GB microSDHC Memory Card, Audio Adapter, Desktop Holder, Quick Start Guide, TV Out Cable</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow2" class="thead">
<th>Power &amp; Battery</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row2">
<tr>
<td>Type</td>
<td class="nb">Lithium-Ion (Li-Ion), 1320 mAh</td>
</tr>
<tr class="cmpr odd">
<td>Removable Battery</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Talk Time</td>
<td class="nb">Up to:</p>
<p>515 minutes (2G)</p>
<p>300 minutes (3G)</td>
</tr>
<tr class="cmpr odd">
<td>Standby Time</td>
<td class="nb">Up to:</p>
<p>406 hours (2G)</p>
<p>400 hours (3G)</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow3" class="thead">
<th>Physical Characteristics</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row3">
<tr>
<td>Design Type</td>
<td class="nb">Bar</td>
</tr>
<tr class="cmpr odd">
<td>Multi-Use Smart Phone / PDA</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Colors</td>
<td class="nb">Black, Blue, Gray, Red</td>
</tr>
<tr class="cmpr odd">
<td>Dimensions [H x W x D]</td>
<td class="nb">11.1 x 5.2 x 1.5 cm</p>
<p>(4.4 x 2 x 0.6 in)</td>
</tr>
<tr>
<td>Weight</td>
<td class="nb">109 grams</p>
<p>(3.8 ounces)</td>
</tr>
<tr class="cmpr odd">
<td>Rugged Design</td>
<td class="nb">No</td>
</tr>
<tr>
<td>Antenna Type</td>
<td class="nb">Internal</td>
</tr>
<tr class="cmpr odd">
<td>Changeable Faceplates</td>
<td class="nb">No</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow4" class="thead">
<th>Display / Screen</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row4">
<tr>
<td>Type</td>
<td class="nb">Color</td>
</tr>
<tr class="cmpr odd">
<td>Technology</td>
<td class="nb">LCD (TFT)</td>
</tr>
<tr>
<td>Colors</td>
<td class="nb">16.7 million</td>
</tr>
<tr class="cmpr odd">
<td>Resolution</td>
<td class="nb">360 x 640 pixels</td>
</tr>
<tr>
<td>Size</td>
<td class="nb">3.2 inches</td>
</tr>
<tr class="cmpr odd">
<td>Secondary Display</td>
<td class="nb">No</td>
</tr>
<tr>
<td>Sensors</td>
<td class="nb">Ambient Light, Motion / Accelerometer</td>
</tr>
<tr class="cmpr odd">
<td>Graphics</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Themes</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Backlit Illumination</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Battery Strength Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Signal Strength Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Voice Mail Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Text Message Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>High Speed Data Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Bluetooth Indicator</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Additional Display Features</td>
<td class="nb"></td>
</tr>
</tbody>
<tbody>
<tr id="hdrow5" class="thead">
<th>Input / Navigation</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row5">
<tr class="cmpr odd">
<td>Input Type</td>
<td class="nb">Touchscreen</td>
</tr>
<tr>
<td>Navigation Type</td>
<td class="nb">Touchscreen</td>
</tr>
<tr class="cmpr odd">
<td>Illuminated Keypad</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Predictive Text Entry</td>
<td class="nb">T9</td>
</tr>
<tr class="cmpr odd">
<td>Voicemail Key</td>
<td class="nb">No</td>
</tr>
<tr>
<td>Any Key Answer</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Voice Commands</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Keypad Lock</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>External Volume Control</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>External Media Playback Controls</td>
<td class="nb">No</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow6" class="thead">
<th>Call Management</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row6">
<tr class="cmpr odd">
<td>Phone Book Capacity</td>
<td class="nb">Depends on system memory</td>
</tr>
<tr>
<td>Multiple Numbers Per Contact</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Auto Answer</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Photo Caller ID</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Voice Activated Dialing</td>
<td class="nb">Yes</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow7" class="thead">
<th>Web / Email / Messaging</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row7">
<tr>
<td>Web Browsing Type</td>
<td class="nb">Yes (WAP 2.0, HTML)</td>
</tr>
<tr class="cmpr odd">
<td>Browser</td>
<td class="nb">S60 Web Browser</td>
</tr>
<tr>
<td>Javascript</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Flash</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Email</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Email Protocols</td>
<td class="nb">POP3, IMAP, SMTP</td>
</tr>
<tr>
<td>Additional Email Features</td>
<td class="nb">-</td>
</tr>
<tr class="cmpr odd">
<td>Messaging Services</td>
<td class="nb">SMS, MMS, IM</td>
</tr>
<tr>
<td>Push-to-talk (PTT)</td>
<td class="nb">No</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow8" class="thead">
<th>Connectivity</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row8">
<tr class="cmpr odd">
<td>USB</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Bluetooth</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Bluetooth Profiles</td>
<td class="nb">A2DP, AVRCP, BPP, DUN, OPP/FTP, HID, HFP, HSP</td>
</tr>
<tr>
<td>Infrared</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>WiFi</td>
<td class="nb">Yes (802.11 b/g)</td>
</tr>
<tr>
<td>WiFi Encryption</td>
<td class="nb">Unknown</td>
</tr>
<tr class="cmpr odd">
<td>UMA Support</td>
<td class="nb">No</td>
</tr>
<tr>
<td>Data Tethering Compatibility</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Java Applications</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Brew Applications</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Expansion Slots</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Expansion Slots Info</td>
<td class="nb">microSD (up to 16 GB)</td>
</tr>
<tr class="cmpr odd">
<td>ECML / Digital Wallet</td>
<td class="nb">No</td>
</tr>
<tr>
<td>PC Synchronization</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>PictBridge</td>
<td class="nb">No</td>
</tr>
<tr>
<td>TV-out</td>
<td class="nb">Yes</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow9" class="thead">
<th>Camera</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row9">
<tr class="cmpr odd">
<td>Built-In</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Resolution</td>
<td class="nb">3+ megapixels</td>
</tr>
<tr class="cmpr odd">
<td>Zoom</td>
<td class="nb">Yes (3x digital)</td>
</tr>
<tr>
<td>Flash</td>
<td class="nb">Yes (LED)</td>
</tr>
<tr class="cmpr odd">
<td>Additional Camera Info</td>
<td class="nb">Auto focus, White balance, Carl Zeiss optics, centre weighted auto exposure, flash modes</td>
</tr>
<tr>
<td>Video Capture / Recording</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Video Recording Formats</td>
<td class="nb">3GP / 3GPP, MPEG-4</td>
</tr>
<tr>
<td>Video Recording Parameters</td>
<td class="nb">VGA (640 x 480 pixels), 30 fps, up to 216 minutes</td>
</tr>
<tr class="cmpr odd">
<td>Secondary Camera</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Secondary Camera Info</td>
<td class="nb">-</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow10" class="thead">
<th>Audio / Video</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row10">
<tr class="cmpr odd">
<td>Audio Playback</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Audio Formats</td>
<td class="nb">MIDI, MP3, eAAC+, AAC+, AAC, WMA</td>
</tr>
<tr class="cmpr odd">
<td>Radio</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Video Playback</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Video Playback Formats</td>
<td class="nb">MPEG-4, WMV</td>
</tr>
<tr>
<td>Mobile TV</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Streaming Video</td>
<td class="nb">No</td>
</tr>
<tr>
<td>External Speakers</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Headset Jack</td>
<td class="nb">3.5mm</td>
</tr>
<tr>
<td>Custom Ringtones</td>
<td class="nb">Truetone / MP3</td>
</tr>
<tr class="cmpr odd">
<td>Downloadable Ringtones</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Ringtone Composer</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Ringer ID</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Vibration Alert</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Speakerphone</td>
<td class="nb">Yes</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow11" class="thead">
<th>Apps</th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row11">
<tr>
<td>To-Do / Task List</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Calendar</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>World Clock</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Alarm</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Stopwatch</td>
<td class="nb">No</td>
</tr>
<tr class="cmpr odd">
<td>Timer</td>
<td class="nb">No</td>
</tr>
<tr>
<td>Calculator</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Currency Converter</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Weather</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Stocks</td>
<td class="nb">No</td>
</tr>
<tr>
<td>Maps</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Notepad</td>
<td class="nb">Yes</td>
</tr>
<tr>
<td>Voice Memos / Recorder</td>
<td class="nb">Yes</td>
</tr>
<tr class="cmpr odd">
<td>Games</td>
<td class="nb">Downloadable</td>
</tr>
<tr>
<td>Included Software</td>
<td class="nb">-</td>
</tr>
</tbody>
<tbody>
<tr id="hdrow12" class="thead">
<th></th>
<th class="nb"></th>
</tr>
</tbody>
<tbody id="row12"></tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://DevelopersVoice.com/nokia-5800-xpressmusic-review.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->