About
Welcome to Briwood Technologies
Briwood creates software that designs Open Web Steel Joists (OWSJ) for the Canadian market.
Some History
In my late teens I was asked by my father, a consulting structural engineer, to analyze a joist design program. Filled a large E sized sheet of paper with a flow chart that showed the operation of a joist design program developed for the Wang computer in Wang Basic. I got my first taste of joist design.
A few years later, whilst in university (not studying engineering), through my father I was asked to create a joist program for Habit Steel of Brampton. They too had a joist program written for the Wang computer. At this point, in the mid 80’s Wang was losing out to IBM and Microsoft. The program was written in Pascal and had a number of cool features. It could produce estimates, designs and handle quite a few special loads. It ran decently quickly on a 286 computer with a math co-processor. By the time I finished that work the company had changed its name to Cam Steel and the code was in version 3.
Immediately after finishing that contract another steel company called upon me. They checked out Cam Steel’s program but it didn’t meet their requirements for interaction with the materials and web that they required. They decided that replacing their existing Wang program was the way to go.
Now working for Dawten Steel, a full time joist manufacturer, I started on my second joist program. This time we decided to go with the Macintosh and code in C. This was primarily to prevent any legal issues with my previous contractor. They actually turned out to be extremely good decisions. This program provided all the interaction they desired with a whole bunch of special loads and the ability to manipulate the joists materials, panel lengths, offsets through a GUI interface. etc. It would also run on any Mac, including the original Mac with the 9 inch screen.
Dawten closed up shop a few years after the code was finished. The program got acquired by Mirage Steel, whom I still consult to.
Mirage has kept the program up to date, enhancing the program through the major changes in computing and building codes. The first major revision to the code was going from the Motorola processors to the Power PC. This became version 2 of the software. It still could run on the original 9 inch screen. Later Apple moved to OS X and we rebuilt the interface, which now only runs on large monitors; with the move to OS X we were able to move the code to Intel processors pretty easily. The last upgrade also involved moving to the more complex 2006 National Building Code with it’s multiple factorizations.
Mirage’s program is quite interesting in some ways. At its core it is a C code application, designed to run in the 64K memory space of the original Mac on the 68000 series of processors. But in rebuilding the interface for OS X a skin made in Objective-C was placed over it. Hence the core of the program was built using procedural programming while the interface was build mostly following Object Oriented principals. To a new university graduate programmer the whole thing would look like a complicated mess!
When designing and maintaining these programs I never achieved a couple of goals. My management was happy when I achieved panel point and mid panel analysis values of over 90 to 95, efficiency. In the web the were happy with similar numbers. With a bit of work these analysis values could be pushed higher; but, management was happy and unwilling to spend more money on the project. Also, the program written for Dawten was designed around memory limitations that no longer exist. Hence I wanted to try on my own to create a program using modern paradigms where memory restrictions aren’t present.
This program is the result of that work.
I plan to continue enhancing this program and pursue a bunch of ideas I have.
Technology
The core of Briwood’s Joist Program is written in Java. Parts of this will be rewritten in Scala to enhance stability and parallelism. Scala is a Functional Object Orientated language that is almost perfect for handling math, especially math that can be done in parallel, of which there is a lot of in a Joist.
For the web server Scala-Play has been put to use. As the joist program advances the reactive/restful nature of Play will make it easier create the advanced features I envision.
The front end is created in JavaScript with Bootstrap 4, jQuery and Ractive.js. The client side validator is by jQuery Validation.
The code is handled by Mercurial and the code store is provided by Kallithea.
Much of the coding was done on a Macintosh, Lubuntu and LXLE using Netbeans and IntelliJ IDEA Community Edition.
This blog was created with Jekyll and the Minimal Mistakes theme.