RSS Amplifier

Blog

Ignorance may be Strength

ignorancemaybestrength.blogspot.comSource feed ↗10 posts

Live Last read · last published · next check

Written by

Latest posts

Time to Start Generating the iXBRLs

Given that we now have something that works, it's time to start trying to generate "that" (or something like that) from the actual accounts data that we've downloaded and calculated from Google Sheets. I am obviously going to do this by using an iXBRL abstraction and then use that to generate the iXBRL (as XML) from the data using an appropriate class. I'll need two such classes: one for the…

Now Let's Figure out the iXBRL

So now we have two accounts documents: one reliably succeeds; the other reliably fails. So, what (apart from the obvious) is the difference between them? One of the things that I like about having two files, one of which works, is that you can keep modifying the file that works until it stops working. And that tells you exactly what the problem is. It's much more reliable than having something…

Figuring out the Errors

I'm at the point where I just can't take the errors any longer, and I need to understand once and for all what is going on. It occurs to me that I could simplify things and go back to the set of micro-accounts that I generated on microaccounts.uk and not submit any computations. Then we can see whether that works more consistently. func Submit(conf *config.Config) error { utr := conf.Utr if utr ==…

Refactoring to etree

Having included the etree package in order to use its canonicalization function, it makes sense to replace all of our hokey XML handling with etree.Element . This is the smallest refactoring I can do, keeping the same basic structure of functions in xml.go but changing the return types. These types then propagate through the rest of the code, along with any necessary modifications. package govtalk…

Submitting Real Accounts and Computations

So now, I have some fake accounts I generated from microaccounts.uk , and I have some real accounts, computations and a tax return that I submitted last year, which all appears to be ixbrl. I can therefore break this up into pieces and include the relevant portions in the relevant spots in the submission, right? Breaking it up was easy enough. I now have two files called accounts-section.xml and…

Exclusive vs Inclusive Canonicalization

For once, the SDST at HMRC weren't immediately able to help me. A couple of weeks have gone by, and their only comment was that the second document I had found contained tax computations not accounts - hence why it was rejected. I tried submitting it in the computations field but it was no different. So, ultimately I gave up and submitted my accounts by hand. This is the final year for which this…

Coupling up Neptune

I claim that all the "hardcore" code we need has now been written; all we need to do is couple the two halves together. Flicking back to what we did with Neptune, we have functions ConnectEndpoint and DisconnectEndpoint . To use these, we need a db endpoint address, a user id and a connection id. We don't have the db endpoint in our new lambdas, but we can easily provide that (through hardcoding…

Publishing New Stock Prices

The next step in the process is to enable the sending of updates from the cloud to our webapp. This is essentially very simple, but as with everything else, we need to put in significant effort to wire it up. But there is a very cheap way of sending an update to the browser, which is to use the apigatewaymanagementapi subcommand of the aws command line tool. This is always a little weird to me…

Accessing Services from a VPC Lambda

We reached the point where I claim that we have all the code we need in order to have our stock watcher update from the lambda. But nothing is working because there is no connectivity between the lambda and the API Gateway (in that direction; there is connectivity between the Gateway and the lambda which enables it to be invoked). There are a number of solutions to this problem: There are some…

Delivering Prices from a Lambda

Step two is to assemble all the infrastructure in the cloud to deliver prices. For now, we are just going to deliver one price, statically, on connection, but, believe me, it's the principle of the thing that counts. Websocket Quote Listener The first thing we're going to do here is to add a JavaScript listener. Basically, we're going to copy the outline of the code we wrote for the mock listener,…