On November 19th, XBRL US released the Taxonomy Development Handbook for public review. The handbook is a comprehensive guide that directs regulators, industry experts, and businesses through a practical roadmap to building high quality data standards with XBRL. This freely available, foundational document takes readers through the necessary stages of standards development, including: 1) building the appropriate transport data model, 2) assessing project scope, including use cases and requirements, 3) establishing a governance structure, 4) documenting the standards program, and 5) the step-by-step mechanics of building the taxonomy. The handbook also contains an introduction to the XBRL financial data standard, templates to guide developers in documenting the taxonomy, and case studies of XBRL as a method of improving data reporting in various industries.Continue reading "XBRL US Releases Taxonomy Development Handbook..." »
Friday, November 22. 2019
Friday, November 15. 2019
Last month, we discussed logging user submissions to the SEC in our blog post LDC 154. Well, thinking more about this, I realized it was probably not a good idea to not secure the log file. If someone makes a mistake, and files a document they shouldn’t, they could simply alter the log to show different times or users filing the document, and there is no record of it. A malicious user could easily just change what the log says! This is unacceptable and easily within our power to fix. To do so, we’re going to use a common function, the MD5 hash function.
Continue reading "LDC #160: Securing Log Files with MD5" »
Friday, November 01. 2019
I had an interesting issue crop up this week: a client had a file that had a 21 inch indent on a paragraph, causing problems when the file was printed to PDF. When GoFiler converts your Word file to HTML, if there are a lot of spaces or tabs on a line, it can cause GoFiler to interpret it as having a large indent level. Normally this isn’t a big deal, but if the indent ends up as large as this, it can cause rendering issues. So, I was asked if there was a way we could test for this, and figured it would be an interesting problem for a blog post.
Continue reading "LDC #159:Validating HTML Indents and Margins..." »
Friday, October 25. 2019
This week, we’re going to revisit a blog post from early 2018, Validating with the XBRL Object. This was a relatively straightforward script. It hooks itself into the validate function and adds an additional layer of validation for XBRL files. Having seen a couple of issues with blank element names in XBRL causing problems this past week, I figured it would help to create a script that enhances our default validation to detect these blank names and add in a temporary placeholder name so that it can be removed.
Continue reading "LDC #158: Validating for XBRL Custom Elements..." »
Friday, October 18. 2019
Arrays, such as lists, tables or cubes, are a useful programming tool. However, to get the most from using an array, it helps to have a more thorough understanding of exactly how arrays are stored and allocated.Continue reading "LDC #157: Understanding Used versus Allocated..." »
Friday, October 11. 2019
A very common scenario for a script is to get a file from a user, perform several actions on it and then save the file. As developers it is easy to fall into the “user is always correct” trap. We assume that if we are asking for an HTML file, the user is going to give us one. Whether the user does it on purpose or not, sometimes this isn’t the case and we, as developers, should be prepared for this use case. This blog is going to discuss how we can validate files we receive from the user.Continue reading "LDC #156: Introduction to File Types in Legato" »
Friday, October 04. 2019
When submitting a filing to the SEC you want everything about this filing to be checked, double checked, or even triple checked before submitting a live filing. If you are not 100% careful mistakes can happen. Just like elsewhere in life, following a set list of tasks for every filing can end up making life easier and allow you to ensure that mistakes are minimized as much as possible. Luckily there is a task list feature in GoFiler that we can access through Legato. This means that we can take steps to ensure that the same process gets followed every time that a filing gets created.
Continue reading "LDC #155: Automatically Locking Projects" »
Friday, September 27. 2019
When you file something to the SEC, there are a lot of data points that can be tracked from that event such as: if the filing was live, when the filing process began, when GoFiler began transmitting the file, and when GoFiler finished transmitting the file. This information can be gleaned different sources, including the log file and the project file metadata. However, there is no one place where filers can obtain this information. With Legato, we can set up a small script that triggers when we file a project, and simply records information about that project into a log file in the same folder as our project.
Continue reading "LDC #154: Enhanced Submission Logging" »
Friday, September 20. 2019
When a script has finished its assigned task, it can ‘return’ or ‘exit’. However, which is best? What style of coding should you use? It depends on the circumstances. Legato allows for flexibility in how scripts are structured and executed.Continue reading "LDC #153: Program Flow — Return vs. Exit" »
Friday, September 13. 2019
This week’s blog post is going to focus on Legato’s ability to sort and search tables and lists. Many times when developing, you need to collect up a list or table of data and perform operations or analysis on that data. When analysis is involved it usually means finding specific entries in the list or table. As the data set grows this search can start to get very expensive. I’ve created a script to show how searching lists and tables can impact your script performance.Continue reading "LDC #152: Sorting and Searching Tables" »
Friday, September 06. 2019
In Legato you can make all sorts of different scripts that do many different tasks. A majority of these tasks come while you are working inside of GoFiler or another application, and when these are finished you simply return out of the script and the application continues on as normal. Sometimes, however, you are performing a task that must end with finality. In this case you can exit the program that is running your script. Today we are going to look at the ways in which you can accomplish this, how they are different, and times in which you would use each.Continue reading "LDC #151: Exiting the Application" »
Friday, August 30. 2019
In previous blog posts, we have shown a lot of examples of tasks you can use Legato to automate. We’ve gone into detail on how these scripts work, what UI functionality is required to support them, and ways they can be improved and added upon to increase the functionality. Way back in LDC #67, we even discussed best practices that can be applied when writing applications. One topic we haven’t really covered though, is how to estimate the complexity of a task, and if it’s even a suitable task for Legato to tackle. Keep in mind we can really do anything with Legato... but there are definitely times where we should just step back, and say that a task is outside the scope of what a script should handle.
Continue reading "LDC #150: How to Decide When to Use Legato" »
Friday, August 23. 2019
This weeks’s blog is going to focus on the File Transport Protocol or FTP and what functions Legato offers to add FTP into your next script. The FTP protocol is an older protocol and somewhat outdated but it does have its uses. It was originally designed to send files over the internet long before webpages and HTTP. It has many disadvantages when compared to modern protocols such as SFTP but it still offers an easy way for users to download and upload files.Continue reading "LDC #149: Using FTP in Legato" »
Friday, August 16. 2019
When it comes to text, we as programmers live in a world that is a combination of 8-bit and 16-bit. Living in 8-bit is okay until you need to access characters outside the scope of standard ASCII and ISO Latin 8859. Then you need additional support, and that support comes from Legato’s functions to handle Unicode and UTF-8.Continue reading "LDC #148: Unicode and UTF-8" »
Friday, August 09. 2019
We started this blog in September of 2016, releasing one article a week (with only a few exceptions) for a total of 147 articles over 151 weeks, each article illustrating various features of the Legato scripting language. With so many articles available to reference I thought I would take the time this week to put together a picture of where we have been in a way that will make it easy to find previous topics that have been covered. This way no matter whether you have been a faithful reader since the beginning or if you have only found us recently you can have a place to easily find where and when we have covered a topic. This is by no means a comprehensive list, but intended to be a resource to find if we have covered a topic you may have questions about.Continue reading "LDC #147: A Look Back in Time" »