October 17, 2012 CodeAndBeer, DevMeeting No comments
October 17, 2012 CodeAndBeer, DevMeeting No comments
Last week I’ve failed in organizing internal “Code & Beer” event.
So what I did was just short invite stating that I will be there after working day and whoever wants can come and join. I bought some beer and snacks and mentioned about this as well. At least it should have been a good reason for some to join.
Idea behind this was to learn some new concepts from functional programming, which day-to-day language doesn’t support or encourage explicitly.
As I try to introduce myself to some of the programming languages (including functional), I thought it would be wonderful idea to do this in circle of people who share same attitude to programming.
I didn’t have high expectation to number of attendees. I thought that maybe 5 will join, but even less came. A good dozen of people who promised that they will attend had good excuses. 2 people is not enough for effective code & beer session. Not enough laugh and not enough diversity. But no one of us wasted our time, not sure about those who didn’t join though.
I tried small and it went even smaller, maybe if I try bigger it will be at least small? Who knows. But I’m afraid that there is not enough interested developers in my company so it should be something behind company’s walls.
August 5, 2012 DevMeeting, Presentation, Success 2 comments
A long time passed since I’ve delivered a technical presentation. Mainly because I now live in another country and establishing myself in a new company.
Well “establishing” is loudly said. I’m just software developer. Probably it worth to write separate post on my experiences in this company, since it is very much different from one I worked in Ukraine and I’m sure from most other companies there. I think I had much better perspectives as speaker before I moved (at least those short-term perspectives).
I talked about OData protocol, starting with introduction (read blog posts OData and OData service with WCF and data in memory) and finishing with its applicability to a project we do. Thanks to this presentation I crossed some imaginary mental barrier to more frequent presentations and sharing knowledge, something that I like, and something that I started to take solid steps back in Ukraine.
Now I’m starting it from the beginning.
Presentation I delivered was rather not official and only team wide. It was first I ever delivered in English, so I was limited in number of language tricks which I can use, and probably it impacted quality. Also I didn’t want to make it look like I’m smart-ass, thus I used pace and tone of a normal working meeting. Well, to be honest, I even didn’t know how to behave in this new environment. But from what I see guys liked my presentation, so this gives me a bright spark of enthusiasm to continue sharing interesting stuff.
There are few pitfalls with continuing, some of them pleasing. For example, developers here on average are more experienced and it would be more difficult to surprise them with something. It means that I would need to prepare more in depth topics, which of course requires more time to prepare. But, in the end, it is great that I work with more experienced programmers than me. On the other hand, I’m afraid that most of guys I know here are not willing to spend their spare time to form or join some community of software developers, and I can understand them.
Since I already mentioned about community, I have some ideas about organizing something cool here in Vienna/Austria, for foreigner developers, like me. Will blog about it soon.
November 25, 2010 DevMeeting, Presentation, PublicTalks, WCF 2 comments
Today I performed meeting on WCF. It was continuation of this thread of meetings.
Couple of interesting facts about this presentation:
1) I started preparing at 3AM and continued doing this till actual presentation at 1 PM. (Yeah I of course responded to some of e-mails at work and did some other stuff, but anyway most time spent on preparation)
2) Also I want to my English teacher to forgive my absence on today’s English Lesson. Additional 1,5 hour really helped me. Guys, could you please ensure her that presentation cost all the money?
3) I took to much stuff to talk during 1 hour. Initially I prepared following list:
So I crossed some items, but it turned about that we had time only for two first items in bold.
Regardless of that many people, I’m sure, liked it very much.
4) I did a lot of coding during presentation, I hope guys liked this. Right?
5) I was forgetting about zooming and colors on projector. My bad.
6) There was not enough sit places for guys, many of them simply stand near the wall. Sorry for that. I hope managers will resolve this issue soon. He-he.
7) I kept them all interested in further presentation, since Security was not mentioned at all :-P
8) Main Links from this presentation:
9) You can go and download my presentation (I removed transactions to have something to show next time) using this link.
10) So mainly I talked on Sessions and Instances.
11) But, then I also talked on items listed below:
12) Thank you!
Guys, I will appreciate your comments/suggestions/thoughts here!
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 6, 2010 Coaching, DevMeeting, Presentation, Success 2 comments
Few days ago I started survey about improvements to Developers Meetings inside of my team, but I also announced it to anyone who can be interested in this via twitter and blog.
Top areas of interest are:
More details:
Top voted topics are:
My thoughts on top topics:
Because I’m not expert in Enterprise Design Pattern, it would take time for me to have some presentation on it. Either I will ask one of my colleges, who already read “Patterns of Enterprise Application Architecture“.
I just scheduled Developers Meeting on WCF for my team, and I see this to be “getting started” meeting where I’m going to talk about main concepts and basic usages. I’m going to implement some funny example.
Regarding GoF Design Patters with live code, that should be very easy for me. I already have a whole bunch of different examples on my blog, so I can use them and talk on them. I expect to have junior stuff on those meetings. I would like to train my capabilities in coaching.
Estimation should be meeting where I would like to talk around Fowler’s estimation deadly sins.
Refactoring could be divided in many meetings, like core refactorings but with live code and also “refactoring to patterns”
TDD – no slides. I remember when we had presentation on TDD for devs and it was with slides. I think that is the worst way to explain TDD. Yeah, might be that it is good to show flow diagram, but I vote for code.
Details:
Improvements section:
What is the most interesting about improvements is that people would like to see more real code. Hm, this should mean that either people are tired because of my simple “hello world” examples, or either they are very interesting in how we can use those things withing complex project, and maybe they are right, because “hello world” examples could be found easily over internet.
Details on improvements:
Also as you can see we’ve got 3 comments on improvements. First one says to view presentations before meeting. I would agree with this, but maybe I will work on more detailed agendas, which will be sent exactly before meeting. Please let me know if this is ok.
I’m really looking forward to provide lot of interesting information to my co-workers and work along with them to build solid and very knowledgeable base for our growth.
Will appreciate if you would share your thoughts on this results and thank you very much for participating in survey!
August 4, 2010 Coaching, DevMeeting, Presentation No comments
As you might know, I’m keen on delivering technical meetings for my co-workers within one business unit in company.
It is very important to keep developers working on their knowledge and that is what my company is trying to do. It organizes special seminars on different topics for all of the offices, it also creates its own certification model to evaluate knowledge of employees, etc. , but before that all started my team had our own technical meetings called “developers meetings”. Those were providing by one smart guy, who has moved to another country, but since team felt sad about that we continued having developers meetings, so we proceeded with scheduling topics and assigning people to them.
Fun, but while it was like official, conference room was full of people and everyone was listening to junior talking on some design pattern. As I think everyone got disappointed by such meetings, but I do not say that this was bad idea to have junior talking on patterns. Turns out it has something good inside, because that person learns something for himself and trains to present. Sad but true, he is not able to deliver something properly to the big audience.
I know this, because I also was in role of such presenter, talking on Prototype without clear understanding of it and using sophisticated example from book of GoF – I simply did not understand it and I’m sure that none get something valuable for him/herself out of that talk.
My conclusion is that presentation should be delivered by person, who has really solid understanding of things he talks about. If it is small team and it contains juniors, he should start with ever simplest code. But since anyone should start with something, junior also should have presentation sometime. In this case I would recommend to make presentation for limited number of people, like other starting developers and few experts who are really interested in people growth.
Back to Developers Meetings we are having now, I really would love to see them thriving, but it requires investment of time from interested people. These months I’m trying to deliver presentations more often, and since we’ve got lot of new staff we can repeat old topics with new breath. How to know if developers want those meetings again?
To get some feedback I created survey, which I sent to my co-workers, but I would be really happy if you, my readers, will fill-in it also. (It shouldn’t take longer than 1 min.)
July 22, 2010 AutoMapper, DevMeeting, Presentation, Success 12 comments
Today I performed developer’s meeting on AutoMapper. I would say that it went good, but I did not really enjoy it and will explain why. But I do not regret doing this presentation and will explain why.
Why am I upset of today’s presentation delivery?
Not so many people got interested in theme, that I’ve decided to present. There were about 10 or less developers in conference room. I really expected to have bigger audience and had prepared to speak to other division of our software business unit. But I believe there are some reasons why I did not get many listeners.
Few important thoughts for presenters that encounter the same
Never be disappointed by the number of attendees.. at least at the beginning, so this will not decrease quiality of your speach.
If topic of you speech is not really popular it doesn’t mean that you should discount its value.
If topic is indeed simple don’t neglect your preparations. For some reason I even wasn’t a bit nervous before presentation, as I’m usually are and I don’t find this to be good.
Take a look around, you probably will see those who are interested in topic and those who are simply excited by your presentations. Special thank to today’s attendees, without you I would have to talk to walls.
For future pay more attention on actuality and popularity of the topic. I personally going to create monkeysurvey to get that information.
With smaller audience you get more feedbacks. Why? Easily, they feel more relaxed and you have more time to allocate to each of them. In today’s presenation I got so many interesting questions and figured them out for myself and for audience online, while writing code. That was amazing.
Try to understand those who did not participate. Probably they counted to be more reasonable to spend that hour on some urgent issues or they discounted topic, since they are sure that will not need AutoMapper. And if they even will need it, it is quite possible to learn it in amount of couple of hours.
Still be proud of yourself. This is must be, otherwise you will lose confidence which costs a lot.
Presentation
For my presentation I’ve used already existing posts on AutoMapper, also for the end of presentation I had real world usage examples.
And here is presentation itself:
Don’t forget to check out my article on AutoMapper here.
July 7, 2010 DevMeeting, Resharper 4 comments
Resharper
Resharper is code refactoring and productivity extension to Visual Studio. While you are typing it analyzes code and highlights errors, suggests quick-solutions and hints on code completion. It allows you generate lot of code, perform code clean-up and do different refactorings. Resharper saves your time.
My reasons why to use Resharper
Why not to use Resharper (*)
Developer’s meeting
Finally I’ve decided to provide developer’s meeting on Resharper. Long time ago (1.5 years) we had developers meeting provided for our team (about 50 people) on regular bases. We’ve lost that process because guy providing those has moved to Austria. Now we have those meetings quite rarely, mainly me trying to provide a lot of them. Help me, post some feedback here.
What you may need to be prepared for such kind of meeting?
It is obvious that we could not have PowerPoint pretension for this topic, so you will need write code illustrating Resharper. Second thing is that you should have some scenario to proceed with. You cannot simply go and create code on the flow, because it may happen that you will fall in wrong corner. So this post represents short plan for meeting and kick-off tutorial for my co-workers if they will like my talk.
Plan Of Attack
Introduction
I would need give some general definition to what Resharper is and show where from we can download it.
As it is recommended good approach is to know your auditory. Few questions? Ask who knows some hotkey, say Ctrl+Alt+G. This is very common hotkey, but not as much as Alt+Enter and answer for this question should allow you see how deeply they know Resharper and how quick you should be with core functionality in Resharper.
SetUp Resharper
Once you have installed Resharper, you may go and change keyboard layout under Resharper->Options->Visual Studio Integration
As I figured out almost each active user of Resharper uses IntelliJ IDEA keyboard layout and I would recommend it for you.
Besides, you may leave some of the VS native shortcuts – first time you are going to use F12 for example it will re-ask you if you want use Resharpers (navigate to error) or VS (go to definition) one. This way you may save most commonly used keys from VS. You can download keymap pdf file from here.
Also it is possible to save all of your configuration in xml file and share with others.
Damn It! Let’s write some code.
KeyboardJedi
For the meeting you will need demonstrate hot-keys you are pressing. For this I’m using KeyboardJedi by Roy Osherove.
On following screenshot we can see that I’ve pressed Shift+F6 and got renaming dialog box. Please note KeyboardJedi at the left.
I renamed file to be Calculator.
Introducing Alt+Enter
This hotkey is the most commonly used. It shows available quick-fixes and context actions. Showing how we can change visibility of class with this. So guys start with learning this hotkey!
Templates usages
Pushing Members Up and Down
We even could mark something as abstract when pushing down.
So this gives us change in 3 different files simultaneously.
public abstract class OperationBase : IOperation
public class OneOperandOperation : OperationBase
Learning Generating Code (Alt+Ins)
Generating constructor, properties, auto-properties, surrounding with some template (Ctrl+Alt+Ins)
Scenario: method needs to be thread-safe, so we surround it with locking (Ctrl+Alt+Ins), and we are refactoring with introducing object lock, then we refactor with introducing field (Ctrl+Shift+R).
Scenario: method has lot of code so we use extract method refactoring (Ctrl+Alt+M).
Navigation (Ctrl+Alt+G)
Navigation is one of the features of resharper that is very important in huge complex solutions. And that is one of my favorite ones. JetBrains did a lot of improvements in navigating through solution.
From any part of code you could easily navigate to whatever you want by pressing: Ctrl+Alt+G.
Navigate to type (Ctrl+N)
When showing this also good to illustrate on big solution, also mentioning about camel cases. So in picture below, you could see that I just typed “CDS” and I’m able to see few different classes that match what I need.
Scenario: Navigation to declaration, implementation and so on.
Navigation to class members (Ctrl+F12).
Unit Testing
Resharper supports unit testing frameworks, so it could easily work with NUnit as well as MSTests in one solution.
Scenario: Writing UT using live template for test method, debugging UT imitating TDD, creating shortcut for UT run.
Live template
When showing unit testing capabilities we may show how to create template for unit test, or some special kind of UT.
Few other scenarios
Links
Everything needed could be found from this page: http://www.jetbrains.com/resharper/
P.S. Items marked with (*) were added after I had posted this article.