<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
	<channel>
<title>Engineering for the real world</title><link>http://homepage.mac.com/splash6/Splash6/index.html</link><description>Engineering for the Real World</description><dc:language>en</dc:language><dc:creator>Ian Turner</dc:creator><dc:rights>Copyright 2009 Ian Turner</dc:rights><dc:date>2009-05-03T10:20:32+01:00</dc:date><admin:generatorAgent rdf:resource="http://www.realmacsoftware.com/" />
<admin:errorReportsTo rdf:resource="mailto:Ian Turner" /><sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<lastBuildDate>Sun, 07 Jun 2009 23:33:43 +0100</lastBuildDate><item><title>My carbon neutral future</title><dc:creator>Ian Turner</dc:creator><category>Carbon Neutral</category><dc:date>2009-04-16T07:51:49+01:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/MyCarbonNeutralFuture.html#unique-entry-id-29</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/MyCarbonNeutralFuture.html#unique-entry-id-29</guid><content:encoded><![CDATA[I had a sudden realisation today about the poor environmental credentials of this website.  I've seen a few reports recently that have honestly shocked me about the carbon emissions from websites and emails.  I guess because it is so cheap, I don't realise the cost on the environment.  Today I read an article saying that each item of junk email produces an average of 0.3g of carbon.  I don't know how acurate that number is, but I find it truly amazing that something with such a small piece of information can produce enough carbon to actually see.

I've decided to try and make this website and all of it's surrounding activities carbon neutral.  I suspect this is not going to be an easy thing to achieve, because the information and tools just are not available to make it a simple fill in a form and make a few payments exercise.  Somehow I need to work out, for each activity, be it website views, emails, application releases or just support activities, how much it will cost to do the release.  My other problem is that I want to be carbon neutral at the source rather than by mitigating carbon emissions.  I feel that this is a little bit more holisitic than simply working out emmisions and then paying to have trees planted that offset the emmisions.

This is not going to be an easy problem to deal with and it certainly is not going to be something that I can complete overnight.  I do however want it to be as open as possible so I will openly publish the work I do on this.  In the mean time, if anyone has any ideas or useful tools for how to assess carbon emissions from websites or emails please drop me a line and let me know.]]></content:encoded></item><item><title>The future of Risk Engine</title><dc:creator>Ian Turner</dc:creator><category>Risk Engine</category><dc:date>2009-03-23T15:41:40+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/TheFutureOfRiskEngine.html#unique-entry-id-27</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/TheFutureOfRiskEngine.html#unique-entry-id-27</guid><content:encoded><![CDATA[First of all, thankyou to everyone for the support during the development of Risk Engine to date.  It really is much appreciated and is a huge help to further the development.

Unfortunately support from donations, or other similar sources have been somewhat limited.  Developing and supporting an application does cost money and to date donations have not covered these costs.  I really want Risk Engine to pay for itself as there is much more work that I want to do to create a leading example of an analysis application.

To try and deal with this problem I have a few possible solutions.  One is to open source the application and see if the community can push it forward.  Although I'm an advocate and user of open source software, I'm not sure that open source is right for Risk Engine.  It is a specialist piece of software and so the number of users who might want to work on the development will be somewhat limited compared with other projects such as Adium.

After some thought, I've decided the best route for me to take is to release Risk Engine as a paid for application.  The next release of Risk Engine will therefore be a 1.0 release and the software will become a paid for application.  This will hopefully allow me to drive towards some of my aspirations for Risk Engine.  It will also enable me to put support in place that a professional level application deserves.

This doesn't help me achieve all my aspirations for Risk Engine though.  I wanted to create an application that was simple enough to use and accessible enough that everyone can play around and learn from Monte Carlo analysis.  These are techniques that need to be used rather than taught, and they need to be used in a creative and experimental manner to get the best from them.  I am therefore going to have a tiered pricing system of:  &bull;  Normal license of $40  &bull;  Academic license of $10

The academic license will therefore be accessible to anyone who is undertaking academic work.  If you are a student or a teacher in school, college or university and would like an academic license then just get in touch and I will arrange for one.  I'm also opening up the academic license to anyone who is engaged in work that will become open source as I really do believe that you don't have to be in an academic institution to be either a student or a researcher.  Anyone who is undertaking some sort of learning programme, even if it is a programme you made yourself, should therefore be eligible or an academic license.  Similarly, if you are engaged in research work, as long as your research will become public domain at some point in time, you will be eligible for an academic license so please get in touch for a license.

I want everyone who buys a license to be happy with the purchase, so to enable this I'm going to introduce a limited functionality demo.  This means that everyone who is interested in Risk Engine can have a look and trial the software prior to purchase to make sure they will be happy with the purchase.  I'm limiting functionality, rather than have a time limited trial, because I believe that if you create a model in Risk Engine, that is your model and you should always be able to access your data.  A time limited trial doesn't do that because if you create your model and want to access it after the time limit is up, you'll have to buy a full license.  For this application, I feel that the fairest way of creating a trial application is to limit the functionality rather than having a time limited trial.  If you do need a fully functional, time limited trial then please get in touch and I will make suitable arrangements.

Finally, if I am going to charge for Risk Engine, I want to be able to give something back to the community.  For this reason 25% of every purchase will go towards The Dogs Trust and SARAID, two UK based charities.  In the interests of full disclosure, I am an operational team member in SARAID but I have no affiliations to The Dogs Trust.

The last thing I need to do is to give you some idea for where the future of Risk Engine lies.  There are many minor changes and improvements I have planned for Risk Engine to make it a more useable and attractive application to use.  In addition to these, I would also like to add some major functionality improvements, including:  &bull;

The ability to solve linear and non-linear optimisation problems for Monte Carlo and other models.

...Regression of the final outputs from the model to give best fit probability distributions.

...The ability to take 'snapshots' of spreadsheet models and run and store multiple analyses.

...Adding spreadsheet templates to the model.

...Adding evidence based probability distributions and tools to check input models against actual out-turn results.

...Localised versions of Risk Engine (thanks to Olivier De Smet who has already provided me with some useful feedback on this particular issue).  My aim is to make Risk Engine a leader in usable and practical analysis tools.  All of these improvements are planned for the 1.0 release and so will all be accessible to license holders as soon as they are implemented in Risk Engine.  Of course, if you have anything you would like me to look at for the future please get in touch.

Thankyou to everyone who has provided feedback to date.  I hope that the future versions of Risk Engine live up to your expectations.]]></content:encoded></item><item><title>A quick apology</title><dc:creator>Ian Turner</dc:creator><category>Risk Engine</category><dc:date>2009-03-23T15:09:28+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/AQuickApology.html#unique-entry-id-26</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/AQuickApology.html#unique-entry-id-26</guid><content:encoded><![CDATA[Just a quick update to apologise to anyone having trouble updating a previous version of Risk Engine to the latest version released today.  I've hit a few problems with a third party piece of software designed to make the release process run a little easier and unfortunately this has hit the automatic update system for one of the releases.  The link to update directly from the website should still work however so this will hopefully not cause too many problems for users.

Thankyou for the support.]]></content:encoded></item><item><title>The solution space and design creativity</title><dc:creator>Ian Turner</dc:creator><category>Engineering design</category><dc:date>2009-03-13T07:29:49+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/TheSolutionSpaceAndDesignCreativity.html#unique-entry-id-25</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/TheSolutionSpaceAndDesignCreativity.html#unique-entry-id-25</guid><content:encoded><![CDATA[I thought it might be time to update a post I wrote a few years ago on my interpretation of the solution space and the importance of boundaries in creativity.

There is a fairly commonly held belief that boundaries are bad for creativity; the more boundaries you have the less creative your outcome.  Creative endeavours are often described in terms of 'pushing the boundaries', opening up the space in which to create something and thus being creative simply by exploring something that has never been explored before.

So what does this mean for engineers and other real world problem solvers.  If we push the boundaries of what has been achieved before, does this mean we are being creative?  And what does it actually mean to push the boundaries in terms of creativity.  It can not be the limits of technology, otherwise the only source of creativity in real world problem solving would be through scientists rather than engineers and designers.

For me, the solution space is a really important concept in helping to understand these issues.  I tend to think of the solution space as a multi-dimensional space where each variable of the clients requirements, such as cost, time, accessibility or reliability, is situated in one of the dimensions.

Consider a client who requests the services of an engineer to design a bridge from an island to the mainland.  He gives the engineer nothing more in the brief than the request for a bridge....  In this situation, she must do her best to satisfy the client, but with such a limited brief she shouldn't do anything particularly creative.  The design will be fairly standard, maybe a simple concrete two lane highway bridge.

...The lack of definition meant that there was little chance that the bridge would actually give the client what he actually wanted.  It also means there is little chance for the engineer to be truly creative, trying to satisfy the clients requirements.

So let us say the client is a little more definitive about the brief, and define the cost.  The client knows his budget for the bridge and says the bridge should cost between &pound;3 million and &pound;4 million.  Now things are a little more defined and the engineer has some sort of idea how best to satisfy the clients requirements.  In this instance we can also start to represent the clients requirements in terms of a solution space:

There is still not much room for creativity, and the chance of satisfying the clients requirements is still fairly low.  Does he want a footbridge, a two line highway bridge or even a twelve lane highway bridge?

For a better design, that satisfies his desires better, the client adds a little more detail to the request.  The brief is now that the costs should be around &pound;3.5 million and there should be four carriageways.  With two dimensions to the clients request, the engineer now has a much more interesting solution space to work with....  With such a defined brief from the client there is also a single point on the graph that represents exactly what the client requested:  With this brief the engineer can now work on a solution which we can also represent graphically in the solution space:

Off all the possible solutions, there might only be a handful of solutions that actually satisfies the clients requirements.  We are now in a situation where the engineer is producing designs that may genuinely have never been created before.  This allows the engineer to express some of their creativity in developing a solution and yet in this instance, the boundaries have not been pushed, the boundaries are actually allowing the engineer to express some of her creativity.

For me, this is the essence of creativity as an engineer.  By defining your boundaries better, it actually forces the engineer to come up with a more creative solution to satisfy the clients requirements.

...What if the client requested a bridge costing around &pound;2.5 million?

...This is the sort of situation where true creativity is required, the engineer has a few options for dealing with this situation.  One option is to push the boundaries of the possible solutions, expanding the possible range until it encompasses the point which satisfies the client.  Another option might be to consider the clients original request for the cost of the bridge.  He requested a bridge of around &pound;2.5 million, so there is obviously some scope to vary the cost, although the further the final cost is from the original, the less likely that the clients requirements are satisfied.  It is therefore very important to not only understand each of the variables, or dimensions, in the clients brief, but also how client satisfaction varies within that dimension.  Does the client want it maximised, minimise, is there an absolute floor or ceiling to the request, and if there is some variation allowed, how much?

Ideally we would want to represent all of these dimensions graphically as it is much easier to understand the problem....  One document should however be used by every design team to lay out the solution space.  In this instance I'm going to call that document the design specification, although it may be know by many other titles.  The design specification lays out in detail how the clients desires will be satisfied.  It gives both the dimensions which need to be considered to provide a design that satisfies the client, as well as the range within each dimension that can be considered.  Given the real world nature of the problems that the specification defines, it is important that it gives the designer some wriggle room when dealing with a problem so some of the dimensions in the specification must be flexible, and yet some will be fixed with no room for changes; few clients let designers compromise on health and safety in delivering a solution.  The design specification therefore defines the solution space that the designer must search in order to provide a solution to the client, and by laying out the boundaries clearly, this document allows the engineer to be truly creative in the search for a solution.

By way of closing, I'd like to go back to the client who wanted a bridge between the mainland and an island.  The client now comes with a modified brief that they want a minimum cost bridge, with a very low capacity and which is not classified as a critical link so it does not necessarily need to be open every day.  In this instance, a cheap, single lane, bridge design might somewhat satisfy the client.  But would a simple vehicle ferry give more satisfaction being much cheaper and yet still satisfying the other requirements?  A ferry would be a truly creative solution to a request for a bridge from a client and yet this creativity is only possible by truly understanding the clients requirements and having a good design specification at the outset.]]></content:encoded></item><item><title>Quick bit of reformatting in Excel</title><dc:creator>Ian Turner</dc:creator><category>Excel</category><dc:date>2009-02-17T20:56:38+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/QuickBitOfReformattingInExcel.html#unique-entry-id-22</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/QuickBitOfReformattingInExcel.html#unique-entry-id-22</guid><content:encoded><![CDATA[I spent most of today working with an Excel spreadsheet.  I don't know whether I have been spending too much time with Numbers, but looking at all those white rectangles with grey lines was just too much for me today.  I wanted something that looked a little better than the usual spreadsheet.

It's amazing what a difference just turning off the gridlines can make; the spreadsheets just look so much more elegant and professional.  The only problem is that standard formatting for excel has the text essentially equally spaced between the cells and within the cells.  My spreadsheet had word wrapping switched on so some of the cells had one row of text, some had two, and some had more.  Without the gridlines it was really difficult to tell where one cell ended and another began.  I needed a little padding between the text in different cells to complete my little makeover.

It's not perfect but I wrote a little excel macro to help me with this.  It looks down the first column in the spreadsheet and checks if each cell contains a value.  If it does, it adds a little padding to the cell, and then carries on to the next until it reaches a cell which doesn't contain anything.  If it is useful to you, here is my script, hopefully someone might find it useful.  Sub AddRowPadding() Dim i As Integer i = 1 Do While i < 32000 If IsEmpty(Cells(i, 3).Value) Then Exit Do End If startingHeight = Rows(i).RowHeight Rows(i).RowHeight = startingHeight + 10 i = i + 1 Loop End Sub]]></content:encoded></item><item><title>Adding Monte-Carlo analysis to iWork Numbers</title><dc:creator>Ian Turner</dc:creator><category>iWork</category><dc:date>2009-02-03T06:03:36+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/AddingMonteCarloAnalysisToiWorkNumbers.html#unique-entry-id-21</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/AddingMonteCarloAnalysisToiWorkNumbers.html#unique-entry-id-21</guid><content:encoded><![CDATA[Monte-Carlo analysis is not a new method of analysis.  Scientists, engineers and project managers have been using it for years in many different fields to solve problems with multiple varying inputs.  As a tool it has proved to be incredibly adaptable and reliable as a problem solving method.  It is simple to understand, works with models of virtually any type and gives a good understanding of a problem.  So the question is why is it not used more?

The first problem seems to be that it is not well understood.  I think that few engineers actually have a chance to learn about methods if they don't have access to the tools to actually use them.  Monte-Carlo analysis can only really be used with a computer model capable of running a Monte-Carlo simulation.  It can be done manually, and for complex models sometimes it is necessary to just perform a few runs and manually compare the difference (ref.  1).  This is not much different to performing a finite element analysis manually though, it can be done but there is little benefit for all the work that goes in. There are far better ways to solve the problem if manual methods are going to be adopted.

Tools are available to the engineer to undertake Monte-Carlo style risk analysis.  The problem is that they are not accessible and they come with an enterprise price.  Combining the the cost per seat of the software, the training cost and the learning cost, the price of getting up and running with these tools prevents engineers just having a go.  It becomes a serious proposition to look at using Monte-Carlo analysis on a project and yet so often some fairly small decision could be well informed using the method.  The tools should encourage the playful, explorative search for a solution as well as being capable of performing accurately, tightly defined, high quality analysis necessary when solving a significant problem.

Monte-Carlo analysis is also prone to a credibility problem.  The outputs an always statistical.  If you ask your programmer when the project will be complete it is much easier to deal with the answer '4 weeks time' rather than 'there is a 67% chance that the project will be complete in 4 weeks time'.  Whilst the statistical answer is more informative, it can also hide many problems.  If the project over-runs beyond the 4 week deadline it is easy to say there was a problem with the deterministic answer of '4 weeks time'.  You can't readily say whether the statistical answer is right or not though.

For a project manager this would be a serious issue, because without some form of validation of the method being used, you can not have any confidence about using the methodology.  Validation of a method only really comes with its regular use; repeated use gives both direct evidence of its performance as well as the personal, empirical understanding of how effective a method is.

To help with these problems I have started to develop a tool that will put Monte-Carlo analysis, as well as other similar tools, into the hands of any engineer.  When Apple updated iWork earlier this year, Numbers finally got an Applescript dictionary.  This means that automated tools can be created which hook into Numbers.  The aim is to create a complete suit of automated tools that allows engineers, scientists and managers to create a model using the freeform approach of Numbers and then analyses the model using simple, intuitive but powerful tools to explore the behaviour of the model.

The project is in an early Beta phase and I would like as many people to try it as possible.  People use these tools in many different ways and I need to understand how people will use it to understand how to develop it further, without impacting on the creative use of the tool.

If you are interested then please have a look at the Risk Engine page, download the application and try it out in your models.

Thankyou for your support.  References

1.  One is not Enough, 2008, Rocscience Inc., [http://www.rocscience.com/library/rocnews/winter2009/One-Is-Not-Enough.pdf]]]></content:encoded></item><item><title>Review of Numbers &#x27;09 for engineers</title><dc:creator>Ian Turner</dc:creator><category>iWork</category><dc:date>2009-01-10T12:03:22+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/ReviewOfiWorkNumbers09ForEngineers.html#unique-entry-id-20</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/ReviewOfiWorkNumbers09ForEngineers.html#unique-entry-id-20</guid><content:encoded><![CDATA[When Apple first released iWork '08 I immediately reviewed Numbers.  I love the way that Excel and other spreadsheets have changed the way that engineering calculations are carried out, but over the last 10 years very little has changed to the humble spreadsheet.  Apple finally decided to change the spreadsheet application with Numbers, but when I reviewed it the first time, there were a few problems.  I couldn't use iWork for all my spreadsheets because of problems with the plotting and a lack of easy scripting support.  So for iWork '09 have my wishes been answered?

The first thing I tried as importing a two existing spreadsheets.  The import is now, near perfect.  The problems last time included custom cell formats disappearing, problems with the graphs and missing spreadsheet functions.  Now the only errors that pop up when importing a spreadsheet are only relatively minor issues such as defining plot areas.  On top of all this, Numbers now seems to run at a similar speed to Excel when running the larger spreadsheets used in engineering.

One of my biggest requests was better graphing.  Good plotting of x against y data was not possible in the previous version of iWork.  The latest version allows x and y data as well as labels to be referenced to spreadsheet cells.  This totally changes the form that graphs can take and allows the user to create most of the key types of graph.  Log scales can now also be use on both axes.

Both data series for graphs and formulas use a new format with coloured labels with attached drop down toolbars.  These drop down menus don't add much functionality but they really do aid the reading of an equation more than the simple colouring currently used in Excel.  ultimately I'd like to see an improvement to the way brackets are used in the formulae to make them even more readable, but this is another good incremental improvement.

The other new feature included is the formula list.  The formula list is a complete list of all the formulas in a spreadsheet including a cell reference, a result and details of the formula.  The list also includes a comprehensive find and replace feature.  I'm not sure that I will use this feature much, but occasionally it might be useful to run through a spreadsheet to check for odd formulas in a series.  It might also prove to be a useful to to review how spreadsheets work, allowing a viewer to quickly look through the types of formulae being used.  What might be more useful in the future is this view to take on another form where the spreadsheet is set out in a graphical or flow chart way so that a review can easily see the flow of information through the chart.  I know this type of view would have helped me in the past where previously I only had Excels formula auditing feature to help.

There are many new functions that have been added to the latest version of Numbers.  Whilst many of the new functions are fairly specific and of limited use to the general user, the new statistical distributions will be useful to many engineers.  Statistics seems to becoming more and more important to engineers as time goes by so the inclusion of a comprehensive range of distributions , including Beta distributions, Binomial distributions, Gamma distributions, Lognormal distributions, and T distributions, is a really useful feature.

The other key feature request I originally made was the inclusion of an Applescript dictionary.  This would allow other features to be included in the spreadsheet, such as Monte-Carlo analysis.  Brilliantly Apple have also done this.  All iWork applications now have an Applescript dictionary which makes then scriptable.  Analyses such as a Monte-Carlo analysis can now be undertaken using Numbers.  Numbers really is now the only spreadsheet an engineer will typically need.

I can heartily recommend a trial of the new version of Numbers in iWork '09 if you use spreadsheets regularly in your working life.]]></content:encoded></item><item><title>Reflections on the Quarterback problem</title><dc:creator>Ian Turner</dc:creator><category>Reflections</category><dc:date>2008-12-22T07:17:40+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/ReflectionsOnTheQuaterbackProblem.html#unique-entry-id-19</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/ReflectionsOnTheQuaterbackProblem.html#unique-entry-id-19</guid><content:encoded><![CDATA[I never seem to read a piece by Malcom Gladwell without seeing reflections from all over my life.  His latest article in the New Yorker is a fascinating piece about finding the right talent to do a job.  One of the main thrusts of the piece is that, provided you can find the talent, the right people in the right positions can make a huge difference.  This is probably best summed up in this section:

'Eric Hanushek, an economist at Stanford, estimates that the students of a very bad teacher will learn, on average, half a year&rsquo;s worth of material in one school year.  The students in the class of a very good teacher will learn a year and a half&rsquo;s worth of material.  That difference amounts to a year&rsquo;s worth of learning in a single year.  Teacher effects dwarf school effects: your child is actually better off in a &ldquo;bad&rdquo; school with an excellent teacher than in an excellent school with a bad teacher.'

I suspect this is no different in many other human endevours.  Recently, my Mum had to go into hospital for a hip operation.  I spent a few days in the hospital with her and we often chatted about doctors.  She had been talking with some doctors whilst she was in hospital and one of the problems that some of the doctors have is that they are actually held back by other doctors.  Some of the most talented surgeons can complete a number of operations a day by taking a factory approach and quickly moving from one to the next.  Other surgeons claim this is not an appropriate way for work to be carried out and think that each surgeon should only carry out one operation per day.  I have no doubt that the most talented surgeons could safely carry out multiple operations in day.  But equaly, this is not an approach that will suit every surgeon, whatever the level of skill, and creating a more open and flexible system will inevitably lead to some surgeons causing more problems.

So we are left with a dilema.  One approach is to create systems that enables the most talented and skilled individuals to do their work to the best of their ability.  But how do we identify the most talented and how many problems would this cause because the system does not suit those who are less talented or not in a position that suits them?  The other way is to create a tightly controlled system based on those individuals who are not the high fliers but which ensures that everyone can perform safely.

Arguabley a shining light of a company that enables talent is Apple.  Although always an issue that provokes debate, few can argue that Apple is one of the leaders in software design, hardware design, in profitability, in marketing and in many other areas.  One of the keys to their success must be having highly talented individuals do the right kind of work, Steve Jobs is a consumate figurehead for the organisation, Johnathon Ives is one of the most talented industrial designers in this generation and Tim Cook is widely praised as a COO.  Apple enables the people with talent to deliver.  Very infrequently does Johnathon Ive ever do anything but industrial design, and yet in other companies he might spend so much time as a figurehead so much that ultimately he might have little impact on the final design.

Enabling talent then clearly works, but where does that leave the rest of us?  I'm not saying that only the elite few humans are talented, because it just is not true.  Every person I have met has a unique combination of skils, experience and personaltiy that means that they have much to give the world.  But so often people are not in positions where their talents can best serve.  Sometimes it is timing, sometimes our personal situation intervenes, and sometimes we just need kick back and relax taking a back seat for a while.  As human beings we don't want to be immediately replaced by someone else at the slightest indication that there is someone who might perform our job a little better.  We need a little security in our lives.  A world dominated by skill and talent, or at least percieved skill and talent, would probably be more like city banking with high rewards but equally high risks.  I personally would prefer a world not so 'red in tooth a claw' as this.

It might not be the right thing to have a world dominated by talent alone, but surely the world could do with more people having their talents enabled.  All to easily we can take a walk down the street and see poor design, poor management and poor delivery, things that have clearly come out of a system based on the lowest common denominator.  The world could be so much better if those with talent, in the right position at the right time were not held back as they can be today.  Today our risk and reward system is dominated by industry and hard work.  Everyone can choose to work harder, and so by having a reward system related to our efforts, everyone gets an equal shot at the reward.  But this does not reward ultimate delivery.  Gladwell's teaching example clearly shows that some people can deliver a product 3 times better than others in the same job, and I suspect this is a cautious estimate.

We need to change our view of human industry and start rewarding people more for working in the right way rather than doing more work.  We need to give people more and more opportunities to find and use their talents so that the fear from more flexible working is outweighed by the potential for people to find the right work for them.  We need to find better ways of meaasuring talent so that the most talented can be picked out.  The world has much to learn from the most talented individuals.  Why are they so good at what they do and what can we do to enable them and the others that follow to do their work better.

Whilst the 20th centruy might have been the centruy of industry, I hope that the next century is the one where human being, as a social entity really does start to work smarter rather than harder.]]></content:encoded></item><item><title>My tricks with TextExpander</title><dc:creator>Ian Turner</dc:creator><category>Applications</category><dc:date>2008-12-12T06:41:10+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/MyTricksWithTextExpander.html#unique-entry-id-18</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/MyTricksWithTextExpander.html#unique-entry-id-18</guid><content:encoded><![CDATA[Having installed it a while back, I've just started to find out the joys of using TextExpander.  I'm not really finding it that useful for inserting boiler plate text which is I guess it's primary use.  It really does help me out with a few other things though.

I love all the services that are available in OS X, but using the special character menu is a real pain because it is so slow.  Just using TextExpander I don't need to go through the special character menu, I just set the application up so that when I type gpi text expander inserts a &pi;.

A while back, I blogged about creating Applescripts which insert references into a document.  Not having to look up references made my life a lot easier, but with text expander it is now even easier.  I can now just type refcarranzatorres and the reference is automatically inserted:

Hoek-Brown failure criterion - 2002 edition, 2002, E.Hoek; C.  Carranza Torres; B.  Corkum, Proc. NARMS-TAC Conference, Toronto, 2002, 1, 267-273, www.rocscience.com/hoek/references/H2002.pdf.

This saves a fair bit of time, but more than that it suddenly takes almost no effort to insert a reference into a document.  Not only does this improve the quality of reports but any digital work can become well referenced.  Even Cocoa or Applescript code written in Xcode can now include equation references as comments with almost no effort.

To round off TextExpander as one of my killer applications, I use MathMagic to create a beautifully formatted equation and then paste it straight into TextExpander.  All I have to do is type eqBartonQ and a get a nicely formatted version of the famous Q equation by Barton:

If you haven't tried it, give TextExpander a go, it really is one of those Apps that starts paying for itself as soon as you open it and just get better and better the more you use it.  <div class="js-kit-comments" permalink="http://www.engineeringfortherealworld.com/files/MyTricksWithTextExpander.html" path="/http://www.engineeringfortherealworld.com/files/MyTricksWithTextExpander.htm"></div>]]></content:encoded></item><item><title>Example Cocoa code</title><dc:creator>Ian Turner</dc:creator><category>Cocoa</category><dc:date>2008-12-12T05:07:41+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/ExampleCocoaCode.html#unique-entry-id-16</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/ExampleCocoaCode.html#unique-entry-id-16</guid><content:encoded><![CDATA[It always seems odd how it is difficult to find examples of the application you are working on. For me, just starting to learn Cocoa, tutorials and example applications have been the key to my learning.  But for some reason you can never find the right tutorial to sort out the problem you are working on. With this post I'm releasing some of my code into the wild for those new to Cocoa development.  I'm not going to claim that the quality of the code is great and it doesn't really do anything very special, but it is out there and might help a few people solve some of the more basic problems that I had to initially deal with.  For the record, the application is designed to do some basic analysis for a tunnel, estimating the Fenner-Pacher curve.  Some of the key Cocoa concepts in the application are:  &bull;  Use of Core Data  &bull;  Use of triggerChangeNotificationsForDependentKey for automatically updating data  &bull;  Creating a graph which automatically updates using tableViewSelectionDidChange  &bull;

Performing mathematical and engineering calculations The method for creating the graph is based on the delegate method which is used in Step into XCode Mac OSX Development (for OS 10.4) and XCode 3 unleashed (for OS 10.5) by Fritz Anderson.  A tutorial by Tim Isted gives another method, using bindings, to create automatically updating graphs.

You can download my source code here.]]></content:encoded></item><item><title>What are Dip and Dip direction</title><dc:creator>Ian Turner</dc:creator><category>Geomechanics</category><dc:date>2008-11-30T19:53:12+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/WhatAreDipAndDipDirection.html#unique-entry-id-13</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/WhatAreDipAndDipDirection.html#unique-entry-id-13</guid><content:encoded><![CDATA[One of the keys to understand rock mechanics is to understand the joint patterns within the rock.  Critically important in understand the joint pattern is to understand the orientation of the joints.  To do this we use Dip, Dip Direction and the related measurements.

<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_ajte4Hemqyg/RvViurSwkqI/AAAAAAAAABw/VbAVfpb3wzI/s1600-h/P5270048.png"><img style="float:left; margin:0 12px 12px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_ajte4Hemqyg/RvViurSwkqI/AAAAAAAAABw/VbAVfpb3wzI/s200/P5270048.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5113101505983976098" /></a>The first concept to understand is the dip of a joint.  We shall initially consider a single planar joint within the rock such as a shear or fault.  To define the direction of the joint in three dimensional space we typically use two values.  By doing this we can use the conventional 360 degrees that is commonly used to define angles and directions.  The two angles typically used are called Dip and Dip Direction.  <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_ajte4Hemqyg/Rvg0rbSwkrI/AAAAAAAAAB4/R-o9G8Hmycg/s1600-h/Dip+line.png"><img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_ajte4Hemqyg/Rvg0rbSwkrI/AAAAAAAAAB4/R-o9G8Hmycg/s200/Dip+line.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5113895297544655538" /></a>

To consider Dip and Dip Direction we need to consider a line on the plane of the joint.  Imagine a grid of lines on this plane, with one set of lines running across the plane at the same height, effectively forming contours not rising or falling across the plane.  The second set of lines on this grid will run perpendicular to the contours.  This second set of lines would be the steepest line that could be formed on the plane.  This line is the key line from which we measure Dip and Dip Direction.

The Dip Direction can be determined by viewing the plane and the line we have drawn on plan.  The orientation of the line can be specified using the 360 degrees of a compass bearing.  At this point it is worth noting that this value is not absolute, but that the baseline needs to be specified.  Normally the baseline orientation is North but this could be true north, grid north or magnetic north.  <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_ajte4Hemqyg/Rvg6XbSwktI/AAAAAAAAACI/wsJYnx7-EQU/s1600-h/Engineering+hints+blog+images.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_ajte4Hemqyg/Rvg6XbSwktI/AAAAAAAAACI/wsJYnx7-EQU/s200/Engineering+hints+blog+images.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5113901551017038546" /></a>

Having specified the direction of the line, we need to specify how steep the line is.  We do this using the Dip of the joint.  To obtain the dip we have to cut the plane of the joint along the Dip Direction of the joint.  Having cut the joint plane the Dip of the joint can be measured by measuring the angle from the horizontal of the plan of the joint.  This means that a steeper dip gives a steeper joint up to a maximum of 90 degrees.  Typically dip is only measured as a positive angle between 0 and 90 degrees.

<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_ajte4Hemqyg/Rvi1f7SwkuI/AAAAAAAAACQ/xGGs65KHkl4/s1600-h/Strike.png"><img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_ajte4Hemqyg/Rvi1f7SwkuI/AAAAAAAAACQ/xGGs65KHkl4/s200/Strike.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5114036936976143074" /></a>Dip and Dip Direction are the typical values that are quoted to give the joint orientation.  There are however a few other dimensions that are used to specify the orientation of features.  Strike is a value used instead of Dip Direction.  The Strike is a line at 90 degrees to the Dip Direction.  Referring back to our original diagram the Strike follows the contour lines running parallel to the slope.  Strike and Dip Direction are therefore interrelated.  It is important to note that Strike may not be defined using the conventional 360 degree compass, but may be defined as being an angle East or West of North such as N72E, 72 degrees East of North.  Strike can be represented on a plan by a long line following the direction of the strike and a short bar at 90 degrees showing the direction of the dip.

Another method of defining Dip and Dip Direction is Trend and Plunge.  Trend and plunge tend to be used with linear features such as tunnels, shafts or roads.  Trend tends to follow the centreline of these features such as the axis of a tunnel and is defined in the same way as Dip Direction.  The plunge is then defined in the same way as the dip so the steeper the plunge the steeper the slope of the tunnel.

It is important to understand Dip and Dip Direction when designing rock structures.  When using these measurements of the orientation of joints you must clarify how it has been defined by the geologist to ensure that you are applying the measurements in the same manner as they have been defined.]]></content:encoded></item><item><title>Monte Carlo analysis in Excel</title><dc:creator>Ian Turner</dc:creator><category>Analysis</category><dc:date>2008-11-30T19:48:47+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/MonteCarloAnalysisInExcel.html#unique-entry-id-12</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/MonteCarloAnalysisInExcel.html#unique-entry-id-12</guid><content:encoded><![CDATA[Monte-Carlo analysis is one of those tools that I have always found useful to keep in my pocket as an engineer.  I like to find an elegant solution to problems limiting the number of variables and amount of analysis that has to be done.  Sometimes a brute force approach can not however be avoided and Monte Carlo analysis is a very effective way of solving a complex risk or probability problem.

Because I don't use it much specialist tools such as @risk are not really an option for me.  The basic version of Excel is however more than capable of performing Monte-Carlo analysis with relative simplicity.

The first stage is to build your model with the usual input and output parameters using the same format as you would normally do.  Once the is done create a new worksheet for the input parameters that you want to use in he Monte-Carlo analysis.  To generate the random numbers to put into the Monte-Carlo analysis you will need to use a Rand() function for each input parameter you want to consider.  You can then use Excel's built in distribution functions to generate your output value or you can create your own - I will consider some of the different distribution functions in later posts.

If you have done this correctly, every time you amend your spreadsheet now the values should change on this worksheet.  Now link the input values on your model worksheet to the values on the inputs worksheet.  The entire model should now change each time values are adjusted on the spreadsheet.  At this point it is worth taking time to check how your model is performing.  Just pressing the delete key on an empty cell should run one Monte-Carlo step.  It is worth doing this a few times because Monte-Carlo analyses often test the limit of a spreadsheet with combinations of very high and very low values.

It is possible to manually run a Monte-Carlo analysis manually with the spreadsheet in this form.  The power of this solution is however when it is automated, and to do that we can make use of a Macro.

First create a new worksheet to hold the outputs from the model.  Now create a new Macro.  The typical code that should be used for the Macro is something like:  <span style="font-style:italic;">Sub MonteCarlo() With Application .Calculation = xlManual End With For Counter = 1 To 500 Sheets("Model").Select Calculate Output1 = Range("L3").Value Output2 = Range("H17").Value Set curCell = Worksheets("Results").Cells(Counter, 2) curCell.Value = Counter Set curCell = Worksheets("Results").Cells(Counter, 3) curCell.Value = Output1 Set curCell = Worksheets("Results").Cells(Counter, 4) curCell.Value = Output2 Next Counter With Application .Calculation = xlAutomatic End With End Sub</span>

This Macro runs the Monte-Carlo analysis 500 times.  The results from the analysis are taken from cells L3 and H17 from the worksheet Model.  They are then put into columns 3 and 4 of the worksheet Results.

Post processing of the output data should be done in a separate workbook.  If this is not done then re-running the Monte-Carlo analysis will take much longer as the post processing will be done for each step of the Monte-Carlo analysis.]]></content:encoded></item><item><title>OmniOutliner as a calculation sheet</title><dc:creator>Ian Turner</dc:creator><category>OmniOutliner</category><dc:date>2008-11-29T08:41:14+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/OmnioutlinerAsACalculationSheet.html#unique-entry-id-11</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/OmnioutlinerAsACalculationSheet.html#unique-entry-id-11</guid><content:encoded><![CDATA[Traveling for business has many advantages, but it also causes many problems.  One of my biggest problems is making sure that my work is portable so I can carry on working on the same task wherever I am in the world.  I find this a particular problem for calculations.  Normally I would only ever do my calculations by hand including computer input and output where necessary, but when traveling I would have to carry too much paper with me to do this.

Typically if calculations are prepared on a computer, they are normally prepared in Excel or Word.  I find neither of these options ideal.  With Word files I simply have to spend too much time formatting and adjusting the layout of the document so that it works.  Excel might initially seem to be ideal for preparing calculations, the problem is it takes so much effort to work with excel that it takes a lot of concentration away from the production of calculations.  The format of the calculations is also very difficult to work with being so reliant on brackets.

My solution has been to use Omnioutliner Pro.  Like all applications from the Omni Group, this is an application whose power is hidden beneath a deceptively simple to use exterior.  For those who haven't used it, Omnioutliner is an outlining application, working much like word in outline view.  It does however have a few neat tricks such as the addition of columns, formatting that can vary depending on the column or the outline level and the ability to quickly and easily move items entries or groups of entries around.

It also has another bonus feature - Linkback.  For those who have never used it it can be a real bonus working with documents that are likely to change, something which calculations seem to do more often than would be ideal.  As an example, you can create a diagram in Omnigraffle, paste it into Omnioutliner and then when you next double click the diagram in Omnioutliner it opens again in Omnigraffle ready to be ammended.  The neat trick is that you don't even have to save a copy of the original Omnigraffle file, the file is stored with the Omnioutliner file.  This works with a wide variety of applications, and not just applications from the Omnigroup, as long as the applications support Linkback.

Download it here.  <div class="js-kit-comments" permalink="http://www.engineeringfortherealworld.com/files/OmnioutlinerAsACalculationSheet.html" path="/http://www.engineeringfortherealworld.com/files/OmnioutlinerAsACalculationSheet.htm"></div>]]></content:encoded></item><item><title>Shear banding in geomechanics</title><dc:creator>Ian Turner</dc:creator><category>Geomechanics</category><dc:date>2008-11-29T08:25:36+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/ShearBandingInGeomechanics.html#unique-entry-id-10</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/ShearBandingInGeomechanics.html#unique-entry-id-10</guid><content:encoded><![CDATA[Shear bands a bands of high shear strains within a material.  They are common features of certain geotechnical problems such as slope stability failures.  Simple numerical models, including FLAC analyses can simulate the development of shear bands when modeled correctly, and the development of shear bands within the model can have a significant influence on the results of the model.

In order to consider the formation of shear bands within numerical models, we will consider a simple model of a shear box test on a Mohr-Coulomb material.

When the two sides of the box slide apart, the shearing occurs across a very thin band as the soil grains slide across each other.  In this case the shear band that is formed is very thin.  We can simulate the shear box test relatively simply in most general numerical analysis packages, such as FLAC.  In order to do this we need to discretise the problem, i.e. divide the problem into small elements.  Typically there is a preference for a coarse discretisation as it gives the most efficient and simplest models.

In this model the shear box has been divided into a 4 x 4 grid giving 16 elements/zones.  The base of the box has been fixed with roller boundary conditions on the three sides, as has the top of the box.  A constant force is applied to the side of the box to model the shear force applied during the test.

We need to consider how this model will behave when the force applied to cause the shearing starts.  The top section of the shear box has started to elastically deform under the shearing force.

The block of soil in the top section of the ground will behave roughly as a cantilever beam giving a linear variation in the stress shear stress through the model.  Based on this stress distribution, we can obtain a basic stress distribution for elements within the model.  This stress profile assumes that the elements behave as constant stress elements, a common assumption among general numerical analysis programs.

The stresses in elements 1 and 2 is therefore roughly an average of the theoretical stress and can only be correct at a few locations.  The stress profile calculated by the model is therefore only an approximation of the actual theoretical stress profile.  In order to consider the implications of this averaging we can increase the shearing in the theoretical model further.

The load, and hence the stress, in the section has been increased to the point where theoretical plastic shear failure will occur as indicated by the blue line.  It can also be seen that the average stress in element 2 is not high enough to cause plastic failure, therefore the model will not exhibit plasticity at this load.  Assuming a linear stress profile and the stress in the elements is the average theoretical stress across the element, the stress in element 2 will only be 75% of the limiting shear stress.  In order to cause shear failure in element 2 to occur, the load on the model needs to be further increased.

In this case the theoretical stress has been increased to 33% above the shear stress limit so that the stress in element 2 will achieve the shear stress limit.  We can now plot the distorted form of the model under additional load with the elements undergoing plastic deformation highlighted in blue.

In this case the numerical model is overestimating the strength of the ground by 33%.  This is obviously not a conservative solution and indicates the problems that shear bands and other similar plasticity based problems can cause when carrying out numerical analyses.

A possible solution to this problem is to re-mesh the problem.

Now consider the case where the grid density has been increased by a factor of 2 in each direction.  This results in a revised stress profile.

In this case the overstress required to cause plasticity is reduced to 14% and so the revised grid has significantly improved the performance of the model.  We can plot how the accuracy of a model varies with increasing mesh density.Based on the mesh regenerating approach used above a density of 11 in each direction zones is required to get results with less than 5% overstress.  Increasing the density of the zones does however reduce the speed of the solution of a typical model by an amount between the increase in density of the zones, or the square of the increase in the density of the zones.  In this case then the models solution speed would decrease by between 7 times and 57 times.  These could be large reductions in solution speeds for large models.

This is a very simplified way of looking at shear banding but the principals and logic will help understand some of the more complex problems.  Lack of shear banding within certain types of geomechanical models is a critical reason why many models fail to produce credible results.  Critically models without the ability to model shear banding will often overestimate soil strength.  A modeller therefore needs to understand how shear banding forms and how to model it to create an effective and credible model.  <div class="js-kit-comments" permalink="http://www.engineeringfortherealworld.com/files/ShearBandingInGeomechanics.html" path="/http://www.engineeringfortherealworld.com/files/ShearBandingInGeomechanics.htm"></div>]]></content:encoded></item><item><title>Omnigraffle template for lattice girders</title><dc:creator>Ian Turner</dc:creator><category>Omnigraffle</category><dc:date>2008-11-29T08:14:29+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/OmnigraffleTemplateForLaticeGirders.html#unique-entry-id-9</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/OmnigraffleTemplateForLaticeGirders.html#unique-entry-id-9</guid><content:encoded><![CDATA[This is a simple omnigraffle template which includes some standard details and the dimensions of lattice girders for tunnelling.

Download it here.]]></content:encoded></item><item><title>Version 5 of Sketchup for a Mac</title><dc:creator>Ian Turner</dc:creator><category>Sketchup</category><dc:date>2008-11-28T07:19:10+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/Version5OfSketchupForMac.html#unique-entry-id-8</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/Version5OfSketchupForMac.html#unique-entry-id-8</guid><content:encoded><![CDATA[Google Sketchup is a stunning application, a true example of the power of simplicity.  It may not have the power of some other 3D design applications, but the simplicity does allow for the rapid development of design models.

One problem for Mac users is that version 6 only works with versions of OSX after 10.4.1.  Unfortunately Google have not posted Sketchup version 5 for download.  If you are using Mac OS 10.3.9 or earlier here is a version of Sketchup 5 that you can download.  Download it here]]></content:encoded></item><item><title>Hidden engineering gems</title><dc:creator>Ian Turner</dc:creator><category>History</category><dc:date>2008-11-28T07:05:55+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/HiddenEngineeringGems.html#unique-entry-id-7</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/HiddenEngineeringGems.html#unique-entry-id-7</guid><content:encoded><![CDATA[All to often we loose gems from history and they are never found.  Whatever the rights and wrongs of Google Books there are some true hidden gems that are now accessible to the whole world.

The clips below are taken from a book published in 1844 about the construction of two railway tunnels south of London, England.  The entire book is available to browse online and I can heartily recommend doing so.  It is a true treasure trove of our engineering heritage and it is amazing how much has and has not changed in the 160 years since this book was published.  <a href="http://books.google.co.uk/books?id=u7jZgUEXxwMC&dq=tunnel&pg=PA88&ci=209,284,725,553&source=bookclip"><img border="0" alt="No Text" src="http://books.google.co.uk/books?id=u7jZgUEXxwMC&pg=PA88&img=1&zoom=3&hl=en&sig=4VGUKrQesw5cyYy2EFWj8QLu5xA&ci=209,284,725,553&edge=1" border="0" alt="Text not available"/></a>  <a href="http://books.google.co.uk/books?id=u7jZgUEXxwMC&dq=tunnel&pg=PA139&ci=145,414,576,489&source=bookclip"><img src="http://books.google.co.uk/books?id=u7jZgUEXxwMC&pg=PA139&img=1&zoom=3&hl=en&sig=V0YHSCpy73f4jnXmb__f_5-ZL0k&ci=145,414,576,489&edge=1" border="0" alt="Text not available"/></a>  <a href="http://books.google.co.uk/books?id=u7jZgUEXxwMC&dq=tunnel&pg=PT45&ci=293,406,697,793&source=bookclip"><img src="http://books.google.co.uk/books?id=u7jZgUEXxwMC&pg=PT45&img=1&zoom=3&hl=en&sig=ACfU3U0IzjVUagZxNMgjS_bz1JQYDGxkMg&ci=293%2C406%2C697%2C793&edge=1" border="0" alt="Text not available"/></a><br/><a href="http://books.google.co.uk/books?id=u7jZgUEXxwMC&dq=tunnel&pg=PT45&ci=293,406,697,793&source=bookclip">Practical Tunnelling Explaining in Detail, the Setting Out of the Works; Shaft-sinking, and Heading Driving; Ranging the Lines, and Levelling Under Ground; Sub-excavating, Timbering; and the Construction of the Brickwork of Tunnels: with the Amount of Labour Required For, and the Cost of the Various Portions of the Work: as Exemplified by the Particulars of Blechingley and Saltwood Tunnels By Frederick Walter Simms</a>]]></content:encoded></item><item><title>Applescript in iWork</title><dc:creator>Ian Turner</dc:creator><category>Applescript</category><dc:date>2008-11-28T06:57:55+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/ApplescriptInIwork.html#unique-entry-id-6</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/ApplescriptInIwork.html#unique-entry-id-6</guid><content:encoded><![CDATA[Applescript has the potential to significantly improve many work flows.  Like all programming or scripting languages it does have a learning curve, but because of the simple structures and plain language the curve is one of the easiest languages to learn.  The real power of the language is its ability to interface between different programmes allowing data to be transferred from one application to another.  It is also a quick way of creating similar tools to Macros that are used in Microsoft Office.

It comes as a surprise that one of Apples flagship applications, iWork, does not fully support Applescript.  Neither Pages nor Numbers have applescript dictionaries associated with them, although Keynote does have a dictionary.  This means that Pages and Numbers do not have publicly documented specific Applescript abilities.  The good news is that this doesn't mean that Applescript can't be used with this applications.

Using the 'application' System Events you can easily control keystrokes, and occasionally buttons within most applications.  To demonstrate how this is done, the following simple script is used to insert a standard reference into the active Pages document.  Applescript Studio can then be used to create an interface which allows different references to be inserted all at the click of a button.

set the_text to "Hoek-Brown failure criterion - 2002 edition, 2002, E.Hoek; C.  Carranza Torres; B.  Corkum, Proc. NARMS-TAC Conference, Toronto, 2002, 1, 267-273, www.rocscience.com/hoek/references/H2002.pdf" set the clipboard to the_text tell application "System Events" tell application "Pages" to activate tell process "Pages" to keystroke "v" using command down end tell

I find this script a real timesaver because I don't have to look up references every time I need to insert them into a document.  All it takes is a simple click of a button.]]></content:encoded></item><item><title>Omnigraffle template for geological sequences</title><dc:creator>Ian Turner</dc:creator><category>Omnigraffle</category><dc:date>2008-11-28T06:38:41+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/OmnigraffleTemplateForGeologicalSequences.html#unique-entry-id-5</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/OmnigraffleTemplateForGeologicalSequences.html#unique-entry-id-5</guid><content:encoded><![CDATA[Omnigraffle is one of the best tools I've found for creating engineering diagrams.  Whilst it is powerful, it is also quick and easy to use and you can copy and paste PDF's straight from Omnigraffle into either Keynote or Pages.  This keeps the quality and opacity of the diagrams that have been created.

One of my favourite features of Omnigraffle is the ability to create your own templates.  One of the most useful diagrams I work with is a standard borehole logging diagram.  The patterns used in this diagram are from British Standard 5930 which means diagrams will be professional quality as well as quick to produce.

Download it here.  <div class="js-kit-comments" permalink="http://www.engineeringfortherealworld.com/files/OmnigraffleTemplateForGeologicalSequences.html" path="/http://www.engineeringfortherealworld.com/files/OmnigraffleTemplateForGeologicalSequences.htm"></div>]]></content:encoded></item><item><title>Joint sets in UDEC</title><dc:creator>Ian Turner</dc:creator><category>Rock mechanics</category><dc:date>2008-11-28T06:26:29+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/JointSetsInUDEC.html#unique-entry-id-4</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/JointSetsInUDEC.html#unique-entry-id-4</guid><content:encoded><![CDATA[UDEC is an incredibly powerful tool for analysing complex problems in rock mechanics.  Not only is it capable of modelling the behaviour of deformable blocks, but it has tools for generating semi-random block patterns so it can model complex systems of jointing within the rock mass.

The power of this tool can however be a problem.  There is always a temptation to just input measured or estimated quantities into UDEC with a suitably high variability, run the model a number of times and then take the worst case result.  This is particularly the case with joint sets in a rock mass.  A common convention is to simply obtain the joint sets from DIPS, adjust the joint orientations to give the apparent dips of the joints on the face of the model and then input all of the joint sets into the model and run it.  This is however an overly simplistic method of generating the joint sets.

The key to understanding how to work with joint sets in UDEC is to understand a key limitation of UDEC; it can only model failure in two dimensions, normal to the face that is modelled in UDEC.  To consider this point I want to consider a few different cases with different combinations of joint sets and joint orientations.

Let us first consider the simple case with a single joint set potentially causing a failure.  The dip of the joint set is parallel to the dip of the slope as shown in the diagram.  In this case the key joint set can be readily modelled in UDEC.

The next stage is to consider what happens when the dip of the joint set is rotated by 45 degrees to the dip of the slope.  Assuming that we only have one joint set, then slip of the joints would not occur, as another release pane would be needed.

So let us consider the case with two joint sets oriented with dip directions of +45 degrees and -45 degrees and both having the same dip.  In this case it is relatively simple to show that the direction of slide of a wedge that is released will be perpendicular to the slope face.  Again, UDEC will model this situation appropriately because the direction of failure is perpendicular to the plane of the face being modelled in UDEC.

It becomes more complex when the dip and dip direction of the joint sets relative to the slope face are different.  When this occurs, the dip direction may not be parallel to the dip of the slope.  The implication of the this is that a simple UDEC model normal to the to the dip direction of the slope may not give us an appropriate solution.

So how do we model this more complex problem?  The fundamental requirement is to understand what is happening to the slope prior to the analysis using UDEC.  If you can understand the dominant failure mechanisms then you can adjust the UDEC models to deal with them.  I will give to examples of how UDEC models can be adjusted to potentially give a more representative solution for the problem.  None of these methods are guaranteed to give the correct solution, they all have problems.  The reality of the assumption of a two dimensional problem in UDEC is that in most rock mechanics problems, it can only give an indication of the behaviour of the system.

The first simplified approach to the solution is to simply model the problem along the dip direction of a dominant joint set. By using this approach the angle of dip of the dominant joint set is correct.  The factor of safety against sliding along these dominant joint sets will be correct.  However all other joint sets will not be correct, and the installed support in the UDEC model will have to be corrected because it will typically not be oriented along the dip direction of the dominant joint set. Whilst this approach is effective in modelling failure along a single dominant joint set, it does not consider failure along two joint sets.

The second approach therefore is to assess the dip direction and dip of the sliding direction of a block.  This can be done using analysis programmes such as UNWEDGE and SWEDGE.  The joint sets in UDEC can therefore be adjusted to model the dip and dip direction of the sliding surface rather than the joints themselves.  This may not directly solve the problem because the dip direction of the sliding plane may still not be parallel to the dip direction of the slope.  There will also be geometric problems in the model as UDEC models prismatic blocks and we are actually trying to model pyramid shaped blocks.  Support, applied forces and other adjustments to the models may therefore be necessary.

A final note of warning.  If you model two joint sets in UDEC dipping in the same direction, it is possible that the joint sets could cross.  This could lead to composite failure through both joint sets which may be appropriate but not in all cases.  Two joints sets in a UDEC model may be dipping in the same direction, however the actual dip direction of these joint sets may be very different.  If this is the cases, then composite failure through these two joint sets would not be appropriate.  The UDEC model could therefore significantly over predict the size of a failure zone by forming composite failures.

The generation of joint sets for modelling slopes in UDEC can clearly be a complex problem.  I hope these techniques and observations might help improve the use of UDEC.  So far I have only dealt with slopes; tunnels and caverns are even more complex so I hope to deal with these in a future post.]]></content:encoded></item><item><title>Review of iWork Numbers for engineers</title><dc:creator>Ian Turner</dc:creator><category>iWork</category><dc:date>2008-11-27T08:31:47+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/ReviewOfIworkNumbersForEngineers.html#unique-entry-id-3</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/ReviewOfIworkNumbersForEngineers.html#unique-entry-id-3</guid><content:encoded><![CDATA[I love Apple applications, they just seem to suit the way I work.  Last months release of iWork '08 was a big step forward in the suite of applications, especially with the release of Numbers.  I see this application as the start of one of the biggest changes that spreadsheet applications have ever had with the use of multiple tables on a single sheet.  The effect of this will not be fully realised for a few generations of the software, but I wanted to find out how the current version of Numbers works for engineers.

To do this I recreated a standard spreadsheet I use on a regular basis for designing an unreinforced concrete section under axial load and bending.  This spreadsheet allows me to check all of the basic features that I need in a spreadsheet for day to day use.  It doesn't include some of the more advanced features that I use, but I know that Numbers is missing scripting and advanced plotting.  As version 1.0, I don't expect these features and I know that Numbers will not be able to do everything I need it to do, but hopefully this will improve with time and newer versions.

First of all, here is the spreadsheet I created.

So how did I get on?

Well first of all the separate tables.  It took me a few minutes to get used to them, but as soon as I did they are much more intuitive to use.  You can concentrate totally on the table you are working on, forgetting about all the others.  Once you've done the work setting up the spreadsheets you can then concentrate on how to lay them out.  It really helps focus on what you are trying to achieve.

What is ultimately more significant is how the table can be modularised.  To test this out I added another table to the spreadsheet which took into account reinforcement in the section.  It was really easy, just add the table.  What this means is that a library of standard tables can be created and just bolted together.  Not only is this quick and easy, but if a standard library of verified tables is created, all you have to worry about when checking a new spreadsheet is how the table have been bolted together and not whether the contents of each and every cell is correct.  The whole table concept, from the way they work to the potential ability to create a library of standard tables will make far more transparent and accurate spreadsheets.

The biggest problem I have with numbers is in the graph on my spreadsheet.  The amount of control that you have over the type and format of the spreadsheet is an order of magnitude worse than it is with Excel.  You can create beautiful looking graphs and charts, but the options are limited.  I wanted to create a straight line between the points on my spreadsheet, but could only create a series of points.  It is something that I will definitely be looking to Apple to improve in future versions.

My last gripe is a well known one, but there is a lack of support for either plugins or scripting.  This is not surprising as most 1.0 applications released by Apple have limited support and things do improve with time.  I hope that Applescript can be added for version 2.0, because the possibility of Applescript interfacing between Omnigraffle and Numbers is well worth waiting for.  Once this happens the possibilities for quickly automatically generating standard plots and diagrams will mean there is a huge step forward in my productivity.

I think numbers is a big step forward for iWork, and a big step forward for spreadsheets.  I will use it, but I have no doubt excel will be my tool of choice, but I look forward to seeing what can be achieved with version 2.0.]]></content:encoded></item><item><title>Learning Cocoa</title><dc:creator>Ian Turner</dc:creator><category>Cocoa</category><dc:date>2008-11-24T19:59:19+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/LearningCocoa.html#unique-entry-id-14</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/LearningCocoa.html#unique-entry-id-14</guid><content:encoded><![CDATA[Over the last few months I've been trying to learn programming using Cocoa, one of the native programming languages for a Mac.  It's been a tough learning curve.  Until trying to learn Cocoa I've only really developed rather basic scripts with languages such as Visual Basic, Applescript and FISH.  I've never had any formal training in programming so it's all been a bit of a struggle.  I decide not to learn through books, even though there are few very highly rated books out there.  The internet is such a great resource it seemed obvious that there must be some great tutorials out there.

Well I have to say that it is true, there really are some great resources out there.  The trouble is there is no structure to it.  There is no way to find out which tutorial you should start with and where you should go from there.  It took me a bit of stumbling around in the dark to try and find my way around it all.  I must admit that there are a few tutorials that I have done more than once and still don't understand, and that is despite the tutorials being describe as 'for beginners'.  The penny has finally dropped though, I have suddenly started to understand Cocoa and that is because I happened to find a sequence of tutorials that seems to have worked.  If you want to have a go at learning Cocoa, try this sequence.  I hope it will as well for you as it did for me.

- The first stage is to go through an excellent short PDF manual called <a href="www.cocoalab.com/BecomeAnXcoder.pdf">Become an Xcoder</a>.  This really does require no prior knowledge of C, C++ or any other language that most manuals assume the reader has.  It gives the reader sufficient knowledge to understand what is happening in all the different sections of a project as well as working with basic classes such as arrays or strings.

- The next stage I would recommend is to do Apple's tutorial.  To understand fully what is going on in this tutorial you do need some knowledge of the code structures used by Cocoa, but having been through 'Become and Xcoder' you should be ready for this.  The one problem with Apples tutorial is that the latest version is based on Leopard and Objective C 2.0.  If you don't have leopard, you aren't out of luck, there are still some examples using older versions of Xcode on the internet.  This tutorial is useful because it gives you an understanding of some of the non code related issues associated with creating an application.  <a href="http://developer.apple.com/documentation/Cocoa/Conceptual/ObjCTutorial/01Introduction/chapter_1_section_1.html">The latest Cocoa tutorial on the Apple Developer site</a>  <a href=" http://www.oreilly.com/catalog/learncocoa/apple/ch07.html">An older version of the Apple currency converter tutorial</a>

- The next stage I would suggest is to go to CocoaDevCentral.com and go through the tutorials on the front page.  These are some excellent tutorials dealing with some of the other features of Cocoa such as core data and working with graphics.  Doing this will give you a fair understanding of how easily accessible some of the features of Cocoa are.  <a href="http://www.cocoadevcentral.com/">CocoaDevCentral</a>

- Finally I would recommend looking at a larger project and taking it appart to understand how it works.  An excellent example of this is <a href="http://developer.apple.com/samplecode/Calculator/">a simple calculator app</a> prepared by Apple.  Being such a simple application we all understand what it needs to do, making the methods within the application much more accessible.  Having been through all of these tutorials you should be able to understand what almost every line of code in the project does.  You can then start adding your own buttons and code to the calculator to try out your own skills.

- Now, the world is you oyster.  It is now time to start branching out to develop the type of application that you want to do.  Once source I would suggest that you have a look at is MacDevNet.  It includes two excellent podcasts, CocoaCast for those wanting to do more work on the basics and LateNightCocoa, a well produced series of interviews with Cocoa developers.  <a href="http://www.macdevnet.com/">MacDevNet</a>

I hope this might help out a few people who are starting out or struggling with Cocoa.  For a beginner it is a very steep learning curve but it will be well worth it in the end.]]></content:encoded></item><item><title>Seeding random numbers</title><dc:creator>Ian Turner</dc:creator><category>Analysis</category><dc:date>2008-11-22T13:52:54+00:00</dc:date><link>http://homepage.mac.com/splash6/Splash6/files/SeedingRandomNumbers.html#unique-entry-id-1</link><guid isPermaLink="true">http://homepage.mac.com/splash6/Splash6/files/SeedingRandomNumbers.html#unique-entry-id-1</guid><content:encoded><![CDATA[Statistical modelling is part of the standard engineers tool set. The desktop computer means running scenarios with multiple inputs an easy task for all engineers.  Most of these tools use random numbers to generate varying outputs.  The mechanics of generating random numbers is a mathematical art to itself, but there are some key features when using statistical methods that need to be understood for effective modelling.

One of these key features is the seed.  Random numbers are generated using algorithms that take an input value and generate a sequence of numbers that are apparently random.  The input value is called the seed.  Most programmes use the time when the first random number is generated as the seed; this then ensures a different sequence is generated each time a programme is run.  Overriding the use of the time as the seed does however have a number of benefits:

● It allows scenarios to be re-run, particularly important where scenarios are used to generate the design in a safety critical situation.

● It allows scenarios to be partially re-run.  By using the same input parameter the scenario can be started in the same way, but using the seed, the random number sequence can be effectively re-set.  This then allows a bifurcation in the model with a different outcome part way through the model.

● It gives repeatability to models, a key component of any analysis that is quality audited.  If you are having your analysis checked and it doesn't have built in auditing features such as date stamped reports, your checker must be capable of recreating identical results to yours.  The only way of doing this in a statistical model such as UDEC is to set the deed of the model prior to the runs so that the checker can recreate exactly the same model.  So with all that in mind, here are a few ways of setting random number seeds in your models:

Excel With Excel the easiest way to generate random numbers with a seed is to use the Data Analysis tool pack.  I usually find that when I'm working with Excel and random numbers I'm having to use visual basic.  For me setting the seed programmatically in Excel using Randomize statement.

Apple Numbers 1.0 Bad news here, I don't know how to set the seed in numbers.  It doesn't really surprise me given the lack of scripting associated with Numbers.  I remain hopeful of many improvements in the next version of Numbers and this is definitely one of them.

Cocoa In Cocoa just use the srandom() function.  There are plenty of examples out there with this in.

Applescript In Applescript just set the seed when you first generate a random number using set firstRandom to random number from 1 to 100 with seed seedValue.  I've been using this with no problems on an Application that I am currently writing in Applescript Studio.  One thing to be aware of though is the some item of function.  This doesn't seem to respond to seeding so well so other methods of taking a random value from a list using a directly generated random number seem to work better.]]></content:encoded></item></channel>
</rss>