Eccentrically Loaded Bolt Group: BOLT COEFFICIENT CALCULATOR ENHANCED VISUAL BASIC CODE

I just want to share an enhancement to the BOLT COEFFICIENT CALCULATOR VBA Code made by an engineer friend from Canada.

Martin Boisclair, a project engineer from Canam-Heavy of Canam Group Inc., sent me an email sometime ago requesting for a copy of an updated version of the BOLT COEFFICIENT CALCULATOR VBA code. I gave him the code and then an exchange of emails ensued. Fortunately, our exchange of emails turned out to be more than just formalities -- but an exchange of bright ideas. I was so lucky to find that Martin is himself a good programmer. It was good to know that we are on the same level of thinking; basically on the 'same brainwave frequency'. In effect, he helped me improve the code.

Martin found out that the issue about magic numbers has not been fully resolved. The problem in convergence to equilibrium still exists for some input combinations regardless of the modifications previously made to the code. Magic numbers are not really magical as it is just a term being used to describe an input combination that causes the force system not to converge to equilibrium -- that brings about the problem that we have been trying to solve for quite a long time. Martin's enhancement to the code finally solved the problem as he explains in one of his lengthy emails below:

Redem,

First, I want to thank you again for sharing your work and I hope you find my work useful. I hope your mother is better. I also want to add that in no way I was expecting that you would respond during that time or during weekends. I only count on your kindness.

My first thought when I looked at the results (with the code revised with the Mark Lasby add)... and after running and comparing with all AISC value, was that I found some non-conservative results and this was not acceptable. I didn't like that. Also, at Canam, we're often challenged by Engineer of Record.

Ok... so... it is not acceptable that a C factor is returned if there's no convergence. The first thing I did was to remove the Stp3 code because this was the reason why values did not converge. Stp3 makes that... in some instances... we were returned with non-conservative values. On the other hand, removing Stp3, made that the function did not converge and stopped and CntMax. Roughly, ~95% of the AISC table worked but we were stuck with some rebellious values (~5% of the table). Magic numbers had to be taken care of.

It took about 2 weeks to come up with the revised VBA code. To make it easier for you to understand the revised code, I attached a pdf file with some comments for you. Note that most of this code revision is based on observation/experiment of the numerical behavior of MapFunc and Pp.

I looked at the behavior of some variables with Debug.Print and figured Magic1 (Bouncing Pp and Bouncing MapFunc). To those values, I wanted out of "MapFunc = J / (Rv * Rh * M)" to try playing with MapFunc by other means. I tried linear interpolation between MapFunc, Pp and MapFuncLast, PpLast but it didn't work. Then, I came up with the idea of manually incrementing MapFunc and changing the direction of the increment as required. It worked but it had to be tweaked and I figured that Incr should not go below a certain value. I figured 0.01 as a minimum value of Incr. Also, sometimes Mapfunc went below 0 and I also had to tweak the VBA code to prevent that from happening.

I ran all the AISC tables and found out that Magic1 solves ~4.5% of the rebellious 5%. I was still stucked with ~0.5% of values that didn't converge. So, I looked at the numerical behavior of the last 0.5% rebellious rebels and figured a way to detect them. After some additional tweaking of the Alternate method of iterating MapFunc, all AISC tables ran and converged.

Iterating for the C factor is always a fragile balance act. It's very sensitive and small differences may make that it does not converge. For instance, with this revised code, if I change all "Dim As Double" to "Dim As Single"... some values don't converge!!

I spoke with the guy that programmed our own Canam code (not as a function) and he told me the same. So even today, our own Canam code made in 1996, even though this code solves all AISC table values, it still don't converge on some combination of inputs. Here's an example where our Canam code don’t converge (2,1,3,0,9.5,78.7). On the other hand the revised function works for this example.

Now, I think it's fair to say that the revision of VBA code I came up with, will not work ALL the time... but it's still an improvement.

Thanks for your support. Awaiting your comments!

Best regards,

Martin Boisclair,P.Eng.
Project engineer
Canam-Heavy, a division of Canam Group Inc.
P 450-641-4000; 3555 / M 514-702-4343
martin.boisclair@canamgroupinc.com


BOLT COEFFICIENT CALCULATOR ENHANCED VISUAL BASIC CODE

(Code update by Martin Boisclair, P.Eng.)

''' 
'''Redem Legaspi Jr
'''Aug 8, 2015
'''Current Location: Manila, Philippines
'''Hometown: Pio V. Corpus, Masbate, Philippines

'''''' MODIFICATION BY Martin Boisclair
'''''' CANAM Group - Montreal Canada
'''''' Warning - Use at your own risk
'''''' I added some minor correction to Dim definition per Geoff comment 10/02/2015
'''''' AND Rx and Ry calculation sometimes returned an overflow result. I added a few lines to avoid division by 0 (see below)
'''''' I removed Stp3 condition. With Stp3, the function stepped out prematurely without actual Pp converging
'''''' I modified the routine so that magic numbers DO converge by bypassing MapFunc = J / (Rv * Rh * M) and imposing another method of iterating MapFunc.

Option Explicit

Public Cnt As Double   'MARTIN - delete - WARNING - Declared "public" so that value Cnt passed thru the filling table macro to print this value in the results. Delete when done and remove Dim Cnt lower below

Type BoltInfo
    Dv As Double
    Dh As Double
End Type

'''Effective Bolt Coefficient
Function BoltCoefficientTest(Bolt_Row As Integer, Bolt_Column As Integer, Row_Spacing As Double, Column_Spacing As Double, Eccentricity As Double, Optional Rotation As Double = 0) As Double
    Dim i As Integer, k As Integer, n As Integer
    Dim P As Double, uFy As Double
    Dim xRo As Double, yRo As Double
    Dim M As Double, Ry As Double
    Dim Rx As Double, uFx As Double
    Dim xi As Double, yi As Double
    Dim ri As Double, x1 As Double
    Dim y1 As Double, Rot As Double
    Dim Ru As Integer, iRn As Double
    Dim Rv As Integer, Rh As Integer
    Dim Sh As Double, Sv As Double
    Dim Ec As Double
    Dim Delta As Double, LiMax As Double
    Dim BoltLoc() As BoltInfo
    
    Dim Stp As Boolean
    Dim Stp1 As Boolean
    Dim Stp2 As Boolean
    Dim Magic As Boolean, Magic1 As Boolean, Magic2 As Boolean              'MARTIN
    Magic = False                       'MARTIN
    Magic1 = False                      'MARTIN
    Magic2 = False                      'MARTIN
    Dim Incr As Double, Dir As Integer  'MARTIN
    
    Dim J As Double
    Dim MapFunc As Double, MapFuncLast As Double, MapFuncMin As Double      'MARTIN
    Dim ro As Double
    Dim Py As Double
    Dim Px As Double
    Rv = Bolt_Row
    Rh = Bolt_Column
    Sv = Row_Spacing
    Sh = Column_Spacing
    ReDim BoltLoc(Rv * Rh - 1)
   
    Const CntMax = 4999             'MARTIN Safety exit - Will return "Not Converging Error"
'    Dim Cnt As Double              'MARTIN - This variable was declared "Public". Put this line back when done
    Dim CntTemp As Double           'MARTIN For type 2 Magic numbers
    Dim Pp As Double, PpLast As Double, PpLast2 As Double, PpMin As Double      'MARTIN
    PpMin = 9999999                 'MARTIN
    
    On Error Resume Next
    
    Rot = Application.WorksheetFunction.Radians(Rotation)
    Ec = Abs(Eccentricity)
    Cnt = 0                     'MARTIN - This is required since Cnt is "Public" at this time. Remove later
    CntTemp = 0                 'MARTIN
   
'**************** Calc Core START ****************
    If Ec = 0 Then GoTo ForcedExit
        n = 0
        For i = 0 To Rv - 1
            For k = 0 To Rh - 1
                y1 = (i * Sv) - (Rv - 1) * Sv / 2
                x1 = (k * Sh) - (Rh - 1) * Sh / 2
                With BoltLoc(n)
                   .Dv = y1
                   .Dh = x1
                End With
                n = n + 1
            Next
        Next
        xRo = 0
        yRo = 0
        Stp = False
        Ru = 74
        Do While Stp = False
            Cnt = Cnt + 1
            LiMax = 0
            For i = 0 To Rv * Rh - 1
                xi = BoltLoc(i).Dh + xRo
                yi = BoltLoc(i).Dv + yRo
                LiMax = Application.WorksheetFunction.Max(LiMax, Sqr(xi ^ 2 + yi ^ 2))
                DoEvents
            Next
            Rx = 0:  J = 0
            Ry = 0:  M = 0
            For i = 0 To Rv * Rh - 1
                xi = BoltLoc(i).Dh + xRo
                yi = BoltLoc(i).Dv + yRo
                ri = Sqr(xi ^ 2 + yi ^ 2)
                Delta = 0.34 * ri / LiMax
                iRn = 74 * (1 - Exp(-10 * Delta)) ^ 0.55
                M = M + (iRn / Ru) * ri                     '''Moment
                If ri = 0 Then                  'MARTIN to mitigate the division by zero in Ry and Rx calc when ri=0
                    Ry = Ry                     'MARTIN to mitigate the division by zero in Ry and Rx calc when ri=0
                    Rx = Rx                     'MARTIN to mitigate the division by zero in Ry and Rx calc when ri=0
                Else
                    Ry = Ry + (iRn / Ru) * (xi / ri)        '''Vertical Force
                    Rx = Rx + (iRn / Ru) * (yi / ri)        '''Horizontal Force
                End If
                J = J + ri ^ 2
                DoEvents
            Next
            ro = (Ec + xRo) * Cos(Rot) + yRo * Sin(Rot)
            P = M / ro
            Py = P * Cos(Rot)
            Px = P * Sin(Rot)
            uFy = Py - Ry                                   '''Vertical Unbalanced Force
            uFx = Px - Rx                                   '''Horizontal Unbalanced Force
            
            PpLast2 = PpLast                    'MARTIN
            PpLast = Pp                         'MARTIN
            Pp = (uFy ^ 2 + uFx ^ 2) ^ 0.5
            
'**************** Calc Core END ****************
            
Debug.Print Cnt & " P=" & Round(P, 3) & " " & CntTemp & " " & Magic & " ", Round(Incr * Dir, 6), " With MapFunc=" & Round(MapFunc, 4), " We get Pp=" & Round(Pp, 4)
            
            Stp1 = Abs(uFy) <= 0.001 And Abs(uFx) <= 0.001  'MARTIN reduced from 0.00001 to 0.001 - Verified that All (Fonction value)/(AISC14th table) ratios where between 0.983 and 1.013. Less than that and the results become less conservative.
            Stp2 = (Cnt > CntMax)
            Stp = (Stp1 Or Stp2)                            'MARTIN

'********************************************************************************
'MARTIN:
'Magic numbers are not magic. It's just a term used here that means that
'convergence is just not possible with the use of MapFunc = J / (Rv * Rh * M)
'because of some numerical instabilities. With the modified code below, all AISC
'table were ran and all converge but that doesn't mean that all combination will.
'It is expected that some other values will not converge. In this event the
'function will return a result of 0.01
'I found 2 types of numerical instabilities:
'Magic1, MapFunc and Pp bounce between to identical numbers and don't converge
'Magic2, MapFunc bounces erratically and Pp does not converge
'********************************************************************************

            If Magic = False Then                           'MARTIN
                If Pp > PpLast And Round(Pp, 10) = Round(PpLast2, 10) Then Magic1 = True      'MARTIN - Magic Type 1 detection
                If Cnt > 25 And (Pp > PpMin And PpLast > PpMin And PpLast2 > PpMin) And (MapFunc > MapFuncLast) Then CntTemp = CntTemp + 1  'MARTIN - Magic Type 2 detection
                If CntTemp > 25 Then Magic2 = True          'MARTIN - Magic Type 2 detection
                If Magic1 Or Magic2 Then                    'MARTIN
                    Magic = True                            'MARTIN - To step out of the Mapping Fonction MapFunc = J / (Rv * Rh * M)
                    Incr = MapFuncMin / 10                  'MARTIN
                    Dir = -1                                'MARTIN
                    MapFuncLast = MapFunc                   'MARTIN
                    MapFunc = MapFuncMin + Dir * Incr       'MARTIN
                Else                                        'MARTIN
                    MapFuncLast = MapFunc                   'MARTIN
                    MapFunc = J / (Rv * Rh * M)             '******** PRIMARY Mapping Function *********
                    If Cnt > 0 And PpMin >= Pp Then         'MARTIN
                        MapFuncMin = MapFunc                'MARTIN
                        PpMin = Pp                          'MARTIN
                    End If                                  'MARTIN
                End If                                      'MARTIN
            Else                                            'MARTIN
                If Pp > PpLast Then                         'MARTIN
                    Dir = Dir * -1                          'MARTIN
                    Incr = Application.Max(0.01, Incr / 10) 'MARTIN
                End If                                      'MARTIN
                    If Round(MapFunc, 4) = 0 Then           'MARTIN
                        Incr = Application.Max(0.01, Incr / 10)     'MARTIN
                        Dir = Dir * -1                      'MARTIN
                    End If                                  'MARTIN
                MapFuncLast = MapFunc                       'MARTIN
                MapFunc = MapFuncLast + Incr * Dir          'MARTIN
            End If                                          'MARTIN
            
            xRo = xRo + uFy * MapFunc                        '''I.C. location on x-axis from bolt group C.G.
            yRo = yRo + uFx * MapFunc                        '''I.C. location on y-axis from bolt group C.G.
            
            DoEvents
        Loop
        
        If Stp2 = True Then                 'MARTIN Stp2 is true if VBA does not converge, Cnt = CntMax
            BoltCoefficientTest = 0.01      'MARTIN This is to return 0.01 if VBA does not converge, if Cnt = CntMax
        Else                                'MARTIN
            BoltCoefficientTest = P         'MARTIN
        End If                              'MARTIN
        If Magic = True Then                'MARTIN - To Delete - To report Magic
            If CntTemp > 25 Then            'MARTIN - To Delete - To report Magic2
                Cnt = Round(Cnt, 0) + 0.2   'MARTIN - To Delete - To report Magic2
            Else                            'MARTIN - To Delete - To report Magic
                Cnt = Round(Cnt, 0) + 0.1   'MARTIN - To Delete - To report Magic1
            End If                          'MARTIN - To Delete - To report Magic
        End If                              'MARTIN - To Delete - To report Magic
        
        Exit Function
ForcedExit:
    BoltCoefficientTest = Rv * Rh

End Function

Note:
Please refer to related post, Analysis of Bolts: Modified Visual Basic Code for Calculating Bolt Coefficient Using a Method Developed by Donald Brandt, for the original version of the above VBA Code.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Guardrail System: The True Definition of Post Spacing

Warning:
This blogpost is exclusively written for structural engineers. Non-engineers may find this blogpost unentertaining.



A TYPICAL GUARDRAIL SHOWN WITH TYPICAL LOADINGS



The post spacing, L, is generally defined simply as the horizontal distance between adjacent rail posts regardless of whether the rail is sloping or horizontally oriented.

Unfortunately, engineer's obscure understanding of the 50-lb/ft uniform railing load also obscures the definition of post spacing that turns it into an inclined distance between adjacent posts -- an obscure idea that this blogpost is trying to disprove.
The analyis and design of post for guardrail are quite simple. Being a flexural member, a guardrail post is normally idealized as vertically oriented cantilever beam -- fixed at the bottom end and subjected to a concentrated load at the top free end.

The concentrated load at the top of rail post originates from a single 200-lb concentrated load and a 50-lb/ft uniform load specified for railing system by some building codes. The two loads, however, are not applied concurrently.

When the 200-lb concentrated load, P, is applied at the top of rail post, portion of the load is distributed to the adjacent posts on both sides thru the horizontal rails -- thereby reducing the effective load on the rail post. This reduction is dependent on the stiffness of posts and the stiffness of horizontal rails that comprised the guardrail system. Generally, this type of loading does not directly define the rail post spacing.

When the 50-lb/ft uniform load, w, is applied at the top rail, the amount of load that a rail post sustains is dependent on the spacing between posts -- which translates into load tributary length. The wider the post spacing, the greater the load tributary length will be and, subsequently, the greater the load that a rail post sustains. Hence, this is the type of loading that determines and defines the post spacing. The maximum spacing that rail post may attain is a function of its strength. Although the top rail may also control the spacing of rail post, this discussion only covers the rail post. Let us just assume here that the top rail is not the controlling guardrail member.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

BASIC HANDRAIL CALCULATOR: A JavaScript Application via blogpost

While struggling to learn the basics of JavaScript and, perhaps, eventually master the language, I came up with the idea of evaluating what I have learned so far about the very popular web-based programming language.

The simple application below represents the extent of what I have learned so far about the language. Soon, I may be able to write and implement more complex structural design applications on this blog. A simple handrail calculator is a better jump-start.

RAIL DATA:
Description Value Remark
Handrail Configuration
Pipe Grade
Size of Top Rail
Size of Post
1/3 Allowable Stress Increase (IBC 2006 only)
Intended Post Spacing (ft.)
Intended Post Height (ft.)
Inclination Angle (degrees) for Inclined Rail
Permissible Intended
No. Item dimension dimension Remark
(ft) (ft)
1 Post Spacing OK or NG
2 Rail Span OK or NG
3 Post Height OK or NG

* Reference: AISC 360-05 (AISC Steel Construction Manual, 13th Edition)

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

360 Degree PANORAMA: Alona Beach, Panglao Island Bohol

Long before it became a famous tourist destination in the Philippines, the pristine island beach had been a site of a location shooting of one of FPJ’s (Fernando Poe Jr) films a couple of decades ago. The film, the locals recounted, was starred by no less than the ‘King of Philippine Movies’ himself with his favorite leading lady, the actress Alona Alegre. Later, the beach was named after the actress.

Alona Beach is a short stretch (about one and a half kilometers long) of white sand on Panglao Island, Bohol in the Philippines - a paradise. I was there for the first time last Holy Week, from April 21 to 23, 2011.

When a friend planned and arranged a trip to the place and invited me to join, I took the once in a lifetime occasion as an opportunity to escape from work -- to relax and unwind. So after more than a month of virtually non-stop working beating deadlines, I finally got a chance to escape from a very stressful work of ‘crunching numbers’. Working as a structural designer, I really crunch numbers -- dealing with mathematics in a daily basis -- on breakfast, lunch, and supper. Now, it’s a chance for me to finally put my canon DSLR camera I bought less than a year ago into work. All I’ve wanted is to create a 360 degree viewer-interactive panoramic view of the beach.

I enjoyed my stay in the beach taking pictures of beautiful scenes in the surroundings. Mostly, my attention was focused on finding nice subjects for a photography lesson (I really want to learn photography) until I found something strange in the place; yes, really strange. Together with three other people, I saw a giant centipede about 2 feet in length. This unusual sighting took place in a place at the southern end of the beach. There is a small store in the area where we stood by for an hour savoring hot noodle soup. The time was almost 6 in the evening. We had an interesting conversation with the store owner when suddenly, coming from the grassy side of the store, a black and long fast moving creature moved towards our location. Thinking it was a snake, everybody panicked and struggled to find a safe place to avoid the moving creature. We can only guess, by its sudden appearance, that the creature might be in an attack mode. Once it was exposed to a much-illuminated portion of the ground as it moved toward us, we were sure what it was. We have a clear image of how it looked like; it has several feet. After a sort of short 'deliberation', we unanimously identified the creature as a giant centipede.

The next thing I knew was that I grabbed my camera for a shot. Unfortunately, my reflex was so slow: the centipede was nowhere to be found when I finally had my camera ready. It has already made its way towards a nearby pile of stones and wood. Had I made a successful shot, that could have been a shot of a lifetime. Imagine capturing a giant centipede on camera? Never did I find such a creature in books and in scientific television programs such as in National Geographic channel. A check with the internet, however, I found out that such a giant really exists. If that is the case, then I could be the one to first discover its existence in Alona Beach. There may be a lot of these giants hidden somewhere in the place underneath indisturbed by humans. That should remain undisturbed, anyway.

Shortly before leaving the beautiful Alona Beach after a three-day stay, I was able to take a series of pictures with a vantage point in front of 'Sierra Madre Resort Hotel'. I set up my tripod at this vantage point and took pictures in clockwise direction. The results, below, are good but with a little problem: the camera was not properly aligned with the horizontal plane -- resulting to a sloping horizon. Bloggers who want to show pictures as viewer-interactive in their blogs may follow what I did with the pictures below:

Image Sequence# 01 Image Sequence# 02 Image Sequence# 03

Image Sequence# 04 Image Sequence# 05 Image Sequence# 06

Image Sequence# 07 Image Sequence# 08 Image Sequence# 09

Image Sequence# 10 Image Sequence# 11 Image Sequence# 12

Stitching the series of 12 images arranged in sequence above using the application 'ADG Panorama Tools' by Albatross Design Group, I finally created a simple yet astonishing Panoramic View of the Alona Beach Resort as viewed from my vantage point. The resulting panoramic image, however, has some noticeable image irregularities.

Irregularities that you may find in the resulting panoramic image include the following:
  1. The horizon appears to curve up and down as you pick and drag to navigate the 360 degree view of the panoramic image. This is the result when the camera mounted on a tripod is not properly aligned with the horizontal plane. ‘Image Sequence# 01’ to ‘Image Sequence# 04’ show sloping horizon gradually decreasing until it becomes totally horizontal in ‘Image Sequence# 05’.

  2. There is also a ghostly image of a woman that appears at the left side of the coconut tree. This is a problem when shooting moving subjects. The woman that appears at the right side of ‘Image Sequence# 06’ no longer exists at the left side of ‘Image Sequence# 07’ on the same location of each scene. When the program tries to stitch the two images, it has a hard time resolving pixels at the calculated stitch line.

A Panoramic View at ALONA BEACH, Panglao Island Bohol, Philippines

Pick and Drag to navigate through the Panorama

Note:

If you cannot view this content, please install Quick Time. And if you already have installed Quick Time and you are using Google Chrome and still cannot view this content, please right click on the image area. When a menu pops up, choose and click on 'Run this plugin' from the selection.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Another blog post for Structural Engineers and Designers…

When I wrote and posted the VBA (Visual Basic for Application) Code for the analysis of eccentrically loaded bolt group in my blogpost, “Eccentrically Loaded Bolt Group: Analysis and Design using 'INSTANTANEOUS CENTER of ROTATION METHOD' with VBA for Excel Implementation”, I was aware of the difference between the values returned by the program and that of the table of C coefficients provided by AISC Steel Construction Manual. I never believed, however, that the values returned by the program are wrong. How could it be when the VBA code is based on the work by Crawford & Kulak as presented in AISC Steel Construction Manual 13th Edition, pages 7-6 to 7-8? Despite the differences, though, I still decided to post the VBA Code.

Not long afterwards, engineers who happened to follow my blog shared and expressed the same observations and 'demanded' an explanation. Here are some of their comments:
  1. Blog comment from Josh Gionfriddo, EIT, Structural Engineer, Structures Workshop, Inc. on November 19, 2010:

    Thanks for this great code. One thing though... The values in the AISC manual seem to hover around 98% of the values I get from your code. Any Idea why the differences?
  2. Comment from Gregory Vidgop via AISC SteelTOOLS on October 11, 2010:

    Hello Redem,
    Thank you so much for your effort in developing the very nice and useful program as "SteelPro". Just would like to ask you a simple question: why is the C coefficient for the bolt group analysis slightly different from the book value and C' coefficient is exactly right?

    Please let me know when your program will be finally issued or any revisions are planned in the future.
    Thank you again, Gregory
  3. Blog comment from Steven Vicha, P.E., Jacobs Engineering Group, Inc. on February 9, 2011:

    Great code, but I have a couple of questions. In the code line "Rn = 74 * (1 - Exp(-10 * 0.34)) ^ 0.55" what is the 74? Also the answers are a little off from the tables, any idea why?
    I need to study it some more.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Construction: A World Without OSHA (Occupational Safety and Health Administration)

Not too long ago a friend sent me a bunch of photographs of the Empire State Building taken while the building was being erected. Each picture came with appropriate caption talking about safety at work, more specifically at the construction site. Skimming and scanning the email over and over again convinced me once more how paramount safety is – not only in construction but in all fields of work. Disregarding safety guidelines at work (if there is any) will surely result to a loss of precious lives.

Here is a classic proof: Here in the Philippines where safety is not of primary concern by most contractors, at least 10 construction workers died at the construction site of a residential condominium in Makati City when the cables of the improvised elevator they were using snapped last January 27, 2011, causing the gondola to collapsed mid-air. Accidents like this are common in the Philippines for lack of stringent safety regulations and implementation. Construction workers are also to blame for often violating safety regulations despite the warnings from their supervisors. Later, an investigation found the cause of the accident as overloading. The ill-fated elevator is only good for 3 persons; but during the time of the accident, a total of 11 persons were inside the gondola. The investigation also found some violations such as: lack of permit to operate the elevator and lack of safety devices. In addition, the 11 workers were found not wearing helmets and harnesses as mandated by safety regulations.

When I started working as structural designer (specializing in connection design) in an American company, I learned that their concern for safety extends beyond construction: it applies to both engineering and design. In the design of connection, for example, the outcome of the design is dictated not by strength requirements alone but also by safety requirements. Safety dictates provisions for the minimum requirements in the design of connections and other structures. Provisions for a ‘safety construction’ is already incorporated and long been decided during the engineering and design stage of the structure. All these are provided for and mandated by OSHA, the Occupational Safety and Health Administration.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

A 'SERIOUS' Solution to Political Killings in Masbate Province

A blog post for fellow MasbateƱos.

The killing of Arturo Maristela, the vice mayor of Aroroy, Masbate, has once again established and fortified the province as the political killing capital of the Philippines (forget about Maguindanao). Gunned down by a motorcycle-riding tandem last January 4, 2011 at West Fairview, Quezon City, Vice Mayor Arturo Maristela is a victim of another premeditated and politically motivated assassination. According to supporters he was killed because he left his party-mates and shifted to the rival party. He was a potential candidate for congressional post in his district in the forthcoming 2013 elections.

The vice mayor’s killing, when contrasted with the late Congressman Fausto Seachon’s assassination in 2005, established a similar and familiar pattern. The late vice mayor and the late congressman shared somewhat parallel fate: both were killed approximately two years ahead of elections in their respective time. The motive of the killings, supporters alleged, was to preclude election victory. They were both killed in the places where and when they are most vulnerable – away from their respective turfs. In Masbate, hearing news of killings like this, especially during elections, is nothing but a routine, a way of life, an ordinary event for us MasbateƱos.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati