Return

 

Personae

  • Jonas Hammarberg, 1964-feb-28
  • Dalhemsvägen 31, 244 91 KÄVLINGE
  • 046/72 86 76, 070/650 57 19
  • hammarberg@computer.org
  • Divorced, no children, five dogs

 

Content

 

Synapsis

I started to work as programmer 1984 at what then was COSAB, which later became EXOMATIC AB. We were programming in BASIC, C, assembly (Zilog, 80x86, 8051). Operating systems were CP/M, CP/M-86, DOS and ABC (a swedish computer, manufactured by Luxor, constructed by DIAB). I was mainly responsible for the PC-part but took also part in the development of the internals of the logs. Some of the projects that did was (among others); EXOdev (an programming ide), communication drivers, some TSR, EXOoperator - a GUI for managing and controlling processes. I was also on the field programming this loggers (IVT Tranås, Tidningshuset Hisingsbacka, Falköpingsbostäder).

1988 I left EXOMATIC and joined ProVeA in Wexijo and become their "fix-it!" beside working as a programmer. They was active in sewer and plumbing, mostly targeting parishes. Their product was mostly written in Turbo Pascal and assembly, targeting DOS. Autograf was a generic database manager for handling huge amount of data (31 loggers, sampling rate 10sec, running 24/7 for five+ years). VeACAD - construction and maintainance of sewers (we were expanding the fields to also include electric lines, gas and pipe-lines).

These program was first to use a CUA and then later be moved to Windows. As there were several loggers and they had a lot in common a object oriented approach seemed natural. Due to some very high hardware demands several drivers for graphic cards and plotters/printers had to be constructed.

During 1996-1997 I also took part in the ISO-9001 certification program.

I have a deep knowledge of several programming languages and knows more than the average about many other languages. As I've been around from IBM-PC I have a very good knowledge of the innards of the personal computer. As I upon several times have had to extend old programs I have learned the hard way not only to write efficient code but also maintainable. I do have to confess that I'm mostly a software guy. I know how to solder but...

I have worked in all levels on software projects, from the little guy up to project lead (I prefer technical lead).

 

The lists below are not in any particular order (unless numbered).

Operating systems

  • ABC-DOS
  • CP/M-86
  • DOS (1.0...)
  • Exomatic
  • Unix (BSD, Linux)
  • Windows 3.x, 95, 98
  • Windows NT 3.51, 4.0
  • Windows 2000
  • Windows XP
  • Windows CE 3.0, 4.x, 5.x
  • Windows Embedded XP

 

Languages

ExpertGood
Assembly (80x86, Zilog, 8051) (monthly)
Avenue (ArcView/2 from ESRI)
BASIC
C (daily)
C++ (daily)
English (daily)
Exol (Exomatic)
HTML
JavaScript
Lisp
Object Pascal (aka Borlands Delphi) (daily)
Pascal (daily)
PHP3(4)
T-SQL/SQL Server (daily)
SQL (MySQL) (weekly)
Swedish (daily)
Visual Basic (daily)
C# (weekly)
Cobol
Fortran
German
Japanese
Java (weekly)
MapBasic (daily)
Object C
Perl
Phyton
XML (daily)

Development environments/targets

ArcView/ArcGIS/ArcEngine
AutoCAD (ads, ase, ade, arx)
ArcEngine 9 (monthly)
DOS
EXO
Linux
Mapinfo/MapX (daily)
Windows 16-bits
Windows 32-bits (daily)
Windows CE 3.0, 4.x, 5.0 (daily)
Windows Embedded XP (daily)
Windows NT 3.5x, 4
Windows XP (daily)
Windows .NET Framework (weekly)
Borland C++Builder (monthly)
Borland Delphi (daily)
Borland JBuilder
Eclipse (weekly)
In-house (daily)
MASM32 (monthly)
MS Visual Studio 6, .NET 2002, .NET 2003, .NET 2005 (daily)

 

Technologies of very high experience

  • Communication (low-level)
  • compression
  • Database-engines(low-level)
  • Debugging
  • Encryption
  • Graphic (low-level)
  • OOP
  • Optimizing
  • Software development
  • System (low-level)
  • UI

 

Technologies of moderate experience

  • C/S
  • Communication (high-level)
  • Enterprise
  • GIS
  • Web

 

Trade magazines

  • C/C++ User's Journal
  • Computer
  • Computer Sweden
  • Delphi Magazine
  • Dr. Dobb's Journal
  • IEEE Software
  • IEEE Spectrum
  • IEEE Transactions on Software Engineering
  • IEEE Wireless Communications
  • Mikrodatorn
  • MSDN Magazine
  • Software Development
  • Visual Studio Magazine
  • Windows Developers Journal

 

Books (updated sporadically, read in the last two years...)

  • .NET and COM -- The Complete Interoperability Guide
  • After the gold rush
  • Agile Software Development
  • Applied C++
  • C# Programmers Cookbook
  • C++ Coding Standards
  • C++ Gotchas
  • C++ Programmer's Guide to the Standard Template Library
  • C++ Programming Style
  • C++ Templates
  • Code Complete 2
  • Code Reading
  • Compilers -- Principles, Techniques and Tools
  • Debugging the Development Process
  • Design Patterns
  • Effective C++ Second Edition
  • Effective Java
  • Effective STL
  • Embedded Programming in C/C++
  • Exceptional C++
  • Exceptional C++ Style
  • Extreme Programming Explained
  • Extreme PRogramming Refactored: The Case Against XP
  • Facts and Fallacies of Softwae Engineering
  • GUI Bloopers -- Don'ts and Do's
  • Imperfect C++
  • Java 1.5 Tiger "A Developer's Notebook"
  • Java Extreme Programming Cookbook
  • Java Performance Tuning
  • Large-Scale C++ Software Design
  • Lean Software Development
  • Modern C++ Desing
  • More Effective C++
  • More Exceptional C++
  • Organizational Patterns of Agile Software Development
  • Peopleware 2nd Ed
  • Practical Algorithms for Programmers
  • Professional Software Development
  • Programming C#
  • Programming Perls, 2nd edition
  • Programming Visual C++ .NET
  • Pthreads Programming
  • Questioning Extreme Programming
  • Rapid Development
  • Refactoring
  • Refactoring Workbook
  • Software Craftsmanship
  • Software Project Survival Guide
  • Solid Code
  • The Art of Computer Programming, Volume 1-3
  • The C++ Programming Language
  • The C++ Standard Library
  • The Career Programmer: Guerilla Tactics for an Imperfect World
  • The Data Compression Book
  • The Mythical Man Month
  • The Practice of Programming
  • The Pragmatic Programmer
  • Web Bloopers
  • Windows System Programming
  • Zen of Code Optimization

In the pipeline...

  • Better, Faster, Lighter Java
  • Find the Bug
  • Pragmatic Project Automation: How to Build, Deploy and Monitor Java Apps
  • Pragmatic Unit Testing in C# with NUnit
  • Pragmatic Unit Testing In Java with JUnit
  • Pragmatic Version Control Using CVS
  • Pragmatic Version Control Using Subversion
  • Refactoring to Patterns
  • Working Effectively with Legacy Code

 

Organizations (not including dog clubs) where I'm member

IEEE
IEEE

IEEE Computer Society

Association of C & C++ Users

 

Employments

    198408-198808 COSAB/EXOMATIC 198808-199802 Scandiaconsult PROVEA AB 199803-200207 ForestMan AB/Cartesia GIS AB 200208-200504 ComOpt AB/Actix 200205- ForestMan AB
    • Lead programmer
    • Developed;
      • EXOcom
        TSR for communcation with our loggers
      • EXODev
        IDE for programming the loggers
      • EXOoperator
        GUI surveillance program
      • EXOSys
        TSR for file management
      • EXOSA
        Database for enormous amounts of data
    • Constructed several application for the loggers
    • Chief programmer
      Technical manager, software development (ISO-9001)
    • Extended;
      • Autograf
        Collecting and mining of measure data, targeting sewer and plumbing
      • Detflow, Newlog, Teknologg
        Collecting and mining of measure data from specific loggers
      • VLNät 4.0 - 5.0
        Calculates the capacity of a sewer net.
      • VeACAD
        Construction and maintainance of sewer and pipes. Running in AutoCAD
    • Developed;
      • VeAGRAF
        Same as Autograf above but with two or three orders of more data. Running on Windows.
      • VeACAD 2
        Rewrote VeaCAD from Lisp to mainly ADS and ARX. Extended to support electric wiring, pipelines etc.
      • VeAVIEW
        Maintainance and presentation of sewer nets. Running under ArcView/2
      • StoVA
        GIS-database for Stockholm Vattens measure stations and their data
      • Several minor applications, both for DOS and Windows (from "memory left" to generic text editors to installation programs to converters from one data format to another to report generators)
      • drivers for printers, plotters and graphic adapters.
      • communications routines for several different type of loggers
    • Other assignments;
      • Customer and internal support (both our products and generic computer support)
      • Guru, aka internal support for our development department.
    • Lead Programmer / Senior Software Developer
    • ForestMan - Maintained and enhanced a system for Forest Resource Management

      FRPlan is quite a complex product;

      • Userinteface is written in Borland Delphi
      • Interface to Pervasive Btrieve in C++
      • Algorithms in C++
      • Map in Modula 2
      • Prediction algorithms in Pascal
      • Communication drivers in assembly
      • Reports in Crystal and Excel
      • Databases used; Pervasive Btrieve, MS Access
      • Map interfaced to ESRI Shape and Mapinfo TAB
    • Cartesia - Maintained and enhanced a system for Land Resource Management (forests, parks, golf ranges, streets)

      Landinfo II was a somewhat complex product, unfortunately written in VB without proper software engineering principles applied.
      (the UI in VB6 was shrinked from 160 KCLOC to 60 KLOC, without loss of functionality)

      • Userinterface in VB6 and TrueDBOleGrid from ComponentOne
      • Algorithms in VB6 and later merged with algorithms from FRPlan
      • ActiveX servers with embedded Crystal Report was used for reporting
      • Mapinfo 6 Pro / Mapinfo RT / MapX was used as map
      • Reports also created through Excel
      • Database systems;
        • Oracle
        • MS SQL Server
        • MS Access
        • IBM DB2
        • MySQL
    • Senior Software Developer / Software Developer (? wonder why)
    • ComOpt - Developed a GIS solution for wireless network when not fixing the impossible ("a speedup of 100 please", "get the communication working", "fix this invisible bugs")

      CellOpt IQ 1 was a somewhat complex spatial presentation and computational platform.

      • Userinterface written in C# on .NET using a embedded Internet Explorer for displaying HTML pages read from a local Tomcat server
      • IQ Algorithms in Java
      • ArcEngine 9 used for mapping
      • MySQL
      • C#, C++, Java, JavaScript, HTML, XML
      • TomCat, DotnetMagic, TrueDBGrid, Java Beans, Services

      Otherwise I was the one called in for fixing anything that was just way to complicated, especially anything that had to do with C++ and/or Windows API

    • Actix - Right now with the old AFP team.
    • Senior Software Developer
    • Back to ForestMan and Forest Resource Management

      Forest Handy Man, ver 1
      A simple registration form on a PDA connected to PCM (PCMapper Pocket PC). One-button-click for transfering data and maps from/to workstation (works both with Landinfo and Forest Resource Plan)

      • .NET CF, PocketPC 2002
      • C#, VB6, Pascal, C++
      • XML

      Forest Handy Man, ver 2
      FHM1 was just to slow loading data and navigating between stands so a rewrite was needed. And we skipped .NET CF as the payload was just a bit to high

      • PocketPC 2003
      • VB6,Pascal, C++
      • XML (a home written XML-parser/producer in C++ and Pascal)

      A lot of small utilities

      • Tab2World that creates WORLD-files (jgw, tfw) by reading TAB-files (from Mapinfo) -- Fast
      • GPSLib -- simple DLL to share GPS between applications (PDA and Workstation versions)
      • rcmd -- simple RAPI commandline interface
      • Autorun -- Hey, MS! What about those machines with two card slots?

      Import/Export av maps in shape, mid/mif and PCM

     

    I'm Jonas

    My main hobbies are dogs, reading, aikido and all too much good food.

    Being almost raised by a German Shepherd, dogs has always been a part of my life. Such a big part that I'm now:

    • authorized dog instructor, highest level -- been holding classes the last ten years.
    • authorized to arrange and carry out official field and obedience trials
    • authorized to arrange and carry out official mental description and mental tests
    • Dog driver for the Home Guard with a rank of 2nd Lt
    I've also been sitting as chairman both for the local club and for test division.

    Reading, yeah -- I try to read at least one book a week. There's a tendency for SF, fantasy, Tom Clancy, crimis and some programming litterateur;)

    I've been doing Aikido since 1978, which is when I "discovered" it. I started with judo in the late sixties and have been dabbing in almost all material arts there is. I did sit in as chairman for the Swedish Budo School in the mid nighties.

     

    References

    Exomatic ABProVeA AB
    Carl-Eric Olin, VD
    0418/610 20
    Bertil Forsberg, VD
    0470/455 15