Skip to main content

Posts

Showing posts from August, 2014

Current and fake IT position presented by employees

Today post will not be about a technical problem or technology. It will be about IT people and their fake positions (the ones that are presented by them)
More and more often I see a lot of discrepancies between the real passion of a person in a company and the one that they share on LinkedIn, different events and meetings or on mail signature.
Before going deeper let’s see some example:

Current position |“Dream (fake) position”
Junior Developer |Software Consultant
Junior Developer |Solution Provider
Software Developer |Team Lead
Software Developer |Software Architect
Senior Developer |Technical Lead
Senior Developer |Project Manager

This are only a small part of the fake positions that I discover in the last 2-3 months. The list could continue, but you got the idea.
From my perspective, lying in your business card is a pretty big problem, which shows to me how reliable and honest is that person. For this kind of persons, the position is the most important thing for them and usually t…

Running Load Tests on Microsoft Azure with IP Switching feature

One year ago I started to investigate how we could use Load Test feature that is available on Visual Studio 2013 Ultimate and Microsoft Azure on our own project. The main idea was to develop a mechanism to test complex scenarios (especially written in C#) that can simulate 10k, 20k and even 100k users.
The idea was accepted by client and we end up with a great and interesting application that can block a system witch worth millions. This is great from both sides. Mission complete for the team that defined the load tests, because they were able to define the load tests. But in the same time great for the development team and especially for the support team because they know the limits of the system.
Now, we stuck with another problem. Because we are using Microsoft Azure infrastructure to run Load Tests (having our own hardware would be to expensive), we cannot simulate calls from multiple IP address.
This is a current limitation Visual Studio Online - IP Switching feature is not yet a…

How to define a REST service with pagination support - Part 2

Part 1: http://vunvulearadu.blogspot.ro/2014/08/how-to-define-rest-service-with.html
Part 2: http://vunvulearadu.blogspot.ro/2014/08/how-to-define-rest-service-with_17.html
In this post we will see how we can implement using ApiController, a REST service that expose a list of items using pagination.
In the previous post related to this subject we define the REST API for pagination. We saw how important is for clients to has all the information directly in the message itself. For example the next page URL should be send by the service, not constructs by the clients.
The below example contains the request and response of our REST service.
Request: GET /api/cars?pageNumber=3&pageSize=20 Response: { "pageNumber":1, "pageSize":20, "totalPages":3, "totalItemsCount":46, "prevPageLink":"", "nextPageLink":"/api/car?page=2&pageSize=20", "firstPageLink":"/api/car?page=1&a…

Visual Studio Features can save us a lot of time

During a meeting I realized how useful is one of Visual Studio features. There are small things offered by our IDEs that are using but we don’t realize the real value of this features (we save a lot of time).
During a meeting we had to  search for a property with a specific name. We didn't remember the name of the property exactly, but what we knew about it were the acronyms – “LTS”.
How you could search for something like this a few years ago?
Well, maybe you would try a full project search using regular expression for something like “ L*T*S* “. This may work, but a lot of false results you would found.
In Visual Studio 2013, you have the option to make a quick search from “Solution Explorer” window (‘CTRL+;’ shortcut). In this search field you can write directly the acronym of a field, property, method or class and so on. The IDE is smart enough to detect this and look for results that could be ‘compressed’ as that acronym (of course, for people that are using ReSharper this fea…

Refactoring in the Maintenance phase

In this blog spot I would like to talk about the maintenance phase of an application, especially from a developer perspective.
Usually a software product has the following life cycle:

Requirements definitionSystem and Software Design Implementation and Unit TestingIntegration and System TestingOperation and Maintenance
At the last phase, you already have a working product that was deliver to the client and is used by users. A big problem at this step is the technical depth that not only exist but will increase with every bug that you fix.
When a bug is found, almost all the people recommend to touch only the part of the application where the issues was found and fix the problem with the minim amount of changes. The problem with this approach is related to technical depth and the garbage that you need to pull with you.
What is happening with the dirty fixes that are done at this step? Who and when you will refac. this parts of the application and clean the code.
A non-technical client …

Today Software Magazine - Clean Code, naming

Yesterday I new number of Today Software Magazine was launched. I decided to write a series of article about Clean Code, because I consider that this book should be read by all developers. In this first article related to Clean Code I wrote about Naming.
At the ‘release’ party I talk a little about Clean Code and Naming. I was surprise to discover that only a small part of the people had the opportunity to read or hear about Clean Code. Because of this I’m happy that I decided to write about this subject.
During the presentation somebody remind us about the name of the variables from a for or while. I remember during high school, when I has to work with bidimensional matrix I had to use for in for in for.
The naming convention for me, in that times was ‘i’, ‘ii’, ‘iii’, ‘iiii’.
for (int i = 0; i <= 10; i++) { for (int ii = 0; ii <= i; ii++) { for (int iii = 0; iii <= 10; iii++) { for (int iiii = 0; iiii <= iii; iiii++) { …

Design Patterns Master Class, September 8-9, 2014, Cluj-Napoca

CodeCamp is back! iQuest in collaboration with CodeCamp community organizes a 2 day master class about Design Patterns. As we did last year, we bring Andrew Clymer and Richard Blewett to Cluj-Napoca. This year we will have a master class dedicated to all developers from Cluj-Napoca who want to improve their software design skills. For two days we will learn how to design our application from the best teachers.
When: September 8-9, 2014 Where: Hotel Golden Tulip, Cluj-Napoca Cost: 100% FREE (No HR and recruitment) Master Class Title: Design Patterns Available seats: 40 Registration link: www.codecamp-cluj-sept2014.eventbrite.com

Be ready to learn new stuff and discover a new world, a world of design patterns! Last year we organized another master class that was made by the same trainers. The last year topic was “Asynchronous Programing”. More information about last edition can be found here: http://vunvulearadu.blogspot.ro/2013/05/post-event-asynchronous-master-class.html Special thanks to…

Clean Code - Naming

Introduction If you are a ‘true’ developer than you heard about ‘Clean Code’ written by Robert C. Martin. In many companies this book become part of the developer bible. In combination with ‘Clean Coder’ I would say that this two books are mandatory for all developers.
I will start a series of article related to this topic. If you already read this book, than it is a good occasion to refresh your memories. For others, it is the perfect moment to discover how good code should look like. All the main ideas are from ‘Clean Code’. You can look at this series of articles as a summary of the book itself.
Why? I decided to start to write about this topic because there are things that needs to be remembered and reviewed from time to time. ‘Clean Code’ is the kind of book that you don’t read once and throw it in a dark corner of your room.
This is the kind of book that you read it again and again. Every time you will discover new things that you missed or things that are reveling to you in d…

How to define a REST service with pagination support

Part 1: http://vunvulearadu.blogspot.ro/2014/08/how-to-define-rest-service-with.html
Part 2: http://vunvulearadu.blogspot.ro/2014/08/how-to-define-rest-service-with_17.html

In this blog we will talk about REST API and pagination. Almost all services that are now created are exposed in REST format. This format give us the possibility to expose an endpoint that can be consumed by numerous devices and platforms from laptops to tables and phones.
There are different ways to expose a collection of items using pagination. In the next part I will present a mechanism to expose collection of items using pagination in REST.
Request A new page request in REST format is pretty simple when we talk about pagination. We need to crucial information for such a requests – page number and page size. Because we request content it is obviously that we will use the GET method.
When we send a request using GET, all request information should be in the URL. We can end up with following possibilities:
GET /api…