Timeister ready for outside beta testers

Timetracking was never easy.
Wanna join our private beta test-team? Just register your e-mail on the main website page.
We will be waiting for you!
Have a great day!

Timetracking was never easy.
Wanna join our private beta test-team? Just register your e-mail on the main website page.
We will be waiting for you!
Have a great day!
“Don’t miss VMworld Europe 2009 
The leading virtualization conference in Europe!
With VMworld Europe 2009 less than five weeks away, now is the time to register for the leading virtualization event. Use the VMworld Europe 2009 Content Catalog to learn more about the sessions, labs and other activities at this year’s conference so that you can build your calendar.
[...]
Join the thousands of people who have discovered ways to virtually reinvent computing – the champions of virtualization – register for VMworld 2009 today and become part of this industry-wide, global transformation.”
How to create a custom button skin in a Flex web application?
That’s a common question but a simple google will not reveal so much info on how to do it.
The limitation with default flex skin is that even we can define as many colors we want in
a “gradient fill” the “ButtonSkin” will take in consideration only the first 2 of them.
Why did they made it like this ? donno, and do not care! So we extended the existing skin
and created a custom skin for buttons.
Here is how it does look:
In more details, this is what have we done:
1. Extended the default mx.skins.halo.ButtonSkin class and overrided the updateDisplayList() method that is in charge of “drawing” the button skin.
CustomButtonSkin.as
2. Created a css file where we define the style for our custom button.
main.css
3. Created a CustomButton class that extends the basic flex Button class so we can bind the “CustomButton style” name to an existing “CustomButton control”
CustomButton.as
4. Declare the used css file in the application then start using the skinned button
Application.mxml
Let us know your ideas about this skin or if you need help in custom skinning other flex controls.
That’s all folks!!!
—————-
The TiMeister Team
“RIA AppPuncher™ is a software testing and debugging product. AppPuncher was designed from the ground up to facilitate testing of the Rich Internet Applications. The product provides the following functionality:
* Client/server communication debugging
* Functional testing
* Regression testing
* Load testing
AppPuncher supports Flash, Flex, Silverlight, AJAX clients as well as traditional browser-based applications. From the client/server protocol perspective, the product enables testing of the client/server applications using any of the following protocols: HTTP, SOAP, REST/XML, AMF and RTMP. AppPuncher runs on Windows, MAC OS X and *nix platforms.”
Source: http://www.themidnightcoders.com
Programmatically Disable AIR Framework Autoupdate from Air Application
In a previous post you can find how to enable/disable Adobe AIR Framework Autoupdate using the Adobe AIR Manager tool.

We had the problem that we wanted to disable Adobe Air Framework from our AIR Application but we never found a way to do this even if the Adobe AIR Manager tool is a air based file. But a few days ago without any doubt what it must be we found a file inside the “C:\Documents and Settings\[user]\Application Data\Adobe\AIR\” (win XP) named “updateDisabled”. After enabling the Adobe AIR Framework Autoupdate the file was erased right away.
Then we found the all the magic of setting Adobe AIR Framework Autoupdate value it the presence of a specific file inside a specific folder. Nothing more.. no registry, no encrypted settings files or else.
We took the time and created a simple AS3 class that you can use for Manually Enable/Disable AIR Framework Autoupdate from your Abobe AIR application.
You can download the class from here: SettingsManager.zip or just browse the class code:
package www.timeister.com // Online Timesheet Software
{
import flash.desktop.NativeApplication;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.filesystem.File;
import flash.filesystem.FileMode;
import flash.filesystem.FileStream;
import flash.system.Capabilities;
public class SettingsManager
{
private static const AIR_SUPPORT_DIRECTORY_WIN:String = "/../../Adobe/AIR";
private static const AIR_SUPPORT_DIRECTORY_MAC:String = "/../../../Application Support/Adobe/AIR";
private static const AIR_UPDATE_DISABLED_FILE:String = "updateDisabled";
/**
* Constructor for Settings Manager class
*/
public function SettingsManager()
{
}
/**
* Method called to get the Adobe Air Autoupdate disabled value
* @return a boolean value according to the disable state (true = disabled)
*/
public function isAirUpdateDisabled():Boolean
{
var _loc_1:* = getApplicationSupportDirectory();
if (_loc_1 == null)
{
return false;
}
_loc_1 = _loc_1.resolvePath(AIR_UPDATE_DISABLED_FILE);
return _loc_1.exists;
}
/**
* Method called to Disable air framework autoupdates
* @return a boolean value telling the success of them thod call
*/
public function disableUpdates() : Boolean
{
var fileStream:FileStream;
if (!isOSSupported())
{
return false;
}// end if
var file:* = getApplicationSupportDirectory();
if (file == null)
{
return false;
}// end if
file = file.resolvePath(AIR_UPDATE_DISABLED_FILE);
if (file.exists)
{
return true;
}// end if
try
{
fileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.close();
}// end try
catch (error:Error)
{
return false;
}// end catch
return true;
}
/**
* Method called to enable air framework autoupdates
* @return a boolean value telling the success of them thod call
*/
public function enableAIRUpdates() : Boolean
{
if (!isOSSupported())
{
return false;
}
var file:* = getApplicationSupportDirectory();
if (file == null)
{
return false;
}
file = file.resolvePath(AIR_UPDATE_DISABLED_FILE);
if (file.exists)
{
try
{
file.deleteFile();
}
catch (error:Error)
{
return false;
}
}
return true;
}
/**
* Method calle to check if this is a supported os
* @return a boolean value telling if os is supported
*/
private function isOSSupported() : Boolean
{
var capOs:String = Capabilities.os;
if ((Capabilities.os.indexOf("Windows") > -1) || (Capabilities.os.indexOf("Mac") > -1))
{
return true;
}
return Capabilities.os.indexOf("Linux") > -1;
}
/**
* Method called to get the Adobe AIR support directory
* @return a file reffering to the Air support directory
*/
private function getApplicationSupportDirectory() : File
{
var _loc_1:File;
if (Capabilities.os.indexOf("Windows") > -1 || Capabilities.os.indexOf("Linux") > -1)
{
_loc_1 = new File(File.applicationStorageDirectory.nativePath + AIR_SUPPORT_DIRECTORY_WIN);
}
else if (Capabilities.os.indexOf("Mac") > -1)
{
_loc_1 = new File(File.applicationStorageDirectory.nativePath + AIR_SUPPORT_DIRECTORY_MAC);
}
else
{
return null;
}
return _loc_1;
}
}
}
If you are looking for a pdf creator component in flex you may want to know about the new WebOrb PDF Generator from Midnight Codders which is available for flex too.

“Generating documents, reports and document-based forms is a very common task for web application users. RIAs are not an exception as users and business workflows require capturing data contained within RIAs to produce usable documents for offline use, such as archiving or further business processing. WebORB PDF Generator is both an SDK and runtime solution that installs as an extension into WebORB for Java, .NET, PHP and ColdFusion Enterprise and Community Edition servers, enabling both client and server applications to create template-based PDF documents. Templates can be created either on the server as XML files or originate on the client as Flex components. Templates include information about document layout, graphics and data sources for operational data.
Key Benefits:
* Ease of template development – developers can use the development environment they are already familiar with to create customized templates. For instance, Flex developers can use Flex Builder for visual template editing. Future releases of the product will support Visual Studio-based template authoring.
* Advanced workflow support – advanced features such as PDF forms and embedded Flash/Flex content can streamline business workflow and improve user interaction with the generated PDF documents.
* Centralized Administration – WebORB PDF Generator requires no client-side installations, which makes it fast and easy to provide PDF generation capabilities to networked users.
* Reduced cost to develop and deploy – ease of installation, WYSIWIG template editing, non-intrusive data-binding and server-side PDF generation make it possible to provide the benefits of PDF template design and PDF generation at a low cost per server. Server-side deployment means there are no client fees, putting enterprise PDF Generation in reach for any size organization.”
Source: www.themidnightcoders.com
This API lets Flex developers embed Google Maps in Flash applications. Similar to the JavaScript version, this ActionScript API provides a number of utilities for manipulating and adding content to maps through a variety of services, enabling you to embed robust, interactive maps applications on your website.
How to start?
Source: http://api.google.com
David Heinemeier Hansson is revealing us some of his secrets on how to make money with rich internet applications.
Source: http://www.37signals.com/svn/posts/981-the-secret-to-making-money-online