- Andrew Kos
- Bill Burlein
- Bryan Williams
- Christian Vozar
- Jeff Brown
- John Kraus
- Joseph Mak
- Josh Durbin
- Mark Daugherty
- Matt Van Bergen
- Melissa Geoffrion
- Michael Kang
- Michael Chan
- Michael Hodgdon
- Mike Motherway
- Molly McDaniel
- Nadia Maciulis
- Pat McLoughlin
- Paul Michelotti
- Puru Hemnani
- Rohit Srinath
- Ryan Lunka
- Tom Kelly
All Blogs
CITYTECH Blogroll:
Archive for 2010
A SpringOne2GX Chrestomathy
October 26, 2010 12:18 AM
As a largely developer-oriented software conference, I didn’t really know what to expect from last week’s SpringOne2GX in Chicago. Honestly, I was prepared to sit through several bone-dry, monotonous technical dissertations. But, as Tim Berglund launched into his excellent “Grails in the Real World” session, my concerns faded quickly. This was the first time I’d seen Tim in action, and his blend of high-energy charisma and impressive Grails expertise was an easy highlight of the conference.
Groovy + JSON, in an OSGi container?
October 22, 2010 8:44 PM
Very specific usage, yes, but I needed it for a custom script in a Day CQ5 project. The popular JSON-lib library has integrated Groovy support, but devolves into dependency hell when attempting to load into an OSGi container. Rather than plunge myself into a minor nightmare, I instead opted for the Jackson JSON Processor, which contains the necessary bundle metadata, but no built-in Groovy support. HOWEVER, their ObjectMapper class can bind a JSON string to a Map, which allows me to harness the beauty of Groovy map navigation. Behold.
Predicting CQ5 Performance
October 18, 2010 10:03 AM
Day’s CQ5.3 has been out for about 9 months and recently Day released a performance pack that rolls up 60 previously released patches having to do with performance. Memory leaks, thread deadlocks and fixes like “do not auto-expand tree nodes” comprise the bulk of the improvements. How can one know if these improvements — or any other performance tuning changes — will have a significant effect on users’ experience? One needs a meter. Day recommends a number of tools to assist in this, documenting in some detail how to use JConsole and VisualVM. JMeter is also mentioned but not expanded upon. Here I’ll provide some details as to how it can be setup and used for a “real life” load test and stress testing.
Merging Day CQ5, Spring, and JPA for a hybrid web application
September 13, 2010 3:25 PM
If you subscribe to the mantra that “everything is content” then you probably can store everything in CQ and never have a need to integrate with other data-oriented systems. On the other hand, if your organization or client deals with assets such as relational databases, CRMs, or other systems, your job is probably more interesting and you may want to read on. What we have seen is that there is a growing demand to integrate the power of a full-fledged WCM, such as Day CQ5, with functionality previously found only in traditional transactional-based web applications. These hybrid applications must render a web page that integrates both author-controlled content and traditional enterprise data, sourced from assets such as Oracle DB, SAP, Salesforce, etc. They must also be capable of handling business transactions typically done on the web.
Ohhhh umbraco 4.5.1
August 26, 2010 10:11 AM
This is the second in a series of posts about umbraco. To see my first post click here. In my first post about umbraco I documented the installation process that I went through for the 4.5.1 release of umbraco. Everything seemed to work out well during the installation. The only hiccup was a minor one encountered while attempting to install the Runway example site. After the installation was completed I was able to login using the administrator account that I set up during the install. I assumed I was ready to rock. Man was I off! I am sitting here two full days later still not understanding exactly what the issue was.
A First Look at umbraco Setup
August 23, 2010 7:30 PM
My knowledge of CMS frameworks is very limited. I definitely understand their role and see the need for them, but outside of Sharepoint I don’t have much experience. This gives me a unique viewpoint that I hope to exploit for a few blogs! I have just started work for a client and we will be using umbraco. After a long period of research and comparison umbraco has been selected because of its light weight and open sourcedness Since I am just starting with it, I am going to chronicle the setup and configuration process, as well as try to discover some of the features that make working with umbraco and .NET very appealing.
Adobe’s Acquisition of Day Software
July 28, 2010 10:10 PM
There has been exciting news rippling through cyberspace today. Adobe Systems has signed a definitive agreement to launch a public tender offer to acquire Day Software. I would like to send out a big congratulations to our friends at Day Software. Having been a professional implementation partner of Day since 2006, we have seen the product evolve from CQ3.x to CQ4.x and then to their flagship version, CQ5.
Mobile Apps and Cloud Computing: The Perfect Complement
June 15, 2010 11:02 PM
Your organization just completed the development of a mobile application which has been submitted and approved by the Apple app store and Android app store. You wait for your first user to login to the application and you celebrate that someone has installed your app and is using it. You monitor the backend infrastructure poised to ramp up additional hardware as necessary to support more users. The number of users double a few times and you reach the point where you have to add an additional server to your backend infrastructure to handle the load. No problem, you prepared for this growth and have a brand new Dell server stacked with processors and memory just sitting there waiting to be put into production. Another few days pass by and the number of users has doubled again. No problem, you prepared for this growth once again and have two more Dell servers stacked with processors and memory just waiting to be put in production. Then...someone with quite a Twitter following tweets about how awesome your mobile application is. This tweet is then re-tweeted all over cyberspace, into just about every social networking site known to man including LinkedIn, Facebook, My Space, etc. Your user base has increased by a factor of 1,000 almost overnight. This time, it is a problem. Unfortunately, you are out of available servers and your procurement department can't get 100 more servers ordered in less than 2 weeks and you need them ASAP. The number of users keeps increasing and before you know it, people are tweeting about how slow and unresponsive your mobile application is. Your call center and email inboxes are overwhelmed with users wanting their money back.
Using HornetQ in the CityTech Summit World 2010 App
June 15, 2010 6:25 PM
So some of the developers here at CITYTECH have been busy putting together an application that will run at this year’s Red Hat Summit/JBossWorld. I’m sure you’ll hear more about it across the CT blogs (you may have already), but basically it will be a cross platform mobile app that will serve up Red Hat/JBoss trivia questions to conference participants who have downloaded the app and registered. Users will then accumulate points by answering questions, and there will be a weighted raffle for great prizes at the end. In addition to all of the mobile goodness, the application will feature some cool JBoss projects on the back end including Infinispan, ModeShape and RESTEasy. Oh, the back end will all run on JBossAS installed on AWS.
Sweepstakes with JBoss Infinispan, ModeShape, and others.
June 8, 2010 11:08 PM
Don’t wait for Ed McMahon to come knocking on your door for this Sweepstakes. Instead, make sure you grab the CITYTECH mobile app “Summit World 2010″ which will be released to the Apple AppStore and Google MarketPlace sometime before JBoss World on June 22, 2010 (keeping fingers crossed on AppStore acceptance). Once you have the mobile app and the conference starts, you can start answering trivia questions served up by our “Trivia Server” running in the Amazon Cloud using JBoss ModeShape and Infinispan. Questions are mostly technical in nature and each correct answer is worth specific points. The more points you earn, the better your chances of winning great prizes in the sweepstakes drawing at the end of the conference. I know the marketing folks are planning to top the Kindle prizes from last year, so make sure to stop by the CITYTECH booth to see what they have in mind.
CITYTECH Reseller Portal – Leveraging GateIn and Seam
June 6, 2010 3:41 PM
Overview GateIn Portal, a JBoss Community project, is a merge of the JBoss Portal and eXo Portal projects and forms the primary component of the new JBoss Enterprise Portal Platform 5 released just 10 days ago. The CITYTECH Reseller Portal (CRP), which runs in and leverages GateIn provided features, provides CITYTECH a web-based channel for selling Red Hat software (RHEL and JBoss). The current version (1.0) allows CITYTECH Sales Representatives to quickly create software quotes on-demand, generate PDF quote documents, and send these to customers.
Music Explorer FX 2.0: Now with Real Music
May 16, 2010 1:42 PM
The latest version of Music Explorer FX is now available. It boasts some significant changes, most notably access to full-length, licensed audio tracks. Real Music A significant limitation of previous versions of MEFX was the lack of access to licensed audio. Since most music is not freely available, MEFX would have to offer up whatever free content it could find on the internet. So if you brought up Lynyrd Skynyrd, for example, you were likely to come up with five remixes of someone sampling Freebird, when really all you wanted is the studio version of Sweet Home Alabama.
Google Analytics – Reports
May 13, 2010 4:43 PM
The CITYTECH Azure Calculator (CAC) is a Silverlight based tool that takes IIS log files as input and produces a graph that shows how much it would cost to run that server on Windows Azure. Check the CITYTECH Azure Calculator out here.
Google Analytics – Reports
May 13, 2010 4:43 PM
OK, we agreed, we should track information about the visitors using Google Analytics, but how to view that information and what Reports Google provides to analyze it. There are multiple reports and you can customize it too…
CITYTECH Azure Calculator BETA
May 12, 2010 4:52 PM
The CITYTECH Azure Calculator (CAC) is now ready with a BETA release! After a few last minute hiccups the application is up on CITYTECH’s Windows Azure instance and ready for use. Check it out here. The CITYTECH Azure Calculator is a Silverlight based application that is served up via Windows Azure. Currently the application runs completely within a users browser on the Silverlight framework. In future releases we hope to leverage some more Worker Roles to let Azure do alot of the heavy lifting.
Google Analytics for Silverlight
May 12, 2010 3:55 PM
Google Analytics for Silverlight – There are multiple analytics framework available to integrate with your Silverlight application. There is SilverlightAnalytics and then there is MSAF. MSAF – Microsoft Silverlight Analytics Framework seems to be more promising with more extensiblity and feature full and with the backing from Microsoft. It supports out-of-browsers, offline capability, A/B Testing and Support multiple analytics services simultaneously without impacting performance. MSAF can be used by designers in Microsoft Expression Blend to add tracking to applications without coding.
Google Analytics for Silverlight
May 12, 2010 3:55 PM
The CITYTECH Azure Calculator (CAC) is a Silverlight based tool that takes IIS log files as input and produces a graph that shows how much it would cost to run that server on Windows Azure. Check the CITYTECH Azure Calculator out here.
Google Analytics
May 12, 2010 3:52 PM
We are always curious to know how popular our website is. How many page hits, from which part of the world? On which particular page users spent more time? Which button was clicked most? Did people ever add any items into the shopping cart? How long a user spent time on the website? Did the new marketing campaign kick off? Which month of the year there is tons of web activity? If these are the questions that boggle your mind, welcome to Web Analytics.
Grails ate my Spring persistence layer
May 7, 2010 11:46 AM
The time-saving aspects of using Grails for web application development have been well-documented. Take, for example, an ordinary Spring/JPA application. I did a quick analysis of such an application as a concrete example of just how much code and development effort could have been saved by using the GORM features of Grails alone.
Introducing the CITYTECH Azure Calculator
May 5, 2010 6:22 PM
For the last month the .NET Nerds (Seth, Rohit and I ) have been huddled in the CITYTECH nerdery working on a project to show off some of the great features of the Windows Azure platform. Our goal for the project was to create something both useful and interesting. After many refactors of both ideas and code I am very happy to introduce the CITYTECH Azure Calculator (CAC)! The CAC is in its final stages of testing and will be available in the next 24 hours.
Cross Platform Mobile Applications with Phone Gap
April 23, 2010 4:59 PM
This week I spent most of my time writing a mobile application. The app, which I will write about in a later post, has about ten screens and makes heavy use of RESTful web services. The goal is to have native versions for both the iPhone and Android. Other platforms will be considered if time is available.
GR8 US Postmortem: Be the Outlier
April 18, 2010 8:21 PM
The Groovy GR8 conference is a small intimate gathering that is part educational, part commiseration over not being able to fully use Groovy in the day job, and part therapeutic for having to deal with the incessant ribbing from your pretentious Rails coworkers.
LOTD: Josh Bloch talks about the state of the Java Platform
April 14, 2010 3:17 PM
link: PCWorld Article
Flipping Nodes with the JavaFX PerspectiveTransform
April 13, 2010 2:05 PM
In working on some new features for Music Explorer FX 2.0, one of the issues I’ve had to think about is where to put track information for an artist. The current UI is mostly visual and doesn’t afford a lot of space per artist. For reference, here is how a typical artist is currently represented:
Lists of Four in Honor of the .NET 4 Release
April 8, 2010 10:26 AM
As a count down to the release of the .NET 4 Framework on April 12, 2010, I am going to list out the top Four features from the top Four products for the next Four days leading up to the official release!
An Honest Look at Seam – Part 4: JSF, Faceletts and the State of the View Technologies
April 5, 2010 2:44 PM
This is the fourth part in a series of posts about the Seam Framework If you look at my previous blog posts, you know that I despise view technologies that force you to write tag soup. In the aforementioned post, I describe how much I like Apache Wicket because you write your html view in html, not xml, not jsp tags, not some other xml-like templating language or anything like that. Just html (and the associated css and javascript). Then you get to write you controller code in Java, only Java and nothing but Java, using a style very similar to how you would be a desktop app using Swing. But again, this is a post about Seam, so we are going to start by looking at what Seam uses by default.
Windows Azure Start Up Error
April 5, 2010 12:15 PM
When starting up my first Windows Azure project, i kept receiving a System.IO.FileLoadException. The message was saying that the path of the temp directory that the assemblies are being built in was too long. The error message looked like this.
Fourteen Minor Updates iPhone 4 OS Needs
April 2, 2010 12:42 PM
There has been a lot of hoopla going around about multi-tasking in iPhone OS 4.0. While that is certainly the must have feature, the following list are not as prevalent, but equally important. Orientation Lock. Currently there is not a way to read email or browse the web while laying down. MobileRSS has an excellent implementation of Orientation Lock.
The future in three words – “Universal Data Plan”
April 1, 2010 4:44 PM
Like most people, I’ve got a bunch of mobile electronic "stuff" in my life. Stuff such as: iPhones Laptops / iPads Portable GPS Units Watches Automobiles All of these items are mobile – meaning they are not stationary objects like a printer or desktop computer are.
An Honest Look at Seam – Part 3: Learning Seam
March 30, 2010 2:50 PM
This is the third part in a series of posts about the Seam Framework I wanted to take a brief departure from exploring the features of Seam to take a look at a common question I have heard from folks who are considering diving into Seam. It seems (no pun intended) that a lot of people take a look at Seam, download it, run seam-gen on some existing database to see what it does, and then their jaw hits the floor. “What is all of this!?” Seam-gem builds a lot of stuff. You get a completely functioning crud app with all kinds of nice extras. There is a lot of stuff there and much of it will be stuff you have never seen before, even if you have worked with JSF before.
Is Windows Azure Secure?
March 30, 2010 2:19 PM
Windows Azure (WA) provides lots of great reasons to use cloud computing. There is still one concern that will cross the mind of every person who is considering it and that is security. Traditionally, one of the reasons a company or government entity may want to have all of their software running within their own network is security. The money spent on hardware and maintenance may be worth the cost to know exactly how secure the data that they are serving up and storing is secured. I imagine that no IT manager will be ready to move their operations out to any cloud, including Windows Azure, without understanding how both the code and data that they are trusting the cloud to run is secured.
An Honest Look at Seam – Part 2: The Conversation
March 24, 2010 1:02 PM
This is the second part in a series of posts about the Seam Framework The next part of Seam I want to look at is the Conversation. A conversation in Seam is one of the new contexts that seam brings to the table. It sits in between the Servlet Request and Session in terms of it’s life in the application. The goal of the conversation context is to fill in the gap scoping objects across a logical set of requests that represent a real user case without having to juggle everything in the session. It also allows you to have multiple “workspaces” of your application on different browser tabs, as each tab can have it’s own set of conversations.
Web Hosting vs Windows Azure
March 23, 2010 4:04 PM
In February 2010 Microsoft released it’s cloud computing platform Windows Azure. Windows Azure is a set of services that gives .NET developers the tools to build applications that run on a cloud. Upon hearing this I immediately sat down to write some Windows Azure code. The only problem was I really had no idea what the heck cloud computing is used for! Almost everything that I had read about cloud computing boiled down to moving a companies or cities email to Gmail, but what I found is there is so much more.
Interviews with Average Programmers
March 20, 2010 6:03 PM
Books that interview luminous, high-profile programmers seem to be popular right now. Titles like “Coders at Work“, and “Secrets of the Rockstar Programmers“ have interview-style formats in which various programmers generally regarded to be some of the best in the industry are asked questions about how they got their start, and where they think the industry is headed, etc.
JavaFX Tag Visualizer Source Code
March 17, 2010 11:16 AM
Some of my first experiments with JavaFX involved alternative ways of visualizing tag clouds. Specifically there was the "dome" visualizer, and the "radial" visualizer, both pictured below with their respective webstart links.
JavaFX Family Tree Visualizer Source Code
March 16, 2010 1:51 PM
A couple people have requested the source code for this Family Tree Visualizer that I contributed to JFXStudio a while back. Thanks to those who had interest in it. This visualization foregoes the typical tree structure by displaying a family tree in concentric rings with the younger generations rippling out from the middle (much like a real tree). There’s also some animation to flip back and forth between the two examples (the Baggins line and the House of Durin from Lord of the Rings).
MEFX at SXSW
March 15, 2010 1:03 PM
Paul passes along this photo of Music Explorer FX being demoed at the SXSW music festival this past week. It’s nice to see that a) JavaFX is getting some representation at such a diverse and high profile festival and that b) Music Explorer FX is still a part of that promotion. This seems like a natural fit though since MEFX is an application for music discovery, and SXSW is, after all, a festival about discovering new music.
An Honest Look at Seam – Part 1: How Seam builds on Spring
March 4, 2010 4:38 PM
I have been spending a lot of time with JBoss Seam, and I must say, I am very excited about what I have seen. My goal in these next few posts is to talk about why I think these features of Seam are game changers and what they are saying about the direction the JEE Spec is going.
Entity Framework with POCOs
March 4, 2010 1:33 PM
Without any working knowledge of the Entity Framework I have decided to dive in and see if it is a viable option for data access. In the past I have used LINQ to SQL and was not really that impressed. I had a hard time making use of the Context object inside of a web environment. I also did an enterprise application with LLBLGEN PRO and found it to be quite easy to use, but always had issues with serialization because of its large entity objects.
Why REST made me like web services again
March 1, 2010 11:52 AM
I spent most of last year working on a project that has afforded me the opportunity to work with some technologies that I had played with a bit before, but hadn’t actually used them in a full-scale project. Apache Wicket is one of those technologies, that I wrote about previously and the other one is RESTful Web Services using JAX-RS.
How to Exclude Jars from a Grails 1.2.x WAR
February 26, 2010 11:10 PM
I have a Grails application that we’re developing and we’re targeting JBoss 5.1 as the production server. Our CI tool (Atalassian Bamboo) produced a production WAR for me which I tried to deploy. Of course I got numerous exceptions and stack traces because I had a copy of servlet-api.jar and xercesImpl.jar already packaged inside my WAR which conflicted with JBoss’ server libs classpath. If you need to remove any artifacts from the Grails build (i.e. grails war), you can write a closure in the bottom of the conf/BuildConfig.groovy such as
Sling JSON Query Servlet + YUI TreeView
February 24, 2010 12:50 AM
I have been working with version 5 of Day Software’s CQ WCM platform since it was released. One of the great things about developing on version 5.x is the rich set of frameworks and API’s at your disposal (Sling, JCR, etc.).
Apache Wicket applications have baked in protection against the number 1 and 2 Most Dangerous Programming Errors
February 21, 2010 10:06 PM
Wicket has been my framework of choice for the past year. There are many reasons for this, but one of the big ones is security. Wicket applications have built in protection against Cross Site Scripting (XSS) and SQL Injection attacks, numbers 1 and 2 respectively on the CWE/SANS top 25 most dangerous programming errors. A developer has to consciously enable this functionality for wicket applications to be susceptible.
Thoughts on Snoracle and Why I like JBoss
February 10, 2010 11:48 AM
There are two blog posts I have read over the past few weeks that I think give good summary of how to digest the whole “Oracle-buying-Sun-thing”. The first is from Rich Sharples of Redhat on his personal blog. The second is from Mark Little, also of Redhat.
Earthquake?
February 10, 2010 11:12 AM
Last night, my wife and I were woken at 4AM by what we thought for sure were just high winds. But 20-30 mph winds don’t cause the house to creak and you to feel a small, but real sense of motion. Turns out there was an Earthquake last night in Northwestern Illinois, about 30 miles from where we live. Only a 3.8 on the Richter scale, but I still must say I’d never thought I would experience an earthquake in the Midwest. Wild.
Making a mockery of CQ5 with JMockit
February 8, 2010 5:14 PM
Java mocking tools are notorious for their limitations. Ideally, one would not have to compromise design and code integrity for testability, but the reality is that the restrictions of popular testing frameworks such as jMock, Mockito, and EasyMock cause headaches for many developers. Does this look familiar?
Silverlight 3 – Network Availability
February 4, 2010 5:52 PM
Once you have an application that is running ‘Out of Browser’, network availability will most likely be your next concern. The good news is Silverlight 3 comes through and gives you a way to check if there is an actual network connection available. An interesting caveat here is that you are checking if a network connection is available, but aren’t checking to see if that network is connected to the internet. In order to check for an internet connection a WCF service can be developed that can ping a common website. Kunal Chowdhury’s Blog does a great job of explaining a possible way to do this.
Silverlight 3 – Out of Browser
February 3, 2010 7:01 PM
‘Out of Browser’ support is one of the most exciting features of the latest release of Silverlight 3. A Silverlight application can now be pulled out of the browser and installed on a local machine. The possibilities of a web deployed thick client are now very much a reality. As more features are continually added to Silverlight it will be interesting to see what happens to WPF. Will there even be a need for WPF if Silverlight can provide all of the same features and can deliver them through a browser. I am looking forward to playing with a lot of the ‘Out of Browser’ features and figuring out how to make use of it them in a ‘disconnected’ environment.
RESTful Web Services and .NET
February 1, 2010 3:06 PM
Up until this point I had never worked with RESTful Web services. I had heard lots about them from my friends in the java world, but hadn’t had a need to use them. I wanted to connect to a REST web service in the simplest way possible. Here are 2 ways to easily connect to a RESTful web service and parse the reply.
iThink iPad iGood and iBad
January 29, 2010 4:35 PM
With Apple’s big announcement of the iPad, Steve Jobs said that in order for it to be successful it had to be “far better” at browsing, Email, photos, videos, music, games and eBooks than both the iPhone and a laptop.
Oracle-Sun deal gets approved by EU
January 21, 2010 2:51 PM
Finally. via CNET
Batch Services in CQ5 using Apache Sling
January 18, 2010 8:36 AM
I have recently had the need to create various tasks that run on a periodic basis within Day Communique 5 (eg: periodically activating specific content, backing up content, custom report generation and notification, etc.). I was able to achieve these through one of the less publicized features of CQ5: the Apache Sling Scheduling Service using OpenSymphony’s Quartz Scheduler.
Groovy 1.7 / Grails 1.2 New Features
January 15, 2010 3:44 PM
The topic of this month’s Chicago Groovy User Group (CGUG) meeting was a discussion of the new features and enhancements in Groovy 1.7 and Grails 1.2. Both Groovy 1.7 and Grails 1.2 are hot off the press, with their releases happening on December 22 and December 23 respectively. The founders of CGUG, Bill Gloff, Bryan Williams, and myself led the meeting by cherry-picking a few topics that we thought were particularly interesting. We discussed each topic in greater detail and demonstrated each by running live examples.
Why You Should Consider JBoss Seam for Your Next Project
January 5, 2010 10:28 AM
Introduction I recently had the opportunity to convert a Microsoft Access-based application to a web-based application using JBoss Seam. Having used many Java web frameworks the past few years, including Grails, Wicket, and Struts 2, I wanted to highlight some of the key features in Seam that help differentiate it from some of the other framework contenders. The intention of this blog isn’t to start any flamewars by comparing Seam on a feature by feature basis with other Java frameworks, but simply to focus on the areas of Seam that I feel help make it a solid choice when starting out on a new project.
Recent Posts
- Descriptive JMX Beans in AEM/CQ
- Invisible requirements within Business requirements
- Building a better Options Predicate
- Javascript, This, and You.
- Extensionless URLs with Adobe Experience Manager
- The Life of a Tester in Adobe CQ World!
- Limitations of the CQ Parsys Model and the Implementation of a Nested Paragraph System
- Google Analytics and AEM: No JavaScript? No Problem.
- Using Apache FOP to generate a PDF document based on a form submission data
- Configuring SAML in AEM 5.6