This is why I have been so quiet...the Tizra Publisher platform has evolved immensely during the last couple of months...which of course means a pretty busy time...and fun for that matter...And we are now posting a video tour of Tizra Publisher...
Been too long since I last wrote here. Tizra has been pretty busy picking up a ton of enthusiasm from customers and prospects (see Tizra Blog). That means, of course, a pretty busy time... :-)
I recently had to do a complete reinstall of my development environment. My laptop went dead and I had to get a new one...so that leads to the typical "absolutely essential" lists...today I reinstalled all my Firefox Add-ons. The good thing about reinstalls is that you cut the fat accumulated throughout the years and the absolute musts get installed first. Here is my list of absolute musts (in no particular order):
Selenium IDE: if you're doing any kind of serious development, you want to have a good test coverage. Selenium is a really cool tool to allow you to build automated UI and system integration testing. Selenium IDE makes your life *a whole lot easier* (although not dead-simple). You still have to tweak a lot of the generated code but hey, it's a really great start. And if you have not seen Selenium yet, you have to go take a look. It is not necessarily simple to get into but well worth it!
User Agent Switcher: really nice for that kind of testing that involves user agent detection...you can even "roll your own" agent identification for test purposes.
Web Developer: a really essential set of tools for web development. CSS inspection, changing, DOM information, source viewing, browser resizing, you name it, it's probably here.
Live HTTP Headers: a nice tool to let you see the header flow from and into your browser. Sometimes essential for analysis of behavior.
Firebug: you can't say you do web development and not know about Firebug. Simply brilliant. If you have not seen it yet, tell no one about that and go check it out for yourself.
This is what happens when you join in a single "package" an artist and a techie...Marcelino Martins had already assembled a pretty cool site filled with really impressive pictures (see here). With Brazil Pictures, Marcelino joins his photographic artistic talent to his techie talent...he has already developed some pretty cool packages like Treeview...Now he's been playing the Google APIs, XML, Ajax...the result is the really interesting Brazil Pictures. And take a look at his implementation notes for a very interesting read.
I am pretty excited to see the first set of AgilePDF sites go live...we (Tizra) are indeed live at this point. You can now see the results of this effort at the following sites.
Francisco Assis Rosa's Publications. Now, would I not be eating my own dog food ? I honestly find the system pretty cool and am publicly using it to store and offer my publications online. Privately I keep a copy of the system on an internal network where I keep all my favorite tech reading. It is really handy to be able to search through the full collection of my favorite texts and get relevant results *to the page*....nice.
eat.shop guides. Some pretty cool eating and shopping guides...smartly written, gorgeously presented.
Rate It Green. Live access digital edition to "Green Building 101".
Why do I feel so excited about this ?
These customers were able to hop on online without any significant investment. We are talking days instead of months between agreement and go live (and that with full design customization!), we're talking about revenue from online selling in the first couple of days. Yup, they did not have to wait six months to see a dollar, or even more to get their money back from the site building investment.
The technology set used in this system is a pretty exciting technology allowing us to take advantage of a lot that's good out there...
I could see a nice use for personal users like me that have some content that want to distribute online. Either free or for sale...you name it.
As far as system features go, these are some of the items that make me believe AgilePDF is cool:
End-user page-at-time PDF rendering, allowing for getting back web usability that was taken back by the placement of unwieldy PDFs online (50Mb PDF downloads to read *one* page anyone? Make that over slow connections ?).
Full text search over the content of the site/sub-site/single document with results returned at the page level (again, instead of result pointing at full PDF).
Full fledged configurable access control over your content.
Full ecommerce configurability. Whoever owns the site can create their own products (including products resulting from combinations of pages from different documents in the site), create their own selling offers and just put it out for the test. We allow hooking up to PayPal and Authorize.Net right now but as requests come in we will be expanding the list of payment fulfillers.
Full site design configurability. We offer some out-of-the-box designs you can use but you can change all the look of your site by dragging and dropping site blocks around your pages...and if you really want to go crazy on your design, just upload your CSS and you can do what you want (just compare Francisco Assis Rosa's Publications to Rate It Green to eat.shop guides!).
Full site structure configurability. Via the administration web interface you can create sub-sites based on filtering of meta data in your documents. When I said "full site design configurability" in the previous item I really meant it, you can even have these sub-sites look completely different from the main site and/or other sub-sites.
Google crawling, analytics and adsense integration...speaks for itself! ;-)
And...you can always drop me a line if you wish to use something like this...
This is just our first release...we are and will continue to work on this...
Like Dan commented on the Unit Testing Struts 2.0 (Part 2) post, Struts 2.0 has changed it's API enough to make my previous code not work on latest version. So, in response to his comment, here is what I am using right now. Credit where it's due, the setup code is the one that The Arsenalist pointed out on his blog post Unit Testing Struts 2 Actions wired with Spring using JUnit. Again, credit where it's due...my thanks go to "The Arsenalist" for posting his solution.
/** * Class for easier support of Struts related * testing. Takes care of all the configuration details * that allow test classes to create beans (Spring), * actions (Struts), intercepted actions (Struts). * Class is singleton to minimize hit of initializing * Struts and related infrastructure (e.g. Hibernate). * * Adapted from code from "The Arsenalist" (http://arsenalist.com/), * see http://arsenalist.com/2007/06/18/unit-testing-struts-2-actions-spring-junit/ */ public class StrutsTestCaseSupport {
/** * Singleton access */ public static synchronized StrutsTestCaseSupport getInstance() throws Exception { if ( _theInstance == null ) { _theInstance = new StrutsTestCaseSupport(); } return _theInstance; }
/** * Class constructor, take care of Struts initializations */ private StrutsTestCaseSupport () throws Exception { String[] config = new String[] { "/WEB-INF/applicationContext.xml" };
// Link the servlet context and the Spring context servletContext = new MockServletContext(new FileSystemResourceLoader()); XmlWebApplicationContext appContext = new XmlWebApplicationContext(); appContext.setServletContext(servletContext); appContext.setConfigLocations(config); appContext.refresh(); servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, appContext);
// Use spring as the object factory for Struts StrutsSpringObjectFactory ssf = new StrutsSpringObjectFactory(null, null, servletContext); ssf.setApplicationContext(appContext); StrutsSpringObjectFactory.setObjectFactory(ssf);
// Dispatcher is the guy that actually handles all requests. Pass in // an empty Map as the parameters but if you want to change stuff like // what config files to read, you need to specify them here // (see Dispatcher's source code) dispatcher = new Dispatcher(servletContext, new HashMap()); dispatcher.init(); Dispatcher.setInstance(dispatcher); }
/** * create a bean from the object factory (all wired up from Spring) * * @param beanName the name of the bean to get from the object factory * @param extraContent any extra content information to pass along to the bean building * process * @return the object factory created bean * @throws Exception on processing, configuration errors, test failure */ public Object createBean ( String beanName, Map
Like mentioned in previous postings, using this class is pretty straightforward, within your test you just do for beans:
Here we go again, it's that time of the year where good things are about to happen. September is marked by two major events: the release of Halo 3 ;-) and the return of the No Fluff Just Stuff conference (now called the New England Software Symposium). I have written about this even before but it does not hurt to repeat it...this is a really impressive conference and a must if you live around the Boston area. It takes place during a Friday afternoon and over the weekend. This is actually a great decision since it simplifies a lot the "need to be out of work" argument with your bosses. Sure it takes over your weekend but, if you're in this business you are most probably hooked enough to this stuff for this not to be a problem. The attendance to this event is capped at around 250 which is another great feature since it does allow you to be in those rooms listening to the presentations in a much close environment. You get to interact with the presenters both during the talks and during the breaks by mingling in lunch tables or just approaching them directly. The topics are amazing and, like I mentioned before (see here), the really annoying part of the even is choosing which sessions to go to. The price for the event is really a find...pretty affordable even if, like me, you do not get your company to sponsor you and pay out of your own pocket.
This fall, the Boston even takes place on the 14th (PM), 15th and 16th of September in Framingham, Massachusetts. For all the details, check out the event site.
I got my place already booked, what are you waiting for ?
In the hope that this adds to the list of solutions out there that can actually help people... If you are having keyboard mapping issues when trying to connect via vncviewer to a machine running vncserver on Ubuntu Feisty (7.04) with gnome, try this: