Thursday, August 4, 2011

To frequent adventures using DotNet with ColdFusion

Adventure: Your CF and DotNet code are working great and talking on your dev server and integration server but not on test or production? Error says "Class xxx not found in the specified assembly list".  Even though you can call built in dotnet methods, so the CF .Net integration service is working, you can't call any of your assemblies.

After comparing, trying and reading many, many, many things. The final solution was to uninstall and re-install the CF 8 .Net integration service. There is an install on the Adobe ColdFusion product downloads page. I found the solution on this forum post.

Friday, July 22, 2011

Free Sci-Fi & Fantasy stories for e-readers

GigaNotoSaurus (the webzine, edited by Ann Leckie) publishes one longish fantasy or science fiction story monthly. Longish meaning longer than a short story, and shorter than a novel.
giganotosaurus.org

Not another adventure using DotNet with ColdFusion via the side agent

Adventure: SVN fails to update the code when deploying to a server
Remember to stop the ColdFusion .Net service when doing an svn update. It hangs onto the DLL like candy in a 3 year old's hand. Stop the service, svn update, start the service. You should build this into your deployment process if you are able, ANT, powershell or batch files work well.  Or you could use those nice MS deployment tools. We'll get there but we're still converting.

Friday, July 8, 2011

Yes, more adventures using DotNet with ColdFusion

Adventure: Method not found!
When you get the error "method was not found", pause and take off your CF typeless hat and put on the hard typed language hat. The one with the big HTL on it. Even though in CF a number might be a string, the java proxy will convert it to a number. I was trying to set a CF variable holding a number into a dotnet property of type string and kept getting the "method not found". After a javacast to string it worked. The java proxy must have hard typed it to a numeric.

Wednesday, June 29, 2011

Yes even more adventures with DotNet and ColdFusion

Adventure: pre-build and post-build events in Visual Studio
This adventure is more of a work flow improvement. Now I had been pointing my CF code at the Visual studio project's bin folder for the assembly. I do this using ColdSpring and a config object that has blocks of settings per environment. So on local dev I point at the project but on integration, test and prod I point at an assembly (dll) that is with my CF package folder structure. So on my laptop it uses the dll in the project so every time I build (restart the ColdFusion .Net service first) I get the new code. However I am not testing the deployed assembly in the CF package and I had to copy it from my VS project when I wanted to release that version.


I used a post build event in VS to copy the dll from my project to the CF package with something like this.

copy /y "$(TargetPath)" "C:\YourWebSiteDir\notWebRoot\dotnet" 

Next I said why am I restarting the ColdFusion .Net service by hand.

Pre-build event:

Net stop "ColdFusion 8 .Net Service"

Post-build event (after the copy event):
Net start "ColdFusion 8 .Net Service"

So now I just build in VS and services are restarted and the dll updated in my CF source code.

ColdFusion 9 issues with SBS Sharepoint and other sites.

I had helped someone install CF9 on their web server and we choose all sites when asked what IIS sites to connect it to. They had several IIS sites for their MS Small Business Server and one CF site. The CF site worked and we called it a day. A few days later they contacted me saying the SBS Sharepoint and other sites where breaking and the MS tech support thought it was ColdFusion. Well I had not heard of this before but went out to help. It seems that the CF 9 install adds a wild card IIS handler mapping for "*" so all requests go through CF. When they turned of the CF application service images were broken until they removed the wild card mapping. Why CF 9 needs a wildcard mapping I do not know.

Wednesday, June 8, 2011

Even more adventures with DotNet and ColdFusion

Adventure 6: no automatic ToString() on DotNet string properties
I have some string properties in my dotnet poco (or transfer object) and I map them to my CF business object. But if the dotnet property is null the set fails in CF saying the parameter to the CF versions set method was not passed. So wrapping the get on the dotnet poco with the CF function ToString() solves this. Its as if CF can't convert the dotnet null to an empty string with out some help.  No biggy, just interesting.

Tuesday, June 7, 2011

More adventures using DotNet with ColdFusion

Adventure 4: What to send across the boundary.
When you instantiate a DotNet object in CF its always a good idea to dump it to see how the proxy changed any method names. Well the vendors wsdl I am working with has about 60 classes, enums and interfaces. Not very abstracted. In several cases a property would be one of two different depending on the results of the web service call. And they did not inherit any base class. I had to inspect the type and then cast the property to use it. Ouch. So instead of passing back nested business objects, enums and other dotnet fun stuff I decided to make a poco with all the information I needed. Boiling down about 7 to 10 objects and enums into one object with about 25 properties including some for exception messages.

Adventure 5: Who is the web.config for? Not ColdFusion.
In Visual Studio I had setup Fiddler as a proxy with https termination so I can see my soap call that are SSL. I had done this in the web.config. Well once I started calling the assembly (dll) from CF Fiddler stopped seeing the calls. Hmm. Come to find out the web.config is for IIS. Solution:  the web service objects expose a proxy property you can set at run time by creating a WebProxy object. Warning: if the proxy is not available, fiddler running, it will not work. So this is just for debug.

Friday, June 3, 2011

Adventures using DotNet with ColdFusion via the side agent

 I have a project were the web service of a vendor would not work with the Apache Axis 1.2.1 that CF uses.
However I was able to call it via dotnet. So I decided to use the CF to .Net integration. I'd used it before but rebuild my dev machine since and forgot some of the glitches.

This is all for ColdFusion 8.01 and .Net 3.5 framework. CF 8 does not work with .Net 4 and we are not on CF 9 yet.

Adventure 1: the java.lang.ClassNotFoundException error.
For starters if you are running the multi-server install the process that creates new server instances has a huge fault. It does not copy the dotnet proxy config to the created CF server instances.  Find in the master cfusion instance this file, dotnet_coreproxy.config, and copy it to the same location in your server instance.

Adventure 2: unable to copy file [your assembly dll] another process is using it.
For development in CF I pointed at the dll in my projects bin directory. However once you invoke it from CF the CF .net side agent service locks this so when you recompile in Visual Studio it will error. Restarting the .net side agent service temporarily breaks the link.

Adventure 3: .net exception passed to CF = java.lang.ClassNotFoundException
Passing some exceptions back work just fine but if the exception has nested objects that CF does not know how to find to proxy it will error. Even if they are in my assembly. They must not be in base .net library that CF is using. I have not found a good solution other than creating my own object to pass back to CF.
Update: I implemented an exception processing function that catches several types of exceptions like  SoapHeaderException and pulls the information out and adds it to a poco I created to simplify what CF has to deal with.

Tuesday, May 10, 2011

To kill explorer.exe or not

Yeah, I wouldn't say I've been missing it Bill...I killed explorer.exe and I have no task bar, no desktop, no context menu's. I just have what ever apps were already running and alt+tab baby! Clean and mean, focused.

In the beginning there was a large AS$ file that I knew was probably a little large. Well, uh, dude your head exploded. Then my system froze like a tear on a snowman. The pacifist in my decided to wait and just let things work man. Then about 30 seconds later I said KICK IT! Then proceeded to try and stop the file load.

1. ESC, the go to button, the number one EXIT button.
2. Alt+F4, its not just a good hacker name, its the second EXIT.
3. Task Manager, no not my list of crap to do. The master of the tasks your enslaved cpu does for you. This is the EMERGENCY EXIT, or as noted in the menu sometimes its called end process or the more direct 'kill".
4. Previous to this you might have had a semblance of a shell or kernel. Now, you've got the power, at least the power button. The kill switch, the hammer, the plug, the terminator, the lack of electrons, or EJECT.

After 1, 2, I did 3 and killed explorer.exe. Come on man! This hog of a cpu must go. Oh its so worth my time, DELETED!


Cool, I have no task bar now, or menu or context menu. What's cool is I still know how to navigate the apps and tabs within the apps. Alt+tab between apps, ctlr+tab between tabs, tab or alt your way to selection.

Thank you to Bill Gates and his team for making an OS that is not to shabby. Just don't block the EXITS.

Did I mention I have no shutdown functionality. Z power button it is! Grid off.

Thursday, February 17, 2011

Pintley Is to Beer as Pandora is to Music

Wow, have you checked out Pintley. It is what Pandora is to music lovers. Pintley lets you score the beers you have tried and changes its recommendations based on what you like or dislike. Pintley has great facebook integration also.

Thursday, February 10, 2011

Wednesday, December 15, 2010

Put the SyncToy in the DropBox - cheap backup

I recently, okay finally, installed Dropbox. I was investigating cheap backup options for the small amount of data my in-laws needed backed up. So I setup DropBox on their computer and I used Microsoft SyncToy to mirror a bunch of file locations to the MyDropBox folder. I setup the mirror to run at login and gave them a desktop shortcut to run it on demand. All for free. I even setup the wall to flip around when ever they say "Let's go to the cloud".

Thursday, September 30, 2010

Lift Bridge is Hiring – Brewmaster

Lift Bridge is Hiring – Brewmaster
Not that I qualify, except in my dreams. Just passing it along.

Wednesday, September 29, 2010

Huge ASP.Net vulnerability

If you run asp.net and have not seen this you need to read it.
http://www.microsoft.com/technet/security/bulletin/MS10-070.mspx

Mayo Clinic is looking for senior .Net developers

My team is hiring dotnet developers. Check it out. Rochester is a great place to live.
http://rmn.craigslist.org/sof/1971692842.html

Saturday, August 21, 2010

Fall harvest is coming

Looks like a good sampler pack for the Samuel Adams Fall Harvest pack.

Thursday, July 22, 2010

Brewing, cleaning and all grain?

Some say brewing beer is like cooking, if you can follow directions you can brew beer. One big difference is you usually eat what you cooked fairly soon. A 5 gallon batch of beer might be around for a while. So its very important that after the beer cools below 170F you are very sanitary. Here are a few of my brew day tips.

Tip 0 - Clean it. Something can not be sanitized unless its clean. Use a good cleaner. I also recommend switching cleaners every few batches. I feel this makes sure any bugs don't develop a resistance and if one cleaner lacks in an area then the other might make up for it. However one good cleaning product might work also.

Tip 1 - Use a good sanitizer! I use Star San from Five star chemicals. It sanitizes very quickly, about 30 seconds. The foam will sanitize also. You can re-use it until its soiled or the PH drops below 3.2. You can spray it on gas connections and if they bubble then you have a leak. I usually have a tub of sanitizer sitting next to me so I can dip things in.

Tip 2 - Cover it! After you sanitize something like a carboy, wort chiller or bottles you should cover them. I use aluminum foil or plastic wrap. Minimize pet traffic and air flow if you can also.

Tip 3 - Chill fast. Once you are below 170F you are at risk of contamination. Chill quickly with a wort chiller or an ice bath. If using an ice bath make sure you have plenty of ice. Cooling works best if there is a good temperature differential.

Tip 4 - A healthy fermentation can make up for some sanitation issues. Its a competition between your yeast and other stuff so favor the yeast.

Tuesday, June 29, 2010

National Homebrew Conference

NHC 2010 was awesome.

In General:
Registration went fast and the sessions were well staffed. The commemorative beers and meads where very good. Having a jockybox for clubs to use for serving at the hospitality suite was very nice. The vendor selection in the hospitality suite was great. All the staff were very helpful and ready to serve you.

Sponsors and Vendors: wow there were some great swag in the hospitality suite. Five star chemical and Sam adams had some of the best.

Blichman Engineering, More Beer and Sabco all had awesome displays of brewing gear.

My best session: the Mead tasting panel. Wow, getting to taste 6 honeys and 6 meads was awesome.

I was unable to attend Sat. but hear the dinner and award ceremony where awesome.

My personal highlights:
Meeting the king of IPA (tasty) at Burger king
Meeting the brewcasters from the Brewing Network including Chad's dad and Terrance the black. Most brewcasters are taller than they appear on video.
The Whites from White Labs where very nice and smiled a lot.
Getting beer from John Mauer from Rogue.
JP spraying beer radio all over Justin's face. Guess you should have worn those goggles I sent you for burning man.
Pro-brewer night was awesome, wow, some great beers. I do wish more breweries sent actual employees rather than distributor reps.
Ginger snaps are really great for breakfast
Finding out Jamil once designed paintball equipment.
Meeting who ate all the pies, great guy.
Club night was off the hook! Wow some nice club booths and beers.
Having Sean Paxton liking my brewers crackers that were his recipe!

Everyone was very friendly and the hotel and staff were awesome.

Wednesday, May 12, 2010

The CF awesomeness of Ben Nadel

I'd just like to say that Ben Nadel has done a heck of lot for the CF community. Many of the people on my team including me have used or referenced his code samples over and over. His recent reMultiMatch() regEx post is another "spot on Ben". (reference to a youTube video)