Saturday, December 09, 2006
Fimoculous.com - misc - Best Blogs of 2006 that You (Maybe) Aren't Reading
I went ahead and subscribed to #1
Saturday, November 11, 2006
Thursday, November 09, 2006
New features in SharePoint 2007
Saturday, October 14, 2006
Sunday, October 08, 2006
Saturday, October 07, 2006
Saturday, September 30, 2006
Sunday, September 24, 2006
GigaOM » FON selling $5 Wireless Router
GigaOM » FON selling $5 Wireless Router
Sunday, September 17, 2006
Go2Web20.net - The complete Web 2.0 directory.
Go2Web20.net - The complete Web 2.0 directory.
Tuesday, September 12, 2006
Portal study by Aberdeen Group
report
Sunday, September 10, 2006
Saturday, September 09, 2006
Gartner's 2006 Emerging Technologies Hype Cycle Highlights Key Technology Themes
Gartner's 2006 Emerging Technologies Hype Cycle Highlights Key Technology Themes
Carson Workshops Summit - The Future of Web Apps
Carson Workshops Summit - The Future of Web Apps
Friday, September 01, 2006
Thursday, August 31, 2006
Roles: Composable Units of Object Behavior
Thursday, August 24, 2006
Enterprise build system
:: zutubi :: articles :: The Road To Build Enlightenment
:: zutubi :: articles :: The Road To Build Enlightenment
Wednesday, August 23, 2006
Top 5 business maxims that need to go - Part II
Top 5 business maxims that need to go - Part II
Monday, August 21, 2006
Airfare Predictions, Find Cheap Airline Tickets - Farecast
Airfare Predictions, Find Cheap Airline Tickets - Farecast
Sunday, August 20, 2006
Java #3
The signature of main method in java is as shown below:
public void static main(String [] args)
[copied from google operating system] Google's Master Plan
Friday, August 18, 2006
Thursday, August 17, 2006
Monday, August 07, 2006
[copied from IBM blog] A new company enters the enterprise mashup space
Friday, August 04, 2006
[originally at chiefhappinessofficer] Get lucky at work - be positive
Thursday, August 03, 2006
[originally at theserverside.com] Article: Binding XML to Java
Wednesday, August 02, 2006
[from original article at theserverside.com] Ease the integration of Ajax and Java EE
[from original blog by bobby wolf] Effective SOA Governance
[copied from martin fowlers blog] Writing Software Patterns
Monday, July 31, 2006
[blogged from google reader] Open Service Oriented Architecture
Sunday, July 30, 2006
AJAX Developer Resource Center
read more | digg story
Saturday, July 29, 2006
Johnson on Feeds
Thursday, July 27, 2006
Out-Of-Container Testing When Using JNDI Lookups
Saturday, July 22, 2006
Copied this from google blog - Embed MP3 Files Into Your Website
Thursday, July 20, 2006
Copied from InsideLotus Blog - IBM WebSphere Portal Version 6 one stop shop for info
Wednesday, July 19, 2006
The world is flat
http://mitworld.mit.edu/video/266/
Guide to Those Useless Windows XP Services
read more | digg story
Tuesday, July 18, 2006
Martin Fowler's agile approach to offshore development.
read more | digg story
Monday, July 17, 2006
Artificial Intelligence Turns 50 Years Old
read more | digg story
Tuesday, July 04, 2006
Tabblo - online photo story site
Great tips for job seekers from Niniane Wang.
Resume tips at http://ofb.net/~niniane/resume_howto.html
Interview tips at http://ofb.net/~niniane/interview_howto.html
Niniane Wang's own resume at http://ofb.net/~niniane/resume.html
Another great resume from a google developer is at http://www.ofb.net/~egnor/resume/
Niniane Wang's blog is at http://niniane.blogspot.com
java#2
So if your class name is CustomerOrder than the file name should be CustomerOrder.java. If not than you would get compile time error. Editors like eclipse/RAD flags this right away while you are coding.
Sunday, July 02, 2006
java #1
You compile your .java files into .class files or package .class files into .jar files using java compiler. Java complilers are platform dependent so you have compilers for windows, linux, etc platforms. The .class/.jar files are run on something called java runtime environment, JRE. These JREs are platform dependent again.
So the idea is that .class files are platform independent but java compilers and runtime environment are platform dependent. So as developers you do not have to worry about platform issues.
Friday, June 09, 2006
Week of 06-09-2006
Another key feature was to parse the server side include files as well. The idea is take all relative links published by documentum to modify for portal to recognize those. We are using the wps:urlGeneration tag to do that. The issue was that include files were being ignored but that is fixed now.
Next week I am hoping to provide caching for parsed content files and navigation files.
Also, read up an article in DDJ on web 2.0 and the key thing that I got was that the new brave web world will be more contextualized and collaboration driven than ever before. Another interesting information was software engineering podcast on domain driven development. We seem to now have model driven developement and event driven development as new paradigms as well. Interesting and hope to have fun learning more on those.
Thursday, June 08, 2006
Tuesday, June 06, 2006
Week of 06-02-2006
Project will continue for few more weeks and this week was focussed on integrating the navigation feature. Authors will be publishing the content and associating the navigation with taxonomy files (represented as xml files) and our glue code will take that content and render it withing a portal page. Navigation glue code is in a custom portal theme which paints the left nav. Now I will be focussing on the different scenarios how the navigation should behave. There are several requirements where the entire tree will be displayed or display just the same level nodes and so on. Each level is denoted in the taxonomy file and there can be n-levels.
Continuous integration thoughts
I came across the continuos integration concept a while back and found the idea interesting. I have been developing j2ee applications for a while in teams of 1 to 15 people now and this seemed like an helpful process to deliver less buggy code in a well controlled environment. But I have looked at this concept at a very high level and hoping to dig a little deeper in future. What prompted me to blog was chance hit at Martin Flower's blog on the subject at : http://martinfowler.com/articles/continuousIntegration.html.
One of the issues that we have been facing is how to do unit testing of components that go out to external systems like database and web services. And this article sheds some light on what possible steps can be taken : http://martinfowler.com/articles/evodb.html
Need to start looking into this more seriously.
Sunday, June 04, 2006
Why not integrate design patterns directly into java language?
I am hoping to post my thoughts on each pattern as I read more about it. Some initial thoughts are as follows. Take Observer design pattern, it is currently built into java which is good. The Singleton design pattern support is somewhat provided by java's static keyword but should be expanded so that it is not required to worry about doing those extra steps of making the constructor private and providing getInstance() method or front it by Factory pattern and so on.
Wednesday, May 31, 2006
some c# stuff
Some .net training notes
Casting
there is hard cast and soft cast, examples below
int x = (int) obj; //hard cast, so if obj is not of type int there will be class cast exception
int x = obj as int; //soft cast, in this case if obj is not of type int than x will be null
Boxing C# has a feature called boxing and unboxing which is basically copying value types from stack
to object on heap and vice versa. An example is below:
int x = 3;
Object obj = x; //boxing
int y = (int) obj; //un-boxing.
Second more subtle example below:
Console.WriteLine(" {0} ", 3); //boxing
Boxing from performance perspective is not good so best to avoid. So for the above
examples change as below.
int x = 3;
Object obj = x.ToString();
int y = int.Parse((string)obj);
Console.WriteLine(" {0} ", 3.ToString());
Use command line utility, ildasm, to check generated MSIL code if boxing code is generated.
ildasm <name of dll>
WMI -- windows management and instrumentation, can be used for performance analysis.
Inheritane
keywords: constructor chaining, virtual chain of methods, sealed classes,
marker interfaces (interface with no methods)
use "is" in C# is same as "instanceof" in java
in c# it is possible to hide methods of implemented interfaces by using interface
name for method declaration. So to use it you have to cast object to the specific
interface.
ADO
DataSet -- reads and remembers -- composed of DataTables. DataTables composed of
DataRows and DataColumns
DataReader -- just reads
DataSet uses DataReader to get the data.
For very small amount of data use DataReader to get the data and store in some
collection object like arraylist, etc instead of using DataSet.
With DataReader you have to explicity open/close connection but with
DataSet since you are using DataAdapter it will open/close connection
automatically.
best practices -- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadonet/html/adonetbest.asp
DataSets are typed and un-typed. If you have xml xchema (or can create one) than
DataSets can be created out of this schema. typed are faster and compiler checked.
Also, you are using GUI to auto generate DataSet code.
DataTables and DataSets can keep track of changes (diffgram).
Use Transaction objects if rollback is needed.
Config file
App.config is default, do not chnage the name. This file can be added to projects. Works only
for .exe and not for .dll
Web Services
proxies stand between client code and web service.
.asmx files represent web service in .net world.
.net has something similar to java annotations called "attributes" (just declare above method definition).
you can type the location of .asmx file in browser which can be used for testing.
.asmx?wsdl will return the wsdl file
wsdl.exe /l:CS /o:c:\testproxy.cs <wsdl-url> //will generate client proxy code, another way is to use webreference from IDE.
for webrefernce there is an option to update web service
for webservice proxy you can set credential, timeout, proxy, etc.
VSTO
to run .xls without running dll run the .xls by pressing shift key
if a solution has only execute permission (and not full trust) than web service call will fail.
PIO code is under c:\windows\assembly folder, format of the file name is Microsoft.Office.Interop.xxx
+= is used for event registration called delegation
-= is used for de-registration
if += is called 3 times and -= is called once than the registration of event is still ther, you would
need to call -= 2 more times to actually un-register.
dlls get downloaded in "documents and settings"...."application data" directory.
AssemblyInfo.cs has version number, [assembly: AssemblyVersion(" 1.0.*")], which is used for creating
different versions of the dll. this version gets referenced in c:\windows\assembly\download folder
to combine multipe ranges can use "union"
RecordSet in un-managed code is equivalent to DataSet in .net, there are apis to copy from one to another.
To add a windows form to excel, add a form and than from officecodebehind create an instance of
form.
Also, since windows form is built into .net no need to worry about registering events like
onclick, etc but for excel you have to worry.
When need to pass data from form to OfficeCodeBehind, it is possible to pass OfficeCodeBehind
to form class or other way around. Second approach is preferred where form class provides public
api to access data which is than called by OfficeCodeBehind.
Events
Delegates holds references to callback methods
delegates can be called asynchronously.
difference between ABO and ABO.NET
Wednesday, March 08, 2006
JSF notes on event handling
- Phase listener -- listener is invoked as jsf goes through each of the 6 phases, you can register for a specific phase or all of them.
- Action listener -- listener is invoked when an action like command button is clicked.
- Vlaue change listener -- listener is invoked when an input component like textbox value is entered and form submitted
navigational logic whereas listeners are meant to handle with UI elements only.
Action listeners are invoked before action handlers.
Value change and action listeners can be added as UI element attibutes as well as tags. It is better to add as tags.
Below are the execution of different phases for different scenarios:
- value change listener --> 1 -- 2 -- 3 (listener called) -- (4 -- 5 -- 6)
- value change listener with immediate --> 1 -- 2 (listener called) -- 3 -- (4 -- 5 -- 6)
- action listener --> 1 -- 2 -- 3 -- 4 -- 5 (listener called) -- (6)
- action listener with immediate --> 1 -- 2 (listener called) -- (6)
JSF General Notes
- value binding expressions, eg., "#{....}". property getter is invoked when the component is rendered and setter is invoked when when the user response is processed.
- method binding expressions
- JSF connects the view and model
- each ui tag is associated with a tag handler. tag handlers collaborate with each other to build a component tree (not necessarily binary tree)
- encoding is when the renderer of a component generated the output. eg., html output
- decoding is when the html elements are processed by JSF container to do things like update component values, navigation, etc.
- six life cycle steps: restore view, apply request values, process validations, update model values, invoke application, render response
- action methods have 2 roles, first carry out the model updates and second tell the navigational handler where to go next
- action method can return null to indicate that the same page should be redisplayed
- all form controls (ui elements like textbox, etc) generated by JSF have names that conform to formName:componentName. if you do not specify id attributes, jsf framework creates automatically
- DataTable : The body of h:dataTable tags can contain only h:column tags and all the other component tags are ignored.
- DataTable: value attribute can be set to an array, List, ResultSet, javax.servlet.jsp.jstl.sql.Result, javax.faces.model.DataModel
- DataTable: h:dataTable wraps objects in a model that extends the javax.faces.model.DataModel class which provides apis like getWrappedObject() and setWrappedObject() which can be used to add/remove table rows.
- Conversion: this happens in the "apply request values" phase where the string values submitted as part of form is converted to appropriate objects.
- Conversion:
-
<meta http-equiv="Refresh" content= "0; URL=index.faces"/>
Friday, February 24, 2006
Setting data members in a class
of the class lets client pass the values as arguments.