Teracy's Blog

Get experience shared!

Manage Software Dependency With Semantic Versioning

Do you know what it means to release your software labeled with alpha, beta, release candidate or final release? When and where to increase the number range? What’s the difference between 0.1.0, 1.0.0, 1.2.0 and 2.0.0? We’re going to make it clear on this post.

Automatic Sphinx Docs Deployment With Sphinx-deployment

At Teracy, all our documentations are written with the help from sphinx1. It’s easy to setup and manage. However, we could not find a good enough deployment solution for sphinx documentation project. What does “good enough” here means? It means:

  • The installation and configuration should be easy with git and command line.

  • The deployment could be “decoupled” from sphinx project for easy upgrade and maintenance. It’s better if we could have this deployment solution provided by sphinx out of the box.

  • The deployment should support as many services as possible: github pages 2, Rsync3, and PaaS4 services like heroku5, etc.

  • The usage should be easy like:

    • $ make setup to setup deployment basing on the configurations
    • $ make generate to generate content basing on the configurations
    • $ make deploy to deploy the project basing on the configurations

Multiple Github Custom Domains

Today we’re going to share with you the way to use multiple github custom domains as we did with our teracy-official organization account.

As we know, there are two types of github pages: user/ organization pages and project pages 1. Our organization account is located at: https://github.com/teracy-official

By default, http://teracy-official.github.io will point to teracy-official.github.io’s master branch. And teracy-official.github.io/<project_name> will point to the project’s gh-pages branch if it’s available.

With our requirements, we don’t want to use http://teracy-official.github.io but http://teracy.com and http://teracy.org only. That’s why we have to setup multiple github custom domains 2.

Keep, Share and Manage Top Secret Resources With Git-encrypt and Gitolite

Recently, we have a problem of top secret resources sharing that we need to resolve. Let me start by a story.

As a startup of 2 co-founders, we have common top secret resources to be shared with each other. These common resources include credentials of many services (email, VPS, social networks, etc.), secret plan, road-map and secret documentation files. And we need to find a way to keep, share and manage these resources securely.

A Separated Django Application With Unit Tests, Coding Convention Checking and Coverage Report

Today we’re going to share with you how to create a separated Django application with the following requirements:

  • must be a separated Django application for easier packaging and distribution.
  • must be tested like it was tested within a Django project for the same development experience whether the application is within a Django application or a separated one.
  • must have test coverage report to check the quality of project.
  • must have coding convention checking for consistent style and best practices.
  • must be built by travis-ci (or other ci system).

How to Add Facebook Like-box to Octopress

We’ve just added the Facebook like-box to the default asides as you could see it on the right sidebar and we want to share the way to do the same for your octopress blog.

By the way, you should like our Facebook page to see how it works and to get news about us :).

There is an existing plugin at https://github.com/geetotes/octopress-facebook-likebox introduced by https://github.com/imathis/octopress/wiki/3rd-party-plugins that does the work, however, we don’t think that plugin approach meets our requirements from our development philosophy.

Teracy: “Hello World!”

Hi, this is our official blog and this is the first post to say “hello” to the world.

We have a clear mission for this blog: share any experience during our development path that we think it’s useful.

We’re starting up and there are tons of things to do. Stay tuned with our upcoming blog posts!