Introduction If, like me, you regularly read programming blogs (and you do, otherwise you wouldn't be seeing these words), then you are well aware that our industry is currently deep in the throes of a drastic change and more than half of all those blog articles are currently involved in …
I wrote previously about unreasonable contracts, particularly about the click-through confidentiality agreement from EquityZen which requires that those agree to it promise not to reveal the existence or the contents of the agreement itself. The last time I wrote about this was over 3 years ago, which means that my …
On Wednesday (June 19) the book club met to discuss "I Have Some Questions for You" by Rebecca Makkai. Unusually (for us), opinions on the book were quite unanimous: we liked the book. A few things stood out. One was the themes: the book touched on bullying and sexually abusive …
This Tuesday we have a primary election coming up here in Pennsylvania. I've reviewed the candidates on the ballot in my locale and here are my thoughts on those candidates, along with the sources I used to come to these conclusions. President of the United States Joseph R. Binden Jr …
This Tuesday we have an election coming up here in Pennsylvania. I've reviewed the candidates on the ballot in my locale and here are my thoughts on those candidates, along with the sources I used to come to these conclusions. Justice of the Supreme Court (vote for 1) Daniel McCaffery …
This Tuesday we have a primary election coming up here in Pennsylvania. I've reviewed the candidates on the Democratic ballot in my locale and here are my thoughts on the candidates, along with the sources I used to come to these conclusions. General Resources Appellate Courts Candidates Forum League of …
Google Sheets is a fine tool for working with spreadsheets, but it doesn't quite manage to have all of the functionality that Excel has. One example is that Excel contains a built-in tool for finding diffs between two workbooks. However, with a little clever programming we can do almost as …
Here is a question I was answering on Reddit recently: Say you have 2 algorithms and you determine both are O(log n) (or anything else that's the same). Does this mean both algorithms are just as good as one another? Absolutely not. One algorithm might run 30x faster than …
This Tuesday we have a primary election coming up here in Pennsylvania. I've reviewed the candidates on the Democratic ballot in my locale and here are my thoughts on the candidates. Governor: Josh Shapiro (lever 21) - [endorsed] The sole candidate running. my rating: 5 United States Senator: Alex Khalil (lever …
SECON is Capital One's internal software conference. It is held once a year (it's been done remotely during the covid-19 pandemic) and has a good number of speakers from across the company. I have spoken before at SECON, but this year I did something different: I was one of the …
I've been looking at a few financial companies lately, and I wanted to talk about some clauses I consider unreasonable that are found in the legal agreements they expect you to click through. I mean, I'm sure that nearly everyone clicks through these sorts of things without reading them (much …
For some time now, I have been interested in journalism , especially journalistic ethics . And today I find myself encountering such an issue. There is a conflict between two sources of information I have respect for. One is the New York Times . The other is a blogger who goes by Scott …
I am building a system to store records about businesses (within the US). As with most systems these days, it will be highly distributed: it runs in three different data centers, each running multiple machines each of which runs numerous threads. One of the things that this distributed system needs …
Question: Do you feel that daily standups add value? Only a couple of times in my life have I been involved in a project where a single highly-motivated developer worked independently on a project without a need to communicate about changing requirements, share development and code-review effort with others, or …
Twice recently I have heard Mark Mathewson (MVP for International and Small Business Tech at Capital One, where I work) give a talk in his capacity as executive responsible for inspiring our diversity programs within Tech. I have also heard the subject raised by Jenn Flynn who runs the Small …
My employer now uses gmail for our company email (and it's what I use at home also) so I would like "mailto:" links to work with Gmail. Unfortunately, all the normal processes for making Chrome use Gmail for such links failed for me. I went digging and found a solution …
I've had a wonderful idea for a business. Each of my users is invited to send me things in the mail things like pictures of their kids or notes about what they are doing. I then scan in these notes and pictures, print out everyone's updates in a big paper …
Part 4 of a 4-part essay In the first 4 parts of this essay, we covered how company culture affects the solutions people choose, that Capital One excells at innovation but is poor at reuse, and that reuse is important. Bringing this together, I think we need to change the …
Part 3 of a 4-part essay In the previous essay in this series I pointed out that Capital One is good good at innovation, but isn't particularly good at reuse... so what? Everyone has strengths and weaknesses, maybe this isn't such a big deal! If the cost of being good …
Part 2 of a 4-part essay For the past several years I have worked at Capital One, which is one of the larger financial institutions in the US. As an organization, it lies somewhere between being a bank and being a tech company. And Capital One is really good at …
Part 1 of a 4-part essay Company culture is an interesting thing. Especially in the world of technology companies, everyone seems to agree that it is a very important thing, few seem to know how to create or influence it. Some researchers like Edgar Schein have attempted to quantify it …
Just a note for myself for the NEXT time this happens. If Confluence starts returning an error saying "400 Bad Request - Request Header Or Cookie Too Large" then the cause is that something has gotten borked with the cookie that the browser has for Confluence. The fix is to delete …
Image Search by License Question: So I want to make a logo for my friend's company. Am I allowed to use cliparts from google to add or make the logo? Or do I have to make everything from scratch? My Answer: There are a few different laws you might have …
Depending on Someone Else's Code We had an interesting problem arise the other day, a problem about code dependency. Our problem was in no way unique, so it seemed worthwhile to write out the problem and our proposed solution. The problem The core of the problem is that we need …
An email I received from an Amazon recruiter Hi Michael, I recruit for a multitude of software development engineers for Amazon Services which is frequently mentioned by Jeff Bezos as one of our key strategic growth opportunities for the company, which gives you the opportunity to dive deep, think big …
REST Lambda Versioning So, we want to build a "serverless" application on AWS. We have configured Amazon's "API Gateway" to invoke Lambda functions when accessing certain URLs, and the lambda functions access back-ends like DynamoDB. So far so good. But we don't want to be breaking the application every time …
Michael Chermside's Election Guide to the May 2017 Democratic Primary As I sometimes do, now that I have finished doing my own research on the candidates and the issues, I will write down my thoughts to endorse the candidates and to share the results of my research. In this case …
Long-Running Calls Question: When building RESTful APIs, do you know of any standard patterns for handling long running API calls? Our decision process may take as much as a couple of minutes. My Answer: I know of four possible approaches: Long-running API call: In this approach, you just build an …
COBOL in a Bank Question: I hearing about COBOL being used in banks quite often but all my friends who actually working there say Java and Oracle and all related job adverts I have seen so far were Java or C++. Could someone please provide some relevant facts? My Answer …
Lift and Shift Lessons I've been doing a lot of work lately on moving to the cloud. A couple of years ago we started using AWS and our first move was a "lift-and-shift": we just re-created at AWS the same servers we had previously in our data center. Two years …
Dockercon I am attending Dockercon and I thought I would try a little experiment. I will try writing up my understanding od Docker before the conference and after, and see how much my view has changed. So, without further ado, here is my "before" review of Docker: What is Docker …
I don't tend to put a lot of personal content into this blog of mine, but that's exactly what I have today. You see, yesterday my 4th grader daughter's school held a presentation for the students and their families on teaching writing to kids, which included some time for both …
This morning's release didn't go so well. There was a problem with account opening -- some unintended interaction due to turning off a feature -- and we had to roll back the release. The problem wasn't in our team's systems; they didn't have an issue (this time) but we will still need …
Cylon So, this is the second time that I have taken a look at the programming language Ceylon . Ceylon is a language which is currently being sponsored by Red Hat. It fits into the space of languages in the same family with Java, but attempting to build a mondern strongly-typed …
When you are writing middleware (be it SOAP services, REST APIs, or something else) an important point to realize is that *Back Ends Fail* . They fail in strange and interesting ways. Code for talking to back ends should always be robust: it should never make a call without some timeout …
Today is the deadline for providing public comment to the FCC on whether to classify broadband communications under Title II -- basically, whether or not to enforce Net Neutrality in a way that works. The following is the letter that I submitted (by email, since the FCC's website for posting comments …
In the Python discussion group, Skip Montanaro posted the title question : what's the "right" way to abandon an open source package? He got one detailed and helpful answer from Ben Finney. It was an excellent question and an excellent response. I thought it was worth sharing here.
A week or so ago Microsoft dug into a customer's Hotmail account in order to track down some information about code that had been stolen from Microsoft. Their terms and conditions specifically allowed them to do this, but despite that they received a fair amount of criticism. With this announcement …
I have had people tell me things like "You should never throw an exception to return a value in an unusual case, exceptions are only supposed to be used for error conditions." And I HATE it when people say things like this. There are a couple of audiences at play …
I don't often write book reviews here, but in this case I have a connection to the book. My friend Terry Jones was one of the authors of a new O'Reilly programming book (you know, the ones with the animal pictures on the covers) which is titled: Learning jQuery Deferreds …
CAPCHAs are those odd little boxes that show some badly malformed letters and numbers and ask you to type them in. The idea is to check whether you are a human. The problem is that CAPCHAs are pretty difficult for humans. And they're fairly easy for computers. There are the …
I wanted to pass on an excellent idea that I read from Martin Fowler 's Blog. He calls it Immutable Servers , but I claim, if you think about it properly, it is merely the application of version control to systems administration. Everyone understands just how much version control has transformed …
"Satoshi Nakamoto" is the alias of the anonymous person who invented and published the protocol for Bitcoin. So far, no one knows for sure who it is, although attempts have been made to unmask the person (or people) by an analysis of their writing style and similar indicators. Now, in …
So, "Sunil Kumar" of Panzer Solutions wrote to me a ten days ago offering a position. Normally, I appreciate hearing from recruiters. As it happens, I have no interest in a new job; I am happy with my current position and have plenty of new challenges there recently. But it …
After looking at the iPhone 5, I see people saying that phones already have everything they need... nothing new will happen. That's completely absurd. There are tons of little things, for instance I want a browser that can do everything the PC browsers can do. But there are also HUGE …
Ben Northrop wrote to complain that story points are not accurate. They don't (always) map linearly to hours spent, so adding up story points over a large project won't accurately give hours for the project. In the spirit of expressing controversial opinions , I will agree, and explain why I think …
Suppose you wanted to build a tool for anonymously capturing the websites that a user visited and keeping a record of the public sites while keeping the users completely anonymous so their browsing history could not be determined. One of the most difficult challenges would be finding a way to …
Suppose you were building a tool integrated with web browsers to anonymously capture the (public) websites that a user visited and store them to a P2P network shared by the users of this tool. What would the requirements be for this storage P2P network? There are many different types of …
Suppose you were building a tool for anonymously capture the (public) websites that a user visited. What would the UI requirements be? The basic experience would be a perfectly normal browsing experience: users would launch their favorite web browser normally, would browse around the web normally and everything would "just …
Do you remember Google Web Accelerator? The idea was that you downloaded all your pages through Google's servers. For content that was static, Google could just load it once, then cache it and serve up the same page to every user. The advantage to the user was that they got …