Links of interest

I read a lot of post, article and site during the past week, and I need to share the three of these links that really kept my attention.

Code First

Ok, I feel really stupid to speak about it… I found an interesting tutorial on what is called “Code First with EF 4.1“. I’m not afraid to admit it, Entity Framework isn’t my cup of coffee, but I put my hands into it during the last two weeks. I want to learn more deeply how to use it efficiently. Some of my colleagues place some magic keywords into my brain. The one in my mind is “Code First” came into my mind frequently, when I was thinking about Entity Framework.

Be or not to be RESTful ? 

Ok, I’m also learning about how to implement a great MVC API for one of my project. It’s easy to design and code doing work between the client and the server, but I’ve to admit it, my MVC API wasn’t RESTful. So I had to come back to the base of it. Alexandre Brisebois explains it clearly by his post “Characteristics of Good REST Services“.

Brent ozar unimited: Web site fully dedicated to SQL Server performance issue, bugs, optimization. It was highly suggested by a colleague who learn SQL Server management by himself from this web site, because they provide really great tips on how optimize sql query and hints.

I have some others links and things to share on what I had learned during the past week, but I want to wait a little more before to share it.

don’t forget to have fun…

New on Microsoft Azure: Visual Studio Online

Last year, I was back as .net developer, where I was late for about five year on .Net Technologies. When I was back on my chair, some very great surprise were come, in term of new features, nuggets and tools to make our code works.

Of course, I heard about this new kind of stuff, like Sprint planning in Team Foundation Server, Entities Framework, MVC web API, and some others. The one that really enjoys myself was the Sprint planning integrated into Team Foundation Server.

Communication is the main problem where every team can fail theirs projects. How many of you have a project manager who decentralize the information and keep it for himself? In fact, how many of you, the developer, centralize his own information, specification, special workaround secret for themselves? All of us did that, and all of us fail at it, when critical times come to “Hey you, fix it now, it’s an emergency !!!!”.

The part of the response is partially Team Foundation Server can help you to centralize and plans your project delivery and bugs. I don’t need to describe that TFS is a source control. But I need to show quickly, what I’ve learned as the first step on how I used TFS to increase my productivity project delivery.

In this short video, I simply define what I will do in sprint 1. Then I create a product backlog and put into it some work item (task). Work planning is then very more visual than a Microsoft Project file.

 

 

Once you do your work into visual studio.net, once you finish to fix something related to a task, you need to attach it to your work item. When you will commit your change, it will be set to your work item and then you will be able to see this work item completed in TFS.

For more explanation on Team Foundation Server terminologie: Team Development with Visual Studio Team Foundation Server

The beauty of it, is now that it no longer required a local server instance specifically configure in your organization into your AD or if you used it for your personal project, you don’t need time to configure your own source control server and maintains different update. In fact, Microsoft launches officially, in April, what they call Visual Studio Online as service into Microsoft Azure.

Of course, a free basic account is available, and then allow you to have a maximum of five users. (Ideal for your personal project or for a small business)

Andrew Clear gives explanation on it: Meet Visual Studio Online: What you need to know

Here more details about the pricing and available features: click here

#iOS development with Xamarin on Mac OSX

Just for finish, I’m not shamed of that, I’m a Mac user, and I love to develop on for Mac too. For that, I’m using the excellent Xamarin software to build iOS project. Of course, Xamarin is also compliant with TFS, on which you are able to put your stuff in your TFS local server or visual studio online account.

Here a couple of links, on how to doing that, (not so complicated)

Using TFS with Xamarin

For your entreprise or local TFS instance: Configuring Team Foundation Server for Xamarin

ps: and never forget to have fun ;)

Note to myself: Azure Storage deleted by mistake, what to do ?

Note to myself: If I delete storage into Microsoft Azure, I need to don’t forget how the Primary Access Key is linked to a cloud service.

Things to remember:

  1. Recreate the Storage with the same name
  2. Go into the storage property, get the newly Primary Access Key and copied it.
  3. Find the file named ServiceConfiguration.Cloud.cscfg, and change the value property of the settings node is found in the ConfigurationSettings nodes of the file. Then change the old key by my new Primary Access Key.
  4. Redeploy the Cloud Service.
  5. This was also why, I wasn’t able to take a look at the “View Diagnostics Data” of my cloud service instance.

azure.storage.deleted

.Net Developer working on MacBook

Very some of .net developer makes some fun on my about the fact i’m using a MacBook Pro for work. Of course, it’s strange to use it when you are specializing on Microsoft Technologies. But, it never bugs, admit it for one time… and we can work without having to re-update our OS…

More seriously, what I used in the day-to-day work ? Here a couple of tools I’m using to get my jobs done on OSX…

This is mainly with which tools i’m working. I’ve a mac since three years, the choice was made simply because at the time it was the best choice around me to work with the photography and music video clip. A day, at work, I jump to work with it, and it was better than the laptop that my employee gives to me. Since that, I decide to never go back with some strange randomly configured PC.

One more word, about the greatest tools for every self employed, it’s a site which you can manage your timesheet and bill your customer. This site is paymo.biz. Once you create your profile, you will be able to put some of your time work assigned to your clients and create invoice build in it. You will be also able to give access to your customer on their customer profile and track when the have taken a look on your invoice. They have a free limited plan, and very cheap plan for more invoicing sent per month… I highly recommend it if you are self-employed.

The Broken Windows Principle: My point of start for Refactoring

This morning, I’m quite bad ass… let’s say it, we constantly write software bugs. Consequently, for the main part of the time, our code, our code design, never meets the quality level of the other developers. How many times have you said: “These codes are mess” ? Try the exercise, and thinks about it, if you said it, the others said it. Maybe it’s time to do something to fix it… yep I’m talking about refactoring.

The broken windows principle, is a lot documented by my friend, Alexandre Brisebois. This principle establishes the link between our code and a warehouse with a lot of windows broke and the consequence to never fix it. What I want to say and he said, it’s our responsibility to fix it when we saw codes, projects and or technical flaw in it.

We all know, the challenge here isn’t to convince us that refactoring is THE solution or where the fault came from. And I’m really not a fan of those who said that is a management fault. Let’s face it, the fault came from us, cause we always have the opportunity to express our opinions with and demonstrate le pro and cons. We must have the courage of our opinion, and those people are always open to improve and doing better.

Think about it, your IT director and/or manager has to deal with other stuff outside the code, the architecture, best practice and design pattern stuff.. They have to deal with you, the developer, also the others manager with some strange functional requirements, and most funniest things… constraints (human, financial and expectation). They don’t care about how the code is messy or great… They want it work… only work… It’s there that you can change something, in your approach to convince, if your project is like a broken window warehouse.

How you can convince them ? Put your fear about the problem in their perspectives. It will be an easier way to convince them to your “saint Graal” code quest. Let them see by themselves, and they will understand that sometimes they will be stuck inside an infinite loop of problems.

I think, it’s important to not give the fault on someone else. Everything had a context, and we cannot judge why decisions were made in that way. Most important we can’t change the past, so just find solutions, positive solutions, and create the momentum around the discussion… maybe more than one surprise will come.

For one of my proposals to one of my clients, I based my information from this excellent article: Why should you refactor ? It will give you some hints on how to explain it simply in your own words and reality…

My come back as real developer

It’s pretty strange to write about these subject, cause it’s hard to admit that I’ve been around five years away from the latest technologies and hot new concept in terms of development technologies… As developer, we are what we are, strange nerds, called sometime “g33k”, and we can’t admit the truth to be out of date on technologies. But let’s face it, most of us, are always out of date… in fact, we always are out.

To explain why I’m writing this, it’s simple. Six or seven years ago, I was a fully time .net developer, mastering all these pretty new technologies, WCF, WebService, Web Forms, Sharepoint, and a day I take another path in my career. A specialization on a niche product, an ERP called SyteLine. It wasn’t a wrong decision, cause I’ve learned others good things in term of this kind of business, and about what my client does to runs theirs plans in order to make stuffs.

Consequently, I past five years to be a top-notch technical consultant on these product. Doing all software development inside the ERP system, all clients implementation, migration and all technical  training to many developer. It’s was a great challenge to learn how to transmit knowledge and a great opportunity to see real people and learn them something. The down side was that the product didn’t require the same kind of development effort, and the technology involve with this product doesn’t change at the same speed of what we can use in the standalone development project. It’s also the case for many companies working for some years with the same old system, the technologies don’t need to be change, the system works… It’s a perfect world in those case… but not for the developer who needs some new challenge sometime.

The reality came to me, a day, I decide to leave my job to be an independent consultant and be back with the latest skill required to be taken seriously in interview. Why ? Simple because, I’m a developer, I love create new things. It’s sarcastic, but if you want kill a developer, ask him to just work inside configuration file.

We are now one year later since I create my own consulting company. The learning curve on Microsoft Azure, MVC API, Entity framework, iOS development and other things is in progress… in progress because, we can’t never assume that we are expert on everything or we know all in detail on it. The fact of it, is I re-open my mind to not only use what I know, but trying to reinvented the way I’m currently thinking about a problems, and solving it differently that I’ve previously thinks… The world constantly change, let’s face it… it’s not only in our field of work we have to learn constantly, but in any kind of work. The past year give me the chance to learn more and more every days, from my friend, my customer, from you and what I can do for it… share what I’ve learned and what I’ll learn… this is why I restart to blog about programming.

Thanks…

Long time away …

I’ve been away from this blog from a moment. Some years ago, I was  writing on a daily basis on it, posting some stories and pictures… my daily life…

The last year was very exiting, I moved forward, realized an old dream and made it happened. Without the help of my family, my fiancée and some of my friend, it wasn’t never be possible to do it. Sometime you needs to boost your confidence, and those people help me a lot with it.

The side part of it, I reduce the time passed to made photography. In a past not so long, it was a way of life, made picture of every moments… I was truly enjoy those moment with many awesome people from who I’ve learn who I was, and who I’m now.

It’s completely out of blue, if I’m writing tonight and thinking abouta post of some picture that I had made in the several past year…

… and post some unpublished pictures…