Sunday, December 28, 2014

Kindle, 6" E Ink Display, Wi-Fi

Having been a little overwhelmed by the choices between all the new Kindles and which one to get, I got this new basic Kindle first to take for a spin. So far, I like what I see. 


1. Form-factor - Compared to the Kindle 3, this Kindle feels more compact, lighter and easier to hold. My hands wrap around this better than K3. Reading books for a few hours at a stretch will be easier on this device compared to the K3. It is the lightest such device I have used compared to all previous Kindles and other tablets.

2. Screen - I personally like the fact that there are no keys on the device and that keys come up on the screen when you need them. Delivers a better overall reading experience. However, navigating through the on-screen keyboard with the 5-way controller can be taxing if you need to do a lot of searching, and you might miss the full physical keyboard. I hardly search on the Kindle itself, I search for books on my laptop so this is a non-issue.

3. Price! - At Rs 4999 (with current offer), you can't go wrong. Compared to buying paperback or hardcover editions, you will recover the cost of this in a matter of a few months because most Kindle content is priced cheaper than print editions (and you get it instantly, and can access it wherever you are). Not to mention all the free Kindle downloads available in the catalog.

4. Display - almost the same E-ink display at the K3. No glare no reflection. You can sit in bright sunlight and read it just like a book. Page turns seem a lot faster on this compared to the K3. Screen size of the Kindle 3, this new Kindle, and the Touch is exactly the same in size.

5. Wi-Fi - this can be a pro or a con (no 3G) depending on a user's personal preference. If you travel often and would like to be able to download content anywhere without worrying about getting a wi-fi connection, you're better off sticking with the K3 or waiting for the Touch/Fire. For me, 3G is not a major issue.

6. Text to Speech and Audiobooks - These two features are lacking in this device. I personally have never used these features on my K3. If you listen to audiobooks or TTS or music on your Kindle, again the K3/Touch/Fire might be better options.

7. Storage - this device can store 4GB which they claim is approximately 1400 books. For me, that's a massive storage capacity and it will be years before I get close to that capacity. Again, if you download books occasionally and have a moderate Kindle downloaded content on your device, 2GB is plenty. Of course, think ahead and see how much you would expect to download in the coming 2 years (I am assuming the device will be outdated and replaced within this time-frame).

8. Battery life - too early to tell but Kindle battery life tends to be great. Specs state that the battery life of this device is 1 month compared to 2 months for the Touch or K3. 1 month is plenty (Android phones need to be charged every hour!). At least I know that if I'm going on a long flight, this device won't need charging if I charge it up in advance.

9. Power adapter - this Kindle does not come with a power adapter, only a USB charging cable. You can either buy it separately or use your existing USB power adapter. Any USB adapter would work with the charging cable (previous Kindle versions, Apple's portable devices, and most HTC phones, come with a standard USB power adapter that would work for this device). 

Bottom line - the choice between this basic Kindle, the K3 Keyboard, the Touch, and the Fire is really a personal preference. This device itself is meant for the minimalist Kindle user who, like me, reads say a 2-3 books a month, wants a device comfortable to hold, and doesn't need any fancy bells and whistles on the device. I guess it depends on what you use your Kindle for. If it's just the basics, this is the perfect device to get.

In my humble opinion, the choices:

(i) If you have a DX or an old Kindle version, or if you don't have a Kindle yet and are an average book-reader, this is definitely the one to get - baseline model that is affordable and is a pure e-reader.

(ii) If you have Kindle 3 and don't really need an upgrade, I recommend sticking with the K3, it's a better device than this one in terms of features. If you do need to upgrade, the Touch is probably a better option because of all the additional features, at a small incremental cost.

(iii) If you're looking for the loaded full-on Amazon content experience with access to all the apps, streaming audio and video, and playing the "strangely therapeutic" Fruit Ninja, wait for the Fire!

I sincerely hope this review helps you decide whether this Kindle is right for you. If you are still unable to make a decision, it may be worthwhile to wait for the Touch and Fire to be released, and see the reviews on those devices before making a final decision.

Sunday, December 14, 2014

Saturday, October 15, 2011

How to Resolve The name 'xxx' does not exist in the current context Issue

Yesterday I was working on a page which contains Ajax Toolkit Tab Container, and there were some control on the other tab.
   
When i build my ASP.NET (C#) project in Visual Studio 2010, i started getting this error message

"The name 'XXXX' does not exist in the current context"

Displayed and the problem is in my .aspx page. Most surprisingly I can access the control in Intellisens but while compile time it throw error. My code definitely has no problem.

After debugging and searching for a while, i noticed that problem is cause by the back up copy of the same aspx file (copy of xxxx.aspx) that i forget to exclude from the project.

The problem solved after i exclude the file from the project.

Sunday, September 25, 2011

Itrarting Bewteen Date Range using Foreach C#.

There are some situation when we want to itrate trough a range of date.
Hear is ample how you can itrates through the date range using foreach in C#

for itrating you will need to first create a function which will convert the date range in inumaration formate so that you can itrates.

For this i have created the follwing function.

public IEnumerable<DateTime> EachDay(DateTime from, DateTime thru)
{
for (var day = from.Date; day.Date <= thru.Date; day = day.AddDays(1)) yield return day;
}


Now you can use the code like this.

foreach (DateTime day in EachDay(strartDate, EndDate)
{
 //Do something

}
 

Tuesday, September 20, 2011

Hosting WCF Service in IIS

Create a WCF service


1. Create a blank solution and add a WCF Service Library project to it. For the purpose of this post, I am going to create a simple GreetingService that has a method Greet. This method accepts a single parameter name and returns a string “Hello “ appended to name


2. The following is the code for the GreetingService WCF service. We define a service contract, mark the operations in that contract that are going to be exposed to the external world and then implement the service.


using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;

namespace Wcf.Samples.ServiceLibrary
{
    [ServiceContract()]
    public interface IGreeting
     {
        [OperationContract()]
        string Greet(string name);
     }
}


GreetingService.cs


using System;
using System.Collections.Generic;
using System.Text;


namespace Wcf.Samples.ServiceLibrary
{
   public class GreetingService : IGreeting
    {
      #region IGreeting Members
      public string Greet(string name)
       {
         return "Hello - " + name;
       }
#endregion
}
}


3. Now that you added the service contract and its implementation (the GreetingService), build the project.




Host the service in IIS


1. Now we create a Web site that will host the WCF service that we created in the previous section. For this, right-click the solution in the solution explorer and from the context menu, select Add -> New Web site ->WCF Service as shown in the following figure.




2. This will create a WCF Service Web site into your solution along with the standard folders that get created for a Web site project (App_Code, App_Data etc). A new type of file called Service.svc will be generated and placed into the root of the Web site project, along with the corresponding code-behind file (Service.cs). The Service.cs is provided to implement a WCF service, which then can be referred in the Service.svc file. Since we already have created the WCF service in a separate assembly, we will refer to it in the Service.svc. As such we don’t need Service.cs and hence, it can be deleted.


3. Open Service.svc file and modify the single line in it like this:


4. In the above statement we point to the fully-qualified class name that implements the service that we want to host in IIS.


5. Add the reference of the Wcf.Samples.ServiceLibrary project to the web-site project and build the web-site.


6. This completes the creation of WCF service. Now, in order to let the service communicate with the external world, we need to define the communication behavior of the service. For defining this behavior, we will use the Service Configuration tool that comes along with Visual Studio 2005.


7. From the main menu of Visual Studio 2005, select Tools -> WCF Service Configuration Editor. The WCF Configuration Editor window will open up. Select File -> Open -> Config File… from the main menu. Browse and select the Web.config file of the WCF web-site.


8. Once selected, the screen will be displayed as follows. The Web.config already has the configuration for the default service MyService under the Services node in the left-panel. Select this service and deleted it. We are going to create a new configuration for our service.




9. Right-click the Services node and select “New service” from the context menu. A service with service type NewServiceType will be created. On the right-panel, select the property “Name” and click the ellipsis. Service Type Browser will open up. Browse the bin folder of the web-site and locate the service assembly Wcf.Samples.ServiceLibrary and double-click it. The Service Type Browser dialog now will list the service “Wcf.Samples.ServiceLibrary.GreetingService” service. Select this service and click Open. This will set the service-type that we are going to configure.


10. Now for the above service, we first need to specify the end-point. Right-click Endpoints node in the left-panel of the WCF Service Configuration Editor and select “New Endpoint”. This will create a default end-point with its properties being displayed in the right-panel.


11. Set the following properties:


Name
defaultEp


Address
http://localhost:28053/GreetingService/Service.svc


· Here 28053 is the port-number where the local web-server is running. You need to check your port number and enter it here appropriately.


Binding
basicHttpBinding


Contract
Wcf.Samples.ServiceLibrary.IGreeting


· You can click the ellipses to open the Contract Type Browser and select the appropriate assembly and contract from the bin directory of the web-site.


12. This sets the basic communication for our service. In order to enable the service for metadata exchange (thereby allowing us the browse its wsdl), we need to set the metadata exchange properties for the service. To do this, expand the Advanced node in the left-panel, right-click Service Behaviors and select “New Service Behavior Configuration”. This will add a new Behavior Configuration by the default name NewBehavior. Behavior is a collection of attributes (here, service attributes) that can be set and applied to the service together. Right now, we are going to define a behavior that allows the metadata exchange on the service. Set the Name property of the new behavior configuration to mexBehavior.


13. In the “Behavior element extension position” (lower part of the right-panel), click “Add” button. This opens up a dialog “Adding Behavior Element Extension Sections”. Select serviceMetadata from the list and click “Add” on the dialog. This adds the extension serviceMetadata to the grid in the right-panel. Double-click the extension to open up its property-page. Set the property HttpGetEnabled to true.







14. Now that we have defined the behavior separately, we need to associate the behavior with our service. To do this, select the Wcf.Samples.ServiceLibrary.GreetingService under the Services node in the left panel. The right-panel will display its properties. Select the BehaviorConfiguration property, and select “mexBehavior” from the drop-down.


15. This sets the service configuration and allows the service to communicate with the external world. Save the configuration by selecting the menu File->Save. Close the WCF Service Configuration Editor.


16. Test that the service is hosted by running the WCF Web Site application. The following screen should be displayed.


Related Posts Plugin for WordPress, Blogger...