Monogame: Open source implementation of Microsoft’s XNA 4.x Framework

Monogame hero

I came across this on the FLOSS Weekly Podcast episode 286

From the Monogame website:

  • Managed Code – By leveraging C# and other .NET languages on Microsoft and
    Mono platforms you can write modern, fast, and reliable game code.

  • Cross-platform – We currently support iOS, Android, Mac OS X, Linux,
    Windows, Windows 8 Store, and Windows Phone 8 with even more platforms on the way.

  • Open-source – All the code is available to you ensuring you’ll have the
    ability to make changes when you need to or even port to whole new platforms.

  • Community – With 100s of games shipped we have built up a vibrant
    community of developers which use MonoGame for both fun and profit.

Monogame logo

http://www.monogame.net/

XMLBeam: Java library to project parts of a XML DOM tree into Java objects via XPath instead of using data binding

xmlbeam image

I haven’t tried this, but it looks interesting. It seems to be designed to
help break the dependency between the XML structure and the structure of your
code. With most data binding libraries, you either make your api mirror the
structure of the XML, or you transform the data to match your API. This lets
you map data from the XML directly onto Java objects using XPath and
annotations.

Take a look at the XMLBeam introduction page.

Sample from the website:

Access XML data directly via XPath-annotated Java interfaces:

<xml>
   <example>
      <content type="foo" >bar</content>
   </example>
</xml>

public interface Example {

    @XBRead("/xml/example/content")
    String getContent();

    @XBRead("/xml/example/content/@type")
    String getType();

}

Metalsmith: Pluggable Node.js static site generator with Javascript & Command-line APIs

Metalsmith masthead

http://www.metalsmith.io/

I like the simplicity and extreme flexibility. Static site generation is one of those places where I don’t want the framework to be too opinionated.

Simple Blog Example from the website:

Metalsmith(__dirname)
  .use(markdown())
  .use(templates('handlebars'))
  .build();

Simple Blog Example with draft posts and custom permalinks from the website:

Metalsmith(__dirname)
  .use(drafts())
  .use(markdown())
  .use(permalinks('posts/:title'))
  .use(templates('handlebars'))
  .build();

Article: Microservices, by Martin Fowler and James Lewis

Microservices image

Article about Microservices from a couple of Thoughtworks guys.

From the article:

In short, the microservice architectural style is an approach to developing a
single application as a suite of small services, each running in its own
process and communicating with lightweight mechanisms, often an HTTP resource
API. These services are built around business capabilities and independently
deployable by fully automated deployment machinery. There is a bare mininum of
centralized management of these services, which may be written in different
programming languages and use different data storage technologies.

Article: How to Create a Statically Linked Version of git Binaries

As I’ve mentioned before, we use CVS at my job. I use Git for personal projects, and I wanted to install a copy on our build server at work. I have root access to that box, but I prefer to contain my changes to my user when possible. I know that building statically linked binaries is frowned upon, but I didn’t see much of an alternative in my case, at least in the short term. Anyway, here are the instructions I followed:

How to Create a Statically Linked Version of git Binaries:
http://java.dzone.com/articles/how-create-statically-linked.

We run Red Hat Enterprise Linux at work, so I build the git binaries using a CentOS Vagrant image. I had to install the following additional modules:

  • asciidoc
  • gettext
  • glibc
  • zlib
  • zlib-devel
  • zlib-static
  • perl-ExtUtils-MakeMaker

Shake: IOS app to help create legal agreements

Shake logo

Shake allows you to Create, sign and send legally binding agreements using your IOS device.

From the website:

  • When would I use Shake? – We designed Shake to let you quickly record
    agreements for everyday transactions that you otherwise might do with a
    verbal “handshake” agreement. For example, you’re lending someone you know
    $300 – given the stakes, you might not need a long, intimidating loan
    agreement, but wouldn’t it be nice to get something in writing? When does the
    money need to be repaid? Is there a penalty if it’s late? Use Shake to agree
    upfront on simple questions like this and you can avoid hassles later (not to
    mention awkwardness and hard feelings).

  • When should I not use Shake? – Shake isn’t for complex or high-stakes
    transactions. Are you selling your company? Shake is not for that. You should
    talk with a lawyer. Are you selling your used computer on Craigslist or hiring
    a freelance designer for a basic job? Shake is perfect for either of those.

Shake phone image