Monday, February 23, 2009

Home PC Media Center





Home PC/Laptop Media Center

Shifted into our new house like a year back, I always wanted to have a media center set up with the hardware I have.

LG 42” LCD

XBOX 360 Premium

Sony 850W RMS Home theatre (DAV-DZ556KB)

Lenovo T60

Logitech Harmony 880

Microsoft MCR


I did a simple set up linking my T60 to show output on my LCD. There are a lot of opinions online on which option is better DVI vs Component v/s VGA. I was left with no choice as my T60 has a VGA output. A local AV splitter did the job of linking all the audio output (Tata Sky, T60 and XBOX) through the Sony HT. All was good as I was able to watch television, play Xbox and watch all media from my T60 on my LCD. My first problem was space, lots of movies, songs and pictures to be stored and obviously a regular 80-160 GB drive would fill up in days. My immediate option was an external Western Digital Drive, There are options but the one that fit my pocket and immediate space requirements was a 500 GB Essential. I am somehow not much comfortable with the trail software that comes with it so re-formatted the drive as NTFS. Now XBOX 360 users might have to read up as the XBOX 360 does not recognize NTFS and with FAT there is a 4 GB file size limit. I readily opted for NTFS as I was never going to play my movies, songs off my XBOX knowing of the overheating issues (ROD) with the box. For me the XBOX 360 is purely a gaming console. There I was with all my data backed up on my WD drive.

All went good for a few days until I faced another issue which was handling about 4 remote controls. With all the devices listed above I had shuffle between their remote controls to make sure I got control of the entire system. This is when I started looking for a universal remote control. My immediate choice was a Harmony remote from Logitech, yes they are expensive but in the end I guess worth it. I got a refurbished deal on Amazon for my Harmony 880, it’s good as new and works perfect. Hours after unpacking I had all my other remotes back in the drawer controlling all my devices using the 880. The Harmony remote worked perfect for me to control all my devices except for my Laptop. I had go up to my laptop every time I had to pause/play a movie etc.

Now this one got me big time the T60 has an inbuilt IRDA port for data transfer, after looking for a while I found IrDA Remote Control (IrRC). This worked good for me but was limited to Windows Media Player. I Prefer VLC over MP. With IrDA I realized the range for the inbuilt laptop IRDA slot was limited to a few feet, basically very low range. I had to look for something else. Buying a USB-IR dongle was one of the options but couldn’t find one with the local vendors. After a lot of searching my search term changed from IR Remote to Bluetooth remote.

I have a N73 which has Symbian V3. Remotud is a good tool which allows you to control a descent set of media players using your Symbian compatible remote control currently only supports Symbian V1 and V2 compatible devices, so I had to look for something else. I found a few other tools but all of them had some or the other issue. SallingClicker is another good choice if you plan to shell out some money, Trial worked good for me.

I shifted my search from a software to control media players to a software to manage media instead, assuming that such a tool would definitely have an option to set up a remote control. Two best free options available are XBMC (XBOX Media Center) and Media Portal there are other options like Boxee, GB-PVR etc. I shortlisted on Media Portal and XBMC both are free to use and work with Linux and Windows. XBMC also works with the original XBOX. There are quite a few comparison threads. I personally prefer Media Portal and stuck to it. Coming back to the earlier problem of controlling PC media players using my Harmony 880, Media portal supports configuration using Windows Media Center remote and the same can be added to the Harmony 880 profiles. This basically allows me to control the entire setup using a single remote control.

Tuesday, September 25, 2007

K750i Reviewed

I have been using the K750i for almost 2 years now. My immediate opinion about the phone would be, this is still one of the best phones available in the market. I had read reviews from various sites before selecting the K750i, my next immediate choice was the Nokia 6630, but the K750i was a clear winner.

Features: You speak of a feature and its available in the K750i below are a few that caught my eye.
1. 2 MPX Camera with Flash.
2. MP3,MP4 player with equalizers.
3. Memory stick slot.
4. Blue tooth/Infrared.
5. Dedicated buttons for music player/camera.
6. More than 1 hour video clip recording.






Looks: SE phones were never about the looks, same is with the K750i. Its a plain candy bar shaped phone which comes in 2 colors black and silver. Nothing exceptional about the way the K750i looks.

Camera: This is something the K750i is best at. The 2 mpx camera is perfect for any kind of pictures. I have a Cannon Powershot 7mpx, no comparisons but the K750i camera stands firm on its place. Supports multiple modes like the still photo and the video mode, and multiple quality modes like the fine and superfine modes. Something exceptional to mention about the camera is the inbuilt LED flash which pretty much serves the purpose while taking pictures in the dark, though it has a limited range it definitely makes the difference. One more thing that justifies the K750i’s design is the camera cover, i used mobile phones before and spoilt a few lacking a camera cover. This is not the case with the K750i. To know what the K750i camera is capable of visit http://www.flickr.com/cameras/sonyericsson/k750i/



Music Player: One word to describe the K750i music player is "Awesome". Works perfect, custom setting with the equalizers is great add on. Mega bass works great for people who like bass for others you always have an option to turn it off.


Memory Card: K750i comes with an add on 64MB card which can be used with the provided memory slot. On first looks the memory stick slot cover looks fragile, I have turned and twisted it in all possible ways in these 2yrs and it is still intact. Data can be moved from and to the memory stick comfortably using the provided data cable. The memory card can be used with any computer operating on XP+ environments without installing any drivers which works great for people travel buffs.


Layout: The space available on the K750i body is used till the last bit to make it more usable. Dedicated buttons for music player can be used to pause and play music without unlocking the phone, while in music mode the up down button on the right hand side of the phone [which is used to zoom in out pictures while in camera mode] can be used to reduce and increase volume, holding down the up down button moves to the next track while playing MP3’s and moves to the next radio station while listening to FM. Dedicated photo button is a great add on as moving the camera shutter down activates it and one can take pictures without unlocking the phone. Keypad though looks delicate on first looks works perfect for a long time. "Joystick" i will come to it in the cons section. Camera shutter can become a pain at times while using the infrared as the phone moves a lot when on plain surface.


Sound reception: Sound reception is at par with other phones in the market, nothing bad or exceptional about it. But again while on call when turned to speaker, the volume is pretty low from what it performs while in Mp3 or Radio mode. I have not been able to find out why, but it does work that way. Not really a concern as we all know that speakers drain battery life and are used only when necessary.


Games/Utilities: Free utilities like messengers, browsers can be downloaded. K750i also has a remote function which can be used to control presentations or media player on a computer easily, further you can also use your K750i to control your computer desktop via phone through a few utilities available over the internet. All these utilities are jar files and can be easily downloaded and installed on the phone. Best places to find all the goodies are http://www.myk750.lasyk.net/ or http://www.getjar.com/software/Sony-Ericsson/K750


Cables and earphones: One thing to notice about the cables and the earphones is that all of them are pretty long in length, most of us find greater length useful but it becomes a hindrance especially with the earphones. Cables work fine and are pretty durable. The earphones could have been of better quality though. With quality i don’t mean the music quality, These earphones produce some great bass and music, but the cables are pretty low in quality and break off soon if used constantly, mine went bad in first 3 months. New sets are available at a cost of around 800-1200.


Add ons: Sony Ericsson site talks about add ons for the K750i and there are a few good ones like the add on flash which should be a great add on for photo buffs. Also the earphones that come with the W550 are a great combination with the K750i.


One more thing to consider is that there is a lot of help available for the K750i. There are user forums and sites which talk bout tweaking it. I have experimented a few myself, see my post on dismantaling a K750i


This was all good about the phone now the bad.


Joystick: The worst thing that could happen to a K750i is the joystick. No reasons explained no reasons found, but there have been too many complaints about the joystick, might be dirt, water, or regular use. But the joystick is guaranteed to fail on you in a couple of months of regular use. You can get the joystick replaced if under warranty or by paying a cost of around Rs 500 otherwise at any of the SE service centers. My joystick has gone bad for almost 4 months now, thanks to my adventures with my K750i i cant get it replaced, but that doesn’t kill the phone. I am still able to play music, videos, radio, skip songs, change channels, take pictures, videos, zoom pictures, delete pictures, view slide show, Use the blue tooth/infrared to send/receive files, select multiple files and manipulate them, do all the basic operations that a phone is supposed to do. All this with a handicapped phone without an operational joystick. So even if the phone joystick turns bad as did mine, the phone doesn’t die and can be used.


Battery Life: This has always been a point of concern in the SE mobile phones, and same is with the K750i, but a simple tweak can help you here, the K750i allows you to set the screen brightness and setting it on low reduces the drain. I have been able to play FM/MP3’s on 8-10% battery charge for more than an hour. But yes if you are constantly on the phone and talk for hours this would be a concern.

The video player is a bit crappy and skips frames if the Mp4 files are not of the said specs.


Conclusion: The phone is a definite worth for your money, best phone available if you are a street photographer, also a great option for music fans. The phone has all you can ask for from a mid ranged phone just pray that the joystick doesn’t go bad on you.

Tuesday, August 21, 2007

.Net Quick Look

Take these as notes you come up with while reading books or over internet. I keep on updating this post.

.Net Framework
==============
->. IL - Intermediate language - MSIL
-> Code >> Compilation >> IL/MSIL
->. CLR - Common language runtime
Manages
-------
-> Garbage Collection
-> Memory Management
-> CAS - Code Access Security [Identity/Principal]
-> IL >> CLR + JIT >> Machine Code
-> Code Verification - Pointers point to the right location
- Correct parameters are passed to functions

->. CTS - Common Type Specification
-> Sepcifies common types for all languages
-> CLS - Defines specifications to be followed by any language to be a .Net
language

->. BCL - Base Code Library

->. Managed Code - Any code that is managed by the CLR.

->. Assembly - Logical unit of deployment in .Net
-> Assembly = Metadata + Manifest + Resources.
-> Metadata contains all the types, variables, properties, classes etc..
used in the assembly
-> Manifest holds list of all the files used by the assembly - Version No,
Security Identity etc.
-> Assemblies can be single/multifile assemblies.
-> Each file of a multipart assembly is called a managed module.
-> AL.exe is used to create multifile assemblies.

->. Types of Assemblies -
-> Private - Stored in the application directory.
-> Public - Stored in the Global Assembly Cache

->. Namespace - Locical grouping which helps seperate two classes with the same
name in an assembly.

->. ILDASM - Tool to view internals of an assembly.

->. Delay Signing - Delay signing is about securing an assembly, this allows you
to sign an assembly using only the public key with the developers not having
access to its private key and register it in the GAC and later sign the
assembly with the private key.

->. Garbage Collection: A feature of the CLR that releases unused objects from
the heap when there is shortage of memory.
-> Use the Finalize() method to release objects from memory manually, this
is called just before Garbage collection takes place, further call the GC.
Collect() method to perform Garbage Collection.
-> Garbage collection can be disabled by specifying GCConcurrent to false in
the config file

->. Assembly versioning in GAC: By default it will pick up the latest version.
-> You can also specify OldVersion and NewVersion attributes under the
BindingRedirect tag under the config file



ADO.NET
=======


->. Command Object
-> Non-Query: Used for DML statements and returns the No. of rows affected
-> Execute Reader: Returns a set of rows/Datareader
-> Execute Scalar: Returns the first field in the first row.
-> To execute a SP using ADO.Net: Add Command >> Set command text >> Set
command type >> Add params to the param collection >> Call NonQuery,Scalar
etc >> Set command for dataadaptar >> Call Fill.

->. Command Behaviour: Can be passed to a command so specify the behaviour of
the command eg, close connection after execute, get schema only.

->. DataSet
-> ReadXML: Read XML into dataset.
-> WriteXML: Write XML to disk.
-> GetXML: Get XML string.
-> HasChanges: Check if any changes have been made.
-> GetChanges: Get latest changes into a new dataset.
-> RejectChanges: Discard all changes.

->. A Datatable outside a dataset cannot exist in relationships

->. Dataview object sits on top of the datatable object, you can include data
from multiple tables in a dataview, modifications in dataview doesnt modify
data in a datatable.

->. Rowstate property shows state of a row Deleted/Not
-> Datarow.delete marks row for deletion
-> Datarow.remove delets the row from the dataset

->. Columns can be validated in a datatable by declaring a datatable with
events.
-> Datatable_ColumnChanging even can be used to validate data by checking
the proposed value
-> To check for entire row use the columns_changed or rowchanging.
-> You can set errors in the set ColumnError or RowError property
-> You can check if the Dataset or DataTable has errors by using HasErrors
property

->. Datarow.Select(,,)

->. DataRelation(
,,)

->. Command >> DataAdaptar >> Dataset
-> Table Mapping in datasets is used to specify matches for tables in the
database to the tables specified in the dataset
-> Columns Mapping is a similar concept for columns.

->. You can specify extra parameters in connection string like
-> pooling = T/F
-> MinPoolSize = 10, MaxPoolSize = 20
-> Connection lifetime =

->. Typed Dataset: Datasets derived from the base dataset class + has XSD [XML
Schema definition] of the rows and columns and allows to generate a new
dataset from it. Fields are reffered in typed datasets with Names and not
with indexes.

->. Locking is handled internally in .Net to handle it manually
-> Check the timestamp of the record on consecutive accesses.
-> Check for the actual value if matches in DB.

->. Dataset.Clone copies only structure, .Copy copies structure + Data

->. Connection pooling is enabled by default in ADO.Net, it creates a pool of
connections for the same connection string, calling connection.close returns
the connection object to the pool

->. Reflection: Accessing, interrogating and executing an assembly using its
Metadata.

->. Value Types
-> Stored on a stack
-> Holds actual value
-> Structures
-> Boxing [Val -> Ref]
-> Default in .Net
-> Option strict can be used to highlight Un/Boxing in .Net

->. Reference Types
-> Stored on a Heap
-> Holds pointer to a memory location
-> UnBoxing [Ref -> Val]


->. Exceptions
-> System Excepetions: .Net generated
-> Application Exceptions: Application generated.

->. Code Access Security: Feature of CLR to provide security over code access.
-> Code Access Permission: Access to print, access registry etc.
-> Identity Permission: Identity of the running code.
-> Role based permission: Identity of the user running the code.
Code Access security can be implemented in two ways
-> Declarative: Using attributes
-> Imperative: Using objects

->. Obfuscation is the process by which decompilation of an assembly can be
avoided [dotfuscator]

->. NGen -> Allows Jitting the code to generate Native code in cache, saves time
as the runtime will use Cache Image to run the application.

SQL
===
->. InnerJoin: Matching records from both the tables
->. LeftOuterJoin: Matching records from the left and all from right
->. RightOuterJoin: Matching records from the right and all from left

->. Indexes: Useful to increase performance on queries.
-> PK are indexed by default
-> Clustered: Reorders physical storage so only one per table.
-> NonClustered: Maintains logical structure so multiple per table.

Delete Truncate
-> Logs all deletes/Slow -> Doesnt log/Fast
-> Delete can have a criteria -> Truncate doesnt have a criteria
-> Can Trigger. -> Cannot Trigger.

->. Issues faced by locking if not implemented
-> Lost Updates: Updates are missed / Read Uncommitted
-> Non Repeatable Read -> Different reads, same time, different values
-> Dirty Reads
-> Phantom Reads -> You edit >> someone deletes >> you update.

->. Types of transaction levels
-> Read UnCommitted: I can read modifications by others that are not yet
committed
-> Read Committed: I cannot read modifications by others that are not yet
committed
-> Repeatable Read: I cannot read modifications by others that are not yet
committed, Other cannot modify data that i have read.
-> Snapshot: Data that i have read when i started will not change till i
finish.
-> Serializable: I cannot read modified/uncommitted data, No one can modify
data that i have read, Others cannot insert rows that will affect the data
that i have read.

->. Locks
-> Intent: Locks data for me as i might read that data in the sequence of
the transactions i perform.
-> Intent Shared [IS]: I will read some but not all the data so place
shared locks
-> Intent Exclusive [IX] : I will modify some but not all the data so
place exclusive locsk
-> Shared with Intent Exclusive [SIX]: I might read all but modify some of
the data so apply shared on all and exclusive on modified.
-> Shared: All can read data that i read but cannot modify it.
-> Update: Lock data that i am about to update, if i update convert it into
an exclusive lock else change it to a shared lock.
-> Exclusive: This data belongs to me, no reading or modifying allowed.
-> Schema: No changing schema
-> Bulk Update: No one can change anything in a table as i am doing a bulk
update.

->. UNION: Selects distict data from both the queries
->. UNIONALL: Selects all the data from both the queries.

->. Raise Error allows you to raise an error in an SP.

->. Triggers: Update >> Execute trigger instead of an update
-> After Triggers >> Execute after.

Remoting and Webservices
========================
Previously: One process multiple assembly
Now: One process multiple appdomains multiple assemblies

->.Application Domain:
-> Logical container allowing multiple assemblies to run within, providing
them isolation
-> Provides isolation features of Processes without the overhead of inter
process data transfer - Marshalling
-> Crashing of an applicaiton does not affect the execution of another.

AppDomain D = Appdomain.Createdomain("NewD")
D.ExecuteAssembly("A.exe")
D.ExecuteAssemblyByName("A")
AppDomain.Unload(d)

->. UDDI: Universal Description Discovery and Integration - online directory of
Web services

->. DISCO: Discovery, used to make a list of all the webservices on a server and
provide links for the same.

->. Webservices can access all the features of .Net by inheriting the Webservice
Base class

->. The <@ Webservice > attribute qualifies a class to be a webservice class

->. The attribute qualifies a method to be a web method

->. Running the WebService (.asmx) file will show the default WSDLHelpGenerator
file which allows you to test a web service.

->. The Reference.vb file is one of the most important file at the clients end,
this file contains all the methods as in the webservice at the server.

->. The Proxy class at the client end makes late bound calls to the service
using Invoke (Reflection)

->. you can add remove protocols by adding/removing tags in Machine/Web.Config
-> >> >> >>

->. For the WSDL to include complex class definitions include the SoapRPCMethod
attribute and add two instances of soap include attribute passing it the class
type.

->. is used to distinguish between two functions
in case of overloading

->. can be used to implement caching.

->. can be used to make a web
method oneway, where in the client doesnt expect a response from the server.
OneWay methods do not return values.

->. Shadow Copy - When a dll si copied to a different locaiton and then loaded
its called shadow copy

->. <@ Page Src=""> associates an aspx page with its code behind module

->. Page life cycle
-> Page Init
-> Page Load - IsPostback and all control events
-> Page Render
-> Page Unload - Close files and release objects

->. Resolve URL Method converts relative path to absolute path

->. Page_Error event allows you to trap and clear errors [Server.ClearError]

->. WebService Mistakes
->Using .Net Types to pass data
-> If you pass a dataset object how is a J2EE application supposed to konw
what is it
-> With datasets lot of data is passed to maintain the structure(Use classes
instead)
->Not taking advantage of .Net features
-> use caching with .net webservices webmethod results are stored on a
server as cache and can be used for same parameter tyhpes instead of
querying a db
-> You can also store application data cache for passing out data that
doesnt change very often HttpContext.Current.Cache.Item("")
-> use sessionstate persistance to
store user perferences HttpContext.Current.Session("")
-> Also can store clientside cookies Myservice.CookieContainer = New System.
Net.CookieContainer
-> One large request is better than several small requests
-> Request broker pattern: multiple small requests are clubbed into one large
request
-> Use webservices to pass business logic rather than data.

->. Make Async calls from webservice
-> Normally a webservice would call the invoke method
-> It also has a BeginInvoke call which places an AsyncRequest. BeginInvoke
returns immediately without waiting for WS to return
-> System.AsyncCallBack - acts like a Function pointer delegate
-> AsyncState -> Object to store unique info bout the call
-> Begin Invoke returns IAsyncResult Interface pointer this can be used to
track down your request

IAsyncResult
-> AsyncState -> Object with a unique value [correlation id]
-> AsyncWaitHandle -> Waithandle to block current threads execution
-> CompletedSynchronously -> Allows your to identify if operation is already
completed synchronously
-> IsCompleted- boolean Flag

AsyncWaitHandle can be used to wait for a threads completion
-> WaitOne - Wait for the calls result
-> WaitAny - Wait for any call to return [multiple call mode]
-> Wait All - Wait till all calls return


Threading
=========
->. Thread is the basic unit allocated processor time by the OS
->. At any given point of time there are 2 threads running Main Application and
GC
->. Dim TS as ThreadStart = New ThreadStart(Address Of)
Dim T as Thread = New Thread(TS)
->. Thread Priority: Lowest, Below Normal, Normal, Above Normal, Highest
->. Use Thread.CurrentThread to get the current running thread.
->. Use Thread.Sleep to pause a thread, to pause it infinitely use
T.Sleep(System.Threading.Timeout.Infinite)
->. Thread.Sleep happens immediately, while thread.suspend happens only when its
safe and the current operation is complete
->. In a multithread environment you can call Thread.Join to make sure that one
thread pauses its execution till the other one finishes its job.
->. Threads running in the background are called Deamon threads, set T.
IsBackground = True to make a thread deamon.
->. Use SyncLock/End SyncLock to synchronize threads.
->. Use ThreadState to know state of a thread [IsAlive, IsSuspended etc.]
->. Wait Handles are used to synchronize threads [WaitAll, WaitAny, WaitOne]
->. Mutex objects can be used to gain exclusive access over threads.
->. ReadWriter locks can also be used to gain exclusive access to thread only
while writing and then degrade back to nonexclusive while reading.

Http Protocol
=============
->. Http is a generic stateless object oriented protocol.
->. Http Transaction consists of 4 parts
-> Connection - This is a connection between the server and a client over
TCP port 80.
-> Request - Client sending a request message to the server.
-> Response - Server sending a response to the client.
-> Close - Closing of the connection by either both parties.
->. Request: A Request is a CRLF seperated message giving details of the request
-> Request contains details like the Request type [Simple/Full], Method [
Get/Post], Protocol Version, Uri, Request Header [Field:Value], Data.
->.


Use Cases
=========
->. Used during the analysis phase of a system design
->. Used to identify system functionality and seperate a system into Actors and
Use Cases
->. Actors are anything thats external to the system and interacts with the system,
Actors need to provide inputs and receive inputs from the system.
->. Use cases describe behaviour of the system when one of these actors provide
stimulus [event occurs, provide inputs] to the system. It describes the input
from and output to other actors.
->. There is a system boundary between the Actors and the Use cases.
->. There are several relationships within the system like the <> or
the <>
->. <> is more like a function call or a subroutine.
->. <> is extending the normal flow of the system to an alternative
extended flow

WBS
===
->. WBS is a process of defining the final and intermediate results of a
project and the relationships between them.
->. Allows to accomplish general requirements by splitting up tasks into smaller
ones and focusing work on them.
->. WBS is involved in the planning phase, it is necessary for the team to have
a thorough understanding of the project before starting this activity.
->. Steps for WBS
-> Identify primary requirement or objective.
-> Branch out primary requirement into related subactivities, these could be
products or activities which directly lead to the primary objective.
-> Break down activities in to finer and accurate elements, continue till
the last activity is fine and accurate enough to be completed.

WSS
===
Security, Users and Groups [SPRights, SPRoleType]
->. Users actions on a WSS site are controlled by the membership that s/he has.
-> Site groups specify what actions can be performed by a user on a site.
Every user is a member of atleast one site group. [Add/Mod/Del of rights
possible except for administrator and Guest site groups]
-> Administrator to a site group is specific to that site only, to perform
administrative tasks on IIS, Virtual servers etc user must be
administrator on the local server.
-> Cross site group are a group of users who are assigned to a site group on
any website in the site collection.
-> anonymous users are allowed to participate in surverys, access lists etc.
anynymously. All users in the domain can be granted anonymous access by
specifying "All Authenticated Users"
-> Per List permissions are used to fine down the permission levels to a
specific list. Users are automatically assigned to a guest site group
within a site.
-> Sub sites can either inherit permissions from the parent site or have its
own unique set of permissions.

Server and Site Architecture
============================
->. SQL Server Databases [SPContentDatabaseCollection, SPDatabase]
|
-> WebServers [SPWebServerCollection, SPWebServer]
|
-> Virtual Servers [SPVirtualServerCollection, SPVirtualServer]
|
-> Site Collections [SPSiteCollection, SPSite]
|
-> Top Level Sites [SPWebCollection]
|
-> Sub Sites [SPSite]
|
-> Sub Site [SPSite]
|
-> Lists [SPListCollection, SPList]
|
-> Fields [SPFieldCollection, SPField]
|
-> List Items [SPListItemCollection, SPListItem]

->. to create a cutom asp.net site accessing sharepoint thru object model,
create the the site at "http://Server_Name/_layouts/Web_Application_Name"
location.

->. You can build and store custom ASPX pages and Web applications in the
following directory, which supports the _layouts virtual directory:

Local_Drive:\Program Files\Common Files\Microsoft Shared\
Web Server Extensions\60\TEMPLATE\LAYOUTS

Pages in this directory are accessible from all Web sites in the Windows
SharePoint Services deployment through a URL in the following form:
http://Server_Name/[sites/][Site_Name]/[SubSite_Name]/[...]/_layouts/
File_Name.aspx

->. Get the web context before accessing the site lists
Dim siteCollection As SPSite = SPControl.GetContextSite(Context)
Dim site As SPWeb = SPControl.GetContextWeb(Context)

Monday, January 01, 2007

Passed 70-536 Exam.

What a day two good things in a row, got to know that i will be getting my Sennheiser HD212 in a week through a friend in the US, and cleared my first certification 70-536 .Net Framework 2.0 - Application Development Foundation with a good score of 982 off 1000 [At least i think its good :)]. 3 months of hardwork paid off finally.
I have a lot of notes collected by now for this exam, will be publishing them here soon.

Monday, August 21, 2006

Dismantle a K750i

In my recent trip to Tel Bel [A place near Pune, rains all the way] i tried using my K750i, it worked fine then but in a few days the screen went complete white and the joystick stopped working, i thought the screen would get fixed when the moisture goes off in a few days, but it refused.

This is what i opted for then,
Referred to this great post by gbrooks3, he has actually did a complete post mortem of his K750i - Ripp off the housing, I didn't dare to go much further but i managed to seperate out the keypad switch and the display switch, and after serving the display with a bulb heat for a couple of hours it got fixed.
Just make sure you have the right tools handy before you start doing this, a screw driver set with T5 and T6 is a must, don't try using anything else.






Working



Heat Treatment



The Heat Treatment



Key pad



Fixing it back



T6 Set



T6


Thursday, March 30, 2006

Visual Studio 2005 new certification series MCTS and MCPD

MCSD, MCAD is what most of the microsoft developers have been looking forward to for quite some years now, being one i was planning to opt for MCAD, but a hit on MS site revealed a new picture, with the introduction of VS 2005, a new set of exams have popped in, the MCTS [Microsoft Certified Technology Specialist] and the MCPD [Microsoft Certified Professional Developer], though MS claims that MCSD and MCAD are going to be valid for years to come, i am not very much sure what the picture will be when these exams get out of the beta phase. Also there are upgrade exams available from MCSD to MCPD, so there is a definite short cut for current certification holders to hit the

MS has again come up with the one one one free try thingie, register for one and get another attempt free, the trick is that course material for these exams will not be available till May 2006 and the offer is valid till July 2006, and without any dumps available till then there is a less chance of lots of hits for this.

References:

here's my pick for 536 and 528

  1. Visual Basic 2005 Programmer's Reference (Programmer to Programmer) (Paperback) - by Rod Stephens
  2. Programming Microsoft ASP.NET 2.0 Core Reference (Paperback) - by Dino Esposito
  3. Programming Visual Basic 2005 (Paperback) - Jesse Liberty



  1. Microsoft Certified Technology Specialist (MCTS)

    1. Technology Specialist: .NET Framework 2.0 Web Applications

      • Exam 70–536: TS: Microsoft .NET Framework 2.0 - Application Development Foundation
      • Exam 70–528: TS: Microsoft .NET Framework 2.0 - Web-Based Client Development

    2. Technology Specialist: .NET Framework 2.0 Windows Applications

      • Exam 70–536: TS: Microsoft .NET Framework 2.0 - Application Development Foundation
      • Exam 70–526: TS: Microsoft .NET Framework 2.0 - Windows-Based Client Development

    3. Technology Specialist: .NET Framework 2.0 Distributed Applications

      • Exam 70–536: TS: Microsoft .NET Framework 2.0 - Application Development Foundation
      • Exam 70–529: TS: Microsoft .NET Framework 2.0 - Distributed Application Development

    4. Technology Specialist: SQL Server 2005
      Exam 70–431: TS: Microsoft SQL Server 2005 - Implementation and Maintenance.

    5. Technology Specialist: BizTalk Server 2006
      Exam 70–235: TS: Developing Business Process and Integration Solutions Using BizTalk Server 2006 (available early 2006)


  2. Microsoft Certified Professional Developer (MCPD)

    1. MCPD: Web Developer

      MCTS + Exam 70–547: PRO: Designing and Developing Web Applications by Using the Microsoft .NET Framework

    2. MCPD: Windows Developer

      MCTS + Exam 70–548: PRO: Designing and Developing Windows Applications by Using the Microsoft .NET Framework

    3. MCPD: Enterprise Developer

      MCTS + Exam 70–549: PRO: Designing and Developing Enterprise Applications by Using the Microsoft .NET Framework


Wednesday, March 01, 2006

ASP.NET 2.0 Why Care?

Recently i had been to the Microsoft Technology Roadshow, which covered two areas Mobility and Web Platform, I opted for the Web Platform sessions which talked more about ASP.NET 2.0 and Developing AJAX-style web applications with Atlas, here is my learning from the same.


ASP.NET 2.0 Why Care? - Janakiram MSV

This was an excellent session by Janakiram, using one example he gave breifing about quite a lot of new features introduced in asp.net 2.0.

  • Most of the developers have been complaining about less controls to play with in asp.net so with 2.0 they have introduced 50+ Controls.

  • One of the talked about feature is the ASP.Net 2.0 two way databinding, if you recollect the old visual basic days where a grid control used to allow updates to the database after changes to the data in the grid, a smiliar functionality is provided in 2.0 where in controls can be bound to data not only for displaying but also posting back the changed data to the base. This is also termed as updates to the database through "In-place" editing on the control.


  • With ASP.NET Web.Config controls the configuration of your website, before 2.0 web.config used to be configured using the visual studio editor as a xml file where in we used to add and remove xml tags to configure the website, but with ASP.NET 2.0 there is a new tab introduced in IIS where in all the configuration for your websites web.config can be specified using the IIS panel.

  • Having IIS installed was one of the prerequisites of developing ASP.NET websites, ASP.NET 2.0 comes with an inbuilt webserver, so there is a definite goodbye to PWS.

  • Membership API [Authentication and authorization]
    The ASP.NET 2.0 provides easy ways out for Authentication and authorization, most of us require the two basic forms on any website the User Login and the User Registration forms, with the Membership API this functionality can be implemented with minimal code.

  • Portal Framework [Create webparts]
    Anyone who has worked with Sharepoint knows the use of webparts, Webparts are the building blocks for an easy customizable web, Webparts can be somewhere compared to web user controls with more customization with UI, Menus and placing., ASP.NET 2.0 now has the Webparts Framework which allows creating webparts, communication between webparts.

  • Master Page
    ASP.NET 2.0 allows you to define a Master Page [Master Template] which defines the basic layout of your website further changes in the Master pages are applied to overall site without any code change in the other pages, In classic ASP this was somehow achieved by using Includes, This is also termed as Visual Inheritance.

  • Personalization
    If you have used Amazon.com, one of the features that the site provides is remembering you as a user and showing you your selections, more like the page you've created with all the items you have looked for, very cool personalization feature, ASP.NET 2.0 provies the Personalization API which allows you to do the same with minimal effort, this feature can be used to store user preferences offer different types of discounts on different products depending upon the users preferences.

  • Web search
    If you have ever used the Google API, well a similar thing is available for MSN Search.

  • Caching in ASP.NET extends further with 2.0 to link caching with SQL server directly, more like data fetching from the server will be done only if data from the table changes else cached data will be flushed on the page.


ASP.NET 2.0 "ATLAS"
I Create a ASP.NET 2.0 page with a form submit, to post data to the server and make changes depending upon response to the same, how about all this without a round trip to the server, yeah thats what AJAX is all about Client - Server talk without round trip to the server, basically through Javascript and XML, and ATLAS makes working with AJAX simpler, using ATLAS with ASP.NET 2.0 you can make some very interactive Javascript enabled UI, ATLAS provides a set of Javascript libraries whcich can be used to perform client server talks without page refreshes/submits. Some very good examples were shown by Nikhil Kothari during his presentation, like connecting to a webservice and showing weather information for different cities without a single page refresh.
Well a few things to talk about ATLAS

  • Framework to implement client - server communication using AJAX without round trip to the server as a post.
  • Includes a set of client and server based controls
  • Webservices bridge to call from client side instead of server side
  • Wrapper on top of javascript
  • Inbuilt Atlas script manager for

    1. Partial rendering
    2. Triggers collection to specify which panel/control gets updated

  • Auto complete depending upon whats typed get the suggested word
  • Drag overlay extender -> simply drag and place panels anywhere on the page.
  • Javascript progress bar to show execution process instead of the web browser progress bar from the status bar.



References:

http://atlas.asp.net
http://nikhilk.net
http://lab.msdn.microsoft.com
http://microsoft.com/seminar