TechnoBuzz

A Techno Blog, mainly about Java

slickgrid

Developer Fusion: “SlickGrid takes a different approach. In the simplest scenario, it accesses data through an array interface (i.e. using “dataitem” to get to an item at a given position and “data.length” to determine the number of items), but the API is structured in such a way that it is very easy to make the grid react to any possible changes to the underlying data. ”

var columns = [

{id:”playerID”, name:”Player ID”, field:”playerId”, width:116, focusable:false, selectable:true, sortable:true ,formatter: playerDesclink},

{id:”description”, name:”Description”, field:”shortDescription”, width:439, focusable:false, selectable:true, sortable:false}

];

Column definition options:

Column definition option Description Default
id Column ID.
name Column name to put in the header.
field Property of the data context to bind to.
formatter Function responsible for rendering the contents of a cell. defaultFormatter
editor An Editor class responsible for editing the value of a cell.
validator An extra validation function to be passed to the editor.
unselectable If true, the cell cannot be selected (and therefore edited). false
cannotTriggerInsert If true, a new row cannot be created from just the value of this cell. false
setValueHandler A custom function to be called to set field value instead of setting contextfield
width Width of the column in pixels. Options.defaultColumnWidth
resizable If false, the column cannot be resized. true
minWidth Minimum allowed column width for resizing.
maxWidth Maximum allowed column width for resizing.
cssClass A CSS class to add to the cell.
rerenderOnResize Rerender the column when it is resized (useful for columns relying on cell width or adaptive formatters). false

var options = {
editable: false,
enableAddRow: false,
enableCellNavigation: false,
asyncEditorLoading: false,
forceFitColumns: true,
enableColumnReorder:false,
fullWidthRows: true
};

Options:

Options Description Default
enableAddRow If true, a blank row will be displayed at the bottom – typing values in that row will add a new one. true
manualScrolling Disable automatic rerender on scroll. Client will take care of calling SlickGrid.scroll(). false
editable If false, no cells will be switched into edit mode. true
editOnDoubleClick Cells will be switched into edit mode on double-click instead of a single click. Single click will select a cell. false
enableCellNavigation If false, no cells will be selectable. This also disables editing. true
defaultColumnWidth Default column width in pixels. 80
enableColumnReorder Allows the user to reorder columns. true
asyncEditorLoading Makes cell editors load asynchronously after a small delay. This greatly increases keyboard navigation speed. true

API :

  • DataView (i.e. model or dataprovider) provides useful features that the grid doesnt have

# var  dataView = new Slick.Data.DataView({ inlineFilters: true });

dataView.beginUpdate();

            dataView.setItems(data);

            dataView.setFilter(myFilter);

dataView.endUpdate();

  • Grid

# var grid = new Slick.Grid(“#myGrid”, dataView, columns, gridOptions);

Getting Started:

http://alivedise.github.io/blog/2012/02/09/slickgrid-api-list/

https://github.com/mleibman/SlickGrid/wiki/API-Reference

http://joeriks.com/2011/07/03/a-first-look-at-slickgrid-with-read-and-update-in-webmatrix/

http://blogs.neudesic.com/post/2012/05/07/Slickgrid-Currency-Column-Formatter.aspx

June 16, 2013 Posted by | Web Design | Leave a comment

MVC can you see

link : “With your first glance at Spring MVC 2.5 you have probably noticed that controller methods don’t have to return a ModelAndView anymore.”

link: Some basics in Spring MVC 3 with how to construct a project, additional concepts, form processing, and more in a tutorial series.

link : an overview of Spring MVC which ends with a link to a video on Spring MVC

http://www.captaindebug.com/search/label/MVC

http://www.javavm.net/spring-mvc-controllers/

http://krams915.blogspot.com/2010/12/spring-3-mvc-using-modelattribute-in.html

http://stackoverflow.com/questions/10401402/how-to-share-sessionattributes-between-controllers-in-spring-mvc

http://richardchesterwood.blogspot.com/2011/03/using-sessions-in-spring-mvc-including.html

http://stackoverflow.com/questions/5938951/set-session-variable-spring-mvc-3

http://vard-lokkur.blogspot.com/2011/01/spring-mvc-session-attributes-handling.html

https://github.com/SpringSource/spring-mvc-showcase

https://src.springframework.org/svn/spring-samples/

http://sleeplessinslc.blogspot.com/2012/07/spring-mvc-31-presentation-and-tutorial.html?m=1

 

January 10, 2013 Posted by | Uncategorized, Web Design, Web/Tech | , | Leave a comment

iOS programming Field Of Dreams

I guess you could say 2012 has been my Field Of Dreams . In this year, I expanded my playing field of technical knowledge learning several new computer programming languages and tool sets.

I started year off learning Base SAS Programming with SAS 9.3. I also got exposed to SAS Enterprise Guide tool. My training in data continued with Data Flux by SAS. I thought about continuing my growth in the data with possibly getting certified.But, at the end of the day, what really interested me was creating GUIs.

In my next project, I was fortunate enough to enhance my front end development knowledge base by working with Sencha EXTJS4 javascript library. I really got to learn the in and outs of this library.

Next, I was part of another front end technology project with JQuery and KnockoutJS  technologies. Knockout uses the MVVC pattern which I had used before so it really fit well with me.

I have played around with BootstrapJS and even have used all different web service tools like Apache CXF and Spring-WS

This entry begins my exploration into ioS programming.

December 23, 2012 Posted by | Web Design, Web/Tech | Leave a comment

Closing out Knockoutjs Adventure

I have been involved with a knockout project the past few months. I learned alot over the course of the coding journey. The Knockout simplifies your code and works well in tandem with Jquery. Along the way, I got to use JQuery Tabs, KnockoutJS templates, Knockout observable arrays, and much more

Here are some of the great sites  and links I found along the way.

September 23, 2012 Posted by | Web Design | Leave a comment

CSS Style

The format of a selector is as follows

Selector {property : value}

Type selector – targets selector by element name, can have comma and wild card *

Contextual Selectors – apply style to properties based on context or relation to another element

  • Descendant selector:  descendants of another element, list separated by space starting with the higher level element, can have commas separating multiple entries, and can be specified several levels deep
  • Child selector: like a descendant but specified by a specific parent of an element, indicated as child with greater than sign between elements >
  • Adjacent selector: elements that comes directly after a certain  element with same parent, indicated with plus sign +

Class and Id selectors: specified in regard to specific elements which are a class or a specific ids specified by user.

  • For class you define it in terms of class in regards to a specific type selector with a dot  separator  .
  • To specify class selector to all elements within a class you can leave out the type selector
  • id selector target a single element and work like class selector except indicated with a #

Attribute selectors – targets specific attribute names or values

  • Simple attribute: specified for an attribute for an element, indicated as element[attribute]
  • Exact attribute value : specified as element[attribute=”myvalue”]
  • Partial attribute value: doesnt match whole word but search value within attribute value , specified as element[attribute~=”myvalue”]
  • hyphen separated value : used for case where you look for value of ‘myvalue’ or starting with ‘myvalue-‘ , indictaed with |=

Pseudeoclass selector  :  targets a group of elements such as an anchor.  has a colon : after the anchor followed with the attribute kind (i.e. link, or name)

  • there are others supported other than the anchor tag . i.e. :first-chld, :first-line, :first-letter,:before, :after

How you reference style sheets:

<link rel=style sheet href=file.css type=text/CSS />

or

@import url();

Document structure and inheritance
– parent child relationships
– sibling relationships
– descendants
Inheritance – styles passed down to desndants
Overriding styles by nodes higher in hierarchy
Can get presentation rules from several sources and conflicts
Passed down until overridden by command with more weight
Resolve rules from competing style sheets
When user agent (ie browser) encounters element looks for all style rules that may apply
Sorts out this out based on
Style sheet origin
Least weight to greatest
1 User agent style sheet 2 reader style sheet 3 authorsyle sheets 4 !Important marked
External file sheets further down document greater precedence
Imported styles sheets override linked ones
Embedded styles sheets override external ones
Inline styles override other references

Selector
More specific the selector the more priority it gets
Least to most priority for selectors follow
Individual element to pseudo element selector
Contextual selectors
Class selectors
Id selectors
rule order
Last one wins

Display roles
Block level elements – line breaks before and after it  and fills in width of the parent that contains it
Paragraph
Headings
Lists
Divs

Inline – no line breaks
Emphasized text
Anchors

None – Wont display

List-item
Run-in

Box model : Element box around it
Border
Margin
Background

Inner edge
Border
Margin
Outer edge

Unit measures
Pixel
Pts
Pc
Em
Ex
In
Mm
Cm

Color value
% values

 

September 23, 2012 Posted by | Web Design | Leave a comment

Spring MVC refresher

web.xml:

application context Beans makeup the configuration of the root web application context
< context-param >
< param-name >contextConfigLocation< /param-name >
< param-value >/WEB-INF/accounts-application-config.xml< /param-value >
< /context-param >

Bootstraps the root web application context before servlet initialization
< listener >
< listener-class >org.springframework.web.context.ContextLoaderListener< /listener-class >
< /listener >

Deploys the dispatcher servlet along with its configuration
< servlet >
< servlet-name >accounts< /servlet-name >
< servlet-class >org.springframework.web.servlet.DispatcherServlet< /servlet-class >
< init-param >
< param-name >contextConfigLocation< /param-name >
< param-value >/WEB-INF/accounts-servlet-config.xml< /param-value >
< /init-param >
< /servlet >
accounts-servlet-config.xml:

< context:component-scan base-package=”accounts.web” />

< mvc:annotation-driven/ >

An interceptor which keeps a hibernate session open to allow lazy loading of backing object
< mvc:interceptors >
< bean class=”org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor” >
< property name=”sessionFactory” ref=”sessionFactory”/ >
< /bean >
< /mvc:interceptors >
< bean class=”org.springframework.web.servlet.view.InternalResourceViewResolver” >
< property name=”prefix” value=”/WEB-INF/views/”/ >
< property name=”suffix” value=”.jsp”/ >
< /bean >

Note: if had not have used component scanning would have had to wire up the controller

A Spring MVC @Controller

imports:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

package accounts.web;

@Controller
public class AccountController {

private AccountManager accountManager;

@ Autowired
public AccountController(AccountManager accountManager) {
this.accountManager = accountManager;
}

The method does not explicitly select a view name because the default
view name selected by Spring MVC matches to the incoming URL accountDetails.jsp
@ param id the id of the account
@ param model the “implicit” model created by Spring MVC

@ RequestMapping(“/accountDetails”)
public void accountDetails(@RequestParam(“entityId”) int id, Model model) {
model.addAttribute(“account”, accountManager.getAccount(id));
}

The method does not explicitly select a view name because the default
view name selected by Spring MVC matches to the incoming URL accountSummary.jsp

@ param model the “implicit” model created by Spring MVC

@ RequestMapping(“/accountSummary”)
public void accountSummary(Model model) {
model.addAttribute(“accounts”, accountManager.getAllAccounts());
}
}

index.html:

< a href=”accounts/accountSummary” >View Account Summary< /a >

http://localhost:8080/ss/accounts/accountSummary

Click on one of the listing entries

http://localhost:8080/ss/accounts/accountDetails?entityId=7

Again, this uses RequestParamin the nethod signature

public void accountDetails(@RequestParam(“entityId”) int id, Model model)

September 15, 2012 Posted by | IoC, Web Design | Leave a comment

Fluff 2012 August Notes on Advanced Javascript

I just attended the NFJS Raleigh tour stop. This was my third time at this great event and my focus of the sessions was javascript and mobile.

Here begins my notes:

Suggested Book: Seven Languages in Seven weeks by Bruce Tate

Prototypes – IO, LUA, SELF : access to class , define on the fly, manipulate class after you define it.

Functional JS vs OO JS

http://joda-time.sourceforge.net/ – spring data

Everything in javascript is an object but primitives.  Objects consist of key value pairs + prototype

javascript function is pass by reference not by copy.

Dynamic typed language

hoisting –  Only functions create a new scope.

propertyIsEnumerable : higher within prototype

passing functions to a function desirable for reuse

associative array {name: ‘fred’}

two scopes: global and function level scope

this – scope you are in

null == undefined

parasitic inheritance is like composition

CommonJS – use of require

Underscore.js

Date.js

Sugar.js

Backbone.js

Testing- Jasmine

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Working_with_Objects

 

September 4, 2012 Posted by | Web Design | | Leave a comment

Composition Over Inheritence Rules

We should avoid inheritance if we can.  Just like this post says:

The difference between is-a and has-a relationships is well known and a fundamental part of OOAD, but what is less well known is that almost every is-a relationship would be better off re-articulated as a has-a relationship

http://stackoverflow.com/questions/49002/prefer-composition-over-inheritance

Other good practice that was mentioned in software was http://www.kitchaiyong.net/2010/02/solid-principle.html

September 14, 2010 Posted by | Web Design | 1 Comment

The 21st Century Architecture at NFJS

I took just about the whole series of the 21st Century architecture at NFJS 2010 with  Brian Sletten.  Services (i.e. SOA) is not dead, however expensive is. Avoid the center down approach, and instead use the ecosystem based approach. Invest in the RESTful style. A little complicated, but you are investing in the future. Rest is not about behavior, but about information. It is not a SOAP replacement. Rest gives the freedom to negotiate in the format you like (i.e atom,rss, etc). Leonard Richardson introduced the Rest Maturity Model with Soap being level 0, URL resources level 1, http level 2, and hypermedia level 3. For example, twitter uses alot of JSON and not hypermedia. Some properties to consider with REST is performance (i.e. maybe the first request requires the greatest server hit, and subsequent requests do not), scalability (how it handles the load and scles down for different devices), stateless (part of request), uniform interface (don’t need WSDL), minimize layering.  Rest Triangle : Npuns, Verbs, Representations. The important http methods with REST include : Get is a state transfer from server of a resource (i.e. web page),  Head is constrained version of Get. Info about resource (i.e. header), Post is where accept by the server at this time an information resource, don’t know if it is recieved by server.  (i.e  form handling) create and update. Example in early days was usenet news,  Put is do know resource. Overwrite idempotent record, Patch is more explecit version of Post, Delete is idempotent, Options ask if allowed to do something. An overview of  Http return codes : 200s everything is cool, 204 no response, 300s good stewards (more information), 303 non-networkable address, 400s you screwed up, 500s server in bad state try again laterGood book is Rest In Practice.  Artucles: InfoQ on Rest , Rest for Java Developers, Restlets , Net Kernal , The future is Rest . JSR 311 : http://www.infoq.com/news/2008/09/jsr311-approved

Semantic web has public and private link information. Microformats standard, but no common model. RDF is new enabling technology to focus on concepts that provides a global guide to webs of data.Information has a context so people can use it.  Purl.org web site example that uses foaf (friend of a friend) with birthday handle. DBpedia data set.  Gleaning Resource Descriptions from Dialects of Languages (GRDDL) W3C recommendation structured content.  RRFa   is RDF attributes (metadata). RDFa is a way to label content to describe a specific type of information, such as a restaurant review, an event, a person, or a product listing. These information types are called entities. Each entity has a number of properties . Freebase , Adaptive Blue. The Curie processing / RDFa spec.  The Open Graph protocol enables any web page to become a rich object in a social graph. Enables any web page to have the same functionality as a Facebook Page. The Web Ontology for eCommerce can be found at Good Relations (see best buy). Semantic Web at InfoQueue . Rdfa split. ODF use of RDFA . Books: Pull: The Power of the Semantic Web to Transform Your Business. CommonTag. RDFa test page. RDFa distiller. rdfa.info web site. RDFa parser for fragments.   Details on Whitehouse. gov site that  uses RDFa .Taxonomy blog. Basics, Long tail

RDF triple , librdf.org/query , rdf about ,rdf-sparql-query , linked data , mulgara.org , sparql query , twinkle, govtrack sparql , reyvu.com with twinkle , relfinder with Kill Bill. Lastly, google supports RDFA

September 7, 2010 Posted by | Web Design, Web/Tech | Leave a comment

jQuery basics

I am in the process of learning about jQuery. I have used some dojo, and recently most my work on client side has been in GWT . I figured the best place to start is in a slide share.  As well, there is a jQuery fundamentals, an  online book.  jQuery in Action is also online. As the first chapter says :

If you’ve spent any time at all trying to add dynamic functionality to your pages, you’ve found that you’re constantly following a pattern of selecting an element or group of elements and operating upon those elements in some fashion. You could be hiding or revealing the elements, adding a CSS class to them, animating them, or modifying their attributes.

This javascript library make it easier to accomplish these routine blocks of code in your client code.
To collect a group of elements, we use the simple syntax:

$(selector)
or
jQuery(selector)

Known as a wrapper or a wrapped set.

September 6, 2010 Posted by | Uncategorized, Web Design | | Leave a comment

NFJS 2010 Java Agility Event Series Part 2

EasyMobile Development by Pratik Patel :   JQTouch , App Accelerator Titanium , WebKit, Phone Gap , Building iPhone Apps with HTML, CSS, and JavaScript by Jonathan Stark, Aptana

jQuery byNathan Schutta : jQuery Fundamentals , jquery.com, jqueryui.com. More on topic from jquery tuts

Testing web layer: yuitest , js spec , qunit,  jsunit ,jslint

September 4, 2010 Posted by | Web Design | Leave a comment

What Is Pectin

Built for GWT,  Pectin makes use of the Presentation Model perspective .  By this, Andrew Pietsch,  has implemented a library that handles a customized domain or state logic. Here is the demo.

Pectin Basics :

“data up” – frameworks that  map the form data  from domain bean definition(i.e struts) . The data is collected in regard to the bean definition. There is no business logic based on the User Interface in this model. Moreover, the UI is passive, and the logic is on the server side.

“bottom down” – the “data up” does not work well for GWT, since most of the logic moves to the client, and the server side is just a thin DAO wrapper. Pectin works with the domain bean without being constrained by it.

  1. View : may implement view or delegate to presenter model
  2. Bindings : binding widgets to model
  3. Presentation Model (with plugins) : data and handlers required by view, whereas plugins add additional state to data
  4. Adapters : creating ValueModel‘s from your domain data (dirty data or not)
  5. Domain – the data

Value model in Presentation model:  provides access and mutation methods (get/set) and notifications when the value is modified using  a (gin/juice like) declarative style api. (ValueModelMutableValueModel)

FieldModels are a ValueModel that hold a reference back to the form that created it.

Related [MVP]

July 12, 2010 Posted by | Web Design | Leave a comment

Rest Explained

link :

That is the Best description of Rest Ive read! Now I get it – I used to think it was just another competing way of getting information like RPC, SOAP, etc. But I understand from your article that it is a universal way of mapping information

  • Roy Fielding’s name is on the HTTP specification.
  • The HTTP protocol capabilities are not always utilized.
  • http address tells you the location of something anywhere in the world
  • REST is an architectural style. It defines a resource which the web address points to.  Each resource are simply concepts
  • A web page is a representation of a resource. There are many other formats for resources. Therefore, browser can prompt for a certain representation of a concept. Thus, the URL or web address to “the something” can be thought of as a noun.
  • Rest allows you to assign verbs to the nouns in away that makes sense (get,put,delete).

July 12, 2010 Posted by | Web Design | Leave a comment

HTML5 Fever

HTML 5 is in the headlines, and up until now, I haven’t been following as closely as I should have (i.e. m.youtube.com)

To get up to speed on the technology, this is a nice overview of html5 .

There is a html5 showcase running on Google’s  AppEngine  gwthtml5.appspot.com via http://www.ongwt.com/post/2010/05/10/html5-slides-:-GWT-Version

GWT+ html5 : http://code.google.com/events/io/2010/sessions.html#GWT video: http://tinyurl.com/26ppnjg

July 11, 2010 Posted by | Web Design | Leave a comment

Google App Engine learnings

The Google App Engine framework

http://passion4java.blogspot.com/2010/06/google-appengine-hello-world-example.html

http://www.slideshare.net/tahirakram/developing-java-web-applications-in-google-app-engine-2749092

On project click properties -> Google -> App Engine -> Configure SDK

For me, C:\eclipse\plugins\com.google.appengine.eclipse.sdkbundle.1.3.0_1.3.0.v200912141120\appengine-java-sdk-1.3.0\

Trying a Demo Application” : the SDK is located in your Eclipse installation directory, under plugins/com.google.appengine.eclipse.sdkbundle_VERSION/, where VERSION is a version identifier for the SDK.

C:\eclipse\plugins\com.google.appengine.eclipse.sdkbundle.1.3.0_1.3.0.v200912141
120
> appengine-java-sdk-1.3.0\bin\dev_appserver.cmd appengine-java-sdk-1.3.0\dem
os\guestbook\war
********************************************************
my applicatiion id is dmbgwt

July 8, 2010 Posted by | Web Design | Leave a comment

GWT quiz question

Be the MVP

GWT wiki

August 26, 2009 Posted by | Web Design, Web/Tech | Leave a comment

GWT Best Of 8/21

A basic GWT menu example

gwt 2.0 preview

GXT and eclipse

authentication example

Mr Bloch at Google

GWT future

August 22, 2009 Posted by | Web Design, Web/Tech | Leave a comment

GWT Atchitecture anyone?

This video begins the subject of GWT design choices.  The video touches on a few thing like the :

  • HandlerManager class in GWT 1.6
  • GwtMocking
  • MVP and testing the presenter
  • EventBus

This was found on this post – http://stackoverflow.com/questions/1234389/whats-your-recommendation-for-architecting-gwt-applications-mvc-mvp-or-custom

Since I am mainly just familiar with MVC , lets get into MVP…

From this  Model-View-Presenter post, it illustrates their are two flavors of the MVP:

a) Dolphin Smalltalk’s MVP – http://martinfowler.com/eaaDev/SupervisingPresenter.html

b) Passive View – http://martinfowler.com/eaaDev/PassiveScreen.html

View – widgets, responds to user actions, turns to the presenter to handle these user actions

Presenter – presentation logic, tightly coupled with the view, commands the model,  changes presentation according to the application rules.

Model – business objects , doesn’t know anything about View/Presenter.

“in MVC there is controller for every widget, and every widget on the screen surface is called view. In MVP on the other hand, due to the elimination of the controller, there is no sentiment for a single widget and the screen itself is called view.”

also see : Use MVP , MVP based Component Library, GWT MVP Sample, eventbus and mock tests

Some clarifications for me. Seems Ext – GWT is also known as GXT (found on this page which talks about JSON vs RPC, to spaghtetti code)

Another interesting thing is the post on difference between a   toolkit vs framework

References:

August 15, 2009 Posted by | Web Design, Web/Tech | 1 Comment

Google Tech Group

Noticed there is a Google Technology Group  (GTUG) in  the Triangle. Their Twitter feed is http://twitter.com/trigtug

Their You Tube Group http://www.youtube.com/user/gtugs

Resources http://sites.google.com/a/gtugs.org/www/resources

August 10, 2009 Posted by | Web Design, Web/Tech | Leave a comment

Agile Software Process

AMIS on Deliver valuable software: “Other posts about the AGILE Principles soon to come:
1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. (This one).
2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily throughout the project.
5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity–the art of maximizing the amount of work not done–is essential.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Forget those fancy tools, and try just enough information in requirement gathering.

June 8, 2007 Posted by | Patterns & UML, SW Tools, Web Design | Leave a comment

EL

jstl provides use of the EL.

JSP 2.0 includes EL (Expression language) : "Personally I use the EL
extensively in all my JSP projects and I’ll never go back to custom tags or
scriptlets for showing the value of a request-scoped variable."
http://weblogs.java.net/blog/jfalkner/archive/2003/10/blarg_3_about_t.html

November 28, 2006 Posted by | Web Design | Leave a comment

Apache

I just downloaded the Apache Server on Windows which I have done a while ago alongside IBM’s websphere where they call it Http Server.

I ran the download program that pretty much self installs it. The executable for the Server can be found  here
C:\Program Files\Apache Software Foundation\Apache2.2\bin

It appears a bunch of the configuration for server can be found here

C:\Program Files\Apache Software Foundation\Apache2.2\conf

httpd.txt: This is the main Apache HTTP server configuration file.  It contains the
configuration directives that give the server its instructions.

Documentation gives details on the meaning of the information in the config file.

November 21, 2006 Posted by | SW Tools, Web Design | Leave a comment

Servlet Filters

Servlet Filters [ link ] — are not Servlets and they are not responsible for
creating a response.

They are preprocessors of requests before they
reach a Servlet and postprocessors of responses after leaving a
Servlet.

Servlet filters can:

  • Intercept a Servlet’s invocation before the Servlet is called

  • Examine a request before the destination Servlet is invoked

  • Modify request headers and request/response data by subclassing the HttpServletRequest object and wrapping the original request

  • Intercept a Servlet’s invocation after the servlet is called

The designers of Servlet Filters identified the following examples for their use:
Authentication Filters, Logging and Auditing Filters,Image conversion Filters, Data compression Filters, Encryption Filters, Tokenizing Filters, Filters that trigger resource access events, XSL/T filters, Mime-type chain Filter

web.xml:

<filter>
      <filter-name>My Filter</filter-name>
      <filter-class>com.myproject.MyFilter</filter-class>
      <init-param>
         <param-name>enable</param-name>
         <param-value>yes</param-value>
      </init-param>
</filter>

<filter-mapping>
      <filter-name>My Filter</filter-name>
      <servlet-name>action</servlet-name>
</filter-mapping>

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
public class MyFilter implements Filter
{
    boolean _enable = false;

    public void init(FilterConfig fc) throws ServletException
    {
        String enable=fc.getInitParameter("enable");
        if ("yes".equals(enable))
            _enable=true
    }
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
                  throws IOException, ServletException
    {
        HttpServletRequest  request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;
       
        if (! _enable)
        { // proceed with request
            chain.doFilter(request, response);
            return;
        }
       doIt();
        chain.doFilter(request, response);
        //After
FilterChain.doFilter() returns, the filter can do more processing if it
chooses;      
        doINextt();
}

public void destroy()
    {
    }
}

 

November 5, 2006 Posted by | Web Design | Leave a comment

Breadcrumb Taglib

  • Trail Taglib allows a dynamic breadcrumbs trail to be built up and records a user’s movements for the entire session, while providing a normalized version to display to the user.
    (tags: taglib)

"Basic approach is that pages push themselves onto a trail-stack, and
a normalized version is maintained for showing on a page. ie)

In addition to the normalized user version, a full trail is also
maintained, which could be emailed or stored instead of access logs on
session expiry.

Normalization occurs whenever an element is repeated in a trail, its
http-referer is repeated in a trail [ie sneaky users used the back button]
or possibly when the trail:pop tag is used, though I’ve not had a need to
use that yet."

November 4, 2006 Posted by | Web Design | Leave a comment

One Year Out

Stu Halloway : "predicts Ajax will be part of nearly all web applications within the next year."

Tapestry: "component based framework"

Instantiations

November 4, 2006 Posted by | Web Design | Leave a comment

AJAX Reference

October 31, 2006 Posted by | Web Design | Leave a comment

tool tip and tech commentary

October 3, 2006 Posted by | Web Design | Leave a comment

collaboration tool

wiki

July 3, 2006 Posted by | Web Design | Leave a comment

technology

ATG:

Tables

7.0 API Java DOC

Create Catalogs

Catologs and Products

Catologs, Categories, Skus

sku

er diags

Repository Guide

Repository API

Repository – data store.
Represents a collection of RepositoryItems. the interface

MutableRepository – The interface defines functions for four operations: creating, adding, updating, and removing repository items.

RepositoryItem : like a JavaBean that is similar to a row in a table that is made up of properties. Each repository item must have an identifier, which is called a repository ID.

MutableRepositoryItem
RepositoryItem that can be updated as specified by the interface

RepositoryItemDescriptor –  Each item type is described by a Repository item descriptor (also called a RepositoryView) interface . Gives a name to the type, and also describes the properties for that type.

ItemDescriptorImpl – implements RepositoryItemDescriptor

atgrepositorypropertieschanged : When a repository item is modified, its item descriptor broadcasts locally a PropertiesChangedEvent. In addition to its type, a PropertiesChangedEvent contains the following:- A Map in which the keys are RepositoryPropertyDescriptors and the values are the new property values.- The item that is changed.- The repository ID of the item that is changed.- The item that is changed.-The item descriptor of the item that is changed. If you have a component that you want to be notified when repository item properties change, it can implement the atg.repository.PropertiesChangedListener interface. You can add your PropertiesChangedListener implementation to the atg.repository.ItemDescriptorImpl returned by the repository.getItemDescriptor() method, using the method ItemDescriptorImpl.addPropertiesChangedListener.

RepositoryPropertyDescriptor

Property files in ATG

Generic Service

ATG Mocks

Component
– storage, personalization, biz logic, jsps references component props
Repository
– data and data access
Profile
– attributes about individual visiting a web site

Targeting
– based on profiles. applying tagged content
SCenario
– sequence events over liftetime (multiuser) , and applicable actions taken (email or personalized content)

DAF- Dynamo App Framework
DAS – Dyname App Server
DPS – Dynamo Personalization Server
DSS- Dynamo Scenario Server

/usr/java/ATG7.0/DAS/taglib/dspjspTaglib/1.0
  /lib/dspjspTaglib1_0.jar
  /tld/dspjspELTaglib1_0.tld
/tld/dspjspTaglib1_0.tld

<%@ taglib uri="http://www.atg.com/taglibs/daf/dspjspTaglib1_0&quot; prefix="dsp" %>
<%@ taglib uri="http://www.atg.com/taglibs/daf/dspjspELTaglib1_0&quot; prefix="dspel" %>

SQL Repository
– Java view of elements in database

Repository Item
– repositoryId
– zero or more properties specified by item descriptor

Item Descriptor
– Logical (Repository Item) to Physical (Tables)

Item Type ~ Item Descriptor

GSA
– Generic SQL Adapter

May 23, 2006 Posted by | Web Design | Leave a comment

html stats

Continue reading

February 7, 2006 Posted by | Web Design | Leave a comment

J2EE Hosting

Link dump follows:

January 20, 2006 Posted by | Web Design | 1 Comment

eBay Google Maps

Link: eBay Google Maps Mashup

January 18, 2006 Posted by | Web Design | Leave a comment

Web Finds

Yahoo has added more to its stable lately: Yahoo Go, MyWeb, Podcasts

My favorite iGoogle module.

Firefox extension for feeds, extension for more bookmarks

NetCraft , DNSStuff , Speed Test

Anon Google

100 Places

Itunes experience , more Apple

January 10, 2006 Posted by | Web Design | Leave a comment

AJAX spoof

Useability Views: see text at end spoof details

Well, if you are still interested in AJAX after all that, here is a tech tip . [more]

Continue reading

January 9, 2006 Posted by | Web Design | Leave a comment

Google Maps Creation Tools/Tutorials

Link: Google Maps Mania: Google Maps Creation Tools/Tutorials.

December 11, 2005 Posted by | Web Design | Leave a comment

Google Maps

This page was in French.
Translate it to english here .
Get Geo here
Hello World
Google Maps

Continue reading

December 10, 2005 Posted by | Web Design | Leave a comment

Gmail Custom Stylesheet

I used these instructions to have my gmail web page displaying a new look. It relies in the URL id plugin

November 26, 2005 Posted by | Web Design | Leave a comment

URL rewriting or cookies

For session managment, there are two schools of thought: cookie-based / URL rewriting .

cookie based: a message (cookie) containing user’s information is sent to the browser by the Web server. This cookie is sent back to the server when the user tries to access certain pages. By sending back the cookie, the server is able to identify the user and retrieves the user’s session from the session database; thus, maintaining the user’s session.

URL rewriting: all links that are returned to the browser or that get redirected have the session ID appended to them. When the user clicks these links, the rewritten form of the URL is sent to the server as part of the client’s request. The servlet engine recognizes the session ID in the URL and saves it for obtaining the proper object for this user. To use URL rewriting, HTML files cannot be used for links. To use URL rewriting, JSP files must be used for display purposes.

this link mentions two methods for URL rewriting:

http://www.apacheref.com/ref/mod_rewrite.html

http://www.seoconsultants.com/windows/isapi/

Alternatively, the session object hides the details of dealing with the cookies or rewriting URLS.

November 16, 2005 Posted by | Web Design | 1 Comment

Struts and AJAX

http://today.java.net/lpt/a/236

http://www.onjava.com/lpt/a/6293

November 1, 2005 Posted by | Web Design | Leave a comment

AJAX Demos

Relevance has Demo from Ajax presentation at Java in Action .

October 18, 2005 Posted by | Web Design | Leave a comment

New RAD platform to fill the J2EE-AJAX void – JAVA J2EE PORTAL

Link: New RAD platform to fill the J2EE-AJAX void – JAVA J2EE PORTAL.

September 24, 2005 Posted by | Web Design | Leave a comment

WebApps

My take is web apps in general  are designed around the save/submit model (see servlet API).  Meaning, we dont go to the backend that often, unless a specific event occurs. Most of the time it is the user clicking the submit or next button. In some cases, if a person selects an item from a select-one menu, we may got to back end if the selection affects other user inputs (i.e states displayed if USA selected).

AJAX has come on the scene to enable web apps to have more of the feel as desktop applications do. Like in GMail when you click a letter in the ‘To’ field  , it displays all your contacts (from a backend database most likely) that meet that criteria. Very Outlook like.

The thing with AJAX is that we are not sending the whole Form envelope on each event (small pieces bundled up and sent to server without a submit), we may have multiple seperate connections with the data (increased number of times data going to server but smaller payloads).

Here are some links on AJAX

http://www-128.ibm.com/developerworks/library/j-ajax1/?ca=dgr-lnxw01Ajax

http://dev2dev.bea.com/pub/a/2005/08/ajax_introduction.html 

September 23, 2005 Posted by | Web Design | Leave a comment

DynAPI

Link: DynAPI.


Documents

August 7, 2005 Posted by | Web Design | Leave a comment

AJAX at JUG

Steve Benfield from ClearNova spoke about AJAX at the TriJug last night.

Jesse James Garrett  from  web site Adaptivepath.com is the person who is behind the technology.

Follows are my notes from meeting:

Google using AJAX
asynchronous communication to the server without fullpage refresh
Rich internet user application experience
component oriented model (3 tier client/ server)
form submit under hood (small pieces bundled up and sent to server without a submit)
increased number of times data going to server but smaller payloads
event driven programming

XMLHttpRequest (MSFT and Mozilla behind it)
Multiple connections on the page
There is a call back object.
Some things that were used in past was a IFRAME – minibrowser in html document, but can only go back to URL that is part of the original message.

open (assign destination, url, method)
send (send data)

states:
onreadystatechange – event handler
readystate : 0,1,2,3,4
status:
200 OK
404

Back buttonand refresh are still issues with AJAX
The heart of AJAX is controlled via javascript.

He mentioned a nice firefox extension called aardvark

Misc related links:

July 19, 2005 Posted by | Web Design | Leave a comment

Industry Experiences

Link: Are Rogue Programmers Running Rampant in IT?

Link: Enterprise Development is Hard

April 17, 2005 Posted by | Web Design | Leave a comment

publishing of code ,etc

Here are a few links:
Java2html: “converts Java (and other) source code (complete files or snippets) to HTML”

Forrest for web publishing

September 25, 2004 Posted by | Web Design | Leave a comment

Rich internet applications

Th server side item on this topic

September 15, 2004 Posted by | Web Design | Leave a comment

Tables

This site is by a retired IBMer who gives his take on displaying content.

August 30, 2004 Posted by | Web Design | 3 Comments