Posts Tagged ‘tips’

21 Feb 2014
0

Solution to error when downloading Kitchen Sink from Git in Titanium Studio

So after updating my Titanium Studio to release 3.2.0, I wanted to re-download the Appcelerator Kitchen Sink app from Git.

Problem Identified

When attempting to download the Kitchen Sink App, I got an error message along the lines of:

No GIT Executable found in Preferences\Team\Git

This was very strange to me because I never did have Git installed on my MacBook, so why moan about it now?

Solution

What I did to solve the problem was the following:

  • Got to http://git-scm.com
  • Download Latest version of Git – (1.9.0) – (1.6 required according to Titanium, but I downloaded 1.9)
  • Install Git
  • Restart Titanium Studio

And BOOM!!! You can now download the Kitchen Sink and other sample apps.

Enjoy :)
John
8 Oct 2013
6

Connect to a Notes Database on a remote Domino Server via SSJS

The other day I found myself needing to access a Notes Database on a Remote Domino Server via SSJS, but for some reason every one of my attempts failed miserably. No error messages written to the Console, no warnings, nothing.

Let’s quickly create a scenario

  • You have 2 Domino Servers: Server1/ACME and Server2/ACME.
  • On both Servers you have a Notes Database called “Test.nsf”.
  • On Server1/ACME you have a Notes Database with an XPage that calls the following SSJS:
1
2
3
4
5
6
7
var db:NotesDatabase = session.getDatabase("Server1/ACME", "Test.nsf");
 
if(db.isOpen()){
   print(db.getTitle());
}else{
   print('Cannot Open Notes Database');
}
  • Now, in the above example, you are trying to access a Notes Database on the same Server. The above code will successfully connect to the Notes Database and print the Database Title to the Server Console.
  • Next up, you have the following code that runs on the same Server:
1
2
3
4
5
6
7
var db:NotesDatabase = session.getDatabase("Server2/ACME", "Test.nsf");
 
if(db.isOpen()){
   print(db.getTitle());
}else{
   print('Cannot Open Notes Database');
}
  • In this example, you are trying to access “Test.nsf” on Server2/ACME, from a Script that’s running on Server1/ACME. This code will fail and will not provide you with any error message. The NotesDatabase Object will simply remain null.

The Reason

In all my years of developing Notes Applications, I never came across having to connect to a Database on a different Server. The reason the connection fails, is because Server1/ACME is not listed as a Trust Server in Server2/ACME’s Server Document in the Domino Directory.

The Solution

To resolve this issue is simple. The difficult part was finding the problem. If you have access to the Domino Directory on Server2/ACME, do the following:

  • Open the Domino Directory (Server Address Book) on Server2/ACME.
  • Under “Configuration”, click “Servers”, then click on “All Server Documents”.
  • Double click on the Server Document you want your code to connect to. (Server2/ACME in this example)
  • Under the Security Tab, in the bottom left section, there is a field called “Trusted Servers”.
  • In my scenario, this field is empty. Following this example, I would add “Server1/ACME” to this field.

Blog1

  • Save and Close.
  • Restart Server2/ACME.

Once you’ve restarted, your code will successfully connect to “Test.nsf” on Server2/ACME.

Till next time….cheers :)
John
15 Jul 2013
0

Appcelerator Tip: Have Titanium auto login on launch

Here’s a quick tip to for those who use Appcelerator Titanium on Mac OS and discover that a login is required every time you start up Titanium Studio.

I’m not sure why, but somewhere along the road of using Titanium Studio, you suddenly have to provide a username and password on every startup. Now many of you would say…..”oh well, not the end of the world”…..but there’s a small catch. When you provide a username and password and click on the “Login” button, authentication happens online. (i.e. you need to be connected to the internet to authenticate)

If you find that for whatever reason you cannot connect to the internet and you want to start up Titanium Studio…..you’re flat out of luck.

THE PROBLEM IDENTIFIED

After many trial and error tests on my Mac and a couple of searches on Google, I found a special setting in the Mac’s Keychain Access app called equinox.secure.storage. In this setting, “Titanium Studio” was listed twice as an application that’s allowed to access this setting. At first, I tried removing one of the entries so that there’s only 1 “Titanium Studio” listed. That didn’t do the job. I then tried to remove both entries to see if it would reset and re-establish the auto login when I start up Titanium. That didn’t work as well.

Finally, I chose the option “Allow all applications to access this item”. This worked!!

Now, I’m not sure what this means in the bigger scheme of my Mac’s security, but I’m willing to live with it until a proper solution to Titanium Studio’s login issues are sorted out.

WHAT TO DO

- Open the Keychain Access App. I find it’s best just to use the Spotlight Search situated on the top right side of the Mac’s Toolbar.

- Click on “All Items” under the “Category” menu on the left side of the App.

- Using the search field, perform a search for equinox.secure.storage. Double click on the item when it’s returned in the results.

Screen Shot 2013-07-12 at 11.47.32 AM

- Navigate to the “Access Control” tab and select “Allow all applications to access this item“.

Screen Shot 2013-07-12 at 11.48.15 AM

- You will be prompted for your Mac’s Password when you click on the “Save Changes” button.

- Restart or launch Titanium Studio. It should automatically log in.

Cheers for now ;)
John
 

UPDATE NOTE 1: (15th July 2013)

Based on some feedback it seems that the above-mentioned is not guaranteed to solve the issue. I would appreciate suggestions from the online community on what else to try when it comes to this login problem.

UPDATE NOTE 2: (15th July 2013)

Just so that everyone’s aware. An option it to re-install Titanium Studio. This solved the Auto Login issue, but only for a short while. Pretty much a month later Titanium started asking for a username and password. It was then that I attempted the above-mentioned which solved the issue for me.

10 Jul 2013
2

XPages Video Tutorial: Signing a Notes Database using Java

In this video tutorial I show you how to sign a Notes Database using the Server’s ID via Java Code.

In Lotus Notes version 6, IBM introduced a new method for the NotesDatabase Object called “sign()”. this allowed you to sign either the current database or another database using your current Notes ID. The only issue with this is that the Sign Request would only work if triggered manually inside the Notes Client.

For XPages development, this becomes an issue because you cannot perform a NotesDatabase.sign() on the front-end of your XPages Application.

So without further adieu, here’s the Video :)

Cheers
John

5 Jul 2013
0

Appcelerator Tip: What to try if debugger does not launch or times out

In Appcelerator Titanium, when running my app in debug mode, it sometimes takes a few minutes to launch, returning a “Could not start debugger” message. This only happens now and then, so it was a bit difficult to track.

The bad news is that I still can’t seem to find what’s causing the issue. The good news is that I know how to work around it.

What’s causing the problem:

In short, whenever I’m connected to the internet using 3G, my debugger stops working. I would still be able to build and run my mobile app in the iOS Simulator, as long as it’s not in debug mode.

How to work around the issue:

The workaround is to either work offline with your 3G disconnected, or you can connect via Ethernet or W-Fi. I’ve never had any issues running my debugger when offline or connected to a Network. It only seems to be an issue with my 3G connection.

I hope this helps the very few who might face this issue. I’d love some feedback on how to resolve this, but can’t seem to find anything online that can help me.

Cheers for now,
John