It stands for IBM App Connect Enterprise and it used to be IIB or IBM Integration Bus. It's part of the WebSphere product family I guess. It's going to be the NServiceBus of the IBM suite of reality.
Friday, March 6, 2020
I saw Mike Benkovich speak on YAML pipelines in Azure DevOps at the Twin Cities .NET User Group last night.
From left to right in the photo here are Mike Benkovich followed by the three heads-of-state of the Twin Cities .NET User Group, Elsa Vezino, Jason "J" Erdahl, and William Austin. William told the crowd that he had learned that you could use Cosmos DB for free up to a certain point and Mike clarified that the cutoff was at 400 RUs (request units) of throughput. Consistent with the one other time I saw Mike speak, there seemed to be an upfront understanding that the audience was savvy with the ins and outs of Azure and he was covering territory really faster than I could follow along. What this talk boiled down to at its heart was the notion that a "Classic Pipeline" comprised of tasks is the old way of doing things and the future will be comprised of pipelines made up of YAML markup. You may still pick out tasks as you have and cast them into YAML markup. I got to see the YAML for the first time this evening. It kind of nests things under other things (headers I suppose) with indentation and the indented will sometimes have a leading hyphen. I do not pretend to understand it comprehensively. There are a few patterns to be had with the YAML rolling. "Containers" has to do with publishing to containers. "DocFX" entails using DocFX (FX for effects) to generate HTML documentation for a wiki from other markdown. "App Inflation" allows for inflating a team's permissions so that they may just publish to a file folder somewhere. "Golden Image Builder" is the fourth of the four which Mike did not get around to explaining to us. Once you take a "Classic Pipeline" into YAML, you never go back. It seems pipelines as code (PaC) is the future. There are all sorts of marketplace third party helpers such as Replace Tokens to make your magic more magical. Replace Tokens will replace otherwise not dynamic drab "markup" enclosed in hashtags at build and drop elsewhere time with whatever you want to match against what is enclosed. Mike spun up an IaC (infrastructure as code) project in Visual Studio and did some things with it before he really got around to the YAML part of the talk and herein I found what he was trying to convey the most murky. He was showing us the ARM stuff he showed us in the other talk I saw him give and he was breezing through its knobs and dials like it was nothing. When you deploy to a "Resource Group" it will make three files which are the app insights object, the website itself, and the plan. I do not know exactly what the app insights object and plan are. I asked in the talk and then couldn't understand. Ha ha. Did you know that @System.Environment.OSVersion in Razor will spit out your operating system version?
Thursday, March 5, 2020
Entity Adapter Pattern
Instead of just having a collection, one is given a collection with dictionaryesque qualities and a free reducer (think NgRx) for finding common things. This is a Google corp. creation.
It's almost time to restart
We couldn't restart to update your device at the scheduled time. It may have been off, had a low batter, or been in use. Restart now to stay up to date.
This suggests you need an update to Windows 10 when this pop up starts appearing and it points you at this, but not before mentioning that you may type winver at the start bar to be told what version of Windows you are running right now. I had Version 1809.
Addendum 3/6/2020: If you type "windows update settings" at the Windows 10 startbar and press enter you will get the Settings dialog box. Herein you may click "Advanced options" and perhaps turn off some of this noise.
Wednesday, March 4, 2020
GraphQL MN tonight featured a tracing-for-lag exposition.
Jason Coleman is pictured in the center of the picture here. He works at CaringBridge and he gave a talk that offered an exposition on what CaringBridge is, and, in short, it is a builder app for persons having tough medical experiences wherein they may blog of what they are going through and share it on with others. The network has a base of thirty million users. At Jason's left towards the right of the photo is Christopher Bartling who is the head-of-state of this group and who recommended the book "Production Ready GraphQL" by Marc-André Giroux. Mark Soule is pictured at Jason's right towards the left side of the photo. He works at a consultancy called the Nerdery (which hosted this talk) and they have had him deployed to CaringBridge for about a year now to work with/for Jason. He actually worked on a lag issue and showed off some deeper tooling to that end. In the photo here all three men are struggling to deal with the projector not projecting before the talks got rolling. Ping Identity and Amazon Cognito are ways to come up with tokens for user identities like Auth0. EKS is the Elastic Kubernetes Services for Amazon. Shopify has an example of some public-facing source code that has GraphQL magic in it. Zipkin and Jaeger are ways to have "open tracing" and thus to audit what is going on in a GraphQL orchestration to see where a pain point lies. This is better than just logging stuff to Splunk and trying to make sense of the time stamps. You are setting yourself up for a lot of work in the later approach. The opentracing way to go logs step by step at various steps in a chain of events to allow you to find the lag. There is an OpenTelemetry community around this stuff. JMeter is a Java-based load testing tool. autocannon is a rival that recommended in this space. In Google Chrome Developer Tools when you go to the "Performance" tab and record with the circular button at the upper left that says "Record" (when you mouse over it) and then stop recording you will see tabs for Summary, Bottom-Up, Call Tree, and Event Log. Bottom-Up shows which activities took the most time to aggregate and Call Tree shows which activities took the most time standalone. Apollo Federation is the new way to do stitching and stitching is the old way to aggregate. There are new keywords and terms with Apollo Federation. graphql-middleware allows queries to other things that already were to pass through GraphQL. Mark's Solution for improving performance ultimately was of more caching and more scaling (horizontal scaling with more instances). When he put his finger on the problem he found that the problem was not so much of the CaringBridge code but of the supporting actors, apollo-server-core and GraphQL itself. prettyJSONstringify is pretty heavy and there is no optional flag for turning it off at the time of this writing. There is just a lack of maturity in this space lending itself to some pain. Clinic.js is a neat diagnostics tool for this stuff. It has three modes: Doctor, Bubbleprof, and Flame. Bubbleprof draws circles to represent servers where time lag occurs and Doctor and Flame offer more traditional timeline layouts that are easier to understand. Flame reddens to accentuate the "burning" problems in its charting. It shows what is choking the event loop in Node and could be its own separate process, like prettyJSONstringify.
OIM is Oracle Identity Manager.
Tuesday, March 3, 2020
notes from recent job hunting adventures
- Zephyr has a suite of test management tools.
- FizzBuzz or fizz buzz is a very simple programing challenge.
- MobX is state management stuff for the React space.
- Libor (London Inter-bank Offered Rate) is an interbanking rates standard that has died.
- xPression is some real-time motion graphics hacky tool for overlaying text over people in news feeds.
- SRE stands for site reliability engineer.
- DevExtreme is the name of the DevExpress stuff in Angular.
- Tricentis offers Tosca support and maybe fraud.io for automated testing.