Showing posts with label Opensource. Show all posts
Showing posts with label Opensource. Show all posts

November 6, 2008

ArgoUML 0.24 released in Oct 2008

For those who don’t know, ArgoUML is a Java based CASE tool. And open source too J

 

 

Feature list

·         Platform Independent: Java 1.4

·         Standard UML 1.3 Meta-Model

·         8 out of 9 Diagrams supported

·         XMI-Support

·         Export Diagrams as GIF, PS, EPS, PGML and SVG

·         Internationalization EN, DE, ES, RU, FR, NB

·         Advanced diagram editing and Zoom

·         OCL Support

·         Forward Engineering

·         Reverse Engineering / Jar/class file Import

·         Cognitive Support

·         Reflection-in-action

·         Design Critics

·         Corrective Automations (partially implemented)

·         "To Do" List

·         User model (partially implemented)

·         Opportunistic Design

·         "To Do" List

·         Checklists

·         Comprehension and Problem Solving

·         Explorer Perspectives

·         Multiple, Overlapping Views

·         Alternative Design Representations: Graphs, Text, or Table, media size, resolution, and so forth.

 

 

Download: http://argouml.tigris.org/

August 11, 2008

Linux solution to use exchange mail which works like outlook on windows

I have been looking for a Linux based solution to use exchange mail which can work as Outlook would on Windows environment. We need something that can fetch mails, lookup contact on the server, show calendar items as is and does not crash too often.

I tried to look for MS specific APIs to see if something can be built, however no solution yet. If you know of a solution, please do let me know. This could mean a new open source software with wraps the MS APIs to work on Linux environment.

Any ideas???

May 5, 2008

Yahoo Pipes

Yahoo has a tool called yahoo pipes which works much like a hose pipe we use in our gardens. All you have to do is fetch some data (search results maybe) and pipe it through another filter to sort and eliminate some records. That’s it…your kind of data is ready!

For non-technical people (the one who are unable to understand the above paragraph), there are pipes built by others which can be used by you. Lets say you are looking for a good deal on camera phone with Bluetooth, there is a pipe available which will search for all the deals and show you the results.

The ones I liked:

1. People Search - This tool is fetching search results from Yahoo, MSN, Google and Flickr to find any people entered with "Name FirstName".

2. Google and Yahoo news - Searches Google and Yahoo news, then merges them together into one feed.

3. Page to Podcast - This pipe extracts mp3 links from page, analyze ID3tag, and makes Podcast.

4. Meta Search Alert - This Yahoo Pipe: 1. Aggregates these search results from (Del.icio.us + Findory + Flickr + Google Blog Search + Google News + Google Search + Icerocket + Live Search + Technorati + Yahoo News + Yahoo Search); 2. Filters the results and ensures that the links are unique; 3. Sorts the results by date…

URL: http://pipes.yahoo.com/pipes

May 11, 2007

Comparison of Open Source Load Testing Tools

Open Source Load Testing Tools

#

Feature

Description

JMeter

WebLOAD Open Source

TestMaker

Authoring environment

1

Recording

Create test script by recording of the web application

Y

Y

Y

2

Language/Technology

Develop test script using standard code

Java

JavaScript

Java, Jython

3

Extensions

Use any COM/Java object in your test script

Y

Y

N

Execution environment

4

Sophisticated load scenario

Execute your load test use different load options for load generations

Y

Y

Y

5

Monitor performance measurements

Use different performance measurements for monitoring.

Y

Y

Y

Scalability

6

Distributed Load

Support for many load generator servers

Y

N

N

Performance Test Execution

7

Notification

Send mail when session completes

N

N

N

Supported Platforms, Protocols & Technologies

8

HTTP/S

Y

Y

N

9

SOAP / Web Services

Y

Y

Y

10

AJAX

Y

Y

N

October 4, 2006

Struts authentication on every request

Today, somebody asked me if we always need to implement an interceptor design to authenticate the user request every time before it is processed. Fortunately for him, he is working on a Struts based solution, hence my answer was that you have an option to create a subclass of RequestProcessor.

Override processPreprocess() (which returns true in normal conditions) to call your method which will authenticate the user request. Return true to proceed and false to abort request processing.

I have learned this trick the hard way (doing it wrong the first time), but you have my blog to simplify things for you. Write to me (Sachin) if you need any particular solution.

July 21, 2006

Divide and rule - use multiple struts config files for one application

Too tired of searching through the long struts config file for the module you are working on? Get a new config file for your modules. All you need is to modify the web.xml to use multiple config files.

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>

org.apache.struts.action.ActionServlet

</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>

/WEB-INF/struts-config.xml,

/WEB-INF/module1.xml,

/WEB-INF/module2.xml,

/WEB-INF/module3.xml

</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

When the ActionServlet is loaded, Struts will merge the results of the specified configuration files into a single in-memory configuration. Just make sure that syntax of each file is correct.

April 7, 2006

Can we trust the profiling tools?

Can we trust the profiling tools? Plain and simple: Not if you don’t know what you are doing. Running the tool is not sufficient.

Know that there are multiple things that can affect the outcome of the profiling exercise, timings are the last thing you want to trust. Lets look at the prominent reasons:

1. Operating system – Various OS have their own ways of prioritizing the threads of execution, hence these priorities will impact your results. Specially in Windows environment, default setting gives more time to processes running on foreground.

2. Cache – Most developers profile their code by restating the application server to ensure these start with minimum threads, however it affects the systems which use cashing. We must ensure the consistent environment to profile for improvements.

The most reliable way to check the timing will be to use System.currentTimeMillis() in the code that needs to be tested. Caution – use judicially.

Last words… know your profiling tool before you start the process of profiling and fixing the code. Happy coding!

December 8, 2005

Divide and rule - use multiple resource bundles

Too tired of searching through the long struts resource bundles file for the text you added? Get a new resource file for your module. All you need is to modify the struts-config.xml in the following manner:

<message-resources

parameter=" com.text.sachin.msgText "

key="msgText">

</message-resources>

<message-resources

parameter=" com.text.sachin.pageText "

key="pageText">

</message-resources>

On application startup, Struts creates a runtime representation of the message resources and stores it in the servlet context.

Note: If the properties file was located in /WEB-INF/classes/com/text/sachin/msgText.properties, you would set up the message resources element as follows:

<message-resources

parameter="com.text.sachin.msgText"/>

Use “bundle” parameter in “bean:message” tag to identify the file having the properties.

<bean:message bundle="msgText" key="msgText.welcome"/>

I’ll try to upload files with working example to illustrate this technique of struts. Post me in case you need help.

February 18, 2005

Presentation of table with alternate row background colors (works with Java, .NET, Ruby, everything else too)

Yesterday my team member asked me (after spending 2hrs) for logic for presentation of table with alternate row background colors. I felt that it may be simple to people who know it and difficult to others, hence I am blogging about the solution.

This solution works with Java, .NET, Ruby, every other language. I’ll use HTML example for simplicity and focus on solution rather than technology syntax.

First, declare two style classes (or something you need to set the font/background/etc that needs to be altered):

<style>

.rowstyle1 {background-color:white;}

.rowstyle0 {background-color:lightyellow;}

</style>

Second, declare a numeric (int) variable to count (running number of) the table rows:

int rowNumber = 0;

Third, increment the running number before rendering the table row:

rowNumber++;

Fourth, use the running number to assign the style class to each row:

class='rowstyle<%=(rowNumber % 2)%>'

Post me if you need help with logic building in any situation. I’ll try to help.