The best way to think about Silicon Valley is as one large company
-- Valley of Genius
Found at Stuff The Internet Says On Scalability For August 3rd, 2018
Gaming with Alexa
When getting it to work is the least of your problems
- It works.
- It is maintainable.
- It is reusable.
The developer that creates a data driven implementation that only he or she can understand is not gong to be maintainable by your low skilled, procedural developers. The implementation works, but it can not be considered maintainable and reusable if these activities are limited to one developer.
The development team that picks a language that has a passionate following and generally good library coverage for implementing the initial product release, but it does not have broad acceptance in the development organization. This implementation is not going to have staff readily available for maintenance. So the original staff become its maintainers and these are, very likely, the most expensive developers on your staff.
The development organization that eschews using anything but in-house developed tools and frameworks. No matter how well it is architected, systems designed, used in implementations, and available on-boarding training it is never going to be better than what is available outside. The longer your staff remain, the less employable they become, and so the more anxious they are to leave or, worse, hunker down into survival mode.
When you are creating a product for a one-time use then by all means use whatever it takes to get it working. Remember that these products are gadgets. Even if the gadget is critical to success of some other endeavor -- eg, it specializes in an island's one-time disaster response logistical problems -- it is still a gadget and so expendable. When you are creating an appliance then getting it to work is the least of your problems. Maintaining it and making its parts reusable are central to the development organization's success and repeatability. This requires that you be able to continually staff your organization with the range of developers with costs appropriate to the lifecycle stages of your products.
Slack and "Operation Crossfire aftermath"
I should note that using Slack in this way is not the same as using a messaging platform such as Skype, IRC, etc. In a messaging platform you are talking with an individual within the context of the rest of their life's conversions. Instead, a Slack workspace is being using to gather individuals for a shared purpose. The rest of their life happens outside of the workspace. When the individual is in the workspace they are, for all intents and purposes, the character they are playing. This is reinforce by their communicating via the named channel. I am no long Andrew Gilmartin, but instead I am #Second Lieutenant Anderson.
[1] This is a follow up to Slack for One.
[2] I know next to nothing about who is Lindybeige. I do enjoy his YouTube channel.
Slack for One
Recently, I had the idea that you could use a private Slack site for personal projects and journals. Each channel is a new project or a journal. Slack's chronologically organized messages allow for text, images, (simple) formatting, and the inline inclusion of external content such as from Google Apps. There are many bots for managing each project's actions and reminders, for example. And if you do need to share the project you can. As I thought about this more there seemed no end to how to use Slack as purely a personal information tool rather than a group communications tool. I wonder if anyone has actually used Slack this way?
So, how little data are too few?
Don't use percentages when the data you have are too few. If you have 3 data points then saying "%67 of reviewers gave it 5 stars" is both accurate and misleading. It is better to say "2 out of 3 reviewers give it 5 stars." Doing this assists the reader's intuitive grasp of the usefulness of the rating. When I was following the local school district's quantitative heavy presentations it was obvious when they chose to use percentages and when they chose to use counts in order to give a positive depiction of bad news. Don't cause your reader to doubt your trustworthiness.So, how little data are too few? I would say anything less than 100 data points.
Four at a time
Months later I was reading about primers, as you do, and was inspired by the article on using Krylon ColorMaster ultra flat black primer. I stripped all 27 of the figures again and applied the primer. My results were not so good. I am sure it was my fault. Again, the figures sat on the worktable in limbo. My guilt grew heavier.
This weekend I stripped all 27 figures again. They are, as I write this, sitting in a second round of stripper. Each of my successive primings seems to have actually added tooth to the figure's surface and so has made cleaning them more difficult!
I have learned a few useful lessons form this experience. The small lesson is that the primer I have used for years works and I really don't need to experiment. The big lesson is I can't work on so many figures at once. If I had only worked on 4 figures at a time then by the end of each week I would have 4 painted figures. Within two months all the figures would have been painted and have been on the table killing the Anglo-Saxons.
When the second round of stripper has eaten away at the bond between primer and figure I am going to pack them away. Too much bad karma has enveloped them. I and they need to rest. Instead, I am going to paint some old Warhammer 40K space marines. 4 at a time.
Getting Things Done for Teens
My children are off to college in the Fall and so my mind has been on what will help them succeed. I have always liked GTD and so I read the recent publication of Getting Things Done for Teens. The book does a good job of using a voice that it is not too young and not too formal. The GTD advice is laid out as any other GTD tutorial and is supported with some useful illustrations. I don't mind the two cartoon characters that are used to distinguish the impulsive and the steady centers of the brain. Monkey brain and Owl brain are useful mnemonics, but, perhaps, a little childish.
The book is composed of 3 sections. The 1st section is the GTD framework. The 2nd section is life planning with GTD. The 3rd section is troubleshooting with GTD. The 1st section is required reading. The 3rd section is useful, but its advise could have been rolled into the 1st section. The 2nd section is a mistake. Few American teens are mature enough to use the advise in this section. The 2nd section adds a considerable page count to the book's total. And here is the rub; the book is useful, but at 288 pages it is 200 pages longer than most American teens are willing to read without a clear & present need.
I don't doubt that the authors know their audience. I suspect they would agree that a shorter book is more likely to be read than a longer one. So why included the 2nd section at all? I suspect it has more to do with selling a standard sized product than helping the teens. My advise is to tear the book into front and back parts and then throw away the back part.
Graphviz online
JNDI, Tomcat, and ClassLoaders
public <T> void bind(String name, Class<T> valueClass, T value) throws NamingException {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
try {
Context c = new InitialContext();
Thread.currentThread().setContextClassLoader(valueClass.getClassLoader());
c.bind(name, value);
} finally {
Thread.currentThread().setContextClassLoader(cl);
}
}
public <T> T lookup(String name, Class<T> valueClass) throws NamingException {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
try {
Context c = new InitialContext();
Thread.currentThread().setContextClassLoader(valueClass.getClassLoader());
return (T) c.lookup(name);
} finally {
Thread.currentThread().setContextClassLoader(cl);
}
}
I am passing the valueClass to bind() so that an interface can be used if wanted.
Problems of a modern, digital, open office
Off-shore oil rigs
When I was a kid in the 1970's I was fascinated with off-shore oil rigs. I was living in the UK and there was much news about developing the North Sea oil reservers. I would see short snippets on the TV of rigs on maiden voyages, and exciting photographs in magazines highlighting their intricacies. By today's availability of information these few images were as ephemeral as smoke on the wind. So off-shore rigs had a mystery and a fantasy around them. Earthbound space colonies. Nevertheless, I was, and continue to be, inspired by their engineering and the unmitigated confidence needed to build them.Now, of course, an internet search finds enough information to become an armchair expert in the off-shore oil industry. There are models to build. There is even, it seems, a sub-culture of 3D renders of them and other industrial sites (eg).
Photograph is of Norway's Draugen Oil Platform (src).
Computer assisted support for historical wargames will happen if...
My favorite wargames podcast is Meaples & miniatures. The hosts are all wargaming butterflies, and I mean this kindly, and so there is a good amount of new and old discussed and compared. Their 250th episode is their last of the Summer as they take a break to, well, rest and renew like the rest of the northern hemisphere. For this episode they are answering questions from their audience. I've not finished listening yet, but felt the need to bring a different perspective to one of their answers.
The question was whether or not an assistant computer application would be used in historical wargaming? Apps are appearing more regularly now for boardgames. Some of these boardgames have game mechanics and parts that are very close to those of miniature wargames. Even the forthcoming X Wing 2 is supposed to be app assisted. So, there is a trend in apps and there is a trend in wargames to be more like boardgames (in their initial costs and time commitments). An overlap is inevitable.
The hosts' common answer was one having to do with implementation rather than game play. They discussed how an app is dependent upon a general device, and a large networking and computing infrastructure. The general device being your phone which, for all practical purposes, you own but have little control over its OS or applications suite. The infrastructure being mostly the publisher's backend servers in data centers that run the core of the game programming; which, again, you have no practical control over. The hosts see these dependencies as the achilles heal of apps. They suggest that only large publishers have the money to continue to support a game that has passed its peek sales and so must sustain the game's implementation on smaller, incremental sales. While not said, and I expect that the hosts would agree, that it is optimistic to expect that any publisher would continue to support a game beyond its suitable profitability; ie, if profitability is too small then the company is better of discontinuing the game and use the freed-up resources on higher profit games. So apps are doomed!
Not so. There are implementations that do not require the publisher's continued support. First, some assumptions.
1. A phone or tablet is cheap enough to have a single, specialized use. The device is the game and it is the "rule book." Rule books are around US $15 to $50 these days. The device would be the same. The device will never be upgraded so the apps on it will continue working baring mechanical failure.
2. The device needs access to a messaging network. The messaging network is one where every device has a unique address and that a message can be sent to that address. If players are not colocated then a wide area network would be needed. The Simple Message System (SMS, ie texting) is one such network. There are others, but SMS is by far the most common, well supported, and almost future-proof given the world's telecoms commitment to it.
In many ways, the Kindle with 3G is an archetypal example of this device and network.
With such a device and network you can implement a multiplayer game very successfully. All the algorithms needed, eg peer to peer and modular co-operating services, are battle tested and open. The device's computational and storage requirements are minimal. The networking bandwidth needed is small, eg a few kilobytes, irregularly sent around to all player devices [1]. Embedded systems manufacturers have been designing and massively deploying just this kind of environment for years.
So, if you consider this different implementation of computer assisted support for historical wargames then the answer is yes, just as soon as gaming companies have lead engineers and architects that have a broader view of the devices and their communication. Now the real and important question can be asked, is historical wargames game play enhanced by having this assistant?
See my earlier posting $0.43 for Psychotherapist Barbie services about funding backend servers for toys.
[1] MMOs, massive multiplayer, online games, is a different beast. These systems do need a central or federated infrastructure.
Fourier Transform & Dubstep Drops
Two of my favorite recent finds.
But what is the Fourier Transform? A visual introduction.
12 years training for this role!
So far, my children's senior year of high school has been mostly wasted time. This is especially so as their graduation day comes ever closer. I propose that we alter senior year from one of listening from the back of the classroom to one of teaching from the front. It should be year when the seniors go out into all the lower grades, K through 11, and be teachers's assistants. Who else has a better understanding of how to be useful and successful in schools than do these young adults that have spent 12 years training for this role?
Sleeping dogs
Struggling to load Arabic text into MySql 5.6
- Ensure your database, table, and column use uft8mb4 character set.
create database XXXX character set 'utf8mb4' collate 'utf8mb4_unicode_ci'; create table ( ... ) ... character set 'utf8mb4' collate 'utf8mb4_unicode_ci';
- Ensure that the data file you are loading is UTF-8 encoded.
- Run the mysql client with the binary character set.
mysql ... --default-character-set=binary ...
- Load the data with the binary character set.
loading load data local infile 'XXXX.DAT' into table XXXX character set binary ( ... );
Good Terraform and AWS tutorial
The only trouble I had with the examples was that the initial ones assume that you have IP access via the AWS default security group. That might not be the case and so you will need to use the AWS console to allow your machine's public IP address ingress. To do this, go to the AWS Console, then to the EC2 dashboard, then to the Security Groups resource, and in that dialog select the default security group and add an Inbound rule for your public IP address.
