Wesley Hales//wesleyhales.com/
Recent content on Wesley HalesHugo -- gohugo.ioen-usMon, 09 Oct 2017 00:00:00 +0000Browser Automation At Scale - DevSecOps and the Equifax Breach//wesleyhales.com/posts/2017-10-09-Browser-Automation-At-Scale-Part-3-DevSecOps-and-Equifax/
Mon, 09 Oct 2017 00:00:00 +0000//wesleyhales.com/posts/2017-10-09-Browser-Automation-At-Scale-Part-3-DevSecOps-and-Equifax/If you’ve been following along in Part 1 and Part 2, you already have the basic framework to implement a globally distributed Browser Automation Network. Now, we can easily write a few lines of JavaScript and augment it to create a sophisticated security scanner that will fly under the radar of most security tools and check for application level vulnerabilities - exactly like the one found at Equifax.com a few weeks back.Browser Automation At Scale - Part 2//wesleyhales.com/posts/2017-09-03-Browser-Automation-At-Scale-Part-2/
Fri, 01 Sep 2017 00:00:00 +0000//wesleyhales.com/posts/2017-09-03-Browser-Automation-At-Scale-Part-2/In Part 1, I reviewed the gory details of the foundation required to run synthetic browser testing at scale. Now that we have a framework for building out our tests, we can move forward with wrapping our test runner in a web application so that the metrics we care about can be gathered and viewed through a decent UI.
For this example, I&rsquo;m going to use the Alexa top 12 news sites and execute a test over each one with the latest Chrome web browser.Browser Automation At Scale - Part 1//wesleyhales.com/posts/2017-08-07-Browser-Automation-At-Scale-Part-1/
Mon, 07 Aug 2017 00:00:00 +0000//wesleyhales.com/posts/2017-08-07-Browser-Automation-At-Scale-Part-1/Docker Swarm and Selenium Both Docker and Selenium are pretty much household names these days in the world of software engineering. I&rsquo;ve been fascinated with Docker since its inception and have been using it for side projects and in my day job for a few years now. I recently came across the need to test a Chrome extension and load a web page while that extension is installed. This test would load the page, wait for it to load, check some JS variables and APIs and then spit out a screenshot and any needed metrics.The Decommissioning of Onslyde//wesleyhales.com/blog/2016/12/23/The-Decommissioning-of-Onslyde/
Fri, 23 Dec 2016 00:00:00 +0000//wesleyhales.com/blog/2016/12/23/The-Decommissioning-of-Onslyde/As a creator and overseer of an Open Source project, we must make tough decisions on when to pull the plug and move on. In 2012, I started a web based, real-time feedback project called Onslyde.
To me the project was a huge success with many measurable results:
Massive amount of research with WebSockets and mobile devices. Based on the code and research I was able to craft many talks for speaking engagements at conferences around the globe.Simulated RUM testing with PhantomJS 2//wesleyhales.com/blog/2015/04/24/Simulated-RUM-testing-with-PhantomJS-2/
Fri, 24 Apr 2015 00:00:00 +0000//wesleyhales.com/blog/2015/04/24/Simulated-RUM-testing-with-PhantomJS-2/Today, many companies are synthetically measuring web performance with various scripts and services. Now that everyone is able to measure those performance numbers and visualize the problem areas, it’s time to raise the bar in terms of scalability, portability and the use of newer DOM APIs.
The following charts show a snapshot of data collected over the period of one year (2012-2013) from the CNN.com home page using Loadreport.js. Loadreport data from 2012-2013 for CNN.A More Better Conference Experience//wesleyhales.com/blog/2014/02/26/A-More-Better-Conference-Experience/
Wed, 26 Feb 2014 00:00:00 +0000//wesleyhales.com/blog/2014/02/26/A-More-Better-Conference-Experience/Overview I&rsquo;ve been working on an open source project called Onslyde for almost 2 years. If you want to know the details behind it you can read articles here, here or watch a recent interview.
This year, at Devnexus 2014, I wanted to take Onslyde a bit further by offering a way for sponsors to ask questions throughout the day between sessions. Since this was a trial/experiment I went old school and didn&rsquo;t create a web interface for reserving sponsored slots.From Startup to Enterprise//wesleyhales.com/blog/2013/12/17/From-Startup-to-Enterprise/
Tue, 17 Dec 2013 00:00:00 +0000//wesleyhales.com/blog/2013/12/17/From-Startup-to-Enterprise/Overview At the beginning of 2013 I was given the incredible opportunity to start with an empty canvas and come up with a completely new web application for Apigee. For the past year I&rsquo;ve been heads down on merging Apigee&rsquo;s Usergrid and Mobile Analytics products using AngularJS.
For those interested: Usergrid, a Backend as a Service, was acquired by Apigee in early 2012 and has served as the core tool of all Apigee trainings and developer outreach efforts.Jank Busting Apple's Home Page//wesleyhales.com/blog/2013/10/26/Jank-Busting-Apples-Home-Page/
Sat, 26 Oct 2013 00:00:00 +0000//wesleyhales.com/blog/2013/10/26/Jank-Busting-Apples-Home-Page/Overview Watching frame rates on CSS and/or JavaScript animation is pretty addictive. I wrote this article the other day which examines the performance of a simple countdown timer within the Angular lifecycle. I then spent countless minutes playing Jake Archibald&rsquo;s Jank Invaders to hone my skills and save the universe from jank :)
So, I was on Apple&rsquo;s home page the other day and noticed some jank in their main carousel animation.Basic Screen Updates with Angular and requestAnimationFrame//wesleyhales.com/blog/2013/10/23/Basic-Screen-Updates-with-Angular-and-requestAnimationFrame/
Wed, 23 Oct 2013 00:00:00 +0000//wesleyhales.com/blog/2013/10/23/Basic-Screen-Updates-with-Angular-and-requestAnimationFrame/Overview Some of the best known approaches for running a countdown or count-up timer in AngularJS are shown on JSFiddle using setInterval and Angular&rsquo;s builtin $timeout.
Both approaches require the use of $scope.$apply, which is completely normal. It forces the page/bindings to update when a change is made outside of the AngularJS lifecycle (like inside a setInterval or setTimeout). If you want to read more about $scope.$apply check out this article.Fun with Static Site Generators and Travis//wesleyhales.com/blog/2013/03/29/Fun-with-Static-Site-Generators-and-Travis/
Fri, 29 Mar 2013 00:00:00 +0000//wesleyhales.com/blog/2013/03/29/Fun-with-Static-Site-Generators-and-Travis/Overview If you use a static website generator, then you may be aware of the pain that goes into getting everything automated and pushed out to github pages on each commit.
The manual workflow goes something like this:
code your site using asciidoc/markdown/haml/sass/less/etc preprocessor (or build) generates static site (locally on your machine) copy static site to your local gh-pages or username.github.com repo/branch git push new site done Now, with a little scripting we can have:How Collective Wisdom Shapes a Talk//wesleyhales.com/blog/2013/02/25/How-Collective-Wisdom-Shapes-a-Talk/
Mon, 25 Feb 2013 00:00:00 +0000//wesleyhales.com/blog/2013/02/25/How-Collective-Wisdom-Shapes-a-Talk/Overview Exactly one year ago, I started working on a WebSocket prototype that would give audiences the power to control my talks. I used it for the first time at DevNexus 2012 in Atlanta, GA and it produced great engagement results. At that time, the only analytics I had built into the server were through logging, and the results were motivating enough to continue using the prototype. Over the span of 2012, I spent many late nights in hotel rooms preparing my slides for talks and working out bugs of this tool which I named &ldquo;onslyde&rdquo;.Adventures with the Skia Debugger//wesleyhales.com/blog/2013/02/18/Adventures-with-the-Skia-Debugger/
Mon, 18 Feb 2013 00:00:00 +0000//wesleyhales.com/blog/2013/02/18/Adventures-with-the-Skia-Debugger/Debugging jank, reflows, etc&hellip; The Skia debugger was mentioned a few weeks ago at EdgeConf as a way to examine how the DOM is loaded and processed in the Chromium web browser. Skia is the open source C++ graphics library backing Chromium/Chrome. It comes with a graphical tool used to step through and analyze the contents of the skia picture format.
If you haven’t watched this video, I recommend you take a few minutes and watch the first part to understand the context of why the Skia debugger was mentioned and where it might be useful.I'll Sleep When I Die - All for HTML5//wesleyhales.com/blog/2012/11/01/Ill-Sleep-When-I-Die-All-for-HTML5/
Thu, 01 Nov 2012 00:00:00 +0000//wesleyhales.com/blog/2012/11/01/Ill-Sleep-When-I-Die-All-for-HTML5/The following post is a long-winded summary of my experiences over the past year. I started a user group, wrote a book, gave up a secure job, and changed jobs 4 times. All to push myself, get uncomfortable, and better understand the challenges that front-end developers are facing in 2012 and beyond. I gained more than I ever thought possible.
Sometimes you have to give up everything to find something.Web Performance Testing With PhantomJS//wesleyhales.com/blog/2012/08/16/Web-Performance-Testing-With-PhantomJS/
Thu, 16 Aug 2012 00:00:00 +0000//wesleyhales.com/blog/2012/08/16/Web-Performance-Testing-With-PhantomJS/HTTP requests, heavy/unminified resources, and UI thread blocking should be on the mind of every front-end developer. These are just a few issues that can cause serious bottlenecks in page load times. Having a faster load time equals better search engine rankings, higher conversion rates, and an overall reduction in bandwidth costs.
I recently took on the task of coming up with an accurate way to measure all the aforementioned things, in an effort to understand which performance tweaks improved page load times and which ones didn&rsquo;t.HTML5 is Booming in Atlanta//wesleyhales.com/blog/2012/07/19/HTML5-is-Booming-in-Atlanta/
Thu, 19 Jul 2012 00:00:00 +0000//wesleyhales.com/blog/2012/07/19/HTML5-is-Booming-in-Atlanta/So, all I can say is that the Atlanta HTML5 community is awesome. Today the @atlhtml5 user group has reached it&rsquo;s 1000th member! From startups to companies in the Alexa top 20 rankings, Atlanta is heading towards a bright future in innovation and the open web. Front-end developers are in serious demand as Atlanta based companies strive to build web applications that are more offline accessible, responsive, and performant. Companies are moving more JavaScript to the browser, and this demands more structured code following MVC style patterns.Sharing Content with Web Intents//wesleyhales.com/blog/2012/07/11/Sharing-Content-with-Web-Intents/
Wed, 11 Jul 2012 00:00:00 +0000//wesleyhales.com/blog/2012/07/11/Sharing-Content-with-Web-Intents/The Intent of Sharing If you employ share buttons on your site, then you might already be aware of the increased load that comes with trying to make your content social. Allowing users to take action on your specific content and &ldquo;share&rdquo; it is a common task. Much like linking HTML documents together, we are now linking apps together that are capable of pushing content to a receiving service via the user.Sniffing IE9 features while in compatibility mode//wesleyhales.com/blog/2012/06/08/Sniffing-IE9-features-while-in-compatibility-mode/
Fri, 08 Jun 2012 00:00:00 +0000//wesleyhales.com/blog/2012/06/08/Sniffing-IE9-features-while-in-compatibility-mode/Getting the browser version from the User Agent string is one thing. But, when you force compatibility mode in IE, you get whatever version you&rsquo;re forcing to. e.g&hellip; &lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=EmulateIE8&quot;/&gt;
in IE9 will cause jQuery&rsquo;s
($.browser.version, 10)
to return &ldquo;8&rdquo; :(
I started digging through some msdn docs to find various ways of sniffing the actual browser we&rsquo;re using, even when compatibility mode is forced. This led me to this doc Which talks about how IE9&rsquo;s Chakra JavaScript engine processes math precision differently (and faster) than the old IE8 JScript engine.Choppy scrolling on iOS with iscroll and PhoneGap//wesleyhales.com/blog/2012/04/09/Choppy-scrolling-on-iOS-with-iscroll-and-PhoneGap/
Mon, 09 Apr 2012 00:00:00 +0000//wesleyhales.com/blog/2012/04/09/Choppy-scrolling-on-iOS-with-iscroll-and-PhoneGap/I ran into a situation this weekend where certain pages of a PhoneGap application were incredibly choppy on iOS versions pre 4.3.x. Apparently, there is a problem with older browsers using CSS3 selectors like div[style*=&lsquo;foo&rsquo;] in combination with other DOM elements.
The test case was a little tricky to create, seeing that pinpointing this problem required mucho testing. However, I minimized the markup and CSS to only a few classes and DOM elements.AeroGear - Mobile, HTML5, and Auwesome//wesleyhales.com/blog/2012/02/08/AeroGear-Mobile-HTML5-and-Auwesome/
Wed, 08 Feb 2012 00:00:00 +0000//wesleyhales.com/blog/2012/02/08/AeroGear-Mobile-HTML5-and-Auwesome/The AeroGear project had it's official launch last week and I want to review what we're doing and where we're headed. For starters, AeroGear is focused on: Education - Screencasts, Tutorials, and Quickstarts for running any (HTML5, Hybrid, Native) mobile solution with JBoss projects and app servers. Innovation - Many of AeroGear's primary goals are to provide HTML5 extensions for web applications, both mobile and desktop based. Community - We already have several community members contributing examples, demos, and other useful resources.Pushing CDI Events to the Browser with WebSockets//wesleyhales.com/blog/2012/01/20/Pushing-CDI-Events-to-the-Browser-with-WebSockets/
Fri, 20 Jan 2012 00:00:00 +0000//wesleyhales.com/blog/2012/01/20/Pushing-CDI-Events-to-the-Browser-with-WebSockets/Disclaimer: Minimal load testing was performed with 10000 concurrent WebSocket connections. You can see some true performance numbers here.
Here is the demo in action. As you can see on the right, I have 2 chat windows open and on the left we have a member registration. Users are chatting across a raw WebSocket connection and when another user registers, the CDI event is fired all the way through to the browser as a JavaScript alert via the connected WebSocket clients.2011 Year In Review//wesleyhales.com/blog/2011/12/29/2011-Year-In-Review/
Thu, 29 Dec 2011 00:00:00 +0000//wesleyhales.com/blog/2011/12/29/2011-Year-In-Review/This year has been a personal best form me. I’ll spare you the long winded summary and get straight to what I actually produced :)
Published my first DZone Refcard “Mastering Portals with a Portlet Bridge” http://refcardz.dzone.com/refcardz/mastering-portals-portlet
Learned that CSS3 is replacing Photoshop http://wesleyhales.com/blog/2011/02/05/Replacing-Photoshop-With-CSS3-Creating-Styles/
Watched the entire Battlestar Galactica series on Netflix.
Mourned the loss of Stargate Universe
Posted this blog entry and later joined the RichFaces team because of it http://wesleyhales.Fixing Ajax on Mobile Devices (with HTML5)//wesleyhales.com/blog/2011/08/29/Fixing-Ajax-on-Mobile-Devices-with-HTML5/
Mon, 29 Aug 2011 00:00:00 +0000//wesleyhales.com/blog/2011/08/29/Fixing-Ajax-on-Mobile-Devices-with-HTML5/Update: @_boye has created a perf test which shows the performance of this solution. Remarkably, This iFrame solution outperforms innerHTML on Firefox 7 and maintains the same speed on Chrome 16.
The most common approach for receiving markup from an Ajax request is to use innerHTML for placement of the responseText. This method has been widely used (and argued) since the inception of XHR, but it surprises me that it's still being recommended and used not only on desktop browsers but mobile ones as well.RichFaces Mobile Designs - Day 3//wesleyhales.com/blog/2011/08/03/RichFaces-Mobile-Designs-Day-3/
Wed, 03 Aug 2011 00:00:00 +0000//wesleyhales.com/blog/2011/08/03/RichFaces-Mobile-Designs-Day-3/So I made it over the hump of this mobile design week of madness. Below you will find a dark theme with a component skin for the rich:accordion component.
Day 3: About The Design
Here we have another phone based design broke out into 3 pages.
The first page is a standard menu so not much to say there. The bottom menu bar is a little different from my first design &#8211; following the lead of the native twitter iPhone app.Going Mobile With RichFaces! Design Proposals - Day2//wesleyhales.com/blog/2011/08/02/Going-Mobile-With-RichFaces-Design-Proposals-Day2/
Tue, 02 Aug 2011 00:00:00 +0000//wesleyhales.com/blog/2011/08/02/Going-Mobile-With-RichFaces-Design-Proposals-Day2/Day 2 of the RichFaces skinning and we have the first approach for tablet devices. Tablets are a little harder to design for because of a few reasons:
1) Your design sits on the fine line between desktop and mobile. You are designing your app for a max 1024 pixel resolution (in landscape mode) but you must also take advantage of mobile usability (which you will see in page2)
2) Similar to the iPad Mail.Going Mobile With RichFaces! Design Proposals - Day1//wesleyhales.com/blog/2011/08/01/Going-Mobile-With-RichFaces-Design-Proposals-Day1/
Mon, 01 Aug 2011 00:00:00 +0000//wesleyhales.com/blog/2011/08/01/Going-Mobile-With-RichFaces-Design-Proposals-Day1/Today marks an important day in the RichFaces project as we continue to head down the mobile web road. Since we have such a great community of users and followers, we want you to be involved with the design process.
So each day this week, I will come up with a new proposed design/theme for RichFaces Mobile and we want to hear your feedback. I will announce each new design (both for tablet and phone) via twitter with a link back to this article.My New Career Choice at Red Hat//wesleyhales.com/blog/2011/07/04/My-New-Career-Choice-at-Red-Hat/
Mon, 04 Jul 2011 00:00:00 +0000//wesleyhales.com/blog/2011/07/04/My-New-Career-Choice-at-Red-Hat/July 1st marked my first day on the JBoss RichFaces team. I've decided to push myself and get out of my comfort zone. It seems that a developer only has so many years that he or she can sustain the same position doing the same thing and dealing with the same technology.
I’ve been with Red Hat almost 4 years now and have enjoyed every second of it, and this is the first time in my career that I have chosen the position for myself while working within a company.Runtime Type Detection and Usage with Weld//wesleyhales.com/blog/2011/05/04/Runtime-Type-Detection-and-Usage-with-Weld/
Wed, 04 May 2011 00:00:00 +0000//wesleyhales.com/blog/2011/05/04/Runtime-Type-Detection-and-Usage-with-Weld/About TweetStream
In developing the TweetStream demo for the JBoss World keynote and JUDCon presentation, I wanted to use CDI in a way that would choose the implementation of a given type at runtime. With Qualifiers and Producers, CDI gives you the power to do this.
A little bit about the usecase: The TweetStream application is an app that Jay Balunas and I developed over the past few months for our presentation at JUDCon and JBoss World 2011.Does Developing Portlets Make You a Better Developer?//wesleyhales.com/blog/2011/04/05/Does-Developing-Portlets-Make-You-a-Better-Developer/
Tue, 05 Apr 2011 00:00:00 +0000//wesleyhales.com/blog/2011/04/05/Does-Developing-Portlets-Make-You-a-Better-Developer/Working with portlet technology is often discredited for it’s seemingly complex API and development hoops one must jump through. But if you have worked on a portlet project for a considerable amount of time, and then jump back to a servlet based project, you have a feeling that life just got easier.
This is all within the context of which servlet-based framework you might be working with, but overall things are a bit easier when dealing with one request and response.Going Mobile With RichFaces 4 - Part 1&#58; Drag and Drop//wesleyhales.com/blog/2011/02/16/Going-Mobile-With-RichFaces-4-Part-1-58-Drag-and-Drop/
Wed, 16 Feb 2011 00:00:00 +0000//wesleyhales.com/blog/2011/02/16/Going-Mobile-With-RichFaces-4-Part-1-58-Drag-and-Drop/Richfaces 4 just reached Milestone 6 and now would be a great time for the community to step up and check how the components run on mobile platforms.
First off, Richfaces 4 currently does not offer mobile support but it is definitely the direction they are heading. And the RF team has taken all the necessary steps to allow the client side code to be extended and improved by way of jQuery.Replacing Photoshop With CSS3 - Creating Styles//wesleyhales.com/blog/2011/02/05/Replacing-Photoshop-With-CSS3-Creating-Styles/
Sat, 05 Feb 2011 00:00:00 +0000//wesleyhales.com/blog/2011/02/05/Replacing-Photoshop-With-CSS3-Creating-Styles/One trendy technique that I often use in Photoshop (for buttons, nav bars, etc&#8230;) is a gradient that slightly variates from its base color with a hint of inner shadow (for highlight).
This used to be a pain in the royal ass to implement with html/css2, but now is amazingly simple with CSS3. Not only is it simple, but you can also create a sort of &#8220;gradient template&#8220; to be reused.Jazoon 2010 Overview//wesleyhales.com/blog/2010/06/07/Jazoon-2010-Overview/
Mon, 07 Jun 2010 00:00:00 +0000//wesleyhales.com/blog/2010/06/07/Jazoon-2010-Overview/I've always heard good things about Jazoon and I got to experience it first hand this week. Definitely one of the larger conferences based in Europe, I was impressed not only by the venue but also with the star studded line&#45;up of talented speakers/developers.
I was pleasantly surprised to see soo many talks about portal technologies. And people weren't talking about the spec or the technology itself, but about specific usecases &#45; which is really cool.The Ultimate Guide For Developer Screencasts//wesleyhales.com/blog/2010/03/17/The-Ultimate-Guide-For-Developer-Screencasts/
Wed, 17 Mar 2010 00:00:00 +0000//wesleyhales.com/blog/2010/03/17/The-Ultimate-Guide-For-Developer-Screencasts/About a year ago, I decided to start creating screen casts for the JBoss Portlet Bridge open source project. As a manager of a relatively small, niche project, it is easy for me to try new things that can only improve the community around the project &#45; or serve as a learning lesson for myself. Screencasts are nothing new to the development scene, but my goal was to liven it up a bit and make the outcome seem more professional and well produced.Contextual PortletMode changes using the JBoss Portlet Bridge//wesleyhales.com/blog/2009/12/10/Contextual-PortletMode-changes-using-the-JBoss-Portlet-Bridge/
Thu, 10 Dec 2009 00:00:00 +0000//wesleyhales.com/blog/2009/12/10/Contextual-PortletMode-changes-using-the-JBoss-Portlet-Bridge/By default, the JSR-301&frasl;329 portlet bridge manages your navigation history during PortletMode changes. Meaning that, if the user is clicking around in the portlet &ldquo;view&rdquo; mode and decides to click the help icon (help mode), the user should be directed to the place where he left off in help mode - and vice versa. Of course, if the user has never been in help mode during the current session, he will go to the default help viewId.Creating (another) Firefox Theme//wesleyhales.com/blog/2009/11/22/Creating-another-Firefox-Theme/
Sun, 22 Nov 2009 00:00:00 +0000//wesleyhales.com/blog/2009/11/22/Creating-another-Firefox-Theme/I started laying down ideas for a new Firefox theme a few months ago and this is what emerged. I&rsquo;m not sure why I can&rsquo;t stay away from the darker themes. Maybe it&rsquo;s the richness that black (and darker colors) allows on a monitor, but I tried to stay as far away from mainstream design on this as I could. I have already coded this into a downloadable theme, but I am still working out some glitches.Replacing FacesMessages with Growl alerts//wesleyhales.com/blog/2009/08/10/Replacing-FacesMessages-with-Growl-alerts/
Mon, 10 Aug 2009 00:00:00 +0000//wesleyhales.com/blog/2009/08/10/Replacing-FacesMessages-with-Growl-alerts/I saw a tweet from(@maxandersen) the other day and decided to try adding Growl like messages in a standard JSF/Richfaces application using jGrowl. It is quite simple and my approach could definitely be improved upon.
This is really just javascript on the front end and can be used with any backend message generating system.
Code Used:
RichFaces 3.3.1.GA jGrowl (latest) Include the scripts in the head:
Note the loading of jquery in the Richfaces page.ul horizontal tab menus, cross browser, with no hacks//wesleyhales.com/blog/2009/05/28/ul-horizontal-tab-menus-cross-browser-with-no-hacks/
Thu, 28 May 2009 00:00:00 +0000//wesleyhales.com/blog/2009/05/28/ul-horizontal-tab-menus-cross-browser-with-no-hacks/There are too many times when I need a nice horizontal tab menu, using semantic html, and with cool graphics all at the same time. So this post is more for my personal reference and will shave a few hours off any ones html prototype. This is cross browser valid css 2.1 on IE6, IE7, FF3, Chrome and Safari without using any hacks.
The end result: .ln { color: rgb(0,0,0); font-weight: normal; font-style: normal; } .Recovering deleted files from Windows and Linux... and a little forensics//wesleyhales.com/blog/2009/03/01/Recovering-deleted-files-from-Windows-and-Linux...-and-a-little-forensics/
Sun, 01 Mar 2009 00:00:00 +0000//wesleyhales.com/blog/2009/03/01/Recovering-deleted-files-from-Windows-and-Linux...-and-a-little-forensics/I got one of those "tech support" phone calls from a family member this weekend, asking if I could help him undelete some files that were deleted by some ghost that snuck into his office ;) You gotta love it when people say they have no idea how an entire folder got deleted and they swear they've been hacked.
So I scoured the web to see what exists. For *nix based utils, I think sleuthkit with the autopsy forensics browser is the best out there (that's open source).How to make money off of a Firefox theme (or not)//wesleyhales.com/blog/2009/02/24/How-to-make-money-off-of-a-Firefox-theme-or-not/
Tue, 24 Feb 2009 00:00:00 +0000//wesleyhales.com/blog/2009/02/24/How-to-make-money-off-of-a-Firefox-theme-or-not/This weekend was quite an eye opener for me. Since the first public release of ANTHEM (my Firefox 3 theme), I have been trying to think of a way to monetize the downloads. Not really looking for a way to get rich, but a way to take advantage of, as of today, a theme that has been downloaded almost 500,000 times.
I started out with a Paypal donate button which helped a little, but wasn't really doing what I wanted.JBoss Portlet Bridge Beta 6 Released!//wesleyhales.com/blog/2009/01/25/JBoss-Portlet-Bridge-Beta-6-Released/
Sun, 25 Jan 2009 00:00:00 +0000//wesleyhales.com/blog/2009/01/25/JBoss-Portlet-Bridge-Beta-6-Released/Read about it here: http://blog.jboss-portal.org/2009/01/jboss-portlet-bridge-beta-6-released.html2 years of blogging about java and my life, now what?//wesleyhales.com/blog/2008/12/07/2-years-of-blogging-about-java-and-my-life-now-what/
Sun, 07 Dec 2008 00:00:00 +0000//wesleyhales.com/blog/2008/12/07/2-years-of-blogging-about-java-and-my-life-now-what/It has been 2 years since I decided to write my first blog post and I am pretty happy I did so. When I first tossed the idea around about it (and this was back in 2006) I was thinking, man, blogging is so 2002 and why would anybody want to read about stuff I'm doing. But much to my surprise, starting a blog is one of the best things I could've done.ANTHEM reaches 15,000 in its first week//wesleyhales.com/blog/2008/11/30/ANTHEM-reaches-15000-in-its-first-week/
Sun, 30 Nov 2008 00:00:00 +0000//wesleyhales.com/blog/2008/11/30/ANTHEM-reaches-15000-in-its-first-week/I recently created a Firefox 3 theme out of curiosity and because I love to try new things that deal with design. Much to my surprise, ANTHEM has been receiving a lot of attention over the past week since it has been released publicly on Mozilla.org. ANTHEM is named so because I consider it a hymn of praise or loyalty to my worshipful savior Jesus Christ. I also consider it dedicated to my newborn son, my wonderful wife, and the woman who raised me to be the man I am, my beautiful mother.AjaxWorld West '08 Recap//wesleyhales.com/blog/2008/10/22/AjaxWorld-West-08-Recap/
Wed, 22 Oct 2008 00:00:00 +0000//wesleyhales.com/blog/2008/10/22/AjaxWorld-West-08-Recap/This week, I attended/spoke at the AjaxWorld conference in San Jose. The cool thing for me is that this was my first public speaking appearance. This leads to another notch in my belt of professional development and evangelism. I really got a lot out of the conference because I was able to meet quite a few people that I have known but never actually met in person. On that note, all of the exhibitors and speakers at the conference were very welcoming to form alliances and work together to help each other out.AJAX in Enterprise Portals at AjaxWorld//wesleyhales.com/blog/2008/10/19/AJAX-in-Enterprise-Portals-at-AjaxWorld/
Sun, 19 Oct 2008 00:00:00 +0000//wesleyhales.com/blog/2008/10/19/AJAX-in-Enterprise-Portals-at-AjaxWorld/I will be giving a presentation for the AjaxWorld conference Tuesday at 5:00 on Ajax in Enterprise Portals. If you are here in San Jose, don't be a stranger! Check out the sessions here. **Update with slides:Developing an OpenSocial Portlet//wesleyhales.com/blog/2008/10/12/Developing-an-OpenSocial-Portlet/
Sun, 12 Oct 2008 00:00:00 +0000//wesleyhales.com/blog/2008/10/12/Developing-an-OpenSocial-Portlet/I dedicated some time this weekend to creating a fully functional demo with OpenSocial, Shindig and JBoss Portal. It seems like OpenSocial has a lot of new supported platforms coming out in 0.8 and the future is looking promising. Here is a bullet list to summarize what I found:
Documentation is scarce when you want to roll you own OS container via Shindig Luckily Chris Schalk did a good job providing some documentation on getting persistence setup on a mysql db Unfortunately, due to the bleeding edge of this technology, some of (the few) demos that exist don&rsquo;t work with today&rsquo;s Shindig trunk I was able to quickly learn Google widgeting and am on my way to being a &ldquo;widget master&rdquo; Next on the list is to mess around with Google Data APIs in OpenSocial Apps The transition/integration of Shindig into a standard webapp/portlet was a huge pita.Creating a Firefox 3 theme//wesleyhales.com/blog/2008/08/26/Creating-a-Firefox-3-theme/
Tue, 26 Aug 2008 00:00:00 +0000//wesleyhales.com/blog/2008/08/26/Creating-a-Firefox-3-theme/**UPDATE - This theme is now available on Mozilla.org here: https://addons.mozilla.org/en-US/firefox/addon/9627/ I decided to tryout Firefox theme building a few weeks ago on vacation. It took me a few days to design the skin and slice up all the images for theme creation. But once it came to laying down the Firefox CSS, I have to say that I was a little overwhelmed and haven&rsquo;t been back to finish the theme since.Developing Portlets using JSF, Ajax, and Seam (Part 1 of 3)//wesleyhales.com/blog/2008/08/06/Developing-Portlets-using-JSF-Ajax-and-Seam-Part-1-of-3/
Wed, 06 Aug 2008 00:00:00 +0000//wesleyhales.com/blog/2008/08/06/Developing-Portlets-using-JSF-Ajax-and-Seam-Part-1-of-3/InfoQ just published the first in a series of 3 articles for the JBoss Portlet Bridge. The author of this series did an unbelievable job. I could write a whole post about how great his article(s) are, but I would hate to loose sight of this post topic :-) heh - just kidding... the author is me!
This first part is about basic JSF development with an easy to follow tutorial and real world development tips.JSF in a portlet has never been this easy!//wesleyhales.com/blog/2008/07/07/JSF-in-a-portlet-has-never-been-this-easy/
Mon, 07 Jul 2008 00:00:00 +0000//wesleyhales.com/blog/2008/07/07/JSF-in-a-portlet-has-never-been-this-easy/We just released JBoss Portlet Bridge Beta3 along with some good supporting documentation and example projects. See the documentation for full details. For those that want to jump right in, you can run the following archetype and have it deployed on JBoss AS + Portal in minutes: mvn archetype:generate -DarchetypeGroupId=org.jboss.portletbridge.archetypes -DarchetypeArtifactId=1.2-basic -DarchetypeVersion=1.0.0.B3 -DgroupId=org.whatever.project -DartifactId=myprojectname -DarchetypeRepository=http://repository.jboss.org/maven2/ -Dversion=1.0.0.B3 mvn install cargo:start -Premote-portal -Dpc20 mvn cargo:deploy -Premote-portal -Dpc20 Visit http://localhost:8080/simple-portal/demo/jsr-301.JBoss Portlet Bridge Beta2 Released!//wesleyhales.com/blog/2008/04/11/JBoss-Portlet-Bridge-Beta2-Released/
Fri, 11 Apr 2008 00:00:00 +0000//wesleyhales.com/blog/2008/04/11/JBoss-Portlet-Bridge-Beta2-Released/The JBoss implementation of the JSR-301 spec allows developers the ability to develop portlets with any mixture of Seam, RichFaces, and JSF. One of the main goals of the 301 specification is to make life easier on the JSF developer who chooses to integrate his web application into a portal environment. The JBoss Portlet Bridge project builds on that vision of no-hassle integration and setup.
Read more about what is included in this release.My 4 month old MacBook Pro Hardrive is skippping... badly//wesleyhales.com/blog/2008/03/31/My-4-month-old-MacBook-Pro-Hardrive-is-skippping...-badly/
Mon, 31 Mar 2008 00:00:00 +0000//wesleyhales.com/blog/2008/03/31/My-4-month-old-MacBook-Pro-Hardrive-is-skippping...-badly/It's never a good thing when your hard drive starts making that funny little skipping noise. But, it's really not good when you push the power button and all you hear are loud ass clicks and you can feel the vibration of each click on the keyboard.
In all my wise 'ol years in the IT industry, I have never had this happen to me. Sure, I've had old hd's that eventually wear out and start skipping.JBoss Portlet Bridge with Seam support released//wesleyhales.com/blog/2008/02/14/JBoss-Portlet-Bridge-with-Seam-support-released/
Thu, 14 Feb 2008 00:00:00 +0000//wesleyhales.com/blog/2008/02/14/JBoss-Portlet-Bridge-with-Seam-support-released/It has been quite a while in the making (a couple months) and we finally have a beta release of the portlet bridge.
The JBoss Portlet Bridge is an implementation of the JSR-301 specification to support JSF within a portlet and with added enhancements to support other web frameworks. Currently the bridge supports any combination of JSF, Seam, and RichFaces to run inside a portlet.
See the project page for more details and a live demo.Page and Component Modal with a4j&#58;status//wesleyhales.com/blog/2008/01/20/Page-and-Component-Modal-with-a4j-58status/
Sun, 20 Jan 2008 00:00:00 +0000//wesleyhales.com/blog/2008/01/20/Page-and-Component-Modal-with-a4j-58status/I haven't really had a chance to look at RichFaces OOB modal, but I had written this one over a year ago when Ajax4JSF was still on java.net
Due to an overwhelming interest in the previous article I decided to spend some time developing this modal into a demo application and to add some new features. Modals are good to some and hated by others, they have their place and can certainly add some cleaner usability to any website.XHTML to PDF with a Seam filter//wesleyhales.com/blog/2007/12/17/XHTML-to-PDF-with-a-Seam-filter/
Mon, 17 Dec 2007 00:00:00 +0000//wesleyhales.com/blog/2007/12/17/XHTML-to-PDF-with-a-Seam-filter/After reading this article showing how to create a servlet filter that will render XHTML to a PDF, image, or SVG, I was inspired to try it out as a filter in Seam using the @Filter annotation. The filter installation went smoothly but getting Flying Saucer to parse the generated JSF and css background images was not so easy.
First off, generated markup from any given JSF component is not guaranteed to be good markup.1 year of blogging//wesleyhales.com/blog/2007/12/05/1-year-of-blogging/
Wed, 05 Dec 2007 00:00:00 +0000//wesleyhales.com/blog/2007/12/05/1-year-of-blogging/Today marks my 1 year anniversary of blogging. I started this blog to basically express my views and opinions, to give back to the open source community of whom so much has been taken, and for job credibility.
Trying to write good articles is a lot of work. Sure anybody can write about a few buzzwords and get some hits, but an article with substance and that actually helps someone through a use case or problem is where the satisfaction comes from.Writing a FaceBook app//wesleyhales.com/blog/2007/12/03/Writing-a-FaceBook-app/
Mon, 03 Dec 2007 00:00:00 +0000//wesleyhales.com/blog/2007/12/03/Writing-a-FaceBook-app/I just recently setup a Facebook profile in an effort to network with other like minded professionals and because I haven't really had a reason to do so until I joined JBoss. It is astonishing how many people have accounts and are using Facebook on a daily basis. I really haven't followed the social networking fad/trend that has been going on for the past few years and I keep wondering what is going to be next.Seam 2.0GA in JBoss Portal (in 5 minutes)//wesleyhales.com/blog/2007/11/15/Seam-2.0GA-in-JBoss-Portal-in-5-minutes/
Thu, 15 Nov 2007 00:00:00 +0000//wesleyhales.com/blog/2007/11/15/Seam-2.0GA-in-JBoss-Portal-in-5-minutes/**Update - See this article for more info.The Smokies//wesleyhales.com/blog/2007/11/06/The-Smokies/
Tue, 06 Nov 2007 00:00:00 +0000//wesleyhales.com/blog/2007/11/06/The-Smokies/I guess everybody has a place a few hours from home that they can go and relax and enjoy nature. One rednecktastic place I like to go is at the foothills of the Smoky Mountains in Tennessee. Gatlinburg is a trip, and if you like Dolly Parton, well this is the place for you.
I mainly enjoy the fresh mountain air, the beautiful scenery, and the below freezing temps at night.Maven 2 vs. Ant (revisited)//wesleyhales.com/blog/2007/10/30/Maven-2-vs.-Ant-revisited/
Tue, 30 Oct 2007 00:00:00 +0000//wesleyhales.com/blog/2007/10/30/Maven-2-vs.-Ant-revisited/Almost a year since I made this entry and I think Maven is great for open source and commercial apps. Sure, there may be a few things you want to do that don't fit into the "Maven way" but for the most part, it is a great build system. Also, any one that uses IntelliJ Idea will fall in love with Maven on first use (I guess it handles Eclipse project files just as well).Another design//wesleyhales.com/blog/2007/10/29/Another-design/
Mon, 29 Oct 2007 00:00:00 +0000//wesleyhales.com/blog/2007/10/29/Another-design/The designer inside me just won't give up. I have tried and tried to put down the Photoshop paint brush and embrace development only, but it just isn't going to happen. I care just as much about semantic HTML and css/designer stuff as I do about hard core Java development. Some say it's easy to be a jack of all trades and a master of none. But I am naturally forced to slap that theory in the face and then kick it in the balls ;-)Running Seam 2.0 on Tomcat(EJB3) using Maven and Cargo//wesleyhales.com/blog/2007/10/12/Running-Seam-2.0-on-TomcatEJB3-using-Maven-and-Cargo/
Fri, 12 Oct 2007 00:00:00 +0000//wesleyhales.com/blog/2007/10/12/Running-Seam-2.0-on-TomcatEJB3-using-Maven-and-Cargo/In this article I review a simple Seam 2.0.0.CR2 app that deploys to Tomcat 6.0.13 with JBoss Embedded Beta2. It's great to see Seam move to Maven because tracking and installing all those dependencies in a local repository was a pain in the ass! This project is moving fast, and if you wanted to keep up with the latest version, it was a lot of work. So now that my life is easier, I thought I would make the Seam+EJB+Tomcat user's life a little easier also.CSS Framework//wesleyhales.com/blog/2007/08/14/CSS-Framework/
Tue, 14 Aug 2007 00:00:00 +0000//wesleyhales.com/blog/2007/08/14/CSS-Framework/There are several possible ways to go about building a CSS framework. The framework I mention here is suited for myself and the group of developers I work with. It has proven successful on the past 3 projects I have been on. Once everyone knows about a base set of styles it's amazing how much more productive the team is. Not only do you have a "master" type of stylesheet to work from, everyone can edit the code and make changes faster because they are aware of the framework in use.My first Seam 2.0 app//wesleyhales.com/blog/2007/08/01/My-first-Seam-2.0-app/
Wed, 01 Aug 2007 00:00:00 +0000//wesleyhales.com/blog/2007/08/01/My-first-Seam-2.0-app/Before I begin, let me say thank you! thank you! thank you! for the extended EL in Seam. On a previous project, I was using straight JSF 1.1/1.2(Myfaces) and the extended EL alone, makes Seam a worthwhile choice.
This article is about an application that is relatively simple (to start). A report with customer information that has pretty charts and graphs and is printable to PDF. Since I didn't have any requirements to start, I thought I would list a few of my own here ;)iPhone Web Development//wesleyhales.com/blog/2007/07/05/iPhone-Web-Development/
Thu, 05 Jul 2007 00:00:00 +0000//wesleyhales.com/blog/2007/07/05/iPhone-Web-Development/I broke down and got my 8gig iPhone on Tuesday. I have been using it pretty heavily and in just a sec, I will start with my list o&rsquo; let downs. But first, I gotta say that whoever designed the Optimizing Web Applications and Content for iPhone page from Apple has obviously not done a lot of open-source or ANY development for that matter. Yes, it is good content, BUT This may or may not be one of the weak links for apple because there is really no organization to the content, important bits of information are scattered here an there, and frankly for something &ldquo;so revolutionary&rdquo; - they are not supporting the people who will make or break this thing (us - the developer) with good documentation very well.Acceptance to Jboss Labs//wesleyhales.com/blog/2007/04/09/Acceptance-to-Jboss-Labs/
Mon, 09 Apr 2007 00:00:00 +0000//wesleyhales.com/blog/2007/04/09/Acceptance-to-Jboss-Labs/I woke this morning to find a very nice surprise in my email....
Dear Wesley Hales, I am happy to inform you that your application to become a contributor to JBoss has been accepted. Your name should now be visible on the contributors list on labs.jboss.com. The JBoss Labs team. This is my first open source project so I am pretty stoked about it. Now I just have to keep myself from getting burnt-out ;).JSF components with the Ajax4jsf cdk//wesleyhales.com/blog/2007/03/14/JSF-components-with-the-Ajax4jsf-cdk/
Wed, 14 Mar 2007 00:00:00 +0000//wesleyhales.com/blog/2007/03/14/JSF-components-with-the-Ajax4jsf-cdk/The Ajax4jsf cdk (component development kit) from the Richfaces/Ajax4jsf development team makes the monotonous coding and complexities of developing JSF components for both JSP and Facelets almost non-existent. With a small amount of setup and a little framework knowledge (covered below), you can generate a complete JSF component that allows the developer to focus on what is most important to them.
Getting Started Make sure you are using the latest version of Maven (I'm on 2.Another blog layout//wesleyhales.com/blog/2007/03/11/Another-blog-layout/
Sun, 11 Mar 2007 00:00:00 +0000//wesleyhales.com/blog/2007/03/11/Another-blog-layout/So my current design is serving the purpose, but it seems a little &ldquo;bland&rdquo;. I finally nailed down a design that is a little more frameworked. What I mean is, most of the time websites are designed to serve the content at hand. Which is fine in most cases, but I am looking for something more than just a &ldquo;nice look&rdquo; out of my designs. For some reason I can&rsquo;t get away from grey and other neutral colors.My First Mountable Bass//wesleyhales.com/blog/2007/03/10/My-First-Mountable-Bass/
Sat, 10 Mar 2007 00:00:00 +0000//wesleyhales.com/blog/2007/03/10/My-First-Mountable-Bass/Needless to say, not much coding was done today. This is definitely the largest freshwater fish I have ever reeled into shore. I caught it at my parent&rsquo;s 5 acre lake in North Ga. The awesome fish (Spotted large mouth bass) weighed in right at 10.9 pounds!
So after a nice "persuading" talk with my wife, she agreed with me on taking my trophy to the taxidermist for a beautiful driftwood mount.JSF, Ajax, and the Back Button//wesleyhales.com/blog/2007/02/21/JSF-Ajax-and-the-Back-Button/
Wed, 21 Feb 2007 00:00:00 +0000//wesleyhales.com/blog/2007/02/21/JSF-Ajax-and-the-Back-Button/For the last few weeks I have been trying to integrate back button support into a JSF/Ajax app as an "Undo" feature. I have been using 2 approaches, 1) g4jsf (a subproject of Ajax4JSF) to enable use of GWT, and 2) dojo.undo.browser.
Currently, any engineer interacting with the back button through javascript only has access to a few methods. window.history.current, window.history.next, window.history.previous, and an array of history items with window.history[]. Gwt and dojo give us a much more accessible way to deal with these same methods through Java and javascript .JSF AjaxSlider Component//wesleyhales.com/blog/2007/01/07/JSF-AjaxSlider-Component/
Sun, 07 Jan 2007 00:00:00 +0000//wesleyhales.com/blog/2007/01/07/JSF-AjaxSlider-Component/This is the first release of my AjaxSlider component. This version works with JSP and Facelets and also extends FacesEvent to provide it's own event/listener. Many thanks to Jonas Jacobi and John Fallows for putting together a great book (Pro JSF and Ajax).
I'm also using the slider functions from the Script.aculo.us library
This component in hardly complete and bug free, so any help in debugging is appreciatedJSF Ajax Filter/Slider with UIData//wesleyhales.com/blog/2006/12/31/JSF-Ajax-Filter-Slider-with-UIData/
Sun, 31 Dec 2006 00:00:00 +0000//wesleyhales.com/blog/2006/12/31/JSF-Ajax-Filter-Slider-with-UIData/In any RIA where h:dataTable is used, probably 90% of the time, you will need a filter in the same view/page as the dataTable. A Filter can be anything from a list of links, a select many list, or in this example, a slider.
At first, I thought about just creating the component and have it add the value of the slider to a request parameter so that the backing bean could have access to the value.Ajax4Jsf Modal Loading Windows//wesleyhales.com/blog/2006/12/26/Ajax4Jsf-Modal-Loading-Windows/
Tue, 26 Dec 2006 00:00:00 +0000//wesleyhales.com/blog/2006/12/26/Ajax4Jsf-Modal-Loading-Windows/Ajax4Jsf's status tag (a4j:status) has alot of potential, but currently it's functionality is limited. With the combination of Lightbox 2.0, or basically any javascript developed to build the dom, you can achieve the look of any modal "Loading..." window.
Since the status tag does not include capability to fire javascript events(as of yet), we will use the modified lightbox script to go ahead and write everything to the dom, then let the a4j:status tag to hide it until we make an Ajax call.My Jroller Blog Extreme Makeover//wesleyhales.com/blog/2006/12/18/My-Jroller-Blog-Extreme-Makeover/
Mon, 18 Dec 2006 00:00:00 +0000//wesleyhales.com/blog/2006/12/18/My-Jroller-Blog-Extreme-Makeover/I need a new design badly (the little British car in the tunnel is getting old, quick), and after coding for x number of months, I feel like my design skillz are getting a little stale. So here are the candidates for my new look.
Layout #1
Layout #2Using Facelets TagHandlers and Adding multiple listeners//wesleyhales.com/blog/2006/12/18/Using-Facelets-TagHandlers-and-Adding-multiple-listeners/
Mon, 18 Dec 2006 00:00:00 +0000//wesleyhales.com/blog/2006/12/18/Using-Facelets-TagHandlers-and-Adding-multiple-listeners/ComponentHandler, HtmlComponentHandler, or TagHandler. So I think I finally have a handle on what each of these are used for. Okay the first 2 are easy, HtmlComponentHandler extends ComponentHandler. But what is a MetaRuleset and what can it do for my components? It looks to mee like it is just a method binding passthrough for the component when you call MetaRuleset.addRule(typeTagRule);? TagHandler ended up saving the day for me, and after spending hours/days trying to get the first 2 to do what I was wanting, this one took me like 5 minutes.JSF Chart Creator - now with ImageMaps!//wesleyhales.com/blog/2006/12/16/JSF-Chart-Creator-now-with-ImageMaps/
Sat, 16 Dec 2006 00:00:00 +0000//wesleyhales.com/blog/2006/12/16/JSF-Chart-Creator-now-with-ImageMaps/I recently updated the JSF-Comp Chart Creator component to include image map support. All charts now have capabilties for custom links on each section of the chart. All customization can be handled through the tag atributes.
New attributes: action series section The usemap attribute must start with a # (i.e. usemap="#myMap"). For action, just input the page to link to, section and series are just parameters that are built into jfreeChart.Maven 2 vs Ant - Which is better for commercial apps//wesleyhales.com/blog/2006/12/10/Maven-2-vs-Ant-Which-is-better-for-commercial-apps/
Sun, 10 Dec 2006 00:00:00 +0000//wesleyhales.com/blog/2006/12/10/Maven-2-vs-Ant-Which-is-better-for-commercial-apps/Currently I am working on a extreme RIA which is to use the code base of an existing project and rewrite were needed. Because of the strict time line, no one is attempting to rewrite the existing code base, and we are looking over problems that need to be fixed just to get things working. However, we have made the appropriate steps to create a Maven archetype for the new part of the app, and to get the ball rolling away from the old ant build.Ajax4Jsf vs AjaxAnywhere&#58; The t&#58;dataTable and t&#58;dataScroller//wesleyhales.com/blog/2006/12/07/Ajax4Jsf-vs-AjaxAnywhere-58-The-t-58dataTable-and-t-58dataScroller/
Thu, 07 Dec 2006 00:00:00 +0000//wesleyhales.com/blog/2006/12/07/Ajax4Jsf-vs-AjaxAnywhere-58-The-t-58dataTable-and-t-58dataScroller/Submitting with Ajax4Jsf
On Dec 6, Ajax4Jsf released a maintenance release (ajax4jsf-1.0.4MR1.jar which fixed an IE javascript problem not in this post) - But the framework is still a little buggy dealing with the datascroller components. On a good note, Adrian Mitev gave his custom ajaxDataScroller to the A4J project and will hopefully get everything working in both browsers. ***UPDATE - Here is the latest version of the datascroller from Adrian.JSF Component Library Integration//wesleyhales.com/blog/2006/12/06/JSF-Component-Library-Integration/
Wed, 06 Dec 2006 00:00:00 +0000//wesleyhales.com/blog/2006/12/06/JSF-Component-Library-Integration/Integrating multiple component libraries can provide a project many advantages but can also be a challenge to make all components live and work in harmony. This article explains how to integrate many popular component libraries into one app. Combining libraries gives developers an array of components to pick and choose from. But, knowing which components play well together and which ones don?t, will save you time and I will explain the pros and cons of each here.Preformatting html code blocks//wesleyhales.com/blog/2006/12/05/Preformatting-html-code-blocks/
Tue, 05 Dec 2006 00:00:00 +0000//wesleyhales.com/blog/2006/12/05/Preformatting-html-code-blocks/When the time comes to put html or xml settings as an example in your blog (or any html for that matter), this sed one-liner really helps out&hellip;
Replace the *** with an &ldquo;&amp;&ldquo;&hellip; the page example won&rsquo;t render correctly if I use verbatim characters.
cat -v article.xhtml | sed -e &ldquo;s/^*lt;/\&lt;/g&rdquo; -e &ldquo;s/&gt;/\*gt;/g&rdquo; &gt; article.code.xhtml