Dienstag, 28. August 2012

Js Modules with Titanium Appcelerator Framework

Here are the two ways you could currently use JS modules within the Titanium Mobile Framework from appcelerator:

1. Function Module

Assume you have a FunctionModule.js with the following content:

// an internal variable, which is only accesible within the module
var internalMsg = "Only visible within the module";

// an exported function, which this module offers
exports.hello = function(msg) {
alert('your message: ' + msg + ' internal message: ' + internalMsg);
}


you could use you module like this:

// reference the module
var fmo = require('/ui/common/FunctionModule');

// call the exported function
fmo.hello('External Message');










// no access from the outside to the internal variable
alert('interal var from module: ' + fmo.internalMsg)




2. Object Module

Assume you have a ObjectModule.js with the following content:


// constructor of your object
function Sample(name) {
   this.name = name;
}
// function, which alerts the current name
Sample.prototype.showName = function() {
alert('Name: ' + this.name);
}
// function, which sets the name
Sample.prototype.setName = function(name) {
this.name = name;
}
// you just export your Object and override the methods as prototypes
module.exports = Sample;


you could use you module like this:


// reference the module
var SampleModule = require('/ui/common/ObjectModule');
// Create a sample Object
var sam = new SampleModule('Fred');
// call a Method
sam.showName();

// change the internal name
sam.setName('Hugo');
sam.showName();













Dienstag, 21. August 2012

Avoid the git username password prompt

Coming from cvs and svn I tend to clone git repos with https, which work but ask for the username password every time you connect.
To avoid the prompt you should use the ssh url an be done with it. If you already use a repo and want to switch to ssh follow the following steps



1. git remote show origin
Password for 'https://username@bitbucket.org': 
* remote origin
  Fetch URL: https://username@bitbucket.org/username/reponame.git
  Push  URL: https://username@bitbucket.org/username/reponame.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)
2. git remote set-url origin git@bitbucket.org:username/reponame.git

3. git remote show origin
* remote origin
  Fetch URL: git@bitbucket.org:username/reponame.git
  Push  URL: git@bitbucket.org:username/reponame.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

You can easily get the URL for your repo from your Github, bitbucket or wherever you are hosting your repo. If you get a response i.e. like this


Permission denied (publickey).
fatal: The remote end hung up unexpectedly

then you might forgot to put your ssh key on the github repo server.