Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions _posts/Week02-Jibbr/2012-01-10-day1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
layout: post
permalink: /weektwo-dayone.html
date: 2012-01-10 23:59
title: "Jibbr: Day 1"
feed: "project"
---

Technically we started this on Day 0 with forking the [Jabbot](http://github.com/davidfowl/jabbot) project and gathering ideas and features while people explored the code. Due to the Hanselman effect, we had an overflowing chatroom and lots of discussion to keep us busy.

### Drawing

Paul was in the mood for drawing, and he started experimentign with Mr-T/Hubot themed graphics

![](/img/week2-day1-drawing.jpg)

### The Bleeding Edge

Oh, and there were some JabbR fun and games to deal with straight off the bat. Some breaking changes in the [JabbR](http://github.com/davidfowl/jabbr) website hadn't propogated to a [SignalR.Client](http://github.com/signalr/signalr) release - but thankfully the awesome [@davidfowl](https://twitter.com/davidfowl) was on hand to help us get the right commits together and craft a version which played nice.

### Experimenting with Sprockets

One of the first features we added was support for periodic sprockets - we're calling them *announcements* - but more work was needed to get the infrastructure to a point where people could experiment further. A simple scheduler was added to the console app, and a sample plugin - telling you what time it was in Sydney - was added to the code.

[Andrew](http://twitter.com/tobin) and [Stefan](http://twitter.com/cyberzeddk) also worked on adding support for additional commands to the bot, building test sprockets and running them in a test JabbR chatroom.

We started spawning test rooms to ensure the main Code52 chat room was not annoyed by out experiments.

Even a Mr T bot made an appearance - I wish I had a screenshot handy of the bot making fun of me.

### Hosting

We discussed where this hypothetical app would be hosted - a Windows Service was discussed, but we eventually agreed that it *should* be fine to host on ASP.NET. The [NancyFx](http://twitter.com/TheCodeJunkie) [guys](http://twitter.com/GrumpyDev) were in the JabbR chatroom to steer us in the right direction.

-- @shiftkey





63 changes: 63 additions & 0 deletions _posts/Week02-Jibbr/2012-01-11-day2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
layout: post
permalink: /weekone-daytwo.html
title: "Jibbr: Day 2"
feed: "project"
---

More momentum, more interest, more progress and lots more chatter in the JabbR room - including a hilarious discussion on Git's autocrlf behaviour.

![](/img/week2-day2-autocrlf.jpg)

Credit goes to [@MotoWilliams](http://twitter.com/MotoWilliams) for the meme.

### JabbR Updates

Some changes to JabbR and SignalR - [David](http://twitter.com/davidfowl) (and I suppose [Damian](http://twitter.com/damianedwards) by extension) is planning a 0.4 version of SignalR. More changes to JabbR and SignalR pulled into Jibbr.

### GitHub Sprocket

Most of the heavy-lifting for the GitHub plugin is done - using JSON.NET's dynamic support to parse data from the GitHub API without defining strongly-typed models makes this about eleventy billion times easier.

The plugin is intended to track and display notifications for:

- commits to the master repository
- people watching the project
- pull requests (new and closed)
- activity in forks off the master repository - when a new one is created, when code has been pushed to it
- issues (new and modified)

For example:

![](/img/week2-day2-action.png)

Since taking this screenshot, I've been contemplating how to differentiate notifications. Perhaps JabbR could support Markdown for basic styling of text? :)

### Automate all the things

A little anecdote: I hastily put together a script late the night before to move the sample extensions into a folder - for MEF to discover and load into the app. In my haste, I'd ignored the fact that I'd (likely) been running the script from a bash shell (thanks git-bash) and hardcoded some paths to get (what I'd thought was) the job "done".

So I merged the changes into master and hit the hay.

A few hours later, I wake up to [Stefan](http://twitter.com/cyberzeddk) demanding beer karma as a result of the harm I'd caused his mental state. Turns out that 'cp' isn't 'copy' and file paths are easy to destroy completely if you pick the wrong one for the wrong OS.

With some input from Stefan and Tobin, the script now recurses all of the Extensions subfolders for assemblies.

set solution_dir=%1
set output_dir=%solution_dir%\Jabbot.ConsoleBotHost\bin\Debug\Sprockets\

del %solution_dir%\Jabbot.ConsoleBotHost\bin\Debug\Sprockets\*.dll

for /D %%I in ("%solution_dir%\Extensions\*") do (
xcopy %%I\bin\Debug\*.dll %output_dir% /C /Y
)

### Jabbot running on NancyFx

[Seth Webster](http://www.sethwebster.com/) a contributor to the Jabbot project, put together a simple sample app of a Jabber bot running inside NancyFx. He's also been helping out with the JabbR testing over the past couple of days. Many thanks for his hard work.

[Paul](http://twitter.com/aeoth) has taken that sample and started working on an administration tool for the bot:

![](/img/week2-day2-website.png)

-- @shiftkey
Binary file added img/week2-day1-drawing.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/week2-day2-action.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/week2-day2-autocrlf.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/week2-day2-website.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.