3SL Email Filters

We all use e-mail as a reliable method for our personal and business communications. However, as we all know, vast numbers of spam, junk and malicious e-mails are also sent every day. Everyone needs protection from the damage that clicking a link or attachment in just one e-mail can do. 3SL has recently changed our 3SL email filters to further reduce our exposure to such threat vectors. We expect that you and your organisation also update your filters regularly.

3SL email filters
Block Spam and Malicious E-Mails

This blog post is a summary of what the 3SL email filters will do.

We are publishing this so that you can reliably send your emails to us. We do not expect that the 3SL email filters will block any of your emails. But if one of your emails is blocked, this blog post may help to explain why.

Principles of 3SL Email Filters

We will obviously not disclose full details of the 3SL email filters. You would not expect us to do something that silly. There are some general principles which we will publish, which are:

  • The more malicious an email is, the less likely our mail server is to provide an informative response to the sender, or their mail server
  • The more malicious an email is, the more likely we are to provide false responses, or no response, to the sending mail server
  • We use all available blacklists to ignore all known malicious senders and mail relays. Either we access them online, or we keep local copies and then update them regularly.
  • 3SL always reports malicious financial emails to the organisation that they are supposed to come from
  • We report all malicious e-mails to blacklist sites wherever possible
  • We automatically block emails based on their from, to, subject, content, formatting and attachments
  • Any e-mails sent to undisclosed recipients or with multiple from tags will be rejected
  • We operate our own blacklists, for people we dislike
  • Emails from people we especially dislike are automatically sent to spam reporting sites
  • We operate our own whitelists, for people we like!
  • All e-mails and all of their attachments are scanned for viruses and other nasty tricks(!)

Email Attachments

The types of attachment to an email is an important part of the 3SL email filters. Therefore, the 3SL email filters are very sensitive to the types of files that are attached to e-mails.

We currently block everything that is remotely executable. This includes the obvious ones, such as:

  • exe files
  • scr files
  • msi files
  • .bat files
  • .cmd files
  • .lnk files
  • .com files

and many others.

We also block file types that are common vehicles for malicious code, including the obvious ones:

  • .jar files
  • .ace files

and others that we will keep to ourselves!

In total, we block over 20 file types.

Accepted Attached File Types

We want to receive your e-mails! Therefore, if you need to send any attachments with your e-mail, only send:

  • Microsoft Office files
  • Open Office files
  • PDF files
  • Plain or rich text files
  • Cradle import/export files
  • Simple images

We will detect macros in e-mail attachments. So, please don’t send us any file with a macro inside it!

If you send a file containing a macro, then either your e-mail will be rejected or, if you are in our whitelist – and this includes customers – then your e-mail may be logged as spam, or it may be rejected.

Alternatives to Email for File Exchange

If we need to exchange files with you that would be blocked by our email system, or by yours, there is an alternative!

Every login account in our website can have a file transfer area. You can use this area to download any type of file from us. You can use this area to upload any type of file to us. Therefore, this mechanism avoids any need for us, or you, to send files by e-mail that either of our mail systems would block.

We think that this mechanism is very useful. 3SL asks all of our customers to consider using this mechanism. We hope that you will agree.  Therefore:

  • If you have a login to our website, we can enable this facility for you.
  • If you do not have a login to our website, please register and create one!

Your organisation may also provide a secure file transfer mechanism. If so, tell us about it. We will be pleased to use it.

Help Us to Help You

Obviously, we never send anything malicious to anyone. Equally obviously, we do not ever knowingly send any emails that could be regarded as spam, malicious or suspicious. So we would be concerned if you do not receive any of our emails.

Therefore, please tell us if you believe that we are sending emails that are being blocked by your mail system.

If this happens, then we will work with you and your IT to either:

  • Add 3SL to your organisation’s whitelist, and therefore none of our e-mails will ever be blocked
  • Or we will change the format of our emails so they are acceptable to your organisation

Three Hundredth Blog Entry!

Enjoying our Blog?

We’re hope you are all enjoying the 3SL blog and have found useful, interesting and fun articles.

This morning we noticed the counter creep over the three hundredth blog entry mark.

screenshot of the opening blog entry from Jan 2016
First Blog Entry

Looking back we’ve covered everything from announcements about  new Whitepapers to ‘How to‘s on simple Category Validation to more complex Document Publisher Table Generation . We’ve also looked at the stories of the day celebrating engineering excellence such as Ada Lovelace and Pi days to the more bizarre  Towel Day. Our FAQ section has answered customer enquiries about controlling their Hierarchy Diagram output to freeing up licences locked by a user who has gone home and left their machine locked.

Get in touch…

Onward, beyond the three hundredth blog entry we’ll be keeping you up to date with all things 3SL and Cradle (and the odd bonkers story too!)

Have you got a great tip for setting up a schema for a particular engineering or management practice? You could submit a guest article and let us, and other users,  know all about it.

If you mention Cradle in your own company blog, send us the link and we may mention it.

If you’d like see a ‘How To’ on a particular subject, we’ll endeavour to put one together.

Go on, drop us a line and let us know social-customer@threesl.com, call us +44 (0)1229 838867 DM us @threesl

Remote Workers and Cradle – how do they communicate?

Cradle, like many modern applications, uses networked communications between clients and servers. However, with modern working practices, often not all users are on the same site. Some, not even the same continent as the Cradle server. So we need to create a method to allow these remote workers access to the Cradle server.

Thin Clients

3SL created the CWS (Cradle Web Server).  This allows a capable thin client deployment to local and remote workers without the need to install Cradle WorkBench.  But some customers want their remote workers to have access to the full capabilities of WorkBench, Project Manager, Document Publisher, and Document Loader; so how can these remote workers deploy the Cradle clients with network access to the server?

Virtualised Applications and Desktops – (e.g. XenApp, RemoteApp)

Citrix XenApp® and Microsoft® RemoteApp allow your applications and desktops to be virtualised and then served to the user from central servers.  The Cradle client utilities are installed on the Application Servers.  Users are able to connect to the server which redirects the Application or Desktop display to the users device.  These technologies allow users with devices which are not currently supported by 3SL to use the full desktop Cradle applications.

Many Cradle customers use Citrix XenApp® and Microsoft® RemoteApp virtualised apps and desktops to serve Cradle WorkBench, and other Cradle utilities to their local and remote workers.  But what if you’re remote and your company doesn’t use these distribution technologies? What are your options for remotely connecting to a Cradle server?

There are a number of methods which we have assisted customers in deploying to allow their remote workers access to a central Cradle system.

VPN – Virtual Private Network

Virtual private networks provide a link from the remote hosts to the network where the CDS lives and we can talk directly to the CDS over this connection. VPN can provide host to network, and network to network communications. Authenticating and encrypting VPN links provide security over the internet.

This is the preferred method between sites, or dedicated remote workers, as most customers already have VPN technologies in place and this provides the least restrictions and requires little additional configuration of the Cradle server.

NAT – Network Address Translation

This is where we remap one IP address space to another IP address space.  What this gives us is the ability of a gateway or firewall to route Cradle communications to a CDS behind the firewall.  This can expose the Cradle server to unwanted external traffic if the firewall rules are not carefully locked down.

SSH Tunnels  – Secure Shell for Unix and Linux hosts

Part of this protocol is the ability to map local IP ports to remote IP hosts and ports beyond the remote SSH host. We can use this to direct Cradle communications to the CDS.

You may not wish to expose the Cradle server using NAT as it can open it up to potential hostile traffic, but you don’t want to go down the route of a full VPN solution.  SSH tunnels fulfils this need.

In future blogs, we’ll be going through some of these options in more detail for Cradle specific installations.

Cradle-7.3.2 Released

3SL is pleased to announce the release of Cradle-7.3.2. This is available for download from the 3SL website. As you currently have an active Cradle maintenance agreement you can download this Cradle release free of charge.

Please note that even the website states Cradle-7.3 this IS the Cradle-7.3.2 software.

Cradle 7.3.2
Cradle 7.3.2

To download the latest release please visit our website at www.threesl.com and login. Once you have logged in navigate to the Resources section to download this release.

Details of the fixes in this release are in the Cradle help.

Upgrading

If you upgrade to Cradle-7.3.2 anywhere, you must upgrade everywhere, the server and all clients. Visit the download area.

If you are upgrading from a version prior to Cradle-7.3 you will require a Security Code. Contact our Support Department to get your new Security Code.

Customers who purchased a single-user Cradle-7.3 product can also apply this new release.

What’s CRADLE_ERRORSTACK?

Environment Variable or Command-line Switch Stack-tracing

As with many complex products Cradle monitors its internal operation and on the rare occasion that something goes wrong it writes information to a log. CRADLE_ERRORSTACK controls how much information is logged internally and output on these occasions.

If in the unfortunate case a Cradle tool crashes, there will often be a log produced in the %CRADLEHOME%\logs\errors directory. This will enable 3SL Support to diagnose simple cases such as a lack of memory on the machine. If the case is more complex, the development team may need to know at which point the program was processing at the time the error occurred. CRADLE_ERRORSTACK will enable additional internal logging that will output a simple execution stack trace into the log. This can aid diagnosis and resolution.

Switching Stack Trace On and Off

CRADLE_ERRORSTACK is an environment variable. You can set it via the control panel’s Advanced system settings (see the screenshot).

In Linux if you are editing the environment config files bashrc, profile, etc for either the system /etc/profile or the user ~/.bashrc then use:

export CRADLE_ERRORSTACK=true

Or as we now set CRADLEHOME in /etc/profile.d/cradle.sh you can put the ‘CRADLE_ERRORSTACK=true’ variable in this file.

Or you could start the Cradle tool from within a command shell, (On Windows®) press windows key type cmd and then in the shell set CRADLE_ERRORSTACK=true, then launch the tool e.g. "%CRADLEHOME%\bin\exe\windows\work.exe". You can also set a -errorstack parameter to your command line option, i.e. work.exe -errorstack to start WorkBench with the stack on.

Turning on CRADLE_ERRORSTACK environment variable
Environment Variables

Should I leave CRADLE_ERRORSTACK on?

Generally there is no need to leave the stack trace on all the the time. There is a small performance hit if you do, so unless you are having problems we don’t advise you leave it enabled.

What if that still does not sort the issue?

3SL Support may ask you to turn on tracing which produces a complete execution trail from the product. This has a large overhead and uses disk space and is only in used in the very trickiest of issues. Rest assured, it’s unlikely you’ll have to use  it, but if you do there is a post here that explains tracing.

Article UpdateD

27/04/2021 – Using CRADLE_ERRORSTACK in Linux

Could Do Better?

To the parents of…….

First reports of the new School year are landing on parent’s laps up and down the country. How have their little prodigies settled into their new class, how are they doing with new subjects? Will the envelope contain a list of ‘Could Do Better‘ or will it be a list of ‘ Excellent Effort‘

As a parent you always hope that the report will be positive, but what do you do about the negatives? How do you better support your child at school?

5 Out of 7 Subjects Great, 2 Need improvement.

School report based oin unsplash.com tamarcusbrown
Report

Ok, so as a parent we know Geography is lacking, but where. Is it a lack of understanding or a lack of world experience or bad handwriting. We could watch some BBC BiteSize revision clips take a world cruise, or get the lined paper and practice cursive fonts. The feedback lacks a little.

B2B Engagement

3SL are generally in the Business to Business market. We want to form a relationship with our customers more akin to the partnership between  parents and teachers than that of a Crisps* manufacturer selling to the mass millions and offering a chance to feedback via a popup on their website. The incentive in this case may be the year’s supply of ‘Cheese and Onion‘ but the quality of the feedback is likely to be limited to my thoughts on whether 6 or 8 packets is ideal as the size of a in a multi-pack or whether I rate the ‘Beef Goulash – special edition‘ higher or lower than my regular ‘Ready Salted‘

(* Crisps: en; Thin slices of potato fried until crunchy and crisp, en_US; known as potato chips)

Let’s Do a Survey

Surveys definitely have their place. They define a set of measurable criteria against which the business wishes to perform. “All posted correspondence must be dealt with within 14 days” is a laudable criterion, you can ask your customers if they received their mail within
7◘  14◘  21◘  longer◘  N/A◘ days.

"Survey" based on pexels.com/pixbay.com image
Survey

However, this is not much use if the main mail is simply the invoice sent to the company’s finance department. The users of the product, were really more bothered about their email to support being answered promptly, as the project was on the critical path.

Let’s Wait and See

“Businesses will tell us when we’re doing well” right? Generally, wrong!

B2B or B2C will regularly tell you when something is wrong, but far less frequently tell you when something is right. It’s just the way we are. You finish a meal in a restaurant and it was OK you up and leave, you enjoyed it you may leave a tip, you hated it and though the service was awful you may write and complain. (If you’re British you’ll probably say “tut tut, not going there again” but that’s a cultural issue!)

Ask….

If the waiting staff see you are finished and approach your table and ask “Was everything OK? Did you enjoy your meal?” They may well get a range of responses from “Fine” to “Great evening” to “The steak sauce was superb, I hope it’s on the specials again soon“. From this the business can glean more about how well they are doing. You wouldn’t want your waiter to sit down with you and ask if there were areas you felt were lacking and how they could better serve you next time. (It would somewhat ruin an evening). On the other hand getting feedback from that teacher about where improvements could be made, asking what they could do to assist and what you could do to support is a vital way to improve achievements.

Help Us to Help You

3SL are asking.

We want to build that relationship and make Structured Software Systems Ltd, the company you want to deal with. We want to understand how we can better support you.

And the Survey Said…

We know we can answer the phone within a minute (during UK office hours), we know we can respond to emails within the service level agreement. But what we don’t know is whether these are the most important aspects that you value. We can ask Google how fast our pages load, but it may be a piece of vital content that you rate more highly.
So the survey says NO we’re not going to restrain you to a set of tick boxes. We know different customers value different aspects and we want to be able to respond to all those things. We are, therefore, throwing the ball into your court, asking you to provide us with a virtual “parent’s evening” to raise your concerns (or lavish your praise) on us, as the parents, of Cradle.

Get in touch…

social-customer@threesl.com, call us +44 (0)1229 838867 DM us @threesl or post a letter Suite2, 22a Duke Street, Barrow-in-Furness, Cumbria, LA14 1HH U.K (and we’ll try and respond within 14 days!). Tell us what you want, what you rate well and where we ‘Could Do Better’

3rd Party Review Sites

We are also keen for you to provide public feedback at Capterra or TrustRadius which can help others decide on the value of Cradle. Obviously if you have a problem we’d welcome you contacting us first so we can help resolve it, that will benefit you , us and the rest of our customer base.

Further reading:

This article from TrustRadius for vendors is quite insightful  The Engagement Economy: How to build the relationship B2B buyers want

UPDATE: September 2020 – 3rd Party Reviews

Change Attributes for Many Items

You may need to change attributes or a category of many items and there is an easy way to do this in one go.

Changing Attributes

The attributes of the same or different item types can be changed at the same time. In the image below, all the Group attributes are empty and I want to group this set of items. To change attributes, select them all, right click and select Properties.

Item Properties UI for Many Item Types
Item Properties UI for Many Item Types

In here I can enter some text in the Group attribute and when I click OK all the items selected will be up dated. I could change any of the options shown in Item Properties and it would up date all the items with the same information.

All Items Updated
Many items of different item types are updated

This will work on items in link views as well so you can change all of the linked items at one.

Changing Categories

This will only work for items of the same item type. Select all the items you wish to change, right click on them and select Properties. If all items are the same type with the same categories, Item Properties will show all of the categories for that type.

Item Properties for many items of the same item type
Item Properties for many selected items of the same item type

Selecting a new option will change all the items at the same time. Multiple Category types can also be changed here and will affect every item selected. All of the categories can be changed at the same time, if required, along with all the attributes shown above.

Related Articles:

For further information on attributes and altering data:

Control Item Reordering

Hierarchies of items are common in requirements management and systems engineering. It is easy to create hierarchies in Cradle. It is also easy to move items within hierarchies. Cradle calls this reordering. You can control item reordering so that you can prevent users accidentally reordering items in ways that are incorrect.

How to Reorder Items

You reorder items by drag and drop:

Control Item Reordering in 3SL Cradle
An Item to be Reordered
  1. First, select the item to be reordered
  2. Keep the mouse button pressed and drag the cursor onto another item
  3. Release the mouse button and choose from the reordering options
Choose the Reordering Operation
Choose the Reordering Operation

If you choose Reorder Before this Item, then:

  • The hierarchy Pwr.3 will become Pwr.1, including all descendents
  • The Pwr.1 hierarchy will become Pwr.2
  • The Pwr.2 hierarchy will become Pwr.3
  • The Pwr.4 and Pwr.5 hierarchies will not change
Result of Reorder Before Item Pwr.1
Result of Reorder Before Item Pwr.1

If you choose Reorder After this Item, then:

  • The hierarchy Pwr.3 will become Pwr.2, including all descendents
  • The Pwr.2 hierarchy will become Pwr.3

While if you choose Reorder as New Child of this Item, then:

  • The hierarchy Pwr.3 will become Pwr.1.N, where N is the number of the next child of Pwr.1
  • The Pwr.4 hierarchy will become Pwr.3, to close the gap in the numbering
  • The Pwr.5 hierarchy will become Pwr.4 to close the gap in the numbering

Control Item Reordering

Problems can occur if you drag-and-drop Pwr.3 either:

  1. To create a new hierarchy with a new top-level item. For example, if you drag-and-drop onto item Onto a top-level item, such as Product Casing or Connectivity and choose Reorder Before this Item or Reorder After this Item.
  2. Into a different hierarchy, such as the Case or Conn hierarchy

You can control item reordering by preventing either or both of these operations. You do this using checkboxes in the Numbering Properties:

Control Item Reordering
Options to Control Item Reordering in a Schema

If you de-select the Allow items to become new top-level item checkbox, you will prevent problem 1.

You can prevent problem 2, accidentally moving an item outside its original hierarchy, by de-selecting the Allow reorder outside original hierarchy. checkbox.

Both checkboxes are enabled by default.

 

Numbering Item Hierarchies

Cradle provides a lot of flexibility for numbering item hierarchies. This is helpful if you need many hierarchies of the same type of items.

Hierarchies of Items

Hierarchies are very common in requirements management and systems engineering. Some common examples are:

  • User requirements are typically structured as a hierarchy
  • System requirements are typically a hierarchy
  • A System Breakdown Structure (SBS) will be a hierarchy
  • A Work Breakdown Structure (WBS) will also be a hierarchy

It is also common to have several hierarchies of the same type of information. For example:

  • A hierarchy of subsystem requirements for each of a product’s subsystems
  • An as designed and an as built SBS

It is easy to join many hierarchies into one. You create a new, top-level item and then connect all of the hierarchies to it. This is usually a bad idea.

Why?

Because it helps if the  numbers are different in each hierarchy. If each hierarchy is different to the others, it will be confusing if items in different hierarchies have the same number.

Hierarchical Number is Not the Identity

So what is a hierarchical number?

Every item in the database has an Identity. This is unique for the item type. Once the item has been created, its Identity does not change. Cross references use Identities to connect items to each other.

The hierarchical number of an item is NOT the Identity. Well, Cradle does allow identities to be the hierarchical attribute, but we DO NOT recommend it. We will ignore this from now on!

The hierarchical number describes an item’s position in the hierarchy. A simple hierarchical number is:

4.1.2

This tells us that the item is at the third level in the hierarchy. It is the 2nd item below item 4.1, and is part of the 1st group of items below item 4.

Hierarchical numbers are most common in the numbering of sections and sub-sections in documents.

Hierarchical numbers are not fixed. They can change. You can reorganise a hierarchy, moving an item and its children from one part of the hierarchy to another. Cradle calls this reordering a hierarchy. When you reorder items, their hierarchical numbers will change. Their Identities will not change.

By default, Cradle will store hierarchical numbers in the attribute called Key. You can store it in a category, if you wish.

Hierarchical Numbers

A hierarchical number has two parts:

  • A prefix
  • A hierarchy part, which is zero or more of:
    • A hierarchical separator
    • A number

The hierarchical separator can be:

  • A dot or period (this is the default); .
  • A hyphen: –
  • A slash: /

So these are all hierarchical numbers if the separator is a dot:

  • 1
  • 1.2.3
  • fred
  • fred.3.1

and these are also correct if the separator is a hyphen:

  • sid
  • sid-3
  • sid-3-4

and these are also valid hierarchical numbers if the separator is a slash:

  • bert
  • bert/1
  • bert/1/2

The prefix can be anything that does not contain a hierarchical separator. So if the separator is dot, then the prefix could be:

  • <nothing>
  • fred
  • fred-23/A-2.1
  • sid-2

Numbering Item Hierarchies

It is easy to have many hierarchies of items of the same type.

We recommend that you give each hierarchy a different prefix. For example here are some SBSs for the different subsystems in a product:

Numbering Item Hierarchies
A Collection of SBS Hierarchies

Each hierarchy has a unique prefix, such as:

  • Pwr for the power subsystem
  • Conn for the connectivity subsystem

and so on. This approach will ensure that:

  • Each item in every hierarchy has a unique hierarchical number
  • Each hierarchical number shows which subsystem it belongs to
  • The prefix for each hierarchy can be used in a query to find all items in that hierarchy
  • The hierarchical number shows the position of the item in its hierarchy

The simple recommendations for numbering item hierarchies are:

  • Use descriptive prefix strings in the hierarchical numbers of all items
  • Use a different prefix string for each hierarchy

 

Select Operations in Cradle

Since Cradle is not intelligent (unlike its users!), you have to tell it what you want to it operate on, before you tell Cradle to do anything. There are several select operations in Cradle, depending on what you are working with. Most of these select operations are common to other pieces of software, so what follows may not contain any surprises.

Select Operations in Cradle

In general, you will either select:

  • Items, to perform an operation on them
  • Text, to manipulate the text in some way

How to Select Items

When you see a collection of items, in a list, table, document or tree, you can select them and then apply an operation to them. So, starting with this table of items:

Select Operations in Cradle
A List of Items

the select operations in Cradle are:

  • Select all items by pressing CTRL-A:
Select Operations in Cradle
A List of Selected Items
  • Cancel all selections by pressing CTRL-D:
Select Operations in Cradle
A List of Items With None Selected
  • Select an individual item by positioning the cursor over it and then click your LEFT mouse button:
Select Operations in Cradle
A List of Items With One Selected
  • Select a range by positioning the cursor to the other end of the range and press SHIFT and the LEFT mouse button:
Select Operations in Cradle
A List of Items With a Range Selected
  • To add items to the set of selected items, or to remove a selected item from the set of selected items, position your cursor and press CTRL and the LEFT mouse button:
Select Operations in Cradle
A List of Items With Several Items Selected

You can combine these select operations in Cradle, as shown above.

If the results are not what you want, press CTRL-D and start again!

How to Select Text

The majority of items created in Cradle contain text, either plain text or rich text. You can store any amount of text (well, up to 1 TByte) inside each attribute (called a frame) in an item. You can have any number of attributes in each item.

So, items can store a little text, or an enormous amount of text.

When you edit text, you will see a cursor that is a vertical line. This shows you where text will be entered when you type on the keyboard, or paste text that you copied elsewhere.

The select operations in Cradle for text are:

  • Select all items by pressing CTRL-A
  • Cancel the selection by pressing CTRL-D
  • To select a position in the text, position your cursor and press the LEFT mouse button
  • Select a word by positioning your cursor anywhere inside the word and double-click, press the LEFT mouse button, quickly, twice,
  • Select a paragraph by positioning your cursor anywhere inside the paragraph and triple-click, press the LEFT mouse button, quickly, three times
  • You can select a range of text by positioning your cursor at the start, or end, of the range, and press the LEFT mouse button, drag the cursor, and release the mouse button
  • You can also select a range of text by positioning your cursor at the start or end of the range, then press SHIFT and then press Cursor Left, Right, Up or Down to extend the range in each direction.
  • If you ALSO hold the CTRL key, then Cursor Left and Right will extend the selection by one word
  • If you ALSO press the CTRL key, then Cursor Up and Down will extend the selection by one paragraph
  • You can change the end of a range of selected text to the start or end of a paragraph by pressing the SHIFT key and then pressing Home or End
  • You can change a range of selected in large amounts by pressing the SHIFT key and then pressing Page Up or Page Down

By combining these select operations in Cradle, you can easily work with even long blocks of text.

If you have not tried some of these technique, please try them!