Wednesday, December 1, 2010
Smallworld Emacs tutorials
Thursday, November 18, 2010
SEPM Launches a YouTube Channel
If you are considering creating your own channel, please consider tagging the videos with "swgis". On Twitter you can use the #swgis hashtag.
Wednesday, November 17, 2010
Visualization in Smallworld (Part 2)
Wednesday, November 10, 2010
Another use of OpenStreetMap within Smallworld
- iFactor Consulting's (my employer) Web Maps Connector; and
- another company working on OSM to be released soon.
Friday, November 5, 2010
Designing Simplicity into Smallworld
Tuesday, November 2, 2010
Smallworld on the Social Web
Not happy with Magik in Emacs? See the MDT Webinar.
We would like to invite all Magik developers to an online live demo presentation of MDT (Magik Development Tools): the new and modern IDE for Magik.
Session is planned to be held on December, the 2nd, 1 p.m. Washington D.C. time.
MDT live demo presents main MDT features from simple basics to most advanced stuff. Topics included in this demo are as follows:
- creating project, runtime, session;
- importing and exporting (preferences, sessions, products etc.);
- working with code;
- browsing through code;
- managing project dependencies;
- search;
- version control systems;
- debugging
duration: approx. 60 min.
Due to limited number of seats please confirm your interest on mdt@astec.net. If needed, we will hold another session 90 minutes after the first one. Joining details and link will be posted one week prior to the presentation.
Cheers,
MDT Team
Thursday, October 28, 2010
Creating a 3D PDF from Smallworld
Thursday, October 21, 2010
Some cool geospatial events in Denver in the next year
- WhereCamp5280 - November 19-20, 2010
- State of the Map 2011 - September 2011
- FOSS4G - September 12-16, 2011
Friday, October 15, 2010
Decimal Degrees vs DMS
_block
unit_manager.unit(:degree).default_format.use_sub_units? << _false # (or _true)
_endblock
$
Smallworld GeoSpatial Analysis examples
Thursday, September 23, 2010
Using #FME to mash open data into #OSM addresses
In this case, the demo takes open parcel and address information from the Boulder City and Boulder County (Colorado, USA), processes it with FME and writes data into a format that can be uploaded into OpenStreetMap for the world to see.
Wednesday, September 22, 2010
Smallworld Latin America Users Conference #swgis #swuc
Please mark your calendars.
GE Energy will host a Smallworld Latin America Users Conference November 30-December 1 in São Paulo, Brazil.
The venue will be CENESP (Centro Empresarial de São Paulo) on Avenida Maria Coelho Aguiar 215 - Bloco G, 2nd Floor
v Join fellow customers, channels, third party companies related to our industry, and GE staff.
v Listen to industry presentations, case studies, and product announcements.
v Spend time at the Exhibition to learn about the latest software developments and innovations.
v Network and socialize with colleagues from across the Latin America.
v Simultaneous translations to be provided for Spanish and Portuguese.
Please RSVP to Denise Buciotti Coelho by phone +55 11 3067-8223 or email denise.coelho@ge.com.
Tuesday, September 21, 2010
New Smallworld Twitter Hashtag #swgis
Wednesday, September 15, 2010
A low-tech mobile field solution #sworld #osm
http://walking-papers.org provides a way of printing out your maps onto paper. These paper maps have georeferencing marks on them. You take them out into the field, make your redlining changes and then when you come back into the office, you scan them and then upload the scan. The scanned maps are georeferenced onto the background map and made available for a back-office technician to digitize the data and red-lined attributes into the database.
Seems very simple yet effective. I'm not suggesting that Smallworld customers adopt this approach, but when thinking about mobile solutions I think it is good to understand the broad range of options and learn from them.
Smallworld Twitter after the Conference #swuc #sworld
Saturday, September 11, 2010
What are advantages of Smallworld #swuc
Friday, September 10, 2010
Using SQL from Magik against VMDS #swuc
1. You can get a SQL prompt directly at the Magik prompt...
MagikSF> sql(gis_program_manager.cached_dataset(:gis))
$
SQL> SELECT name, address1 FROM hotel ORDER BY address1
$
Name Address 1
Acorn Guest House 154 Chesterton Road
Hamilton Lodge 156 Chesterton Road
De Freville House 166 Chesterton Road
Rosswill 17 Chesterton Road
Cam Guest House 17 Elizabeth Way
Kirkwood House 172 Chesterton Road
All Seasons 219 Chesterton Road
Lyngamore 35 Chesterton Road
Suffolk House 69 Milton Road
Southampton House 7 Elizabeth Way
Ashley Hotel 74 Chesterton Road
Arundel House Chesterton Road
Gonville Hotel Gonville Place
Garden House Granta Place
University Arms Regent Street
15 record(s) selected
SQL> SQL> select count(*) from min_road
$
COUNT(*)
833
1 record(s) selected
SQL> SQL>
NOTE: the sql() procedure is defined in module :sql2. You can load that module if your image doesn't have the sql() procedure loaded.
2. You can also use the sql2_parser object directly in your Magik code.
You can find out more by searching the Smallworld documentation for "SQL Support". To be clear, this is not the same as Smallworld's SQL Server image code. This is strictly related to writing SQL in Magik to query Smallworld tables.
Friday, September 3, 2010
Smallworld and OpenStreetMap at #swuc
Should you attend FME Users Exchange #swuc
Wednesday, September 1, 2010
Sign up for the FME Users Exchange at #swuc
Wednesday, August 25, 2010
Where was that method or exemplar defined?
MagikSF> circle.method(:new|()|).source_file
$
Most of the time, jumping to a method is faster in the Class Browser than using this code snippet.
But what if you want to jump to the file where the actual class exemplar (not the method) is defined? Then you can do this...
MagikSF> circle.method(:exemplar).source_file
$
I know of no way to do this latter action from the Class Browser.
Tuesday, August 24, 2010
#FME Users Exchange at #swuc topics
I will be presenting a section on "Best Practices: Tweaking FME-Magik code to improve your FME experience in Smallworld". It turns out that I have more material to cover than the approximately 30 minutes allotted to me. So in the spirit of conference collaboration, I thought I would put all my proposed topics up for a vote. The topics with the most votes get moved to the top of my presentation list. The ones with the least votes get used as filler at the end :)
Please vote on the topics here http://bit.ly/9nFvkd ( you are also welcome to add your own topics).
See you in Baltimore!
Tuesday, August 17, 2010
How much does an alternative contribute to file size?
_block
_local v << gis_program_manager.cached_dataset(:gis)
v.dump_file_usage(v.file_usage())
_endblock
$
See the public comments for ds_version_view.file_usage() for a description of the data that is returned. Based on that, you can figure out what percentage of total blocks used is attributable to a particular alternative.
This can give you guidance for which alternatives to merge/post/delete, etc.
Wednesday, August 4, 2010
Promote your #SWUC 2010 items here
- will you be attending?
- what demos you will give at your booth
- if you don't have a booth, say that you will be representing your company anyways and would love to meet with customers (tell them which bar to meet you at)
- presentations you will be doing or are interested in
- thoughts on trends/topics at the conference
Monday, August 2, 2010
Smallworld and the Big World #swuc
This year we are introducing a new session on the agenda that may interest you…it is open to all attendees including customers, partners, and GE staff:
Smallworld and the Big World – Saturday September 11th 2:45-4:30pm, with a 15 minute break at 3:30
After a week of concentrating on products and applications within the Smallworld community, we’d like to shift the focus outside: how we relate to the bigger world.
This session is an open forum to discuss things like:
· visibility (making Smallworld and MapFrame more visible in the geospatial arena)
· standards (OGC and others)
· policy (stimulus, other government actions)
· technology trends (smart phones, neo-geo, social networking)
· organizations (sources of information and influence).
Saturday, July 31, 2010
Smallworld and OpenStreetMap #swuc
Lately I have become very interested in the possibilities of integrating data from http://www.openstreetmap.org (aka OSM) with Smallworld. You can find out more about the mission of OSM at http://wiki.openstreetmap.org, but in summary…
“OpenStreetMap creates and provides free geographic data such as street maps to anyone who wants them. The project was started because most maps you think of as free actually have legal or technical restrictions on their use, holding back people from using them in creative, productive, or unexpected ways.” (http://wiki.openstreetmap.org/wiki/Main_Page)
Think of OSM as Wikipedia but on a world-wide geographic database. I am presenting at this year’s Smallworld Americas Users Conference in September a presentation entitled “Let other people maintain your landbase (without having to pay them)”. It will be a discussion of some options available to Smallworld users to get out of the landbase maintenance business. Most of it will be centered around OpenStreetMap and how you can integrate that freely available data as a Smallworld data layer (both raster and vector data). The session will be in the last time slot of the conference on Saturday, so if you are interested in the topic but cannot attend the presentation, please let me know and I will send you the slides.
As an example of OSM data, if you are a utility that has Bakersfield, California, USA in your service area, have a look at this link http://osm.org/go/TY4w8rXaV- This is the OSM data that is available for this area. If you read the attribution on the features in this view, you can see that someone got the data from the City of Bakersfield GIS download site. You don’t get that kind of building detail (even individual trees!) from Bing or Google. Although if you do integrate aerial imagery into Smallworld you could just see the building profiles. But if you are testing the viability of integrating external datasets with your Smallworld environment, you might want to consider OSM. The price is right and the data quality/quantity keeps increasing. The beauty of OSM data is that if you know that some data is missing or incorrect in the map, you can make edits to the database yourself and the changes will be available on the map within an hour or two. That kind of turn-around is not available from most other data vendors. Clearly there are trade-offs between using OSM vs. Bing/Navteq/TeleAtlas but that is what I hope to cover in my presentation.
If anyone has questions about how OSM could be integrated into their Smallworld database, please let me know.
Thursday, July 22, 2010
Smallworld Americas Users Conference #swuc
- Training sessions occur on Wednesday and Thursday (September 8 and 9)
- The opening Cocktail Reception and first Technology Showcase Exhibition is on Thursday night.
- Opening session and workshops start on Friday morning and finish on Saturday afternoon.
- coordinating information technical meetups. (Kind of like an informal unconference)
- provide commentary about workshops. Hopefully if enough other people send tweets, I can find out what is happening in workshops that I am unable to attend
- reach out to new attendees and international guests. The Smallworld Users Conference is a great way to network and get caught up with friends and colleagues from years gone by. Unfortunately, if you are new to the Smallworld community in North America you might find it more difficult to access this great network. Using a well-known channel such as Twitter will allow anyone to post questions/answers related to the conference during the conference.
Friday, July 9, 2010
FME Import Zoom to Smallworld Map
- in fme_tics_client.private_run(), determine if there are any smallworld_product.applications that might be interested in knowing where the FME-imported geometry bounding box is
- if there are any such applications, then create a dynamic variable geometry_set that fme_tics_client.int!received_feature() can add newly-created geometries to
- back in fme_tics_client.private_run(), send a :goto_request databus message to all the relevant applications with the geometry_set populated in fme_tics_client.int!received_feature()
Thursday, July 8, 2010
WMC Webinar Next Week
Thursday, July 1, 2010
FME SmartCleaner makes things easy
- read Lot lines and lot labels as two separate layers from a single DWG file
- where possible, stitch the lot lines together to make a polygon
- where possible, figure out which lot label is inside each of the newly generated polygons and aggregate those two geometries into one RWO in Smallworld
Thursday, June 24, 2010
Very Cool Charts in Smallworld
Check out this post (http://bit.ly/crW52x) about how Graham at iFactor Consulting has written a Magik interface to the Google Charts API. The possibilities are endless for various kinds of dashboard applications directly in Magik. And I think the charts are also clickable (ie you can drill down on data points). But you might want to ask Graham for more details.
Tuesday, June 8, 2010
Configuring FME to Write Multiple Datasets More Efficiently
Weather Radar Layer in Smallworld
Thursday, May 27, 2010
MDT on Smallworld 4.2
Thursday, May 13, 2010
FME and Smallworld Text Join fields
Debugging Smallworld-FME Error Messages
Monday, May 3, 2010
Update Triggers Fired Unnecessarily
record_transaction.new_update(proposed_values).run()
and the proposed_values are all the same as the existing values for those attributes, the triggers and business rules will still be fired. Because some of the business rules called code that was expensive to run, this added unnecessary time to the whole process.Please be aware of this whenever you write code with
record_transaction.new_update()
and make sure that you only update attributes where the value has actually changed. The record_transaction API will not optimize your proposed_values list for you.If you compile the following code into your image and then run any “slow” process, you will be notified of all the times a record gets updated with nothing new, causing the business rules to be fired unnecessarily…
_pragma(classify_level=basic)
_method record_transaction.new_update( record, values, _optional description )
##
## Creates an instance which specifies the update of a record.
##
## RECORD - the record to be updated
##
## VALUES - a property_list keyed on field name.
## The elements of this property_list provide proposed values
## for physical, geometry and simple valued join fields, and
## information for updating multi valued join fields.
##
## DESCRIPTION - String description on transactions to be used
## for undo messages.
##
# BEGIN CHANGE
# DO NOT PERMANENTLY PUT THIS INTO PRODUCTION CODE!!!! THIS IS
# FOR DEBUG PURPOSES ONLY.
_local anything_changed? << _false
_for k,v _over values.fast_keys_and_elements()
_loop
_if record.perform(k) <> v
_then
anything_changed? << _true
_endif
_endloop
_if _not anything_changed?
_then
write("Nothing changed for: ",record)
print(values)
# put a traceback in here to figure out which code is calling
# unnecessary new_update()
#!traceback!()
_endif
# END CHANGE
>> _clone.init( :update, _unset, record, values, description )
_endmethod
$
Tuesday, April 27, 2010
Debugging batch files
Friday, April 16, 2010
PDF as Export Format (not just for plotting anymore)
- Imported some Cambridge demo db data (substations, cables, supply points)
- Imported a Google Static Map based on the bounds of the Smallworld data
- Exported to Geospatial PDF format which is readable with Adobe Reader
Tuesday, April 13, 2010
SIAS client using Silverlight
Saturday, April 3, 2010
Converting Coordinate System From Smallworld to FME
_pragma(classify_level=basic)
_method coordinate_system_mixin.proj4_string
## proj4_string : string
##
## returns a string that represents self in the Proj.4 format.
## This can be used by coordinate system converters to convert
## self into other representations.
# according to the comments in
# coordinate_system_mixin.new_proj(): "PROJ_TYPE is a symbol
# specifying the projection type. The naming convention is
# similar, but not identical, to that used in the USGS Proj4
# library. See below for details."
#
# because the Magik names are not always identical to the Proj4
# names, we provide a lookup table here.
_local projection_name_lookup << hash_table.new_with(:accurate_tmerc,:tmerc,
:accurate_utm,:utm)
_local (proj,params) << _self.proj_type_and_params
_local info << rope.new()
info.add_last(write_string("+proj=",projection_name_lookup[proj].default(proj)))
_for k,v _over params.fast_keys_and_elements()
_loop
info.add_last(write_string("+",k,"=",v))
_endloop
_local int_str << internal_text_output_stream.new()
int_str.write_list_with_separator(info,space_char)
_return int_str.string
_endmethod
$
Thursday, April 1, 2010
How to tell your emacs apart
Wednesday, March 31, 2010
Getting a resource file from a module
_for a_file _over sw_module_manager.module(_self.module_name).resource_files(:data, _true).fast_elements()
_loop
_if a_file.index_of_seq(xml_file_name) _isnt _unset
_then
fn << a_file
_leave
_endif
_endloop
... and can be replaced with ...
fn << smallworld_product.get_data_file(xml_file_name,office_upgrade_runner.module_name)
Not only is the latter easier to read than the former,
FME Odyssey Slides Now Available
While this blog is focussed on Smallworld, I would still like to suggest that even the presentations that do not cover Smallworld would provide benefit to Smallworld users because they describe how problems in various industry segments were solved using FME. The Safe folks liked to say "data format is irrelevant" when it comes to FME. I agree heartily and look forward to discovering ways that FME can provide business benefit to customers that store their data in Smallworld.
Tuesday, March 23, 2010
Solving the Travelling Salesman problem with Smallworld and Cloud Resources
Friday, March 5, 2010
Emacs 23
Wednesday, March 3, 2010
Smallworld EMEAI 2010
My main purpose here this week is to demonstrate the Web Maps Connector (the iFactor Consulting product that lets you view Bing Maps as a dataset in your Smallworld applications). I am fortunate to be hosted by the team from Realworld. You can see my demos at the Realworld booth starting at the reception this evening.
I also have interests in Smallworld/FME integration, visualization techniques, and any cool Magik code my colleague Graham has put together. (If you are a Magik GUI developer and you haven't tried his Dialog Designer you owe it to yourself to see a demo). Please stop by the booth and introduce yourself. I am very excited about being at this conference and look forward to meeting many of you.
Friday, February 12, 2010
When a foot is not a foot
When people talk about | FME calls it | Smallworld calls it | |
International Foot | IFOOT | :feet | |
US Survey Foot | FOOT | :usfeet | |
This is important in two places when setting up your FME mapping files:
- Finding the correct FME coordinate system for the non-Smallworld end of the mapping file
- If a customer tells you that they are giving you data to import into Smallworld and its units is "feet" make sure that you clarify whether it is in International Feet or US Survey Feet.
- Looking at the FME coordinate system browser, I notice that many of the State Plane Coordinate Systems use the US Survey Foot.
- You will need to clarify the same question when a customer asks you to export data from Smallworld. Typically, though, they will ask you for the data in a particular coordinate system and FME will know what units comprise that coordinate system.
- Finding the correct FME coordinate system to match your current Smallworld application coordinate system
- Probably the biggest confusion of feet/usfeet/internationalFeet comes when you are trying to configure an FME coordinate system to match your Smallworld application coordinate system. You need to be absolutely sure that you are using the same "feet" unit in the FME version of the Smallworld application coordinate system.
- Most application coordinate systems use "cm" or "mm" for units so you won't run into this confusion. Even in US installations where units are measured in feet and inches, the application coordinate system and database coordinate systems are often set to metric units. (Remember that what a user sees on the GIS can be set to show Imperial units even if the underlying coordinate systems use metric units).
Wednesday, February 10, 2010
'2010: An FME Odyssey' coming to a North American city soon
Thursday, February 4, 2010
Smallworld Product Release History
Product | Release Date |
Core Spatial Technology (GIS) | |
Smallworld 2.0(0) | July 1993 |
Smallworld 2.0(1) | August 1993 |
Smallworld 2.0(2) | December 1993 |
Smallworld 2.0(3) | January 1994 |
Smallworld 2.0(4) | March 1994 |
Smallworld 2.1(0) | November 1994 |
Smallworld 2.1(1) | March 1995 |
Smallworld 2.1(2) | January 1995 |
Smallworld 2.1(3) | March 1996 |
Smallworld 2.1(3)NT | May 1996 |
Smallworld 2.2(0) | December 1996 |
Smallworld 2.1(3) G | April 1997 |
Smallworld 2.2(1) | September 1997 |
Smallworld 3.0(0) | September 1998 |
Smallworld 3.1(0) | November 1999 |
Smallworld 3.1(0)SP1 | March 2000 |
Smallworld 3.1(0)SP2 | August 2000 |
Core Spatial Technology 3.2 | June 2001 |
Core Spatial Technology 3.2.1 | November 2001 |
Smallworld Core Spatial Technology 3.3 | June 2002 |
Smallworld Core Spatial Technology 4 | December 2003 |
Smallworld Core Spatial Technology 4.1 | December 2006 |
Smallworld Core Spatial Technology 4.1.1 | February 2008 |
In addition to this, a conversation I had with Peter Batty recently brought up the fact that he had worked on a version 1.9.6 back in 1992.
Wednesday, February 3, 2010
Going to 2010 Smallworld EMEAI Users Conference
The kind folks at Realworld Systems have offered me a spot in their booth to demo the iFactor Web Maps Connector product. If you are interested in other iFactor product offerings, I will also be able to demonstrate or discuss them.
Aside from those product-demo goals, if you would like to talk about Smallworld/FME, SmallworldCamp, Visualization, or just introduce yourself, please come find me at the Realworld booth.
And if I have time, I think it would be fun to do some informal code demoing and sharing. Kind of like a mini BarCamp at Smallworld. Please send me a note if you are interested in this kind of informal sharing and we can coordinate a meeting time.
Over the years I have made many contacts in the Smallworld realm in the EMEAI region but have never met them in person. I'm hoping that on this trip I will be able to meet many of you and also make new acquaintances.
See you in March!