Saturday, May 25, 2019

One Fine Day in Alameda

Pretty good article: One Fine Day in Alameda

With summer almost upon us, it’s time to start planning seaside outings. But you don’t have to head to Marin, the Peninsula, or Santa Cruz for an escape to the beach. The East Bay’s own Alameda features sandy shores and outdoor activities galore.

Not a clunker in their list of suggestions, I'd say; well done!

Wednesday, May 22, 2019

Up, up, and away

Let's try this whole thing all over again:

  • Salesforce Transit Center
    Thornton Tomasetti is the structural engineer-of-record and is also providing sustainability services for Salesforce Transit Center, a new transit terminal topped by a 5.4-acre public park. The project, awarded through a design and development competition, promises to transform the neighborhood and centralize transportation for the region, as part of an overall redevelopment plan for the city of San Francisco.
  • Contractor Gets Green Light to Fix Two Fractured Girders at Salesforce Transit Center
    The third-floor Fremont Street tapered plate girders help support the park directly above and the second-floor bus level—via a hanger at the midspan that thickens the web to 4 in. and slots through the bottom flange—directly below the girder level.


    As described by Bruce Gibbons, the TT managing principal in charge of the transit hub, the bolted fix would only repair the compromised region, at the 8-ft-deep midspan of each 80-ft-long girder, by bypassing the fractured area. The double splint consists of a sandwich of two Grade 70 steel plates, 2 in. thick, and a total of 20 in. wide, on both sides of the web. The bent plates will be a total of 14 ft long, centered at the girder's midspan. There will be 224 bolts, said Turchon. In addition, 8-in.-tall plates will be bolted to each girder’s vertical stiffener.

  • Update on Construction and temporary closure of the Salesforce Transit Center
    Actions taken since last Board meeting:
    • Fremont Street repair designed and material being procured; MTC Peer Review Panel (PRP) in concurrence
    • Same detail proposed at First Street with PRP concurrence
    • Load Shedding analysis completed and submitted to the PRP
    • Bolts in load path received Ultrasonic/Non-Destructive Testing; no damage detected
    • Initiated search for other areas susceptible to brittle fracture. PRP actively participating in review of the effort, supported by Ruby & Associates
  • Repair of Fractured Girders Complete at Shuttered Salesforce Transit Center
    To date, crews have removed all shoring from both sets of third-floor girders that span 87 ft and support both a public rooftop park above and hang the second floor bus level. All traffic lanes are now open during the day. Night street closures will continue throughout May to restore lights, MUNI overhead lines and to reinstall ceiling panels.

    Recommissioning of the 4.5-block-long facility will continue through the end of this month. The quality assurance process includes retesting and re-inspecting fire and life safety systems throughout the facility and retesting the building’s mechanical and electrical systems, reports TJPA.

  • Repairs on cracked beams finished at shuttered Transbay Transit Terminal
    The people behind the grinding effort to reopen the $2.2 billion Transbay Transit Center after its emergency closure last September is holding their breath and waiting to see what a peer review team will say about the inspections of the facility when it meets May 22.

    That’s because the say-so of the reviewers may be the last obstacle toward setting a date to finally reopen the building and let bus traffic roll once again.

    At Thursday’s meeting of the Transbay Joint Powers Authority (TJPA) board, Executive Director Mark Zabaneh said that it will take about a month from the time the review panel gives the okay for the building to open.

    “We would need about a four week period to get buses inside,” said Zabaneh, citing a need to get drivers used to navigating the facility once again.

Tuesday, May 21, 2019

I entirely concur ...

... with this philosophy: 60 Days of Light

The phrase “60 Days of Light” first entered my vocabulary a few years ago in St. Petersburg, Russia (I don’t recall the Russian expression, but thats the rough translation). They are so far north they have almost continuous day light during this period, the sun barely sets, and when it does finally dip below the horizon, it is well after midnight. From mid-May (now) until mid-July, the darkest it gets is between sunset and sunrise look like dusk; Even around 2 a.m., the effect of sunset is muted and short-lived.

Love that graph of St. Petersburg!

(Of course, we have recently been spending the first of our 60 days with this: the second half of May 2019 will be the wettest in CA history for many locations., but still.)

Sunday, May 19, 2019

Responses to the letters to the editor in the local paper

To the woman who wrote A Heartfelt Message of Gratitude:

Thank you for writing, and for sharing your experience.

You are very right; it's just stuff.

Various things I've been reading

A little bit of this, a little bit of that.
  • Privacy Rights and Data Collection in a Digital Economy (Senate hearing)
    But there is a second, more fundamental sense of the word privacy, one which until recently was so common and unremarkable that it would have made no sense to try to describe it.

    That is the idea that there exists a sphere of life that should remain outside public scrutiny, in which we can be sure that our words, actions, thoughts and feelings are not being indelibly recorded. This includes not only intimate spaces like the home, but also the many semi-private places where people gather and engage with one another in the common activities of daily life—the workplace, church, club or union hall. As these interactions move online, our privacy in this deeper sense withers away.

    Until recently, even people living in a police state could count on the fact that the authorities didn’t have enough equipment or manpower to observe everyone, everywhere, and so enjoyed more freedom from monitoring than we do living in a free society today. [Note: The record for intensive surveillance in the pre-internet age likely belongs to East Germany, where by some estimates one in seven people was an informant.].

    A characteristic of this new world of ambient surveillance is that we cannot opt out of it, any more than we might opt out of automobile culture by refusing to drive. However sincere our commitment to walking, the world around us would still be a world built for cars. We would still have to contend with roads, traffic jams, air pollution, and run the risk of being hit by a bus.

    Similarly, while it is possible in principle to throw one’s laptop into the sea and renounce all technology, it is no longer be possible to opt out of a surveillance society.

    When we talk about privacy in this second, more basic sense, the giant tech companies are not the guardians of privacy, but its gravediggers.

  • Solving Puzzles to Protect the Cloud: CTO Taher Elgamal on His Role at Salesforce and the Future of Cryptography
    Elgamal sees interesting challenges emerging in the next decade or so as quantum computing becomes a reality. He’s passionate about agility in cryptography, noting that, currently, when changes need to be made because an implementation has been shown to have weaknesses, it causes a big slowdown for security engineers. We can’t wait ten years, Elgamal says, to start the effort to protect against new technologies.
  • Amazon’s Away Teams laid bare: How AWS's hivemind of engineers develop and maintain their internal tech
    The Away Team model and generally easy access to source code means that investment can easily cross service boundaries to enhance the power of the entire system of services. Teams with a vision for making their own service more powerful by improving other services are free to execute.
  • OPP (Other People's Problems)
    If it’s your job (or the job of someone who reports to you), great. Go to it! Tend your own garden first. Make systems that are as robust as you believe systems should be. Follow processes that you believe are effective and efficient. If you are not leading by example, you have to start there. Stop reading now and go fix the things!

    If there’s no clear owner, do you know why? Is it just because no one has gotten around to doing it, or has the organization specifically decided not to do it? If no one’s gotten around to doing it, can you do it yourself? Can your org do it, just within your org?

    If it’s someone else’s job, how much does it affect your day to day life? Does it bother you because they’re doing it wrong, or does it actually, really, significantly make it harder for you to do your job? Really? That significantly? There’s no work around at all? If it is not directly affecting your job, drop it!

  • Strong Opinions Loosely Held Might be the Worst Idea in Tech
    The idea of strong opinions, loosely held is that you can make bombastic statements, and everyone should implicitly assume that you’ll happily change your mind in a heartbeat if new data suggests you are wrong. It is supposed to lead to a collegial, competitive environment in which ideas get a vigorous defense, the best of them survive, and no-one gets their feelings hurt in the process.

    On a certain kind of team, where everyone shares that ethos, and there is very little power differential, this can work well. I’ve had the pleasure of working on teams like that, and it is all kinds of fun. When you have a handful of solid engineers that understand each other, and all of them feel free to say “you are wrong about X, that is absolutely insane, and I question your entire family structure if you believe that, clearly Y is the way to go”, and then you all happily grab lunch together (at Linguini’s), that’s a great feeling of camaraderie.

    Unfortunately, that ideal is seldom achieved.

    What really happens? The loudest, most bombastic engineer states their case with certainty, and that shuts down discussion. Other people either assume the loudmouth knows best, or don’t want to stick out their neck and risk criticism and shame. This is especially true if the loudmouth is senior, or there is any other power differential.

  • People + AI Guidebook: Explainability + Trust
    Key considerations for explaining AI systems:
    1. Help users calibrate their trust. Because AI products are based on statistics and probability, the user shouldn’t trust the system completely. Rather, based on system explanations, the user should know when to trust the system’s predictions and when to apply their own judgement.
    2. Optimize for understanding. In some cases, there may be no explicit, comprehensive explanation for the output of a complex algorithm. Even the developers of the AI may not know precisely how it works. In other cases, the reasoning behind a prediction may be knowable, but difficult to explain to users in terms they will understand.
    3. Manage influence on user decisions. AI systems often generate output that the user needs to act on. If, when, and how the system calculates and shows confidence levels can be critical in informing the user’s decision making and calibrating their trust.
  • Decision Tree Learning
    The Decision Tree Learning algorithm adopts a greedy divide-and-conquer strategy: always test the most important attribute first. This test divides the problem up into smaller subproblems that can then be solved recursively. By “most important attribute,” we mean the one that makes the most difference to the classification of an example. That way, we hope to get to the correct classification with a small number of tests, meaning that all paths in the tree will be short and the tree as a whole will be shallow.
  • Awesome decision tree research papers
    A curated list of decision, classification and regression tree research papers with implementations.
  • Video Game Workers See Power in a Union
    This is the first labor-related walkout in the video game industry, but it likely will not be the last. The sector has been under scrutiny for years over exploitative practices, including lack of job security, mass layoffs and “crunch.” Short for “crunch time,” crunch is an industry-wide practice that requires employees, especially developers, to put in extra, unpaid hours—making for 60 to 80-hour work weeks—to deliver a game by its release date. One of the most egregious examples of crunch came in October of 2018 when reports surfaced that employees of Rockstar Games were working 100-hour weeks to finish the game Red Dead Redemption 2.
  • This World of Ours
    The worst part about growing up is that the world becomes more constrained. As a child, it seems completely reasonable to build a spaceship out of bed sheets, firecrackers, and lawn furniture; as you get older, you realize that the S.S. Improbable will not take you to space, but instead a lonely killing field of fire, Child Protective Services, and awkward local news interviews, not necessarily in that order, but with everything showing up eventually. Security research is the continual process of discovering that your spaceship is a deathtrap.

Saturday, May 18, 2019

A nice collection of git links

Cue the line about how a master craftsman needs to thoroughly understand his tools, as we explore another fascinating series from the great Raymond Chen (After we first share one unrelated bonus link)

  • Learn to change history with git rebase!
    One of Git's core value-adds is the ability to edit history. Unlike version control systems that treat the history as a sacred record, in git we can change history to suit our needs. This gives us a lot of powerful tools and allows us to curate a good commit history in the same way we use refactoring to uphold good software design practices. These tools can be a little bit intimidating to the novice or even intermediate git user, but this guide will help to demystify the powerful git-rebase.
OK, that was a good warm-up. Now on to the main feature!
  • Stupid git commit-tree tricks, Part 1: Building a commit manually out of a tree
    I take a snapshot of what’s in our internal staging repo and push it to the public repo. All of the intermediate steps are squashed out, so that the public repo isn’t cluttered with noisy history.
  • Stupid git commit-tree tricks, Part 2: Building a merge commit manually out of a tree
    I want the commit to be a merge of win10-1507 and the changes specific to that branch. To do this, I use the commit-tree command, but provide multiple parents. The first parent is the previous commit for the branch, and the second parent is the incoming changes from its ancestor branch.
  • Stupid git commit-tree tricks, Part 3: Building a throwaway commit in order to perform a combined cherry-pick-squash
    Suppose you have a series of commits you want to cherry-pick and squash onto another branch.

    The traditional way of doing this is to cherry-pick the series of commits with the -n option so that they all stack on top of each other, and then perform a big git commit when you’re done. However, this mechanism churns the local hard drive with copies of each of the intermediate commits, and if there are merge conflicts, you may end up having to resolve the conflict in the same block of code over and over again.

  • Stupid git commit-tree tricks, Part 4: Changing a squash to a merge
    you could hard reset the master branch back to M1 and redo the merge. But that means you have to redo all the merge conflicts, and that may have been quite an ordeal. And if that was a large merge, then even in the absence of conflicts, you still have a lot of files being churned in your working directory.

    Much faster is simply to create the commit you want and reset to it.

  • Stupid git commit-tree tricks, Part 5: Squashing without git rebase
    Since all of the commits we want to squash are consecutive, we can do all this squashing by simply committing trees.


    The point is that we were able to rewrite a branch without touching any files in the working directory.

  • Stupid git commit-tree tricks, Part 6: Resetting by reusing an earlier tree
    This tree-based merge is the trick I referred to some time ago in the context of forcing a patch branch to look like a nop. In that diagram, we started with a commit A and cherry-picked a patch P so we could use it to patch the master branch. Meanwhile, we also want a nop to go into the feature branch. We did it with a git revert, but you can also do it in a no-touch way by committing trees.
  • Stupid git tricks: Combining two files into one while preserving line history
    For best results, your rename commit should be a pure rename. Resist the tempotation to edit the file’s contents at the same time you rename it. A pure rename ensure that git’s rename detection will find the match. If you edit the file in the same commit as the rename, then whether the rename is detected as such will depend on git’s “similar files” heuristic.¹ If you need to edit the file as well as rename it, do it in two separate commits: One for the rename, another for the edit.

    Wait, we didn’t use git commit-tree yet. What’s this doing in the Stupid git commit-tree tricks series?

    We’ll add commit-tree to the mix next time. Today was groundwork, but this is a handy technique to keep in your bag of tricks, even if you never get around to the commit-tree part.

  • Stupid git commit-tree tricks, Part 7: Combining more than two files into one while preserving line history, manual octopus merging
    The problem is that octopus merges work only if there are no conflicts. We’re going to have to build our own octopus merge.
    cat dairy fruits veggies | sort >food
    git rm dairy fruits veggies
    git add food
    git write-tree
    The git write-tree creates a tree from the index. It’s the tree that a git commit would create, but we don’t want to do a normal commit. This is the tree we want to commit, but we need to set custom parents, so we’ll ask git write-tree for the tree that would be committed, so we can build our custom commit.
Any series that culminates in the phrase "manual octopus merging" is epic.