zerorpc: Python RPC implementation based on zeromq and messagepack

https://github.com/dotcloud/zerorpc-python

zerorpc is a flexible RPC implementation based on zeromq and messagepack.
Service APIs exposed with zerorpc are called “zeroservices”.

zerorpc can be used programmatically or from the command-line. It comes with a
convenient script, “zerorpc”, allowing to:

  • expose Python modules without modifying a single line of code,
  • call those modules remotely through the command line.

It looks like it used gevent for concurrency.

gitflow: Git extensions for Vincent Driessen’s branching model

gitflow screenshot from Vincent Driessen's blog

https://github.com/nvie/gitflow

These are git extensions that make it easier to use the Git branching model the Vincent Driessen proposed in this blog post.

Unfortunately, we’re still using CVS on my team at work, but we’re looking to switch to a more modern source control system soon. I’m lobbying for Git, but Subversion is the more likely choice.

Here are a couple more resources that talk about the gitflow branching model:

Sphinx: A powerful documentation creation tool written in Python that uses the reStructuredText markup language

Sphinx Logo

http://sphinx-doc.org/ (via)

According to the website, Sphinx…

…has excellent facilities for the documentation of Python projects, but C/C++ is already supported as well, and it is planned to add special
support for other languages as well.”

Sphinx outputs in the following formats…

HTML (including Windows HTML Help), LaTeX (for printable PDF versions), ePub, Texinfo, manual pages, plain text

Thymeleaf: Extensible Java-based XML / XHTML / HTML5 template engine

Thymeleaf Logo

A Java templating language. I like how the syntax modifies attributes on existing tags like this:

<input type="text" th:field="*{name}" />

From the Thymeleaf website:

Thymeleaf is a Java library. It is an XML / XHTML / HTML5 template engine
(extensible to other formats) that can work both in web and non-web
environments. It is better suited for serving XHTML/HTML5 at the view layer of
web applications, but it can process any XML file even in offline environments.

It provides an optional module for integration with Spring MVC, so that you
can use it as a complete substitute of JSP in your applications made with this
technology, even with HTML5.

The main goal of Thymeleaf is to provide an elegant and well-formed way of
creating templates. Its Standard and SpringStandard dialects allow you to
create powerful natural templates, that can be correctly displayed by browsers
and therefore work also as static prototypes. You can also extend Thymeleaf by
developing your own dialects.

Sample markup

<table>
  <thead>
    <tr>
      <th th:text="#{msgs.headers.name}">Name</th>
      <th th:text="#{msgs.headers.price}">Price</th>
    </tr>
  </thead>
  <tbody>
    <tr th:each="prod : ${allProducts}">
      <td th:text="${prod.name}">Oranges</td>
      <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td>
    </tr>
  </tbody>
</table>

Spek: BDD Specification Framework For The JVM

http://jetbrains.github.io/spek/ (via)

Sample code from the Spek website written in the Spek DSL:

class TaxCalculatorSpecs: Spek() {{

    given("Tax rate calculator with default locale settings") {
        val taxRateCalculator = TaxRateCalculator()
        on("calculating the rate for an income of 200 and an average change of 10 per semester") {
            val value = taxRateCalculator.calculateRate(200, 10)
            it("should result in a value of 300") {
                assertEquals(300, value)
            }
        }
    }
}}