August 23, 2010 Book Reviews, Success No comments
August 23, 2010 Book Reviews, Success No comments
I read this book on the fly. Couple of hours and done. Book is written in very specific way, that allows to read it quickly. It spreads very interesting ideas.
One of the main concepts is that you are General Director of your life and your name’s company and that is real place where you must do the best. You should have something like a new title of your current position in Company-You, like “Catalyzer of progress”.
Book just throws into you lot of gripping mottos that make you double think if you do the right things and if in right way.
Book’s author is “COOL” and he wants you to be “COOL” as well. You should make yourself a “dude with power” and then sell yourself with high price.
For some reason book is also concerned about building professional network. Intent is to be aware of the best people around you, so this could help you move forward. Few weeks ago I started looking around for cool people to have lunch with them. During lunch I’m trying to familiarize with that person and understand what does he thinks about the job. Mainly I talk with Software Developers. To some extent this helps me be known and get interesting information from them. Probably it worth to consider meeting with people of other professions.
Regarding what it talks about your job, ideas are great and are very applicable to my current position and current team work. I would love if we use following motto: “Work with what you have, and make it awesome‘. There is no room for complains, there is only room for getting it done.
Be the best!
August 21, 2010 CodePuzzle, CodeReview 1 comment
Today, I’ve been reviewing some piece of source code, and found way too interesting exception handling approach.
In following code snippet we are trying to wrap existing exception with new one having more descriptive message and saving the stack trace of the original exeption. The way how it is done is just amazing:
I’m not trying to blame someone. But sometimes people see so much more complicated and sophisticated solutions to problems that could be solved with one-two lines, that it makes me think, what we also do such things but on another – higher level.
Developer who wrote this code is trainee, so doesn’t mean low quality of our code, simple he needs more experience. My point is that we are also trainee, but on another level, and we might not see simple solutions as well.
So who will write me one-or-few lines of code that can do the same? Please do not hesitate :)
August 19, 2010 DevMeeting, Presentation, Success, WCF 1 comment
Hello, today I performed presentation on Windows Communication Foundation and it went extremely well. People were interested in topic and it smelled in the air.
Why am I happy with this meeting?
People were listening very-very attentively! It is the best gift to the speaker. Many thanks to today’s attendees! You made this presentation awesome!
What was the agenda?
For today I planned to have “Getting Started” session, where I decided to talk in general what is WCF and then proceed to basic concepts of it, like ABC.
In DEMO 1 (Damn it! Let’s write some code!) I created ever simplest WCF library and simple Contract that exposed todo list functionality. Then I brifly showed configuration and we started wcftestclient.
In DEMO 2 (Damn it! Let’s configure it!) I talked a lot about endpoints and how we can configure them. After I created a lot of them it was highlighted that changing the way how our service works by configuring and not changing the code is the key feature of WCF. WCF is indeed unified framework that allows us has one logic, but different exposing to the real world.
In DEMO 3 (Damn it! Let’s use & host it!) I created very simple console application that was able to send todo item to the service. It went with some exceptions thrown into console, but people liked it and besides after that I created SuperTodoServiceClient and it worked well. Also we voted were do we want to host our service for the long time. Most decided to host it under IIS. Till the actual hosting all went well, but then suddenly it didn’t work under IIS. Reason was very simple – since my machine has brand new OS, IIS was not configured properly.
What’s next?
Also I’m planning to have another meeting on the WCF. This time it will be “Advanced”. In that session I would like to show some real-world examples. Also I’m going to prepare to the 70-503 exam (on WCF), so I might get some interesting topics from the training kit to show on the meeting.
Presentation
More and more I start disliking ppt files. But anyway to have some visual appearance of presentation I created ppt file (maybe finished with it at 5:30 am so don’t kill me if it is “poor”). Btw, having ppt has some plus – I can put my blog’s logo and URL :)
Guys, looking forward to hear from you! Will appreciate any of your comments.
August 15, 2010 Book Reviews, Success No comments
So far I read another book on business and management. Now it is called “It’s Not Luck”, and is written by the author of “The Goal”.
Honestly, I liked this book, less than “The Goal”, because now I knew what to expect. I knew that all of the problems will be solved and that the hero will be promoted to the general director of Uni-Co.
The main and huge difference is that in this book author represent to us new way of thinking to resolve issues.
I will try to summarize it here from my perspective and my understanding.
So, first of all you have some conflict. You write it down with good formulation – that is the main thing you need to resolve. After, you should build some tree of dependent reasons-effects. To do that you need to write them all down and dive into intensive thinking to find out all of the dependencies. Book, states that in most cases reason of the main problem is just one of the reasons, you listed. If you commit lot of effort in building your dependencies tree, your reason will be obvious, so after that, you can proceed with building your plan to resolve that. Plan is path from root reason to the main problem, you should solve.
Book is very gripping and is written in way that gives us touches of both personal and business examples. I liked it, and maybe will try to use some of the technics to solve problems in my life.
August 14, 2010 Career, Success 6 comments
As I promised, here is post on Knowledge Evaluation for the Senior level.
Definition of a Senior Level Developer
In most of the sources, Senior level is defined as level on which person is responsible for building complex components with minimal guidance and being unsupervised. Also person is an expert in language and has experience in business areas. I personally like definitions, where they additionally indicate person’s interest in software and bringing business value to the client.
So, who is Senior Developer?
For me being Senior Developer isn’t just label, that is indicated somewhere in the company by HR. It isn’t only list of responsibilities/duties I will be stick to. It is significant breakthrough in my career, that blesses me to move on. Moreover it is another step to self-actualize myself by accomplishing my life goals. Again, it is part of my RoadMap (I feel, that I need some post on it, but cannot till map is rolled in one or few places.)
Knowledge Evaluation
Except of taking into account my performance, company should always evaluate my knowledge to proceed with promotion.
My theoretical knowledge of programing and language isn’t under question
For me it was good time and my personal outcome for myself is that complete understanding of engineering management and requirements will come only with facing more real world situations, since simple theoretical knowledge isn’t enough.
Feedback
They did not give me official feedback yet, but I feel confident about positive one.
How will I proceed with new position?
First of all I will do all possible to not disappoint my management. Also I will work hard on keeping my brand up to people expectations and higher. Of course I will continue doing more than it is expected from me.
Any congratulations and comments are welcome!
For the Thursday I had nothing planned for learning, since I spent my night watching Perseids out of the city.
Knowledge Evaluations is very close, so I just reviewed all of the items I should know for it.
To lot leave this post empty, I decided to write at least about something. I feel, that I still have some weak areas like Networking. But it turns our that for .NET Desktop Profile, I need only basic knowledge of it, like understanding networking itself, application layer protocols, IP, TCP, UDP, SMTP, and so on and so forth. So for my luck I have basic ideas how all of that works and glues the world together.
Networking
We often use these abbreviations, but do we always know what they mean?
local area network (LAN)
wide area network (WAN)
metropolitan area network (MAN)
personal area network (PAN)
virtual private network (VPN)
campus area network (CAN)
storage area network (SAN)
Simple Mail Transfer Protocol (SMTP)
Multipurpose Internet Mail Extensions (MIME)
User Datagram Protocol (UDP)
… what more??
In the evening there will be post about how KE went and what are outcomes.
P.S. I feel myself very nervously at the moment…
August 12, 2010 Career, CI, Opinion No comments
For today it was planned to learn SQL and Continues Integration. In this blog post I’m going to express few thoughts on Continuous Integration. Only thoughts, because you can read comprehensive articles on it over the internet, like this one written by Martin Fowler.
My definition of CI:
I took picture somewhere from web, since I like how it illustrates CI |
Few main suggestions on introducing CI:
And some thoughts about blind architectors
When, I came to the project and I faced lot of difficulties that project had, like having sources under different repositories, having not automated procedure of builds, also when someone failed build, everyone knew about that next day and all QA work was stopped; lot of complains about merging sources; dry applying sources to diff versions procedures. None knew what is going with project till next day! I was junior at that moment I did not know about CI, but, hey where our architects have been? Thanks to efforts of new fresh architects we’ve got CI and it applies to our project very smoothly. What is left is to convince devs do committs more often and cover everything with Unit Tests. (But that has also something to do with our project specifics.)
Why didn’t they consider introducing CI earlier? This is mysterious question, I do not understand. There should be definitely something significant (like CI) that we can improve!
August 11, 2010 .NET, C#, HowTo No comments
As you may know recently I got junior to mentor him. In order to understand his capabilities and knowledge I asked him to do couple of things, like explain me one Design Pattern he knows, explain SCRUM and write the simplest .NET Remoting. So that was yesterday and today I verified that he failed with .NET Remoting, but it doesn’t mean that he is bad. He just need learn googling art more. I asked that for next day, and gave him stored procedure to write. Hope he will be smart enough to finish it till I come tomorrow from my English classes.
.NET Remoting
To ensure that I’m not asshole that asks people to do what I cannot do, I decided to write it by my own and see how long will it take for me. It took me 23 minutes. Hm… too much, but I should complain at VS about “Add Reference” dialog.
So here we have three projects in Visual Studio: one for Server, one for Client and of course Proxy class shared between client and server.
Shared proxy class ChatSender in ChatProxy assembly:
Server (ChatServer):
Client (ChatClient assembly):
My results
August 10, 2010 Career, UML 5 comments
Today is my third day preparing to the Knowledge Evaluation. For today I had DB Design and Modeling. Modeling is about UML diagrams as it is mentioned in sheet I’m using for preparing. In this post I explained each of the diagrams with one simple sentence. Also I drew few of them, have no enough power at this point of time at night to continue and draw all of them. Hope you will like my drawing tries :)
UML: Structure Diagrams
Class Diagram – show classes and their interaction in details.
Component Diagram – represent components of the system, their relationships and contracts they use to interact.
Composite Structures Diagram – show collaboration of instances in run-time and communication links used.
Package Diagram – organizes other model elements into groups for easy understanding of the system.
Deployment Diagram – represent static state of the working system, including hardware and software located on it.
Object Diagram – shows snapshot of the instances of the system to represent how system can look at run-time.
UML: Behavior Diagrams
Activitiy Diagram – represent workflow of the activities in the system, basing on decisions made.
Use Case Diagram – show usage patterns of the system, so they can ideally describe requirements.
State Diagram – shows all of the possible states of the object in the system and conditions when it can change its state.
UML: Interaction Diagrams
Sequence Diagram – show the lifetime of the components/classes and their interaction in time.
Communication Diagram – shows flow of the messages in the system and illustrates basic relationships between classes.
August 9, 2010 Career No comments
Today is the second day when I spend some evident time on preparing to my knowledge evaluation. For today I had Engineering Management, Requirements and OOD.
Engineering Management is something that I read few articles on wikipedia and OOD is something that is not possible to learn per one night. So regarding Requirements I noted only few things.
Requirements
Requirements is very important part of the process of building software. The better and cleaner requirements you get – the better understanding of the system and its design you create; the better you communicate requirements to development team – the better product will be built. And what is the most important as per me – you can evaluate requirements before you started developing something and find out if it is feasible.
So how can requirements look like?
Evaluating the Requirements for the Application