Skip to main content

Posts

Showing posts from 2009

Using Ghost 2003 with Windows 7

A while back I did a blog post regarding how to use Ghost 2003 with Windows Vista to do partition based backup and restores.  Since Vista came out, you can't install the Ghost 2003 application in windows, and you need to use a bootable CD.

Since then I have upgraded to Windows 7 (and on a side note, i DO notice many improvements over Vista, and it seems to be running pretty stable and smooth).  I tested all my old documentation and determined that Ghost 2003 works with Windows 7, just as it did with Vista.

So good news people, you CAN still use that old copy of ghost 2003 to backup/restore your Windows 7 machines.

So here is how to do it:

Make sure your system is installed so that you have a C: and a D: partition

Note, we set this up so that all your "work files" are on D, so that if you restore a different OS, you can still access all your files.  This way you can have multiple configurations for your computer, one for work, one for games, one for fooling around, etc. and…

Disable SSLV2 & Weak SSL Ciphers on IIS

Seems that there is a lot of confusion for people who manage windows/IIS servers and need to disable SSL 2 and older weaker encryption. There are are few nice articles, but can sometimes be confusing unless you really know your way around the Windows Registry. I hope I can simplify this for some people.

Important: There is no need to purchase a utility to do this. Save the money. Some companies charge you $20 or more per server to have a utility to easily click and enable/disable these services.Ok here is the help. For techies who want reference material, here is the good stuff:
http://blog.zenone.org/2009/03/pci-compliance-disable-sslv2-and-weak.html
http://support.microsoft.com/kb/187498
The easy part: I have created a .reg file you can download and merge on your windows 2003 server that will disable ssl2 and weak ciphers. Important: This works for me, your mileage may vary. Always backup first. I won't help you if you break your server because you didn't do a backup …

Multi-web configuration for Railo 3.1 and BlazeDS

Seems like lots of people are having a problem with Railo configured for multiple websites on a single host, but also need to support AMF via BlazeDS.

The common symptom is when you restart railo services, sometimes you will get a big error instead of your web page that says something like:

<code>
MessageBroker failed to start: flex.messaging.config.ConfigurationException: MessageBroker already defined from MessageBrokerServlet with init parameter messageBrokerId = '__default__'
</code>

Here is what I found to work for me:

1. Read this post by Roland Ringgenberg at <a target="_new" href="http://groups.google.com/group/railo/msg/230e12e0fc12c625">the railo google group</a> and follow the directions to install the java jar and edit the flex/services-config.xml file:

<code>
    <services>
        <service-include file-path="remoting-config.xml" />
        <service-include file-path="proxy-config.xml&q…

Flash on iPhone? Not really, but kind of, sorta...

At MAX, Adobe announced a way to build apps and deploy on iPhone.  Huzzah!  Isn't this what we have been asking for for a LOOOONG time?  Not really....<more/>What follows is opinion.  Take it as such.

According to the Adobe website, with Flash Pro CS5, you can write your applications using Flash/AS3, and then compile to an IPA (iPhone Application) native file.  That means no runtime support for .swf files, just monolith applications compiled as .ipa's.

I give some of the credit of the underlying approach to Apple however.  Adobe has stated (and I have so far believed them) that they wanted to bring Flash to iPhone.  Of course Adobe wants that.  Flash developers want it.  iPhone owners want it.  Apple DOESN'T want it. Why? Because flash on the iPhone means that iPhone users will play games through the web browser using Flash instead of buying apps from the app store, which is where they are making a killing right now.

So, in my opinion, Apple thinks, "how can we …

Railo 3.1 Install on Linux -- Caucho security note

Now that Railo 3.1 is out, I think we will see a jump in commercial usage.  I have done a few installs on production machines now, and wanted to point out a security note.

By default when you install Railo 3.1 (with caucho) on Linux (prob the same for OSX), it adds the following to your apache httpd.conf file:

<code>
LoadModule caucho_module /usr/lib/httpd/modules/mod_caucho.so

ResinConfigServer localhost 6800
CauchoConfigCacheDirectory /tmp
CauchoStatus yes
</code>

The bottom one is the problem -- it enables CauchoStatus by default.  That means that you can open up a web browser to http://your.host.com/caucho-status and see status info, but there is a lot of detailed info there, including the names of each of the hosts you configured in resin, so people can snoop and see all the railo-enabled sites on that machine.  This might also give a would-be-attacker the info they need to plan a DOS attack, SQL injection attack, etc.. especially since they can see how the server is …

Upgrading CentOS 4 or RHEL 4 to use PHP5

This seemingly simple task was more work than I expected.  Here are some of my notes in the hopes that this helps somebody.  If it does, and you want to donate to my cause, or just encourage me to keep blogging about stuff like this, email me :)

Ok, there are a bunch of sites out there, that helped me get 75% of the way.  Download the RPMs, try to install, and error, dependancies i've never seen before.

This tutorial got me 75% of the way:

http://www.lampdeveloper.co.uk/linux/installing-php-525-suhosin-php-eaccelerator-on-centos-4-with-yum.html

(By the way centos 4 and RHEL4 are pretty much the same, but this is focusing on the specifics for RHEL4)

All said and done, here are the RPMs I ended up needing (to get to 90% success)

php-5.1.6-3.el4s1.10.i386.rpm
php-cli-5.1.6-3.el4s1.10.i386.rpm
php-common-5.1.6-3.el4s1.10.i386.rpm
php-gd-5.1.6-3.el4s1.10.i386.rpm
php-ldap-5.1.6-3.el4s1.10.i386.rpm
php-mysql-5.1.6-3.el4s1.10.i386.rpm
php-pdo-5.1.6-3.el4s1.10.i386.rpm
php-pear-1.4.11-1.el4s1.1.n…

CF United 09 Presentation Files - Google App Engine and Flex

Ok folks, here are my preso files for my CF United 2009 talk on Google App Engine and Flex.  Is this the final version?  Sure.  Until I change it.  I shall resist doing that...

;

Here is the powerpoint presentation download: 294_Andrew_Schwabe_Google_App_Engine_Flex.ppt

Here is the full download (warning, this is big!) Contains all 4 google app engine java projects, all 4 flex projects and the powerpoint file.  The download is big because of all the jar files.  I will try to have a USB key with me so if you want a super fun time instant copy instead of downloading it, I should be able to do that.

Full download (94MB, zipped): CFun09_GAE_Files.zip

For those of you web surfers interested -- demo 4 project includes a fix for allowing Flex app using AMF to retrieve Google Account information (using ajax and a custom auto servlet) so your Flex apps can determine if you are logged in, and get your user identifier if you are logged in.

Mac OSX 10.5.4 on Dell XPS m1330

Yes, it violates Apple's license, so I am classifying this as "experimentation" aka lab fun.

I have managed to get a reasonably usable Mac OSX installed on my dell.  I've tried various distributions, but had limited success.  If you follow my blog, you have seen that I had good success putting Mac OSX on my Dell Mini 9.  That uses the new Dell EFI emulation, and works 100% -- very nice.  The dell XPS was a bit more work to get going.

My first attempt on the Dell Mini was using a Mac OSX dvd made for the MSI Wind netbook.  It was easy but had some issues, and almost worked.

Out of frustration of not being able to get anything stable on my XPS m1330, I popped in the MSI Wind DVD into the XPS and it installed with minimal headache!  When it was done, a bunch of things didn't work, as was expected.

I then downloaded and ran the Dell Post Installer from here: http://www.insanelymac.com/forum/index.php?showtopic=97966

(self explanatory on how to use)

And only recently …

CF United Update: Google App Engine + Flex

My talk at CFUnited has changed a bit...  Since the topic was chosen a while back, Google has released a Java developer environment and eclipse plugin for Google App Engine (GAE).  Since Java is a whole lot closer to CFML than python is, I've updated all my code and presentation to focus on the Java application architecture, and how to connect it to Flex.

I've even got some tidbits on how to get CFML running on Google App Engine !

Be sure to come on out and learn about the exciting new "super scalable" web application system running on Google's free hosting infrastructure.

FusionDox 2009 is released!

After many months of hard work, we have released the 2009 edition of FusionDox.  Lots of fun things in this edition, including PDF previews of documents, a document conversion API so you can write your own code to convert documents, split/merge PDFs and more.  New Flex/AIR based FusionDox client (aka the FusionDox Authoring System) for live editing MS Office/OpenOffice documents directly through your browser, and it works for Macintosh and Linux computers too!

There is some preliminary info online, with more to come.

<a href="http://www.fusiondox.com/">http://www.fusiondox.com/</a>

Converting a query to Array ... and Back again, for Flex sake...

There have been a few blog posts on how to convert a query into an array of structures.  Here is <a target="new" href="http://www.bennadel.com/blog/124-Ask-Ben-Converting-a-Query-to-an-Array.htm">Ben Nadel's</a>, Here is <a target="new" href="http://www.mximize.com/function-query-to-array-of-structures">Carlos Gallupa's</a>, and there are more out there.

Now that you are a master at converting query to array-of-struct, how about converting it back to a query?  No, not just for kicks, but perhaps for that crazy array you built, that you now want to pull via CFC into a Flex app ? (this is the reason I bothered, b/c u know that CF queries get auto-translated into ArrayCollections in Flex, don't you ??)<more/>If you had an array of structures called "result," you can loop over the array, and reconstruct the query using the key names from your structs and dynamically populate the query set onr row a…

CF United Speaker Interview

<a href="http://cfunited.com"><img src="http://cfunited.com/2009/images/470x60_cfunited_09.gif" border="0"/></a>


1. Have you spoken at CFUnited in the past?  What would you tell someone who hasn't been to CFUnited before?

Yup.  I've been speaking at CF United events for the last 4-5 years or so.  Lost count.  CFUN is cool because you get to hang out with all the movers and shakers in the industry.


2. Why should people attend your session(s)?

Why not?  I'll be showing an example of using Flex to talk to Google App Engine (GAE), so its just pretty darn cool.


3. Do you have any projects in the works that you will be revealing at CFUnited?

I'm hoping to have a brand new product ready to demo called FusionDox Access, which is a way cool easy way to share large files with people, and easily integrates into your web projects.  All build in Flex of course :)

4. Besides your topic, what other sessions are you looking forward to?

Using Flex built in icons for custom components

I am a big supporter of "simple first" meaning, get the functionality done and perfect before you start dressing things up and make them fancy.  Flex supports this style of development by having a relitively pretty set of components to begin with, and you can substitute in what you want to change.

What if you are making a custom component, such as a Button, and you want an icon on the button.  You can open your graphics program and make your PNGs, or SWF files and make custom skins, or wouldn't it be great if you could just snag one of the built in icons from Flex' SDK and use that?  Nice and simple to get you started.<more/>This is exactly what I wanted to do for a quick prototype application.  I was surprised that I couldn't find any blog entries out there on how to do this, so I took some time and figured it out, and now you reap the benefit.

In order to re-use Flex's built in icons for your own creation, we first need to find Flex's default css …

Setting up a BETTER SFTP Server on Windows

I added a blog post a while back about setting up an SFTP server on Windows.

It turns out that it IS easy to setup an SFTP server, but to setup a GOOD (read: "secure") takes a bit more work.  The solution I am going to describe, I call "Better" (not "Good"), because it solves some problems, but not all of them.<more/>The problem with sshwindows (the dist I used before), is that there is no real way to setup a chroot environment or chroot jail for users, or at least none that I was able to make work.  If you have this setup, then without your intervention, any user can gain access to any part of the system by changing to the "/cygdrive/c/Windows" (or other) directory.  It promotes snooping, and can cause lots of trouble.  The other problem with sshwindows is that by default, it allows anybody to connect via ssh or sftp, permitting users to have shell access to your windows server.  You may want this, but generally this is not desired.

This …

Presentation Files from CFUnited Express New York on April 20 2009

Here are the presentation files I used during my talk in NYC yesterday.  The unexpected "intermission" has been omitted from the Powerpoint file :)

<a href="http://www.schwabe.net/2009%20Charting_with_CF_Flex.zip">http://www.schwabe.net/2009%20Charting_with_CF_Flex.zip</a>

Thanks again to Liz, Nafisa, and the others from CF United, the speakers and PACE University for making this a great event!  Looking forward to seeing you all in August at CF United!

Flex + Google Analytics - Fix Error #1009: Cannot access a property or method of a null object

Google has released a library for Flash and Flex to embed google analytics calls into your Flash/Flex app.  You can find info and Google's sample code here: <a href="http://code.google.com/apis/analytics/docs/tracking/flashTrackingSetupFlex.html">http://code.google.com/apis/analytics/docs/tracking/flashTrackingSetupFlex.html</a>.

Since I use Flex, thats all I will cover here.

When I implemented Google's code, I got the "Error #1009: Cannot access a property or method of a null object" error that seems to show up from time to time. I knew it had to do with google analytics, since it was a fully working app before I added GA.<more/>This very vague error means exactly what it says: you tried to do something with an object that wasn't initialized yet.  I know this isn't helpful, but getting your brain around this will help you figure out what to do.

The error was being thrown in the code from Google's page in the onComplete() metho…

I have been invited to speak at CF United Express in NYC on 4/20/09

Thanks to Liz Frederick and the CF United team for their invitation!

I will be presenting on "Charting with ColdFusion and Flex" and will go through step by step on how to build charts using Flex's charting package.  In addition, we will go over how to build a reusable chart project where you can use the Flex/Ajax bridge to push chart data into your Flex app using Javascript/JSON/etc.

Should be a good time, come on out!  The details are online here: <a href="http://express.cfunited.com/go/newyork/2009/">http://express.cfunited.com/go/newyork/2009/</a>

Don't forget that I will also be speaking at CFUnited August 12-15 2009 in Leesburg, VA about integrating Flex with Google App Engine (GAE).  Details are at <a href="http://www.cfunited.com">www.cfunited.com</a>.

<a href="http://cfunited.com"><img src="http://cfunited.com/images/470x60_cfunited_09.gif" border="0"/></a>

Adobe Air: #2032 (and similar) error when trying to install an .AIR file

If you are building Adobe AIR applications and run into this vague error when using an <a href="http://www.adobe.com/devnet/air/articles/badge_for_air.html">install badge</a> or <a href="http://livedocs.adobe.com/flex/3/html/distributing_apps_3.html">air.swf from within flex</a>, it may be your web server that is the issue.<more/>Microsoft IIS, by default, will not serve files that it doesn't explicitly have mime-types registered for.  This means that if you create some new file type, say ".stupid" files for example, IIS will refuse to serve your .stupid files until you specifically register that file extension type and give it a mime type.

The way you can test if this is your issue is by simply putting in a web browser the full URL to your .air file. Don't trust that you just "typed it right" -- actually put it in your browser and try it.  If you get a permission denied, or a 404 not found error -- then you…

Viva la Hackintosh!

I have a wonderful new ultra-portable that arrived just the other day, a new Dell Mini 9.  For those not familiar, it is a micro notebook computer with a 9" screen, and a 16gb solid state flash hard drive -- thats right, no magnetic/spinning drive in this thing.

First observations: VERY small, the micro keyboard takes some getting used to, but its not too bad -- i am typing this from the mini now.

It came with windows xp sp3 on it, and you can also order them from dell with a linux OS (ubuntu) which is supposed to be quite good.

I myself researched ahead of time and planned to install Apple's Mac OSX 10.5 on it.  There have been reports of success with this on the net.

Update: I have been sucessful installing mac osx 10.5 on the mini.  All in all not too bad to get it all up and running using a slipstreamed osx dvd originally designed for the msi wind.

I have to add that, not only is the coolest micro mac around, but it performs fantastic -- definitely better than windows xp …

I will be speaking at CF United 2009

I have been invited to speak at CFUnited 2009 in Leesburg, VA, August 12-15 2009. If you haven't attended CF United before, be sure to sign up, as it is a fantastic program, and a great place to network with some of the most skilled developers in the world.

This will be the 5th CFUnited event that I have spoken at, and the second time I will be presenting on a Flex topic.

This year I will be going through the architecture of building a Google App Engine (GAE) app, powered by Flex. This allows you to create an application hosted by Google's application architecture, and using a Flex application as the user interface. It's a mashup of multiple technologies, and should be a lot of fun. Be sure to stop by!

pfSense 1.2.2 Success

I have been looking at open source firewall/router solutions for a while, and my list of requirements has been pretty steep.  In particular, any solution I give a recommendation to would need to support WAN load balancing and SIP (for VOIP phones).  I also recently added dynamic DNS to that list.

Today I am pleased to say that I have a working solution using pfSense 1.2.2 (http://www.pfsense.com/).  I had done a comparison between pfsense and vyatta a while back, and found issues with both that prevented it from being a solution I can recommend.<more/>pfSense requires a PC (any pentium 4 older desktop will do, maybe even a Pentium 3), a few network cards (add as many as you have network zones), and either a hard drive or a flash drive (i am using a USB flash drive).

Download the live CD, go through the wizard and configure each of your ethernet cards, and then install it to your drive.  Reboot and now you have a web-based config utility to do most of what you need.

Everything we…

Manually adding bindings between objects in Flex/AS3

I recently needed to manually create bindings in AS3 code between objects, and since MXML ultimately all is just AS3, I figured there had to be a way to do it.

<b>Binding in MXML</b>

Lets look at the following code...
<code>
    <mx:TextInput id="txtMyText?/>
    <mx:Label id="lblMyLabel? text="{txtMyText.text}"/>
</code>

Here you bind the text property of the TextInput to the label's text property so wh you type in the textInput, it reflects in the label.

<b>Binding in AS</b>

The key to this is a class called BindingUtils in the mx.binding.utils package. You can use this class as below:<more/>You have your components say in mxml as follows
<code>
    <mx:TextInput id="txtMyText? />
    <mx:Label id="lblMyLabel? />
</code>

Now you import the Binding utils and change watcher classes:
<code>
    import mx.binding.utils.BindingUtils;
    import mx.binding.utils.ChangeWat…