Jan 22nd 2010
Please upgrade your Flash Player
This is the content that would be shown if the user does not have Flash Player 6.0.65 or higher installed.

Drupal Jobs is a simple Air app that I did that retrieves the latest drupal job listings from drupal.org. It then displays them in a list, where you can click the title and go directly to the relative web link of that particular job. Drupal Jobs uses a simple RSS feed url as the data source, so it only retrieves the default RSS listing.

I would like to add a custom itemRenderer to have a button for the link and also have that button display the job listing instead the Air app instead of opening up in the browser.

I’ve also included the mxml file from Flash Builder so you can use to your hearts content, even though it would be great if you would give me some credit if you do use it. I know it’s nothing spectacular, but it's FREE and I believe a great example of a simple RSS powered app.

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
					   xmlns:s="library://ns.adobe.com/flex/spark" 
					   xmlns:mx="library://ns.adobe.com/flex/halo" applicationComplete="init()"
					   width="300" height="464" showStatusBar="false">
	
	<fx:Style source="styles.css"/>
	
	<fx:Script>
		<![CDATA[
			import flash.events.Event;
			
			import mx.collections.ArrayCollection;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			import flash.net.navigateToURL;
			import mx.controls.Alert;
			import mx.events.CloseEvent;
			
			[Bindable]
			public var jobs:ArrayCollection = new ArrayCollection();
			
			protected function init():void {
				stage.nativeWindow.x = (Capabilities.screenResolutionX - stage.nativeWindow.width) / 2;
				stage.nativeWindow.y = (Capabilities.screenResolutionY - stage.nativeWindow.height) / 2;
				service.send();
				trace("started service");
				refresh.visible = false;
			}

			public function serviceResult(event:ResultEvent):void {
				trace("trying to get results");
				jobs = event.result.rss.channel.item as ArrayCollection;
				trace(jobs);
				refresh.visible = true;
			}
			
			public function serviceFault(event:FaultEvent):void {
				Alert.show('Sorry, there was a problem connecting to the drupal jobs site.', 'Connection Error', 4, this);
				refresh.visible = true;
			}

			public function serviceActive(event:Event):void {
				trace("active service, getting Jobs");
			}
			
			public function getNewJobs():void {
				service.send();
			}

		]]>
	</fx:Script>
	<fx:Declarations>
		<s:HTTPService url="http://groups.drupal.org/jobs/feed/feedSubscribeHandler.writeContent();"
					   id="service"
					   activate="serviceActive(event)"
					   result="serviceResult(event)"
					   fault="serviceFault(event)"
					   showBusyCursor="true" />
	</fx:Declarations>
	
	<mx:List styleName="list" id="myList" dataProvider="{jobs}" verticalScrollPolicy="auto" horizontalScrollPolicy="off"
			 borderVisible="false" right="0" left="0" top="43" bottom="29" paddingBottom="0" paddingTop="0" paddingLeft="0">
		<mx:itemRenderer>
			<fx:Component>
				<mx:VBox horizontalScrollPolicy="off" verticalScrollPolicy="off" paddingBottom="0" paddingTop="0">
					<fx:Script>
						<![CDATA[
							import flash.net.navigateToURL;

							public function getLink():void
							{
								trace(data.link);
								var urlRequest:URLRequest = new URLRequest(data.link);
								navigateToURL(urlRequest);
							}

						]]>
					</fx:Script>
					<s:Label styleName="titleHeader" text="{data.title}" click="getLink()" buttonMode="true" paddingLeft="15" paddingTop="10" fontSize="15" fontWeight="bold"/>
					<s:Label text="{data.pubDate}" paddingLeft="15"/>
					<mx:HRule width="100%" height="1" strokeColor="#BBBBBB" />
				</mx:VBox>
			</fx:Component>
		</mx:itemRenderer>
	</mx:List>
	<s:Border backgroundColor="#000000" height="31" left="0" bottom="0" right="0">
	<s:Button label="Refresh" id="refresh" click="getNewJobs();" width="70" height="21" left="8" bottom="6"/>
	</s:Border>
	<s:Label x="10" y="10" text="Drupal Jobs" fontSize="24"/>
</s:WindowedApplication>

And here is the Style.css file

/* CSS file */
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/halo";

s|Label {
	roll-over-color: red;
	mouseOver: red;
	selection-color: #C1FFC5;
}

Please let me know what you think, by following me on twitter, @gizmoko

Jan 14th 2010

Overview
Ever wanted to quickly add a tabbed box to your site's sidebar like the many you've seen around the web. Then Quick Tabs is the module for you.

The Quick Tabs module allows you to create blocks of tabbed content for views, blocks, nodes and other Quick Tabs. Clicking on the tab menu item makes the corresponding content display instantly, using ajax or you can opt for the non-ajax mode.

Module Usage
7,902 (as of this posting)

Installation/Dependencies
None

Settings
There are two areas where you can change settings.

1. Site Building
2. Site Configuration

Site Building
Here is where you can see a list of all the Quick Tabs you've created, you can edit, delete and clone these existing tabs. You can create new Quick Tabs by clicking 'New QT Block' and setting these options;

1. Set a block title
2. Choose a Quick Tab style
3. Choose to use Ajax - this determines how content of Quick Tabs will be loaded. (Yes: Tab content will be loaded at tab click. or No: All tabs will be loaded at page load.)
4. Create tab menu item by creating,
a) Tab title
b) Tab type - Block, Node, QTab, View
c) Tab content - Select the content to be displayed in the tab
d) Operations - Delete tab menu item

Site Configuration
You can now select one of the default included tab styles;

1. No style
2. Basic
3. Bullets
4. Excel
5. Garland
6. Mac
7. Navlist
8. Phylactere
9. Sky
10.Zen

Documentation
I found the documentation to be moderate and to the point. Not a lot of detail, could have had more info pertaining to creating a custom tab style.

Community activity
Activity and commits have been frequent. The issues (212 open, 490 total) have been resolved fairly quickly and Bug reports
(44 open, 145 total) are kept to a minimum.

Developer friendly/Customization
I would have to say, YES! With four main selectors you can easily customize a pre-existing tab style. And of course you can create your very own from scratch.

Theme-able
Creating a new Tab style is fairly easy and a matter of duplicating one of the preset styles located in the 'tab styles' folder. Each preset Tab style has two style sheets one for normal left to right languages and another for right to left languages.

Conclusion
Pros: I've found that this is one of the easiest and quick modules when it comes to tabbed box navigation. It's really customizable both with setup and with styling.

Cons: Well it's not all bad but I do wish they had more preset themes, one's that were more user friendly and easy on the eyes. For example there is an example photo of the Quick Tabs that is not included in the preset styles, which I feel should have been added because I think it more modern that the others that are included.

Dec 12th 2009

This a banner and logo I did for my Cousin, Lloyd Conolly who fell ill last year with congestive heart failure. He is currently in Miami Florida receiving treatment and we hope that he can get a heart.

My uncle needed a banner for the Fundraiser they had and will continue to have to raise funds for his medical bills. I think he might want a website, so I might have a design to show soon for that. Now if only they (the world) will get inline with this stem cell research, then everyone that needs a heart could get one.

Nov 18th 2009

Here is an example of the latest work I've done at work in flash. It's nothing fancy, just some simple as3 functions on the timeline to control the pop-ups and movieClips for the turtle animations. http://www.constitution.gov.ky

Nov 11th 2009

I released this game about a 2 month ago and man what an experience. This game was for me a test to see if I could do it. Check it out http://www.mochimedia.com/games/wubble/

The Basis
Wubble was kinda of based off of this game my finance has for the Nintendo DS (the name escapes me right now), plus some ideas we were discussing while eating some conch fritters (mmm).

Design
I can't quite say if the design or the development took longer, but I did have many revisions on my initial layout. I actually cut back the original idea, which was to have many different scenes that the player could play, but due to time and work constraints I couldn't.

Development
Well this was my first flash based game and looking back and at my code, I'm now like, "Oh yea!, I can fix that!". Yea there so much I want to fix with the code and make it small and lighter, sigh.

But again I've got many things going on. I think one of the most interesting things I discovered was that creating functions for the handling the array and scrambling the words took much much longer than I expected.

I also ported the game to facebook, but it was more or less an after thought late at night and to me not a great usage of the facebook api.

Ads
Now this is a very interesting topic. And one of which I would like to say that from my personal experience is that to make money with ads in your flash games then you better have alot of luck. Or you can do a clone of the most popular flash game out there. In the end I still feel that it works out for the best for developers to just try selling the damn game or getting sponsored.

Conclusion
It was a good experience and I quite enjoyed it and since then I've been trying to find time to start two other ideas I have for games. Until then try the game http://www.mochimedia.com/games/wubble/