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" »
Friday, August 09. 2019
Friday, July 12. 2019
Working with text inside of tables when looking at HTML code can sometimes be a daunting task. Looking at rows of code that are rows and columns can be difficult, especially when trying to write a script to read text from within a table. Keeping track of what row and cell you are in sometimes can feel like an entire script in itself. Luckily for us we have a number of functions in Legato that can allow us to read data from a table as though we were looking at a spreadsheet. This means that we can focus on developing tools to focus on aggregating the data itself rather than reinventing the wheel every time that we want to retrieve data from a table.Continue reading "LDC #143: Table Mapping Tools" »
Friday, June 21. 2019
This week we are going to move forward with our creation of a tool to allow us to fill out a Form 8-K cover page. Last blog we started our process by creating a script that showed how to use the HTML templates to create a custom template that runs a Legato script. This week we are going to expand on that concept, redesigning the script to be able to work with multiple form types and adding in the ability to add expandable lists into each form.Continue reading "LDC #140: Using Legato to Ease the Creation of..." »
Friday, May 31. 2019
The SEC recently updated the requirements for what information should be included on a number of the cover pages for their forms. GoFiler already has templates for a lot of common forms like the 8-K, 10-Q, and 10-K, but I had an idea that would eventually make creating these cover pages even easier than they already are by putting the power of Legato to work. The current templates simply create a blank cover page with empty areas to enter data in the Page View edit window. My script will prompt the user to provide the information in a simple form when they create the document and automatically place that data on the cover page.Continue reading "LDC #138: Using Legato to Ease the Creation of..." »
Friday, May 17. 2019
One of the most important features of GoFiler is the ability to take Microsoft Office documents and turn them into EDGAR compliant documents that can be filed to the SEC. While conversion is easy to do manually in GoFiler, there is a function in Legato that can add a crucial step into an automated set of steps that can help make setting up filings a breeze. Today I will go in-depth on this function: ConvertFile.Continue reading "LDC #136: Using Legato to Automate Document..." »
Friday, April 12. 2019
It’s time to finish up our full script for our Section 16 data scraper. In the first three parts of this series we completed a base script that would go out to the SEC’s website, download all of the filings from a particular CIK, cache all of the Section 16 filings, find all of the reported transactions, put those transactions into a CSV file, and then read all of those transactions and figure out which of those transactions are current holdings. This week we are going to finish up by creating a dialog and adding our script functionality into the dialog.
Continue reading "LDC #131: Building a Section 16 Data Scraper,..." »
Friday, March 29. 2019
It’s time to finish up our base script for our Section 16 data scraper. In the first two parts of this series we started a script that would go out to the SEC’s website, download all of the filings from a particular CIK, cache all of the Section 16 filings, find all of the reported transactions, and put those transactions into a CSV file. This week we are going to finish up the base functionality by reading through all of the transactions and finding the current holdings. Additionally we are going to perform a large amount of refactoring as well as add in the functionality to look at reported holdings.
Continue reading "LDC #129: Building a Section 16 Data Scraper,..." »
Friday, February 08. 2019
A few weeks ago we started building a Section 16 Data Scraper with the intention of a user being able to enter a CIK and Legato downloading all of the CIK’s Section 16 filings, putting the data together into a spreadsheet, and then being able to start a Section 16 filing by using that data as an entry point. At the end of the last post we had a script that would go out and download all of a singular CIK’s filings. It would also cache any filings it saw so that we were only downloading each individual filing once. This week we are going to continue onward and code a system to scrape useful data out of the filings and put it together into a CSV file.Continue reading "LDC #122: Building a Section 16 Data Scraper,..." »
Friday, January 04. 2019
If you are not familiar with the term Section 16, Section 16 is a section of the Securities Exchange Act of 1934. In fact, it is section 16 of the act. Section 16 is a way to attempt to mitigate insider trading at companies. It states that any person who is a director of the company, an officer of the company, or a 10% or more beneficial owner, directly or indirectly, they must file Forms 3, 4, and 5. These forms report the level of equity interests whenever a significant change occurs. The terms that you will see referenced here are reporting owner, who is the person of interest here, and issuer, who is the company that in which the reporting owner has equity.
Continue reading "LDC #117: Building a Section 16 Data Scraper,..." »
Friday, November 16. 2018
About a year ago I wrote a blog with the basics of how logs work with GoFiler and Legato. At the end I mentioned that in a future blog post we would talk more about what you can do with log objects. Today we are going to do just that. This blog assumes that you have read the previous blog and understand the basics of the log object.
Continue reading "LDC #111: Back To The Log" »
Friday, October 19. 2018
If you are anything like me, you may like looking in the past to see where you have been, which will hopefully allow you to figure out where you are going in the future. The more that I immerse myself in programming, the more documentation that I end up creating, just in order to know where I have been and what I have done before. As I program, I like to create documentation as I go along. It makes the process easier in the long run. Sometimes, however, I find myself having to pick up a project and having to create documentation from the start. It would be easier if someone had been keeping records all along, but if I have to know where I’ve been, I need to go through the whole process from the beginning.
Continue reading "LDC #107: All Our Filings In a Row" »
Friday, September 28. 2018
This week I want to go over a short script that I’ve written recently in order to help automate some of the tasks I have picked up around the office. Some of these tasks involve moving around files and folders on the network. I got tired of manually copying and pasting folders, so I wrote a script to help make moving large amounts of files and folders easier. There’s plenty of ways that this script could be made more in-depth, but this is a practical example of a way to make your life a little bit easier.Continue reading "LDC #104: Copy All the Things - An Example of..." »
Friday, August 17. 2018
Language directives allow you to change the code the programming language sees when it runs. We’ve talked a little bit about directives before, but today I will take a look at a subset of directives: conditionals. Conditionals allow a programmer to add or remove sections of code based on the existence of other directives. This means that it’s easy to build larger suites of code while allowing sections of code to be taken out without causing errors during runtime.
Continue reading "LDC #98: Conditionals, If You Want Me To" »
Friday, July 20. 2018
Legato is an extremely powerful tool that allows you take control of GoFiler by helping you to automate tasks and giving you new features. In addition to Legato, GoFiler also includes a command line API, allowing you to perform some tasks without fully opening GoFiler. You can combine these features together to have GoFiler run Legato scripts from the command line interface. This means that your possibilities are actually endless for what you can accomplish. Today we are going to discuss extending your control over GoFiler by using the Windows command line to communicate directly with Legato, allowing you to write scripts that can span multiple computers.
Continue reading "LDC #94: Taking Command Of GoFiler" »
Friday, June 22. 2018
If you’re a long time reader of the developers corner, you may remember that last April I talked about using collaboration tasks in GoFiler through Legato. I shared a short script that read any tasks attached to a project upon opening a project and had Legato post the tasks in the Information View. Today I would like to present a modification to the script while introducing the email function. This script will also require a basic understanding of how HTML is formed and how CSS style data is stored in HTML.
Continue reading "LDC #90: Emailing Collaboration Tasks" »