I’m happy to announce that I have three new Alagad projects to announce. As with most other Alagad projects these are all free and open source. Please share and enjoy!
http://www.alagad.com/projects.coldBooks
ColdBooks is a free and open source tool that allows ColdFusion developers to work with data stored in Intuit QuickBooks. ColdBooks attempts to simplify the process of communication with QuickBooks by integrating with the ColdFusion administrator and allowing users to create and use connections to QuickBooks in a manner similar to ColdFusion data sources.
Essentially, it’s a tool that you drop in under the ColdFusion CFIDE/administrator directory and can use to establish connections to QuickBooks via the Quickbooks web connector. You can then use services that this tool provides within your application to do pretty much anything that the QuickBooks API supports. This includes reading and writing employee, customer, vendor, invoice, check and many other types of data.
We’re still working on implementing this at Alagad, but we’ll soon be using this to connect our project management and time tracking tools directly to QuickBooks. (We actually already do this via a different unreleased too, but it’s very unreliable. So, I’m excited to get ColdBooks rolled out.)
http://www.alagad.com/projects.imapGateway
How many times have you needed to interact with emailed data in your ColdFusion applications? Well, maybe not that often, but when you’ve had to it’s always been a pain in the rear. Traditionally, you’d have to create a scheduled process that would run every few minutes to check for new messages in your POP account. This is slow, unreliable and can be problematic. What if you needed (or wanted) a more efficient and nearly real-time system?
The Imap Watcher Event Gateway works like the Directory Watcher Event gateway in that it can watch a folder on your IMAP server and, as soon as a new message appears, it can announce an event to a configured CFC that can do whatever you want with it.
For my first test application I simply created a CFC to echo back the message that was sent:
So, that’s nifty and all. I can quickly reply back to emails. But what if I wanted to do something cooler? Well, just for fun, I setup a Google Voice account to send SMS messages to email to an email address that I watch with the IMAP Watcher Event Gateway. This means I now have a poor-man’s SMS short code (well, long code). This example only echos the SMS back to you, but now you may be able to see how it would be easy to make some cool applications with this.
http://www.alagad.com/projects.snmpGateway
The SNMP Event Gateway was originally created for Michigan State University a while back. They gave me permission to release it a long time ago, but I’m just now getting to it.
In all honestly, I’m not too familiar with SNMP so I can’t speak in detail to this gateway’s capabilities. However, I can say that it lets you listen for SNMP events as well as broadcast SNMP events. Behind the scenes it uses SNMP4J and, as far as I can tell, it pretty much just works.
So, there you go. Share and Enjoy!
If you’re a talented and motivated ColdFusion developer who has good Model-Glue experience and understand ColdSpring, I’ve got a job for you! We need someone who can immediately hop into the fray in an existing project, take their assignments and get coding.
The project is a large, enterprise application for a major, recognizable, company. We need someone who can dedicate at least 40 hours a week and can work during typical business hours.
This project is slated to last until March 31st. While it’s not terribly long, there is a chance the project could be extended or that additional projects may follow.
If you’re interested please send an email to me at dhughes@alagad.com.
The User Interface Designer is responsible for designing and producing professional software interfaces and website designs. This person will participate in the entire design process from start to finish, beginning with learning client requirements, establishing design direction, identifying and solving design challenges, creating modern and innovative interfaces, producing all required assets, and implementing designs with front-end code. In addition, the designer should have the ability to ensure acceptance of the design by the client and end user, making design modifications as necessary to accomplish this goal. The designer should possess excellent written and verbal communication skills, and the ability to maintain professional working relationships with clients, stakeholders and users.
Adobe just released the beta version of Flash Player 10.1 on their 'labs' site. Previously I've written about the new multi-touch events and written a quick how to on displaying multi-touch events with the new Air 2 SDK and now I'm going to talk quickly about checking a users multi-touch capabilities.
Checking the users multi-touch capabilities is especially important because users hardware and multi-touch capabilities is going to vary widely as new monitors, mice and input devices trickle into the market place. As such, we'll need to adjust our application to take advantage of different 'MultiTouchInputModes'.
Here's the code I'm suggesting:
Before assuming that they have gesture capabilities we could also check if they are on Snow Leopard:
if(Capabilities.os.indexOf('Mac OS 10.6') !=-1 )
{
trace('Your kicking it with Snow Leopard');
}
I'm not sure how to check if they are on a laptop with a trackpad. Any ideas?
Any danger in just listening for all of these events? Well nothing life threatening. If the hardware isn't capable, the events simply don't fire. It's always a good idea to use weak references when listening for events and/or remove event listeners so that we're not inadvertently using up unneeded memory allocations.
So with this information we can somewhat accurately customize our application to take advantage of what type of hardware our users might be sitting behind. We might have a picture collage that reacts differently to the different type of hardware that it's viewed on for example.
If your company is interested in multi-touch or just want to talk. Drop us a note on our contact page.
In this series on the new multi-touch capabilities in the new flash player 10.1, I'm going to take a closer look at the new events that are fired off by the flash player when dealing with multiple touch inputs.
The two new events that I'm particularly interested in are: flash.events.TouchEvent and flash.events.TransformGestureEvent.
The new TouchEvent class is fired off by the flash player when the player detects a single touch. This class should look very familiar to those who are comfortable with the MouseEvent. It's my current understanding that this event can only be fired on touch enabled Windows 7 machines. I have no doubt that this will change in the near future but as of this writing (November 09) Linux and OSX don't have a clear way to dispatch the TouchEvent class.
Types include:
TouchEvent.TOUCH_BEGIN
TouchEvent.TOUCH_END
TouchEvent.TOUCH_MOVE
TouchEvent.TOUCH_OUT
TouchEvent.TOUCH_OVER
TouchEvent.TOUCH_ROLL_OUT
TouchEvent.TOUCH_ROLL_OVER
TouchEvent.TOUCH_TAP
The new TransformGestureEvent class is fired off by the flash player when the player detects a gesture from the operating system. OSX users will be familiar with the 'Pinch', 'Zoom' and 'Pan' feature that is commonly used via the newer trackpads on most Macintosh laptops. It's important to note that OS 10.6 (Snow Leopard) is required for the flash player to consume these events from the trackpad correctly. The flash player makes use of these gestures and dispatches the appropriate type of TransformGestureEvent. Windows 7 can also dispatch these same gesture event types.
Types include:
TransformGestureEvent.GESTURE_PAN
TransformGestureEvent.GESTURE_ROTATE
TransformGestureEvent.GESTURE_SWIPE
TransformGestureEvent.GESTURE_ZOOM
A sample event might look like this:
[TransformGestureEvent type="gestureRotate" bubbles=true, cancelable=false phase=null localX=20 localY=20 stageX=20 stageY=20 scaleX=1 scaleY=1 rotation=0 offsetX=0 offsetY=0 ctrlKey=false altkey=false shiftKey=false commandKey=false controlKey=false]
Just like a mouse event the developer can handle that rotation event however they wanted. Most likely a developer might want to rotate the currentTarget of the TransformGestureEvent.
One requirement that might be overlooked is that you have to specify the type of events that your applications will be consuming.
This code is required:
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT
or
Multitouch.inputMode = MultitouchInputMode.GESTURE;
Your flash 10.1 or Adobe Air 2 application can switch between touch input modes but it can't consume them both at the same time.
If there is anything that Alagad can do to help you or your company get started with your multi-touch project, please don't hesitate to contact us.
Thanks for posting comments, corrections or questions.