Shared posts

29 Jul 09:00

Gardens, not buildings

by Seth Godin

Great projects start out feeling like buildings. There are architects, materials, staff, rigid timelines, permits, engineers, a structure.

It works or it doesn't.

Build something that doesn't fall down. On time.

But in fact, great projects, like great careers and relationships that last, are gardens. They are tended, they shift, they grow. They endure over time, gaining a personality and reflecting their environment. When something dies or fades away, we prune, replant and grow again.

Perfection and polish aren't nearly as important as good light, good drainage and a passionate gardener.

By all means, build. But don't finish. Don't walk away.

Here we grow.

       
21 Jul 20:27

VerbalExpressions : JavaScript Regular expressions made easy

20 Jan 18:33

Front-end performance for web designers and front-end developers

A comprehensive primer on front-end performance for designers and front-end developers
15 Jul 22:00

123. ERICA GOLDSON: Graduation speech

by Gav

123. ERICA GOLDSON: Graduation speech

This is part of the speech Erica Goldson, the 2010 Valedictorian of Coxsackie-Athens High School, gave at her graduation ceremony.
The speech was uploaded on YouTube, went viral and Erica became known as the ‘Valedictorian who spoke out against schooling’. You can watch the entire speech and read the transcript here.

Erica’s speech really struck a nerve with me because I was totally like her when I was in school. I always did what I was told, didn’t ask too many questions, mindlessly memorised then regurgitated facts and figures. I remember I would write out an entire essay for homework, memorise the whole thing, then write it down verbatim on test day … and then promptly forget it and move on to the next assignment. I graduated near the top of my class, but on hindsight, I’m not sure I learnt much. The pattern continued as I went on to university, even though I never really wanted to be a graphic designer. But the piece of paper I received at the end did help me land a job, so it was all worth it in the end right? Maybe if I had heard this speech back in high school, I would have realised I was stuck in the system and gone down a different path.

One positive thing I do remember about school is that I doodled on EVERYTHING – my textbooks, files, folders, desk, arms, legs,
pencil case and all of my friend’s stuff as well (mainly pictures of Batman, sometimes Wolverine, the occasional Ninja Turtle). If only I spent MORE time doodling and less time being a robot.

Related comics: 11 Ways to be Average. The Road Not Taken.

- Thanks to Jesse for submitting this.
- Check out this in-depth article about myself and the growth of Zen Pencils by viral media expert Jonathan Goodman. It’s especially relevant if you’re interested in starting your own website, blog or webcomic.

24 Jun 13:16

Smarten up your data with Eclipse BIRT

by Jason Weathersby

From March's JAX Magazine, former Eclipse BIRT evangelist Jason Weathersby guides us through some of the major features within the business intelligence reporting toolkit

Eclipse’s Business Intelligence and Reporting Tools (BIRT) is an open source project based on the Eclipse IDE and is used to build and deploy reports in a Java/J2EE environment. As of this writing, the current version is BIRT 4.2 - the ninth major release - and the BIRT project continues to be very popular with more than twelve million downloads. BIRT contains many features and supports both OSGi and POJO runtimes, allowing developers to integrate with many types of applications.

This article series will serve as an introduction to the BIRT project, with a focus on the BIRT designer, highlighting some of the major features used to build and customize reports and libraries. General details about the BIRT pipeline, event handling and expressions will also be explained. Deployment in general will not be discussed in this article, but information about the AJAX based Web Viewer, the Report Engine API, and the BIRT tag libraries can be found on the Eclipse website. Figure 1 shows just a few of the things you can do in Eclipse BIRT.

Figure 1: BIRT Collage

Why BIRT?

Most IT software as well as many other applications focus on processes to collect, analyze and present data. The field of Business Intelligence (BI) is the use of this data by IT professionals and business analysts to improve business decision-making. 

In the past, BI data was typically presented in the form of page-based printed reports. Even today, many reporting systems still use this metaphor at the core of their architecture which, let’s face it, does not match well with the web-focused interactive experience we use to make decisions today. In fact this page-centric view limits the ability of a designer from easily integrating such systems into Rich Client Platforms (RCP) and often leads to reports being custom built from scratch.

BIRT was created from the ground up to address the need for a reporting system with the web interface central to its architectural design, built with RCP technology in mind and  based on the industry-leading open source Eclipse platform. As you'll see, BIRT's modern design, along with the highly interactive and extensible BIRT Designer, allows the implementation of highly visual and dynamic rich client applications.

Before discussing the BIRT Report Designer, an overview of the BIRT Pipeline, event handling and the BIRT Expression Builder is in order. These three areas affect virtually every aspect of the BIRT design experience.

Pipeline

BIRT Report designs are XML documents that are created in the report design tool. These designs can either be created from a report template or started from scratch with a blank design.

Templates are often used to set up header and footers and offer a starting point for common report types. Reports can optionally reference report libraries, which are XML documents that contain portions of a report. For example, if your company header is published to a report library, this header can then be used in all of your reports – and if the header is changed at a later date, the reports that reference this library will automatically show the changes the next time the report is executed. Most BIRT report items can be placed in a library by simply right clicking on an existing report item in the design tool and choosing the export to library function. Libraries can also be constructed from scratch, in a similar fashion to building a report design.

Figure 2: BIRT Pipeline

The BIRT engine processes the report in two phases called generation and presentation, as shown in Figure 2, and these two phases can be executed in one or two separate processes. The example BIRT Java Web app (WebViewer) and the Report Engine API allow both possibilities. In the WebViewer, this feature is controlled using a servlet mapping. If you are using the Report Engine API, different method calls are available to determine how the report is executed.

During the generation phase, parameters are processed, data sources retrieve data for the report and all report items are prepared and created. Pagination is also handled in this phase. At the end of the generation phase, depending on how the report is being executed, an optional report document is created.  The report document is only created when generation and presentation are executed in two different processes, and its file has the extension .rptdocument. The optional rptdocument file is used to support Table of Contents operations and paginated HTML. As an additional benefit, the report document offers the ability to run the report once and render it many times at a later date and possibly on another machine, without having to access the data sources again. 

The presentation phase then renders to the requested output. Currently BIRT supports HTML, paginated HTML, PDF, DOC, XLS, PPT, ODS, ODT, OPD, and PostScript. 

The BIRT engine is encapsulated in the BIRT report designer, the example WebViewer, and within the Report Engine runtime. This allows a developer to simply deploy the WebViewer to a Java Web app container to run and render the reports, or an Eclipse developer to use the report engine in plug-in format within an OSGi based application (RCP application), or as a set of libraries that can be added to any Java based application (Servlet, Command Line). 

Event Handling

During the processing of a report, BIRT provides event hooks that can be used to alter how the report is generated. For example, the developer may want to use different stylesheets that depend on the date, or hide/unhide specific tables and charts based on predefined external conditions or input parameters. These event hooks can be implemented in Java or JavaScript. Within the report designer, these hooks are exposed with a JavaScript editor and a dropdown list of all event hooks a particular report item supports. BIRT uses the Mozilla Rhino engine for all JavaScript processing.

Figure 3: Event Handlers

In Figure 3, a data set event handler is shown for the beforeOpen event. This handler modifies the SQL query executed. Most report items support events for preparing, creating and rendering a specific report item. In addition, certain report items expose more events.  For example, Charts exposes over thirty events that can be used to customize almost all aspects of a chart.

These events are executed server-side during the creation and rendering of a report. BIRT can also make use of client-side script, which will be discussed in Part Two of this article next month. To implement an event handler in Java, see the BIRT website.

Author Bio: Jason Weathersby was previously the BIRT Evangelist at Actuate Corporation and a member of the Eclipse Business Intelligence and Reporting Tools (BIRT) Project Management Committee (PMC). He is now the Technical Evangelist at Technical Evangelist at Mozilla Corporation

This article first appeared in JAX Magazine:Reality Check in March. To read that and other issues, click here. Stay tuned for Part Two later in the week.

Image courtesy of peretzp

15 May 07:30

HowTo: Build (Sort of) an Instagram Clone with HTML5

by Noupe Editorial Team

  
instafuzz-home-550 When I started out on this app I was only really just interested in seeing if the web platform had really evolved to a point where an app like the hugely popular Instagram app could be built using just HTML, JavaScript and CSS.  As it turns out we can in fact do exactly that.  This article walks you through the technologies that make this possible and shows how it is entirely feasible today to build interoperable web applications that provide a great user experience no matter what brand of browser the user is running.
26 Apr 10:50

Web Developer Checklist and Userium: 2 Useful Helpers for Oblivious Web Developers

by Dieter Petereit

  
checklists-f1-w550

I'll admit, you need not be oblivious to benefit from the two services I am about to introduce you to. It is not easy to keep proper track of all important aspects of clean and modern web design. I'm sure you will have created your own notes, hints, checklists as your experience developed throughout the years. In my case only the painful experiences made me jot things down for future reference. Today's article shows you Userium and Web Developer Checklist. The two can help developers with lesser experience, yet still be of value to more experienced ones who declare themselves a notes grouch.

27 Aug 20:00

jQuery plugins for awesome web typography

by Jean-Baptiste Jung

FitText.js


FitText is a simple jQuery plugin that automatically make a text fit the width of its parent element. Perfect for awesome, responsive headlines!
Download: http://fittextjs.com/

Lettering.js


Although CSS3 and the @font-face directive have definitely improved web typography, it doesn’t offer complete down-to-the-letter control. This is why Lettering.js have been created. If you’re looking for a simple solution to get the control of each individual letter of your headline, then this plugin is for you.
Download: http://letteringjs.com/

Kern.js


When I create design or front-end code, I love being able to test things in my brother. Kern.js is not a jQuery plugin, but a bookmarklet that allow you to edit texts from websites: Make them bigger, rotate letters, add space… A very useful tool for testing and finding new possibilities.
Download: http://www.kernjs.com/

SlabText.js


SlabText is a very useful jQuery plugin that splits headlines into rows before resizing each row to fill the available horizontal space. Basically, it means that your headline will always look great whatever of the client screen size. A must-have for responsive websites!
Download: http://www.frequency-decoder.com/2012/01/08/slabtext…

Bacon.js


Bacon is a jQuery plugin that allows you to wrap text around a bezier curve or a line. Very cool for magazine-like wrapped text effects!
Download: http://baconforme.com/

Approach


Approach is an interesting plugin if you’re looking to give a text (For exemple, a call-to-action button) a special effect to attract the reader attention. This plugin works in a very similar manner to jQuery animate, but it animates over distance instead of time. The closer you get to the text, the more the style will be applied.
Download: http://srobbin.com/jquery-plugins/approach/

Arctext.js


Here is another cool plugin, based on Lettering.js, which arrange each letter along a curved path. Can be really nice for titles, headlines or other fancy texts!
Download: http://tympanus.net/codrops/2012/01/24/arctext-js-curving…

jMetronome


According to 24ways.org, vertical rhythm is the spacing and arrangement of text as the reader descends the page and is contributed to by three factors: font size, line height and margin or padding. All of these factors must calculated with care in order that the rhythm is maintained.

jMetronome is a jQuery plugin which can take care of maintaining a correct vertical rhythm on your pages, even if they contain media elements such as images or videos.

Download: http://www.fortes.com/2008/jmetronome-using-jquery-to-keep-typographic-rhythm

15 Feb 00:00

App

If I click 'no', I've probably given up on everything, so don't bother taking me to the page I was trying to go to. Just drop me on the homepage. Thanks.