Tuesday, April 07, 2009

Good Summary of Proprietary Versus Open Source

From Paul Ramsey's Blog comes a link to an arcticle entitles Open Source and Software Procurement.

Paul like one part of the article, but I like it for another part. The part I like explained the difference between the up-front license cost of software versus the implementation/customization cost.

Here is the part I liked:

One thing he said that suddenly made the bulb above my head light was to do with procurement. At Netsight, we pretty much gave up on responding to blind tenders we were sent many years ago due to the overhead of responding to them. Not just that but we always thought that the tenders generally asked 'the wrong questions' which made it very hard for us, as an Open Source implementation company, to really give a decent answer. Many of you, no doubt, will be familiar with this scenario as an example: The tender has a cost table you have to fill in the blanks in. You are not allowed to deviate from the format of the table (because the tenderer wants to try and compare apples with apples). So you fill the table in, but your numbers just don't quite fit in the boxes right. We've even had feedback from tenders we've lost saying things like 'Well your solution costs 0 for licensing and 50K for implementation; the solution we chose cost 40K in licensing and 30K in implementation, so must be the more appropriate solution for our needs'.

Now I can see their thinking here. Our solution cost 50K and 100% of the cost is in implementation/customisation so obviously wasn't the correct solution to start with. The one they chose cost 70K but only 42% of that was implementation/customisation. What they don't realise that (especially in the CMS market) any large software procurement is only going to give you a fraction of your requirements out of the box. That is because every business is different, and so no one piece of software can do everything you need. Open Source might give you slightly less out of the box than a commercial offering, but that is generally because Open Source software focusses on delivering a lowest common denominator out of the box, whereas commercial software has loads of bells and whistles (many of which you will never need), but more on that later. You are still going to need professional services to tailor the software to your specific business and its requirements. The problem is looking at ratio of costs and the perception of these ratios.


The Sunburned Surveyor
Posted on 2:09 PM | Categories:

172 Plug-Ins For OpenJUMP

I made a list of all the OpenJUMP plug-ins packages as part of the core. This doesn't count plug-ins distributed separately from the plug-in. I did this by examining the class names in the Javadoc for the program.

How many Plug-Ins did I find?

172

That is a lot of plug-ins. I was suprised at how much of OpenJUMP's functionality is acutally added via plug-in, which increases the flexibility of the program.

I also found a lot of plug-ins that seemed to duplicate functionality, or to offer "junk" functionality. I think there might be some house cleaning to do. Here are some examples of a plug-in names that made me raise my eyebrows:

AddWMSDemoBoxEasterEggPlugIn
MicroscopePlugIn

This list of plug-ins should make it easier for OpenJUMP programmers to thin down OpenJUMP's functionality, or to locate the plug-in that contributes behavior to OpenJUMP.

Here is the full list of plug-ins for OpenJUMP that I compiled:

AboutPlugIn
AbstractAddDatastoreLayerPlugIn
AbstractLoadDatasetPlugIn
AbstractLoadSaveDatasetPlugIn
AbstractPlugIn
AbstractSaveDatasetAsPlugIn
AbstractSaveProjectPlugIn
AddDatastoreLayerPlugIn
AddImageLayerPlugIn
AddNewCategoryPlugIn
AddNewFeaturesPlugIn
AddNewLayerPlugIn
AddSIDLayerPlugIn
AddWMSDemoBoxEasterEggPlugIn
AddWMSQueryPlugIn
AffineTransformationPlugIn
AffineTransformPlugIn
AttributeQueryPlugIn
BeanShellPlugIn
BeanToolsPlugIn
BoundaryMatchDataPlugIn
BufferPlugIn
CalculateAreasAndLengthsPlugIn
ChangeCoordinateSystemPlugIn
ChangeLayerableNamePlugIn
ChangeSRIDPlugIn
ChangeStylesPlugIn
ClearSelectionPlugIn
CloneWindowPlugIn
CombineSelectedFeaturesPlugIn
ConnectionManagerToolboxPlugIn
ConstrainedMoveVertexPlugIn
ConvexHullPlugIn
CopyImagePlugIn
CopySelectedItemsPlugIn
CopySelectedLayersPlugIn
CopySelectedLayersToWarpingVectorsPlugIn
CopyStylesPlugIn
CopyThisCoordinatePlugIn
CreateThiessenPolygonsPlugIn
CustomFillPatternExamplePlugIn
CutPolygonPlugIn
CutSelectedItemsPlugIn
CutSelectedLayersPlugIn
DeeChangeStylesPlugIn
DeleteAllFeaturesPlugIn
DeleteEmptyGeometriesPlugIn
DeleteSelectedItemsPlugIn
DiffGeometryPlugIn
DiffSegmentsPlugIn
DrawCircleWithGivenRadiusPlugIn
DrawConstrainedArcPlugIn
DrawConstrainedCirclePlugIn
CrawConstrainedLineStringPlugIn
DrawConstrainedPolygonPlugIn
EditablePlugIn
EditAttributeByFormulaPlugIn
EditingPlugIn
EditSelectedFeaturePlugIn
EditSelectedSidePlugIn
EditWMSQueryPlugIn
EnsureAllLayersHaveSRIDStylePlugIn
ExplodeSelectedFeaturesPlugIn
ExportImagePlugIn
ExtensionManagerPlugIn
ExtractSegmentsPlugIn
FeatureInfoPlugIn
FeatureStatisticsPlugIn
FirstTaskFramePlugIn
GenerateLogPlugIn
GeometryFunctionPlugIn
ImageLayerManagerPlugIn
InstallGridPlugIn
InstallKeyPanPlugIn
InstallReferencedImageFactoriesPlugIn
InstallRendererPlugIn
InstallScaleBarPlugIn
InstallShowScalePlugIn
InstallSkinsPlugIn
InstallStandardDataSourceQueryChoosersPlugIn
InstallStandardFeatureTextWritersPlugIn
InstallZoomBarPlugIn
JoinAttributesSpatiallyPlugIn
JoinTablePlugIn
JoinWithArcPlugIn
LayerableClipboardPlugIn
LayerStatisticsPlugIn
Layer2SLDPlugIn
LineNoderPlugIn
LoadDatasetPlugIn
MacroPlugIn
MainButtonPlugIn
MapToolTipPlugIn
MapToolTipsPlugIn
MeasureM_FPlugIn
MergeTwoSelectedPolygonsPlugIn
MicroscopePlugIn
MoveAlongAnglePlugIn
MoveLayerablePlugIn
NewTaskPlugIn
OpenProjectPlugIn
OptionsPlugIn
OutputWindowPlugIn
OverlayPlugIn
PasteItemsPlugIn
PasteLayersPlugIn
PasteStylesPlugIn
PersistentBlackboardPlugIn
PlanarGraphPlugIn
PolygonizerPlugIn
PrecisionReducerPlugIn
ProgressReportingPlugIn
ProjectionPlugIn
RandomArrowsPlugIn
RandomTrianglesPlugIn
RedoPlugIn
ReducePointsISAPlugIn
RemoveSelectedCategoriesPlugIn
RemoveSelectedLayersPlugIn
ReplaceValuePlugIn
ReplicateSelectedItemsPlugIn
RotatePlugIn
RotateSeletedItemPlugIn
RunDatastoreQueryPlugIn
SaveDatasetAsPlugIn
SaveDatasetsPlugIn
SaveImageAsPlugIn
SaveImageAsSVGPlugIn
SaveLegendPlugIn
SaveProjectAsPlugIn
SaveProjectPlugIn
ScaleBarPlugIn
ScaleSelectedItemsPlugIn
SelectAllLayerItemsPlugIn
SelectByTypePlugIn
SelectFeaturesInFencePlugIn
SelectItemsByCircleFromSelectedLayersPlugIn
SelecteItemsByFenceFromSelectedLayersPlugIn
SelectOneItemPlugIn
ShortcutKeysPlugIn
ShowFullPathPlugIn
ShowScalePlugIn
ShowTriangulationPlugIn
SimpleQueryPlugIn
SpatialJoinPlugIn
SpatialQueryPlugIn
StandardPirolPlugIn
TestColorThemingPlugIn
ThreadedBasePlugIn
ThreadedPlugIn
ToggleVisibilityPlugIn
ToolboxPlugIn
UndoPlugIn
UnionByAttributePlugIn
UnionPlugIn
ValidateSelectedLayersPlugIn
VerticesInFencePlugIn
ViewAttributesPlugIn
ViewSchemaPlugIn
WarpingPlugIn
WKTPlugIn
ZoomBarPlugIn
ZoomNextPlugIn
ZoomPreviousPlugIn
ZoomToClickPlugIn
ZoomToCoordinatePlugIn
ZoomToFencePlugIn
ZoomToFullExtentPlugIn
ZoomToLayerPlugIn
ZoomToScalePlugIn
ZoomToSelectedItemsPlugIn
ZoomToWMSPlugIn

The Sunburned Surveyor
Posted on 12:43 PM | Categories:

Blog Post On User Interface Design Tools

I liked this blog bost on the use of interface design tools. In my own experience I've found the tools are troublesome at best. It can be very hard to make sense of the code they produce, and the zillion inner classes they create for event handling really annoy me.

At any rate, I think the blog author makes a good argument:

http://java.sys-con.com/node/898537

The Sunburned Surveyor
Posted on 7:57 AM | Categories: