The programming language at the heart of the popular Ruby on Rails web framework. Developed in Japan in the mid-1990s, Ruby has become a force to be reckoned with in the web programming world. The combination of its easy-to-read syntax and its powerful language constructs has helped many recovering C and Java developers re-learn a passion for programming.

Ruby on Rails

The web framework that started it all. Rails was originally released in 2004 as an open-source Ruby-based framework and changed the name of the game for web developers. Through its philosophy of "convention over configuration", Rails has taken a lot of the guesswork out of important matters like security with sane defaults that help protect your business and customers from fraud and malicious attacks.


Taking the grunt work out of writing JavaScript for all browsers, jQuery has become a standard JavaScript library, used by millions of sites globally to simplify their code and get work done more quickly than using vanilla JavaScript. It's powerful, simple syntax makes it a natural fit for almost any project, doing in a single line what used to take dozens the old way. By directly tweaking the objects that underly any webpage, jQuery enables us to do some very powerful manipulations on your site and is the difference between having a boring static site or something that is completely reactive to the user.


Often billed as the social network for coders, Github is an innovative sourcecode hosting service that makes it incredibly easy for groups to share their code and their changes with each other. On top of that, it makes accessing open-source projects like Ruby on Rails simple, enabling us to see the actual source code of the projects we're working on and make any changes or fixes necessary to the actual projects themselves, saving us and thousands of other developers the efforts of working around any issues encountered.


With a longtime reputation for stability, robustness and accuracy, Postgres is the go-to database for starting new projects, both for small business and large. In the old days, people used to say "Mysql if you want speed, Postgres if you want all the features of Oracle" but, thanks to performance enhancements over the last few years, you can get the best of both worlds with Postgres today. The Postgres team has made it their mission to be a fully-compliant database that conforms to the ACID (Atomicity, Consistency, Isolation, Durability) standard that other professional databases conform to and the database takes data integrity performance seriously. If you need to know that your data is correct, everytime, this is the database for you.


MySQL, the longtime champ of free and opensource databasing, MySQL is the favorite database of many startups. Known for its incredible ease of use and performance, the MySQL team has not been afraid to break the rules a bit when doing so could mean a faster database. Any group of developers worth its snuff is going to have to understand MySQL and it is no different at MojoWare.


MongoDB is one of the most popular "NoSQL" databases that have become all the rage the past few years amongst tech companies. Not a traditional relational database at all, MongoDB is actually a simple "document store" only with a focus on performance and scalability over absolute conformance to any database standard. Because of this, MongoDB has very particular usage criteria, but when its needed, we're ready to give it a go!


A relative newcomber to the web server scene at 8 years old, Nginx has become a powerful contender for the web server performance crown. Lighter-weight and more efficient than Apache, Nginx has become our go-to web server for all new projects. By using less memory, Nginx is perfect for use on Virtual Private Servers (VPS) like we use to host all our projects. This is one piece of your application puzzle that you know you can rely on.


The San Antonio-based hosting company Rackspace is our host for all projects we start. Offering every kind of plan imaginable, we use their Virtual Private Server (VPS) system to host our projects in the cloud. When we need more power for your application, just a couple clicks of a button and we can increase the resources available to your server. By letting Rackspace take care of the nitty-gritty, you know that you have experts ready when your server goes down from a locally-owned name you can trust.


Redis is a special type of database that operates entirely in memory. Because of this and the fact that the Redis developers are less stringent about conforming to data integrity rules compared to groups like Postgresql, Redis is blisteringly fast and can be used in conjunction with a traditional database to help speed up the parts that can get bogged down the traditional way.


Ubuntu is a popular Linux distribution based on the venerable Debian distribution, but with defaults that make it a little easier to work with for day to day development activity. Backed by the organization Canonical, we use their Long Term Support (LTS) releases to ensure that we can always go back to the root if there is a problem with the software or operating system itself. But who are we really kidding, Ubuntu usually just works, and odds are strongly in your favor that by the time you run into an issue, with a community as large as Ubuntu's, its already been fixed.


Node is JavaScript for the server. That might not seem very important until you realize that JavaScript is one of the most popular languages today (the most popular on Github by far) and is being learned by millions through services like Codecademy, meaning Node will only have more and better libraries and coders available over the next few years. Using JavaScript on the backend also has other benefits, namely in speed and concurrency since Node replaces the traditional web server (like Nginx) and instead uses a so-called Event-driven model that works great when you need to handle a ton of users making requests all at the same time (like for a chat room). We've used Node a few times to handle events in near real-time and we're excited about more possibilities to use Node in the future!


Haml is the cleaner, easier, simpler way to write HTML. By removing a lot of the junk that adds visual noise and complexity (like the seas of HTML closing tags at the bottom of every page), Haml means you write less code to get the job done. Less code means less chance for errors and easier editing when you come back to your site a year or two after writing it. Haml also plays nicely with Rails and helps keep the focus on writing good, clean code.


Writing CSS stinks. We all hate it. By the time you get your design looking perfect in every browser, its not uncommon to find yourself drowning under a deluge of unmanageable CSS rules. On top of that, with every new feature added to CSS, you have to learn all the new syntax for each browser until its standardized. It's not fun to keep up with and can cause major issues during any site changes or refactoring. This is where Sass comes in. Sass gives you basic constructs like variables and rule nesting which can go a long way to organizing your code. Instead of having related CSS rules flung all over the place, finally we can organize our code properly and allow complete site changes by editing a few variables rather than every value in the stylesheet. What a life-saver!


Xcode is an IDE created by Apple used to create apps for iOS (iPhone/iPad) or OSX. Using a highly intuitive interface builder, Xcode makes it a cinch to build compelling layouts and to speed up the process of writing the often-complex and tedious code required for mobile devices. Along with that, Xcode also makes it easier to keep up with latest mobile programming trends by helping you with some of the more complicated additions to iOS programming over recent years like Automatic Reference Counting and Storyboards.


Android is a mobile operating system built by Google that uses the combination of a heavily-modified Linux kernel and the Java programming language to bring a strong, open-source development option to mobile. Thanks to the decades of experience in systems programming shared by the developers at MojoWare, you always have the option to have native apps built for Android or other mobile platforms, ensuring customizability and performance that would be hard to match with a more abstracted development process.


Unicorn has rapidly become the de facto standard Rack server for Ruby applications. Light-years ahead of its predecessors, Unicorn's smart process management helps to guarantee that you won't encounter strange memory leaks, server restarts or downtime during your day to day operations. Paired with the Nginx web server, Unicorn is quite powerful and efficient and is the same setup many successful, large Ruby operations like 37Signals and Github use.


HTML 5 is the latest iteration of the ubiquitous HTML standard that adds support for modern features like compressed video, a canvas for building graphical applications or games, elements to help make your site's code less tangled and messy and cool, as well as cutting edge features like drag and drop and local storage that previously only worked through quirky JavaScript hacks.