There is really no hard and fast rule for recording technical debt, some people do it on their bug trackers, others in their agile/kanban boards, storing it in a text file with the code is another way. The reason why this can be helpful is because technical debt can be committed with the code, also code can be reviewed with it, giving it extra context. You could simply record this in a file as separete paragraphs, however I have been thinking that standardising the format might help. This template is somewhat inspired by this article, I was compelled to introduce...
It has been a long time since I posted anything here. I recently had the pleasure of giving a talk at Middlesex University, for students at the start of their CS degree. It was a really nice experience. I was wondering what would be useful things for them to hear and wound up talking to them a little about: Languages/runtimes: Pascal, Delphi, VB, .net and the JVM. OO and FP Tooling and how much it changed over time and then I mentioned a few things that I think I would have liked to know: The importance of learning to read...
If you are working with intellij and gradle you might at some point hit the Initialization error : “java.lang.AssertionError: Java Assertions should be disabled!” this is becasue intellij doesn’t import this setting from gradle. To disable it go to Run -> Edit Configurations… in VM options remove -ea Removing this option means we are not checking for assertions sometimes external libraries use this.
I was playing around with a small function in Scala and found it kind of interesting that you can express the same thing in different ways. We are writting a function that will fold over a string an accumulate on running parensToFloor a function that looks like: def parensToFloor(c:Char): Int = ??? The most common way to write this function would be: def myFn1(s:String) : Int = { s.foldLeft(0)((x,y) => x + parensToFloor(y)) } What would it look like point free? I arrived to a few options that didn’t work : def myFnx(s:String) : Int = { s foldLeft 0...
For the first post of the year, a short post on something I keep forgetting, hopefully it will help someone else. With Visual Studio Code, a performant fork of Atom, if you want to use F# then you are probably using Ionide-fsharp extension with Ionide-FAKE and Ionide-Paket. Some aspects of these extensions make this really easy to use for people who are used to the F# environment, but slightly less to the person starting off on F# on a *\nix system for the first time. Such cheatsheet Alt+enter to send to F# interactive is a great example of something really...
WHY TYPES AREN’T VERY IMPORTANT , a talk by Michael Feathers This was a talk at the FP User group. Michael proposed that types are about ergonomics. He proposed that they are not inherently good or bad, but that it depends on the problem and the personal choice, with much more detail that this. It is also quite relevant to keep in mind that Michael has a lot of milage on legacy code bases. I find that a sane aproach when thinking about types is to think of them in terms of some sort of set of things. Going beyond...
I wrote a little bit about type providers here but I haven’t in a while and the time has come to check them out again. The problem Let’s say that I want to use the Giphy API, which gives back data in json format including a (generally funny) gif. From F# we could take advantage of type providers to avoid a bunch of boiler plate code. A concrete solution On an F# script file add a reference to Fsharp.Data nuget package. In the Giphy website you can find the base url and the key to make a request. Use the...
I mentioned in a post yesterday that I was looking for a programming languages database with this minimum info: Programming language name (and family if it has one .i.e. OCaml and the ML family of languages) When it first appeared (anywhere outside of someone’s mind), and when it was first published (if ever) Designer and anyone else involved and level of involvement. some tags (ie paradigm, typed or untyped?, etc) Influenced by / influenced. I got some good responses on twitter, thanks to all of you who responded. The one closest was this one from Dmitry Geurkov (@dgeurkov) Where he...
As I try to understand the history of programming languages I am building a time-line with paradigms and families of the programming languages I learn about. I can’t help but wonder why there isn’t (or perhaps maybe I can’t find) some sort of catalog with all this information, it seems like something we could have available, but we don’t. Something as simple as language name, what other languages influenced it, who worked on it. Anything else that could be useful is a bonus. Do you know of something like that? The closest I have found is Wikipedia, but that doesn’t...
This post is a (not so short) summary of the wonderful 1972 paper entitled: “Programming Languages: History and Future” by Jean Sammet[1]. She is not only one of the first (computing science) historians but also a language creator. The paper is written in a highly enjoyable style and if you are remotely interested in programming, reading it is surely going to reward you. This paper focuses in the historical development of the languages and their interrelations. The key piece in this paper is the chart below where the relationships between programming languages is shown. The graph makes more sense with...
I guess I am one of those people that really enjoy this time of the year, so I had to add another post. This is a sneaky(?) second post for #FsAdvent. Ready for some more computation expressions? In the previous post I introduced a definition and parts of a computation expression, as well as one of the simplest example. The beauty of reality I started looking at computation expressions because I was trying to deal with the “C#-F# design mismatch”(™) (yes I just made discovered that up) meaning that I wanted to deal in some nice ways with the fact...
It is that time of the year, and #FsAdvent is now an event we all look forward during the happy season :D. My contribution to it is this write up about computation expressions. Why? I guess it is kind of hard to learn something if you don’t know what to use it for. Some well known usages of computation expressions are asynchronous programming or creating DSLs. They allow you to determine the semantics of your code, in short, you can decide how your code gets executed. Having a computation do some of the heavy lifting behind the scenes can dramatically...
Some stuff I have been looking at today that you might find interesting Having fun with type level numbers by using a type provider Excellent post that I have been meaning to read about implementing a type provider for primer numbers, complete with the explanation on primes and type provider implementation. Really the making illegal states unrepresentable . Nested looping to programmatic depth in F# This post comes to a solution to the lack of break and return in F## by solving the similar problem we did in a recent Functional Kats meetup The first time I thought when I...
F# Gotham stared on the morning of the 16th of October at Jet’s Offices (lovely views of the city) I saw the very start of Riccardo Terrel’s tutorial on Reactive and Concurrent F#. He was covering the practical aspects of writing safe concurrent programs, and how to do that with functional programming languages, in particular F# . Sadly I was rehearsing my talk. From the distance it looked fun. Then it was my turn, I talked about Computation Expressions, the idea of this talk is to introduce them, trying to demistify them a little bit with the help of awesome...
Functional Kats: Kata review {highlight FSharp} let isPrime x = match x with | 2 | 3 -> true | x when x % 2 = 0 -> false | _ -> let rec superPrimeCheck i = match i with | i when x % i = 0 -> false | i when x < i*i -> true | _ -> superPrimeCheck (i + 2) superPrimeCheck 3 isPrime 1 let oneM = 1000000 let checkStuff maxNumber = [2..10000] |> Seq.ofList |> Seq.filter(fun x-> isPrime x) |> Seq.fold(fun acc x -> if (isPrime acc && acc <= maxNumber)then printfn "found %A"...
Lately I have been working on the port for our game Onikira: Demon Killer (very very close to release by the way)… it is a lot of work but hopefully good stuff for everyone will come out of that, namely the port of the Duality Game engine and all dependencies to Android… if you want to read a little about the chaos of that, you can read the Port Notes (please note, it might make no sense, these are notes that might only make sense to me, if even…). The way we are going about this is to try to...
Yesterday at NDC Oslo I presented a talk about computation expressions, you can find the slides here Computation expression in context : a history of the otter king - Andrea Magnorsky from NDC Conferences on Vimeo. I started a little fp-track NDC Oslo album, https://vimeo.com/album/3452190 (I will add them as they come) All of the code shown during the talk (plus some handy extras) can be found here These are some of the resources used to create this talk, in no particular order Abstraction, intuition, and the “monad tutorial fallacy” The “What are monads?” fallacy Beyond Foundations of F# -...
As you might or might not know to make Onikira: Demon Killer we use an engine called Duality and a few weeks ago we started to port it to android. Starting out As we started we made a list of things that we needed to look at Shaders GLSL All shaders need to be update to min #version 300 Fixed function methods like ftransform need to be removed and replaced with manual multiplication of transformation matrices Shader in and out variables need to be defined for passing data from the app through the vertex shaders and into the fragment shaders...
I spent part of the past week in Poland, I landed in Łódź (if you are not a Polish speaker, look up the pronunciation). Totally extreme friendliness. I felt right at home, maybe there is something to do with my last name :D. Thanks so much for your superb welcome, and once again thanks to Kuba for driving from Lodz to Krakow (I owe you a drink). I think Poland is a great country, I have a lot of respect for countries that take their pastries seriously and with high availability. dev@Łódź I was really curious about how a group...
The awesome Rachel and myself were on Mostly Erlang podcast the other day (it’s not live yet), check it out they have some very cool episodes. Anyway I was there and we were talking about Type providers and I said something around the lines of “type providers generate erased types…” blah. This is not correct so this post is an attempt to cure that mistake. (I could tell you how I woke up at 5am the next morning and realised I said something wrong and someone was there to record it but, don’t worry I won’t). Anyway, what is a...
It has been a while since I used any flavour of Linux as a development environment (so, apologies if I am showing something really obvious). Haskell development in Windows doesn’t seem to be the default :D (Haskell Platform installs and runs super well on Win7 and 8 BTW) but trying to learn in a non recommended environment is probably not a good idea. To that effect I am creating an Ubuntu vm to serve as a development environment for Haskell These are the steps I went through: Install virtualBox Used Vagrant to get a desktop Ubuntu (tho probably it would...
Curiosity killed the cat, good thing cats have 9 lives… I don’t know you, but after using a few programming languages I have too many questions about type systems, some that come to mind: What is a type system? What is a type? Do we need a type system? When do we not need one? What is the relation between type systems and property testing? or is there one? Why is category theory so important in advanced type systems? (I have intuition but no concrete answers yet) Are there pure definitions and implementations for the different types of types systems?...
The title of this post was a bit obscure as I didn’t really know what I was going to do for this entry on the #FsAdvent Calendar Make sure you check out the previous and future entries in the series. For today, I thought we would celebrate with sound, in the Key of F# :D src reddit To that effect we can use OpenAl. To be honest this was a little more difficult to do that it needed to be, mostly because there was plenty of playing around with values to make sure stuff worked and sounded somewhat ok. The...
I have mentioned FAKE (aka F# Make) in pretty much all the talks I have done lately, however I never explained in detail some of the key aspects of this amazing build DSL. FAKE is a build automation system with capabilities which are similar to make and rake. The DSL includes support for: building with MsBuild + xbuild Testing with nUnit, xunit, MSpec Creating nuget packages Ziping resulting files More! Good to know It’s mature. I want my build scripts to be reliable and easy to change, if this was a toy project by someone I would be a little...
I took some notes during CodeMesh a few weeks ago, and here they are. There are a few good talks that I couldn’t attend that are totally worth it, check them out when their videos become available. Last year, CodeMesh showed me a lot of what I felt I was missing. This year was also quite amazing, the talks and people made it totally worth it. These are some notes I took during the talks, not sure they would help anyone, you never know. QuickCheck tutorial shrinking, find hints in shrinks. Mostly deterministic to help you find hints fast when...
This post could also be called:One step forward, two steps backwards. I thought I should rewind a little bit, and have an overview of the game before we continue. The C# version of the game has 9 files and each, each has a class where (generally a component is defined), I decided to change this for the F# version of the game, tho I am not sure type per file is an idiom of F# or not. (Comments on this, really welcome) The idea of doing this port is to show the progression of the code from C# to F#...
As part of the workshop I am preparing to run on a bunch of places in North America, I created a small clone of Breakout and just ported it to F#. I am going to be explaining a little about how the engine works and that will be intertwined with an (hopefully) fun intro to F#. Duality is A 2D game engine that comes with an extensible visual editor. OSS (MIT license). Written on C# and OpenTK. the architecture is built around a plugin system. Follow the link for Adam’s getting started. In the previous post I showed how to...
Duality is a 2D game engine with an extensible editor (If you follow my blog you’ll see it mention it a few times), I added F# Scripting support a good while ago but I haven’t been posting too much about it, I probably should change that. Scripting is not the only way to use F# on this engine, you can also create components with F# and it’s pretty simple. When you run Duality on a folder that has no Data, it creates a solution for plugins by default in Source/Code with two projects: CorePlugin and EditorPlugin. Open the solution and...
F#n and games I am extremely happy to announce that after Strange Loop a conference I am lucky to attend!. I will be going about North America showing off some F# and games! I will in the following user groups Tuesday 23rd September - Nashville NashFP Wednesday 24th September - Washington DC Tuesday 30th September - Toronto I will be updating the details of the times here as I learn about it. I hope to see you there! Game on! It is way more entertaining to learn by doing. To that end we will be using Duality (an open source...
At the moment, and for the last while, I have been working on an awesome game OniKira: Demon Killer (yes we renamed it recently) from the start we wanted to have a one click deploy, and I believe in walking skeletons…, so, I have been working on having a one click build since the beginning of the project and as we are getting closer to a Steam Early Access for the game and need to send different types of builds to different parties this is really starting to pay off. Current Tools This is a list of tools we are...
Recently I was finishing off the great work Carsten started (well pretty much completed, I was just adding the nuget package and change the build so it would build the aformentioned package ) on the Nunit addin for FsCheck and I had to use a not very common feature of Nuget, running powershell scripts automatically on install. Disclaimer: I don’t like powershell, it is better than nothing, but every time I use is harder that it needs to be. Running powershell scripts automatically when installing and removing packages There are a few powershell files that run (if they exists on...
Went to #devSum14 in Stockholm and had a great time. Talked to amazing people and gave my second presentation on F#, people seemed happy about it and had loads of questions :D. If any of you attended and have some questions or feedback I would love to hear about it. Any questions, comments and corrections very welcome as always :D
Why I have been learning F# (and functional programming in general) lately: It’s functional first, so it encourages you to write pure functions and other cool stuff. No more NullReferenceExceptions (wooohoo yeah! PARTY NOISES!!) Amazing type system. Think type inference on steroids and automatic generalization. Tuples: it is great to be able to have multiple results for a function Discriminated Unions Records Moar. There are other f# Types Open source Great community Great interop with C# Cross platform Type providers Forward pipe operator and the opposite It supports imperative and OO paradigms too F# interactive I though it would be...
Recently I saw a post about a simple FSM implementation in F# (link), and that got me thinking about our Behaviour Trees and how simple or complex it would be to implement them in F#. ##What are behaviour trees? There is a longer intro to the topic here and a more extensive one in this paper. What I remember when I think about them is that there are 2 types of constructs: Actions and conditions: Actions are changes in the game world such as animation plays, health decreased, etc. Conditions check certain states of the world. Sequences and selectors: This...
Recently Andrew added C# scripting capabilities to Duality, the engine we are using to build Honourbound. Once we had something working, we started thinking about the fact that it might be pretty simple to add support for [F#][fsh], so we did. A few weekends ago I twitted this: We had a spike working within a few hours with an old version of F# codedom. I spent some time the last few days making it more usable within the editor. How to use If you are like me, you’ll want to try this out as soon as possible, instructions :D Steps...
A week or so ago I was lucky to be in San Francisco for “the” Game Developer Conference, while I was there I was able to meet Mathias Brandewinder, we got to chat about loads of things (and eat some really nice breakfast) two of the many things we talked about were FsCheck and the dojo fractal forest. FsCheck is this really cool Pex like tool, I am trying it out and I could attempt to explain it but Mathias already wrote a great post about it in this post, check it out. You can also use FsCheck with NUunit....
As most developers I have really good and really bad days, it comes with the nature of the job. Lately I have been thinking that I had a lot of bad days, I needed to feel like I was wining and so I solved a small totally unrelated problem, I felt good. It will surprise no one that after that I was able to suck a little less during that day. Solving that little thing gave me a little bit of confidence I needed. This event made me think about he amazing book “Zen and the art of motorcycle maintenance”,...
For a while, I’ve been trying to learn functional programming and after a lot of proding I chose to learn F# this year, the reasons: I though I should learn Haskell, the ideas behind the language are great. I learned a little bit, but, when I tried to build something with a UI or web or a game, the dependencies just weren’t three. And windows support just doesn’t seem to be there. It doesn’t mean I’ll never learn it, but I just want to get learning. F# has a great community, I am looking forward to learning more so that...
TL;DR: It is not everyday that I definitely need to learn from a book. When I got “Game AI pro” I needed to learn as much as possible about practical usage of Behaviour Trees, and it didn’t disappoint. General Review These series of books by CRC show a high level of production. It can be intimidating at first, but you should keep going. The book is a compilation of articles from different authors, the quality and depth varies but is generally high. Having the article on chapter 2 about Neurology was cool to read. It went into more detail than...
Possibly what blew my mind the most last year was attending and presenting at CodeMesh, the conference line-up was impeccable, and of course, the interesting bits happened when talking to people there. Kudos to the organizers for a great conference. Below please find my slides, they probably make no sense without context. I think the interesting parts of the talk are better explained in two posts about game concurrency here and here Some pictures and links: David Turner’s talk is available via this paper “Some history of Functional Programming Languages” Parallella Board, website Yan Cui’s slides Phil Trelford’s video on...
The first Functional Katas happened last Wednesday, out of 29 people who signed up, about 15 turned up. Which is great given that it’s January and cold, and it was raining. An interesting part of going to the kata is that there is no internet access, this is somewhat a problem, at the same time, I kinda liked that extra constraint, perhaps not all the time. There are a few things I learned from being there. I was pairing with Kevin, who was writing Clojure, a dynamic programming language that targets the jvm (I learned later it also can compile...
I decided to keep a mini journal with updates about having a standing desk, I figure a lot of people are thinking about it (like I was) and it might be handy to have this information. Day 1 Today is the first day I am using as standing desk as described in this article . It’s been exciting “building” this. I used the desk without the shelf for about 4.5 hours two days ago and I was tired (though I had a long run before that, so that might be the reason). I used it without the shelf Today is...
I am learning functional programming and the one I am playing with the most is F#. So I was on the look out for something small to do with the language, the other day I saw a tweet from @codebeard where he was asking for some help with a plugin for Sublime for F# Autocomplete, what he has is here. ! I started to poke around with it to see if I can make it work. So far: Find pexpect, I didn’t know what pexpect does. According to the github description it’s a Python module for controlling interactive programs in...
On the interwebz today I found an interesting library that somehow I haven’t heard of before, and it is a few years old, I wonder if the low popularity level is due to it’s unconventional name: [Yeppp!][yeppp] What is it? Yeppp! is a high-performance SIMD-optimized mathematical library for x86, ARM, and MIPS processors on Windows, Android, Mac OS X, and GNU/Linux systems. Yeppp! functions are presented in several versions with optimizations for different processor microarchitectures. During initialization Yeppp! library detects the processor it is running on, and chooses the optimal function implementations. It is also open source with a very...
Continuing from yesterday, I was testing how hard it is to work with two domains, I found this and it seemed like a good starting place. I started moving things around to understand how it all fits together, and soon I started getting remoting errors… it made me think, I really don’t want remoting problems to be a normal type of problems you get when of developing plugins, however is not a dead option just yet. When using external dependencies in a composed application you can get a ComposablePartException temporarily I added the dependency to the main project but I...
The last few days I’ve been playing with MEF. MEF is pretty cool, it allows you to recompose your application on the fly so I thought I should try it, I ended up looking at “The Way of MEF”, a series of samples from Glenn Block, pretty good to look at some code and understand what can you do in a clear way. I wish there was a video to go with it because you get the sense that he had a lot to say while those slides were rolling. Anyway, the samples were great, I think there are better...
I have moved my blog from wordpress to Jekyll. It was a process a little bit longer than I expected and I am not done with it, but I’m glad to have started the process. Check out the Jekyll docs for more info on how to get the most out of Jekyll. File all bugs/feature requests at Jekyll’s GitHub repo.
The WordPress.com stats helper monkeys prepared a 2013 annual report for this blog. Here’s an excerpt: The concert hall at the Sydney Opera House holds 2,700 people. This blog was viewed about 31,000 times in 2013. If it were a concert at Sydney Opera House, it would take about 11 sold-out performances for that many people to see it. Click here to see the complete report. I m moving the blog over to github, the transition involves more steps than I would like, but still I think it will be worth it. If you want to see how it’s going...
So, while I was trying to implement the double buffer (previous post available here) I started thinking about perhaps a simpler implementation with one of the concurrent collections, so I tried with a ConcurrentQueue<T>. The idea behind it is pretty simple. Instead of having the two collections of RenderCommand we have a ConcurrentQueue<RenderCommand[]> so we think of each of the elements of the queue as a frame, ready to be rendered. As before, we are starting off with the primitives3DWindows sample. A bit obvious, but, we’ll need to initialize the queue on the constructor of the Renderer class(I just thought...
A game running at 60FPS needs to render every 16 milliseconds, meaning that all the logic for collision detection, animation, obstacle avoidance, physics, etc. must happen in that very short time. You also need to prepare for rendering and then send the instructions to the GPU. Multithreading see ms like a most reasonable option if you have more than one core available (and who doesn’t these days). One of the ways to do multithreading rendering in games is using a double buffer. At a high level the concept is simple: given two threads update and render, use one to fill...
For the last few years I have been writing code in C#. I think C# and .net are great tools to write software. I find that C# is exactly where I need it to be, I can do low level when I need to work with pretty high level abstraction (ish). However the world (unfortunately) doesn’t do what I want and it feels like the momentum .net had is certainty fading. These are some reasons why I think this is happening (not all related directly to programing) These are some reasons why I think this is happening (not all related...
Mono for android or Xamarin.Android little tips: If you turn on GPU emulation, sometimes GPU emulation doesn’t actually start, it downgrades to software rendering, this makes the emulator slower and it doesn’t actually uses OpenGL(if you are using monogame, this means your game would probably not work). If you are looking for a grid like component that stretches with a fix number of grids, I couldn’t find one. Had to write my own and the code is ugly . You can use ScreenOrientation = ScreenOrientation.Portrait as an attribute in your activity and ConfigurationChanges = ConfigChanges.Orientation is also an activity attribute...
I did a few presentations about Monogame in Gaming Reimagined (at what used to be the Landsdowne Road Stadium) and in Games Fleadh, if you were there I would really appreciate your feedback (good and bad, please just leave a comment here). The slides are available here. I will make the code available soon and update this post. There is a video for it here During both events there was some pretty cool talks. About both the industry and making games. During Games Fleadh I Particularly enjoyed listening to Steve Ewart from Havok showcase his many cool demos and the...
A few weeks ago I bit the bullet and bought Mono for Android. I also decided to update to all devices to Ice Cream Sandwich as the UI is just so much better. Should have done that ages ago, but I was just afraid Kies would brick my phone again. Anyway, the new features that I m sure anyone interested in android development already know about: Services, fragments, new UI. Cool stuff, it also meant a lot to learn . Some things that you might want to try out if you are starting this out: Preferably have a device or...
As you might or might not know, I am one of the founders of BatCat Games, the important word about that sentence is **games. **The fact that we make games put a series of differences into our production that doesn’t generally affect non game software development cycles. For a start art and animation are key in a game, so are visual effects. In build server terms, that generally means two things: It requires space(for content building) and quite probably a graphics card (for the visual effects). Our ideal solution would be to have a virtual machine per supported platform ,...
I’ve been playing with mono for android the last few days. I have also tried it about 2 years ago. It was a good tool then, and it got much much better. Getting started is pretty simple, you download the installer, install. It will install all prerequisites for you on your machine. Allegedly this failed the first time but worked the second time, I had a log to look at to give me some idea of the problem. Once I got set up I started reading the documentation. Not only it was in place, but also, it was written to...
So, after the last post, where I introduced Directory truncator, I present you some extra work I have just committed. My plans for it from the previous post where Logging and or console output so you know what happened, I couldn’t so far decide on what is the best approach or if I want to choose one, so I ll do that tomorrow . On error, proceed to the next file/folder. Have a StartsWith parameter(on both methods), so that it only deletes files or directory that start with Turn it into a service So, this is what happened, After thinking...
Recently I needed some code to truncate a directory of files or folders, for example I wanted to remove files or directories given a max number of files or directories. This is a common task when you have backups and you don’t want every single backup since forever, but you want to keep the last 5 ones. Another common scenario is when you have builds and you only probably want the last 10 (particularly if your build is used only by 4 people that seat across from you). Anyhow, I have written similar code in the past and I know...
I needed a psd content processor and found one here it is based on the EndoEngine. The one available depended on XNA 3.1, I did some clean up on the project and made it available via my account on github. We (at BatCat Games) are working on a Content hot loader that will be available open source soon (at the moment it doesn’t really work ) it will probably include this content processor. The code comes with a sample game that displays a Photoshop file as a texture.
This is not a big one but it’s good to know. I was spiking a little thing in a new XNA 4.0 game project and then attempting to include a png into the content folder, the file was there, I could see it (using show all files menu) but when using the context menu “Include in project” nothing was happening. Why? First I thought maybe the file type is not supported, but PNGs are. Then someone pointed out, is this a project on a Reach Profile? textures larger than 2048 are not supported, this was a large sprite-sheet. So, I...
A reading diary is my way to discuss with myself what I think about the book as I read it. It probably has errors of different kinds. Some notes on the remaining of Chapter 1 F# intro, how its mostly functional but supports some OO features How C# incorporates functional ideas. Reading about declarative programming, these made no sense Definition of declarative programming style. Logic without the details… mmm ok lets see how this goes Functional means not only we can add new commands but also new structures Code, finally a code example came about and it was all cleared...
I‘ve been feeling that I m missing out by not knowing much about functional programming and this book was recommended to my many times, so I started reading it. Expectation I expect to learn more about functional programing , I would like to be able to translate the ideas to other functional programming languages. Objective I would like to be able to use functional programming ideas day to day on game development, there is a lot of asynchronous flow control in games that I hope, can be improved. The problem with this is that features that are ok to use...
So I was at DDD South west last saturday presenting Raven DB: day to day. The day flew by with great presentations. I got to see: Performance and Scalability, the Stack Exchange way by Marc Gravell . I have to admit I didn’t expect that much SQL on the presentation but interesting nonetheless, would really like to hear him talk more about how they use Redis and SQL together more. Also when he started talking about serialization we ran out of time :( There was a lot of questions and Marc did a great job at answering them. StyleCop – Breaking down the...
Just a small post to let you know. I’ll be speaking in two conferences this month. The 26th of May at DDD South West. The topic is Raven DB Day to Day Closely followed by an Introduction to Raven DB in Progressive.net (London) the 31st of May If there is a particular topic you want to see there, please let me know Cheers
Cameras are cool, so lets keep at it and try a spring camera, i.e. one that follows you around. The initial aspect of the camera and how to use it is on the previous post on cameras, so I ll let you go and have a look there. The spring camera is very similar to a simple camera, but with Hooke’s Law applied. Hooke’s Law states that the extension of a helical spring is directly proportional to the weight applied, provided the elastic limit of the spring is not exceeded. I read this a few times and couldnt figure how...
This a very simple walk through to use Mercury on a Windows Phone 7 project. Get the binaries As far as I can see, Mercury supports Windows Phone 7 only in version 4.0, if you go to the project page you _wont _find this on downloads, as it’s not yet released. So, you have to get the sources from here and build the project and find the correct binaries. An alternative is to download them from here (I forked the repo and added the binary download for WP7 ) If you ask nicely I’ll add all the other binaries. Once you have the...
What is a camera? Intuitively we know what a camera is: simply a way to show the action. A Camera allows us to deal with the display of the action in a detached way from the action. Implementation I like to start with what we are trying to achieve. For the purposes of this post, I want to have two cameras showing the same action at different zoom levels, like this: In this case we want 2 cameras, with each camera having it’s own ViewPort that we assign when creating like this: <span class="kwrd">int</span> halfScreenWidth = GraphicsDevice.Viewport.Width/2; _camera1 = <span...
I got a Windows Phone 7 to play with for a while and these are some notes about the experiment. I just did a tick-tac-toe based on this blog post changed a few things tho (like the use of extension method for checking for wining and replaced by bit shifting :D ), but I wanted to have some code to fall back to just in case. NOTE: I have an android phone, and had an iPhone for a while in the past, so my expectations about this phone are probably based on them. As soon as I connected the phone to...
So a few Scientists and a few developers met last Wednesday. It was hard to know where we were going to end and thanks so much to everyone that participated. The following is a summary of the tips we (scientist + developers) thought was a good idea Tips for scientists writing code (1st Round): Talk to other scientists that work on similar projects and share a list of your most used functions (I cant remember the name of the person suggestion Every now and then meet up with other scientist writing similar code to you to talk specifically about the...
XNA is the SDK from Microsoft for game development. XNA getting started tutorial. Well organized, paced series of XNA tutorials by a guy that teaches this. If you know nothing this is pretty good. Xna workshop. Some posts and links to learn XNA Is kinda handy to see other people’s questions Riemers XNA Tutorials. I think this is a link you want to keep, every time I search for something XNA related I get a post from this guy 2D Camera with parallax scrolling. Does what it said on the tin, very comprehensive article that also links to other interesting...
What an awesome experience to organize and participate in this event. It was a long day but I think people enjoyed it, learned a lot and got to try a few new things. At 9, Jose explained how a Code Retreat works and Kevin(below) explained Conway’s Game of Life, the problem to solve during the day. Sessions A code retreat has many sessions of 45 minutes each. Below is how most of the sessions looked Session 1 At 9.10 am we started our first session. Constraint: To code Conway’s Game of life in pairs. At the beginning of the session...
In the last few years the tooling available to .net developers for unit testing in general has matured, these are some of the tools that I either used or heard of : Continuous Integration: Team City: I use it and really like it, simple to set up and use, if you want to try it they have a free professional edition . Cruise Control.net: Open source, used it but didnt find it too friendly, I m aware a lot of people use it Hudson. Originally a Java only project but there are some success stories on the .net fence, has...
During the past weekend I was at DDD Scotland, it was great to meet all the people there. I apologize for the amount of lolcalts that I added to my presentation (available below) and any feedback, etc more than welcome. [slideshare id=7891964&doc=cqrsesandfriends-110509044316-phpapp01] In many ways it was good to get the presentation out of the way early because it meant I could focus on being out there listening to other folks smarter than me talk and meet some people. After my talk I was at Gary Short’s presentation on hoe to measure performance, interesting and really well delivered. Some interesting questions...
DDD Scotland is happening next weekend, I’m really looking forward to it. I’m also very happy my talk got selected, thanks everyone that voted for it. The agenda is very interesting here are my picks: Starting at 9:30AM and If you are not interested in CQRS/ES, there is two talks that sound interesting: Streams of Streams – Your Rx Prescription, by Ray Booysen and Chris Canal ‘s Monodroid Introduction, I could really use seeing a talk on this as I ve been playing around with it lately. Conferences are really those times when you wish time could effectively go backwards,...
Hi : Recently a group of us (tho mostly Pablo Nuñez ) translated the article from Udi Dahan Clarifying CQRS. Here is the link to it, if you feel that it can be improved please just leave a comment here and I can add you to the document with edit rights. Some terms where hard to translate. Thanks to Pablo, Carlos Peix , Jorge Gamba and everyone that retweeted and helped. Hola: Me pareció que el articulo de Udi Dahan, Clarifying CQRS, podría ser muy útil para la comunidad de desarrolladores hispano hablantes. Así que algunos de nosotros decidimos traducirlo, aquí esta el link , la mayoríadel credito debe ir a...
I ve been talking to some people over the past few months about CQRS, particularly CQRS/ES and at some point of the conversation I get the **framework **question. I think the implementation of the patterns CQRS and ES is not trivial (it’s also not necessary to do both , but lets keep going) however, the escence of the advantages you get out of both comes from implementing the rules of the domain, in the domain. By making the state transitions explicit. The number one reason why you should learn about CQRS without a framework is because, it could cloud your understanding of the...
Say we are not concerned with the query side of things (because we have an autonomous query service that need not know about your aggregate roots). With that in mind, in which cases do we need to know about the aggregate root private data? I can think of one case - when checking for duplication. Then we would have to * Be happy with eventual consistency (ie some check before actually trying to save) or * rely on the persistence layer for uniqueness and on failure, get a meaningful error. In any other situation, we are likely to be doing...
I was in Belfast yesterday were I was presenting what I called “CQRS/ES and friends” in NIMTUG . I had a great time thanks to all who came and thanks to the organizers. I would normally post here my presentation, but not sure its of any value, as it doesnt have much info, I use it for helping me remember what to say, if anyone want it, i can definetly post it, just add a comment here. The code I was showing is a fork of Super Simple CQRS code example by Gregg Young I have a link (bit.ly bundle)...
This post belongs to a series of posts on CQRS/ES Part 1 – introductory terms and overview Part 2 – Event sourcing and information about commands So, we are moving on. I thought I’d put these two topics close, it seems to me that they are related, I ve been using BDD to test this After all, what I m testing is much more than a unit, and I m interested in the whole loop. What I find interesting here is that since we are talking about actions when we talk about commands and we are also talking about past...
CQRS with Event Sourcing [caption id=”” align=”alignleft” width=”269” caption=”Photo By edinburghcityofprint(flickr)”][/caption] Looking at CQRS and Event Sourcing as Architectural patterns, when we use them together the impact of that is widespread. For a start, your aggregates should only be exposing behaviour, and that behaviour is related to the commands that use that aggregate root, actually, the entry point to doing anything in the domain is through a command. (this have implications on how we test, but we’ll talk about that later on). The aggregate root should now expose only behaviour, encapsulating all state, setters are seeing as a code smell....
I m preparing for a talk on CQRS and I though I’d support it with a series of posts on the subject. I’d love to get some feedback on this and all the following blog posts. (where I ll be possibly correcting stuff i say here, I can’t promise) So, I decided to start at the beginning: definitions. When I started to learn about CQRS I just looked at a good few videos, read a bunch of blog posts and then dived into every code example I could find, and then I m working on a system that uses these...
We are evaluating BDD frameworks at the moment and I m going through StoryQ. Note: Internal DSL for BDD, for me this means I can discover a lot by just following the API (ie its got a nice fluent API) The Code for adding a story is very simple (example below) Readable and nicely formatted report output Supports Nunit, xUnit and MSTests if using xUNit there is no support for incomplete tests ( ie if you are using CI it will break the build) UPDATE: there is a way since xUnit 1.7 Also you need to override the settings with...
In the Book Club, we are reading 7 Languages in 7 Weeks (for more info on the book club go to Dublin Alt.Net mailing list) so far a really awesome book, Its helping me have a quick view of not only different languages, but also different programing paradigms. Which is really refreshing, but hard. The thing that I like the most about the book so far , is that you do much more than a hello world, but of course, you can learn in depth, however, the author makes a really good job of explaining what’s at the core of...
I was invited to give a talk on Open Source in DIT to a group of students. Link to slides http://www.slideshare.net/roundcrisis/open-source-and-you-5456161. However here some interesting links: 35 years of Open Source http://vospe.com/2010/09/22/a-brief-history-35-years-of-open-source-software-a/ The Open Source Initiative http://www.opensource.org/ List of Open Source Licenses http://www.opensource.org/licenses/category and more here http://en.wikipedia.org/wiki/Comparison_of_free_software_licenses Reddit’s Open Source http://www.reddit.com/r/opensource/
I heard about this new web framework the other day, the code its available on github/jacksonh/manos the main interesting thing I heard about it were: runs on Mono Has its own server Has no dependecies on Asp.net the main goal of mono is to simplify web application development routing appears to be simpler ( to use and test) command line for managing your apps (deployment included) At this point, I wanted to see some code, I went to the example on github and I was pleasantly surprised [sourcecode language=”csharp” padlinenumbers=”true” collapse=”false”] // // A mango application is made of MangoModules...
This is just how I organize folders and projects on my machine, there are endless possibilities , but I saw someone searching for it online and it did took me a long while before I settled on this, so I thought I would blog about it. This can be a good or bad way of organizing, I think it depends on the kind and number of projects you are working on Imagine you have a folder that contains the following folders code (Real code, shipable, or company proof of concepts with its own repo) **spike **(test to see if something...
I had a bit of trouble getting to this, so for self reference more than anything, I thought I d post about it. Given the following class public class MyClass { private string _name; public string Name { get { return this._name;}} protected MyClass(string name) { _name = name; } } I thought that the following would be the way to create an instance of it: Activator.CreateInstance(typeof(MyClass), BindingFlags.NonPublic, null, new object[] { "MyName" }, CultureInfo.CurrentCulture); However it throws a MissingMethodException: Constructor on type 'ReflectionCreateInstance.MyClass' not found. However if we add the Binding Flag for instance then it works. [Fact] public...
Yesterday we had the 3rd IOSCD. It was great fun, the code is all available here. The sessions and It was great to have some hardware to play with, people really seem to get a good kick out of that, there was a Netduino and two Lego NXT. I m hoping that other people will tell us about their experience yesterday (hint hint ;) ). Some of the sessions included: Ruby on rails app for the book club assistance (called and_on_that_basis , no idea why), netdruino hacking with some sort of Rx , and then using Rx over the wire,...
There is a bunch of things happening in Dublin in the next few months, I figured it would be handy to push a post on it. 30th of august - Windows Phone 7 . A joint event between MTUG and Dublin Alt.Net - Registration and Details 9th of September - Promiscuous Developer Meetup (location not confirmed) developers of different languages meetup and try to find the answer to life, the universe and everything, maybe it wont be 42 :) sounds kinda interesting. More info here. 11th of September - Open Spaces Coding Day III - A full day of coding on whatever topic is...
Kick post on Types, nothing outrageous, but this was just a construct that I never used too much. The other day a collegue and we got stuck on a method similar to this void DoStuff(Type type) { var iInterface = typeof(ISomethingAmazing); Type genericType = //how to get ISomethingAmazing<type> //do more things } and well I didn’t know but you can do this void DoStuff(Type type) { var iInterface = typeof(ISomethingAmazing); Type genericType = iInterface.MakeGenericType(new Type[] { **type **}); //do more things } Why would you want this? well say for example, you are working with a container and need to get all...
So I was getting an “ Could not Load File or Assembly” error, even thou I was pretty certain I was referencing the right dlls in the correct folders. What could this error possibly mean? The actual error I had was: System.IO.FileLoadException: Could not load file or assembly ‘Moq, Version=2.6.1014.1, Culture=neutral, PublicKeyToken=69f491c39445e920’ or one of its dependencies. Some things I checked: Maybe I dont have the moq.dll assembly, but it was there. Then I checked the assembly version, my moq.dll was 4.x (the error stated 2.6.x was required), so there is a difference in the expected versions, why? Checked all...
What is pair programming? Its when 2 developers sit down together to write a piece of code. There is one person in the keyboard known as the driver and another person looking at the code and commenting about it, known as the ** navigator**, these roles can change in time. The idea is that while you are typing you are likely to catch certain things and when you are watching you are to catch other things. Why? I dont know if this happens to you, but many times, when I m not sure how to solve a problem or when I have...
Recently I started using Visual Studio 2010, if you follow me on twitter you probably know that this hasnt been a nice transition for me (apologies for the cursing btw) I ve had many crashes, and I m pretty sure I m not alone, not only a quick search in twitter will reflect this (see image below, the only marked twitt is about a fix for something) , but a some of my co-workers had one or another problem. It would be naive to think all the issues have the same source, and I know that many are related to...
I think the best way to describe this is saying, When is the next one? (We think around late August, early September) Thanks again to our sponsors: Jetbrains, Manning and Microsoft, and particularly to our hosts: the open source Lab in UCD, that place is just designed for this type of events. Sessions: Rx : ook! Cucumber with Iron Ruby pLinq and Mono Mongo Db (a bit of a comparison between .net implementation and a ruby implementation) All the code for the sessions is available in our repo. Some photos from the event here http://www.flickr.com/photos/roundcrisis/sets/72157623824914233/
Fluentmigrator is a really nice migration tool that allows you to tear your database up and down keeping version, please visit the project page for more info. Anyway, the other day I had to create a composite index, and I didnt know how, the way to do that is: Create.Index(“Name_of_the_index_String”).OnTable(“Name_of_the_Table_String”) .OnColumn(“Column_Name_string”).Ascending() .OnColumn(“Other_Column_Name_string”).Ascending(); Looks kinda obvious no? but what threw me off at the time is that I was looking at the possible operations after OnColumn and there was nothign obvious there, then I looked at the Sql documentation for CREATE INDEX CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ]...
I m late with the Ada Lovelace Day article, I had the choice of making it on time but incomplete, or put some time and be late, and I chose the later this time. I really though the person and the topic deserved in depth investigation. I didnt really know how to aproach the Ada Lovelace Day last year and this year I still dont know now, I think the best homage I can do is learn more about F# in this case. This post is about Amanda Laucher and about F#. Amanda is the author of F# in Action....
Hi all: Just thought I d post here that a group of us in Dublin. Alt.Net are organizing a coding day the 24th of April in UCD, it should be a fun day of hacking some code. One of the really cool things is that James Gregory will be there talking about Fluent Nhibernate. If this sounds like something you d’like to do you, can register and find out more about it in codingday.org Cheers
I understand the title makes little sense, but this is probably what I would search in a web search engine ( hopefully at the time I ll find my own post) A short, unordered list of things I install when I get a new machine/wipped machine An FTP client Filezilla will do Firefox + Add on: firebug, noscript, colurful tabs, Chrome ( for js intensive stuff it jsut renders faster) ieTester ( run multiple ie versions parallely) ieDebuger Wireshark, comes handy Reflector Resharper Syntax friendly Notepad ( I use Notepad ++ but not mad about it) Tortoisesvn or Anksvn Tortoise...
So there is another DDD event the 5th of June, and this time is in Bristol, call for speakers is on ( if you want to submit, you can get instructions on how to do so here) Sessions look interesting so far. I really enjoyed the last DDD in Reading, Uk.
A few of us have been reading this book as a part of a book club. Finally I think is time to push a review for this book . Let me start saying that my expectations for the book were very high, the book club helped because we were really reading it in depth and going over little bits of each chapter. Bad things about the book Examples are not great, there are errors on some of them, and (possibly the worse thing of it all) some of the tests dont follow the advice that is given in the book,...
The other day I was listening to Kent Beck in this podcast where he was talking about, amongst other things, push on green deployment, basically the idea is that once your test suite goes green, you deploy. When I heard this originally I thought : 1) Think about all possible problems -> not only technical( this component is not compatible with the component just rolled out, etc, etc) but also processes ( and people using them ) this is a real concern, because the pace of change would increase I would guess) 2) What tests? Who wrote them? I would think higher...
Hi there Just though I d share this this is the way I ve been organizing my test code as of late public class MyClassTests { public class Given_a_context { [Fact] public void When_somthing_happens_Then_result() { throw new NotImplementedException(); } //............... } public class Given_a_different_context { [Fact] public void When_somthing_happens_Then_result() { throw new NotImplementedException(); } //............... } } I like this because you can still easily find the class name with resharper you can also separate the contexts you are testing in a more clean way this works out good for me most of the times, even when you are inheriting...
DDD8 was a lot of fun! I really didn’t know what to expect and it turned out great, and got to a few talks ( not as many as I wanted tho) and met personally a lot of really interesting people. Moving on swiftly to the meaty bit of the post: I’ve uploaded the code and slides to github, I m hoping I can improve this samples with time, if there is anything wrong apologies in advance, first time using git as a committing to a project so I m bound to get it wrong. Looking forward to James Gregory...
I m planing on a series of blogs on WIF ( windows Identity Foundation) however that might or might not happen :), so meanwhile I m posting this, StarterSTS is as the name implies a starter sts something to get you started on the world of Federeation Identity , claims and all that lovely stuff. You can find a video about all this steps in the codeplex site to starter STS, however there are a few differences between what you can see in the config files there and whats in 0.95 ( this is what I’ve used) . I tried...
If you are trying to use Ninject with Asp.net MVC, there is an integration available in github http://github.com/enkari/ninject.web.mvc if you look at the code there its just 3 clases, but the fact that its been used by much more people than just myself makes me a bit more confortable because I m not terriby familiar with Asp.Net MVC. Please note I m not too familiar with Ninject either If there is anything that can be improved, I m all ears. Anyway, this is the integration working, using Ninject 2, I tried this with MVC 1 and 2 and they both...
Just some interesting thing I found on the extjs world. I m only looking at stuff working on ext3.0 In ExtJs the JsonStore has paramNames this Object contains 4 properties { start : 'start', // The parameter name which specifies the start row limit : 'limit', // The parameter name which specifies number of rows to return sort : 'sort', // The parameter name which specifies the column to sort on dir : 'dir' // The parameter name which specifies the sort direction } This properties are the default however they can be changed by using a configuration property or...
Had a brilliant weekend up North in @barcampderry Met some interesting folks and had a chance to discover a fantastic city and the surrounding area. As promised these is the slide deck for the presentation, I don’t think these are of much use but please feel free to ping me on twitter or as a comment here if you have questions or comments. [slideshare id=2213304&doc=oss-091013174416-phpapp02] Cheers
The Art of Unit Testing (by Roy Osherove) First Meetup Its amazing how much you can talk about just one chapter, ok we diverged at some point to related topics, we dreamed about our own Open Source project, again. Anyway, these are my thoughs about the first chapter, after the meeting Integration testing and unit testing: I end up thinking: You shouldnt do it inadvertedly. Its your responsability as as developer to do certain Integration tests (if you want to make sure that certain services are working as expected, that certain dependencies that you have and you are ok with...
We are meeting for the first time for the Book club and just to get the ball rolling on this I though I’d write up a mini summary of chapter 1 on The Art of Unit Testing before the meeting as a way to explore the concepts and then another one after if necesary. So far I like the book, a very clean and concrete explanation of the basics, in plain english. Some concept definitions are opinionated, but Roy does a good job of it by telling you that there are many defintions available of certain terms, he then tells...
Very excited by a very very busy few months ahead: This wednesday thursday and Friday Epicenter, In dublin where John Skeet, Craig Murphy (the man behind the DDD events), Barry Dorans, Barry Carr and many others will be talking, including me :) . Sounds like a busy conference full of choices. Oh yeah! and Craig Managed to get a Special Offer on Epicenter, buy 1 day get 3. More here September Dublin Alt Net meeting. 15th of September. New location Seagrass we ll be doing some lightning presentations on Kanban, Mono and Fluent NHibernate ( a bit of a mixed...
Just a quick post : If are trying to use Format, in GWT, String.Format is not supported, instead you should use Format a lot of interesting stuff there, so if you are using GWT-Ext take 5 min of your time and have a look, you ll end up using it. This is what I m using for Strings and for dates
Hi there I ll just add this because I saw some people being directed to here when searching for NVelocity docs (no idea why tbh) Anyway here is the link to the Appache documentation for velocity Also of course the castle docs
This coming Wednesday the 5th of August we are going to be meeting up in Kennedy’s ( nearly opposite to Pearse Dart Station) Its been a while so I m really looking forward to catch up with the girls. More info here Hope you can make it if you are a Girl Geek =) Cheers
I found some interesting IronRuby Resources that I thought some people might find useful: http://blog.jimmy.schementi.com/ complete Articles on Iron Ruby, I think he is somewhat related to the IronRuby project ( never really read the profile, just the articles….) http://flanders.co.nz/ Blog from Ivan Porto Carrero, the Author of Iron Ruby in action ( its on EAP from Maning). http://blog.benhall.me.uk/ Ben Hall’s Blog. He s got some really complete articles in that blog, and a really good speaker. He wrote this article on IronRuby and RSpec on the MSDN magazine. http://www.ironruby.net/Documentation Of course :D http://www.iunknown.com/ John Lam, I believe he is...
Say you have a panel, that contains a form and you want to get the values for the fields of that form, one way to go on about it is to use findByType(): Find a component under this container at any level by xtype. Parameters: xtype - the components xtype Returns: an array of components this is all well and good, however the available xtypes, what are those? A bit of magic string here?, what are the available xtypes? You can find a list below: ` xtype Class box BoxComponent button Button colorpalette ColorPalette component Component container Container cycle CycleButton...
So… I had to set up a GXT development environment for myself from scratch, so I thought I d share the experience. Getting the JDK was painfull I ll spare you the rant, however I will say that Sun requires that you are registered to download the JDK, after a email like the one below: ` We’re sorry but your Sun Online Account password could not be reset.` We would be happy to look into this further for you. Please forward this email to us at login@sun.com. We apologize for any inconvenience. a 404 ( see screenshot) and a failed...
There seems to be some sort of problem when you have to add a FormPanel to a Panel in GWT-Ext 2.0.6. As a workaround you can simply use a Panel and set the layout to FormLayout.** ** **Hope it helps **
The past 18th of June we had a meetup. This month’s meetup topic was Behaviour Driven Development presented by Claudio Perrone and Andre . It was an overview of the topic and how does it work as well as some examples with cucumber , Andre is a QA Professional and himself and Claudio demonstrated how they collaborate. Andre is involved in the Development process from early on and uses cucumber with Selenium and Watin (or Watin not sure). Edit: Andre did a blog post about it (you can see it here) Then we decided on July’s topic: IoC facilitated by Franklin...
After some time messing with GWT-Ext I found a few problems on this front: running the test takes too long ( I m writting this post as I wait for the tests to run) , for example to run a test like the one below, takes 10 seconds, and that is after you ran the whole suite, a suite with 23 tests takes aproximately 100 seconds… not great tbh. ` Dog dog= new Dog(); int legs= dog.legs.length; assertEquals(4, legs); int eyes=dog.eyes.length; assertEquals(2, eyes); ` A convention that i dont particularly like ( perhaps because I m not familiar with it)...
I m seriously used to the Resharper key map in visual studio, so when doing Java development I felt a bit handicapped, unfortunately I cant use IntelliJ IDEA (did the 30 day trail and loved it) so after a quick google I found this. Its not perfect but it works.
This is a simple example on how to make a ComboBox in Gwt-Ext to populate with XML. HttpProxy proxy = new HttpProxy("xml/combo_data.xml", Connection.GET); final RecordDef recordDef = new RecordDef(new FieldDef[] { new StringFieldDef("id"), new StringFieldDef("value") }); XmlReader reader = new XmlReader("comboitem", recordDef); `final Store store = new Store(proxy, reader); ComboBox combo = new ComboBox(); combo.setLabel(“Combo Label”); combo.setStore(store); combo.setDisplayField(“value”); combo.setMode(ComboBox.REMOTE); combo.setTypeAhead(true); this.rootPanel.add(combo); ` store.load(); And the xml can be seen here Hope it helps
So I made the leap the other day and installed RC for Windows 7 and it all seems pretty ok. Of course i had to do the install all I need dance. Making monorail work in this new version of IIS…well I just thought I d blog about it as it didn’t work “out of the box”. One (obvious) thing that you have to make sure you do is that you actually have asp.net and the ISAPI module installed (its not by default). The Virtual Directory needs to be an Application, for this you have an option for SetAsApplication in...
A quick post about Gwt-Ext Charts. Getting charts to work in GWT-Ext can be a little painful. There is 3 things you have to make sure you have: 1 in your .gwt.xml 2 the gwtexux.jar file in your classpath, and of course the jar file should be wherever you are pointing to ;). 3 Most importantly the swf file that is on wherever you set your express install, in the demo is set to ` chart.setExpressInstall(“js/yui/assets/expressinstall.swf”); ` and even tho i had my library where it should, for some reason for me it wasn’t uncompromising to the right path so...
Quick post about this little board app. Say you are doing agile and you have the board with cards, why do you need the physical board? head to scrumyhttp://scrumy.com It s very simple to use and no signup required (love that) Even at a glance I can see I would miss some things, however It could prove useful to you. I got to see this because the masstransit website has a link to their scrumy .
After a very fun DDD Belfast I was debating,whether I should go to Developer Developer Developer Scotland, in the end I did and it was a good decision. I had a great day and a great night talking to other geeks. I got there a bit late, flight+train + walk+ getting lost in the campus, however I did catch the tail of the Refactoring presentation by Gary Short I was curious as to how Refactor and other Dev Express tools look and work. Then I went to a talk that I was quite looking forward to: Embracing a new world - dynamic...
My dad asked me to help him do a website, so I started looking at the options, I definitely do not want to maintain this at all I thought. He said: I just want an info page. And I though about Ana Nelson and her recent talk in Ruby Ireland about how to regenerate documentation[update: jsut been to her site and she moved her blog to webby :D], so 15 min ago I was trying webby, and its great, its a framework that does exactly what a framework should do: save you time but does things properly. From my 15...
Hi all: During the previous two weeks I ve been presenting “An Introduction to Monorail” in Belfast for the Developer Developer Developer Belfast and in OssBarcamp in Dublin, I said I would make the sample code available and here it is. The application presents a simple Twitter application, user can post a twitt, user can follow other users. This sample uses Monorail, Active record, NVelocity and Windsor integration. The slides are in the previous post, the code its now available from here Please note, if you go to the trunk you ll see a folder called GettingStartMonoRailAndActiveRecord, a hello world for Monorail...
Hi all I have updated the slides for the monorail presentation as follows (There are 23 slides if you see less it means there is caching somewhere along the lines, get them quickly here) [slideshare id=1212832&doc=monorailintroduction-090327185816-phpapp01] Comments, questions and typos all welcome so they can be corrected. Cheers
Hi. As you might know I m talking at Developer Developer Developer Belfast ( I refuse to call it DDD, in my head that is Domain Driven Design and I want to keep it that way) There are plenty of really interesting talks ,I m looking forward to either Creating extendable applications using MEF or DDD, SOA, Messaging, Architecture and jQuery Deep Dive or A peek at Silverlight 3. You can see the complete Agenda here And you can register to attend the event here. I think there are some places left. Hope to see you there! Andrea
Hi there: I have just uploaded my presentation about castle Monorail, you can find it here. [slideshare id=1212832&doc=monorailintroduction-090327185816-phpapp01] The sample code for the presentation will be uploaded soon into some code repository, its a bit too late and I rather go to sleep now. :) Corrections and feedback are always welcome. :D By the way, there was a little bit of a reschedule and my talk is at 13:30. Hope it all goes well tomorrow. Looking forward to it. Andrea
Hi there just a friendly reminder about OssBarcamp Its tomorrow from 9.30am to 4.30pm there is a map to the location here (really close to Whelans) It should be great fun. Looking forward to see Jaime’s talk on Git and other talks look really interesting too (jQuery, webdev tricks, etc). I hope some people will show up to my little talk about Monorail. I ll be uploading the content (slides and samples) this evening (i ll add the mandatory post about it here when I do) . Your questions or comments will be appreciated Cheers Andrea
Hi. This is my post for Ada Lovelace Day. Barbara Liskov (born Barbara Jane Huberman in 1939) is the creator of the Liskov Substitution Principle, **this is how I got to know about her work, **also She was the first woman to get a PhD in computing in the United States (1968) [so close in time to the summer of love … makes you think about the history of the world…anyway] Only recently Barbara won the prestigious Turing Award, an award known as “the Nobel prize in computing”. It was awarded for her work on the design of programing languages. Her...
This post goes againt my idea of restricting the blog to purely technical matters. In this case is well worht it because our freedom on the net is threatened. What Happened IRMA (a consorium of record labels) sued Eircom and then Eircom settled the case out of cout to (amongs other thing sI m not really sure) implement a three strike policy and censor sites, ie if you are with eircom and IRMA tells Eircom somesite.com must be blacklisted, then no eircom customer will be able to see that site (not sure on the specifics of this and how the...
Hi there I received an email yesterday confirming I will be presenting “An Introduction to Monorail” in Developer Develop Belfast the 4th of April. I m really excited with this. I just would like to say Thanks to you. And by you i mean people who are reading this :) because possibly you voted for my session. Now the hard work begins If you have any suggestions or comments on either the topic or on presentations please do add a comment. Thanks again Andrea PS I ll add my slides here in the next two weeks
Had a DetachedCriteria, very simple, I check it running with profiler side by side and I see loads of queries running. Why? The criteria was something like this ` var criteria = DetachedCriteria.For() .SetCacheable(true) .SetCacheRegion(CacheRegions.RarelyChanges) .SetFetchMode("Things", FetchMode.Eager) .AddOrder(Order.Asc("Name"));` I was trying to cache a criteria for MyEntity and have an eager fetch mode for Things ( a collection of Thing) , so, it turns out that i have an n+1 . In the view, there was an iterator in the Things Collection, so just to confirm I removed the reference in the view to this and profiler was running the expected queries(no...
Hi all: I m really glad this is happening, there is going to be a series of meet ups to learn how to do technical talks specially for woman in technology. The meet ups are going to be about an hour and a half long on how to do technical talks. This is something organized with the girls from Girl Geek Dinner. The talks are as follows: Speaker Night 1: Thursday, February 26th from 6pm-7:30pm Topic: What Am *I* Supposed to Talk About? o Finding your voice o Coming up with topics/content/titles o Building a story from your content Speaker Night 2: Thursday,...
I have 10 minutes to write this, and I ve been meaning to … This is a few things that I use (or want to try) : Unit Testing Tools MbUnit - Faster to test AR Datamodels NUnit Nothing bad about it, nothing that made me go wow! that’s great! (that i can remember right now) and of course Test Driven Just love the fact that you can right click a test, a unit or a project or a solution and just run the test or in the worse case scenario debug the test. Mocking Tools Rhino Mocks Used it a few times,...
I saw some incoming links from curiouswines.ie and I though I would clarify I m not a wine connoisseur (I ll keep trying tho :D) however, the word does remind me about WINE, the translation layer that allows windows applications to be run on Linux. Please note WINE stands for Wine Is Not an Emulator, hence not paying the penalties of one. It looks like this is mostly for games, thou Photoshop and Autocad are supported (with minor issues) I dont really need either right now but you never know when you are going to need one. For the more conventional wine (ie...
So today i was reading an article by Ben Hall on Getting Started With IronRuby And RSpec, Part 1 after I read a few paragraphs I twitted that there were “..so many things in this article that I disagreed with” Ben listened and … asked me why. I actually disagreed about some sentences that talk about the processes, or opinions about stuff (for example naming conventions and whent you need a framework ) however the article is really good, it explains very clearly what is the purpose of the post, there is a nice intro into Iron Ruby, some sample code,...
Through Andy Hunt’s Blog ( one of the Authors of The Pragmatic Programer) I got the Pocket Ubuntu guide for free. Thanks Andy and thanks to Keir Thomas for making this available in the http://www.ubuntupocketguide.com I just went through the first chapter and found out about Wubi ( possibly something I will try now as I like the idea of trying things quickly without having to reboot, installing… no i didnt read much yet). Edit installed Wubi and its not a virtual machine of some sort as I originally though, however its a really easy installer for windows, I intalled...
In web development, you come across tools all the time, some are incredible and I was lucky enough to find two today. Firescope is a firebug plugin that gives you HTML and css help. its really neat it looks like this in your firebug (note to my friend: note the lower case logo!! hehehe) Another tool that is kinda cool , but I would probably not use that much but the days that i need it I will http://www.scrnshots.com/ they have some tools and a nice api, that you can query and mash it up where ever you feel like. This...
I found myself making the mistake I read about a lot of times. It turns out we have to migrate parts of an existing solution to a different platform and I had all this questions about how to organize the new solution and I realised, hold on, I must first have a deep dive into the existing code and then start thinking about the new solution and how to architect it. I was so easily driven to think about the solution that I lost sight of the problem, terrible and now I m advertising it… Maybe it was just the idea...
Hi there: As a new chapter of this post finally we are doing an Alt.net meet up, I can t wait and hope for the best. The meet up will be the 12Th of February at 7pm in The Duke (off Grafton Street). Unfortunately we didn’t realise it was on the same day that twestival ( a charity event for twitterers) I think we are very different events, thou i m sorry I ll be missing it, as it is a worthy cause. I like the definition of Alt.net I found in David Laribee’s blog What does it mean to be...
Hi This should be pretty exciting, I m hoping to do a talk in OSSBarcamp ( well not really a talk but you know) and depending on votes, I might be talking in DDD Ireland too, we will see. The talk will be on Castle Project, a walk through of a sample application, the main focus on Monorail and Active Record as I saw some other people can cover IoC and DI ( which in itself is a really long talk). I have still to decide what this app will do, I actually wanted to build something simple but useful,...
hi We met with some folks in the open coffee recently. It was really nice to have a good turn out and a lot of new faces. I had in mind to talk about Alt.Net and I think one thing that is clear now is that we need to come up with a clear to do, how are we gonna work? where? that kind of thing. Its also important to have an easy way to explain this easily. I think it’s about learning from your peers, having a space where , if you have a problem you can bounce ideas or...
Hi all just though I’ d advertise the fact that rubyjobs.ie is live. I m really happy with this, Its great to see the community releasing things. Ok its very basic but I think is a really good start. Most of the effort came from Gavin Joyce, but Declan and other people (that I cant remmeber right now, sorry no memory ) contributed to the project; it is open source and hosted in github. It all started last meetup and It will sure continue on the next one , that is the 13th of January @ 7pm in 10 Upper Fitzwilliams...
I had to add some caching for a ViewCompoment in castle recently and, at least for me, it wasnt too clear what to do at first. A ViewComponent is a very handy thing in castle, amongst other things it allows you to have aView Component that can be, a login box, a menu, an rss feed reader. Sometimes the you need to cache the viewcomponent and this is how you need to go to this post by hammet I couldn’t use the decoration ` [ViewComponentDetails(“comp1”, Cache=ViewComponentCache.Always)] ` because I needed the component to be refreshed every so often , so I...
I found this post on how to verify google webmaster tools. Basically you just create a new page with the name of the html that google requires, if you choose the option to upload a new page. Cheers
well this is one of those end of year post that I think you must write. This is the first year I actually keep my blogging pretty constant (thou changed blogging engines …) so first time I m actually writing one of these. Anyway I m very happy with the year thats g0ne, **loads **of changes in my life, one of them being having no weekends at all for most of the year as I ve been working on a project with a friend of mine. That project is going well, we can nearly touch the code complete stage , only 8...
Hi I was reading hanselman’s blog today about languages, not programing languages, but spoken languages like english, spanish, french, chinese, etc. The post kinda discusses , “if you dont speak englsih , you are not a programmer”, I think the post is worth the read and I have two comments about it. As native spanish speaker I have to say the fact that I was interested in French from a early age and english later on helped massively when I started programming because I could make sense of things faster. Later on, at college , even thou we had english...
Yesterday we had a really nice Ruby Ireland meet up some links Rest link RateMyArea talk http://ciaran-lee.com/RMA-rug.pdf google Geo Location API via Darragh link Follow up on the website and other projects soon The idea is that the next meet up (would that be teh 13th of January) is a meetup that involves coding. Thnaks to the people providing the sambos, beers and mince pies and above all the place to have the meeting.
Hi there. This is my firt post in wordpress, I ll be migrating all previous posts from http://ohmygodiamacat.blogspot.com/ So many questions so little time ….
A quick one Say you have an image or god knows what and you need to add a link to it, in html you’ll do something like: In a view you can do this: 1 2 3 4 <a href=$UrlHelper.For("%{ controller='product'}")> <img src="$!Image.Path" alt="$!Name" /> </a>
It looks like Ruby Ireland is getting a bit more attention from people, and that is great to see I had my own reservations about if I should continue going to these meet ups because basically I haven’t been doing much Ruby in the last months, but I do love to hear about it and it does give me ideas about how to work on my own code. I see people solving problems in a completely different way to what I would do and I think that has value and I hope they don’t mind me showing up there. Also...
Since my last post I ve been trying to avoid writting about trivial small things however meaty post take time and I just dont have it right now. Questions in my head now when do you create a service? where can I find an example of a well designed GWT app? Events that Im interested in GGD 4th of December in La Taverna di Baco in the Quays (in dublin) IJTC its the 7th of January in UGC, some good speakers but it feels like thi IcTC conferences are a bit desorganized FOWA Dublin - March 6th. I want to...
I was in ruby Ireland last night ( good turn up btw) and it was great to see Paul Campbell talking about Couch Db, a non relational DB in their own words “Apache CouchDB is a distributed, fault-tolerant and schema-free document-oriented database accessible via a RESTful HTTP/JSON API. Among other features, it provides robust, incremental replication with bi-directional conflict detection and resolution, and is queryable and indexable using a table-oriented view engine with JavaScript acting as the default view definition language.” Anna showed some interesting rake tasks and i did a short intro to jQuery (slides here) hopefully someone found...
I m doing a lighting talk about jQuery and ExtJs (maybe mention GWT) in the next Ruby Ireland on the 9th of September link I ll add a link to the slides as soon as i finish them, any suggestions very welcome. so far i m doing a quick intro, some of the features, stuff i found useful or interesting or use with code samples and finally some links. For jQuery I m touching on ui.jquery and themeroller and the event observer implementation link For ext again intro and show some code and then maybe touch on EXT (GWT implementation...
Hi again Well hopefully that meeting will go ahead on the saturday the 13th of september http://www.opencoffeedublin.com/september-saturday-opencoffee-dublin-1392008/ looking forward to it now :)
Today I’m trying out Ext GWT To use Ext GWT Installation was simple ( i needed the java sdk i got 1.6Update 7 ) downloaded GWT1.5.1 and decompressed it. happy days! then i ran the sample hello and I was running, really fast [if you have problems with some error that ends with and then an exception, it s very likely to be that your path is reading some other version of java first, if so go to environment variables and change your system settings so you have the recently installed java sdk first] to check the java version open...
This idea has been in my head for a while now, I’m sure all developers get here at some point where you want to move forward but not terribly sure how to get there, how to get better, how to write elegant maintainable code that you are proud of. For me it all started when I saw how ruby on rails worked and now i m on the path (i think ) to become better and coding using principles like mvc, active record, etc I remember I started assisting Ruby Ireland meetups and there was nothing like that for .net...
hi This post is basically a rant, a rant about SSIS, whoever designed this UI please take a good look at your career and either retire or consider a career change. I think the idea behind this service is great; we all need data migration tools; but why make people suffer? Some examples of why this tool drives me insane; in a data flow, you can createa Derived column, say for some crazy and ridiculous reason (please ntoe sarcasm here) you need to change your something on your source, well then the aforementioned Derived Column thing gies u a nice...
Hi. at some point we all need a click time picker, found this one (in ajaxian) Also in Ajaxian, I found a PNG fix I used the sample and it works, however I can’t make it work on my server, it doesnt even hit the *.htc file. The instructions say that you should give the path to the htc relative to index.html however I dont seem to be able to get it up and running for my web app, anyway… will try again with a little bit more time later on.
A little thing that drove me completely insane when using parse (appache ref) the path to the view includes the folder that you are in say you are in the folder …/views/Blog editing a view called one.vm if you want to parse something in the same folder as one.vm you have to use #parse(“Blog/two.vm”) and if you happen to use a / before blog you ll get a nice exception that has a very unclear message Just to note
I always forget these two: $Url.Link(‘label’, “%{controller=’controllerName’,action=’actionName’}”) and this: To Create a form $Form.FormTag(“%{id= ‘formId’, action=’save’, immediate = ‘true’}”) $Form.EndFormTag I really wished there was a MR RC4 :D
Saw this on ajaxian and i think is really handy and at some (not too far in time i ll need this) http://www.twinhelix.com/css/iepngfix/demo/ basically to add some transparency you just add a few files to your sever and a line of css and thats it. Will tell when the time to use this comes :)
Yesterday I was coding and I needed to create a criteria like …. Repository.FinOne(Restriccions.Eq(“Email”, email)); … however I wanted to make sure that there was not prblems with caseing it turns out IgnoreCase exists and can be used this way :D Repository.FinOne(Restriccions.Eq(“Email”, email).IgnoreCase()); I was really happy to find this, thanks NHibernate in Action!
PDF Readers I m thinking about a serious of “meaty” post for this weeked or at least the one decent one, but meanwhile I though I should post about the incredible diference in speed between Adobe Reader and Foxit. A friend of mine (one of the two suscribers to this blog) told me about foxit like a year ago, i went yeah yeah but then about two weeks ago i actually download it and it is really fast, i love it. FF2 vs FF3 OMG i m so happy with FF3 I m still testing it in only one of...
This is a firebug extension for measuring accurately the JS performance I have installed and tested it in this site sounds like a good idea and to see it running makes sense will start using it from now on,particularly on extJs sites ;p
Talking about open sourcing http://www.nokia.com/A4136001?newsid=1230415
OMG I just saw this http://efvote.wufoo.com/forms/ado-net-entity-framework-vote-of-no-confidence/ and I had to post it.
Last Thursday and Friday I was at the IOTC, an Open Source Conference. I went to a few talks 1) Saw Geoffrey Grosenbach talking about Phusion Passenger. The talk target was a bit too wide, however i think he was good at explaining some of the basics. It would have been good to see some sample code but hey. All in all interesting 2) Talk by Clint Oram the guy from Sugar CRM, well he was basically evangelising about Open Source in general, TBH It was really boring, maybe i just didnt understand the whole topic of the talk …...
http://www.webdesignerwall.com/demo/jquery/img-replacement.html look at the source code for this, is it clean or what? took me little time to get something up and running in a real nice way This is a sufficient reason to love jQuery and whoever it is wrote this :) Cheers
http://royal.pingdom.com/?p=305 First Prototype, closely followed by jQuery :D then moo
I saw Scott Gu’s post about Silverlight and I decided OK I ll go and get it. Well the install took 10 minutes and i had to close everything (Visual Studio ,IE Firefox), such an nuisance compared to the instal of Yahoo’s Browser plus. Did not try anything after that, to be honest , it doesnt call me or something… I ll need to be pushed into this one.
The most interesting thing today was an email from Manning with the new release of the EAP of Nhibernate in Action (still in chapter 3 :( ) . On the plus side, first time I ever bother reading the table of contents in detail, and yes, I found an appendix called Introducing ActiveRecord and MonoRail, at first this made me really happy, but now that I think about it, the appendix should really only be about Active Record, else its gonna be too short. I think I would like to see a mention of Machine Migrations (and similar tools) PS:...
John Resig just posted some talks he gave and they are so easy to understand that it hurts. I really like the jQuery syntax, ok is a different approach to a JS library than ExtJs, and I like it, unobtrusive and lightweight with loads of plug ins available. I really like this grid (ok ok it does use a table for layout but hey, looks good and you read the code and immediately know what’s happening) .
hi there I dont think this is ultra necesary or anything like that but i know i ll need it at some point Micro$oft has a plug in to save a document as a pdf its well integrated and seems to work ok. here is the url http://url.ie/f9v there are other options if you dont have word 2k7 I think is called pdf95
We all know how painful it is to debug websites in ie, (particularly 6 what a terrible browser that…. i ll rant properly about it another day) today i stumbled across this little tool call DebugBar it was all great until I installed it in my machine and it doesn’t work. (no contextual menus, no nothing) However I ll have to give it a try in another machine as mine is a Vista Home Edition ( yuck yuck) I should be updating to ultimate pretty soon ( hopefully Saturday) when I know I m safeguarded by at least a virtual...
hi again OK i just found this out last Monday and it was there all along i just never paid attention to it and found it extremely handy. This http://extjs.com/learn/Ext_Manual there is a lot of JS introduction and also good to read about the component model http://extjs.com/learn/Ext_2_Overview#Component_Model I just though i d blog about it cause It was easy to miss
Today ayende blogged about this and i found it really interesting here: http://www.codeplex.com/umbrella# you can get the code and tests http://ayende.com/Blog/archive/2008/06/04/Review-Umbrella-project.aspx ayendes blog
Today’s interesting find is Browser Plus I heard about this first a few months ago but there was not much real info about it. I have to say i was really impressed by the installer short, sweet and very intuitive. Also the capabilities that it provides seem simple but powerful, i m very interested in the Ruby Interpreter Service Promising.
I ve been suing NH for a while now, but i never started a project from the begining or used purely nh (I mean without Castle Active Record) started to read NHibernate in Action ( the EAP edition) so let see how it goes.