Showing posts with label javascript. Show all posts
Showing posts with label javascript. Show all posts

Sunday, 23 December 2007

Moonshine


pa loved his ol' moonshine.

I've been working on a project to integrate Lua with the Firefox web browser, in the form of an extension which adds support for the language to write background services or on-demand applications to run directly in the browser.

I have yet to write more code to get the integration working. I will enter this project into the Mozilla Lab's extend Firefox Contest. So hopefully, I'll have enough implemented by the deadline.

For more information, please see the Google code project page.


Image courtesy of ladyphoenixx_1999 (CC-BY-NC-ND)

Digg This Story

Monday, 15 October 2007

Digg API on AIR

Digg API on AIR

Larger screenshot on Flickr.

Hey, everyone. I do have a programming related post today.

I have been coding in JavaScript, XML/HTML and CSS to create the above simple Digg API AIR application, which retrieves the top (e.g. newest) story for each category on Digg.

I have as good as finished it and will be releasing the AIR installation package (*.air) and source code (*.zip) for anyone who is interested in the AIR platform to look at.

Although I could have done an XmlHttp request without any additional framework, I did use the Prototype JavaScript framework for this project.


Here is a quick rundown of the files used in my application and their purpose:


DiggAPI.xml - This is the file which specifies the name, copyright information and file to use for content, etc. An XML file such as this is a standard requirement in any AIR application.


DiggAPI.html - The application content. This contains all of the HTML code for my application and calls to the neccessary JavaScript functions in my external *.js files.


sampleCert.pfx - The certificate used to sign the AIR application. All AIR applications must be signed to be built, even if not by a recognised body such as VeriSign.


script/AIRAliases.js - JavaScript file containing code used by the AIR runtime. Referencing this file provides convenient aliases for use in your code. Included with AIR SDK.


script/prototype.js - JavaScript file containing code for the Prototype framework. I used the cross-browser new Ajax.request provided by Prototype in my application.


script/DiggAPI.js - JavaScript file containing my code used by the application.


style/DiggAPI.css - Style sheet used to format my links and text colours, etc in my application.


style/digg.png - Digg guy logo image used in my application.


Check back soon for included AIR package and source code. Happy coding. :)



Digg This Story

Tuesday, 9 October 2007

Syntax highlighter script

I have been trying to write a simple script in JavaScript to highlight source code in a element such as the code.

Here is the code:

/*
Syntax highlighter for source code
Copyright (c) 2007 Samuel Saint-Pettersen
This script is licensed under the GPL
http://www.gnu.org/copyleft/gpl.html
*/

function syntaxHighlight()
{
var element = "code"; // element for source code
var attrib = "class"; // attibute for language

// count all code elements
var codes = document.getElementsByTagName(element);

// get contents and class value for each code element
for(var a = 0; a < codes.length; a++)
{
var code = codes[a];
var contents = code.innerHTML;
var language = code.className;

if(language == "boo")
{
// define first keywords
var keyw1 = new Array();
keyw1[0] = "def";
keyw1[1] = "print";
keyw1[2] = "if";

// colour first keywords
for(var b = 0; b < keyw1.length; b++)
{
var regex = new RegExp(keyw1[i], "ig");
var matched = contents.match(regex);
var keyword = matched.toString();
var repl = keyword.fontcolor("blue");
codes[i].innerHTML = contents.replace(regex, repl);
}
}
}
}

Problem I have with this code is that after the first keyword is coloured, the loop does not seem to continue. Hmmm... If anyone knows what I'm doing wrong, please leave a comment. Thanks.

Digg This Story

Tuesday, 2 October 2007

Adobe AIR

helloworld application for AIR
Today I decided to check out Adobe AIR.
AIR (Adobe Integrated Runtime) is a runtime platform / environment which allows the creation of desktop applications which use existing web technologies such as HTML and AJAX.
Since it is Adobe, unsurprisingly, it also has support for Flash.

To develop an AIR application, all you need is the AIR SDK (which is freely available from Adobe Labs) and your exisiting development tools. E.g. your text editor for your code.

Following the tutorial for developing for AIR with HTML and AJAX, I coded the customary Hello World application.

The tutorial, you follow for its output is complicated. But I think this is due to the demonstration of how a more complex AIR application should be coded. E.g. You use an XmlHttpRequest to display the message to the user.

Development of the AIR application was quite straightforward, so maybe I'll develop something which uses the Digg or YouTube APIs in it.

Digg This Story

Digg API and Greasemonkey


I wrote this straightforward Greasemonkey user script in JavaScript using Greasemonkey's implementation of an XmlHttpRequest:

// Digg API script
// version 1.0
// Copyright (c) 2007 Samuel Saint-Pettersen
// Released under the GPL licence
// http://www.gnu.org/copyleft/gpl.html
// ---------------------------------------------------------------------
// This is a Greasemonkey user script.
// To install it, you need Greasemonkey:
// http://greasemonkey.mozdev.org
// ---------------------------------------------------------------------
// ==UserScript==
// @name Digg API script
// @version 1.0
// @author Samuel Saint-Pettersen
// @description Utilise the Digg API
// @include *
// ==/UserScript==
(function() {
GM_xmlhttpRequest({
method: 'GET',
url: "http://services.digg.com/stories/topic/gadgets?count=1&
appkey=http://apidoc.digg.com&type=xml",

onload: function(responseDetails) {
var response = responseDetails.status;
var returned = responseDetails.responseText;
if(response != "200")
{
// if the request fails, display error message
alert("Error retrieving Digg Data");
}
else
{
// display Digg data in message box
alert(returned);
}
}});
})();

The Greasemonkey script request returned fine.
I wonder what it is with my .NET application which meant it didn't work?

Digg This Story