Comma delimited data is perhaps the simplest way of representing a table of information. Many applications that export data will produce a CSV file, allowing for simple and fast extraction of data. However, despite the fact that CSV is a common format, it is not standardized. Reading and writing may also seem simple, but there are sticking points, such as how to handle commas and line returns that occur in the data itself. Wouldn’t it be nice to have tools to deal with CSV data? Legato does.Continue reading "LDC #66: CSV - The Simplest Data Format" »
Friday, January 05. 2018
Friday, December 29. 2017
It’s nearly the day where we all stare at the clocks waiting for the time to strike midnight. I’m talking, of course, about New Year’s Eve. A new year means new beginnings and new adventures. So to count us down to midnight I created a Legato script to inform you how long it is until the new year.Continue reading "LDC #65: It's Almost The New Year" »
Thursday, December 28. 2017
In 2017, there were a number of new changes in EDGAR compliance and new developments in SEC regulations. These have a significant impact on financial record-keeping, financial reporting and capital formation. As we head into 2018, let’s recap some of the most significant changes that happened last year.
Continue reading "2017: The Year in EDGAR" »
Friday, December 22. 2017
Maybe you can stripe candy canes too, given it’s the season. However, this blog post is talking about striping tables! We had another feature request for GoFiler last week that we thought would make a good blog post. This request concerned developing a way for GoFiler to start striping the table after the first dollar sign in the table instead of at the normal body position that GoFiler detects. There are two ways we could do this: we could spend a lot of time modifying a core function of GoFiler, the Polish Table function, or we could make a Legato script that fires on post-process and re-does the striping of the table. The latter is preferable because it doesn’t affect other uses who perhaps don’t want or need this feature. Anyone who does can simply add this script to the extensions folder and that user can get the benefits of a new features.
Continue reading "LDC #64: Stripe tables, not candy canes!" »
Friday, December 15. 2017
Here at Novaworks, we often get requests for features to add to GoFiler. Our topic this week is a client request that I think is another good example of how to use Legato to do some HTML parsing and modification. The original request was to have a way to detect paragraphs within table cells with underlines (border-bottom property) or underline tags in them. It would be great to remove the underlines from the paragraphs and put them on the table cell with the paragraphs instead. This script will work with two selection modes in an HTML file: you can either drag-select the table cells on which you want to run it, or you can click in a cell and run the script without selecting anything. Our script takes the start of your selection and finds the previous table cell. Then, working from that point until the end of the current cell or your selection, it locates any paragraphs with underlines or underline tags. If it finds them, it removes them and puts them in the table cell instead.Continue reading "LDC #63: Promoting Underlines To Table Cells" »
Monday, December 11. 2017
On December 11, 2017, EDGAR Release 17.4 was released by the Securities and Exchange Commission. This release introduces a change to allow (but not require) Asset Backed Securities filers to jointly submit Form 10-D and Form ABS-EE filings in a combined, single submission (a “Combined 10-D/ABS-EE”). New form types N-LIQUID and CERT were also added to EDGAR, among other changes.Continue reading "SEC Releases EDGAR 17.4" »
Friday, December 08. 2017
If you have ever wanted to download a bunch of HTML files from a website, you either need to do it manually (yuck!) or find some browser extension to help you along. Today we can offer a third option: using Legato. Since Legato can parse HTML files, you can quickly make a script that reads a website and decides what links to follow and which ones to ignore. Many browser extensions only let you filter by type of file, but with Legato the sky is the limit.Continue reading "LDC #62: Too Many Links and Not Enough Time" »
Monday, December 04. 2017
The CFA’s Investor Forum 2017, developed by XBRL US and held in sponsorship with CFA Institute and CFA Society New York, recently explored numerous issues applicable to the use of XBRL in the financial data analysis and reporting industries. During the conference, Michelle Savage, Vice President of Communication for XBRL US, and Scott Theis, CEO of Novaworks, LLC and Chairman of XBRL US’s Domain Steering Committee, discussed an earnings release case study that discussed how building an XBRL taxonomy to represent the data held within the release could be beneficial to the financial and investment communities.Continue reading "CFA Investor Forum Explores an Earnings Release..." »
Friday, December 01. 2017
Today we’re going to talk about logs. Legato provides a number of input and output (I/O) methods. The choice and style of I/O can vary as much as programmers and users. Logs are a convenient method of keeping and relaying data without establishing a complex data formatting regiment. They are useful for reporting information to a user (such as the number of instances a search and replace operation changed the text, for example, or whether or not there were errors in an procedure). They are also employed by many high-level application functions, such as a validation function indicating a list of possible notices, warnings, and errors.Continue reading "LDC #61: Logging: Leaving Your Mark" »
Friday, November 24. 2017
Sometimes HTML code can be hard to read. While this isn’t an issue for editors and viewers that work with the rendered results, it can be a problem when advanced editing needs to happen. For example, a client sent over an HTML file that looks nice in the browser but it contains coding errors. When you go into the code to fix the errors, it’s hard to make the necessary changes because of problems like poor spacing.
Continue reading "LDC #60: Messy Code? No problem!" »
Friday, November 17. 2017
Programming can contain many layers of abstraction. A useful layer is to change manner in which the computer actually sees your program. Language ‘directives’ do just that. In this article we will explore three of the commonly used program directives and discuss how they can be used with Legato.Continue reading "LDC #59: The Program Before the Program" »
Wednesday, November 15. 2017
At CFA’s Investor Forum 2017, a panel of industry experts discussed case studies that illustrate XBRL’s use in accounting and financial reporting and the rationale behind its adoption. This panel discussed different ways in which XBRL is employed in the financial sector.Continue reading "CFA Investor Forum Discusses Who's Using XBRL..." »
Friday, November 03. 2017
When using GoFiler to do filings that have series and classes in them, using the library function is a lot faster than manually adding each series and each class one at a time. The GoFiler series/class library also has the ability to look up a single CIK at a time and download the series and class information associated with it from the SEC. But what if you have a large list of CIKs, and want to add all of them to the series and classes library at once? Well, using Legato, we can run a lookup on each CIK in the input list and, with the response, build a library file which we can then import into GoFiler.
Continue reading "LDC #58: Bulk Importing CIKs into a Series and..." »
Friday, October 27. 2017
Last week, we explored editing SGML properties with Legato. By using some of the Legato SDK functions, we can read the properties of an SGML tag and change those properties to new values. This is pretty simple and straightforward. However, what if we want to do something based on a particular setting? For example, what if we want to employ an “Indent Body of Paragraph” function, where the first line of the paragraph doesn’t move but the subsequent lines are indented? We can’t simply read the indent value and add to it because we cannot guarantee that the same unit of measurement is being used. We need to read the unit, normalize it into a standard unit, add to it, convert it back to the original measurement style, and write it back out. It’s a bit more involved than simply setting properties, but it lets us perform some pretty interesting operations.
Continue reading "LDC #57: More CSS Property Editing With Legato" »
Friday, October 20. 2017
In past blog posts, we’ve used Legato to remove HTML tags or to add new ones. One function we haven’t really explored is looking at a tag and changing its properties. Editing CSS properties with Legato is extremely powerful because it lets us change the document’s appearance in clean, interesting, and intelligent ways. This week’s script is a very basic but very powerful example of this concept.
Continue reading "LDC #56: Editing CSS Properties With Legato" »