Tag Archives: GitHub

5 Open source Force.com projects for Admins and Developers

I’ve previously mentioned the growing popularity of Force.com projects on github and I wanted to call out a few that are likely to be interesting to most developers out there.

Infinite Scroll

Infinite scroll has been a popular concept on the web for a while now, and is a neat alternative to pagination in some cases. This Force.com project allows you to add the infinite scroll capability to your Visualforce pages by dropping the required components into your project.


Stratosource is an incredible project that aims to be your one-stop-shop for backup, source control and release management on Force.com.


Milestones is has been around for a good while now and is an incredibly competent project management tool from Force.com Labs.

Find Nearby

Another great application from Force.com Labs, this one (in it’s current form) allows you to find and map Accounts, Contacts and Leads within a certain area.

Automated Testing for Force.com

Getting fully featured Continuous Integration up and running can be complicated. Automated Testing for Force.com gives you many of the features of CI, but in an easy to install and configure package!

If there are any other great open source projects out there that you’ve found useful I’d love to hear about them too.

Tagged , , , ,

The rise of the Force.com Platform

“The Force.com Platform is growing.”

For anyone in enterprise development this is an obvious statement, what might not be so obvious is why it’s growing. Or how the heck it’s growing at such a frenetic pace. There are some great, recent articles out there that postulate on this point. “Great vision” they say, or “Great execution”. Of course these things are true, salesforce.com is unique in its sales, marketing, vision and execution putting it leagues ahead of others, but I think that there is a greater factor that eclipses all other points.

If a developer doesn’t care for your platform and platform tools then you won’t have anyone to deliver, a dead-end that many companies have found the hard way. But with the Force.com Platform – for the first time in the history of the world (I’m taking liberties) – enterprise software development is cool. And not just a little bit cool either, we’re talking jQuery-Ruby-zomgHowCuteIsThatCat cool.

But don’t take my word for it. Go out there and ask the community, or even better just look at the Apex page on github.

Apex on Github

Apex on Github

69th position might not seem all that good but let’s see where ABAP (SAP-proprietary language) is featured in the list, hmmm. Oh it’s not, what a surprise. The exact ranking is not that important though (it’s was in 70th position 1 week ago so it’s climbing folks!), what is important is that a very young, proprietary programming language has seen wide enough adoption to gain its own category on github at all, and that the open source community is building with it!

Developers drive the state of the Internet, they’re the people who see new trends emerging ahead of others and are typically the early adopters that determine whether a technology makes it to the business-viable stage. The developers of the enterprise world have given the Force.com Platform their blessing, a rare and powerful thing, and salesforce.com is now reaping the incredible benefits.

If you’d like get a great overview of the platform capabilities the VP of Dev Relations will be in London next week and he’s talking about the platform at a free public event that you’re all invited to!

Tagged , , ,

GitHub Pages, CSS3, and HTML5

Recently, I decided to take a look at HTML5 and CSS3 and build a website on GitHub, which offers many cool features in addition to being a social code repository. Website hosting on GitHub is called Pages.

GitHub Pages

First, you need to have a GitHub account. Next, you need to create a repository named <username>.github.com to correspond to your GitHub user account.

You can also create Pages for your individual GitHub projects. For example, I have a project called dvdflex. So I’ve created a new branch called gh-pages, which contains regular HTML files and static elements, i.e. images, etc. The gh-pages branch is used for the website, whereas the “main” branch stores the project source code. Hence, my project’s web pages can be seen at: http://raygao.github.com/dvdflex/

GitHub also provides an Automatic Page Generator feature, allowing you to import a project’s Readme file. The steps are simple:

  1. Click the project’s “Admin” tab.
  2. Click the “Automatic Page Generator” button.
  3. Click the “Load Readme” button.
  4. Select your layout template and publish.

(You can view detailed instructions here.)

It does take several minutes before GitHub is ready to serve up your website. You will be notified by email and on GitHub.

If you set up DNS forwarding for your domain, this can be your free website!

Now let’s talk about HTML5 and CSS3.


HTML5 is being hailed as the new venue for rich media integration / presentation and mobile device support.

It offers many neat features, some of which are:

  1. Liberation from SGML: It now provides a <canvas> element, allowing you to add free from visual elements (here are some cool examples).
  2. Extensive rich media support: It’s a good alternative to Adobe Flash. Key tags include <audio> & <video>.
  3. Geo-location support: The browser can detect a user’s current position with the navigator.geolocation.getCurrentPosition() javascript API.
  4. Web storage: Previously, web browsers used cookies to store client-side information, and were limited to approximately 4 KB (~4096 characters) of data. Web storage means being able to store much more information at the client side, using either localStorage or sessionStorage. (Of course, browsers have different storage limits, usually 5-10MB.
  5. Web worker: In pre-HTML5 days, web browsers could be bogged down by complex javascript. This issue is particularly noticeable in AJAX calls, when response times from external servers are not guaranteed. HTML5 solves this problem by introducing a new “Worker” javascript object, allowing multiple tasks to be executed in parallel. (More on the “worker” object)

Some useful new tags include: <article>, <nav>, <section>, <header>, <footer>, <figure>, <aside>, <progress>, <meter>.

Several new form types include {date time}, {datetime-local}, {date}, {month}, {week}, (more on new form types).

It’s worth noting that Chrome and Safari offer the most support for HTML5, while Firefox lags behind. (Check out Safari’s cool HTML5 demo here)


CSS3 makes your website really sharp. Some of the highlights include:

  1. Round corners: Via -moz-border-radius (Firefox) or -webkit-border-radius properties.
  2. Background content: Via background-origin and background-clip.
  3. Web fonts: Beautiful text layout and effects (view some examples here).
  4. More colour choices: HSL, HSLA and RGBA are the new colour schemes.
  5. Transition and text effects: Like shadows, transparency, fade-in, dissolve, slide-in.
Tagged , , ,

So you want to play with Ruby?

Last week I heard two people complaining about how difficult it is to install Ruby on a Mac and start coding with all our precious gems. They deserve explanations.

Alright let’s have a quick look at that and install our Ruby env with all tools required to code and deploy on Heroku.

Being able to compile

First of all you need GCC aka the compiler. Previously it was packaged along with XCode but it’s not the case anymore. You can get GCC from github. Download it and just unpack it as usual.

New packaging system

If you’re bored of macport or if you don’t know it already try Homebrew. Homebrew is a package installer based on recipes. To install it type:

/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"

The script installs Homebrew to /usr/local so that you don’t need sudo when you brew install. It is a careful script, it can be run even if you have stuff installed to /usr/local already. It tells you exactly what it will do before it does it too. And you have to confirm everything it will do before it starts.

The Ruby env

I suggest you to install rbenv, a ruby version manager. RVM was the first and awesome one but heavy to maintain and weirdly plugged into the system. To install rbenv and ruby-install (the rubies installer):

brew update
brew install rbenv
brew install ruby-build

Then to install the last Ruby version and update your system:

rbenv install 1.9.3-p125
rbenv rehash
rbenv global 1.9.3-p125
gem update --system

This will quickly install ruby 1.9.3 patch 125 (the latest one today), define it as the default Ruby version and update your gems. Now add the following lines to your .bash_profile:

export PATH="$HOME/.rbenv/bin:/usr/local/bin:/usr/local/sbin:$PATH"
eval "$(rbenv init -)"

I know that was a lot of manipulation just to install Ruby but now you’ll be able to add any ruby version you want for a specific project or just for the sake of trying it !! Restart your terminal then check your Ruby version:

ruby -v

GIT, THE Version control tool

I have tried CVS, SVN and Git. GIT is  definitely the best Version Control management tool. That’s said. Simple. To install it we’ll use brew:

brew install git

You’re DONE !!

Now you have a working env with as many ruby version as you want, a new (efficient) package manager and git command. To start hacking just git clone an OpenSource project from github like:

git clone git@github.com:vzmind/salesforce-padrino.git

That will create a salesforce-padrino folder and pull into the project code from github. When your modifications are done on that project and you want to deploy that code to Heroku, you’ll have to launch:

heroku create
git push heroku master

The last step clearly deserves more explanations but it’s clearly a different topic (choosing your IDE, creating an Heroku app, using Git).

Tagged , , , , , ,