dannyman.toldme.com

This page features every post I write, and is dedicated to Andrew Ho.

January 4, 2013
News and Reaction, Technical, Technology

Our Future: Autonomous Cars and Transit

Link: https://dannyman.toldme.com/2013/01/04/our-future-autonomous-cars-and-transit/

My opinion, one of many, as left in a comment:

The current Google Car can operate on city streets autonomously, but it needs someone doing the backend work of getting all the streets mapped out perfectly, figuring out exactly where the lanes are. Then in order to do a truly autonomous taxi service, you’ll want a two-way video linkup for the dispatcher to pilot the car if it gets stuck in some situation like the fire department blocking the street, or to monitor security.

For that reason, the current livery model works really well: a small, local company will service its fleet and its IT needs. The biggest expense, the driver, will be eliminated. This will serve an evolutionary role of a taxi service within a limited service area. This will be mostly shopping trips for car-less people, and “last mile” services to transit connection points, like Taxis serve now. The evolution comes with lower cost: short-haul, off-peak commuter needs, more “last mile” transit service where an autotaxi will be faster and more convenient than the local bus service, but also cheap.

What happens next? “Roaming” agreements among carriers sharing a common technology platform. The service areas of the autotaxi companies grow larger: your local autotaxi can drop you off on a shopping trip to a regional big-box store two towns over and the local autotaxi there can bring you back cheap. Expanded mobility, less reliance on transit.

This doesn’t mean the end of transit. Individual automobiles still require more energy and infrastructure to operate. The autotaxi will dominate short trips, but especially at peak demand, we will need to rely on higher-capacity transit backbones.

The biggest driver of the need for peak-period transit handoff is the capacity limitations of the autotaxi carriers. You simply can not carry everyone, but you want to be a part of the picture. So, yeah, the service gets you from your house to the transit hub, maybe work out relationships with local transit agencies so thaty “last mile” can be served by auto-taxi as a part of the transit fare itself.

The other limitation is for longer-range travel, even a fully autonomous rubber-on-pavement highway system will not be able to match the speed of rail-based or air travel. The autotaxi might drive you fifty miles to the high-speed train station, but then you’ll board the bullet train for LA which will be faster and charge a lower fare.

Anyway, the roaming evolution will mean that we go from local taxi service to regional airport shuttle service, and this will be great for those who live some distance from a long-haul transportation hub who want to make it to/from the airport, &c.

I think autonomous cars are a very reasonable evolution on human-piloted cars, which were a very reasonable evolution on horse-drawn carriages. In the twentieth century we evolved from horses to humans, and in the twenty-first we will evolve even more seamlessly from human to computer.

Our streets didn’t change much from the carriage to the automobile era. They’re wider and too dangerous for people to walk in. I doubt the streets will change much in the autonomous era, except they’ll narrow again and it will be safe to walk, bike, and play in them again.

My other prediction is that the autotaxi will make getting around so convenient, that car ownership will continue to decline. You will see a winners-and-losers scenario in the auto industry: the losers will realize too late just how badly they are in trouble. They will try to spread Fear, Uncertainty, and Doubt as to the safety and wisdom of reliance on autonomous vehicles, just as they try to sell some. The winners will have identified the coming trend and geared their business to serving the needs of autonomous fleet operators, and to those niche consumers for whom autonomous vehicles are not appropriate, or who just love driving their own car. Other winners will include pedestrians, cyclists, the young, the elderly, people with disabilities, suburbanites, night life, and very likely the environment.

Feedback Welcome

December 17, 2012
Photo-a-Day

Happy Cat

Link: https://dannyman.toldme.com/2012/12/17/happy-cat/

Maxwell smiles during a belly rub.

Maxwell smiles during a belly rub.

Feedback Welcome

December 17, 2012
Presidential Decrees

Presidential Decree #3: A Well-Regulated Militia

Link: https://dannyman.toldme.com/2012/12/17/presidential-decree-3-a-well-regulated-militia/

“A well regulated Militia, being necessary to the security of a free State, the right of the people to keep and bear Arms, shall not be infringed.”

You can own any firearm you want. All firearms will be stored at armories. Armories will be regulated by the ATF. Safe transportation of armaments among munitions factories and armories will be entrusted to the National Guard. Owners of firearms may store their firearms at any armories of their choice. The operation of public armories shall be funded by subscriber fees.

Firearms owners will have access to their weapons for maintenance and skills training at their armory of choice. Different armories may have different facilities for maintenance and skills training.

Licensed hunters may “check out” not more than two firearms for the duration of the hunting season. Hunters may only check out firearms suitable for their type of hunting. Firearms intended for human combat are not to be checked out.

The Military, National Guard, and Law Enforcement Agencies shall have the ability to license their agents to bear firearms for human combat. These agents must have current training on the appropriate use of these firearms to ensure public safety. Agents should be provided with sufficient access to these firearms for the performance of their duty. When not on duty, firearms will be stored at either a public armory or a private armory maintained by their employer. Agents entrusted with combat firearms must have free and immediate access to mental health services during their employment, and submit to a basic psychiatric review every three months.

In the event of a collapse in public order, state of emergency, suspension of habeas corpus, revolution, coup d’etat, military invasion or occupation, or other circumstances in which government of the people, by the people, and for the people has been compromised or forfeited, armories may release firearms for public use at their discretion.

1 Comment

December 6, 2012
JIRA

JIRA Cascading Select in Jython

Link: https://dannyman.toldme.com/2012/12/06/jira-cascading-select-in-jython/

The Cascading Select Custom Field type in JIRA is a bear. The first trick is learning to set the “null” value and then the “1” child value. The next trick is building out a ModifiedValue object to hold your change. Then you get to jump down the rabbit hole of finding the correct Option values for the custom field, and setting them with the tricks just mentioned.

So, in the interests of saving me sanity next time I need to set a Cascading Select, here’s a Jython function that works in Jira 4.2:

import logging

from com.atlassian.jira import ComponentManager
from com.atlassian.jira.issue.customfields.manager import OptionsManager
from com.atlassian.jira.issue.customfields.view import CustomFieldParamsImpl
from com.atlassian.jira.issue import ModifiedValue
from com.atlassian.jira.issue.util import DefaultIssueChangeHolder
from java.util import HashSet

# cf = custom field
# issue = issue to modify
# parent = top value to set (string value)
# child = child value to set (string value)
def set_cascading_select(cf, issue, parent, child):
    # Get the managers
    cfm = ComponentManager.getInstance().getCustomFieldManager()
    om = ComponentManager.getComponentInstanceOfType(OptionsManager)
    fli = ComponentManager.getInstance().getFieldLayoutManager().getFieldLayout(issue).getFieldLayoutItem(cf)

    parent_options = om.getOptions(cf.getRelevantConfig(issue))
    parent_option = None
    child_option = None
    try:
        parent_option = parent_options.getOptionForValue(parent, None)
    except:
        pass
    try:
        child_option = parent_options.getOptionForValue(child, parent_option.getOptionId())
    except:
        pass

    if parent_option and child_option:
        old_application = issue.getCustomFieldValue(cf)
        new_application = CustomFieldParamsImpl(cf)
        a_none = HashSet()
        a_none.add(parent_option)
        a_1 = HashSet()
        a_1.add(child_option)
        new_application.put(None, a_none)
        new_application.put("1", a_1)
        mf = ModifiedValue(old_application, new_application)
        cf.updateValue(fli, issue, mf, DefaultIssueChangeHolder())
        logging.debug("set issue " + issue.getKey() + " cf " + cf.getName() + " setting " + parent + "/" + child)
        return True
    else:
        logging.error("invalid parent/child option: " + parent + "/" + child)
        return None

Example function calls from within a validation hook:

cfm = ComponentManager.getInstance().getCustomFieldManager()

application_cf = cfm.getCustomFieldObjectByName("Beverages")

# good
set_cascading_select(application_cf, issue, "Hard Drinks", "Whiskey")
# bad child
set_cascading_select(application_cf, issue, "Hard Drinks", "Coke")
# bad parent
set_cascading_select(application_cf, issue, "Soft Drinks", "Whiskey")
# total crap
set_cascading_select(application_cf, issue, "Illicit Drugs", "Bath Salts")

The logging stuff is useful for debugging, if you have that set up, else just remove those bits.

Feedback Welcome

December 3, 2012
Presidential Decrees

Presidential Decree #2: Car Alarms

Link: https://dannyman.toldme.com/2012/12/03/presidential-decree-2-car-alarms/

Audible car alarms are a public nuisance. Their use is thus prohibited, with the following exception:

The owner or operator of an automobile may actively trigger an audible car alarm if it would serve the interests of public safety. Any activation of an audible car alarm must be accompanied by a request for emergency services. Any button which triggers an audible car alarm must also send an automated distress signal to public safety authorities. If authorities do not respond in a timely fashion, concerned citizens are empowered to act on the behalf of the authorities.

If an alarm is raised in error, the responding authority must respond in one of two ways, at their discretion:

1) Use “the jaws of life” or comparable apparatus to remove or destroy the audible portion of the car alarm. If this apparatus is not available, sledge hammers, firearms, explosives and other such tools may be used, if they can be safely deployed without jeopardizing public safety.

2) Impound the automobile for not more than 90 days. Upon confiscation, all audible alarm technologies will be removed or rendered permanently inoperable, and the automobile will be made available to members of the impounding organization for their use for either official business or employee leisure.

Feedback Welcome

December 3, 2012
Excerpts, Letters to The Man, Technical

Collocation vs Colocation

Link: https://dannyman.toldme.com/2012/12/03/collocation-vs-colocation/

This drives me insane. Part of the challenge is that most software dictionaries are unaware of the word “colocation” and are happy to offer “collocation” as an alternative, but that is wrong wrong wrong wrong and it makes me a little nuts every time.

So, here is some explanation I just sent to the NOC and copied to the Sales team of a “Colocation Provider” who keeps sending me messages from something called “Collocation Status Report”:

Dear NOC:

A collocation is a statistic used by linguists to determine the
frequency with which words and phrases are found together.

On your contact information page, there is an option to contact Sales
about “Colocation”

Assuming that you are indeed in the business of Colocation, and not
actually updating us on the status of word frequencies, please fix the
name in your outgoing envelope from “Collocation Status Reports” to
“Colocation Status Reports”

Thanks,
-danny

Yup. That’s all I have to say about that.

1 Comment

November 28, 2012
About Me, News and Reaction

Also Not Me

Link: https://dannyman.toldme.com/2012/11/28/also-not-me/

Another Daniel Howard, within a week, committing a felony offense, this time in Leeds, UK:

Published on Friday 23 November 2012 06:50

A MAN who was caught growing cannabis in his cellar months after being given a suspended sentence for the same offence has been sent to jail.

Daniel Howard’s second illegal enterprise was discovered by police when they went to his home in Harehills, Leeds, looking for another person who was wanted for arrest.

Feedback Welcome

November 28, 2012
About Me, News and Reaction, Relationship Advice

It Wasn’t Me

Link: https://dannyman.toldme.com/2012/11/28/it-wasnt-me/

Mercury News reports Fremont man charged in tree hanging attempt:

FREMONT, Calif.—A Fremont man is facing charges that he tried to hang his girlfriend from a backyard tree.

Thirty-one-year-old Daniel Howard is scheduled to be arraigned on attempted murder and criminal threat charges on Tuesday.

Police say they found Howard Sunday evening standing behind his girlfriend, who was tied to a tree with a rope fashioned as a noose around her neck. Her hands were tied behind her back.

Howard was allegedly continuing to wrap the rope around her neck.

. . . I’m 36 years old and I live in Sunnyvale.

Feedback Welcome

November 23, 2012
Presidential Decrees

Presidential Decree #1: Black Friday

Link: https://dannyman.toldme.com/2012/11/23/presidential-decree-1-black-friday/

On the Friday immediately following Thanksgiving, no store may open any earlier than it does on any other Friday.

On Thanksgiving, a store may extend their hours beyond the time they usually close, but all customers must be offered a complimentary slice of pie, of a size not less than 1/8 of a 9″ diameter pie, and no less than 1″ deep. A store must offer either pumpkin, sweet potato, or pecan pie, but may offer additional flavors. Customers will be allowed their fill of complimentary coffee, tea, drinking water, and whipped cream.

Feedback Welcome

November 12, 2012
Technical, Technology

Amazon Hack: Reverse Showrooming

Link: https://dannyman.toldme.com/2012/11/12/amazon-hack-reverse-showrooming/

Modern retailers have a challenge we have come to call “showrooming” where a consumer visits the local store to try out a product, then they go and order the product off Amazon.com or another retailer for less money. Some retailers will do online price matching, which is reasonable because even though that lowers their margin, they still get the sale, and can upsell you a few accessories. I saved a few dollars this way while buying a TV from Fry’s.

However, I was just browsing Amazon.com for a resin adirondack chair, where I saw:

Twenty six bucks!? Sounds good . . . not eligible for Prime, so let’s check the shipping . . .

Whiskey . . . Tango . . . Foxtrot . . . $192 shipping you say?!! Something is fishy here . . .

So, I surf on over to True Value’s web site, where the chairs are $20, and they’ll ship to the local store.

Which makes me wonder if this is a case of “reverse showrooming” . . . I go to Amazon.com because I can probably find what I am looking for, then I am led to a local retailer to save money. Very clever . . .

Feedback Welcome

November 7, 2012
JIRA, Technical

JIRA Workflow Transition Condition: check_parent_resolved.py

Link: https://dannyman.toldme.com/2012/11/07/jython-workflow-transition-check-parent/

It took a few hours to figure this hook out, so I’m including my hard-won lines of code here.

# -*- coding: UTF-8 -*-
# Check if PARENT is resolved.
# Monitoring creates Events in the Event queue, these Events
# automatically create Incident children.
# We don't want to resolve any Incident children until the parent Event
# resolves.
# 
# (Normally you want to block on your children instead of your parent.)

from com.atlassian.jira import ComponentManager
from com.atlassian.jira.issue.link import IssueLinkManager

ilm = ComponentManager.getInstance().getIssueLinkManager()

# Assume we are okay ...
result = True

for link in ilm.getInwardLinks(issue.getId()):
    if link.getIssueLinkType().getName() == "Parent" and link.getSourceObject().getResolution() == None:
        result = False

Feedback Welcome

October 30, 2012
Letters to The Man, Technology, Testimonials

Advice to Hotels

Link: https://dannyman.toldme.com/2012/10/30/free-internet-duh/

From a survey I just filled out regarding a business trip to London:

Internet access … kept dropping packets, and I had to keep logging in to it via iPass. Don’t gouge customers, just let them on. This is seriously trivial, low-hanging fruit, which can make all the difference in the world esp for an international business traveler avoiding mobile roaming charges.

I would without hesitation stay at a more mediocre hotel that could deliver hassle-free, reliable Internet service, and the hassle-free starts with avoiding the damn tariff screen and just letting your guests on … guests who will appreciate this no-nonsense convenience far more than whether the staff have been properly trained to smile, &c.

I gotta say … we seem to “get this” in America … I’ve stayed at plenty of budget motels which offered complimentary, hassle-free, reliable Internet access. Though, I don’t recall having the same pleasure at a hotel in New York, where you could get free Internet in the lobby, but had to pay for it upstairs in your room.

For many of us, network access is kind of like tap water: we take it for granted that it should just flow, and not require one to jump through hoops to pay an additional $20/day. If there’s a business hotel chain that has figured this out, let me know, because my loyalty would be easily won.

Feedback Welcome

« Newer Stuff . . . Older Stuff »
Site Archive