Skip to content

Instantly share code, notes, and snippets.

@yeehaa123
Created August 5, 2013 04:32
Show Gist options
  • Save yeehaa123/6153524 to your computer and use it in GitHub Desktop.
Save yeehaa123/6153524 to your computer and use it in GitHub Desktop.

This Site

This site is composed of a frontend site that communicates with several services.

The frontend is built in AngularJS running on a static node server.

https://github.com/yeehaa123/codingthehumanities

The services use Sinatra to parse data from external API's and store it in Redis keyvalue stores for fast retrieval.

https://github.com/yeehaa123/gist-humanities

https://github.com/yeehaa123/stream-humanities

https://github.com/yeehaa123/twitter-humanities

The other links on this page refer to the various open source tools that we have used to build this site.

AngularJS

AngularJS lets you write client-side web applications as if you had a smarter browser. It lets you use good old HTML (or HAML, Jade and friends!) as your template language and lets you extend HTML's syntax to express your application's components clearly and succinctly. It automatically synchronizes data from your UI (view) with your JavaScript objects (model) through 2-way data binding. To help you structure your application better and make it easy to test, AngularJS teaches the browser how to do dependency injection and inversion of control. Oh yeah and it also helps with server-side communication, taming async callbacks with promises and deferreds; and make client-side navigation and deeplinking with hashbang urls or HTML5 pushState a piece of cake. The best of all: it makes development fun!

AngularJS Git Repository: https://github.com/angular/angular.js

Sinatra

Sinatra is a Domain Specific Language (DSL) for quickly creating web-applications in Ruby. It keeps a minimal feature set, leaving the developer to use the tools that best suit them and their application. It doesn't assume much about your application, apart from that:

  • it will be written in Ruby programming language
  • it will have URLs
  • In Sinatra, you can write short ad hoc applications or mature, larger application with the same easiness.

You can use the power of various Rubygems and other libraries available for Ruby. Sinatra really shines when used for experiments and application mock-ups or for creating a quick interface for your code.

It isn't a typical Model-View-Controller framework, but ties specific URL directly to relevant Ruby code and returns its output in response. It does enable you, however, to write clean, properly organized applications: separating views from application code, for instance.

source: Sinatra Book

Sinatra Git Repository: https://github.com/sinatra/sinatra

Sass / Compass

Sass is a meta-language on top of CSS that's used to describe the style of a document cleanly and structurally, with more power than flat CSS allows. Sass both provides a simpler, more elegant syntax for CSS and implements various features that are useful for creating manageable stylesheets.

Sass Git Repository: https://github.com/nex3/sass

Compass is an open-source CSS authoring framework which uses the Sass stylesheet language to make writing stylesheets powerful and easy.

Compass Git Repository: https://github.com/chriseppstein/compass

Redis

Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.

You can run atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing to a list; computing set intersection, union and difference; or getting the member with highest ranking in a sorted set.

In order to achieve its outstanding performance, Redis works with an in-memory dataset. Depending on your use case, you can persist it either by dumping the dataset to disk every once in a while, or by appending each command to a log.

You can use Redis from most programming languages out there.

Redis Git Repository: https://github.com/antirez/redis

Ruby Client for Redis API: https://github.com/redis/redis-rb

Git

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.

Git Git Repository: https://github.com/git/git

Ruby Client for Github API: https://github.com/octokit/octokit.rb

Markdown

Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).

Thus, "markdown" is two things: (1) a plain text formatting syntax; and (2) a software tool, written in Perl, that converts the plain text formatting to HTML. See the Syntax page for details pertaining to Markdown's formatting syntax. You can try it out, right now, using the online Dingus.

The overriding design goal for Markdown's formatting syntax is to make it as readable as possible. The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it's been marked up with tags or formatting instructions. While Markdown's syntax has been influenced by several existing text-to-HTML filters, the single biggest source of inspiration for Markdown's syntax is the format of plain text email.

Source: http://daringfireball.net/projects/downloads/Markdown_1.0.1.zip

Ruby Markdown Client: https://github.com/vmg/redcarpet

Bootstrap

Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created and maintained by Mark Otto and Jacob Thornton.

Bootstrap Git Repository: https://github.com/twbs/bootstrap

Sass implementation of Bootstrap: https://github.com/jlong/sass-bootstrap

Yeoman

Yeoman is more than just a tool. It's a workflow; a collection of tools and best practices working in harmony to make developing for the web even better.

Our workflow is comprised of three tools for improving your productivity and satisfaction when building a web app: yo (the scaffolding tool), grunt (the build tool) and bower (for package management).

  • Yo scaffolds out a new application, writing your Grunt configuration and pulling in relevant Grunt tasks that you might need for your build.

  • Grunt is used to build, preview and test your project, thanks to help from tasks curated by the Yeoman team and grunt-contrib.

  • Bower is used for dependency management, so that you no longer have to manually download and manage your scripts.

All three of these tools are developed and maintained separately, but work well together as part of our prescribed workflow for keeping you effective.

Yeoman Git Repository: https://github.com/yeoman/yeoman.io

Other

Twitter Gem A Ruby interface to the Twitter API.

Tweetstream Gem TweetStream provides simple Ruby access to Twitter's Streaming API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment