Wednesday, May 30, 2012

Planning Basic Computer Education in Solapur(my hometown) - Part 4

This friday(1st June 2012) going to be last day for this training. I hope student got some benefit and basic knowledge about computer.





Next year again something new for students :-)

Wednesday, May 09, 2012

Planning Basic Computer Education in Solapur(my hometown) - Part 3

Further updates :-)

I was in Solapur on 5th/6th May 2012 and this time also I have good news. Now total student strength is 63 :-). Unbelivable response it is. Out of 63 students, 34 are girl students and 29 boy students.

I have observed that everyone seen so excited to learn basics about computer and one reason behind may be is that we start training with Games :-). Overall, I am very happy with the progress of this project. I again thanks to everyone who is helping me to make it success.

What next - I requested my friend(Ganesh Channa) to draft a note in Marathi language which would focus on following points
1. Importance of Education
2. Equal treatment to girls
3. Take benefit of scholorship
4. Parents should daily talk with their child about school/study and should encourge them to study more...
5. Parents should not force girls to get marry very early (before completion of education)

I will then give this note to every student and will request them to read it before their parents and I am planning to meet parents as well on 26/27th May 2012.

I will keep posting regarding this project.

Monday, April 30, 2012

Planning Basic Computer Education in Solapur(my hometown) - Part 2

Good news...

As I mentioned in my previous blog, we started basic computer education well before schedule :-).

I was in Solapur from 26th April 2012 to 29th April 2012 to start this project and my friends helped a lot especially Eshwar Appam, Umarishi Vanga, Prakash Vanga(has provided his son's computer for one month) and Laxman Annaldas.

Eshwar and Umarishi helped to collect needy students for this project and we were successful to get around 42+ students, whom financial condition is not good but willing to learn basics about computer and have strong will to continue their education.

We got four good tutors from same area and they successfully completed Day-1(Monday, 30th April 2012). I really appreciate following tutors for spending time for this valuable project

1. Nagveni
2. Vaishnavi Tai
3. Bunty
4. Sagar

We are conducting daily 7 batches and each batch include 4 students and each batch is conducted for 1 hour for next 1 month.

Hoping for best for these needy students and under this project they might get help for their future career.

I am going to visit next 4 weekend to Solapur and closely watch progress of this project and I am going to conduct session on Introduction to Internet and going to meet student's parents.

My Drawing skill.... :-)

The Great Shivaji Maharaj(King)

The Great Shivaji Maharaj(King)

The Great Shivaji Maharaj(King)

Doremon & his friend

Charlie Chaplin

Charlie Chaplin & Hitler

Charlie Chaplin

Charlie Chaplin

Nobita Character from Doremon

Raju Character from Chota Bheem

Doremon

Sunday, April 15, 2012

Planning Basic Computer Education in Solapur(my hometown)

Saibaba Chowk,where i grown up and completed my entire education. My mom and brother still stays there. It is poor people area(you can say labour) and they hardly earn Rs. 300 to Rs.700 per week. No parents in this area want to spend much on their children education and it becomes very difficult to one even he/she want to continue education.

I am planning to provide basic computer education to all children in my area from 1st May to 31st May 2012. I want to provide this basic education right from playgroup children to graduate student. I am planning to get Computers on rent basis for one month with the help of some of my local friends. I am in search of tutors..rather volunteers :-) to teach these children.

My main objective of this activity is to increase awareness about education among children and parents. I would like to meet every parent and convence about significance of education for their children.

Following is the syllabus I drafted so far

Topics for below 1st Standard
*Start and Shutdown computer
*Using mouse
*Games(educational)

Topics for from 2st Std to 4th Std
*Start and Shutdown computer
*Using mouse
*Games(educational)
*Typing Tutor
*MS-Paint

Topics for from 5th Std to 10th Std
*Start and Shutdown computer
*Using mouse
*Games(educational)
*Typing Tutor
*MS-Paint
*MS-Word (typing using newspaper, letter writing)
*MS-Excel (introduction)
*MS-PowerPoint(introduction)

Let us see how it goes...

Sunday, March 25, 2012

Till now I worked as

I was thinking whether to post or not these details but ultimately decided to post on this blog only.

1. Worked as Compounder with RMP doctor : This was my first job during school time when I was studying in 8th Class. Doctor's qualification is RMP (i don't know yet what that mean but he could not complete his metric also). I used to get Rs.5 (yes just five rupees) a week. I used go to Clinic in morning for two hours and in evening (after returning from school) around 3 hours.

Interesting part of this job was to call doctor personally from his another clinic whenever patient would visit clinic where i used to work. I almost worked for 3 to 4 years there.

2. Worked as Typewriter : After completion of 10th, I and my mentor/friend/cousine, Prakash Vanga, joined TypeWriting class. We completed 30 wpm and 40 wpm exam too. After that we joined English Speaking class and there my teacher helped to get this typewriter job. This was with HOD of one of Engineering college. My job is to type the page as per details given in handwriting format or from books etc. Office was in Datta Temple, Navi Peth, Solapur. I used to Rs.1 per page. Initially i was very happy because i used get many pages per day it means more income but on an average i was getting very less amount at the end of month. I worked here during my 11th and 12th standard of college.

3. Worked as Clerk : Prakash helped me a lot during my graduation. We (I and Prakash) belogns to very poor family. Condition was such that, if we could not earn money then we had to leave school or college. Prakash helped me to get this job with Shitre Brothers. Here I used to work part-time only. I used to go tution and then i used to go Shitre Office. There I started working with one of Shitre Brother's i.e. ShriKrishna Shitre(Nana)...I used to get Rs.700 per month then. I took gap for B.Com I year and re-joined during B.Com II and B.Com III. Shitre Brothers helped a lot to me during these years. Without their i could not complete my graduation.

I do want to "BIG BIG BIG THANKS" to Santosh malak (Vishwambar Shitre) for giving me first year Fee for my post graduation (MCA). I just cannot forget their help...Without this help maybe i could not write this blog also...All MCA completion and getting job in IT industry credit goes to Santosh Malak and Prakash Vanga. He is so kind person that he helped me financially and undtersood well my college timings also and allowed to work as much only possible.

4. Worked as Programmer: During MCA, I had to leave Shitre Brother office due to college timing and again caught in financial problem. My graduation friend, Dinesh Annaldas, helped me to get job at Regency Exports Pvt. Ltd. Here my job was to program for their export agency. I was getting salary Rs. 1000 p.m.. I thank to Sundaram Sir and Dinesh too, for helping during my post graduation.

5. Worked in IT industry : After completion of MCA, i moved to Pune for last year project and started career in Pune only. Till now i worked with

1. Dukestar Technologies
2. Codexhibit Software Pvt. Ltd.
3. TrueAdvantage Software Pvt. Ltd.
4. Cybage Software Pvt. Ltd.
5. Infosys (currently working)

I had to work hard to get my education due to financial probem. Once I joined DukeStart, then no looking back...no finanical problem :-)...I help my sister children and brother children for their education because I know very well importance of education.

I have too many things in my mind. I definitly want to help poor childeren in my area(Solapur) to get their basica education.

Let us see how life moves on...

Thursday, March 08, 2012

Sharepoint Performance Improvement Tips

Hello All,

Since last three months we were working on performance activity for projet that i mentioned in last post. We are using Sharepoint 2010, Commerce Server 2009, BizTalk and one third part tool as backend.

Following is typeical architecure of project

Web Front End (Sharepoint + Commerce Server...i don't know why this combination has been used...i was very late in this project)
Middle Tier (BizTalk...it just does transformation...no business logic)
Backend (third party tool...cannot reveal info for this)

Client requirement is that page should get loaded within 1 second but it is just impossible because three different parties involved with latest technlogies and each has its own advantages and disadvantages. We were resonsible for WFE part. Client was expecting below 1 second response time for WFE. I conveyed lot of time to client that it may not possible for all pages that we are working on because of dynamic rendereing of page content (all control, business rules, css, js etc). We tried a lot to achieve 1 second response time. Basically following are some activities we conducted

1. SPDisposal Check - Every sharepoint application should use SPDisposal check tool to ensure that objects are getting closed propertly and there is no memory leak problem.

2. Blob Cache - Enable Blob cache in sharepoint for images, css, js files so that all impages, css and js files gets fetched from disk rather SQL always. It is just one line entry in web.config to enable blob cache.

3. Cache Management - This one of the major performance improvement factor that every application should implement cache to its best. Earlier, we were caching just data not activities. Later, we have done cache of activities e.g. apart from caching xml content, cache entire activities that required to render controls or bind data so that xml parsing require only once and not always.

4. Disble ViewState - Disabled viewstate of page, wherever required. I persoally disabled viewstate of page first time :-)

5. Postback Handling - In Dynamic rendering requirement, need to handle postback very carefully, i mean entire page should not get rendered on each postback. Page should get re-rendered on postback only if user need to stay back on page(may in case of business error ). I am very happy that i could implement this successfully and it helped a lot improve application performance.

I will update these points again, i hope that these will help me and some other in future.

Sunday, March 04, 2012

ARR + Cookieless Implementation

In last week I had to solve very critical problem regarding ARR(Application Request Routing).

Background : I am currently working on project for one of top insurance company in Canada. One of requirement is that application should work smoothly even if end user disable cookie in their browser. It means we need to implement cookieless session management. Client is using ARR for reverse proxy and load balancing so we had no option but go for SQL Server State Management because Client Affinity option of ARR does not work without enabling cookie in end user browser.

Problem: Whenever we set cookieless=true in web.config file, application used to stop working.

Root cause : ARR causing generating a new session ID on each request.To find this problem , i had to spend 2 days :-(...

Solution : On ARR, i had to remove ISAPI filter dlls from IIS for application that has been used to route request to web server.

This was huge and huge relief for me... i had to cancel my leave to solve this problem ..damn...but it was worth :-)

Sunday, August 28, 2011

Working hard....

I could not write blog since last 4 months because in new organization i am not getting time at all :-(. We all (i and team) working too hard to acheive project milestones with timefrawork. In project execution ,too many unexpected things croped up but management and client did not change target date. I had to fight with my managers (yes not single manager ...here i have to report multiple managers)with respect to timeline and unexpected items...but managers are manager -:)...

Sunday, April 17, 2011

Joined New Organization

After working almost 5 years in small size software company in Pune, i decided to work with one of the biggest IT company in India. I joined new company on 11th April 2011. Probably i am going to work on Sharepooint 2010 and Commerce Server 2009 ( CS 2009). I have experience of Commerce Server 2007 already and this can be helpful for me to implement CS 2009.

Sharepoint is completely new for me though it should not be tough for me to learn it.

I would definitly try to write my expereince on Sharepoint and CS 2009 on my blog (At least twice a week).

Tuesday, April 05, 2011

Backup Script

If you want to create backup script of data that you want to take backup on daily basis using some batch process and windows scheduler then below is the right option to go with. Copy below stuff in notepad and save it as .bat file and add to scheduler.

@ECHO OFF
CLS
SET DD=%DATE:~7,2%
SET MM=%DATE:~4,2%
SET YYYY=%DATE:~10,4%
SET HH=%TIME:~0,2%
SET MN=%TIME:~3,2%
SET SS=%TIME:~6,2%
SET FOLDER="%YYYY%-%MM%-%DD%-%HH%-%MN%-%SS%"
::START COPY WSSERVICE
xcopy "\\sharedlocation\website\wsService" d:\buildbackup\%FOLDER%\wsService /i /S /E /H /R /Y
::END COPY WSSERVICE

Wednesday, March 23, 2011

Silverlight - WCF Exception Handling

We cannot handle WCF exception handling(using Fault Exception) in Silverlight in routine way. I mean when you pass fault exception to client silverlight applcation it does not get exception details through fault contract. For this we have to change HttpStatusCode from 500 to 200[OK].

Follow below stuff to get it done

<DataContract()> _
Public Class MYFaultException

Private _reason As String
Private _code As String

<DataMember()> _
Public Property Reason() As String
Get
Return _reason
End Get
Set(ByVal value As String)
_reason = value
End Set
End Property
<DataMember()> _
Public Property Code() As String
Get
Return _code
End Get
Set(ByVal value As String)
_code = value
End Set
End Property

End Class


Public Class SilverlightFaultBehavior
Inherits BehaviorExtensionElement
Implements IEndpointBehavior


'Public Sub ApplyDispatchBehavior(ByVal endpoint As ServiceEndpoint, ByVal endpointDispatcher As EndpointDispatcher)
' Dim inspector As New SilverlightFaultMessageInspector()
' endpointDispatcher.DispatchRuntime.MessageInspectors.Add(inspector)
'End Sub

Public Class SilverlightFaultMessageInspector
Implements IDispatchMessageInspector


Public Sub BeforeSendReply(ByRef reply As Message, ByVal correlationState As Object) Implements System.ServiceModel.Dispatcher.IDispatchMessageInspector.BeforeSendReply
If reply.IsFault Then
Dim [property] As New HttpResponseMessageProperty()

' Here the response code is changed to 200.
[property].StatusCode = System.Net.HttpStatusCode.OK


reply.Properties(HttpResponseMessageProperty.Name) = [property]
End If
End Sub




Public Function AfterReceiveRequest(ByRef request As System.ServiceModel.Channels.Message, ByVal channel As System.ServiceModel.IClientChannel, ByVal instanceContext As System.ServiceModel.InstanceContext) As Object Implements System.ServiceModel.Dispatcher.IDispatchMessageInspector.AfterReceiveRequest
Return Nothing
End Function


End Class

' The following methods are stubs and not relevant.

Public Overrides ReadOnly Property BehaviorType() As System.Type
Get
Return GetType(SilverlightFaultBehavior)
End Get
End Property

Protected Overrides Function CreateBehavior() As Object
Return New SilverlightFaultBehavior()
End Function

Public Sub AddBindingParameters(ByVal endpoint As System.ServiceModel.Description.ServiceEndpoint, ByVal bindingParameters As System.ServiceModel.Channels.BindingParameterCollection) Implements System.ServiceModel.Description.IEndpointBehavior.AddBindingParameters

End Sub

Public Sub ApplyClientBehavior(ByVal endpoint As System.ServiceModel.Description.ServiceEndpoint, ByVal clientRuntime As System.ServiceModel.Dispatcher.ClientRuntime) Implements System.ServiceModel.Description.IEndpointBehavior.ApplyClientBehavior

End Sub

Public Sub ApplyDispatchBehavior(ByVal endpoint As System.ServiceModel.Description.ServiceEndpoint, ByVal endpointDispatcher As System.ServiceModel.Dispatcher.EndpointDispatcher) Implements System.ServiceModel.Description.IEndpointBehavior.ApplyDispatchBehavior
Dim inspector As New SilverlightFaultMessageInspector()
endpointDispatcher.DispatchRuntime.MessageInspectors.Add(inspector)
End Sub

Public Sub Validate(ByVal endpoint As System.ServiceModel.Description.ServiceEndpoint) Implements System.ServiceModel.Description.IEndpointBehavior.Validate

End Sub
End Class

-----------------------------START SERVICE CONTRACT---------------------------

<ServiceContract()> _
Public Interface IService1

<OperationContract()> _
<FaultContract(GetType(MYFaultException))> _
Function GetData(ByVal value As Integer) As String

<OperationContract()> _
Function GetDataUsingDataContract(ByVal composite As CompositeType) As CompositeType

' TODO: Add your service operations here

End Interface

-----------------------------END SERVICE CONTRACT---------------------------

-----------------------------WEB CONFIG SETTINGS ---------------------------
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="silverlightFaults"
type="WcfService1.SilverlightFaultBehavior, WcfService1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</behaviorExtensions>
</extensions>
<behaviors>
<endpointBehaviors>
<behavior name="SilverlightFaultBehavior">
<silverlightFaults/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>

<behavior name="SilverlightFaultBehavior">

<serviceDebug includeExceptionDetailInFaults="true"/>

<serviceMetadata httpGetEnabled="true"/>

</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="WcfService1.Service1" behaviorConfiguration="SilverlightFaultBehavior">
<endpoint address=""
binding="basicHttpBinding"
contract="WcfService1.IService1"
behaviorConfiguration="SilverlightFaultBehavior" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>

-----------------------------END WEB CONFIG SETTINGS ---------------------------

-----------------------------IN SILVERLIGHT APP ---------------------------

Private Sub serProxy_GetData(ByVal sender As Object, ByVal e As ServiceReference1.GetDataCompletedEventArgs)
If e.Error Is Nothing Then
txtErrorMessage.Text = e.Result
Else
txtErrorMessage.Text = e.Error.Message
End If
End Sub
-----------------------------END IN SILVERLIGHT APP ---------------------------

Wednesday, March 02, 2011

Enable Tracing for Console Application

For enabling Tracing you need to put following settings in app.config.

<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="myListener" type="System.Diagnostics.EventLogTraceListener" initializeData="Solstice" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>

NOTE - "ApplicationName" should be available in registry. We can use following lines to create Registry for "ApplicationName" (copy below text in notepad and save it with extension .reg and run it)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\ApplicationName]
"EventMessageFile"=hex(2):63,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,57,\
00,53,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,2e,00,\
4e,00,45,00,54,00,5c,00,46,00,72,00,61,00,6d,00,65,00,77,00,6f,00,72,00,6b,\
00,5c,00,76,00,32,00,2e,00,30,00,2e,00,35,00,30,00,37,00,32,00,37,00,5c,00,\
45,00,76,00,65,00,6e,00,74,00,4c,00,6f,00,67,00,4d,00,65,00,73,00,73,00,61,\
00,67,00,65,00,73,00,2e,00,64,00,6c,00,6c,00,00,00


Codebehind ---- You can write Trace info as below

System.Diagnostics.Trace.TraceInformation("Writing Trace Information");

Wednesday, September 29, 2010

Using Google Analytics in Local Envrionment

If you want to test Google analytics in your local environment first (rather than directly on Production) then please follow below steps.

1. Create Host entry of your local website which should include "http://www..."

e.g.



2. Make host entry in host file(C:\Windows\System32\drivers\etc)
e.g.
127.0.0.1 www.testgoogleanalyticsweb.com

3. Create Profile on Google Analytics with www.testgoogleanalyticsweb.com

For rest of things you can read my previous post

Monday, September 27, 2010

Using Google Analytics in Silverlight Event Tracking

Recently we had a requirement to track event(button click) in Silverlight application using google analytics. I have done research on Google Analytics as well as Microsoft Silverlight Analytics Framework(MSAF). I read that MSAF does not work with Silverlight 3 so I decided to go with Google Analytics. Following is the code we have to use for event tracking.

IN SILVERLIGHT HOST PAGE (e.g.testGA.aspx)
[script type="text/javascript"]
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
[/script]
[script type="text/javascript"]
try {
var pageTracker = _gat._getTracker("YOUR PROFILE ID E.G. UA-XXXXXXX-1");
pageTracker._trackPageview();
}
catch (err) { }

[/script]
[script type="text/javascript"]
function trackEvent(category, action, label) {
pageTracker._trackEvent(category, action, label);
}
[/script]

IN SILVERLIGHT XAML PAGE (e.g. testGA.xaml.vb) ON BUTTON CLICK (if you want to track that how many users have clicked button )

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
HtmlPage.Window.Invoke("trackEvent", New Object() {"testGAEventTracking", "AddtoCart", "Click"})
End Sub


Note - Please replace [ with < and ] with > for script block

Sunday, November 29, 2009

BizTalk : Get Received File Name In Orchestration For FTP Adapter

I had a requirement to read received file name(FTP adapter) within orchestration. I found the solution and that is

InboundMessage(FTP.ReceivedFileName)

Add expression shape on Orchestration and add above code. Replace "InboundMessage" with actual inboundmessage name.

Wednesday, August 26, 2009

Reading Data From Excel - Use ExcelDataReader

In one of project, i supposed to read data from Excel. I found following component very useful to achieve this task, specially when you don't want to store excel file on hard drive.

http://exceldatareader.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27275#ReleaseFiles


You can read data because this tool returns data in Dataset.


Aditya's Snap



Sunday, May 18, 2008

Family Snaps

Swaraj & Janhavi(Nephew)
It's Me

Me and Shital


Aai


Baba with Umi


Brother and sister-in law


Mother(avva) is busy...as usual

My Home (Wada) in Solapur, Maharashtra, India



Wednesday, April 30, 2008

Important Tips on Asp.Net Part - 1

1. If Global.asax event does not fire
Ans – We should include App_global.asax.dll, App_global.asax.compiled from bin
directory and global.asax

2. Application_Acquire event throws and exception

a. If you want to use session object then it throw exception

Ans - if (System.Web.HttpContext.Current.Session == null)

return;

3.Generating pdb.files of web application
Ans - VS does not allow to generate .pdb files of .dll for web application.

run following command.

Aspnet_compiler [-v] /[virutual directory name of web application] [-d] [destination path]

e.g.

F:\Program Files\Microsoft Visual Studio 8\VC>Aspnet_compiler -v /presentationtier -d d:\staging