Tagged: jeff atwood Toggle Comment Threads | Keyboard Shortcuts

  • danielsaidi 9:03 pm on January 20, 2012 Permalink | Reply
    Tags: afferent coupling, cvs, , efferent coupling, , , jeff atwood, kinect, , , stack overflow, tim huckaby, windows 8   

    Øredev 2011 in the rear-view mirror – Part 5 

    Øredev logo

    This is the fifth part of my sum-up of Øredev 2011. Read more by following the links below:

    So, yeah…this sum-up was supposed to be a rather short thing, but has grown out of proportions. I will try to keep it short, but the sessions deserve to be mentioned.


    2:7 – Greg Young – How to get productive in a project in 24h

    In his second session at Øredev, Greg spoke about how to kick-start yourself in new projects. First of all, do you understand what they company does? Have you used your the product or service before? If you do not have an understanding of these fundamental facts, how will you deliver value?

    Then, Greg described how he quickly get up in the saddle. He usually start of with inspecting the CVS. Project that have been around for a while and still have tons of checkins, could possibly be suffering from a lot of bugs. Certain areas that are under the burden of massive amounts of checkins could possibly be bug hives.

    Note these things, it could quickly tell you where in the project it hurts. Naturally, a lot of checkins do not automatically indicate bugs or problems. The team could just be developing stuff. However, it will give you someplace to start. At least, a lot of checkins do mean that someone is working in that particular part of the project.

    These are very simple steps to take, but to actually be able to discuss the project after just an hour or so with the CVS, and maybe even pin-pointing some problems, will give your customer the impression that you are almost clairvoyant…or at least that you know what you are doing, which is why they pay you.

    If the project is not using continuous integration, at least set it up locally. It does not take long and will help you out tremendously. To be able to yell out to someone who breaks the build the second they do it…well, it will give you pleasure at least.

    Greg then went on to demonstrate how you can dig even deeper, and his tool of the day was NDepend. Greg’s demo was awesome, and Patrick should consider giving him…well, a hug at least. I, who without that much success demonstrated NDepend in my organization a while back, could quickly tell that I have a long way to go in how you present a tool to people.

    With NDepend, Greg demonstrated how to use the various metrics, like cyclomatic complexity and afferent/efferent coupling. He went through the various graphs, describing what they do and how they can be used and told us to specially look out for black squares in the dependency matrix (they indicate circular references) and concrete couplings (they should be broken up).

    All in all a very, very great session that also gave me a lot of things to aim for when holding presentations myself. As a consultant, you should not miss this video.


    3:1 – Keynote – Jeff Atwood – Stack Overflow: Social Software for the Anti-Social Part II: Electric Boogaloo

    I will not attempt to cover everything said in this keynote. Instead, you should go here and wait for the video. It is filled with fun gems, like when Jeff describes how stuff that are accepted in a web context would be really strange if applied in real life. For instance, FB lets you keep a list of friends. Who has a physical list of friends IRL?

    Anyway, Jeff spoke about gamification and how we can design our service like a game, using a set of rules to define how it is meant to be used, award those who adapt to the rules…and punish the ones that do not. The basic premise is that games have rules and games are fun…so if we design our web sites as games, they should become fun as well.

    Well, at least, rules drastically simplifies how we are supposed to behave. It tells us what to do. Sure, it does not work for all kinds of sites, but for social software, gamification should be considered. Games, in general make social interaction non-scary, since everyone has to conform to the rules. Just look at the world, and you will know that this is true.

    So, when designing Stack Overflow, Jeff and Joel did so with gamification in mind. You may not notice it at first, but everything there is carefully considered. For instance, people use to complain that you cannot add a new question at the very start page. This is intentional. Before you add a question, Stack wants you to read other questions, see how people interact and learn the rules.

    Stack adapt several concepts from the gaming world. Good players are awarded with achievements and level up as they progress. There are tutorials, unlockables etc. Without first realizing it, Jeff and Joel ended up creating a Q&A game that consists of several layers:

    • The game – ask and answer questions
    • The meta-game – receive badges, level up, become an administrator etc.
    • The end-game – make the Internet a little better

    This design makes it possible for Stack Overflow to allow anonymous users, unlike Facebook who decided to only allow real names in order to filter out the “idiots”. Since Stack Overflow award good players, bad players are automatically sorted out. The community is self-sanitizing. People are awarded with admin status if they play good enough. It’s just like Counter Strike, where you are forced to be a team player. If you are not, the game will kill you 🙂

    I could go on and on, but Jeff says it best himself. Although some parts are simply shameless Stack commercial, I recommend you to check out the video.


    3:2 – Tim Huckaby – Building HTML5 Applications with Visual Studio 11 for Windows 8

    Tim has worked with (not at) Microsoft for a loooong time and is one charismatic guy, I must say. What I really appreciated with his session was that it seemed a bit improvised, unlike most sessions at Øredev. What I did not like quite as much, though, was that it seemed too improvised. Due to lack of time and hardware issues, Tim failed to demonstrate what I came to see – HTML5 applications with VS11.

    Tim begun with stating that he hates HTML…but that he loves HTML5, which is “crossing the chasm”. This means that it is a safe technology to bet on, because it will be adapted. How do we know? Well, the graph below illustrates when a technology is “crossing the chasm” in relation to how people adapt it:

    The Chasm Graph :)
    So when a technology is “crossing the chasm”, get to work – it will be used 🙂 I wonder how the graph would have looked for HD-DVD? Tim also thanked Apple for inventing the iPad (which he calls a $x couch computer). Thanks to the iPhone and the iPad, Flash and plugins are out and HTML5 is in.

    Large parts of the sessions were fun anecdotes, like when he spoke about how Adobe went out with a “we <heart> Apple” campaign and Apple responded with an “we <missing plugin> Adobe”. Hilarious, but did we learn anything from these anectodes? Well, time will tell.

    • Tim went through some browser statistics, explained why IE6 is still so widely used (damn those piracy copies of Win XP in China)…and ended up with some small demos, but faced massive hardware problems and promised us some more meat if we stayed a while. I stayed a while (I even attended the next Tim session) but the demos were not that wow.

    So, how did Tim do in his second session? Read on!


    3:3 – Tim Huckaby – Delivering Improved User Experience with Metro Style Win 8 Applications

    Tim started this session talking about NUI – Natural User Interfaces and some new features of Windows 8, like semantic zoom, a desktop mode behind Metro (it looks great, just like Win 7!), smart touch and…a new task manager (he was kinda ironic here).

    Tim demonstrated Tobii on a really cool laptop with two cameras, which allow it to see in 3D.  The rest of the session was…enjoyable. I cannot put my finger on it, but I had fun, although I was disappointed at what was demonstrated. The Kinect demo was semi-cool, a great Swedish screen was also interesting and Tim also hinted about how the new XBOX Loop and a new Kinect will become a small revolution.

    I really do not know what to say about this. Watch the video. You will have fun.

  • danielsaidi 7:45 am on January 17, 2012 Permalink | Reply
    Tags: azure, cdn, jeff atwood, marc mercuri, , , service bus, udi dahan   

    Øredev 2011 in the rear-view mirror – Part 4 

    Øredev logo

    This is the fourth part of ny sum-up of Øredev 2011. It has taken quite a long time to get this summary finished…so I will write a bit less about each session in this finishing post and refer to external resources instead of spending a lot of lines describing products and concepts.

    For more Øredev, check out the previous parts in this sum up as well:

    Okey, here we go…but first, I believed that I would be able to cover all remaining sessions in this post, but I will not. There will be a fifth part…and possibly a sixth.


    2:4 – Udi Dahan – Who needs a Service Bus anyway

    Udi Dahan, founder of NServiceBus, had a nice session about why we should consider using a service bus. He begun with the history of the service bus, speaking about CORBA, the rise and fall of the Broker architecture and how a service bus differ from a broker (a broker is in the middle of everything, a service bus is everywhere).

    A bus is distributed everywhere, plugged into each part of the system. There is no remoting, since none is needed. While a broker is in the middle, tying everything together, a bus communicates with messages and makes sure that all subscribers receives the messages they should receive.

    Udi finally demonstrated NServiceBus and how to set it up in various ways. The demo was pretty cool, but hard to describe, so if you have not checked out NServiceBus, or any other buses for that matter, make sure to do so. They are great for certain tasks.


    2:5 – Jeff Atwood – Creating a Top 500 Internet Website in C# for Dummies

    When you publish your kick-ass web site for the world to see and use, how do you optimize it to stand the traffic? Jeff knows, and shared his four greatest means of optimization:

    • Static content
    • Reverse proxy
    • Multitenancy
    • Caching

    A CDN (Content Delivery Network) is a must have. If you do not want to use a cloud-based service like Amazon S3, at least put your content on a simply configured server of your own, separate it from your logic and you’ll be able to distribute your content over the world, grabbing the one closest to your users when they require it.

    A reverse proxy distributes incoming requests over a number of internal servers. With load balancing capabilities, it can drastically improve the amount of traffic your site can handle. Just make sure to make it sticky, if a client has to be redirected to the same server for each request.

    Multitenancy means that one application does many things. Having several applications on one server makes each perform more poorly than if one is configured to do several things. So, have one application handle several sites and services and you’ll be off to prestanda heaven.

    Caching means…well, yeah, we all know. The issue is how to cache. Having one cache per server may cause inconsistency, but one that is shared by all may cause poor performance. Jeff use MySQL for cache storage. He has one per app and one that is shared by all and syncs with the individual cache instances.

    Jeff also spoke about serialization and how you must consider your serialization options – binary serialization may crash if the assembly changes and xml may be CPU intense. A final piece of advice was to design your systems as if you have a farm, caching etc…even if you do not have one at the moment.

    A great, but intense session. I hope my description gave it justice.


    2:6 – Marc Mercuri – Cloud First Services

    Marc covered a lot of information in his session. He started of with stating that you must adapt a completely different mindset when you develop for the cloud (how come these Americans make such obvious things sound smart when they say it?) and design all new applications as if they are to be run in the cloud.

    Marc went through various hosting alternatives (on premise, cloud-based and partner hosted) and some of the popular service models:

    • Infrastructure as a service (Amazon EC2 etc.) – you get a server somewhere and do the rest yourself
    • Platform as a service (Azure, AppEngine etc.) – a configured environment to which you add your applications
    • Software as a service (nuff commercial 🙂 – free or commercial software, ready to be used by you and others

    If we break down our services into well-defined capabilities, workloads, solutions, roles and services, we will be able to:

    • scale them independently of eachother
    • replace one service with another one with the same capabilities
    • move, exchange or delete one service, without making the rest fail

    With cloud-based services, we must think async for all tasks, designing them to be stateless and always assume that services we use will not be available at the moment. Designing your services this way will prepare them for what will come – services that are not available at the moment 🙂

    And now for some great advice in clutter form. Use distributed cache, queues, external data storage etc. and you will be able to easily scale out when you create that killer-app that the whole world wants to use. Consider your storage alternatives. Some data is perfect to store in a relational database, while other may fit better in a NoSQL or BLOG storage. Boost availability with redundancy (multiple instances) and resiliency (how to recover).

    And finally, some final words of wisdom:

    1. Moving to the cloud is NOT equivalent to designing for the cloud
    2. Believing that moving to the cloud means moving all or nothing, is plain wrong
    3. Platform SLA:s are not Application SLA:s. Assuring uptime does not mean covering your application logic.
    4. Bad applications will not behave better in the cloud.
    5. Support and operations are not automatically automised

    Phew, not bad for a one hour session, huh? And then, I have even excluded the Azure-specific parts.

Compose new post
Next post/Next comment
Previous post/Previous comment
Show/Hide comments
Go to top
Go to login
Show/Hide help
shift + esc