Posts

Showing posts from May, 2013

Building the best high tech company to work for by Kent Alstad @kentalstad #devsum13

Speaker deck:  http://devsum.se/wp-content/uploads/2013/06/Kent-Alstad-The-Best-Company-to-Work-For.pdf Happy people tend to be more productive people. In the 100 best companies to work for, we find highly profitable companies, such as Google. Why is it, that happy companies produce better results? Happy people get more engaged . Employees who feel engaged, tend to do better jobs and are more willing to put in the extra hours. Another thing about engagement, is retention. People are less likely to leave a company that they are engaged in. For consultant companies, this is important, since you don't want your consultant to leave you for your customer. In a product company, engagement can be the difference between a successful product, or no product at all. The thing is, that engagement also renders more profitability. The companies at the top of the best workplaces to work for, actually make more money than the average company. It's okay to be happy at wor

Guerrilla Framework Design by @TheCodeJunkie #devsum13

If your framework doesn't have a user friendly API and offers functionality that others do too, users will naturally prefer the other framework. Thus, the API is important from a developer usage point of view. By using dynamics and implicit casts, Nancy is very approachable. public class Module : NancyModule {     public Module()     {         Get["/greet/{name}"] = x => {             return string.Concat("Hello ", x.name );         };     } } Nancy uses a AppDomain scanner to find types of pluggable interfaces in the app domain, which means that all the user needs to do, is to implement an interface to add a feature. No registration required. This also enabled the Nancy team to break out non essential functionalities into separate nugget packages, distributing a very slim core package by default. Using a Bootstrapper, users of Nancy are able to replace core functionalities in the framework by simply inheriting from the Defaul

Beautiful Builds and Build Patterns by Roy Osherove @RoyOsherove #devsum13

Automate All The Things Beautiful Builds My book -  Beautiful Builds  - contains common patterns that we use in automated builds. What if I told you, that you could only compile code every three weeks? It'd feel weird, right? Three weeks of compilation issues to be solved in one day. Quite dramatic day, full of havoc. Obviously, this is not a good idea. Luckilly, this is not the case - we have tools that basically recompiles our code all the time. We find issues as we write, we fix them and everything is fine. What if i told you, that you could only test every three weeks? You write code for three weeks, and then you test and find that stuff you wrote a week ago doesn't work. TDD and testing approaches in general work well for these scenarios. We have realised for some time now, that we need to test more often. So it works on your machine. Great! What about your customers' machines? What about on the server where it is supposed to run? This is what contin

Notes on RealTime RTC by @ulfbjo #devsum13

Ulf starts off by showing all the platforms the  XSockets framework  executes - .NET, Mono, hosted in Azure. He then recommends us all to  check out Chocolatey  (in general), and as way to  install an XSockets server . Ajax is great, but continually polling a data source is a real waste of resources, says Ulf. For sparse updates, however, Ajax is still great.  For realtime data scenarios, Ulf promotes the use of Web Sockets. However, many implementations of Web Sockets are chatty in the fact that they send notifications to clients whether or not the clients want the messages or not, forcing the clients to filter out messages themselves and using more bandwidth than necessary. Ulf then starts a new plain MVC4 Web Solution, runs Install-Package XSockets and writes some simple JavaScript that binds to the XSockets GenericController, which manages the subscriptions. To create a new controller, Ulf invokes the package manager console again -  Scaffold XSocketController Zoo -pro

My notes on Real World Windows 8 by @john_k_waters #devsum13

By binding your view's DataContext to the Application's View Model, you can bind subsequent elements to more specific view models (members of the AVM). Background tasks Windows 8 RT only executes your app when it's in the foreground. However, you are able to do background processing through  Background Tasks . To create one, you create a new Windows Runtime Component project. Pick your name carefully, as it'll turn into the namespace you latter will need to reference in your app. In your UI app, you add a reference to your Runtime Component, in which you simply implement IBackgroundTask. Your background task can get invoked on a Timer, be configured to Play Audio and much more. Finally, your background task needs to be registered through your UI app. You can set timer intervals and system dependencies - such as only execute the task if we have internet connection. Digging deeper, we see that it supports the following triggers with the addition of condit

Notes on Natural Interfaces with @sarahkjork #devsum13

Sarah starts off her presentation, asking if anyone in the audience had seen  Minority Report . Just as Tom Cruise controlled his system, not using mouse and keyboard, but by "owning it" by motioning and gesturing, it's now possible to design systems, that utilises available sensor technology to do that very same thing. She then proceeds to show off the Kinect camera, pointing out its hardware capabilities and showing off the  Kinect toolkit that  is supplied by the Kinect SDK . The Kinect SDK supports up to 4 connected Kinects. On the  SkeletonFrameReady -event (called 30 times per seconds), we get skeleton data. Using the Kinect Sensor's  CoordinateMapper.MapSkeletonPointToDepthPoint , we can get a canvas position from the normalised values that is returned from the sensor. Sarah continues on to show a  Speech control system , featuring controlling a turtle with basic voice commands (walk forward, backward, left, right). For speech recogniti

TypeScript - bringing order to JavaScript with @herkommer #devsum13

Speaker deck:  http://www.slideshare.net/herkommer/ts-devsum2013 Michael has a background as a back-end developer. He's previously been against the idea of JavaScript because of its appeared lack of structure. What caught his interest with TypeScript, was that it introduces structure and order to JavaScript, making it look appealing to a C# developer. More and more well structured frameworks such as jQuery and Knockout also lowered the barrier to entry to the JavaScript world. The fact that all of these frameworks also is maintained as open source projects, makes it easier to absorb and to contribute to. Node.js contributed to my interest in JavaScript. It's a very impressive project where you run JavaScript on the server side in a well structured and highly scalable manner. Michael is heavily pushing Knockout, a prominent MVVM library for JavaScript. CommonJS, RequireJS and AMD are three modules we use heavily in TypeScript to manage type dependencies. All brows

Notes from #DevSum13's #PreConf, featuring @shanselman & @TessFerrandez

As the session starts, Scott shows off his 1337 skills by showing us hackertyper.com . There is one  ASP.NET. Therefore, fights over whether to use WebForms or MVC is contra-productive - use what makes sense for your project! The web team is working on simplifying the File/New Project screen, by reducing the number of choices you have to make up-front. If you want to build a web project, you should be able to just pick that option, and then add features as you go - a Web Forms section for for your admin UI, a MVC section for your client-facing views and a WebAPI section for your API, for example. Putting new project templates into Visual Studio should be as easy as creating NuGet packages . Furthermore, the team is juggling the idea of putting in favourites, so that your company can create custom templates (just like you can set up custom word templates), making in-house development even more straight-forward and streamlined. The 2012. N releases are quarterly releases o