tag:blogger.com,1999:blog-33390626254421251252024-02-20T05:47:56.023+00:00Andrea Angella BlogInfinite Passion for Software DevelopmentAnonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.comBlogger117125tag:blogger.com,1999:blog-3339062625442125125.post-63495829965268512492016-01-07T22:55:00.000+00:002017-06-08T22:10:24.145+01:00Join me on my new blogHi everyone,<br />
<br />
It's great that you found me!<br />
<br />
This is my old blog. Please, have a look at my new blog.<br />
<a href="http://www.andreaangella.com/">www.andreaangella.com</a><br />
<br />
Also feel free to connect with me on my social network.<br />
<br />
See you all soon,<br />
<br />
Thanks,<br />
Andrea<br />
<br />
<div style="font-family: arial, sans-serif; font-size: small;">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 15px; margin: 0px;">
<b><span lang="en-GB" style="font-family: Calibri, sans-serif; font-size: 11pt;">Blog</span><span lang="en-GB" style="font-family: Calibri, sans-serif; font-size: 11pt;">: </span><span lang="en-GB" style="font-family: Calibri, sans-serif; font-size: 11pt;"><a href="http://www.andreaangella.com/" target="_blank">www.ndreaangella.com</a></span></b></div>
<div style="margin: 0px;">
<span style="font-family: Calibri,sans-serif;"><span lang="en-GB"><div style="margin: 0px;">
<b><span style="font-size: 14.6667px;">Videos: </span><span style="font-size: 14.6667px;"><a href="http://www.youtube.com/user/angellaandrea" target="_blank">www.youtube.com/user/angellaandrea</a></span></b></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt;">
<b><span style="font-size: 11pt;">Twitter: </span><span lang="en-GB" style="font-size: 11pt;"><a href="https://twitter.com/angella_andrea" style="font-size: 11pt;" target="_blank">@angella_andrea</a></span></b></div>
<div>
<br /></div>
</span></span></div>
</div>
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-3140817707414411842015-07-17T21:37:00.000+01:002015-07-17T21:37:35.577+01:00Software Architecture - Triangle of Knowledge<div dir="ltr">
<div>
I am currently watching the course <a href="http://shop.oreilly.com/product/110000195.do">Software Architecture Fundamentals Part 1</a> by Neal Ford, Mark Richards.</div>
<div>
<br /></div>
<div>
I do really love the triangle they used to represent the status of your knowledge.</div>
<div>
<br /></div>
<div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSiSfakEU7FIXGkl7ZK6JyFg1UiPS19ZQLs2TD8P9shRIHLz-JCA2GDVJd_kW8OkvcbAc6psUTrVKYOhxF6dbtF5ft-APacEkkN8SWI3zWheT3LeVOd7HKtpz3sI4LzvvIfjIghsuebo8/s1600/image-736132.png"><img alt="" border="0" height="344" id="BLOGGER_PHOTO_ID_6172577689979801266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSiSfakEU7FIXGkl7ZK6JyFg1UiPS19ZQLs2TD8P9shRIHLz-JCA2GDVJd_kW8OkvcbAc6psUTrVKYOhxF6dbtF5ft-APacEkkN8SWI3zWheT3LeVOd7HKtpz3sI4LzvvIfjIghsuebo8/s640/image-736132.png" width="640" /></a></div>
<div>
<br /></div>
<div>
<div>
<div>
The <b>technical depth</b> is the height of "stuff you know" while...</div>
<div>
The <b>technical breath</b> is the height of the "stuff you know you don't know".</div>
</div>
<div>
<br /></div>
<div>
The key skill to become an effective software architect but I would say in general a knowledgeable T person is to move stuff from "stuff you don't know you don't know" to "stuff you know you don't know". In this way, <b>you increase your awareness</b>.</div>
<div>
<br /></div>
<div>
This is why constant learning, reading books, watching courses is so important. </div>
<div>
<br /></div>
<div>
We all need to be long life learners!</div>
<div>
<br /></div>
</div>
<div>
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-70592757528325332762015-07-09T23:02:00.000+01:002015-07-09T23:02:26.312+01:00Book: Resonate Present Visual Stories that Transform Audiences<div dir="ltr">
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: Helvetica Neue, Arial, sans-serif;"><span style="font-size: 16px; line-height: 20px; white-space: pre-wrap;">Here are my learnings after reading the book <a href="http://www.amazon.co.uk/gp/product/B00F0U74IQ/ref=as_li_tl?ie=UTF8&camp=1634&creative=19450&creativeASIN=B00F0U74IQ&linkCode=as2&tag=andrangeoffib-21&linkId=56TD2P24LTTH3ZTP">Resonate Present Visual Stories that Transform Audiences</a>.</span></span></div>
</div>
<div>
<div style="text-align: left;">
<br /></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: Helvetica Neue, Arial, sans-serif;"><span style="font-size: 16px; line-height: 20px; white-space: pre-wrap;">The first important lesson is that <b>being yourself during a presentation is critical</b>. Removing all the human touch from a presentation is wrong and ineffective. People attend your presentation because they want to know your perspective on the subject, so you should give it to them. Sharing emotions is important because your goal is to "<b>make your audience feel what you feel</b>".</span></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: Helvetica Neue, Arial, sans-serif;"><span style="font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: Helvetica Neue, Arial, sans-serif;"><span style="line-height: 20px; white-space: pre-wrap;"><b><span style="font-size: x-large;">Your presentation should be a story, not a report.</span></b><span style="font-size: large;"> </span></span></span></div>
<div style="text-align: left;">
<span style="color: #333333; font-family: Helvetica Neue, Arial, sans-serif;"><span style="font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></span></div>
<div style="text-align: left;">
<span style="color: #333333; font-family: Helvetica Neue, Arial, sans-serif;"><span style="font-size: 16px; line-height: 20px; white-space: pre-wrap;">Reports inform, while stories entertain. </span></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: Helvetica Neue, Arial, sans-serif;"><span style="font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: Helvetica Neue, Arial, sans-serif;"><span style="font-size: 16px; line-height: 20px; white-space: pre-wrap;">The key is to see the audience as the Hero of your story. You create a desire in the audience and then you show how your ideas fill that desire so that people adopt your perspective. <b>You start with an incident that captures the audience's intrigue and interest</b> and then you start a journey from their ordinary world into your special world, gaining new insights and skills from your special world. </span></span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">The audience makes a conscious decision to cross the threshold into your world; they are not forced. The audience will resist adopting your point of view and will point out obstacles and roadblocks. The audience needs to change on the inside before they'll change on the outside. In other words, they need to alter their perception internally before they change the way they act.</span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">I found quite interesting that <b>great presentations usually have some kind of </b></span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><b>conflict or imbalance perceived by the audience that your presentation resolves</b>. You should c</span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">learly contrast who the audience is when they walk into the room (in their ordinary world) with whom they could be when they leave the room (crossing the threshold into a special world).</span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: Helvetica Neue, Arial, Helvetica, sans-serif; font-size: x-large; line-height: 20px; white-space: pre-wrap;">Presentations should have a clear beginning, middle, and end. Two clear turning points</span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><b>The first is the call to adventure</b>—this should show the audience a gap between what is and what could be—jolting the audience from complacency. When effectively constructed—an imbalance is created—the audience will want your presentation to resolve this imbalance.</span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><b>The second turning point is the call to action</b>, which identifies what the audience needs to do or how they need to change. This second turning point signifies that you're coming to the presentation's conclusion. </span></div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">I</span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">t's important to follow up the call to action with a vivid picture of the potential reward. </span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><b>The ending should repeat the most important points and deliver inspirational remarks </b>encompassing what the world will look like when your idea is adopted.</span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">Presentations are meant to persuade, so there is also a subsequent action (or crossing the threshold) the audience is to do once they leave the presentation. </span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">Your job as a communicator is to create and resolve tension through contrast. </span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">Though people are generally more comfortable with what's familiar to them, conveying the opposite creates internal tension. Oppositional content is stimulating; familiar content is comforting. Together, these two types of content produce forward movement.</span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: x-large; line-height: 20px; white-space: pre-wrap;">You want to make each person feel like you're having a personal exchange with them. </span></div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">For this reason, i</span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">t helps to split an audience into segments—but humans are more complex than that. In order to connect personally, you have to bond with what makes people human.</span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">No matter what the tool is, the audience should leave each presentation knowing something they didn't know before and with the ability to apply that knowledge to help them succeed.</span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">The key skills is to remove the inessential. </span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">Striking a balance between withholding and communicating information is what separates the great presenters from the rest. The quality depends just as much on what you choose to remove as what you choose to include.</span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="font-size: x-large;"><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; line-height: 20px; white-space: pre-wrap;">Finally B</span><span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; line-height: 20px; white-space: pre-wrap;">e honest.</span></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;">Be honest with the audience and give them the authentic you. You're not perfect; they understand that. If you are honest with yourself and with them, your presentations will have more moments of vulnerability and sincerity.</span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
<div>
<div style="text-align: left;">
<span style="color: #333333; font-family: 'Helvetica Neue',Arial,sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><br /></span></div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-14368040663442124112015-07-05T17:37:00.001+01:002015-07-05T17:37:28.027+01:00How often do you deliberately read code?<div dir="ltr">
I am currently reading the book <a href="http://www.amazon.co.uk/Things-Every-Programmer-Should-Know/dp/0596809484/ref=sr_1_1?ie=UTF8&qid=1436112068&sr=8-1&keywords=97+things+every+programmer+should+know">97 Things Every Programmer Should Know</a> and I come across again to the <b>most obvious but less followed advice ever</b>.<br />
<blockquote class="tr_bq">
<i><span style="color: red; font-size: x-large;">You should read more code!</span></i></blockquote>
<div>
I like reading technical books and this is not the first time I see this advice.</div>
<div>
<br /></div>
<div>
<b><span style="font-size: x-large;">Are you deliberately reading other people code?</span></b></div>
<div>
<br /></div>
<div>
I personally read snippets of code in books, in online videos and of course I read and review code written by my colleagues at work.</div>
<div>
<br /></div>
<div>
<a href="http://images.clipartpanda.com/children-reading-clip-art-boy-reading-hi.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="http://images.clipartpanda.com/children-reading-clip-art-boy-reading-hi.png" width="191" /></a><b><span style="font-size: large;">Is it enough?</span></b></div>
<div>
<br /></div>
<div>
I don't think so.<br />
<br />
Code in books or online courses are just snippets so they can helps you to learn a specific technology or best practise but they do not help in teaching you how to read an entire code base or quickly jump into a new project.</div>
<div>
<br /></div>
<div>
<div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;">
</div>
Code at work is surely a source of learning but often you just read the code related to the task at hand instead of learning the overall project.<br />
<blockquote class="tr_bq">
<span style="color: red;"><span style="font-size: x-large;"><i>Programmers are writers.</i></span> </span></blockquote>
<blockquote class="tr_bq">
<span style="color: red;"><span style="font-size: x-large;"><i></i><i>Great writers read books.</i></span> </span></blockquote>
<blockquote class="tr_bq">
<span style="color: red; font-size: x-large;"><i></i><i>Great programmers read code.</i></span></blockquote>
</div>
<div>
To make things harder, there are no books on the market teaching you how to read code, how to learn a code base from scratch and be productive quickly. This is a question I asked often and I rarely found an answer. </div>
<div>
<br /></div>
<div>
<b><span style="font-size: large;">Why some people are so good in jumping in on a new project?</span></b></div>
<div>
<br /></div>
<div>
They surely know the language and the technologies but more importantly they are used to read code, they can read and understand code quickly!</div>
<div>
<br /></div>
<div>
This is something you need to learn by doing.<br />
<br />
There is no alternative. </div>
<div>
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-9999130324236247672015-03-21T14:44:00.000+00:002015-03-21T14:44:27.957+00:00Inclusive LeadershipI have just completed the <a href="https://courses.edx.org/courses/CatalystX/ILX1/2015_T1/info">Inclusive Leadership course</a> on Edx and in this post I'd like to share the keys things you can learn from it.<br />
<br />
It all start with an interesting TED talk about creating a movement.<br />
<blockquote class="tr_bq">
<i>The biggest lesson...is that leadership is over-glorified. That, yes, it was the shirtless guy who was first, and he'll get all the credit, but it was really the first follower that transformed the lone nut into a leader....If you really care about starting a movement, have the courage to follow, and show others how to follow.</i></blockquote>
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" scrolling="no" src="https://embed-ssl.ted.com/talks/derek_sivers_how_to_start_a_movement.html" webkitallowfullscreen="" width="640"></iframe><br />
<br />
Leadership is not a person!<br />
<br />
Leadership is about influencing others to achieve a common goal. Anyone can lead! It requires simple action. Followers are also leaders!<br />
<br />
<b><span style="font-size: large;">Who is an inclusive leader?</span></b><br />
<br />
A person who empower the direct reports and team members, hold them accountable, is courageous and show humility. These characteristics are embedded in the acronym EACH.<br />
<b><br /></b>
<b>Empowerment</b>: allows people to do things their way! Support people to develop themselves and give them the space to do so.<br />
<br />
<b>Accountability</b>: holds people responsible for their own actions. Trust them to do the job. It's all about results, it does not matter the time they put in it.<br />
<br />
<b>Courage</b>: helps people put group interests above personal ones. Inspiring trust letting people know who you are. Be yourself.<br />
<br />
<b>Humility</b>: encouraging people to learn from one another and demonstrate vulnerability and trust. Be comfortable sharing your limitation, weaknesses with people around you. Learn from criticism.<br />
<br />
Remember, being an inclusive leader is not about “using” everyone’s opinion and building consensus. It is about having your team, direct reports, and those you lead feel safe and comfortable sharing their ideas and opinions to enrich the discussion and arrive at a better solution or outcome.<br />
<blockquote class="tr_bq">
<i>Inclusion happens when YOU value both the differences and the commonalities of others.</i></blockquote>
<blockquote class="tr_bq">
<i>"What’s critical to be an effective leader is you have to be willing to relinquish power. It is not just humility in creating space for others to contribute, says Bock, it’s “intellectual humility". Without humility, you are unable to learn.", Laszlo Bock</i></blockquote>
<div>
It's important that you spend time to reflect about the kind of leader you want to become and find who are the leaders that inspires you and their attributes or behaviors</div>
<div>
<br /></div>
<div>
My top two leaders that I admire are Bill Gates and the Dalai Lama.</div>
<div>
<br /></div>
<div>
<b>Bill Gates</b></div>
<div>
<ul>
<li>Ability to vision the future and define a clear plan towards it</li>
<li>Ability to influence and motivate people and create movements</li>
<li>Ability to create things immensely bigger then himself to improve humanity</li>
<li>Ability to inspire people to take action</li>
<li>Confidence and passion</li>
<li>Technical competence and ability to create the most successful software company</li>
<li>Tenacity and determination in pursuing goals. He never gives up until he wins.</li>
<li>Not afraid of spending money to improve humanity and fight inequality and poverty</li>
<li>Ability to communicate complex things in a simple and understandable way</li>
<li>Ability to learn from failures and use them as a motivator to improve things</li>
<li>Ability to empower people/employees to achieve their potential</li>
</ul>
</div>
<div>
<b>Dalai Lama</b></div>
<div>
<ul>
<li>Compassion for other human beings</li>
<li>Ability to listen other points of views</li>
<li>Ability to keep inner peace regardless of negative situations or emotions</li>
<li>Patience</li>
<li>Humility and respect of others</li>
</ul>
</div>
<div>
An another important thing to be aware of your own unconscious bias and stereotypes</div>
<blockquote class="tr_bq">
<i>Inclusive leaders are aware of otherness and the impact it can have on individuals. Inclusive leaders not only can empathize with feelings of otherness but are also willing to explore those feelings in themselves and let that experience inform them as leaders and influencers.</i></blockquote>
<div>
It's increasingly evident that business leaders who are capable of experiencing and demonstrating empathy, compassion, and humility have greater success. <a href="https://hbr.org/2014/05/the-best-leaders-are-humble-leaders/">The best leaders are humble leaders</a>.</div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;">What makes a great leader in the 21st century?</span></div>
<div>
<br /></div>
<div>
It's defined and evidenced by three questions:</div>
<div>
<ul>
<li><b>Where are you looking to anticipate change?</b>The answer is in your calendar! Choose wisely what to focus on.<br /></li>
<li><b>What is the diversity measure of your personal and professional network?</b>Ability to make connections with people who are very different (biological, physical, functional, ...) and despite that they trust you and cooperate with you to achieve a shared goal.<br /></li>
<li><b>Are you courageous enough to abandon the past?</b>Great leaders does not talk about risk taking, they actually do it.</li>
</ul>
</div>
<iframe allowfullscreen="" frameborder="0" height="360" mozallowfullscreen="" scrolling="no" src="https://embed-ssl.ted.com/talks/roselinde_torres_what_it_takes_to_be_a_great_leader.html" webkitallowfullscreen="" width="640"></iframe>Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-31400997976563049322015-03-11T08:57:00.000+00:002015-03-11T08:57:55.496+00:00The Cambridge .NET User Group is born<a href="http://www.meetup.com/Cambridge-NET-User-Group/">The Cambridge .NET User Group</a>, a new .NET technical community is born in Cambridge, UK.<br />
<br />
On 10th February, 2015 we held the inaugural event <a href="http://www.meetup.com/Cambridge-NET-User-Group/events/219863795/">Envisioning the Cambridge .NET User Group</a> and this post want to be a summary for the people who were not able to attend so that everyone is on the same page.<br />
<br />
I started the event with my long experience with communities in Italy and in UK, sharing what I think were successes and failures with the aim of clearly define what for me is a real community. The most important lesson I learnt is that it's not about the number of members, or the number of events, or the number of expert speakers you can bring in but it's all about members engagement.<br />
<br />
<b><span style="font-size: x-large;">What is a community?</span></b><br />
<blockquote class="tr_bq">
<i>A community is a set of people with the same passion and interests willing to share knowledge and experience every day both online and face-to-face with the goal of develop themselves through collaborative learning.</i></blockquote>
I like to see a community as a knowledge sharing platform.<br />
<br />
<b><span style="font-size: x-large;">What is the Cambridge .NET User Group?</span></b><br />
<blockquote class="tr_bq">
<i>The Knowledge Sharing Platform for .NET developers in Cambridge</i></blockquote>
Base on my experience with communities in Italy I learnt that it is extremely important to set in stone the principles of a community otherwise future members can easily ruin the initial spirit of the community.<br />
<div>
<br /></div>
For this reason, I defined our community manifesto taking inspiration from the <a href="http://www.agilemanifesto.org/">Agile manifesto</a>.<br />
<br />
<span style="font-size: x-large;"><b>The Cambridge .NET Community Manifesto</b></span><br />
<br />
<ul>
<li><b>Members Engagement</b> over number of members</li>
<li><b>Members Contribution</b> over external experts contribution</li>
<li><b>Constant Knowledge Sharing</b> over sporadic events</li>
<li><b>Collaborative learning</b> over self-promotion</li>
<li>.<b>NET technologies</b> over other technologies</li>
<li><b>Free Events</b> over paid event</li>
<li><b>Respect and humility</b> over technical competence</li>
</ul>
<br />
<div>
As I said before, members engagement is by far the most important thing. I don't care about the numbers of members, what I want to see is high engagement among members. That's where the value of the community comes in. </div>
<div>
<br /></div>
<div>
Because members are the key part of a community, the content should come from them and not only from external contributions made by experts in the field. We will surely bring some experts in the future but that's not the goal of the community and events made by members will be always prioritized.</div>
<div>
<br /></div>
<div>
An another key element for engagement is that conversations should not only happens during physical events. Events happens sporadically, every months of two, so it would not be possible to create real engagement only from them. <b>The only way to have real engagement is to have a social network where members can discuss every day online, learn together and share ideas.</b> This is powerful and mandatory for the community to be a real community.</div>
<div>
<br /></div>
<div>
The community brings a lot of value for speakers that can self-promote themselves and improve their brand. This is certainly a positive thing but should not be the main reason why people share. If you only present at events without actively participating in online discussions or collaborating with members you are not a real member of the community. Collaborative learning is the goal. You learn by sharing, people learn from you and everyone grows.</div>
<div>
<br /></div>
<div>
We are indeed a .NET community so .NET related talks are prioritized. Other technologies can be presented in the context of .NET developers.</div>
<div>
</div>
<div>
For the community to really fly, events must be free and will be always free! Presenting to our events will be always a volunteering activity made by speakers who love teaching and being part of a community.</div>
<div>
<br /></div>
<div>
Least but not last, respect and humility are the foundation for every interaction between members. We love people who are passionate, enthusiast, willing to learn and we don't judge them based on their technical competence. Everyone is welcome and nobody should feel worried about it. </div>
<div>
<br /></div>
<div>
From these principles, the ideal member emerge.</div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;"><b>Who is the ideal member?</b></span></div>
<div>
<div>
<ul>
<li><span style="font-size: large;">Passion for learning and self-development</span></li>
<li><span style="font-size: large;">Passion for .NET and Microsoft technologies</span></li>
<li><span style="font-size: large;">Actively contribute in sharing knowledge and experience</span></li>
<li><span style="font-size: large;">Open minded and curious about other technologies</span></li>
<li><span style="font-size: large;">Believe in the power of “learning by teaching”</span></li>
<li><span style="font-size: large;">Love to discuss and share opinions</span></li>
<li><span style="font-size: large;">Respect others regardless of their skills</span></li>
<li><span style="font-size: large;">Promote the community on social network</span></li>
</ul>
</div>
</div>
<div>
<br />
It's clear that a community is a win-win situations for all the members.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJc6HQg8tL5RigqWPM3NTdiZst3YSDaiqfKLf7m_sA9A86N02O3GTH9sPP4dEvIIOAO2zXPI8xNdWmsFLsvZS1jKyWtc4vdlvsVETt4LVLmcwtUHWx5-krwAToD2lqxWA5P4i6Ui7R6p4/s1600/win+win.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJc6HQg8tL5RigqWPM3NTdiZst3YSDaiqfKLf7m_sA9A86N02O3GTH9sPP4dEvIIOAO2zXPI8xNdWmsFLsvZS1jKyWtc4vdlvsVETt4LVLmcwtUHWx5-krwAToD2lqxWA5P4i6Ui7R6p4/s1600/win+win.png" height="340" width="640" /></a></div>
<div>
<br /></div>
<div>
Now, the difficult part.... how to get content from members?</div>
<div>
<br /></div>
<div>
In my experience, it is really difficult to get people sharing and presenting.</div>
<div>
<br /></div>
<div>
The reason is that everyone of us (included myself) suffer from a disease.</div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;"><b>The Impostor Syndrome</b></span></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_YIRaFnteCogo7eslxS4yS1rPKci6lRVLYn5MzX9rjyhpYDNrSvg1sceIuDst_fRfBVeCI1sn-ckz1Lv3wPfbTVMgpSXQLG5iIGmEiggbnnneT7RhAQe6cG7WQ_EpZ8FO2knx8mjrk9s/s1600/impostor.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_YIRaFnteCogo7eslxS4yS1rPKci6lRVLYn5MzX9rjyhpYDNrSvg1sceIuDst_fRfBVeCI1sn-ckz1Lv3wPfbTVMgpSXQLG5iIGmEiggbnnneT7RhAQe6cG7WQ_EpZ8FO2knx8mjrk9s/s1600/impostor.png" height="243" width="640" /></a></div>
<div>
<br /></div>
<div>
We believe other people knows way more than us and we are not feeling "good enough" to share and present at events. Reality is different! We should focus our mind to the picture on the right, our knowledge intersect with the knowledge of others and we have something to share with the world, our unique experiences and opinions. To stimulate yourself in sharing more, you should see this exercise from an egoistic point of view that is for growing yourself. At the end of the day, this is the reason why communities work.</div>
<div>
<blockquote class="tr_bq">
<i>Always dream and shoot higher than you know you can do. Do not bother just to be better than your contemporaries or predecessors. Try to be better than yourself. </i> </blockquote>
<blockquote class="tr_bq">
<i><b>William Faulkner</b></i></blockquote>
</div>
<div>
<div>
<span style="font-size: x-large;"><b>The Knowledge Sharing Process</b></span></div>
<div>
<br /></div>
<div>
If you overcome the impostor syndrome, the knowledge sharing process is quite simple.</div>
</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSinsosGEXYumBvQgdidmQYIPUFKUmerHjQ865XPv2V4h-G_4GPe01_QyEmAfP1j5zgr0cj22iG0OC6jrjDYHexbgKLw7z288pGkMyXYOUsfuWIo0DOdBiwonsOVs-6S2kcwVwFtMeG7w/s1600/sharing.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSinsosGEXYumBvQgdidmQYIPUFKUmerHjQ865XPv2V4h-G_4GPe01_QyEmAfP1j5zgr0cj22iG0OC6jrjDYHexbgKLw7z288pGkMyXYOUsfuWIo0DOdBiwonsOVs-6S2kcwVwFtMeG7w/s1600/sharing.png" height="260" width="640" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;"><b>Do you want to be part of the community?</b></span></div>
<div>
<br /></div>
<div>
Start joining us on <a href="http://www.meetup.com/Cambridge-NET-User-Group/">The Cambridge .NET User Group on Meetup</a>.</div>
<div>
<br /></div>
<div>
Participate to the online discussion on the <a href="http://www.meetup.com/Cambridge-NET-User-Group/messages/boards/">Public Message Board</a> (we collaboratively decided to use this board as our online social platform for now to see how it goes)</div>
<div>
<br /></div>
<div>
Follow us on Twitter <a href="https://twitter.com/dotnetcambridge">@DotNetCambridge</a>. (yeah DotNetCambridge is the short name of the community).</div>
<div>
<br /></div>
<div>
Volunteer to share your knowledge and be a speaker to one of our future events.</div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;"><b>Thanks to Red Gate</b></span></div>
<div>
<br /></div>
<div>
<a href="http://www.red-gate.com/">Red Gate Software</a> is our first and main sponsor. We are lucky enough to have a good equipped room to use for our events and food and drinks offered so that we can focus on delivering great content and be an awesome community. This helps is really appreciated and I'd like to thanks Red Gate for his amazing involvement in making this community a success.</div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;"><b>Future activities</b></span></div>
<div>
<br /></div>
<div>
<a href="http://www.meetup.com/Cambridge-NET-User-Group/events/220425153/">Register for our first technical event scheduled for April 13, 2015</a>.</div>
<div>
<br /></div>
<div>
We decided to have regular <b>Community Dinners</b> where members get together for dinner to socialize and learn in a more informal way. The first community dinner is yet to be announced but likely to be in May.</div>
<div>
<br /></div>
<div>
We aim to become an official <a href="https://www.technicalcommunity.com/default.aspx">Microsoft Technical Community</a> and get Microsoft as a sponsor. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ4Sk1KltIOuNjhXCV_mZk3b8SNcoUt4fFed2Bgdmqo26C-PvXhAuToBKRHLrsAk1YgHJwlccMMhC26oiquwq5_HexwxgE6ayLg-h6E3xPS1ocaz4ILasVXFZSrs1me7Hiy6X0A7CSfpg/s1600/microsoft+technical+community.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ4Sk1KltIOuNjhXCV_mZk3b8SNcoUt4fFed2Bgdmqo26C-PvXhAuToBKRHLrsAk1YgHJwlccMMhC26oiquwq5_HexwxgE6ayLg-h6E3xPS1ocaz4ILasVXFZSrs1me7Hiy6X0A7CSfpg/s1600/microsoft+technical+community.png" height="302" width="640" /></a></div>
<div>
<br /></div>
<div>
I am incredibly excited about the potential of this community and I am looking forward to see what's <a href="http://www.meetup.com/Cambridge-NET-User-Group/members/">our members</a> are going to share. Happy learning!</div>
<div>
<br /></div>
<div>
<b><span style="font-size: x-large;">What our members say?</span></b></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIjOijNTyJBlqHfpeIJLVlcG9BMzYxSs-qv2ZGoZfFN7sZF63zjk41J2f9ScvlSRBJ1koTXc2GNeskZjA3Ti0sRVXNUMSjr-1rx-sQeZcoCLm1eP-rHMy9nMOKiTBbRAtPq9ev07VSjJg/s1600/member2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIjOijNTyJBlqHfpeIJLVlcG9BMzYxSs-qv2ZGoZfFN7sZF63zjk41J2f9ScvlSRBJ1koTXc2GNeskZjA3Ti0sRVXNUMSjr-1rx-sQeZcoCLm1eP-rHMy9nMOKiTBbRAtPq9ev07VSjJg/s1600/member2.png" height="130" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigTv4GkNG-6bUtng41gDqKlYRyiphVD-n67NRwIknCm8VjxsvJXd0tlc69a2WBY0LByj6bN2ogOXJLx3FHvaNdizYr0N_MaXxOhwG2rhYFi79eIpYQWGVuZvSiC11QyY7YS-PnTjgxsNo/s1600/member.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigTv4GkNG-6bUtng41gDqKlYRyiphVD-n67NRwIknCm8VjxsvJXd0tlc69a2WBY0LByj6bN2ogOXJLx3FHvaNdizYr0N_MaXxOhwG2rhYFi79eIpYQWGVuZvSiC11QyY7YS-PnTjgxsNo/s1600/member.png" height="90" width="640" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-25706254359517523492015-03-10T23:22:00.000+00:002015-03-10T23:22:22.673+00:00Goodbye DotNetToscana<div style="text-align: justify;">
I am a bit sad but it's time for me to step down as a staff member of <a href="http://www.dotnettoscana.org/eventi.aspx">DotNetToscana</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I co-founded DotNetToscana 7 years ago and since then the community grows a lot (even if honestly not exactly in the direction I wanted).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The main reason of my decision, is because <a href="http://www.andreaangella.com/2015/03/the-cambridge-net-user-group-is-born.html">I founded a new .NET community in Cambridge</a> and I want to focus all my energies in making it a success. Secondly, I am now living in UK full-time and I don't have time to make an impact in Italian communities and actively participate in face-to-face events. Because of this, I am not contributing and getting value out of DotNetToscana anymore.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I'd like to thanks all the members of DotNetToscana that over the years helped me to grow a lot as a professional especially Matteo Baglini, Luigi Berrettini and Nicola Baldi. It has been a fantastic experience and I learnt a lot!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
My wishes for DotNetToscana is to see more engagement of members on social networks and see interesting discussions. This will allow me as a member to participate to the discussions. I really hope to see this happening as this is for me the essence of a community.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I wish DotNetToscana the best for the future.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Andrea</div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-72870037003948404992014-12-19T08:00:00.000+00:002014-12-19T08:00:00.947+00:00Il tuo obiettivo per il nuovo anno? Entrare in Red Gate Software!Guarda il video per scoprire cosa significa essere uno sviluppatore software in una delle migliori aziende software inglesi. Sono un italiano che 5 anni fa ha deciso di fare il grande passo e andare a lavorare in UK. Posso dire che e' stata una delle decisioni migliori della mia vita!<br /><br />
<b><span style="font-size: x-large;">Vuoi lavorare con noi?</span></b><br />
<span style="font-size: large;">Per un accesso privilegiato, scrivi una mail all'indirizzo <b>andrea.angella (at) red-gate.com</b></span><br /><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/UTdEdPT25tk?feature=player_embedded' frameborder='0'></iframe></div>
<br />Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-37935910389621969392014-12-12T20:50:00.000+00:002014-12-12T20:50:27.224+00:00The pleasure of Down Tools Week<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
I have just arrived home.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<strong>It's Friday and an another <a data-mce-href="http://www.engageforsuccess.org/ideas-tools/case-study-employee-innovation-at-red-gate/#.VItJ8jGsXuM" href="http://www.engageforsuccess.org/ideas-tools/case-study-employee-innovation-at-red-gate/#.VItJ8jGsXuM" title="Down Tools Week">Down Tools Week</a> is ended.</strong></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br />
I am writing this post to capture my feeling in this exact moment before my emotions disappear and I start to enter in the "Week End Mode".</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
I feel very tired. It was hard work but I am incredibly proud of what we achieved.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
For the entire week, <strong>I didn't have meetings</strong>, <strong>I didn't check emails but I only focused on writing the minimum code that works</strong> in order to present something for the "Show & Tell" that usually happens on Friday afternoon.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /></div>
<h2 style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;">
<span style="font-size: large;">
The feeling during Down Tools Week is awesome.</span></h2>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /><img alt="Down Tools Week: feeling awesome" class="alignright" data-mce-src="https://origin.ih.constantcontact.com/fs075/1102455566531/img/331.jpg" data-mce-style="margin: 10px;" height="348" src="https://origin.ih.constantcontact.com/fs075/1102455566531/img/331.jpg" style="float: right; margin: 10px;" width="261" /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<span style="font-size: 12.8000001907349px;">You are completely absorbed on the tasks at hand, in the most pragmatic way you collaborate and assign tasks between the newly formed team. You can feel a constant release of adrenaline. Even after work, you can't stop thinking about what you want and should do the following day.</span></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
The most intriguing thing is that even if I worked very hard and I ate very quickly just to be able to start coding and squeeze every minute, the time passed incredibly quickly. You don't feel the time at all, actually you fight against it.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<strong style="background-color: white; font-size: 12.8000001907349px;">This is what I define as "Fun", what I define as "Feeling a programmer" and what I define as "Feeling alive"</strong><span style="background-color: white; font-size: 12.8000001907349px;">.</span></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<span style="background-color: white; font-size: 12.8000001907349px;"><br /></span></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
Surely my passion for programming amplifies these emotions.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
Psychologists call this feeling "<a data-mce-href="http://en.wikipedia.org/wiki/Flow_%28psychology%29" href="http://en.wikipedia.org/wiki/Flow_%28psychology%29" title="The Flow"><strong>The Flow</strong></a>".</div>
<blockquote class="tr_bq" style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<strong style="background-color: white; font-size: 12.8000001907349px;">The Flow</strong><span style="background-color: white; font-size: 12.8000001907349px;">A mental state of operation in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement and enjoyment in the process of the activity.</span></blockquote>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
I never worked with James and Peter before. Actually I never met them before in the company. In a week, I have learnt to work with them in a very effective way. I don't know if they feel the same way but I have to say that I am very impressed by what a team can do in a so short amount of time. It is fascinating to see what a bunch of people can do when time is given to them to do what they want.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
The initiative is called <strong>Down Tools Week</strong> an <strong>integral and fundamental element of the culture of Red Gate where creativity is unleashed, people are empowered to learn together and create great things</strong>.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
When I was young, I used to feel like this quite often. I coded games for my friends losing track of the time while I was doing it. This week remembered me those good days.</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
I'd like to thanks <a data-mce-href="http://www.red-gate.com/" href="http://www.red-gate.com/" title="Red Gate">Red Gate</a> to offer me the ability to feel in this way. I'd like to thanks James and Peter for helping me in developing further the idea of "Code Complexity as a service" (technical details will follow in a new post).</div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 12.8000001907349px; line-height: 19px;">
<br /></div>
<div style="color: #333333; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px;">
<b><span style="font-size: large;">Above all, this week was seriously fun!</span></b><br />
<b><span style="font-size: large;"><br /></span></b></div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-2593856227749895762014-10-27T08:00:00.000+00:002014-10-27T08:00:07.970+00:00Webcast: Vuoi essere uno sviluppatore software in Red Gate (UK)?<div style="background-color: white; color: #666666; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13.6000003814697px; line-height: 20px;">
<h3 style="font-family: arial, sans-serif; font-size: 18px; line-height: normal; margin: 0px;">
<a href="http://www.red-gate.com/assets/images/common/logo.png?v=5" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="Red Gate Ingeniously Simple" border="0" height="99" src="http://www.red-gate.com/assets/images/common/logo.png?v=5" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13.6000003814697px; line-height: 20px;" width="200" /></a><strong data-content="description" data-description-type="html">Giovedi' 13 Novembre 2014</strong></h3>
<div style="font-size: 13.6000003814697px;">
<strong><br />Sede: </strong>evento online<br /><strong>Ora: </strong>17:30 - 18:30<br /><strong>Speaker</strong>: <a href="http://andrea-angella.blogspot.co.uk/" style="color: #666666;" target="_blank" title="Andrea Angella">Andrea Angella</a></div>
<span style="font-size: 13.6000003814697px;"><strong style="font-size: 13.6000003814697px;">Q/A</strong><span style="font-size: 13.6000003814697px;">: </span><a href="http://www.red-gate.com/our-company/careers/people-profiles/peopleops-administrator" style="color: #666666; font-size: 13.6000003814697px;" target="_blank" title="Jodie Pinkowski">Jodie Pinkowski</a><span style="font-size: 13.6000003814697px;"> </span></span><br />
<span style="font-size: 13.6000003814697px;"><br /></span>
<span style="font-size: 13.6000003814697px;">Red Gate Software produce "ingeniously simple tools" per professionisti e sviluppatori Microsoft in tutto il mondo. L'azienda e' principalmente specializzata in MS SQL Server, Cloud, .NET e Oracle con l'obiettivo di diventare </span><a href="http://sdtimes.com/red-gate-software-announces-new-focus-database-lifecycle-management" style="color: #666666; font-size: 13.6000003814697px;">leader nel Database Lifecycle Management (DLM)</a><span style="font-size: 13.6000003814697px;">, la componente database dell' Application Lifecycle Management (ALM). Sviluppatori e DBA saranno in grado di trattare database come ogni altra parte dell'applicazione adottando processi di sviluppo moderni, come continuous integration e continuous delivery, per rilasciare spesso e in modo sicuro.</span></div>
<div style="background-color: white; color: #666666; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13.6000003814697px; line-height: 20px;">
<span style="font-size: 13.6000003814697px;"><br /></span></div>
<div style="background-color: white; color: #666666; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13.6000003814697px; line-height: 20px;">
<img alt="Red Gate" border="0" height="424" src="https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-xfa1/t31.0-8/1888777_10154735741425707_3958552464702622535_o.jpg" title="Red Gate" width="640" /><br /><br />Per raggiungere questo obiettivo ambizioso, Red Gate e' anche alla ricerca di sviluppatori software italiani.</div>
<ul style="background-color: white; color: #666666; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13.6000003814697px;">
<li><strong>Ti sei mai chiesto come possa essere l'esperienza di uno sviluppatore software in UK?</strong></li>
<li><strong>Sei alla ricerca di un ambiente di lavoro piu' stimolante e gratificante che possa veramente farti crescere professionalmente?</strong></li>
<li><strong>Sei alla ricerca di un migliore bilanciamento tra lavoro e vita privata?</strong></li>
<li><strong>Stai considerando la possibilita' di fare una esperienza all'estero?</strong></li>
</ul>
<div style="background-color: white; color: #666666; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13.6000003814697px; line-height: 20px;">
Andrea Angella e' un italiano che lavora in UK da 5 anni e presentera' tutti i vantaggi di lavorare in Red Gate dando risposta a molte delle domande che un italiano si pone prima di compiere il grande passo. Durante l'intero webcast, la responsabile delle risorse umane, Jodie Pinkowski, sara' a disposizione per rispondere direttamente alle vostre domande (<span style="font-size: 12px; text-decoration: underline;">Only In English</span>).</div>
<div style="background-color: white; color: #666666; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13.6000003814697px; line-height: 20px;">
<br /></div>
<div style="background-color: white; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13.6000003814697px; line-height: 20px;">
<b><a href="http://www.dotnettoscana.org/vuoi-essere-uno-sviluppatore-software-in-red-gate-uk.aspx"><span style="color: red;">Iscriviti all'evento</span></a></b></div>
<div style="background-color: white; color: #666666; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13.6000003814697px; line-height: 20px;">
<br /></div>
<div style="background-color: white;">
<span style="color: #666666; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: x-small;"><span style="line-height: 20px;"><br /></span></span></div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-15351181205724156532014-07-25T09:00:00.000+01:002014-07-25T09:00:00.902+01:00Database Unit Testing and Learning TSQL<b>Did you know that you can write database unit tests for SQL Server?</b><br />
<br />
There is a framework called <a href="http://tsqlt.org/">tSQLt </a>that helps you to do it.<br />
<br />
There is also a tool from <a href="http://www.red-gate.com/">Red Gate Software</a> called <a href="http://www.red-gate.com/products/sql-development/sql-test/">SQL Test</a> that provide a nice UI on top of it, integrated in SQL Server Management Studio.<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLafe9fNlUIVm7MyfT3gm7f7N5O6qDGuYRZgdGE3vsWpp679bPMax4F1ZloCDHQe3bSwfynORG5Rnqk4pkN1gpULavqXNXuM8rf4bMLlPXP37n9JoPYyO10RdyRf90UbkK7cOO2aO08w0/s1600/run-tests-and-get-results.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLafe9fNlUIVm7MyfT3gm7f7N5O6qDGuYRZgdGE3vsWpp679bPMax4F1ZloCDHQe3bSwfynORG5Rnqk4pkN1gpULavqXNXuM8rf4bMLlPXP37n9JoPYyO10RdyRf90UbkK7cOO2aO08w0/s1600/run-tests-and-get-results.png" /></a></div>
<br />
<b>What about using tests for learning TSQL?</b><br />
<br />
I think that it is not unreasonable to design a TSQL course where each lesson is made of a set of tests that you need to make pass. This idea of learning by making tests pass is used in the <a href="http://www.nand2tetris.org/">nand2tetris </a>course that I am doing with the friends of the <a href="http://www.meetup.com/Cambridge-Programmers-Study-Group/members/23860242/">Cambridge Programmer's Study Group</a>.<br />
<br />
In this post, I try to create an example using tSQLt.<br />
<br />
The database I use is from the <a href="https://www.microsoftpressstore.com/store/training-kit-exam-70-461-querying-microsoft-sql-server-9780735666054">Training Kit: Querying Microsoft SQL Server 2012</a>.<br /><br />
<span style="font-family: inherit; font-size: x-large;">Installing tSQLt</span><br />
<br />First run the following SQL statements.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAZmYU4LkWxiyKcXmhJJUBe1uCvmqspkeldAu0uEFFN1scrgsh9CGwmCmGFrmr_G-D5zZsk6KUF33Og9IriF4nSkHl3eGwcT6slHQa2tp0S8Ji_PGzYOGA029xtmukJhBdbm0toKOOGyg/s1600/2014-07-24+21_51_12-SQLQuery1.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(63))_+-+Microsoft+.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAZmYU4LkWxiyKcXmhJJUBe1uCvmqspkeldAu0uEFFN1scrgsh9CGwmCmGFrmr_G-D5zZsk6KUF33Og9IriF4nSkHl3eGwcT6slHQa2tp0S8Ji_PGzYOGA029xtmukJhBdbm0toKOOGyg/s1600/2014-07-24+21_51_12-SQLQuery1.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(63))_+-+Microsoft+.png" height="85" width="400" /></a></div>
<br />Execute the <a href="http://tsqlt.org/user-guide/quick-start/#InstallToDevDb">tSQLt.class.sql script</a> provided by tSQLt.<br /><br />
<span style="font-size: x-large;">Creating the test</span><br />
<br />First, you need to create a test class that we call Tests.<br /><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfn2yVfqxSRDB7CXGq2MjqIDgvsl5tB3_52Cqiramp2TVn_cjoMeshxs7thLCv2gvvFgaWbS6hhC4KklDEF-hkZ8Res2CepU18gfPWU8FbKdpDJleyVNR1K4Ko5QMVx61OUveC0bPZ6jM/s1600/2014-07-24+21_55_17-SQLQuery1.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(63))_+-+Microsoft+.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfn2yVfqxSRDB7CXGq2MjqIDgvsl5tB3_52Cqiramp2TVn_cjoMeshxs7thLCv2gvvFgaWbS6hhC4KklDEF-hkZ8Res2CepU18gfPWU8FbKdpDJleyVNR1K4Ko5QMVx61OUveC0bPZ6jM/s1600/2014-07-24+21_55_17-SQLQuery1.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(63))_+-+Microsoft+.png" height="27" width="200" /></a></div>
<br />
Then, we create a test.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIAHeGgLbmZoJLPhFE18qdczwYYcm7qhMMS-dNtt2VFu4_141diiwfaZRNbpZSes45hNvTF56Xrv2K5HjGJIbGAr7Jd9-V86ua7i4cW6lThotlEIayqO0wPmAypNFyG0mZBPGZWH1lAgk/s1600/2014-07-24+22_00_13-SQLQuery9.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(69))_+-+Microsoft+.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIAHeGgLbmZoJLPhFE18qdczwYYcm7qhMMS-dNtt2VFu4_141diiwfaZRNbpZSes45hNvTF56Xrv2K5HjGJIbGAr7Jd9-V86ua7i4cW6lThotlEIayqO0wPmAypNFyG0mZBPGZWH1lAgk/s1600/2014-07-24+22_00_13-SQLQuery9.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(69))_+-+Microsoft+.png" height="360" width="400" /></a></div>
The framework tSQLt allows you to create <a href="http://tsqlt.org/user-guide/isolating-dependencies/faketable/">fake tables</a> but in this case the test use the actual table HR.Employees and the actual data contained in it.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqAqD_Q9etyafIQKEHtbNjx_6BJT7X1PPrt90x4p7aVGgi1zT9UJaIczLR410w302xXy-_SPrh8Qr3rr8kGr-0noQypTLPiIXKuHsvQdWWbPq1xfAwcyVXZMN2s2M4WOoaxxz44IU-guw/s1600/2014-07-24+22_02_38-SQLQuery10.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(59))_+-+Microsoft.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqAqD_Q9etyafIQKEHtbNjx_6BJT7X1PPrt90x4p7aVGgi1zT9UJaIczLR410w302xXy-_SPrh8Qr3rr8kGr-0noQypTLPiIXKuHsvQdWWbPq1xfAwcyVXZMN2s2M4WOoaxxz44IU-guw/s1600/2014-07-24+22_02_38-SQLQuery10.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(59))_+-+Microsoft.png" height="112" width="640" /></a></div>
<br />
<span style="font-size: x-large;">Running the test</span><br />
<div>
<br />You can run the test individually using the <a href="http://tsqlt.run/">tSQLt.Run</a> or alternatively you can run all the tests in the database using <a href="http://tsqlt.runall/">tSQLt.RunAll</a>. </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT57fPLK5_PmyWXohdUXsjJOrHfkg5eTbZL5rCnBFD790cumHRQTW2Q3MfpT-ay6NVCvOFrBFLFnMmJhb6qxIMrBcEEzzacaFYERLo8VGLEcrHp81kjXarOuL1jz_AHtUUGJq7dLZ02oQ/s1600/2014-07-24+22_04_15-SQLQuery1.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(63))_+-+Microsoft+.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT57fPLK5_PmyWXohdUXsjJOrHfkg5eTbZL5rCnBFD790cumHRQTW2Q3MfpT-ay6NVCvOFrBFLFnMmJhb6qxIMrBcEEzzacaFYERLo8VGLEcrHp81kjXarOuL1jz_AHtUUGJq7dLZ02oQ/s1600/2014-07-24+22_04_15-SQLQuery1.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(63))_+-+Microsoft+.png" height="38" width="200" /></a></div>
<div>
You can also create a <a href="http://tsqlt.org/user-guide/tsqlt-keyboard-shortcuts/">keyboard shortcut</a> to run all the tests easily.</div>
<div>
<br /></div>
<div>
You can see that the test fail!</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTt9Af7IiSe49Dm06Exjkv79K7OTRauKiNVOBCfhxpQgg5RAegdhngh9AZiprJyJJRmCSrWuaPGyaiVzMgrm7tL-hZ3NgwfwPzd7ni3z2d_d4_u_w7G9YW2MR6cRw0ON3r6KXDA3yhHl8/s1600/2014-07-24+22_06_50-SQLQuery9.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(69))_+-+Microsoft+.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTt9Af7IiSe49Dm06Exjkv79K7OTRauKiNVOBCfhxpQgg5RAegdhngh9AZiprJyJJRmCSrWuaPGyaiVzMgrm7tL-hZ3NgwfwPzd7ni3z2d_d4_u_w7G9YW2MR6cRw0ON3r6KXDA3yhHl8/s1600/2014-07-24+22_06_50-SQLQuery9.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(69))_+-+Microsoft+.png" height="376" width="640" /></a></div>
<div>
<br /></div>
<span style="font-size: x-large;">Make the test pass and learn</span><br />
<div>
<br />You can make the test pass simply adding the DISTINCT keyword in the select statement. </div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXJWMn3jDkudDkiSUgb519Q4YPQju04KNuTiPB68QQ8GosyhNwvMenxP9z0JpM-H7sYlNp_LJiOqFfxh51uCt8zzxj7laCYqojZCrlf02xPb2YQYjVT7szJuRrYV6CsT1KpIM6i2m6adU/s1600/2014-07-24+22_10_08-SQLQuery9.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(69))_+-+Microsoft+.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXJWMn3jDkudDkiSUgb519Q4YPQju04KNuTiPB68QQ8GosyhNwvMenxP9z0JpM-H7sYlNp_LJiOqFfxh51uCt8zzxj7laCYqojZCrlf02xPb2YQYjVT7szJuRrYV6CsT1KpIM6i2m6adU/s1600/2014-07-24+22_10_08-SQLQuery9.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(69))_+-+Microsoft+.png" height="353" width="400" /></a></div>
<div>
Run the tests and they all pass.</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_2c1akRBbgyJN5CGlZIywYyQgtyMMiMun7Ucj04KzlsJNhrwfq6GdIaJLUDRZ53Eg1WuhbWQleP4K8_dkZ2PTZEzgZUB7msnEoF379Vz0pIEV6XK-evesAe9arqlU6unUSC45L9Sf9wM/s1600/2014-07-24+22_14_16-SQLQuery9.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(69))_+-+Microsoft+.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_2c1akRBbgyJN5CGlZIywYyQgtyMMiMun7Ucj04KzlsJNhrwfq6GdIaJLUDRZ53Eg1WuhbWQleP4K8_dkZ2PTZEzgZUB7msnEoF379Vz0pIEV6XK-evesAe9arqlU6unUSC45L9Sf9wM/s1600/2014-07-24+22_14_16-SQLQuery9.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(69))_+-+Microsoft+.png" height="218" width="640" /></a></div>
<div>
<br /></div>
<div>
I really like the idea of learning by making tests pass.</div>
<div>
<br /></div>
<div>
<b>What do you think?</b></div>
<div>
<br /></div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com1tag:blogger.com,1999:blog-3339062625442125125.post-77267434584961244942014-07-07T21:14:00.001+01:002014-07-07T21:14:36.852+01:00Enneagram Personality TestI like psychological tests to learn more about myself.<br />
<br />
Few months ago, I tried the <a href="http://www.andreaangella.com/2013/11/what-is-your-personality-type-indicator.html">Personality Type Indicator</a> test.<br />
<br />
Today, I did the <a href="http://www.eclecticenergies.com/enneagram/test.php">Enneagram Personality Test</a> that shows how you are balanced between nine personality types (called wings) and to see which one are the dominants.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicEV4tUGydTLCFzA-8ctpTPhgnRXXEcIxcSKm8BndGn9nVVSPBBbNbQLnyTrVB1Hqr2cEtShLKLpYQIiFqkjdefO2L5OhCyC7amIBzbiCMLVSQ8tuB5hTrS4jJXwWr2Dop-82B1eAIEQE/s1600/2014-07-07+20_54_34-Introduction+to+the+Enneagram.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicEV4tUGydTLCFzA-8ctpTPhgnRXXEcIxcSKm8BndGn9nVVSPBBbNbQLnyTrVB1Hqr2cEtShLKLpYQIiFqkjdefO2L5OhCyC7amIBzbiCMLVSQ8tuB5hTrS4jJXwWr2Dop-82B1eAIEQE/s1600/2014-07-07+20_54_34-Introduction+to+the+Enneagram.png" height="180" width="320" /></a></div>
<br />
It looks like I am pretty balanced with a preference of the Type 3 (<a href="http://www.eclecticenergies.com/enneagram/type3.php">The Achiever</a>), Type 9 (<a href="http://www.eclecticenergies.com/enneagram/type9.php">The Peacemaker</a>) and Type 1 (<a href="http://www.eclecticenergies.com/enneagram/type1.php">The Reformer</a>).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoqTfu10MlPKRh2rYC8xci9dKNx_VnCAZr6NhcBHApu51vmq54_nxq_fS7nz-hlkt3JKy3s3NgFcFvm4dazXyVo7PpZfRORHB-2F6kAGNgM1FPQeQHap5_tvPuMM47bzGu66mIqtWHvlE/s1600/2014-07-07+20_49_52-Enneagram+Test+Results.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoqTfu10MlPKRh2rYC8xci9dKNx_VnCAZr6NhcBHApu51vmq54_nxq_fS7nz-hlkt3JKy3s3NgFcFvm4dazXyVo7PpZfRORHB-2F6kAGNgM1FPQeQHap5_tvPuMM47bzGu66mIqtWHvlE/s1600/2014-07-07+20_49_52-Enneagram+Test+Results.png" height="200" width="142" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGc0xg3CHkz86_pTp0tgYOX-gmWGebO8_EdfHKXX0s0bbBXTzsvtXqWQOE5ML63A86GoosjgrMeg6orGwOkStEOBVEvVrrgJpiK_zXTUzWZWqrFQ5ls49MzucFIAo5JKO-pIcRied_oLI/s1600/2014-07-07+20_53_08-Enneagram+Test+Results.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGc0xg3CHkz86_pTp0tgYOX-gmWGebO8_EdfHKXX0s0bbBXTzsvtXqWQOE5ML63A86GoosjgrMeg6orGwOkStEOBVEvVrrgJpiK_zXTUzWZWqrFQ5ls49MzucFIAo5JKO-pIcRied_oLI/s1600/2014-07-07+20_53_08-Enneagram+Test+Results.png" height="320" width="136" /></a></div>
<br />
<b>What is your result?</b><br />
<br />Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-45517857199244855372014-06-05T08:00:00.000+01:002014-06-05T08:00:01.997+01:00Secrets of Success from the Story of Bill Gates - Part 2<div>
<span style="font-size: x-large;">Persistence</span></div>
<div>
<br /></div>
<div>
Never give up there is always a way out. Do what you are supposed to do; it will lead to bigger opportunities along the way.</div>
<div>
<br /></div>
<div>
If you can make up your mind that you will not settle for less, you will not settle for less. You will keep right on going and you will achieve your goals and dreams. If you convince yourself nothing is impossible, nothing will be impossible for you.</div>
<div>
<br /></div>
<div>
Don't concentrate on how hard it is but focus on the reward and satisfaction you get by achieving your goals.</div>
<div>
<br /></div>
<div>
Always focus on the final outcome from the start, never lose that ability to focus. As the road gets harder, you get harder; as the road gets tougher, you get tougher; as the journey becomes difficult and seems like it’s impossible, just continue to focus and keep going and watch what will happen. The only true failure is when you give up and you stop moving on.</div>
<div>
<br /></div>
<div>
Reward your progress when you reach a milestone.</div>
<div>
<br /></div>
<div>
Bring your best to every situation; you may never know when your breakthrough opportunity presents it to you. Persistence always pays off. Don't take rejections to heart or personally, it’s only a normal process of taking out what is not good for you. Persistence takes action.</div>
<div>
<br /></div>
<div>
The most successful people in life are always persistent. Persistent people are often accused of being cold and heartless, but a careful re-evaluation shows this is not the case at all, they are simply singled minded in their pursuit of their own personal destiny.</div>
<div>
<a name='more'></a></div>
<div>
A burning desire to succeed will propel you to do whatever it takes to get it; you will become focused and persistent. The end result of this success is inevitable.</div>
<div>
<br /></div>
<div>
Just because we don’t see immediate results doesn’t necessarily mean there is no growth happening.</div>
<div>
<br /></div>
<div>
You can only become persistent enough to succeed when your desire to reach your goal exceeds the pain you have to go through trying to achieve it. The pain of living without your dream should simply exceed the pain of paying the price to accomplish your goal.</div>
<div>
<br /></div>
<div>
Persistent people seem to have an instinctive understanding that defeat is only temporary and will eventually turn into victory with enough tenacity.</div>
<div>
<br /></div>
<div>
Most people have settled for a life of mediocrity because they have surrendered to temporary defeat and setbacks. A few have reached their full potential by refusing to accept defeat and in the end they overcame all negative circumstances in their path to success.</div>
<div>
<br /></div>
<div>
Napoleon Hill wrote down what he believes are the four main steps vital for success in every walk of life:</div>
<div>
<ol>
<li>A definite purpose accompanied by a burning desire for its fulfilment</li>
<li>A definite plan explicit in continuous action.</li>
<li>A mind closed tightly against all negative and discouraging influences, including negative suggestions from relatives, friends, and acquaintances.</li>
<li>A friendly alliance with one or more persons who will encourage you to follow through with both plan and purpose.</li>
</ol>
</div>
<div>
Don’t take rejection personally and don’t buy into false illusion that rejection means you are incompetent.</div>
<div>
<br /></div>
<div>
Some people can tolerate rejection if the source of rejections is their close friends, they are persistent enough to stand firm despite the rejections, but when they are told they are wrong by one or two experts their dreams would be instantly shattered. Sylvester Stallone was not rejected by 50 traffic wardens but he was rejected by fifty film producers who are the bright minds in the film industry nonetheless he went on to prove all of them wrong.</div>
<div>
<br /></div>
<div>
Persistence helps an individual to break the negatives around him to achieve his dreams and goals. Nothing can stop you, in fact you are unstoppable. You will achieve your dreams or goals you will accomplish your purpose, you will reach your destiny.</div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;">Creativity</span></div>
<div>
<br /></div>
<div>
<div>
If you have ideas, but don’t act on them, you are imaginative but not creative. So creativity requires action, commitment and passion to bring something new into being. </div>
<blockquote class="tr_bq">
<i>Creativity is just connecting things. When you ask creative people how they did something, they feel a little guilty because they didn’t really do it, they just saw something. It seemed obvious to them after a while. That’s because they were able to connect experiences they’ve had and synthesise new things. To change your life and achieve your goals you have to be creative.</i></blockquote>
<div>
For creativity and innovation to flourish, corporations and organisations must create a conducive environment that nurtures creativity; putting together multi-talented people who work together – exchanging ideas and knowledge, and shaping the direction of the organisation for the future</div>
</div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;">Empower People</span></div>
<div>
<br /></div>
<div>
The formula is, meet the needs of your employees and they will go out of their way to meet the needs of your customers or clients and your business will be more profitable.</div>
<blockquote class="tr_bq">
<i>The vision is really about empowering workers, giving them all the information about what’s going on so they can do a lot more than they’ve done in the past.</i> Bill Gates</blockquote>
<blockquote class="tr_bq">
<i>Employees who believe that management is concerned about them as a whole person – not just an employee – are more productive, more satisfied, more fulfilled. Satisfied employees mean satisfied customers, which leads to profitability. Employees are a company’s greatest asset – they’re your competitive advantage. You want to attract and retain the best; provide them with encouragement, stimulus, and make them feel that they are an integral part of the company’s mission.</i> Anne M. Mulcahy</blockquote>
<div>
Bill Gates had a grip on this principle and he paid his employees well and invested in their future. Most of the people he worked with have become wealthy through working for Gates. Gates is an effective communicator. He kept his employees motivated and encouraged to do their work with a positive outlook.</div>
<div>
<br /></div>
<div>
Gates believed in sharing his vision with his team at Microsoft so that they were all on the same page. This finally paid off when Windows 95TM was launched, it was not only an operating software it came ready loaded with Internet ExplorerTM, which became one of the world’s most popular internet browser.</div>
<div>
<br /></div>
<div>
Give back more than what you’ve taken from the community, your life then will then be a true success.</div>
<div>
<br /></div>
<div>
Surround yourself with people who believe in you.When you surround yourself with the right people they will help you to grow. Surrounding yourself with the right people, does not necessarily mean talking to them in person, it could be through their books, speeches, materials and resources.<br />
<br />
Filter the negative out of your life, it’s toxic. Positive people will also make you feel positive; there is always positive energy around them.<br />
<br /></div>
<div>
<span style="font-size: x-large;">Learn from failures</span></div>
<div>
<br /></div>
<div>
The people that have failed the most are usually the most successful people.</div>
<div>
<br /></div>
<div>
Successful people have learned the wisdom of failure so they will not judge or laugh at you when you fail because they have been there already and they know the lessons you can learn from failure.</div>
<div>
<br /></div>
<div>
It is better to aim at perfection and miss it than to aim at imperfection and hit it. Do not allow the fear of failure to get in your way of achieving the impossible.</div>
<div>
<br /></div>
<div>
You have to know that failure is only feedback and should be used as a learning curve to help you improve and work on yourself and your ideas.</div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;">Change The World</span></div>
<div>
<br /></div>
<div>
Bill Gates is a visionary who makes things happen by creating systems bigger than himself and inspiring people to join him on his epic adventures to make maximum impact on the World.</div>
<div>
<br /></div>
<div>
Bill Gates believes in making maximum impact in the world.</div>
<div>
<br /></div>
<div>
The size of the contribution does not matter, what is important is the heart to do it. In fact you can start now to make a difference in the world. You can share your love, money, skills, and clothing with the world. Little efforts count. To receive you must give. Let us give love and share happiness with the world and then we will receive more of it.</div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-80077666590154101332014-06-04T09:00:00.000+01:002014-06-04T09:00:00.058+01:00Secrets of Success from the Story of Bill Gates - Part 1This is an very inspiring and motivational book: <a href="http://www.amazon.co.uk/gp/product/B00INFOQV8/ref=as_li_ss_tl?ie=UTF8&camp=1634&creative=19450&creativeASIN=B00INFOQV8&linkCode=as2&tag=andrangeoffib-21">Secrets of Success from the Story of Bill Gates.</a><div>
<div>
<br /></div>
<div>
<a href="http://en.wikipedia.org/wiki/Bill_Gates">Bill Gates</a> is a person that always inspired me and continue to inspired me. </div>
<div>
<br /></div>
<div>
Bill Gates built <a href="http://www.microsoft.com/">Microsoft</a> from scratch – he created the single most influential technology company of our modern age, and it made him so wealthy that he is now able to focus on the eradication of poverty and disease through the work of his charity foundation.</div>
<div>
<br /></div>
<div>
In 1994, Gates and his wife Melinda founded a charitable organisation called the <a href="http://www.gatesfoundation.org/">Bill and Melinda Gates Foundation</a> which supports initiatives in global health and education. The aim of the foundation is to eradicate poverty, disease and illiteracy from the world.</div>
<div>
<br /></div>
<div>
Bill Gates has received numerous international and national accolades, and honorary doctorates from the Royal Institute of Technology, Stockholm, Sweden in 2002, Waseda University, Tokyo, Japan in 2005, Harvard University in June 2007, and other universities. He was also made an honorary Knight Commander of the Order of the British Empire (KBE) from Queen Elizabeth II in 2005.</div>
<div>
<br /></div>
<div>
The book describes the key elements of the history of the Bill Gates but he also introduce a lot of examples from other great people who are equally inspiring.</div>
<div>
<a name='more'></a></div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;">Clear Vision </span></div>
<div>
<br /></div>
<div>
Over the last 20 years of working with effective leaders, has being found they all possessed one common element – they had a clear vision of what they want to accomplish.</div>
<blockquote class="tr_bq">
<i>Vision can be defined as a mental picture or image of a possible and desirable future state of an individual or organisation.</i></blockquote>
<div>
You can always adjust your vision to be in line with the realities of the situation and time. As you lead, you should be communicating your vision all the time.</div>
<div>
<br /></div>
<div>
You have to think about the implications of your actions before you act. Get in the habit of looking at the big picture. Are your actions worth it? Form the big picture in your mind and let your life be directed by it. You’ll discover that the people who don’t think in terms of the future don’t have the big picture in their mind. They have no idea of who they want to become and don’t know where they want to go, and what they want to achieve. The big picture in your mind is the compass that guides you in the journey of life when you face obstacles. Allow the big picture to be your anchor.</div>
<div>
<br /></div>
<div>
<span style="font-size: x-large;">Passion and Enthusiasm</span></div>
<div>
<br /></div>
<div>
<div>
The more you are passionate, enthusiastic, relentless, showing great confidence and clear about where you are going, the more likely people will follow your lead.</div>
<div>
<br /></div>
<div>
Don't underestimate the power of your ideas and words.</div>
</div>
<div>
<blockquote class="tr_bq">
<i>Do what you are Passionate about, the rest will follow.</i></blockquote>
</div>
<div>
Making millions through programming was not his set goal; Gates was just following his heart, his passion. Programming was his obsession and it gave him happiness. Passion, intensity and tenacity that is one way to describe Bill Gates. Bill Gates was so passionate about programming to the extent that it kept him motivated about it. Bill Gates found programming software to be extremely interesting and it kept him motivated to go the extra mile. When you follow your passion it will eventually lead you to success.</div>
<div>
<br /></div>
<div>
When you make pursuing money your priority you may end up losing focus. </div>
<div>
<br /></div>
<div>
Don’t be motivated by money but to meet people’s needs and eventually life will reward you for your efforts – money is not the real motivator.</div>
<div>
<br /></div>
<div>
You only have one life, so don’t waste your time working on a career that you hate just because of the money. Are you passionate about the work that you do? There is nothing worse than having to wake up every morning going to a job that you don’t enjoy doing.</div>
<div>
<br /></div>
<div>
If you work just for money, you'll never make it, but if you love what you're doing and you always put the customer first, success will be yours.</div>
<blockquote class="tr_bq">
<i>Follow your passion. Nothing – not wealth, success, accolades or fame – is worth spending a lifetime doing things you don’t enjoy.</i> Jonathan Sacks</blockquote>
When you really enjoy what you do, nothing will stop you from getting your work done. Because you are passionate about what you do, you feel unstoppable and nothing can obstruct you from achieving greatness.<br />
<br />
<div>
<span style="font-size: x-large;">Believe</span></div>
<div>
<br /></div>
<div>
Success starts in the mind. You have to believe, desire and expect to be successful before you can achieve success.</div>
<div>
<br /></div>
<div>
You have to be hungry for whatever you are doing if you are going to succeed.</div>
<div>
<br /></div>
<div>
It will be very difficult to achieve success until you have seen it with the power of your imagination or mind.</div>
<div>
<br /></div>
<div>
Think big, think different and put in all your effort to execute the vision. Don't limit your imagination; you may be the next creator of life-changing invention.</div>
<div>
<br /></div>
<div>
The thinking initiates the dream, but faith causes you to take that first, uncertain step.</div>
<div>
<br /></div>
<div>
<div>
As a leader, you have to help people to embrace your vision and make it their own.</div>
</div>
<blockquote class="tr_bq">
<i>The golden opportunity you are seeking is in yourself. It is not in your environment; it is not in luck or chance; it is in yourself alone.</i> Orison Swett Marden</blockquote>
<div>
<span style="font-size: x-large;">Open Mind</span></div>
<div>
<br /></div>
<div>
Maintain an open mind viewing challenges as opportunities and believing that success is possible.</div>
<div>
<br /></div>
<div>
Be flexible in trying new ideas and ways of doing things.</div>
<blockquote class="tr_bq">
<i>We can’t solve problems by using the same kind of thinking we used when we created them.</i> Albert Einstein</blockquote>
<blockquote class="tr_bq">
<i>Entrepreneurs are simply those who understand that there is little difference between obstacle and opportunity and are able to turn both to their advantage</i>, Niccolò Machiavelli</blockquote>
<div>
The exceptional quality of Bill Gates is that he’s a visionary who always looked continually towards the future, spotting opportunities and avoiding problems before they happened – spotting opportunities is an art that Bill Gates excels in.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-69222995998880469462014-06-03T08:30:00.000+01:002014-06-03T22:35:36.208+01:00Learnings from software development coaching sessionsBack in November 2013 I wrote a post sharing with you my <a href="http://www.andreaangella.com/2013/11/are-you-serious-about-achieving-mastery.html">decision of being mentored by a friend and agile coach Matteo Baglini</a> with the goal of exposing myself to agile engineering practises and become a better developer.<br />
<br />
At the time, I promised to write posts about my learning but ultimately I didn't. So, it is time to start now!<br />
<br />
First of all, I wish to thanks my manager <a href="http://www.domsmith.co.uk/">Dom Smith</a> in <a href="http://www.red-gate.com/">Red Gate Software</a> to offer me the opportunity to have these sessions during working hours. This really offers me the ability to have sessions regularly every week.<br />
<br />
In this post I will condensate the learning of the last few months of mentoring with links to the various resources that I read since then.<br />
<br />
We started discussing TDD and the approach described by Kent beck:<br />
<ol>
<li>Write new code only if an automated test has failed</li>
<li>Remove duplications</li>
</ol>
Duplication is the most important code smell and it can be hard to see. For this reason, sometimes it is useful to write verbose code just to help you find duplications.<br />
<br />
I did the full Money example in the book <a href="http://www.amazon.co.uk/Driven-Development-Addison-Wesley-Signature-Series/dp/0321146530/ref=sr_1_sc_1?ie=UTF8&qid=1401628958&sr=8-1-spell&keywords=tdd+by+exmaple">TDD By Example</a> exactly how Kent did it (with few changes as I did in C#) and deeply reflected on each step. I spent a full day to do it but it was worth the effort.<br />
<br />
Learning well a refactoring tool like ReSharper is very important. However it is important to consider that the biggest advantages of a refactoring tool is not merely productivity:<br />
<ul>
<li>Avoid the human error</li>
<li>Remove the context switch between using keyboard and mouse</li>
<li>Shorten the feedback loop by decreasing the time needed to refactor a piece of code</li>
<li>You can answer quickly questions like: Is the new design better?</li>
</ul>
Doing a kata multiple times without changing the solution to just focus in how you code and use refactoring tools is a very useful technique.<br />
<br />
<div>
Here is a collection of very useful advices:<br />
<br />
<ul>
<li>Check the error message when a test fail</li>
<li>Run tests often</li>
<li>After a refactoring run the tests</li>
<li>Avoid copy & paste as much as possible</li>
<li>When you find something to do, don't stop your current task. Add a note and do it later.</li>
<li>Don't stop the flow only to rename a method or a property! Add a note and do it later.</li>
<li>Primitive obsession can be often removed by introducing Value Objects</li>
<li>Sometimes you can add a test and comment it out in order to do necessary refactoring</li>
<li>Don't be too confident! Always use tests to validate what you are doing</li>
<li>Keep tests as stupid as possible. Limit test logic as much as possible!</li>
<li>In case of regression (red bar) never change test logic otherwise you won't know what was right</li>
<li>If you lose control, just slow down or discard changes and restart</li>
<li>Don't restrict yourself in a Top Down or Button up approach.</li>
<li>The code guides you. TDD is a feedback tool.</li>
<li>Consider adding code even if it is not strictly required to improve readability or simply to add symmetry</li>
<li>Some tests are simply tests to support you during development. You can remove them when other tests cover the same functionalities. Don't be afraid. </li>
<li>Consider the "Copy Type" ReSharper command</li>
<li>The production code tests the tests!</li>
<li><b>Extract Method</b> is a powerful refactoring tool</li>
<li>It is sometimes useful to make a private internal method public just for the sake of temporary writing unit tests but don't submit that code! Use it only to increase your knowledge about the problem.</li>
<li>Learn how to do small steps when needed.</li>
<li>A test is done only when duplication is eliminated!</li>
<li>Consider writing a test to force the creation of an object that we expect to need late but attention of not doing upfront design</li>
<li>Relying on the compiler can be a useful technique</li>
<li>If it takes a lot of time to make a test green... reflect!</li>
<li>Prefer static methods to factory classes when implementing the factory pattern</li>
<li>Getters are smells. Pay attention to not use objects as mere data structure.</li>
<li>Resist the temptation of not creating new classes... try, get feedback and see!</li>
<li>Observe the <a href="http://michaelfeathers.typepad.com/michael_feathers_blog/2011/01/measuring-the-closure-of-code.html">frequency of change</a>. Change should be distributed among classes.</li>
<li>Use the <b>Single Responsibility Principle</b> to see pattern of change</li>
<li>The class who own the data should do the operation: <b>Tell, Don't Ask!</b></li>
<li>In designing API it is best to offer a single way to do something. Make it simple!</li>
<li>Use the <a href="http://michaelfeathers.typepad.com/michael_feathers_blog/2011/03/data-rich-development.html">history in SCM</a> to get <a href="http://michaelfeathers.typepad.com/michael_feathers_blog/2012/12/the-active-set-of-classes.html]">insight about your project</a></li>
<li>Analyse <a href="http://michaelfeathers.typepad.com/michael_feathers_blog/2011/09/temporal-correlation-of-class-changes.html">temporal correlation of class changes</a></li>
<li>If you feel that something is annoying in the code base that is a sign of poor design.</li>
<li>Remain at the same level of abstraction within a test</li>
<li>Write a high level test and when you see the need to cover a lot of cases go down of one level of abstraction and write more specific unit tests.</li>
<li>You will often be pushing tests up and down between different levels of abstraction</li>
<li>Remember to not look inside the object when you do testing even on individual classes! Test the behaviour so that you can easily change the instance of the class with a new class but keep the tests intact.</li>
<li>Do not use TDD as a way to get permissions to write production code (that is cheating).</li>
<li>Do not be too enthusiastic about new technologies or methodologies. Slow down and reflect. There will be always a hype and later a fall. If you are pragmatic you can fall less.</li>
<li>Consider writing the assertion first</li>
</ul>
<div>
<br />
The essence of object orientation is thinking about <b>behaviours</b><br />
<br />
TDD test are always behavioural and at different level of abstraction. TDD can be done at different levels of zoom: it is sort of a dance between them. Unfortunately TDD has been often misunderstood and even attempts were made to fix this with ATDD and BDD. But these methods have often been identified with tools and things like Cucumber only create a new layer without bringing much value: having the on-site customer is far better than executable requirements that are a dream.<br />
<br />
Pair programming helps a lot to keep focused and the role of navigators is supporting drivers in maintaining discipline and avoiding distractions</div>
<div>
<span style="text-indent: -24px;"><br /></span>
<span style="text-indent: -24px;">I and my mentor discussed many times about the <a href="http://en.wikipedia.org/wiki/Theory_of_constraints">Theory of Constraints</a> and the importance of identifying bottlenecks in order to remove them. It is quite interesting to note that also humans can be a bottleneck and therefore an issue that can be addressed by increasing sharing. This can be done both with pair programming or with the <a href="http://c2.com/cgi/wiki?ExpertInEarshot">Expert in Earshot</a> pattern.</span><br />
<br /></div>
<div>
<div>
Quotations:</div>
<blockquote class="tr_bq">
<span style="text-indent: -18pt;"><i>I never known exactly how to achieve high cohesion and loose coupling regularly until I started writing isolated tests, </i>Kent Beck</span></blockquote>
</div>
<blockquote class="tr_bq">
<i>I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of confidence (I suspect this level of confidence is high compared to industry standards, but that could just be hubris). If I don’t typically make a kind of mistake (like setting the wrong variables in a constructor), I don’t test for it. I do tend to make sense of test errors, so I’m extra careful when I have logic with complicated conditionals. When coding on a team, I modify my strategy to carefully test code that we, collectively, tend to get wrong. Different people will have different testing strategies based on this philosophy, but that seems reasonable to me given the immature state of understanding of how tests can best fit into the inner loop of coding. Ten or twenty years from now we’ll likely have a more universal theory of which tests to write, which tests not to write, and how to tell the difference. In the meantime, experimentation seems in order.</i> Kent Beck</blockquote>
<div>
Resources:</div>
<div>
<ul>
<li>Book: <a href="http://www.amazon.co.uk/Driven-Development-Addison-Wesley-Signature-Series/dp/0321146530/ref=sr_1_sc_1?ie=UTF8&qid=1401628958&sr=8-1-spell&keywords=tdd+by+exmaple">TDD By Example</a></li>
<li>Book: <a href="http://www.amazon.co.uk/Refactoring-Improving-Existing-Addison-Wesley-Technology-ebook/dp/B007WTFWJ6/ref=sr_1_1?ie=UTF8&qid=1401629075&sr=8-1&keywords=refactoring">Refactoring</a></li>
<li>Book: <a href="http://www.amazon.co.uk/Implementation-Patterns-Addison-Wesley-Signature-Beck-ebook/dp/B000XPRRVM/ref=sr_1_1?ie=UTF8&qid=1401629194&sr=8-1&keywords=implementation+patterns">Implementation Patterns</a></li>
<li>Book: <a href="http://www.amazon.co.uk/Growing-Object-Oriented-Software-Addison-Wesley-Signature-ebook/dp/B002TIOYVW/ref=sr_1_1?s=books&ie=UTF8&qid=1401631057&sr=1-1&keywords=growing+object+oriented+software+guided+by+tests">Growing Object Oriented Software guided by tests</a></li>
<li>Book: <a href="http://www.amazon.co.uk/Working-Effectively-Legacy-Robert-Martin-ebook/dp/B005OYHF0A/ref=sr_1_1?s=books&ie=UTF8&qid=1401631043&sr=1-1&keywords=working+effectively+with+legacy+code">Working Effectively with Legacy Code</a></li>
<li>Book: <a href="http://www.amazon.co.uk/Holub-Patterns-Learning-Design-Looking-ebook/dp/B001REFS14/ref=sr_1_1?ie=UTF8&qid=1401631020&sr=8-1&keywords=holub+on+patterns">Holub on Patterns: Learning Design Patterns by Looking at Code</a></li>
<li>Book: <a href="https://leanpub.com/4rulesofsimpledesign">The 4 rules of simple design</a></li>
<li>Book: <a href="http://www.amazon.co.uk/ATDD-Example-Test-Driven-Development-Addison-Wesley-ebook/dp/B008G1H3EG/ref=sr_1_1?ie=UTF8&qid=1401633302&sr=8-1&keywords=ATDD+by+example">ATDD By Example</a></li>
<li>Article: <a href="http://www.extremeprogramming.org/values.html">Extreme Programming Values</a></li>
<li>Article: <a href="http://alistair.cockburn.us/Hexagonal+architecture">Exagonal Architecture</a></li>
<li>Article: <a href="http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html">The Clean Architecture</a></li>
<li>Article: <a href="http://www.natpryce.com/articles/000772.html">Visualizing Test Terminology</a></li>
<li>Article: <a href="http://blog.iterate.no/2012/06/20/programming-like-kent-beck/">Programming like Kent Beck</a></li>
<li>Presentation: <a href="http://www.infoq.com/presentations/Uncertainty-Jeff-Patton">Embrace Uncertainty, Jeff Patton</a></li>
<li>Presentation: <a href="https://vimeo.com/7858952">Theory of Constraints, J. B. Rainsberger</a></li>
<li>Blog: <a href="http://www.andreaangella.com/2014/05/growing-object-oriented-software-guided.html">Growing Object Oriented Software, Guided By Tests</a></li>
<li>Blog: <a href="http://dev.red-gate.com/working-effectively-with-legacy-code/">Working Effectively with Legacy Code</a></li>
<li>Blog: <a href="http://www.andreaangella.com/2014/02/design-patterns-series-learn-design.html">Design Patterns</a></li>
<li>Blog: <a href="http://www.andreaangella.com/2013/03/the-definitive-guide-to-learn-jetbrain.html">The Definitive Guide to Learn JetBrains ReSharper Shortcuts in Visual Studio</a></li>
</ul>
<div>
<br /></div>
<div>
<br /></div>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-13545312345405690142014-06-02T09:00:00.000+01:002014-06-02T17:19:58.487+01:00Stored Procedure to Calculate ExpressionsI was reading the section <b>Character Functions</b> in the Chapter 2 of the book <a href="http://www.amazon.co.uk/Training-Kit-Exam-70-461-Microsoft/dp/0735666059/ref=sr_1_1?s=books&ie=UTF8&qid=1401231016&sr=1-1&keywords=querying+microsoft+sql+server+2012">Querying Microsoft SQL Server 2012</a> and pretty soon I get bored of trying individually the various functions on strings available in T-SQL.<br />
<br />
Then, I challenged myself to write a stored procedure (this is my first one) to evaluate an arithmetic expression with parenthesis and show the individual steps of the calculation. I wanted something generic but I added some restrictions to it after seeing how <a href="http://www.sqlservercentral.com/articles/Tally+Table/72993/">crazy is to implement a split function in T-SQL</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHxgVSXFxCBF3qPXmN0n5wlUsSiQW0lb18EEMDuSMfuNAaXy6k1UR9-A4T9u7itNXBeKqZgJGmQhCI9gI9GbPwSoWXzAgtpwaSncPYP768izQIPYRXboOgrosglH8Er8S8i-nnT28Rc2o/s1600/2014-05-27+23_56_05-learning.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(59))_+-+Microsoft+S.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHxgVSXFxCBF3qPXmN0n5wlUsSiQW0lb18EEMDuSMfuNAaXy6k1UR9-A4T9u7itNXBeKqZgJGmQhCI9gI9GbPwSoWXzAgtpwaSncPYP768izQIPYRXboOgrosglH8Er8S8i-nnT28Rc2o/s1600/2014-05-27+23_56_05-learning.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(59))_+-+Microsoft+S.png" height="60" width="400" /></a></div>
<br />
This is the stored procedure. I know, it is crazy and I am sure there are much better way of doing it. Remember that my goal was to just get confidence with the T-SQL functions on strings. Anyway, I am happy to receive feedback on it and see different way of implementing this behaviour.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb80YOZcHo5qolwbVevfu8HxrVsL-KyH5PET6I1RXExQ91liSbSBjFlWmToDwYMfv7gJGOOSAP7-HdAaleJN2KcRM4uhBr6JNSKTtlo9VIU3wEs_8Dn-VJiLVh4UCDSVfHS-7LO1zbrRc/s1600/2014-05-27+23_48_25-learning.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(59))_+-+Microsoft+S.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb80YOZcHo5qolwbVevfu8HxrVsL-KyH5PET6I1RXExQ91liSbSBjFlWmToDwYMfv7gJGOOSAP7-HdAaleJN2KcRM4uhBr6JNSKTtlo9VIU3wEs_8Dn-VJiLVh4UCDSVfHS-7LO1zbrRc/s1600/2014-05-27+23_48_25-learning.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(59))_+-+Microsoft+S.png" height="528" width="640" /></a></div>
<br />
This is the result of the execution.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO2tANFo45cBPfC92VKPwJiENa8A1_Jzk-vk-CZUGmUF3YYoYzu4rxucTvMwW2eToypxfLg6vNT7iM7RFXXU4Yf0BHZ6cYnSPuBTjb2wuw7y2ETQDR3TXkHklbapu1VW5hmA-_5fjdRhw/s1600/2014-05-27+23_57_31-learning.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(59))_+-+Microsoft+S.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO2tANFo45cBPfC92VKPwJiENa8A1_Jzk-vk-CZUGmUF3YYoYzu4rxucTvMwW2eToypxfLg6vNT7iM7RFXXU4Yf0BHZ6cYnSPuBTjb2wuw7y2ETQDR3TXkHklbapu1VW5hmA-_5fjdRhw/s1600/2014-05-27+23_57_31-learning.sql+-+ANDREA-PC_SQL2014.TSQL2012+(ANDREA-PC_Andrea+(59))_+-+Microsoft+S.png" height="400" width="185" /></a></div>
<br />
It was fun :)<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-35336231471364672582014-05-30T08:30:00.000+01:002014-05-30T08:30:00.472+01:00My Personal Brand Survey Results (2014)In the last few years, I read some books about personal branding and pretty much all of them highly recommend to take an anonymous 360 degrees surveys in order to understand how people perceive you.<br />
<br />
For this reason, I decided to give it a go and try.<br />
<br />
After a little bit of research I decided to use the <a href="http://www.reachcc.com/reach/survey.nsf">360 Reach platform</a>. The survey is completely free for 15 days but I decided to pay for a premium version in order to get more results and a detailed report out of it.<br />
<br />
In this post I am going to share with you the most interesting results.<br />
<br />
<a name='more'></a><br />
<div style="text-align: justify;">
I sent the survey to my ex-co-workers and managers in Citrix and my new colleagues and managers in Red-Gate. In total I received 14 responses. I have to admit that the most difficult part of the entire process is to persuade people of doing the test. A big thanks to all the people who participate. Your feedback is invaluable to me.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX1ewMLNPn0QBdFl4hVSSKQUm_jZ6z1cqdGFGVLBwHNEQW8PVv8zO9Fd1oUFjYppi25G0X_egHVsL1o_30hbBRnaUTaAmgdgieCW36M_Af7VVosiVkpDkx4WbhuHTTTsx6JsQ79UhOH5M/s1600/2014-05-27+20_17_58-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX1ewMLNPn0QBdFl4hVSSKQUm_jZ6z1cqdGFGVLBwHNEQW8PVv8zO9Fd1oUFjYppi25G0X_egHVsL1o_30hbBRnaUTaAmgdgieCW36M_Af7VVosiVkpDkx4WbhuHTTTsx6JsQ79UhOH5M/s1600/2014-05-27+20_17_58-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" height="168" width="320" /></a></div>
<br />
My top <a href="http://www.identityshoppe.com/whats-my-brand-persona/">brand Personas</a> are<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjulEjajrS2cESQcRbRYQy7VnIgg5z3Ihp9awImhHPgW9uADYboEn9qbcKfHZ1agsol3pfsHJbpS3mpvvBWWl6OagzNZvfKoTVla3bJJjtiALEdfLEbFJeYA8RD8SGUwOmyYYfPqNbEjLk/s1600/2014-05-27+20_23_38-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjulEjajrS2cESQcRbRYQy7VnIgg5z3Ihp9awImhHPgW9uADYboEn9qbcKfHZ1agsol3pfsHJbpS3mpvvBWWl6OagzNZvfKoTVla3bJJjtiALEdfLEbFJeYA8RD8SGUwOmyYYfPqNbEjLk/s1600/2014-05-27+20_23_38-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" height="264" width="320" /></a></div>
<br />
I was very pleased to see the first result to be Evangelist because I consider myself very passionate and enthusiastic about my work and apparently the people around me notice it.<br />
<blockquote class="tr_bq">
<i><b>Evangelists </b>exude passion and enthusiasm. They quickly inspire those</i><i>around them with their fervor. They are typically very loyal to people,</i><i>brands, ideas, etc. Evangelists can ignite a fire under those around</i><i>them – compelling them to act. Evangelists’ passion is contagious and</i><i>they have the ability to get those around them just as excited and</i><i>energized as they are. </i></blockquote>
The second was surprising to me because I don't see myself as an expert. I probably I will never see me as an expert because my thirst in knowledge is unlimited.<br />
<blockquote class="tr_bq">
<i><b>Experts </b>are often referred to as bright, intelligent or brilliant. They can</i><i>be expert in a certain area, but can also be knowledgeable about a lot of</i><i>things. People respect them for their intellect.</i></blockquote>
I surely see myself as a driver and self-starters because I am definitely ambitious and I personally want to become a better professional and constantly improve my skills.<br />
<blockquote class="tr_bq">
<i><b>Drivers </b>are ambitious. They like to get things done. They are driven to</i><i>achieve a goal. Drivers enjoy directing others to accomplish tasks that</i><i>are necessary for success. Once they achieve a goal, they are already</i><i>working on the next goal. Some drivers are driven by competition,</i><i>others by personal ambition and yet others by common goals.</i></blockquote>
<blockquote class="tr_bq">
<i><b>Self-starters</b> have the energy and drive within themselves to make</i><i>things happen. They usually don’t wait for direction from others. They</i><i>are pro-active and self-motivated. They usually don’t need or ask for</i><i>permission or approval. They often make things happen – for</i><i>themselves, others or the project at hand - without having to be asked</i><i>or told what to do.</i></blockquote>
And finally, I definitely see myself as a wonderers because I want to know how things works and I am not afraid to ask questions to deepen my knowledge.<br />
<blockquote class="tr_bq">
<i><b>Wonderers </b>have an innate curiosity. They often don’t accept things at</i><i>face value. They are interested in many things and want to know more</i><i>about them. They can ask lots of questions to learn more about that</i><i>which surrounds them.</i></blockquote>
My leadership competencies are<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGMiGmgv-gThqpUa-ECKlX73k1lg6io7NWQ56Nh9p2WKQydFHjI2xOu6lmCHOorkcmE8knSgJthVY3bWdto22hE9jNMzaXMXinbEfVOzt9iX3D9NatttS5AwD85Tbh0SHLWvRNrxJNAjE/s1600/2014-05-27+20_35_36-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGMiGmgv-gThqpUa-ECKlX73k1lg6io7NWQ56Nh9p2WKQydFHjI2xOu6lmCHOorkcmE8knSgJthVY3bWdto22hE9jNMzaXMXinbEfVOzt9iX3D9NatttS5AwD85Tbh0SHLWvRNrxJNAjE/s1600/2014-05-27+20_35_36-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" height="186" width="320" /></a></div>
<br />
<blockquote class="tr_bq">
<i><b>Developing</b>: Growing professionally; adopting new, relevant habits<br />(staying fresh and connected to what is happening in the world).</i></blockquote>
<blockquote class="tr_bq">
<i><b>Solving</b>: Identifying and resolving problems; managing crisis. </i></blockquote>
<blockquote class="tr_bq">
<i><b>Visioning</b>: Developing and executing strategy (creating, defining and<br />focusing on the big picture); thinking big/globally.</i></blockquote>
<blockquote class="tr_bq">
<i><b>Inspiring</b>: Activating, inspiring, nurturing, empowering and developing<br />others. </i></blockquote>
<blockquote class="tr_bq">
<i><b>Expressing</b>: Communicating clearly and consistently (listening,<br />speaking, writing, presenting, etc.).</i></blockquote>
<blockquote class="tr_bq">
<i><b>Relating</b>: Meeting/connecting with constituencies (colleagues,<br />employees, customers, supply chain and business partners); building<br />trust, respect.</i></blockquote>
Some of the most interesting feedback come from the Strengths and the Weaknesses that I am not afraid to share with you.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_Nw7p4hwLVZGmUEzLewRH1x47YShb7_J4O8C00xjmDhOx3K2ZPWPbGauiK95zqGvwV6W3QBjk31r-VHGXAAQDCmHpGBSStTm2p-ToGs9AT_XuboIwvk-ge_J-4aamYbXWvjj8tipXQuo/s1600/2014-05-27+20_39_06-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_Nw7p4hwLVZGmUEzLewRH1x47YShb7_J4O8C00xjmDhOx3K2ZPWPbGauiK95zqGvwV6W3QBjk31r-VHGXAAQDCmHpGBSStTm2p-ToGs9AT_XuboIwvk-ge_J-4aamYbXWvjj8tipXQuo/s1600/2014-05-27+20_39_06-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" height="343" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiWI-43dMqKcjZXcKAJ15PKfF2Ditrl6sp7zPEf5qw4H1V7u_Kg0YKyPBggPeTioQHpEzG4QIh-FWhHf2Wkd2ZXVg6BFyyUmLP4-kqw1WKmXKp2O0zrs_Q49PLkqE5p67bVFa_SbEVDiA/s1600/2014-05-27+20_39_19-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiWI-43dMqKcjZXcKAJ15PKfF2Ditrl6sp7zPEf5qw4H1V7u_Kg0YKyPBggPeTioQHpEzG4QIh-FWhHf2Wkd2ZXVg6BFyyUmLP4-kqw1WKmXKp2O0zrs_Q49PLkqE5p67bVFa_SbEVDiA/s1600/2014-05-27+20_39_19-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" height="382" width="400" /></a></div>
<br />
I have very little to say about my strengths because it is all very good :)<br />
<br />
Let me have a little say about the weaknesses.<br />
<br />
<b>Desire to specialise in one development technology</b><br />
<br />
This is true and it has been mostly a conscious decision. I used to spend a lot of time exploring very different technologies to get a good overview of the development industry. I learnt many languages BASIC, VB, C, Assembly, C++, PHP, Java, Python and C#. I played with different OS (Windows, Unix and Linux) and different platform (J2ME, JSP, .NET, ...) in particular during the time at the University. I always being a huge fun of Windows and I really felt in love with C# and the .NET Framework and I decided to focus heavily on that. I got certifications, I founded a community and I put together very desirable skills that really helped me to get my first job and also to enter in an amazing company like <a href="http://www.red-gate.com/">Red Gate Software</a>. I have to admit that the decision I made at the time was a good one and I can see the effects now. Said that, I completely agree about the importance of exploring different development technologies and I still have innate curiosity to do so.<br />
<br />
<b>English</b><br />
<br />
Oh yeah, of course! I couldn't agree more about this. I have still a lot to learn about English. I need to expand my vocabulary, improve my grammar and listening. It is hard but hopefully with time this will improve. I also believe that blogging is surely a good way to improve on this. Please, if you see grammar mistakes on my blog, let me know. I really appreciate it!<br />
<br />
<b>Food</b><br />
<br />
No comments ;)<br />
<br />
<b>I'd really like to see Andrea pushing the team and inspiring them a bit more</b><br />
<br />
This was a surprise for me but apparently I have room for improvements in this.<br />
<br />
<b>Not yet learned about Compare/SQL Server - will change with time</b><br />
<br />
This one is very specific to my current role. I definitely agree and I already started to learn more about SQL Server that is a very important competence to have in Red Gate.<br />
<br />
<b>Time & keeping focus</b><br />
<br />
Oh sure. These days is very difficult to be focused especially for a very passionate person like me who constantly want to learn new things. I also think that pair programming helps a lot in this area.<br />
<br />
<b>Underestimate his capability</b><br />
<br />
This one was really enlightening and I think that it is true. As I said before I don't see myself as an expert. I am humble and I know that I have a lot to learn. My infinite desire to learn sometimes makes me blind of what I am really capable of doing. I surely need to be more confident and believe in my skills. This feedback really helped.<br />
<br />
<b>Very little but he could get some more direction into the many things he's trying to excel at</b><br />
<br />
This is also surprising as I always ask for feedback in the things I do. Apparently sometimes I don't and I need to pay attention, especially now that I am in a self-organizing team following agile principles and practices.<br />
<br />
Finally in the open comments I received really good feedback that makes me very proud. I was particularly impressed that people expect me to grow in a technical leader role and being an inspirational source for the team.<br />
<blockquote class="tr_bq">
<i>Andrea is always learning, always growing... always passionate about software & his goals. Andrea has an amazing ability to involve others in this pursuit of excellence - he facilitates other people's growth too. Andrea values relationships with people as much as the objective pursuit of work goals. Andrea is a life-long learner.</i></blockquote>
<blockquote class="tr_bq">
<i>I'm not directly in the team, but I hear great things about how Andrea is doing, and very impressed with his clear ambition. He seems to have made a huge difference to the team and the project in the short time he's been here. I'd very much like to see Andrea grow into a 'tech lead' role and own the code/processes and help inspire the team.</i></blockquote>
Thank you very much for your feedback.<br />
<br />
<b>I definitely encourage you to try a 360 degrees feedback survey. You will be amazed by the results.</b><br />
<div>
<br /></div>
Follow the row data.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoKv3LwIYtTsJsyLjFNDGwwHDS4MBIwTgp46NEm3yO8lspSn5y0rBxlzRns9dfosHRMN2wrXoihcP7cBDdkDIYYMJBNxfEPsB3ADcZ1OCdPR9q1_kN7CI8Jgs2jw4DMV8fMocRQce1IBk/s1600/2014-05-27+21_38_10-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoKv3LwIYtTsJsyLjFNDGwwHDS4MBIwTgp46NEm3yO8lspSn5y0rBxlzRns9dfosHRMN2wrXoihcP7cBDdkDIYYMJBNxfEPsB3ADcZ1OCdPR9q1_kN7CI8Jgs2jw4DMV8fMocRQce1IBk/s1600/2014-05-27+21_38_10-Andrea+Angella+-+360+Feedback+Report.pdf+-+Adobe+Reader.png" height="640" width="348" /></a></div>
<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-12007125085455595012014-05-28T09:43:00.000+01:002014-05-28T09:43:11.882+01:00Preparing for Querying Microsoft SQL Server 2012<div style="text-align: justify;">
Few months ago I joined <a href="http://www.red-gate.com/">Red Gate Software</a> and I am having a lot of fun so far. We have a great team in <a href="http://www.red-gate.com/products/sql-development/sql-compare/">SQL Compare</a> and we are working hard to add support for <a href="http://www.microsoft.com/en-us/server-cloud/products/sql-server/#fbid=nvieZ0CFcQ3">SQL Server 2014</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I think that learning more about SQL Server is very important because a lot of <a href="http://www.red-gate.com/products/sql-development/">Red Gate products</a> are designed to make DBA and developers working with it in a very productive way.</div>
<br />
<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha4uR0RwgevMKsTVTQccaIDZNPdtReXo8_GTY-MOAQETMur0pl2F5bQit0ONq8s6lVfPB2tCGkXbvEjbnT7L7lr2NQ8VbhesLOkUU6FgIAyB7sDEYkrxSDe7iaL_LdpbsIPqPxHAnxcMk/s1600/query.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha4uR0RwgevMKsTVTQccaIDZNPdtReXo8_GTY-MOAQETMur0pl2F5bQit0ONq8s6lVfPB2tCGkXbvEjbnT7L7lr2NQ8VbhesLOkUU6FgIAyB7sDEYkrxSDe7iaL_LdpbsIPqPxHAnxcMk/s1600/query.jpg" height="320" width="262" /></a>This is why I decided to start the path toward becoming a <a href="http://www.microsoft.com/learning/en-gb/mcsa-sql-certification.aspx">MCSA on SQL Server</a>. To be honest, as a developer, my goal is just learning more about SQL Server and not necessarily get certified. However I will use the certification materials as a clear path to increase my knowledge.</div>
<br />
The first exam on the list is<br />
<a href="http://www.microsoft.com/learning/en-gb/exam-70-461.aspx">[70-461] Querying Microsoft SQL Server 2012</a><br />
<br />
<div style="text-align: justify;">
I know SQL and I have studied database development and design at University. However I don't know much about SQL Server specific features and the incredible power that the platform can offer. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
In order to keep me motivated I will post on my blog all the things I found interesting during my learning.</div>
<br />
The following is a list of all the resources I will use to prepare for this exam:<br />
<ul>
<li>Book: <a href="http://www.amazon.co.uk/gp/product/0735666059/ref=as_li_ss_tl?ie=UTF8&camp=1634&creative=19450&creativeASIN=0735666059&linkCode=as2&tag=andrangeoffib-21">Querying Microsoft SQL Server 2012</a></li>
<li>TechEd 2014: <a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/EXM15#fbid=8cPDZb7rwtH">Exam Prep: 70-461 - MCSA: Microsoft SQL Server 2012 (Querying)</a></li>
<li>Hands-On-Lab: <a href="https://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DBI-H305#fbid=">What's New for T-SQL in Microsoft SQL Server 2012</a></li>
<li>Pluralsight: <a href="http://pluralsight.com/training/courses/TableOfContents?courseName=sql-server-2012-querying-pt1&highlight=">SQL Server 2012 Querying (70-461) Part 1</a></li>
<li>Pluralsight: <a href="http://pluralsight.com/training/courses/TableOfContents?courseName=sql-server-2012-querying-pt2&highlight=">SQL Server 2012 Querying (70-461) Part 2</a></li>
</ul>
<br />
It's time to write SQL :)<br />
<br />Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-32033070602730977952014-05-27T08:15:00.000+01:002014-05-27T21:42:40.968+01:00Growing Object Oriented Software, Guided By TestsFew weeks ago I finished to read the famous book<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_44APsxuY_P_SBaVZeco3b4eS9XX_QeylbElaoXz0A9aRolyGfgGrPRPEQxG5Es4g5eeTCoh00b2U7seAK8IFz4aglaJGOxsMKt1ZwRPQw52S-4uNcoASfxnuzzlR4u8ObBcXmD9JJ8M/s1600/cover.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_44APsxuY_P_SBaVZeco3b4eS9XX_QeylbElaoXz0A9aRolyGfgGrPRPEQxG5Es4g5eeTCoh00b2U7seAK8IFz4aglaJGOxsMKt1ZwRPQw52S-4uNcoASfxnuzzlR4u8ObBcXmD9JJ8M/s1600/cover.jpg" /></a><a href="http://www.amazon.co.uk/Growing-Object-Oriented-Software-Addison-Wesley-Signature-ebook/dp/B002TIOYVW/ref=sr_1_1?s=books&ie=UTF8&qid=1400968003&sr=1-1&keywords=growing+object-oriented+software+guided+by+tests">Growing Object-Oriented Software, Guided by Tests</a><br />
<br />
In this post, I try to summarize what I think is the most interesting content.<br />
<br />
<div style="text-align: justify;">
The book present the interesting approach of starting a new project with a <b><a href="http://alistair.cockburn.us/Walking+skeleton">Walking Skeleton</a> </b>that is a tiny implementation of the system that performs a small end-to-end function</div>
<blockquote class="tr_bq" style="text-align: justify;">
<i>The point of the walking skeleton is to help us understand the requirements well enough to propose and validate a broad-brush system structure.</i></blockquote>
In most Agile projects, there’s a first stage where the team is doing initial analysis, setting up its physical and technical environments, and otherwise getting started. This is usually called <b>Iteration Zero</b>.<br />
<br />
<br />
<a name='more'></a>One important task for iteration zero is to use the walking skeleton to <b>test-drive the initial architecture</b>.<br />
<blockquote class="tr_bq">
<i>Working through our first end-to-end test will force some of the structural decisions we need to make, such as packaging and deployment.</i></blockquote>
<blockquote class="tr_bq">
<i>We always have a single command that reliably compiles, builds, deploys, and tests the application, and that we run it repeatedly. We only start coding once we have an automated build and test working.</i></blockquote>
Other interesting points are about the effects of this level of initial exploration:<br />
<blockquote class="tr_bq">
<i>A sense of urgency will help the team to strip the functionality down to the absolute minimum sufficient to test their assumptions.</i></blockquote>
<blockquote class="tr_bq">
<i>We often found it worth writing a small amount of ugly code and seeing how it falls out. It helps us to test our ideas before we’ve gone too far, and sometimes the results can be surprising. The important point is to make sure we don’t leave it ugly.</i></blockquote>
The book recommend the following things:<br />
<br />
<ul>
<li>Put the tests in a separate component to make sure that tests drive the code through its public interfaces</li>
<li>Write long unit test names to tell what a unit does</li>
<li>Write lots of little methods to keep each layer of code at a consistent level of abstraction</li>
<li>Use the <a href="http://en.wikipedia.org/wiki/Single_responsibility_principle">Single Responsibility Principle</a> as an heuristic for breaking up complexity</li>
<li>Don't be shy of creating new types</li>
<li>Passing around types with generics is a form of duplication. It's a hint that there is a domain concept that should be extracted into a type.</li>
<li>Try to minimize the time when the code does not compile by keeping changes incremental</li>
<li>Consider using a runtime exception called <b>Defect </b>to throw when the code reaches a condition that could only be caused by a programming error rather than a failure in the runtime environment</li>
<li>Choose good names and change them over time reflecting the new learning about the domain</li>
<li>It is better to define domain types to wrap built-in types including collections</li>
<li>Learn how to divide requirements up into incremental slices, always having something working, always adding just on more feature.</li>
<li>Constant refactoring as part of the TDD cycle</li>
<li>Write tests that are readable and flexible. </li>
<li>Write tests that read like a declarative description of what is being tested.</li>
<li>Use the <a href="http://c2.com/cgi/wiki?SentenceStyleForNamingUnitTests">TestDox</a> convention (invented by Chris Stevenson) where each test names reads like a sentence, with the target class as the implicit subject.</li>
<li>Don't worry about long names in tests as they are only called through reflection</li>
<li>Synchronize frequently with the source code repository—up to every few minutes—so that if a test fails unexpectedly it won’t cost much to revert your recent changes and try another approach.</li>
</ul>
<div style="text-align: justify;">
<a href="http://en.wikipedia.org/wiki/Test-driven_development">Test Driven Development</a> combines testing, specification and design into one holistic activity. Difficulty in testing might imply that we need to change our test code, but often it's a hint that our design ideas are wrong and that we ought to change the production code.</div>
<blockquote class="tr_bq">
<i>We’ve found that the qualities that make an object easy to test also make our code responsive to change. The trick is to let our tests drive our design</i></blockquote>
<blockquote class="tr_bq">
<i>TDD is about testing code, verifying its externally visible qualities such as functionality and performance. TDD is also about feedback on the code’s internal qualities: the coupling and cohesion of its classes, dependencies that are explicit or hidden, and effective information hiding—the qualities that keep the code maintainable.</i></blockquote>
One of the importance goal the authors have is structuring code to make the boundaries of objects clearly visible.<br />
<blockquote class="tr_bq" style="text-align: justify;">
<i>An object should only deal with values and instances that are either local—created and managed within its scope—or passed in explicitly.</i></blockquote>
<div style="text-align: justify;">
The book describes through examples a way of doing TDD that heavily rely on using mocks. I personally rarely used this style and I tend to prefer the more traditional TDD approach as presented by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a> in his book <a href="http://www.amazon.co.uk/gp/product/0321146530/ref=as_li_ss_tl?ie=UTF8&camp=1634&creative=19450&creativeASIN=0321146530&linkCode=as2&tag=andrangeoffib-21">TDD By Example</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The reason why they love this style is that emphasize how objects communicate, rather than what they are, so that they end up with types and roles defined more in terms of the domain than of the implementation.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
They also say that:</div>
<div style="text-align: justify;">
</div>
<ul>
<li>There is no point in writing mocks for values (which should be immutable anyway). Just create an instance and use it.</li>
<li>Mock concrete classes only if you have no other options. This often brings you to extract an interface that reflects something about the domain. </li>
</ul>
<br />
In terms of dependencies, they insist on dependencies being passed in to the constructor, but notifications and adjustments can be set to defaults and reconfigured later.<br />
<br />
They strongly believe in the principle of "<a href="http://martinfowler.com/bliki/TellDontAsk.html">Tell, Don't Ask</a>"<br />
<br />
For me, the best piece of advice in the book is the <b><a href="http://www.kenneth-truyers.net/2013/07/15/flexible-and-expressive-unit-tests-with-the-builder-pattern/">Test Data Builder</a></b> pattern. I have started to use this pattern heavily in my team in <a href="http://www.red-gate.com/?utm_source=google&utm_medium=mobile&utm_content=brand_aware&utm_campaign=redgate&gclid=CMjuwfvYxb4CFfQgtAodpncAeg">Red Gate Software</a> and our test are now incredibly more readable and flexible. I really recommend you to have a look at the pattern and see if it can be a good fit for you.<br />
<blockquote class="tr_bq" style="text-align: justify;">
<i>We find that test data builders help to reduce duplication, keep tests expressive and resilient to change.</i></blockquote>
<blockquote class="tr_bq" style="text-align: justify;">
<i>First, they wrap up most of the syntax noise when creating new objects. Second, they make the default case simple, and special cases not much more complicated. Third, they protect the test against changes in the structure of its objects.</i></blockquote>
<blockquote class="tr_bq">
<i>We can write test code that’s easier to read and spot errors, because each builder method identifies the purpose of its parameter.</i></blockquote>
<blockquote class="tr_bq">
<i>Combined with factory methods and test scaffolding, test data builders help us write more literate, declarative tests that describe the intention of a feature, not just a sequence of steps to drive it.</i></blockquote>
<blockquote class="tr_bq">
<i>We can even use higher-level tests to communicate directly with non-technical stakeholders, such as business analysts</i></blockquote>
An another thing I totally agree on is the <b>importance of good test diagnostic</b>.<br />
<blockquote class="tr_bq">
<i>The last thing we should have to do is crack open the debugger and step through the tested code to find the point of disagreement.</i></blockquote>
<blockquote class="tr_bq">
<i>We’ve learned the hard way to make tests fail informatively. If a failing test clearly explains what has failed and why, we can quickly diagnose and correct the code. Then, we can get on with the next task.</i></blockquote>
<blockquote class="tr_bq">
<i>The easiest way to improve diagnostics is to keep each test small and focused and give tests readable names.</i></blockquote>
Sometimes tests are a little bit fragile especially when you create assertions on strings.<br />
<blockquote class="tr_bq" style="text-align: justify;">
<i>One interesting effect of trying to write precise assertions against text strings is that the effort often suggests that we’re missing an intermediate structure object. Most of the code would be written in terms of this intermediate object, a structured value that carries all the relevant fields.</i></blockquote>
The book terminates discussing the challenges of testing multi threading code.<br />
<blockquote class="tr_bq">
<i>The only solution is to make the system deterministic. </i></blockquote>
<blockquote class="tr_bq">
<i>This also means that we are no longer exercising the entire system so some slow system testing is required to increase fidelity.</i></blockquote>
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-87942414856399435682014-05-23T08:00:00.000+01:002014-05-25T13:15:33.026+01:00Top 10 Debugging Tips in Visual Studio 2013I watched the "<a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DEV-B352#fbid=">Debugging Tips and Tricks in Visual Studio 2013</a>" session from TechEd and I found some very interesting debugging tips I was mainly unaware of.<br />
<br />
<div>
<h3>
<b>Run to Cursor (CTRL + F10)</b></h3>
<div>
<div>
Run the debugger and stop in the location of your cursor. This allows you to debug your code from a particular location without the need to set a breakpoint. This is useful because often people create breakpoints but forget to remove them and the debugging becomes very slow.</div>
<div>
<br />
<b>F11 </b></div>
<div>
<div>
</div>
</div>
<div>
You can start your application and automatically break at the first line of code. This avoid you to manually find the entry point of the application.<br />
<br />
<a name='more'></a><b>CTRL</b></div>
</div>
</div>
<div>
When you are inspecting a variable and a <b>DataTip </b>is visible on the screen, you can press CTRL to make it temporarily transparent. This also works for <b>Intellisense</b>.</div>
<div>
<br /></div>
<h3>
<b>Execute Comments</b></h3>
<div>
I usually use the <b>Immediate Window</b> to run some code in the middle of a debugging session. However, an another option is to just type a comment in the code, select it and inspect it. A DataTip will show the results of the execution. It is quite cool but I found that it does not work all the time.</div>
<div>
<br /></div>
<div>
<h3>
<b>Show Parameter Values</b></h3>
</div>
<div>
By default the <b>Call Stack</b> window does not show the value of parameters. This feature however can be very useful.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMejREbcN4AAEw7cABpojEsO6GxDctG_cnfXfn6774MmwuhEoOP6yBec6FctGLmgCJZWy-x3l_rHOLmfbVmkHJvf22JIBJ10AdfuG0wo1M8y9CzArPfjPsedJeNcmvA8lRWMeUFuSWBqo/s1600/2014-05-22+21_54_07-TestDateParsing+(Debugging)+-+Microsoft+Visual+Studio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Show Parameter Values in Call Stack Window" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMejREbcN4AAEw7cABpojEsO6GxDctG_cnfXfn6774MmwuhEoOP6yBec6FctGLmgCJZWy-x3l_rHOLmfbVmkHJvf22JIBJ10AdfuG0wo1M8y9CzArPfjPsedJeNcmvA8lRWMeUFuSWBqo/s1600/2014-05-22+21_54_07-TestDateParsing+(Debugging)+-+Microsoft+Visual+Studio.png" height="145" title="Show Parameter Values in Call Stack Window" width="640" /></a></div>
<div>
<br />
<b>Step Into Specific</b></div>
<div>
When you have a single statement with multiple method calls you can use <b>Step Into Specific</b> to jump into a specific method and start debugging from there.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfwH3J8zZJjqQuvr37Fl8eI0DqPFTeUpDRgDqDH9FINO8Wlabr7gdY9he1w-zZE13cpoVhyphenhyphen1UV8P2vDT6V9bFRxpEy86NBemimlmGXJCsYKC57M_d_jyCN0RFFyfWyp4XCYiH1HNu_kIw/s1600/2014-05-22+21_59_13-TestDateParsing+(Debugging)+-+Microsoft+Visual+Studio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfwH3J8zZJjqQuvr37Fl8eI0DqPFTeUpDRgDqDH9FINO8Wlabr7gdY9he1w-zZE13cpoVhyphenhyphen1UV8P2vDT6V9bFRxpEy86NBemimlmGXJCsYKC57M_d_jyCN0RFFyfWyp4XCYiH1HNu_kIw/s1600/2014-05-22+21_59_13-TestDateParsing+(Debugging)+-+Microsoft+Visual+Studio.png" height="130" width="640" /></a></div>
<div>
<br /></div>
<h3>
<b>Returned Values</b></h3>
<div>
When you have a single statement with multiple method calls the <b>Autos </b>windows shows the result of each individual call. This is extremely useful because you are not forced any more to create a temporary variable just for the sake of debugging.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFfNwLk_yiO5Vxip3flhMcmhJc-q21zmKUiU6o-UhUGfQawFTi1CwFRESMPEb8Sc284EyMIfVXSMknZr08_IzjKWmQS_jBwTodhlbh0CLdBjMwvO72kvqIxcH7aep3jR8Qz8vVW379ePY/s1600/2014-05-22+22_03_16-TestDateParsing+(Debugging)+-+Microsoft+Visual+Studio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFfNwLk_yiO5Vxip3flhMcmhJc-q21zmKUiU6o-UhUGfQawFTi1CwFRESMPEb8Sc284EyMIfVXSMknZr08_IzjKWmQS_jBwTodhlbh0CLdBjMwvO72kvqIxcH7aep3jR8Qz8vVW379ePY/s1600/2014-05-22+22_03_16-TestDateParsing+(Debugging)+-+Microsoft+Visual+Studio.png" height="216" width="640" /></a></div>
<div>
<br /></div>
<h3>
<b>When Hit</b></h3>
<div>
You can print staff in the Output window all the time a particular breakpoint is hit using the <b>When Hit</b> feature. This is similar to manually add a <i>Console.WriteLine</i> but without the problem of remembering to remove it after the debugging session.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjifsQB9KV_tiDpxEtGsodP0PgaPdQVPgS1omc51Saw2GYurfJLRRjeaKispDj5A4X_nAz846gC-gNGb0XWhZ8hpD5oiIGoHjsp0SG9waJXIh09RHPDLgJqTP3B7tMHozIDuU5gdfgdkpc/s1600/2014-05-22+22_09_41-LearnDebug+-+Microsoft+Visual+Studio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjifsQB9KV_tiDpxEtGsodP0PgaPdQVPgS1omc51Saw2GYurfJLRRjeaKispDj5A4X_nAz846gC-gNGb0XWhZ8hpD5oiIGoHjsp0SG9waJXIh09RHPDLgJqTP3B7tMHozIDuU5gdfgdkpc/s1600/2014-05-22+22_09_41-LearnDebug+-+Microsoft+Visual+Studio.png" height="392" width="640" /></a></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW7RfL2WD8lp6yNwca93AUc7gTS52cOhBtijV6uivaXqCYmnP6y6gCgnRnk4UbjCISnFHdNS8FeDcbBcIr7YuVxwQc1XBvd-ctaq8HGuSoeDl2lf_91zko-zdStDqPPsWU42xNHd91zEg/s1600/2014-05-22+22_12_36-LearnDebug+(Debugging)+-+Microsoft+Visual+Studio.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW7RfL2WD8lp6yNwca93AUc7gTS52cOhBtijV6uivaXqCYmnP6y6gCgnRnk4UbjCISnFHdNS8FeDcbBcIr7YuVxwQc1XBvd-ctaq8HGuSoeDl2lf_91zko-zdStDqPPsWU42xNHd91zEg/s1600/2014-05-22+22_12_36-LearnDebug+(Debugging)+-+Microsoft+Visual+Studio.png" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQMGgOaXHPWvL1CJihgmVkQsvZ9xq0jWtwHiLmqQS8WVPqlpcZ3BxY54hq4jWQeH86lH9I1CUD0_plurJaT9lZFam2Fp6kU9e94ELyxxP2JtANA5M0nNjmLKQa8BPS0TKD1QTawY88uQA/s1600/2014-05-22+22_11_52-When+Breakpoint+Is+Hit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQMGgOaXHPWvL1CJihgmVkQsvZ9xq0jWtwHiLmqQS8WVPqlpcZ3BxY54hq4jWQeH86lH9I1CUD0_plurJaT9lZFam2Fp6kU9e94ELyxxP2JtANA5M0nNjmLKQa8BPS0TKD1QTawY88uQA/s1600/2014-05-22+22_11_52-When+Breakpoint+Is+Hit.png" height="302" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h3>
<b>Break at Function</b></h3>
<div>
When you have multiple overrides of the same method instead of setting multiple breakpoints manually it is possible to set a function breakpoint. This is quite useful when you don't know which particular override will be called.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiWBCzHvem4bKMt9h0XQyq38UtA0G6gN-Rt_EO6HMbjYXrQ7HEC4WFgHWSkCpRQT1UAhI763lPK57Us3Akd8dmxDv11k_N7JN2ZNfR85ApSULNYe69m75nuPDw4JCLvmiyk3_MhJHshWw/s1600/2014-05-22+23_31_17-LearnDebug+-+Microsoft+Visual+Studio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiWBCzHvem4bKMt9h0XQyq38UtA0G6gN-Rt_EO6HMbjYXrQ7HEC4WFgHWSkCpRQT1UAhI763lPK57Us3Akd8dmxDv11k_N7JN2ZNfR85ApSULNYe69m75nuPDw4JCLvmiyk3_MhJHshWw/s1600/2014-05-22+23_31_17-LearnDebug+-+Microsoft+Visual+Studio.png" height="363" width="640" /></a></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdYv8GV_RyIvnoQsDP3QIg6otkUDULgXPa1tG2bBNF-GL0evH7FxV-iNVXcBOUp3FBb2udT9ryD1Af0pJ68idq-S_KRUO0LSlasNsmiJ2RfiwT3z5QZX8D3e3zmFx5jusPXV1MXts4JfA/s1600/2014-05-22+23_32_58-New+Breakpoint.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdYv8GV_RyIvnoQsDP3QIg6otkUDULgXPa1tG2bBNF-GL0evH7FxV-iNVXcBOUp3FBb2udT9ryD1Af0pJ68idq-S_KRUO0LSlasNsmiJ2RfiwT3z5QZX8D3e3zmFx5jusPXV1MXts4JfA/s1600/2014-05-22+23_32_58-New+Breakpoint.png" height="290" width="640" /></a></div>
<div>
<br /></div>
<h3>
<b>Run Flagged Threads To Cursor</b></h3>
<div>
When you are doing multi threading programming it can be useful to put a breakpoint and break when all the selected threads arrive at a specific code location. You can then use the <b>Parallel Stacks</b> to explore all the stack calls, <b>Tasks</b> to explore the status of all the tasks and the <b>Parallel Watch</b> window to analyse the values of variables. You can also freeze some threads.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5puoXKq37qcu_KQHa5q16swccGa-d0dAeURIaCsVBxWQOg9h4DYO7lT5znNcZEGuVu0dfwG5DKHeIJo090K0uTPXWBhCHyf7zdDLT1FBU1FGowgryDIj_viLJQZN2idp5AEzV-E9R8Nc/s1600/2014-05-23+00_26_27-LearnDebug+(Debugging)+-+Microsoft+Visual+Studio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5puoXKq37qcu_KQHa5q16swccGa-d0dAeURIaCsVBxWQOg9h4DYO7lT5znNcZEGuVu0dfwG5DKHeIJo090K0uTPXWBhCHyf7zdDLT1FBU1FGowgryDIj_viLJQZN2idp5AEzV-E9R8Nc/s1600/2014-05-23+00_26_27-LearnDebug+(Debugging)+-+Microsoft+Visual+Studio.png" height="304" width="640" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-66181512918121788132014-05-04T19:07:00.000+01:002014-05-25T13:18:01.838+01:00Thank you BASIC!The first of May 2014 was the <a href="http://blogs.msdn.com/b/vbteam/archive/2014/05/01/happy-50th-birthday-basic.aspx">50th Birthday of BASIC</a>.<br />
<br />
I couldn't resist the temptation to write a post on it because <a href="http://en.wikipedia.org/wiki/BASIC">BASIC</a> has been my <a href="http://www.andreaangella.com/2010/08/first-program-i-wrote.html">first programming language</a> and I have used it for more than 9 years. Seriously? Yeah :)<br />
<br />
Actually, I didn't write BASIC programs on a PC but on <a href="http://en.wikipedia.org/wiki/Casio_graphic_calculators">Casio calculators</a> using a variant called <a href="http://en.wikipedia.org/wiki/Casio_BASIC">Casio BASIC</a>.<br />
<br />
This was the power of my first programming language :)<br />
<blockquote class="tr_bq">
<i>Casio graphic calculators use a BASIC-like programming language but variable names are restricted to single letters A-Z which are shared by all programs including subroutines which are stored as separate programs. This means there are no local variables, they are all global. These variables are also shared by other functions of the calculator. For example, drawing a graph will overwrite the X and Y values.</i></blockquote>
<div>
Everyone who grow up with me knows that I never walked without my calculator in my pocket. I was a true <a href="http://en.wikipedia.org/wiki/Geek">geek </a>:) Most of the time I used to create games for my friends: board games, card games, strategy games, casino games and so on. They were pretty popular!</div>
<br />
The first 5 years I only coded on the Casio calculators. Then I got a PC and I also started to write code with Visual Basic and C/C++. However, I didn't have a laptop so I continued to write code on the calculator for other 4 years so that my friends could play on the train.<br />
<br />
<a name='more'></a><br /><br />
I owned a <b>Casio FX-7400 G</b>, then a <b>Casio CFX-9850GB Plus</b> and then the amazing <b>Casio Algebra FX 2.0 Plus</b>. I had them all! A brand new calculator was my favourite Christmas present. More processing power, new memory, a bigger display and a better language opened new possibilities. You can't imagine how happy I was when I found the random function. Before, I had to create my own random function.<br />
<br />
When I started university I got the monstrous <a href="http://education.ti.com/en/us/products/calculators/graphing-calculators/voyage-200/features/features-summary"><b>Texas Voyage™ 200</b></a>: the ultimate calculator. Most of the programs I wrote on the Texas calculator were not games but engineering programs. The language was a variant of basic called <a href="http://en.wikipedia.org/wiki/TI-BASIC">TI-BASIC</a>.<br />
<br />
Reflecting back I created code in BASIC throughout most of my life. This is pretty phenomenal.<br />
<br />
Thank you BASIC for the great fun!<br />
<br />
Happy birthdayAnonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-28137621615529069152014-05-03T17:42:00.001+01:002014-05-03T17:42:32.909+01:00Becoming an Outlier: Reprogramming the Developer MindI finished to watch an awesome course on <a href="http://pluralsight.com/training/">Pluralsight</a> from <a href="http://www.outlierdeveloper.com/about/">Cory House</a><br />
<ul>
<li><a href="http://pluralsight.com/training/courses/TableOfContents?courseName=career-reboot-for-developer-mind&highlight=cory-house_career-reboot-for-developer-mind-m1-intro!cory-house_career-reboot-for-developer-mind-m5-challenges!cory-house_career-reboot-for-developer-mind-m3-image!cory-house_career-reboot-for-developer-mind-m4-trajectory#career-reboot-for-developer-mind-m1-intro"><b>Becoming an Outlier: Reprogramming the Developer Mind</b></a></li>
</ul>
<div>
This course is not intended for everyone but only for the people who really love their work and want to become the best they can be.</div>
<div>
<br /></div>
<div>
Cory created a website to lunch a movement of developers who don't want to be average!</div>
<div>
<a href="http://www.outlierdeveloper.com/">http://www.outlierdeveloper.com/</a></div>
<div>
<br /></div>
<div>
The <a href="http://www.outlierdeveloper.com/manifesto/">manifesto</a> contains three simple statements:</div>
<div>
<ul>
<li><b>I’m not interested in being average. I’m out to be exceptional. </b></li>
<li><b>I’m not waiting to be picked. I’m actively creating opportunities. </b></li>
<li><b>I’m commanding my time so I can own my trajectory and maximize my impact.</b></li>
</ul>
</div>
<div>
I really like the quotation he used to describe himself.</div>
<blockquote class="tr_bq">
<span style="color: #333333; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 16px; line-height: 20px; white-space: pre-wrap;"><i>"If it’s work, we try to do less. If it’s art, we try to do more." - Seth Godin</i></span></blockquote>
<blockquote class="tr_bq">
<i><b><span style="color: red; font-size: large;">Software is my art. </span></b></i></blockquote>
<div>
He really inspired me. Are you?</div>
<div>
<br /></div>
<div>
<span style="font-size: large;"><a href="http://pluralsight.com/training/courses/TableOfContents?courseName=career-reboot-for-developer-mind&highlight=cory-house_career-reboot-for-developer-mind-m1-intro!cory-house_career-reboot-for-developer-mind-m5-challenges!cory-house_career-reboot-for-developer-mind-m3-image!cory-house_career-reboot-for-developer-mind-m4-trajectory#career-reboot-for-developer-mind-m1-intro">Watch the course and join the movement.</a></span></div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-61066723866522230712014-03-29T19:33:00.003+00:002014-03-29T19:33:55.966+00:00Advanced Algorithms #1 - Union/Find on Disjoint-set Data Structures.<b>Code</b><br />
<a href="https://github.com/angellaa/AdvancedAlgorithms">https://github.com/angellaa/AdvancedAlgorithms</a><br />
<br />
<b>Webcast </b>(in Italian)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/vDotBqwa0AE?feature=player_embedded' frameborder='0'></iframe></div>
<br />
<b>Slides</b><br />
<b><br /></b>
<iframe frameborder="0" height="400" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/32890410" width="476"></iframe><br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0tag:blogger.com,1999:blog-3339062625442125125.post-47139182803473792032014-03-25T09:00:00.000+00:002014-03-09T09:07:54.871+00:00Advanced Algorithms #1 - Union/Find on Disjoint-set Data StructuresQuesta serie di WebCast ha l'obiettivo ambizioso di aiutarti a costruire competenze algoritmiche avanzate e farti diventare un Top Coder! In ogni lezione, risolveremo insieme un problema complesso per maturare nel tempo un arsenale di tecniche che potrai riutilizzare nell'affrontare qualunque tipo di problema.
Scriveremo algoritmi che spesso non sono neanche affrontati in corsi universitari come Depth First Search, Breath First Search, Convex Hull, Kd-Trees, Max Flow, Radix Sort, Suffix Array ecc.
Buon divertimento :)<br />
<br />
Registrati alla prima sessione: <b>Union/Find on Disjoint-set Data Structures</b><br />
<br />
<a href="https://www.eventbrite.it/e/biglietti-advanced-algorithms-1-unionfind-on-disjoint-set-data-structures-10743452957?ref=ebtnebregn" target="_blank"><img alt="Eventbrite - Advanced Algorithms #1 - Union/Find on Disjoint-Set Data Structures" src="https://www.eventbrite.it/custombutton?eid=10743452957" /></a>
<br />
<br />Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.comtag:blogger.com,1999:blog-3339062625442125125.post-42866802938880582552014-03-09T22:46:00.000+00:002014-03-09T22:46:58.890+00:00Kindle Book Summary CreatorI am a proud owner of a Kindle device and I love reading books.<br />
<br />
While I am reading a book I always highlight the sentences that I consider more interesting. When I finished a book, I found very useful to copy all the highlights in a notepad to create a summary of the book (usually I save them in <a href="https://workflowy.com/">workflowy</a>). In same cases, for really interesting books, I often turn the summary to a blog post.<br />
<br />
I created a very simple application that helps me to automatically extract highlights from all my kindle books. It is open source and you can find it in this GitHub repository: <a href="https://github.com/angellaa/KindleBookSummaryCreator">KindleBookSummaryCreator</a>.<br />
<br />
It is straightforward to use:<br />
<br />
<b><span style="font-size: large;">1. Connect the Kindle to your PC</span></b><br />
<br />
<b><span style="font-size: large;">2. Run the application</span></b><br />
<br />
The clipping file should be automatically detected. If not, click the <b>Detect</b> button.<br />
Specify the output folder.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYxXH8UZkR3dgE69rjg4ejXhmGHjJbxZ0V03wWqy138-btjPAvd3M9kTDt21mituEFvb5gLMpyeO5jIsFBz8Q7jByRHNo6-4Dpm-tB834QTSEBEJjRhE_f6xumpp6qSHrDFgPDHrXTWg/s1600/2014-03-09+22_33_54-Kindle+Book+Summary+Creator.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgYxXH8UZkR3dgE69rjg4ejXhmGHjJbxZ0V03wWqy138-btjPAvd3M9kTDt21mituEFvb5gLMpyeO5jIsFBz8Q7jByRHNo6-4Dpm-tB834QTSEBEJjRhE_f6xumpp6qSHrDFgPDHrXTWg/s1600/2014-03-09+22_33_54-Kindle+Book+Summary+Creator.png" height="190" width="320" /></a></div>
<div>
<br /></div>
<div>
<b style="font-size: x-large;">3. Click START</b></div>
<div>
<br /></div>
<div>
The output folder will open automatically. For each book, there will be a text file with all your highlights.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4dgY8UqQqob3rb_WeL2DreC5uD2SPdpm3oNkazQEakQ86SWDfptfZf52dLnv0aBZwhGuffuRjagMuLeUdDca2Xejl-2I8WJ4OWKKAlRGVCqdLtHrZx-TpYJa1ECLnD4b1DqaUNMdJbF8/s1600/2014-03-09+22_38_37-Summaries.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4dgY8UqQqob3rb_WeL2DreC5uD2SPdpm3oNkazQEakQ86SWDfptfZf52dLnv0aBZwhGuffuRjagMuLeUdDca2Xejl-2I8WJ4OWKKAlRGVCqdLtHrZx-TpYJa1ECLnD4b1DqaUNMdJbF8/s1600/2014-03-09+22_38_37-Summaries.png" height="376" width="640" /></a></div>
<div>
<br /></div>
<div>
I hope you can find this little application useful as it is for me.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/16030164472457151873noreply@blogger.com0