What’s a cradle.ini or .cradlerc file?

Preferences and Settings

The cradle.ini file on Windows® or .cradlerc file on Linux® is a configuration file holding the settings for Cradle.
The top half of the file contains all the default settings (commented out) so you can always see the values ‘as shipped’. It isn’t a file for the every day user, but is something the system administrator may delve into to control users’ experience.

The values are per installation so the file is located in the %CRADLEHOME%\bin\exe\windows or $CRADLEHOME/bin/exe/[linux-ia32|linux-x86_64] directory. The settings will apply to all the clients that connect. So if you set your date display preference to DD/MM/YY all users will see this.

image of cradle.ini file with date setting highlighted
The cradle.ini / .cradlerc file

Further details on cradle.ini or .cradlerc are shown in the Cradle help on the startup file.

Local Settings

Users can override most of these default settings through their preferences. These are stored on a per user basis. This means that a user located in, say the USA can choose to show their date as MM.DD.YY. This will be their preference regardless of their Cradle username or project. They don’t have to change their files manually. Users can alter their settings via the Preferences button on the Home ribbon. However should admin need to get at them, their files are located in %CRADLEHOME%/admin/definitions/personal/NETWORK_USERNAME. These files are either non existent (if a user has never overridden a preference), or are just a delta of the differences between theirs and the default file. Therefore, don’t worry when there is not much in them.

Trouble shooting

If a user can’t see a new setting that’s been applied by the system administrator, it may be that they already had an override in their personal settings and this will continue to apply until they either set their personal value to match the global, or their personal copy of the cradle.ini or .cradlerc file is deleted.

Preserve Your Settings

We would recommend backing up your system cradle.ini or .cradlerc file.

December 2017 Newsletter

Happy Birthday to ya, Happy Bir—-th—-day…

Ok we didn’t manage to get Stevie Wonder on board, but we’re all still singing away at our desks!

30th Birthday Cake
Happy 30th

Thank you to all our loyal customers and friends past and present. We’re proud to have been of assistance in your projects. Thank you too to all the staff who over the years have changed Cradle into the multi module full lifecycle suite it is today. Keep an eye on our Birthday page for events and offers through our Birthday year.

Opportunities

Opportunities with 3SL producers of Cradle
Opportunities with 3SL producers of Cradle

Over Christmas is the last chance to get your applications in as we’ll be sifting through the applications in January See here for more details.

Banking Changes

Updated ring fence information and dealing with 3SL’s banking details. With budgets run annually make sure you follow these changes into the new financial year to ensure continued maintenance is paid into the right accounts, posted here.

GDPR

padlock over computer based on images from negativespace.co pixabay.com on pexels.com
GDPR

As most people are aware, those doing business with any European country will have to abide by some stricter data protection guidelines. There’s a lot of hype and scaremongering going on at the moment as people try to come to grips with the extent of the changes. 3SL are undertaking their data audits to ensure we only hold personal data necessary to run 3SL and to support our Customer’s contracts. 3SL hold very little personally identifiable information on our customers, but even your name/email address/company need to be protected. We don’t sell or trade or provide information we hold with third parties, unless it is either a legal requirement to do so, or necessary to complete a contract such as with our Bank or Credit Card processor. We’ll be publishing our policies either on our website or to be made available on request. We hope you agree that we don’t send unnecessary communications to you, for example these newsletters are the way we communicate important changes, release information and articles that may assist in your use of Cradle. However, if we decide to classify any communications or interactions as extras, we may ask you to specifically opt in to receive them. We hope you’ll agree to continue to receive them and you will of course have the option to opt out at any time. If you have any questions at present, please send them to support@threesl.com . A brief initial steps guide can be downloaded from the ico

 Social Media

Twitter

Find out what DIAT is an acronym for!! (OK we invented that one!) Celebrating scientific discoveries on X-Ray day When I’m Calling You... contacting 3SL and what’s blocked if you send us an email.

Hints of the Month

Last month’s blog articles included a lot about cross references: How to load Cross References en masse. did you know you can load a cross reference from a CSV file? Mapping cross references for input from Document Loader The power of cross references when working out aggregate values . Other topics included defining a report for later use, no need to remember the settings you can save them and run later. You can read Hints & Tips in the 3SL Blog

A Holistic View – The Context Diagram

Context Diagram – the world around our project

A context diagram aids visualisation of where a project sits in relation to its external interactions. We don’t want to model those external systems, but we do want to know how they interact with our system.

Automatic wipers for a car don’t need to know how the weather works, but they do need to sense the presence of water on the windscreen. The context would, therefore, include the weather as an external influence with ‘rain’ or ‘rain present’ being signalled to our system. If our company only produces the wiper element the actual car is outside our scope. However, this is where we get our power from and it’s where we will install them so the car is part of our context. The interactions with the car such as ’12v supply’ and ‘user control signal’ are likely to show a part of the holistic context.

Data Flow Diagram (DFD)

In terms of functional analysis and design the DFD shows the external elements with which our main system interacts on the context diagram. This usually has only one process on it, and that is our system of interest.

an example context diagram
Context Diagram – DFD

Taken from the Cradle demonstration project this diagram shows our system of interest is operating the aircraft. The externals that we interact with form the context within which the project operates. This includes the booking system, the fuel suppliers, the control tower and so on.

When the design and analysis are broken down at lower levels, the passenger details or navigation information will have to be handled by parts of the target system. If there is anything that does not balance at the lower levels, then a function must be missing. It implies that we have an input stimulus or an expected output and have nothing to handle or provide it.

Block Definition Diagram (bdd)

Context diagram notations are not restricted to Yourdon, a SysML bdd is also used to describe the context. Information gathered from the use cases and operational scenarios can be used to build a holistic view.

Context diagram shown on a bdd
Context Diagram – bdd

Visual

Whilst not necessary, adding images to your context can aid communication to your stakeholders and customers. They don’t really have to understand the notation to visualise the ‘Passenger’ as a person interacting with the flight. In Cradle, images can be added to the diagram as standalone images, or can actually replace the symbol on the diagram. (The image in the latter will follow all the rules and have the underlying specification of the real diagram element).

Bottom-Level Items Output in Document Publisher

A user wants to output bottom level items in Document Publisher. As bottom level items do not have anything linked below them, this can be set in a hierarchy table.

How this works for Bottom Level Items

All it takes is 3 rows in a hierarchy. The first row works as any item above the bottom level items. The second row will actually be for items on the bottom level. The third level is used as a check that the items are bottom level. It makes sure that no items are linked in a Downward direction using that Link Type for the 2nd row to be output.

If there are items linked below the item, using the Link Type set, then it is not a bottom level item and will not be output. Although this can be used with many different hierarchy levels, as long as the last row is always set as below.

Creating the hierarchy Table

So open the Hierarchy Details dialog and set the top item type to the type you require (here we are using Requirements). Leave level this as it is already set. Click the Add Row button and set the Follow Links to Downwards. The arrow next to the second level item show point towards it. Set the Link Type for this level, in this case it is RELATED TO. Next is the Publish Subject Items option which sets what will be published based on your links. Set Publish Subject Items to Only if link exists.

Select the second level item type and click the Copy Row button.

Adding and Copying rows
Adding and Copying rows in Hierarchy Details in Document Publisher

Select the last row and click the Indent button. The Publish Subject Items now needs to be set to Only if link does not exist.

Removing options set from the top and bottom nodes.
Removing options set from the top and bottom nodes.

The nodes without any options set should be grey, click OK and repeat for each Field required. All item attribute nodes in the Tags sidebar now show as on (Row 2).

Showing all the item nodes are set to Row 2
Showing all the item nodes are set to Row 2

Generating the template

When the template is generated, only the second row item will be output containing the bottom level items. For a short example to be output, the Key is set to 1.1*.

Bottom level items output using heading tag
Bottom level items output using heading tag.

Resolution of connection issue using Test_Login

Command Line Utility

Test_Login is a command line utility supplied with the Cradle Suite to help diagnose connection problems between the Cradle client and CDS (Cradle Database Server).

Steps

  1. At a command prompt cd %CRADLEHOME%\bin\exe\windows\or cd $CRADLEHOME/bin/exe/linux-ia32 or linux-x86_64
  2. Execute test_login.exe or ./test_login.exe
  3. Agree to continue with 'y'
  4. For a basic test select 3 to login to the DEMO project as MANAGER
  5. Select 7 to start the test
  6. This will then tell you the method being used to find the CDS for now press 'y'
  7. Move through the stages pressing 'y' each time and observe the result

    running of test_login.exe to diagnose issues
    Test_Login

If all is well the process will complete without errors.

If there is a problem an error will be raised (for example if a connection can’t be established because the CDS is not accessible or running Stage 1 would fail. At this point a user could try different CDS connection methods to diagnose the issue.

The ability to try different users and projects allow elimination of problematic installations or bad users.

Further information on the options in Test_Login can be found in the help.

 

Happy 30th Birthday 3SL (Structured Software Systems Ltd.)

3SL Turns 30

1st December 2017 starts our Birthday Year.

Watch this space for updates during our 30th Birthday Year……..

Happy Birthday!

30th Birthday Cake
Happy 30th

Thank you to all our loyal customers and friends past and present. We’re proud to have been of assistance in your projects.

Thank you too to all the staff who over the years have changed Cradle into the multi module full lifecycle suite it is today.

Mark Walker founder and Managing Director of 3SL said:

“I am delighted with the success of Cradle and the way 3SL has been able to develop a tool that has influenced and supported so many projects world wide”

Structured Software Systems Limited’s  official start date was 1st December 1987 and trades under the catchier moniker 3SL.

 

 

Can I enforce a company password policy?

Password Options

There are a number of options available to control a user’s password.  These meet the majority of policies our customers have asked for.
In the Users Settings section of the project schema setup the management can set the policy that users must adhere to.

control over password policy
Password Settings

This can include

  • Use password ageing
  • 3 login failures
  • Warn of password expiry
  • Enforce minimum password size
  • Enforce password format
  • Enforce unique passwords in cycles
  • Users can change password only once/day
  • Force users to change password
  • Password must contain at least one uppercase character
  • Password must contain at least one lowercase character
  • Password must contain at least one numeral
  • Password must contain at least one special character ` ! $ ^ * ( ) _ + – = { } [ ] : @ ~ ; < > ? . /|
  • Passwords may not match usernames (case insensitive comparison)

Does a user get told why their password is wrong?

When entering the password field, the box will remain with a red border until the password matches the criteria. The ℹ symbol will bring up a dialog telling you what’s causing the rejection. This will enable the user to select a password that matches your company password policy.

Password policy highlighting / reporting
Password Entry

What if a User forgets?

A user with MODIFY_USER privilege  can reset the user’s password by logging in and entering the User Setup dialog. If the user’s account has been disabled because of too many wrong attempts it can be re-enabled here too.

What if we can’t remember an administrator’s account password?

If you are trying to reset a User’s password and can’t remember the password of the user with MODIFY_USER privilege, you could sign on as the database manager account  MANAGER. This account has all privileges including ACCESS_BYPASS and can be used to reset any of the users.

What if we can’t remember the MANAGER account password?

This super user account should be carefully guarded. Some clue or encrypted version of the password should be locked away in a safe or special password manager on a closed system depending on your company password policy. However, all is not lost, you will need to speak with your IT department, to get someone with access to the raw data files. Then you will need to contact 3SL support support@threesl.com who will be able to assist in resetting the passwords to a new known value.

Can 3SL tell us what the passwords are?

No, sorry. The password file does not work like that. They would only be able to reset them to something new (which you’d be advised to get each user to change as soon as they  next login)

What are the alternatives?

You could use LDAP authentication and then the passwords the user has to enter will match the policy set for your LDAP server.

Fibonacci Day 2017

0,1,1,2,3,5,8,13,21,34,55,89,144…

Leonardo of Pisa, or as we know him Fibonacci, spotted a magical pattern in the early 1200.

Fn = F(n-1) + F(n-2) where F0 = 0 and F1 = 1 or  F1 = 1 and F2 = 1 as a seed.

To celebrate Fibonacci Day 2017 and this most import sequence, found in nature, mathematics and the basis for the Golden Ratio, we’ve recreated a sequence in Cradle.

Using an integer Category value FibVal and FibRes and a calculation FibCalc. The calculation is set to look at its cross referenced children (a downwards navigation) and compute a sum based on the aggregate total of their FibRes category and its own seed, held in FibVal. The result is assigned to FibRes.

Cradle schema calculations setup
Fibonacci Calculation setup

The first item were created and and seeded with 0. Then another item created and linked to it and seeded with 1. Thereafter new parent items were created and linked to their two previous children (Seed value of 0 just to keep calculation valid) .

linked items in a Fibonacci sequence
Fibonacci Sequence

The screenshot shows the linked items (in the tree on the left). The query view  (on the right) shows the values of the saved items and how they add up.

For more information on Calculations in Cradle, visit the online help. Have a go at creating your own sequence to celebrate Fibonacci Day 2017.

Can I check for frames that don’t contain digits?

Regex – Regular Expression

A RegEx (Regular Expression) is a pattern matching method often used in text searches and data processing. Cradle supports Regex matches in a number of query elements, so it is possible to perform complex searches on your data. This article gives an example of the use of Regexes in frames.

Example:

The mocked up example describes just one of the ways a user could search the text frames of their items achieve particular results.

IdentityNameGroupText
bed1Single BedroomCustomer roomsSingle person room of basic standard – en-suite shower
bed2Double BedroomCustomer roomsA 2 person occupancy room, shared bed en-suite shower
bed3Twin BedroomCustomer roomsA 2 person occupancy room, single beds, en-suite shower
bed4Luxury BedroomCustomer roomsA 1 or 2 person occupancy room double bed, en-suite with bath and shower.
bed5Night Staff RestStaff rooms1 person
store1Cleaning storeroom

The data in the table above used a Cradle Note called Bedroom and was produced by running the automatic query “BEDROOM – All”. Then the resulting  table was published to HTML. There were no regexes in frames applied to the initial query.

Queries with Regexes in Frames

    • Simply entering “TEXT” as the Name of the frame to search and running the query will bring back bed1-bed5. The item store1 has no content to compare so can’t match.
    • Entering bath in the Regexes field and re-running will return bed4  this is the most basic case the text typed in is simply found as a direct match.
    • If you want to find the incomplete items and find those with a blank frame using the Cradle extension of <null> in the Regexes field will return store1 as this has nothing in the frame.
    • If we want the query to find those that have not used a digit  in the description (This may be important if the output is parsed by some other program) it is possible to use a regex character class [[:digit:]] . This will find all the elements containing a digit ≍ [0-9]. However, if we want the elements that don’t contain numbers, we can use the second Cradle extension of ! to negate the result, hence ![[:digit]] will return bed1 as it used the word ‘single’ rather than a digit for its occupancy value.
    • Cradle also allows comma separated logical combinations of regexes in frames. Using the Venn diagram symbol you can select whether these are AND or OR combinations. Switching to AND and then using the regex [[:digit:]],![[:alpha]] would bring back items where the frame contained digits and no alphabetic characters.
screenshots of results using regexes in frames in Cradle
Regexes in Frames

Exploring Regexes

A simple way of testing whether your regex will give you the results you want is to use a test program regex101.com/ is a good example. This allows you to quickly tweak your statement, and run it against various test data.
Cradle uses the PCRE ‘flavour’ internally.
The Cradle help system has further information on regexes

World Hello Day 2017

November 21st 2017 – 45th annual Hello Day

Described by www.worldhelloday.org/ as a demonstration of the importance in communication for the preservation of peace, we can all do our little bit to get along.

annimation 3SL Hello
Hello from 3SL

Say ‘Hello’

Hello,  你好, Hallo, Bonjour, 여보세요, Здравствуйте, Helo to our distributors and customers.

Whichever language you use, ‘Hello’ is a greeting, a sign of friendship, tolerance, and respect. Thought to derive from a ‘holla or hollo’ used to attract attention back as far as the 14th century, it has always been used as a positive greeting, or introduction.
Use it as often as you can, form good relationships with your country folk, your neighbour, your customers, suppliers and even your competitors.  As Thomas Edison is said to have done, pick up the phone and say “Hello” possibly to a friend or to a customer, or just an acquaintance you’ve not been in touch with for a while. (You could call 3SL on +44(0)1229 838867)

If you would like Cradle in a language not currently translated, don’t hesitate to contact us. SalesDetails@threesl.com

Find ten contacts and just say, “Hello”, “hey there!”, “wassup” or “howdy” you know it makes sense.