My thoughts as an enterprise Java developer.
Friday, July 24, 2020
Technology-as-a-Service Playbook Notes
Wednesday, May 20, 2020
Logging
| Level | When to use | Example | Alert | Response | Environments |
|---|---|---|---|---|---|
| Fatal | The system can't run | Can't connect to main DB | Immediately | Immediately address | All |
| Error | There is a system problem | Unable to run a DB query | If the count passes a small threshold | Keep current on all errors with plan for addressing and escalate as appropriate | All |
| Warning | There is a problem that isn't a system problem | A specific request took longer than expected to process | If the count passes a big threshold | Generally stay current with most common logs and optionally create plan and/or escalate as appropriate | All |
| Info | Something happened that isn't a problem but is noteworthy | Unable to process request because the request was invalid | Optionally if the count passes a huge threshold | Occasionally review to look for patterns that may need to be addressed | Probably prod. Usually test. Always Dev. |
| Debug | Something not noteworthy but useful for inspecting how the system is running | A specific query took x milliseconds to run | Never | None | Prod only rarely for some loggers. test rarely. Dev often. |
Friday, December 23, 2016
Better show that a password is being entered
The whole screen should have some indication that a password is being entered. I.e. Dim everything but the password field. This would reduce the problem of accidentally typing your password into chat when you thought another window was active.
To log or not to log
That is the question.
Whether is nobler to in the Sumo to suffer ups and downs of outrageous quantity, or to take out logs against a Sea of repetition.
Wednesday, August 10, 2016
Tight scoping of constants
How do you declare constants that are only needed in a small scope (function or smaller)? I declare them in the tightest scope as final with an all-caps name. I.e.:
final int THRESHOLD = 1000;
That coveys the intent that it is a constant but minimizes scope.
Disable new UI components until the user has had time to react to them
How often do you use a program, decide to take an action (I.e. Press Return), and then have something popup and use your action before you even have a chance to read the popup? I hate when that happens because I don’t even know what I told the computer to do.
Input on a new UI element should be disabled for a short time to ensure that the user actually wants to take action on the new UI element. The delay has to be just long enough for the user to realize that the action may do something differently and not too long to slow down users who know that the popup is coming. So the delay should probably be a few hundred milliseconds.
Saturday, July 23, 2016
devopsdays 2016
http://www.devopsdays.org/
Overall
As a developer it seemed that vast majority of the content was for people with an ops focus. We need to help with better content for the dev side of devops. Based on a raise of hands the split was about even for conference attendees.Working with Marketing and Sales:
- Invite to demos. Record video and details in documentation so they can review later
- Roadmapping meetings with representives from all groups
- Get rid of the game of telephone and bring everyone together. Talk to other groups directly instead of depending on others to always filter their content.
- Know other groups: from goals to pains
Making good choices with software
- Code is the enemy
- Resist software sprawl
- Control/friction for new things on critical path
- Correlate risk with startup timeline and use risk on differentiators
- Replacement plan must prioritize getting rid of the old
- Use humans for core features
- Celebrate removal, deprecation, and refactoring because celebrated patterns will be repeated
Open Spaces
We need more developer focused discussions.I started a discussion on monitoring for developers. Others used different tools like Datadog and Splunk that may be interesting to check out. Some developers had much less access to production – especially if production had sensitive data and needed to have PCI compliance. It is important to use both tools and provide instrumentation monitoring in code.
In internal discussions another developer-focused topic thrown out was how development deals with ops scripts. They aren't our main focus and are often written differently than a developer would write them.
Bias
I'm interested in both the methodology and outcome of https://implicit.harvard.edu/Friday, February 13, 2015
Thursday, February 20, 2014
Tuesday, January 14, 2014
Preferences/Settings should be minimized
- Most users won't even look there so features will be underused which is a waste of development resources.
- Try to prompt the user to change their preference when they do a related action. i.e. if there is a preference for the number of items to show on a page and the user changes the dropdown to show a different number of items on the page then ask the user if they would like to update the preference to the new value.
- When prompting the user, avoid making the user click an extra time. Instead of doing a popup, just add text that prompts the user.
Tuesday, December 10, 2013
More interesting wait screen
Friday, December 06, 2013
U.S. Supreme Court to decide whether software can be patented | Reuters
Thursday, October 17, 2013
The type of work that I like to do
Tuesday, October 15, 2013
Change comments to logs?
Reasons:
- The log statements still give clues to the developer about what is happening
- The log statements also give that information to someone looking at the logs
- Since log statements will be seen more, they are more likely to to kept current
Thursday, October 10, 2013
Sitting Too Much Could Be Deadly, Experts Say | Fox News
" "After four hours of sitting, the body starts to send harmful signals," Ekblom-Bak said. She explained that genes regulating the amount of glucose and fat in the body start to shut down."
One idea that comes to my mind is to setup a standing height desk. The computer would be setup with remote desktop so that employees using it could connect back to their workstation and do work as if they were at their desk. That cube could then be reserved like a conference room so that employees could use it for a few short periods during the day. Optionally, the cube could have a tread mill right in front of the computer so that employees could also walk while working.
Thursday, October 03, 2013
A Simple Rule to Eliminate Useless Meetings | LinkedIn
"begin each meeting by providing attendees roughly 5-10 minutes to read through the deck"
"Once folks have completed the reading, it's time to open it up for discussion.There is no presentation. It's important to stay vigilant on this point as most people who prepared the materials will reflexively begin presenting."
"If the material has been well thought out and simply and intuitively articulated, chances are the need for clarifying questions will be kept to a minimum."
XSLT example to iterator through a comma separated list
<?xml version="1.0" encoding="UTF-8"?>
<comma>1,2,3,4,5,6,7,88,99,100</comma>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<xsl:call-template name="splitcommas">
<xsl:with-param name="comma" select="comma"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="splitcommas">
<xsl:param name="comma"/>
<xsl:choose>
<xsl:when test=" not(contains($comma, ','))">
<value><xsl:value-of select="$comma"/></value>
</xsl:when>
<xsl:otherwise>
<value><xsl:value-of select="substring-before($comma, ',')"/></value>
<xsl:call-template name="splitcommas">
<xsl:with-param name="comma" select="substring-after($comma, ',')"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Wednesday, October 02, 2013
Keeping sensitive data out of logs
When a product has logging there is a risk that sensitive data(i.e. passwords) will make it into the logs. How do we reduce that risk?
Logging an object or adding toString to a class might not obviously leak sensitive data so it is probably better to make sensitive data obvious. i.e. If sensitive data is stored in a Properties object, as soon as the properties object is obtained, it should move sensitive data to a separate location (i.e. a separate String variable in the class) and remove the sensitive data from properties so it is obvious that there is sensitive data.
Google security exec: 'Passwords are dead' | Security & Privacy - CNET News
"any startup that still relies on standard passwords needs to ensure that it has an abuse team set up to deal "with customers getting compromised." "
"anyone starting a new technology company should be sure that one person is designated to focus on security and privacy, and that one of the first 25 employees should work full time on security and privacy."