Monday, October 29, 2007

About Me

DEEPAK DHAKAL
285 Robins Rd Apt E7, Hiawatha, IA, 52233, (319) 210-7070
therisingdeepak@yahoo.com

Key qualification
• Over 3 years of experience in programming, testing, deploying and maintaining web /windows based applications; has contributed to full software development life-cycle.
• Strong technical background, interpersonal communication and project management skills, with ability to adapt to new technologies, environment and applications proficiently.

Professional Summary
• 3+ years of designing, developing and testing software using .NET 1.1/2.0/3.5(C#, VB.NET), NUnit, ASP.NET, ADO.NET, COM, WINAPI, MFC, C, C++, AJAX, XML, Web Services, Adobe Flash, VSTO, WCF, Mobile Web Development.
• 3+ years strong experience with Object Oriented Systems Analysis/Design, Test driven development, Multi-tier design, Design patterns and UML Diagrams with excellent knowledge of the software development life-cycle.
• 3+ years of hands on experience in Relational Database schema design using MS-SQL 2000/2005, Oracle 9i with Strong familiarity of relational database modeling principles/techniques and great experience in integrating views, triggers, cursors, indexes and stored procedures with development environment
• 6+ months of experience using Test Stand (LABVIEW) for testing test fixtures.
• 5+ years of engineering and software development experience using Microsoft Technologies
• 1+ years of experience in Java swing programming, PHP, JDBC and JUnit testing.

Professional Experiences

Fastek Intl, Cedar Rapids, Iowa March 2007-Present
Software Engineer
• Worked as a Software Engineer/team leader for Fastek International and its clients. Performed tasks including day-to-day development and maintenance of the web/windows applications, including web component creation and leading a team of programmers.
• Contributed as a team leader during the development of different web/windows based company management systems software as well as trained entry level programmers.
• Quality assurance testing of all the development prior to launch to ensure proper functionality, logics, coding conventions, and consistency with user interface.

Major Projects Summary

iPrsim Global (http://www.iprismglobal.com)
A Secure Virtual Office (SVO); real time collaborative Web Conferencing with a suite of high performance workflow tools, data integration applications.

Summary:
• Developed dynamic web pages using ASP.NET 2.0, ADO.NET, AJAX and Web Services with MSSQL 2005.
• Designed/developed Mobile web pages for www.iprismglobal.com for handheld mobile devices using MS Mobile Emulators.
• Implemented Dundas Chart, Gauge, and Digital Dashboard using Dundas 6.0 using ASP.NET.
• Designed/Developed Windows Prism Jabber Chat Application ( like Google Talk ) that supports link post, chat history, adding/deleting users, managing groups and offline messages using .NET web services, XMPP protocol and .NET Interop services.
• Developed Prism Outlook toolbar that facilitates to sync the MS Outlook Calendar Appointments to prism Web calendar using .Net add-on Projects (VSTO) for Outlook 2003 and 2007.
• Wrote testing cases and test procedures to test the above applications in NUnit and created documentations.
Development Tools: C# 2.0, ASP.NET 2.0 (AJAX), Dundas 6.0, VS 2005, SQL Server 2005 and Reporting Services, VSS, Windows forms, Office 2003/2007
ViconNet 4.0 Intregation for CCTV (www.vicon-cctv.com/viconnet-intro.html )
A Fully scalable networked video surveillance solution based upon ViconNet software that Allows for complete interoperability between all devices connected to the network.
Summary:
• Developed/Managed MFC layer application to connect to the Win32 C library that connects to the CCTV devices connected to the network.
• Integrate the .NET/CLR layer to the MFC layer that facilitates easy interface to the windows based application using .NET API calls.
• Developed and tested the Upper windows form layer that manages the Zooming, Rotating and storing the video frames to the database.
• Documented and managed the proposal estimation for the application.
Development Tools: C#, MFC, C++, WIN32 API, VS 2005/2003, VSS, Computer Workstation.
AIRport (University of IOWA, MBA)
AIRport is university of Iowa’s Admission, Information, and Registration portal to the MBA.

Summary:
• Developing N tier AIRport Web application and implementing UML classes and interfaces in ASP.NET 2.0 with full AJAX support.
• Writing DTS Packages, triggers, cursors and stored procedures in MSSQL 2000 and integrating them with the application.
• Documenting test cases/test suits and testing them in NUnit.
• Writing reusing components (SSH FTP client, .CSV Creator, Nightly processes using multithread, Reporting tool using Crystal Report) to support the main application.
• Communicating with the clients about the changes they desired as the project developed, including follow-up documentation.
• Provided Training to few entry level programmers.
Development Tools: C# 2.0, ASP.NET 2.0(AJAX), Visual Studio.Net 2005, ADO.NET, XML Web Service, SQL Server 2000, HTML, CSS.
J&P Cycles – E-commerce website & Internal Portal
“J&P cycles” is company that sells motorcycles part of various brands since 1979. J&P Cycles consulted Fastek for solution for the issues which they had with their E-commerce system. I was a member of the consulting team in upgrading and maintain their E-commerce system. http://www.jpcycles.com

Summary:
• Web Development using ASP.Net, ADO.Net & SQL 2000.
• Development in ASP, JavaScript, AJAX, XHTML, VBScript, XML.
• Integrating the e-commerce system to Controller+ using TCP/IP Socket Programming.
• Implementation and consumption of Web Services using SOAP, WSDL.
Development Tools: VB.NET 2.0, ASP.NET 2.0(AJAX), NUnit, XML Web Service, MSSQL 2000


FASePay Autobilling (PSO Canada)
An auto billing system for different restaurants in Canada to handle credit/debit card process, it manages payment history and billing processing with its own payment gateway.

Summary:
• Developing N tier Merchant Manager Web application with ASP.Net 3.0, Silverlight.
• Writing views, triggers, cursors and stored procedures in MSSQL 2005 and integrating them with Merchant Manager Web application.
• Designing and Implementing WCF (Windows Communication Foundation) services and testing them with service host and service clients.
• Documenting test cases for the services and testing them in NUnit.
Development Tools: C# 3.0(WCF), ASP.NET 3.0 (AJAX), SilverLight 1.0, Visual Studio.Net 2005 SP1, SQL Server 2005 and Reporting Services, Visual SourceSafe.

B787-Model 0877B1 Software verification
A Model 877B1 is the icing conditions Detector (ICD) for the BoeingB78. The software was from Goodrich and verification was done by Fastek Team. TestStand was the testing tool

Summary:
• Configure TestStand Enjoinment with hardware and other software Components.
• Assisted writing test sequences to test the hardware using TestStand.
• Tested and modified the basic C code for the hardware.
• Run and generated the reports for each Test case and documented it using VSS.

HRT (University of IOWA)
A Health risk tracking application with few flash animations to find the risk of dying within coming 10 year by heart attack.

Summary:
• Developing/ testing a flash animation using Adobe Flash CS3 (Action script 3.0) to track the 10 year risk to heart attack...
• Developing/ testing the main application in ASP 3.0 with SQL server 2000 backend.
• Writing DTS Packages, triggers, cursors and stored procedures in MSSQL 2000 and integrating them with the application.
• Documenting test cases/test suits and testing them in NUnit.
Development Tools: ASP 3.0, SQL Server 2000, Adobe Flash CS3, AS 3.0, CSS, VSS.

HitechValley iNet Pvt Ltd, Kathmandu Nepal Sept 2004- Aug 2006
ASP.NET Web Developer in C#

Major Projects Summary

Online Jewelry for Car
An E-commerce project, sells various parts of automobiles of different types. It has to handle millions of data and the project was from USA.

Summary:
• Converting existing VB.NET code to C# code and writing test cases.
• Implementing the UML classes and interfaces to the C# in VS 2003 and integrating them within the subsystem.
• Writing views, triggers, cursors and stored procedures in MSSQL 2000 and integrating them with .NET environment.
• Communicating with the clients about the changes they desired as the project developed, including follow-up documentation.
• Configuring and maintaining the source control CVS.
• Reusing components like Data access layer with XML.
• Documenting daily TODO tasks and submitting to the project manager.
• Finishing the project within time limit specified by client.
Development Tools: C#/ASP.NET 1.1, VS.Net 2003, ADO.NET, SQL Server 2000

Online used car management application:
An E-commerce project to sell and buy used cars. The client is UK-based and requires special handling and manipulation of postal code data

Summary:
• Communicating with the client to define the requirements for the application, including full documentation between the parties.
• Designing the use cases, class diagrams, and subsystem diagrams with full documentation using Rational Rose using RUP.
• Implementing the UML diagram to the code in C# and writing test cases using N unit.
• Communicating and coordinating with two new developers and assigning daily tasks to them.
• Integrating payment gateway PAYPAL to the application.
Development Tools: : C# 1.1, ASP.NET 1.1, Visual Studio.Net 2003, ADO.NET, XML, XSLT, SQL Server 2000, XHTML/DHTML, CSS, JavaScript and CVS.

Online DVD management system
An E-commerce project that helps to sell and rent various types of DVDs using web services and RSS Fee, the project was based on Nepal
Development Tools: C# 2.0, ASP.NET 2.0, VS 2005, ADO.NET, SQL Server 2005, CSS.

Maharishi University of Management, Fairfield, Iowa Nov 2006- Jan 2007
Teaching Assistant
(Software Engineering, Distributed computing, advanced software development)

Everest Engineering College, Kathmandu, Nepal Sept 2004 – July 2006
Project Instructor

Education
• Master of Computer Science, Maharishi University of Management, Fairfield, Iowa, GPA: 3.82 (Computer Science) currently enrolled ( one course remaining for the graduation)
• Bachelor of Engineering in Computer, Pokhara University, Pokhara, Nepal (2005) CGPA: 3.68

Certification
ASP.NET: Brainbench Certification, Score: 3.71, ID: 6663541
C#: Brainbench Certification, Score: 3.79

Technical Skill
Languages C# 1.1/2.0/3.0, J2SE, VB.NET, VB 6.0, C/C++, MFC.
Development Environments VisualStudio.Net 2003/2005, Eclipse 3.1/3.2 for Java, VS 6.0
Web-Development Technologies ASP.NET 1.1/2.0/3.0 (C#), ASP, ADO.NET, XML WebServices, SOAP, WSDL, XML, Servlets, Flash CS3, Action script
Scripting and Markup JavaScript, PHP, HTML,XHML, XML, XSL, XSLT.
Databases SQL Server 2005/2000, MS Access , MYSQL,Oracle
Operating Systems Windows 98/NT/2000/XP, Windows Server 2000/2003, Linux
OO Tools & Languages Rational Unified Process (RUP), Rational Rose 2000, Omondo.
Testing Frameworks NUnit, JUnit., NAnt, NDoc
Web/App Server Apache Tomcat, IIS 6.0.
Methodologies Rational Unified Process (RUP), Design Patterns.
Source Control CVS, Visual Source Safe.

Tuesday, October 16, 2007

Microsoft Silverlight : An Introduction


WHY ?
  1. It supports playback of WMV files on both PC and Macintosh, with many options for interactivity during playback; with just a couple of lines of code, you can provide a platform-neutral way to handle all your movie files. Silverlight supports full-screen 720p video and offers seamless transitions between full-screen and windowed mode without losing your position in the video (something that media sites are crying out for today).
  2. By separating markup (XAML) from code, Silverlight provides a familiar web metaphor for designers and developers. You can embed XAML directly within an HTML file if you want a simple, monolithic solution, or you can keep the two separate to enforce a delineation between different web development roles.
  3. Silverlight and HTML integrate seamlessly together. Every XAML element can be accessed or manipulated from the same client-side JavaScript that would be used to interact with any DHTML element: there are no artificial boundaries or barriers, and you can even overlay HTML elements on top of Silverlight content (simply by creating a windowless frame). We'll also make it very easy for an ASP.NET AJAX developer to add Silverlight content.
  4. You can embed XAML directly into your HTML pages; there's nothing binary or opaque about the format. There are only three steps necessary to add animation or media to your RIA application: (i) include a standard JavaScript file in your HTML header; (ii) call a function to create the Silverlight object anywhere on the screen; (iii) add some XAML content (an animation, some media) for runtime delivery.
  5. You have full runtime interactivity with Silverlight content. The contents of the XAML file can be completely server-generated, to contain information populated from a database. From JavaScript, it's just a matter of calling the createFromXaml method to add or remove elements dynamically at runtime. There's nothing that you can only create or manipulate at design-time.
  6. Silverlight is just a 1MB download on a PC (slightly more on a Macintosh because the universal package contains both Intel and PowerPC versions); it supports Windows XP and above, with Windows 2000 support to come.
  7. Silverlight is blindingly fast - for example, you can play many videos simultaneously without stuttering or dropping frames (subject to network bandwidth, of course). We're introducing a new video brush in Silverlight that allows you to use video as a texture for any 2D object (a rectangle, an ellipse or a path). This is going to allow designers incredible power to use media in new ways that have never been accessible through other existing technologies.
  8. Silverlight is both client- and server-agnostic. There's no difference between the Macintosh and PC runtimes; you don't need any Microsoft software on the server if you don't want to - you can deliver a great Silverlight experience from an Apache / Linux server to a Mac OS 10.4 client.
  9. Silverlight is almost 100% upward compatible with WPF. Animation, 2D vector graphics, media, text - they're all present in Silverlight and the concepts you've learnt in WPF carry forward (although Silverlight is a subset - it doesn't support WPF features such as 3D, data binding or templates). You can use the same tools (e.g. Expression Design) to generate content for Silverlight; you can take XAML from Silverlight and use it in a WPF application when you want to scale up and take full advantage of your local machine.
Src: http://blogs.msdn.com/tims/archive/2007/04/15/introducing-microsoft-silverlight.aspx1

Monday, October 15, 2007

database

: The Relational Model

Purpose: Concepts, terminology. Express queries in relational algebra and relational calculus. Translate between relational algebra and SQL (Lesson 6).

e.g. Student, Courses, Grades relations (tables)

An attribute in an entity-relationship diagram has a domain, that is, a datatype and a range of valid values. For example, zip code is a five-digit positive number.

A Cartesian product of domains is a set containing all possible combinations of elements, one from each domain. For example, a chessboard presents the Cartesian product of the rows (a-h) with the columns (1-8), with one square for each combination b5, h2, etc.

A tuple is an element of a Cartesian product.

A relation is a subset of a Cartesian product. For example, the set of valid values for (city, state, zip code) form a relation. Note that this relation contains information, whereas the Cartesian product City x State x Zip contains no information.

In a relation, there are

no duplicate attribute names

no duplicate tuples

In a relation

degree = number of attributes

cardinality = number of tuples

order of attributes has no significance

order of tuples has no sigificance

Note: it is because the columns of a relation are named with distinct names that the order of the columns has no significance.

Note: a result set is a relation in which the both the columns and the tuples are ordered.

Note: a table is a physical representation of a relation. In a table, whether it is in a document on a hard drive, some sequence of columns and tuples will generally be evident.

A relational schema is the set of attributes (with their domains) in a relation.

Relational variables: when we write “a relation R”, we are using R as a variable which represents a specific relational schema and could take as its values or instances any table that is consistent with the relational schema.

Relational Algebra: five fundamental operations, two standard derived operations

· select(R, proposition) S(R, p)

· project(R, attribute set) P(R, A)

· union(R1, R2) R1+R2

· difference(R1, R2) R1-R2

· product(R1, R2) R1*R2

· join(R1, R2, comparison) J(R1, R2, p)

= S(R1*R2, p)

· divide(R1, R2) R1 / R2

= P(R1- (P(R1, att(R1) \ att(R2))*R2) - R1), att(R1) \ att(R2))

Aggregate functions in SQL can be represented in relational algebra by allowing the projection operator to project onto aggregate functions on attributes which are themselves projected out.

A proposition is a Boolean expression which evaluates to True or False for each tuple without requiring any data except that provided by the tuple. For example, on Grades relation, “grade > B” is a proposition. A proposition does not contain any “for all” or “there exists” quantifiers.

Joins come in various flavors:

· Theta join, equi-join (a particular type of theta join)

· Natural join, outer join, inner join

· Semi-join

Division—for example, identify all students who have taken all courses.

Relational Calculus (tuple oriented):

R = { FQAttSet | predicate }

where “FQAttSet” stands for a set of fully-qualified attribute names.

Relational Calculus (domain oriented):

R = { AttributeSet | predicate }

A predicate is a Boolean expression which may contain attributes not in the set “FQAttSet”. All such attributes will be quantified by a “for all” or “there exists”. For example, to get a list of names of student with at least one “A”, we take

FQAttSet = Student.name

predicate = “there exists Grade.courseID such that

Student.courseID = Grade.courseID and

Grade.grade = A”

Note closure: every operation in relational algebra or relational calculus produces a relation.

Fundamental Theorem: Given a set of relations RSet = {R1, ..., Rn}, a relation R can be derived from RSet by relational algebra if and only if R can be derived from RSet by relational calculus.

Keys in a Relation R

· A superkey is a set of attributes whose values uniquely identifies each tuple in any instance of R

· A candidate key is a superkey which does not contain another superkey

· A primary key is a specific candidate key

· An alternate key is a candidate key other than the primary key

· A foreign key is a set of attributes in R which matches a candidate key in a relation S, where S could be R

Note that a key is defined with respect to a relational variable, not an instance of the variable. Identification of a key must be supported by business rules.

No instance of R can establish that a set of attributes is a superkey for R. For example, it may happen that student names in a specific course are all different, but this would not imply that the student-name attribute is a superkey for a classlist relation. On the other hand, a single class in which two students have identical names is sufficient to establish that the student-name attribute is not a superkey.

A view is a derived relation. A view can always be defined by a query on base relations. The purpose of a view is to give restricted access to the database for both user convenience and data security.

The principle issue with a view is whether or not it permits updating the base relations from which it is derived. Updates are allowed if the defining query involves a single base relation and contains a candidate key of base relation.

A relational database is a set of normalized relations (Lesson 4).

Integrity in a relational database

· Entity Integrity—no attribute of a primary key can be Null

· Referential Integrity—a foreign key is either wholly Null or has a match


Nulls may be used to indicate incomplete data. The Interim Report 75-02-08 to the ANSI X3 (SPARC Study Group 1975) lists 14 different kinds of incomplete data that could appear as the result of queries or as attribute values. These types include overflows, underflows, errors and other problems trying to represent the real world within the limits of a computer.

  1. not valid for this individual (e.g., maiden name of male employee)
  2. valid, but does not yet exist for this individual (e.g., married name of female, unmarried employee).
  3. exists, but not permitted to be logically stored (e.g. religion of this employee).
  4. exists, but not knowable for this individual (e.g., last efficiency rating of an employee who worked for another company).
  5. exists, but not yet logically stored for this individual (e.g. medical history of newly hired employee)

6. logically stored but subsequently logically deleted

  1. logically stored, but not yet available.
  2. available, but undergoing change (may be no longer valid).
    1. change begun, but new values not yet computed
    2. change incomplete, committed values are part new, part old, may be inconsistent
    3. change incomplete, but part new values not yet committed
    4. change complete but new values not yet committed.
  3. available, but of suspect validity (unreliable)
    1. possible failure in conceptual data acquisition
    2. possible failure in internal data maintenance
  4. available, but invalid
    1. not too bad
    2. too bad
  5. secured for this class of conceptual data
  6. secured for this individual object
  7. secured at this time
  8. derived from null conceptual data (any of the above).

My First English Blog

Hi this is Deepak