I now have a functional model of the stomach, small intestine, large intestine, bowel and rectum! Makes for some fun class and variable names… My current stumbling block is modeling calorific usage and the metabolism. Energy used and how fat, protein, body water and glycogen all balance out and are used, possibly this is going a little too far. I think I need to stop re-factoring idly, and concentrate on this, the last of the physical components I need for my human simulation.
I’ve been silent a little too long…
The TinyMUD port was a draining experience, so I decided to leave late night coding behind me for a while… I’m now working on a game, a life simulator, it’s dark and altogether depressing.
My prototype code (a few days old), is currently managing to simulate 80% of the human body, I have the digestive system mostly in place, and then plan to move from emulating the physical to the mental.
It’s fascinating and requires real-time graphing to analyze the model (I don’t have graphics yet – Opting to build up the model/simulation first), using graphite to handle this, really nice “tool”. Will post some more detail as it grows into life (quite literally).
Most software teams use some kind of project management tool, Redmine or Trac for example. Maintaining the validity of tickets/issues is a major pain, particularly in relation to time tracking and ensuring that activity logs are made routinely and spent time versus estimated time are kept in sync.
Typically someone on the team, “the project manager” ends up having to constantly re-enforce the need for people to log time and keep fields correct, this I think is a waste of ones life! Ideally the whole team would just take an interest and do this work, or use a system, e.g. Kanban where the process/tool itself tracks this information without the need for human input. If this isn’t possible, I propose an auto-build/integration server for the process itself…
I’m currently writing a script to integrate into Jenkins and track a Redmine project through its REST API. The script continuously monitors the state of the project and causes “build” failures when a violation occurs, e-mailing the team and if possible the person who caused the problem. Ideally to drive change through making the problem visible, once the project has settled we can turn it off, although it might be useful for checking other non-code aspects of the project, so we will see.
The title says it all! With some welcome help the port of TinyMUD to ruby is approaching 100%. I’m looking forward to putting it up on GitHub and launching it on my server for a wee party (it would be great if James Aspnes would “attend”)!
Having just had the unfortunate need to use rhino mocks from managed C++ I thought I would document the “how”
Let’s say you want to mock/stub IFoo. Which has two methods:
- IQux Bar()
- int Baz(int)
Create a MockRepository:
IFoo^ foo_stub = MockRepository::GenerateStub<IFoo^>();
Stub out Bar() -> Note it doesn’t take a parameter:
Rhino::Mocks::Function<IFoo^, IQux^>^ foo_bar =
gcnew Rhino::Mocks::Function<IFoo^, IQux^>(&IFoo::Bar);
RhinoMocksExtensions::Stub(foo_stub, foo_bar)->Return(
/* Another mock/stub or a real IQux */
);
Stub out Baz() -> Note it takes a parameter:
Note, the static method, this will configure the stub for a specific argument, in this example when Baz(1) is called we return 2.
Rhino::Mocks::Function<IFoo^, int>^ foo_baz =
gcnew Rhino::Mocks::Function<IFoo^, int>(&Test::FooStubBaz);
RhinoMocksExtensions::Stub(foo_stub, foo_baz)->Return(2);
// IFoo will actually be a rhino mock/stub
int Test::FooStubBaz(IFoo^ foo) {
return foo->Baz(1);
}
Now foo_stub->Baz(1) will return 2
I imagine you could remove the need for a static method but this was enough for my needs and my head!
I have recently been playing with the NeuroSky mindset – I have always found this subject fascinating…
Unfortunately the device didn’t come with any Linux software so I decided to write some using ruby. Had a good run at coding this weekend and I’m now finalising the gem – Hope to have it up on git hub and ruby forge this week. I can then move onto coding some fun software on top. Doubt it will have a huge demand but at least it will make using the device a little easier on Linux (and Windows), I needed it so at least one person will benefit!
Update: I have placed an almost finished (just some documentation tidying left) version on GitHub






