meh
Tuesday, March 31, 2020
.AddTransient (in C# and .NET Core) while handing in a variable
Per this, you could have:
services.AddTransient(x => new Yin("yang"));
...instead of...
services.AddTransient<Yin>();
And...
services.AddTransient<IYin>(x => new Yin("yang"));
...instead of...
services.AddTransient<IYin, Yin>();
I do not yet know what is going on with IOperationSingletonInstance here. I could not figure it out.
In .NET Core's IoC you may use .AddScoped and .AddSingleton as you might .AddTransient.
Singleton is always the same and transient frequently changing. Scoped is the same per request per this which I take to mean session of web site browsing.
#pragma hack to disable missing code comment alert in C#
#pragma warning disable CS1591
public static void Go()
#pragma warning restore CS1591
In Global.asax.cs in a .NET Framework application, you may hand static methods into GlobalConfiguration.Configure as the single inbound property at the Application_Start method.
The static methods you call elsewhere in code will each take an HttpConfiguration as the single inbound property.
Monday, March 30, 2020
Migrate .wsdl Web.config stuff from a .NET Framework project to a .NET Core project's appsettings.json file.
This has a pretty good example. You basically make one big JSON blob.
Program does not contain a static 'Main' method suitable for an entry point
Take <OutputType>Exe</OutputType> out of the PropertyGroup tag in .csproj to make this error go away. The problem is that you made a console app when you meant to make a class library.
SSL certificate problem: unable to get local issuer certificate
Clone from git while ignoring SSL restraints to get around this hangup!
git -c http.sslVerify=false clone https://example.com/path/to/git
Migrate packages.config to the PackageReference format in migrating a project from .NET Framework to .NET Core.
This is the fourth of four preparatory steps listed here, with the first three being:
- Upgrade to version 4.7.2 of the Framework.
- Use the .NET Portability Analyzer.
- Use the .NET API Analyzer to find out where the errors what will throw an PlatformNotSupportedException are.
After these steps one actually ports the code. Per this (part way down), right-click on the References in a Visual Studio Framework project and pick "Migrate packages.config to PackageReference..." to make the magic happen. The little wizard you walk through makes a distinction between direct "Top-level" dependencies and lower, so to speak, "Transitive" dependencies.
Addendum 3/31/2020: It is probably best to right-click on packages.config instead of References.
Friday, March 27, 2020
.NET Portability Analyzer
This judges how well a port from .NET Framework to .NET Core might go. It is a .vsix plug-in. To make the plug-in go, right-click on a .NET Framework project in Visual Studio 2019 and pick "Analyze Project Portability" from the options.
Capterra DocManager
It is an add-in for VBA (Visual Basic for Applications) and it automates the document management process in Excel and that ilk.
GitExtensions
It is a UI Tool for managing git repositories. OpenSSH (the shell to work with OpenBSD) and PuTTY (name means nothing) are clients for Git Extensions. Atlassian Sourcetree is a similar tool.
Deal with AssemblyInfo.cs duplicate attributes when porting a C# class library from .NET Framework to .NET Core.
\obj\Debug\netcoreapp3.1\MyApp.AssemblyInfo.cs may be cranky complaining of dupes for AssemblyCompanyAttribute, AssemblyConfigurationAttribute, AssemblyFileVersionAttribute, AssemblyProductAttribute, AssemblyTitleAttribute, and AssemblyVersionAttribute. This suggests changing the .csproj file for the project having a blob like so...
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
Change it up like so:
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyConfigurationAttribute>false
</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyFileVersionAttribute>false
</GenerateAssemblyFileVersionAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
</PropertyGroup>
Addendum 3/30/2020: \obj\Debug\netcoreapp3.1\MyApp.AssemblyInfo.cs may be cranky complaining of dupes for AssemblyCompanyAttribute, AssemblyConfigurationAttribute, AssemblyFileVersionAttribute, AssemblyProductAttribute, AssemblyTitleAttribute, and AssemblyVersionAttribute. above should read \obj\Debug\netcoreapp3.1\MyApp.AssemblyInfo.cs may be cranky complaining of dupes for AssemblyCompany, AssemblyConfiguration, AssemblyFileVersion, AssemblyProduct, AssemblyTitle, and AssemblyVersion.
The type name 'ConfigurationSection' could not be found in the namespace 'System.Configuration'. This type has been forwarded to assembly 'System.Configuration.ConfigurationManager, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' Consider adding a reference to that assembly.
Go to NuGet and find: System.Configuration.ConfigurationManager (ran into this trying to port a .NET Framework project to .NET Core) It is the same thing with System.ServiceModel.Primitives (gets around missing ICommunicationObject and CommunicationException in .NET Core) and System.Runtime.Caching
At a glance it seems pretty easy to reference the .dll for a .NET Framework creation in a .NET Core project.
I do not yet know what some of the deeper heartaches will be. Also, a little bird tells me the .NET Core name is to go away making room for .NET 5 instead.
Thursday, March 26, 2020
BAM stands for Backlog Assessment Method
It is an SPI (software process improvements) and it accesses the state of backlog items and if they are worth tackling.
At risk of repeating myself, make using declaration assignments like so in C#.
using ODataPath = Microsoft.AspNet.OData.Routing.ODataPath;
multipart/related versus multipart/form-data
form-data uploads simple MIME files while multipart/related is for more complicated stuff such as several associated images and some metadata notes on what is what or their ordering perhaps.
VDI is Citrix virtual desktop infrastructure.
Each virtual machine (VM) lives on a centralized server.
signature cards
When you create an account at a bank you complete a signature card so that the bank may compare your signature to your signature at future transactions.
cref means code reference
A comment in C# like this...
// <see cref="Foo" />
...allows Foo to be clickable through to the place in code where Foo lives (assuming you have Visual Studio 2019).
Authorizing as your Active Directory self when using Crunchbase Postman.
At the tabs which read Params, Authorization, Headers, Body, Pre-request Script, and Tests, go to Authorization and change the "Type" dropdown to "NTLM Authentication [Beta]" to get this afloat. You will have to enter your credentials once. You will have to change the dropdown all the time.
The "immutability" of documents put to IBM FileNet.
When documents are put into FileNet their permissions, as set at that moment, may never change. There is an independent metadata class with differing permissions for each file and these classes, these "POCO" objects if you will, may have permissions updated, but not the IBM FileNet documents themselves. To redo the permissions on a FileNet document, destroy and reupload the document anew. Some files may be nested under other files and a queried file will drag along all of its children unless a child is permissions-forbidden and in those scenarios it appears as if the parent just does not have the child without any warning whatsoever. If you use Word docs instead of PDF files you can have macros updating things like dates on the page and that means that Word docs are not so wonderful for these sorts of undertakings. (remediate that!) A sample PDF to use in testing is:
%PDF-1.5 %âãÏÓ
228 0 obj <</Linearized 1/L 273205/O 230/E 264876/N 1/T 272865/H [ 582
215]>> endobj
This simple PDF cannot be reopened. It is just a dummy "use me" document for testing.
Wednesday, March 25, 2020
Missing the "Team" menu in Visual Studio 2019?
Open the "Team Explorer" window pane and add a server.
No destination specified for Copy. Please supply either "DestinationFiles" or "DestinationFolder".
I beat this error by restarting Visual Studio 2019. It is some sort of TFS error.
The on/off settings for SSL Enabled and Windows Authentication at a Visual Studio 2019 project are found in the properties pane and not the stuff you get when you right-click on a project and pick "Properties" alternatively.
F4 should open that pane. Once the "SSL Enabled" stuff is afloat, it should offer you, on the next two lines, two different ports to use for with and without SSL. In Postman, click on the wrench at the upper right and then click "Settings" to turn on and off "SSL certificate verification" when attempting to hit the SSL endpoint.
SQL-92 is the third version of SQL after SQL-86 and SQL-89.
SQL-89 was some nibble around the edges improvements to SQL-86 while SQL-92 was a heavy overhaul.
SearchSQL in C#
SearchSQL sqlObject = new SearchSQL("SELECT DocumentTitle, Id FROM Document
WHERE Creator = 'jsmith'");
Along these lines there is also:
SearchScope objStores = new SearchScope(osArray, MergeMode.INTERSECTION);
I do not yet understand too much of this.
Query IBM FileNet from the URL line!
- https://example.com/odata/v1/Area('Consumer Login')/content?filter=DocumentTitle eq 'TEST'&$top=100
- https://example.com/odata/v2/Repository('FILENET')/Area('Consumer Login')/content?filter=DocumentTitle eq 'TEST'&$top=100
Better testing in Visual Studio 2019 Enterprise than Visual Studio 2019 Professional?
Yes! Per this, it comes with Live Unit Testing, IntelliTest, Microsoft Fakes (Unit Test Isolation), and Code Coverage! Live Unit Testing is running impacted unit tests in the background! Microsoft Fakes replaces gunk with stubs of shims, and shims modify compiled code at compilation time. Code Coverage will tell you what percentage of the code is covered by tests.
KYC stands for Know Your Customer!
This the conversation with an individual opening a new back account? How often will you deposit? Cash or checks?
Tuesday, March 24, 2020
Apigee Edge, now a part of Google Cloud, is used for making a reverse proxy.
Go get data from one of more servers, etc.
ACCE is Administration Console for Content Platform Engine!
It is the formal frontend for IBM FileNet.
IBM Case Manager!
I hear it is awful. IBM Forms, which is the IBM web forms, tied into it some I hear. IBM Case Manager supposedly makes easy making a case management system.
The .NET Framework has an ODataController type in MVC 5 that inheirts from ApiController.
It does OData stuff! It it looped in with:
using Microsoft.AspNet.OData;
Softerra offers the IAM (Identity and Access Management) solutions of Adaxes and LDAP Administrator.
These are tools for working with Active Directory and LDAP respectively.
Monday, March 23, 2020
ITSM
It is service management for IT and by IT I mean information technology. It is something to manage, a tool to manage, the various lifecycle complexities of IT.
Gramm-Leach-Bliley Act (GLBA) explains how banks share/protect information.
Right to Financial Privacy Act (RFPA) explains how banks share/protect information with the U.S. government.
Defendpoint
This is something that sidesteps the need in Windowsland to right-click on something and run it "as Administrator" to give it a beefier physique.
Addendum 3/24/2020: This is made by Avecto which turned into BeyondTrust.
Addendum 3/25/2020: Right-click on an executable and pick "Run with Defendpoint" from the little menu that appears in Windows 10 to make this stuff do its thing.
Addendum 4/7/2020: Sometimes when you run IIS via Visual Studio run with Defendpoint it behaves better.
Entrust IdentityGuard Soft Token with Pulse Secure
...is another way to do the work from home thing.
Unhide the search bar at Windows 10.
Right-click in the taskbar and pick "Show search box" under "Cortana" to make it happen.
Sunday, March 22, 2020
Saturday, March 21, 2020
An OpenIddict Authorization server and https://developers.facebook.com/ are things that power OAuthesque remote login for single sign on.
"Advanced Topics" which is the second to last chapter of "ASP.NET Core 2 and Angular 5" by Valerio De Sanctis mentions these.
RFC can mean Request for Comments.
RFI is Request for Information and RFP is Request for Proposal and, I guess, RFQ is Request for Quotation. RFC is Request for Comments along those lines and the Internet Engineering Task Force (or IETF) has a standard for as much. This came up in the second to last chapter of "ASP.NET Core 2 and Angular 5" by Valerio De Sanctis.
Friday, March 20, 2020
Airplane mode
This means your device will not send and receive signals. It is not just "off WiFi" but it is instead completely disconnected, not sending out or looking up whatsoever.
Wednesday, March 18, 2020
Musical.ly got merged into TikTok once ByteDance owned both things.
I get the impression that Musical.ly was the bigger half.
Get at the control panel in Windows XP.
There is probably a link directly under the main menu that materializes from the start button at the lower left.
Tuesday, March 17, 2020
the Google Hangout game
- https://accounts.google.com/SignUp will let you make a Google account
- https://hangouts.google.com/ will let you make a hangout
- click the + at the upperright to add someone by gmail address
pseudoSXSW
I am between jobs (hopefully) and I was going to indulge a vacation I had planned. Before I ever drove out of Minnesota, I knew that SXSW had been cancelled due to COVID-19 and thus my chance to again see Kælan Mikla in America where they seem not to return to since becoming my favorite band was dashed, but my mother and sister and a friend of mine live in Austin, Texas so I went to Austin, Texas on vacation nonetheless. The entire time I was there things tightened up more and more. I attempted to go to four tech talks when in Rome, but only half of them panned out, specifically this one and this one. ADNUG became a webinar and another talk on Amazon SageMaker, an AWS cloud-based machine learning platform, was just outright cancelled. I ran into Sogeti cellmate Matt Hinze at an HEB (a grocery store named for a Howard E. Butt Sr. wherein the E stands for Edward) and made safe pleasantries with him. I arrived early and just stayed at my mother's house and then left before the Hampton hotel room reservation kicked in. I got the pleasant surprise of the Hampton agreeing to refund my nonrefundable room reservation given the extreme circumstances. Supposedly I am going to get my money back at some point this week just as I am supposedly going to start a new job on the 23rd of this month. We shall see, eh? In wandering around the convention center where I could have otherwise picked up my badge for SXSW, I took the photo here which now seems comic. The convention center was a ghost town. The mail from SXSW so far is baiting me to roll my reservation forward to the next year or maybe two years ahead, etc. I did not take my laptop with me to Austin and back and I am just now typing up some notes I took. Things I made dirty scribbles to remember for this blog include Figma, a collaborative design tool, and befunky.com, an online Photoshop of sorts. zebra.com is a performance monitoring tool. If you zoom in on your iPhone to take a picture, when you try to get that photo onto your PC and open it in Photoshop, Photoshop may squawk in denial at the image per my mother. Science fiction author Arthur C. Clarke's three laws are:
- When a distinguished but elderly scientist states that something is possible, he is almost certainly right. When he states that something is impossible, he is very probably wrong.
- The only way of discovering the limits of the possible is to venture a little way past them into the impossible.
- Any sufficiently advanced technology is indistinguishable from magic.
The third of the three is mentioned in this (Did you know there was a She-Ra reboot? I only know because I ate at Sonic on this trip. Sonic has the toys.), and it sounded a lot to me like Frank Pasquale's prediction that our own technology will become what might as well be magic. On my iPhone X, running 12.4.1 for the software version, when I go to unlock my phone there is a flashlight icon at the lower left. If you press it, it does nothing until you unlock your phone and then the flashlight comes on. I do not yet know of the right way to turn the flashlight back off, but if you just power your phone down and then back up that kills the flashlight. Emily Weiss is the founder/CEO (chief executive officer as opposed to COO or chief operations officer, CTO or chief technology officer, or CFO chief financial officer) of Glossier which does cosmetics. Mozy was bought out by Carbonite. KOA is the Kampground of America with the campground part spelled with a K. "Linux on IBM Z" might be the name that came to be for IBM's Linux. My mother mentioned that before she got the axe in 2002 that this was the thing that she was working on closest to the end of her 33 years at big blue. Z stands for zero downtime. My mother couldn't tell me what the name ended up being for the thing she got cut from so I am guessing a bit here. PoF stands for Plenty of Fish, a dating app. Enneagram is something like Myers–Briggs. There are nine different personality categories in a wheel and you are constantly moving from one to another in life although some go faster than I others I bet. DHL is named for Adrian Dalsey, Larry Hillblom, and Robert Lynn and is a logistics/shipping company out of Germany. It is a GmbH which stands for Gesellschaft mit beschränkter Haftung translating to "company with limited liability" per Wikipedia and being in form like an American LLC (limited liability company) or the British "Ltd." for just limited, I guess. DMCA stands for Digital Millennium Copyright Act and it allows some leniency for access to copyrighted works by forbidding some blockades. The .NET Foundation supports the building of open source software in .NET. OpenCart is an open source shopping cart of some sort. AutoML stands for automatic machine learning and has some helpful gunk for picking models for machine learning. Bolt On Technology is some tech for auto shops. Smartsheet is some better way to do spreadsheets.
Monday, March 16, 2020
On Friday the 13th I saw Jim Brisson lead a discussion on Lean.
The event was at Inventive in Austin, Texas and this was a SIG as a part of Agile Austin that happened over the lunch hour. More specifically, this was a Lean Coffee meeting which is an informal meeting with a flexible agenda in which the participants vote up what they want to talk about. Jim Brisson is the Agile coach at Dell, but he did not define the agenda. We the crowd did that. Lean is different from Agility. One is either Lean or Agile and one does Kanban with Lean or Scrum with Agile. I have long been appalled with the ScrumBut of Scrumban in which a team estimates points not to show a burn down chart and a hey-we-cannot-get-everything-in-guys mindset but instead to just try to fill a sprint with gunk to do short term. It was pointed out to me in this session that maybe this isn't so bad. This came up under the guise of the question "How do we talk a business into Lean?" and the pain point seemed to be that so many characters in the sea, project managers and the like, rely on time. The counterargument that Scrum isn't better because the estimates for size (time) are always flawed may be a reality that is often lost on such persons, so why not just do pseudoscrum for them? Maybe it is not the end of the world. The argument to be made, if you want to argue for Kanban, is to argue for continuous improvement. WIP stands for work in progress and work in progress limits differ from lead time (a.k.a. cycle time) which is a measure of how much raw time it took for any one card (we kept calling them Chiclets) to progress from left to right on the Kanban board. WIP limits represent how many balls you can juggle, i.e. how many cards may be on the Kanban board at one time. The WIP limit should be less than the number of developers and that should give you some wiggle room to adjust for surprises. In waterfall one has huge batches which arguably become sprints in the miniwaterfalls of Agile. In Lean throughput is the measurement of velocity. Little's Law, named for a John Little, defines WIP as throughput multiplied by lead time. VSM (value stream mapping) defines the hops on a Kanban board that a card must go through. The VSM process is really for the business people to see to get them involved. Anytime you apply words to you actions ("Lean") those listening tend to focus on the word and not the action so the visual of the board would help therein. It gets people out of working in knowledge silos on, well, development in silos. When you "expedite" in Lean it breaks all WIP limit boundaries. You should not expedite more than one thing at a time and you should use expedite to fight fires. An MVP (minimal viable product) is for seeing if an idea is good (think prototype) more than making an actual product. In a J Curve productivity goes down at first before it eventually swings back up. You dive into a J Curve in doing something new and if you are to dive into J Curve after J Curve the curves need to be spaced far enough apart for you to be up on the chart past the starting point before dipping down anew in a new curve.
I saw Max Ekesi speak on what he feels makes for good Agile as a part of the Agile Austin Featured Speaker Series on the tenth of March.
Maximilian Ekesi is pictured here with Kassandra K. Cardenas, the current chief product officer for Agile Austin of which the Agile Austin Featured Speaker Series is an offering. The event was hosted at Kasasa in Austin, Texas and Kasasa does some sort of banking-based tech. Max wants you to cook up an Agile process that is customized to your team, and, to that end, he walked us through what he described as his twenty year history, though it looked like nineteen years to me, and spoke to its pain points. He started at Dell in 2001 (did you know that dell.com was the first shopping cart site to do a million dollars of business in one day?) and then moved on to GM (General Motors) and finally landed at Whole Foods which is now owned by Amazon. He admitted that while he was at Dell and GM that he felt most energized about Agile when he would visit an Agile Austin talk and compare notes with other individuals excited about Agile. The problem as it turned out with both Dell and GM was the businesses themselves and he offered the Peter Drucker (a consultant) quote: "Culture eats strategy for breakfast." At either Dell or GM, I'm not sure which, Max was told to increase productivity by ten percent and he vented about the obsession over metrics which can always be skewed suit-to-purpose. I think he pushed back in that circumstance that he would first have to measure what was to find a baseline. "DRiVE" by Daniel H. Pink was put up on a pedestal as a pretty good book by Max and he argued that autonomy, mastery, and purpose are desired by knowledge workers per that book. Max feels that co-location is important and that a team should not be half split between say America and India. He also feels it is best to interact with the business owners and did not speak kindly of Michael Dell and his posse walling themselves off from development in their own little building in Round Rock where average Joe worker bee isn't allowed to go. At Whole Foods, the dev and the business sit on two adjacent floors of the same building! Max felt that teams should be end-to-end teams and not, for example, a few devs who have to argue for the testing team to allot them a resource for a spell. Instead, a team will just have devs, a tester, a project manager, and support and development DevOps characters rolled up into it. The teams are thought of as two pizza teams in that you may feed the teams with two pizzas and these two pizza teams are given autonomy to conduct their own affairs. One of the ways there is a break with autonomy however is that all teams have to follow a common cadence and there is a somewhat centralized roadmap. I suppose sprints fill a PI (program increment) and eventually it was decided that quarters of the year made for the best PI shapes. There are organizational meetings across all teams to announce intentions for a PI per team. Whole Foods is kind of chilled out, but presenters in the meetings I just mentioned have incentive to deliver as they presented and there are also financial rewards for teams that deliver. A few random things: Jeff Lomax was an attendee for this event and in spotting him I was able to put a last name with the name "Jeff" as suggested here. LeSS, with just the e in lowercase, stands for Large-Scale Scrum and is a framework for scaling Scrum up, big time. Max Ekesi is pictured here showing off a list of little splinters for different canned ways to approach Agile:
"Range: Why Generalists Triumph in a Specialized World" by David Epstein seems to be the book the Agile Austin book club is chewing through. Max stressed that there is not enough disruption in Austin, not like the wild madness of California tech. Chimp is an internal chat app that Amazon peddles to its own and Amazon also made its own cameras for its check-yourself-out stores.
Friday, March 6, 2020
IBM ACE
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.
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.
Monday, March 2, 2020
Conklin
It was a job that didn't work out. I was contracting on behalf of Robert Half and about half of the characters I interacted with were other Halflings. The company had a something like a pyramid scheme baked out for resellers nested beneath resellers and they had worked for three years building out an application around as much that they could never seem to take live. Embarrassing! I have the following pictures from my time there.
12/30/2019 Tom Clements
1/2/2020 James Hockett
1/3/2020 Dave Nelson (left) and Jacob Scharff (right)
1/7/2020 Jacob Scharff
1/8/2020 Dave Nelson (left) and Dan Hagberg (right)
1/10/2020 Amy Balser
1/13/2020 Amy Balser
1/21/2020 Tom Clements (left), Alex Lawler (center), and Jacob Scharff (right)
1/28/2020 Justin Larkin (outside), James Hockett (left), Tom Clements (center), and Dan Hagberg (right)
2/6/2020 James Hockett (left) and Mike Sidler (right)