Wednesday, November 14, 2018

My Goodreads - Reading Challenge 2018

I registered to Goodreads couple of yours back out of curiosity and started to actively reading books in 2016 and 2017 but was just struggling to allocate enough time to regularly read. At the very end of 2017, I found about reading challenge in Goodreads and opt in for the reading challenge of 2018 to read 8 books. I shortlisted books before 2018 started and bought paper back copies of first three books before new year starts.

Was it difficult?

Well, I admit it was difficult. Taking a challenge builds pressure on you and its not good to add another reason to stress out yourself when you have so many of them already! All I focused to think was to try look for suitable time to read and always keep a book with me in my bag. Its okay if I do not finish the challenge but at least I would be able to read some books or in a worst case pages.

There were times when I was moving along with the book in my bag and did not read any single page in weeks. At times the books that I chose seems to be boring, so I had to pause with that book and switch over to other ones. I talked about my challenges to lot many people in office and friend circle so that they keep asking me about the progress.

All these things helped but it was still difficult to finish 8 books.

Here are books that I completed. Feel free to react on the challenge if you have good reads account.


What's the catch?

In the beginning I started with some of the big and lengthy books. Based on the time left in the year, I just adjusted my reading list with some small books that I wanted to read out of my big list of books. You will see In search of excellence, thinking fast and slow etc are big books with heavy concepts that takes time to understand. As the year progressed, I just picked up small books like zero to one and I cheated by adding Sea Prayer which is just a picture book that hardly takes 20mins to read.

Join in, let's try it in 2019

As we are heading towards 2019, I will be taking up Goodreads Reading challenge to read 10 books this time. Do you want to join in? Let's do it together!

P.S. - I am in Ahmedabad and all my books are available to be borrowed free of cost for reading.






Saturday, September 2, 2017

Leadership in software development - At Level 1

John Maxwell has described 5 levels of leadership which help leaders in any business domain to understand where they are and where to go from there. His book "The 5 Levels of Leadership: Proven Steps to Maximize Your Potential" covers the levels in much more details with example. In this article, I will share what I have learned from my experiences and challenges I faced during my Level 1 of leadership and how I was able to make it through to next level.

How you make team feel?

Being a newly introduced leader, team will not be knowing you beyond a formal introduction. Communications and action during initial days are most important  and here is what is recommended.
  • Be a curious listener and allow your team members to speak. 
  • Do not provide solutions right away. Make sure that its just information that do not require action, a general complain that requires taking note or a problematic situation where immediate action from your end is required.
  • Do not talk about your expertise, experiences etc to show you are right person to solve their problems. Instead, take appropriate actions, solve the in hand problem in your responsibility and thank the team for helping you. Actions influence the team more than talking!
By having you in the team, they should start feeling more empower, supported and capable.

Focus on basics

Being a leader of any software development team, you must understand what they work on daily basis and how they accomplish expected output with very good details and here is what is recommended.
  • Know what work means in your team and how everybody feels about the timelines, deliveries and output (productivity + quality) expected. 
  • Know what is maturity level of must have basic processes that can help them.
  • Do not criticize or change anything unless you understand WHY they follow existing processes. Ask WHY to the team and listen to them carefully.
  • Do not start changing anything until you fully monitor and understand full set of followed processes for several time.
By having you in the team, when team talks to you about work, you should be able to fully understand it. Even if you cannot solve all their problems as a new leader, listening and understanding  their problems will help you a lot build confidence and trust in the team.

Ask how can you help? 

There are times when team is busy doing their regular work disconnected from you. Visit them at least once in a day asking how they are dong with their work and if you can you help with something. This will give a clear message that you are available to them and open to help.

Appreciate

Keep an eye on smallest achievements of the team and make them feel proud by doing a quick team meeting. Give credit to full team work and celebrate by clapping and appreciating all hard work that has been done by the full team.

In my experience, periodic round of appreciation always motivate people to create a great team bonding. People will prefer to help each other more, crave to achieve more and work harder to receive more of these kind of achievements.

Conclusion

Being at Level 1 is exciting! You are full of energy, learning initial lessons of leadership and working hard towards moving forward to level 2! Hope this quick tips will help you! Feel feel to share your ideas and experience on the same by putting comments below!

Stay in touch & Good luck with your journey of leadership!

Wednesday, October 12, 2016

How to create certificate for any domain from free certificate authority

Before we start

Before we start we will need the domain/sub domain for which you want to generate https certificate is up and running on http.

Get Certificate, Key and CA Certificate

  1. Goto https://www.sslforfree.com/ and enter your domain/sub domain and click on Create Free SSL Certificate
  2. Click on "Manual Verification" and then "Manually Verify Domain"
  3. download the file "Download File #1" and upload it to specified path
  4. Click on download certificate and download certificate, key and ca certificate.
  5. download openssl for windows from http://slproweb.com/products/Win32OpenSSL.html
  6. put your certificate and key in bin directory of openssl installation where you have openssl.exe.
  7. fire command "OpenSSL.exe pkcs12 -export -in cer.cer -inkey key.key -out iis-cert.pfx" where cer.cer is the certificate and key.key is the key file download from sslforfree.com.
  8. It will ask you for a password and as it again to confirm. Once you type same password twice, it will generate iis-cert.pfx that you can rename.
  9. go to iis server and select the iis server node
  10. click on server certificates
  11. click on import in the top right section and choose iis-cert.pfx and enter password.
  12. This will import ssl certificate in the iis certificate store that you can assign to any site in iis when you choose https binding.


 
 

Thursday, November 27, 2014

Integrating servicestack 3 into DNN - Part 1 - Introduction

Introduction

In this series of blogs, I will try to share my thoughts of using ServiceStack 3 in DotNetNuke 6, difficulties, limitations and how I finally solve each problem step by step.

Part 1 - Introduction

Background

I started looking at ServiceStack 3 years back when I was working with one of the client who provided ServiceStack services and asked me to use them as back end instead of storing data in DotNetNuke database.

At the end of project, I learned a lot about servicestack.client and associated facilities and then I invested some time using servicestack to deliver rest base services. Now a days ServiceStack and asp.net web API both are obvious options if you are planning to start any asp.net web services along with WCF. It depends on your experience, your team's experience an vision a lot.

After learning ServiceStack, I utilized it in couple of asp.net based projects which are either conversion of cold fusion to .net services or interoperable database independent service development with .net and I was very happy with the way I achieved best results because of ServiceStack

So, some time back, when I started architect a new web platform for one of my recent client, who was using DotNetNuke and wanted their platform to support APIs so that they can be used with navite mobile apps, I decided to use ServiceStack again in this scenario as well!

Try ServiceStack 3 Hello world!

  1. From Nuget Package Manager Console:
    install-package servicestack -version 3
  2. Since I wanted the base url of the servicestack to start from /api/ instead of / I did some web.config modifications:
    1. In handlers section added following line:
       <add path="api*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*" />
    2. in modules section added following line:
       <add name="ServiceStack.Factory" path="api*" verb="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" resourceType="Unspecified" requireAccess="Script" allowPathInfo="true" preCondition="integratedMode" /> 
    3. If you have webdev enabled, do following to support PUT, DELETE verbers ONLY if these verbs are not working in handlers section:
      <remove name="WebDAV" />
Now, servicestack hosting on web requires writing code in global.asax Application_Start event and I was stuck there! I found more than one solution on internet to achieve this, but I decided to modify the code to add another line to initialize servicestack by writing: new AppHost().Init()

I know change dotnetnuke core dll is not good practice. Suggestions are welcome to fix this in the best possible way!

In the next part we will start coding a real api!

Saturday, July 26, 2014

Do you really need role base pages in dotnetnuke?

Introduction & Background

I have experience working on an existing dnn site that has lots of custom features and I join the team to contribute as developer, lead or code reviewer. Many times during last 8 years of such experience, I found lots of people are creating role base pages in dotnetnuke and implement some custom login in either login module or somewhere else that can check the role and redirect.

Is this really required?

Example Scenario

Lets say you are working on a hospital portal in dotnetnuke and want to prepare a dashboard for care taker, admin, manager, and bunch of other roles. 

If you create different pages and drop a single module for role wise dashboard, and use some custom logic to redirect user after login to that page, that is something that needs a second though.

Dotnetnuke security inherited from portal > Tab > Module. Inheriting up to module level is recommended for most of the cases.

I would create a page(tab) and drop all the modules that I prepared for role wise dashboards. I would do multiple modules to make things separate and clean but drop all modules to the same page. In module settings of each module, uncheck the inherit permission button and check the role which is expected to see this module. 

Now, without having too much of coding/customization and tricks, each role can easily access data that is expected to their roles. Easy!

What do you think?



Sunday, January 6, 2013

System.ArgumentException: Exception of type 'System.ArgumentException' was thrown. Parameter name: encodedValue

I was configuring one of our clients farm which required FBA on different web applications (around 5) and he wanted each web application should have separate user store. That was too tricky since you just need to set up Application property of the membership provider and you are done.

After completion of these settings, all of my applications were having a common exception either in log out or login to the web application. Here was the exception.

System.ArgumentException: Exception of type 'System.ArgumentException' was thrown.  Parameter name: encodedValue    at Microsoft.SharePoint.Administration.Claims.SPClaimEncodingManager.DecodeClaimFromFormsSuffix(String encodedValue)     at Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager.GetProviderUserKey(IClaimsIdentity claimsIdentity, String encodedIdentityClaimSuffix)     at Microsoft.SharePoint.Administration.Claims.SPClaimProviderManager.GetProviderUserKey(String encodedIdentityClaimSuffix)     at Microsoft.SharePoint.Utilities.SPUtility.GetFullUserKeyFromLoginName(String loginName)     at Microsoft.SharePoint.ApplicationRuntime.SPHeaderManager.AddIsapiHeaders(HttpContext context, String encodedUrl, NameValueCollection headers)     at Microsoft.SharePoint.ApplicationRuntime.SPRequestModule.PreRequestExecuteAppHandler(Object oSender, EventArgs ea)     at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()     at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

After checking all my steps right through starting. After getting all the other exeptions cleared the above exception was the only exception that I was getting. That was resolved using "Exception of type 'System.ArgumentException' was thrown" got error when i have signout from webapplication in sharepoint 2010?.

I hope this will help to you if you are getting same error due to a silly custom property of a custom web part for registration!

Monday, December 31, 2012

SharePoint 2010 foundation on windows 7

If you are planning to install SharePoint 2010 foundation in your windows 7 machine, there are very good references out there in many blogs. But after I installed it I was not able to create new web applications.

I noticed, I was an administrator account with different name than administrator. I found here that we can enable in built administrator account.

I enabled administrator account and added it to managed accounts and farm administrators group.

After trying so many things from forums, finally I got everything working in SharePoint Foundation in my machine!

Popular Posts