Bhimesh over at the Magik Fun blog has posted a video of how he uses the XMPP protocol to send/retrieve standard input/output from Magik. It kind of reminds me of the remote_cli class in Magik.
You can view the blog post here.
Showing posts with label Open Source. Show all posts
Showing posts with label Open Source. Show all posts
Saturday, January 8, 2011
Saturday, January 2, 2010
Dialog Designer 2.0 now available
For some time I have been posting an update each time a new version of Dialog Designer has been released. Version 2.0 has now been released. You can find the announcement at the iFactor Consulting blog. From now on, if you want to be notified of Dialog Designer updates, please read or subscribe to the iFactor Consulting blog.
Happy New Year!
Labels:
Dialog Designer,
MagikComponents,
Open Source
Friday, October 23, 2009
Dialog Designer 1.9.5 now available
Graham Garlick at iFactor Consulting has uploaded v1.9.5 of the open source Dialog Designer. You can get the latest version by browsing to http://www.ifactorconsulting.com and clicking on the "Download Version 1.9.5 Now..." link.

Here are the release notes for 1.9.5:

Here are the release notes for 1.9.5:
- create additions/changes sub-source directories for core code modifications
- bug fix (statusbar progress indicator element XML generation/parsing)
- exposed :allow_filtering? attribute for a tabular_list
- fixed statusbar rendering of multiple springy panes
- fixed window_pane rendering
I did not do a post for 1.9 so here are those release notes as well:
- added messages tab (define messages to support user-written code)
- fix issue where module.def 'requires' section was not updating
- various bug fixes, all minor.
- added recordset_gui_component widget
- added numeric input widget
- added 6th example dialog to the Help Document
If you have not used this tool, I would highly recommend it. You can create your GUIs without using this tool, but there are so many parameters to be aware of. Using this tool essentially allows you to incorporate known (and sometimes unknown) tips, tricks, workarounds and best practices from one of the best Magik coders around and put it into your own application.
Tuesday, November 11, 2008
Dialog Designer v1.8 now available
Graham Garlick over at iFactor Consulting has uploaded v1.8 of the open source Dialog Designer. You can get the latest version from the SourceForge Magik Components community or from a zip file at iFactor Consulting.
Here are the release notes:
- autosave a copy of current XML dialog description to the generated module.
- dt_dt language added (thank you Frank Wolff @ GE)
- added button to refresh of icon list, to capture newly loaded modules
- expose the double_click_notifier attribute for tabular_list and tree_list
Monday, October 6, 2008
Configuring the GE Smallworld FME Plugin as a Server
Anyone that has done any work with GE's version of the FME Smallworld Reader/Writer will know that it does not behave well as a stand-alone server. So you are faced with one of two options:

- purchase SpatialBiz' FME Plug-in. It has been designed as a server process.
- modify your existing (i.e., already paid-for) GE Smallworld Reader/Writer using a combination of Python, TICs and a few Magik enhancements to allow the FME Workspace to dynamically control the fme_tics_client class.
You can find a more detailed description by look at the "Behind the Scenes" section at http://evangelism.safe.com/smallworld2008.
Here are the steps you would need to take:
- create a Python Module that exposes Tics32.dll functionality
- extend the Python Module to expose various Magik methods such as setCollections(), rollback(), rollforward(), gotoAlternative(), etc.
- modify fme_tics_client.private_run() to listen for TICS messages from the new Python module.
- configure your FME Workspace to use the new Python Module.
I have prepared a package (licensed under LGPL) of Python and Magik code (along with a workspace sample) that I am happy to send out upon request. Thanks to my employer (Red Planet Consulting, Inc.) for permitting me to make this available to the Smallworld community.
Send me a note at...

...to request a free copy of the Python, Magik and FME Workspace files I used to integrate FME Server with the GE Smallworld FME Reader/Writer.
Friday, May 16, 2008
Dialog Designer v1.6 now available
Graham Garlick over at iFactor Consulting has uploaded v1.6 of the open source Dialog Designer. You can get the latest version from the SourceForge Magik Components community or from a zip file at iFactor Consulting.
Here are the release notes:
Here are the release notes:
- added outlookbar widget
- support progress_bar pane type in statusbar
- support dropdown image button groups within a toolbar
- click on rendered menubar or statusbar to jump to its editing tab
Wednesday, February 6, 2008
Dialog Designer v1.5 now available
Graham Garlick over at iFactor Consulting has uploaded v1.5 of the open source Dialog Designer. You can get the latest version from the SourceForge Magik Components community or from a zip file at iFactor Consulting.
Here are the release notes:
Here are the release notes:
- updated Documentation file.
- fixed issue with hanging plugin action selection gui when a raster image was missing in CORE.
- fixed issue with non-refresh of Magik/XML code when first going to the Magik/XML tab
- added input mechanism to add extra slots to dialog Base Class
- added input mechanism for setting pragma statement code settings
- added input mechanism for adding additional slots to the base gui class
- added input mechanism for setting the package for the dialog
- es_es language edited (thank you Alejandro CaƱas [alexcaas at gmail dot com])
- added unit_text_item widget
- fixed :select_directory (open_file_dir widget) incompatibility with SW4.
- fixed internationalization issue with the :top_dock,:bottom_dock (etc.) messages
- added date_time_input widget
Labels:
CST 4.1,
magik,
MagikComponents,
Open Source,
swaf
Friday, December 14, 2007
Dialog Designer v1.4 available
Graham Garlick's latest update to Dialog Designer is now available as v1.4. You can visit iFactor Consulting's web site to download the code here.
This version has the following additional features
This version has the following additional features
- bug fixes (tabular_list, element_editor, tree_list)
- modified button_item icons/cursor
- fr_ca language added (internet translation ... corrections likely)
- es_es language added (internet translation ... corrections likely)
- pt_pt language added (internet translation ... corrections likely)
- ko_kr language added (thank you Heewook Park [heewook.park@ge.com] )
Tuesday, October 23, 2007
Dialog Designer v1.3 available
Graham Garlick's latest update to Dialog Designer is now available as v1.3. You can find it on the Magik Components SourceForge project. Based on the dates of the releases, v1.3 is not yet in the packaged mclib release. But if you have a CVS connection to SourceForge you can update your source tree with his latest code. You can also visit iFactor Consulting's web site to download the code here.
This version has the following additional features
This version has the following additional features
- added style selection widget (place a gui element for selecting a style)
- removed dependency on the path_select plugin
- added file/directory selection widget (place a button that launches the file/directory selection dialog)
- added plugin widget (embed an action from some other plugin or an entire other plugin)
- added auto-generation of supplementary gui/framework & plugin files so developers can expand/customize produced GUI functionality in a place that the Dialog Designer won’t overwrite if the GUI layout is tweaked and re-built.
- added FAQ section to the main documentation
- de_de messages updated
- fr_ca messages created
Thursday, August 2, 2007
Magik HTTP requests; Open Source Magik; Reading RSS
Brad packaged a new release (in .zip file) of the Magik Components source tree here. Be sure to choose the latest version of "mclib CST 4.0 SWAF". This will include the dialog designer that I mentioned yesterday.
I wanted to highlight one of the cool components that I have found in this package. The module is called :mclib_http_interface. It provides a Magik interface to making HTTP requests to a server and then return the results back to you as a simple_xml_document. You can then use the API on simple_xml_document to parse information out.
To highlight the ease and power of this capability, I quickly hacked together some code that allows you to connect to the Yahoo!Weather RSS feed and get a weather forecast for your location. This is a simple example and you can clearly extend it to your heart's content.
Download the Magik Components product and register the accompanying product.def file in your curent image.
Load the :mclib_http_interface module (eg., sw_module_manager.load_module(:mclib_http_interface)
Now run the following block of code. As written, it will give you a weather forecast for Boulder, CO, USA in degrees Celsius. The example also shows how you can glean lat/long information from a feed and convert it to a Magik coordinate.
Incidentally, you can get more information about the Yahoo!Weather API at http://developer.yahoo.com/weather
Where I think this http_interface could come in really handy is for you to write GeoRSS parsers that would allow you to show location events on a Smallworld map (maybe as a SOM or a post_render_set). Have a look at Direction Magazine's Fun with GeoRSS article if you are interested in other ideas for interfacing with other data sources in real time from Smallworld.
I wanted to highlight one of the cool components that I have found in this package. The module is called :mclib_http_interface. It provides a Magik interface to making HTTP requests to a server and then return the results back to you as a simple_xml_document. You can then use the API on simple_xml_document to parse information out.
To highlight the ease and power of this capability, I quickly hacked together some code that allows you to connect to the Yahoo!Weather RSS feed and get a weather forecast for your location. This is a simple example and you can clearly extend it to your heart's content.
Download the Magik Components product and register the accompanying product.def file in your curent image.
Load the :mclib_http_interface module (eg., sw_module_manager.load_module(:mclib_http_interface)
Now run the following block of code. As written, it will give you a weather forecast for Boulder, CO, USA in degrees Celsius. The example also shows how you can glean lat/long information from a feed and convert it to a Magik coordinate.
_block
# see http://developer.yahoo.com/weather/ for more information
# about the Weather RSS feed
_constant BASE_URL << "http://weather.yahooapis.com/forecastrss"
_constant QUERY_CHAR << %?
_constant QUERY << "p=80305&u=c" # forecast for USA ZipCode 80305 in Celsius
_constant URL << write_string(BASE_URL,QUERY_CHAR,QUERY)
_local hr << mclib:http_request.new_for_url(_unset,_unset,URL)
_local response << hr.connect()
_local a_xml_doc << response.smart_result()
_local rss_channel << a_doc.top_element.element_matching_name(:channel)
_local item << rss_channel.element_matching_name(:item)
_local long << item.element_matching_name("geo:long").elements[1].as_number()
_local lat << item.element_matching_name("geo:lat").elements[1].as_number()
write()
write(item.element_matching_name(:title).elements[1]," at ",coordinate.new(long,lat))
_local forecast_attributes
_for a_forecast _over item.elements_matching_name("yweather:forecast")
_loop
forecast_attributes << a_forecast.attributes
write(forecast_attributes[:day]," (",forecast_attributes[:date],") ",forecast_attributes[:text]," low=",forecast_attributes[:low]," high=",forecast_attributes[:high]," ")
_endloop
_endblock
$
Incidentally, you can get more information about the Yahoo!Weather API at http://developer.yahoo.com/weather
Where I think this http_interface could come in really handy is for you to write GeoRSS parsers that would allow you to show location events on a Smallworld map (maybe as a SOM or a post_render_set). Have a look at Direction Magazine's Fun with GeoRSS article if you are interested in other ideas for interfacing with other data sources in real time from Smallworld.
Tuesday, July 31, 2007
Magik Dialog Designer now available
Some time ago I posted about the Magik Dialog Designer and that it would be made freely available soon. Well I am happy to say that that day has come (actually was a couple of weeks ago) and it is now available on the Magik Components SourceForge page. Thank you to Graham Garlick for putting together such a useful tool!
This tool essentially lets you create GUIs in SWAF using drag-and-drop and then creates all the relevant Magik code (including module structures and XML files) to include that GUI in your product. It also stubs out any of the action methods associated with buttons.
For now you will have to browse the Magik Components source code tree yourself and find the module. You can follow the CVS connection instructions to setup CVS on your machine to check out the latest Magik Components code. If you are not interested in installing CVS you could e-mail Graham at graham [at] ifactorconsulting [dot] com and ask him for the Dialog Designer zip file. Tell him Alfred sent you :)
(The module should eventually make its way into the Download Magik Components section.)
Since our time together at Navigant/Smallworld/GE, I have always been a fan of Graham and his creative innovations with Magik. In my opinion, this Magik Dialog Designer is one of his greatest Magik achievements. Although his Raster Calculator was pretty cool too. But I ramble on... so please go download the Dialog Designer yourself and have fun.
This tool essentially lets you create GUIs in SWAF using drag-and-drop and then creates all the relevant Magik code (including module structures and XML files) to include that GUI in your product. It also stubs out any of the action methods associated with buttons.
For now you will have to browse the Magik Components source code tree yourself and find the module. You can follow the CVS connection instructions to setup CVS on your machine to check out the latest Magik Components code. If you are not interested in installing CVS you could e-mail Graham at graham [at] ifactorconsulting [dot] com and ask him for the Dialog Designer zip file. Tell him Alfred sent you :)
(The module should eventually make its way into the Download Magik Components section.)
Since our time together at Navigant/Smallworld/GE, I have always been a fan of Graham and his creative innovations with Magik. In my opinion, this Magik Dialog Designer is one of his greatest Magik achievements. Although his Raster Calculator was pretty cool too. But I ramble on... so please go download the Dialog Designer yourself and have fun.
Tuesday, March 20, 2007
How to create Smallworld Competitors
I think I might hammer the open source / public license idea a bit more. Hopefully the more we do this the more likely that we might actually get a response from GE. I have tried to get some responses from GE about their official view of open source or public license as it pertains to Smallworld but my requests have vanished into the e-mail ether.
Here are some ideas that I would like to see GE address:
As always I would love to hear reader comments to anything I post.
Here are some ideas that I would like to see GE address:
- open source any modules that will provide easier access for external systems to query/manipulate data in the VMDS database.
A recent comment to one of my articles suggested doing this for Smallworld's SQL Server product. This is a tool that allows Windows applications to see Smallworld VMDS data as ODBC data sources. I think this functionality would be a great candidate for open source by GE. I think taking that action could reenergize the Smallworld user base and show real commitment by GE to address customer concerns about lack of access to VMDS data.
The pertinent questions I think are: what would it hurt GE to open source SQL Server? What would it benefit GE to open source SQL Server? I cannot think of any real negative impacts to these actions. As the Anonymous commenter suggested, not many customers use the Smallworld SQL Server product anyways.
Opening/Freeing that product could spur innovation in open access to VMDS and may actually provide a positive benefit to customers in a short time frame.
- There is a great article at Ask The Wizard called Creating Competitors. "Ask the Wizard" is a blog run by FeedBurner CEO Dick Costolo.
GE's CEO Jeff Immelt stresses learning as a key to success in today's dynamic world. I would recommend the Creating Competitors article to the Smallworld managers as an article that at least gives them some ideas about how someone has built a successful software organization in today's dynamic world.
Here are some key points from that article: - Provide an open API
- even if you control your core code, providing an open API into your system will spur innovation.
- I think that Smallworld is already doing this with products such as Smallworld Automation and the new Service Oriented Architecture and Internet Application Server. But it would not hurt to review whether these are the types of APIs that will allow others to build on your product and not on your competitors product. I would also not hurt to make these open API mechanisms more widely known to current and potential Smallworld customers.
- Provide a free version of your software
- people will always want a free version of something. If you don't have one, they will get it from your competitor. Who do you think they will look to when they are ready for an upgrade?
- I do not know of a free version for Smallworld, but it might be worth pursuing something like that. I seem to remember a few years ago GE handed out demo CD's of Smallworld that actually installed Smallworld on your computer with an easy install wizard interface and then let you work on the Cambridge demo database.
- Maybe once GE officially moves to Oracle/Java architecture, they could make the VMDS/Magik architecture the free version. VMDS is very portable and could be easily licensed for free use. Compare this to trying to license Oracle for free use.
As always I would love to hear reader comments to anything I post.
Subscribe to:
Posts (Atom)
