up

Corruption Is Bad, But Sabotage Is Worse

By Jill Richardson Otherwords Both are bad, but Scott Pruitt’s abuse of our environment is far more dangerous than his abuse of taxpayer money. Did you hear that the head of the Environmental Protection Agency (EPA), Scott Pruitt, is so … Continue reading




up

Top 5 Best Internet Live Support Extension To Increase Customers Interactions

Creative interactions call for creative measures - numerous extensions reduce, minimize or dilute the frustration of the customers and resolve issues quickly without the customer support team need....




up

6 Ways To Step Up Your Instagram Stories Game

Instagram Stories are an integral part of the platform. Though Instagram copied Snapchat’s concept a few years ago, over 500 million accounts use the Stories feature on a daily basis. Some users...




up

Committed to the wrong branch? -, @{upstream}, and @{-1} to the rescue

I get into this situation sometimes. Maybe you do too. I merge feature work into a branch used to collect features, and then continue development but on that branch instead of back on the feature branch

git checkout feature
# ... bunch of feature commits ...
git push
git checkout qa-environment
git merge --no-ff --no-edit feature
git push
# deploy qa-environment to the QA remote environment
# ... more feature commits ...
# oh. I'm not committing in the feature branch like I should be

and have to move those commits to the feature branch they belong in and take them out of the throwaway accumulator branch

git checkout feature
git cherry-pick origin/qa-environment..qa-environment
git push
git checkout qa-environment
git reset --hard origin/qa-environment
git merge --no-ff --no-edit feature
git checkout feature
# ready for more feature commits

Maybe you prefer

git branch -D qa-environment
git checkout qa-environment

over

git checkout qa-environment
git reset --hard origin/qa-environment

Either way, that works. But it'd be nicer if we didn't have to type or even remember the branches' names and the remote's name. They are what is keeping this from being a context-independent string of commands you run any time this mistake happens. That's what we're going to solve here.

Shorthands for longevity

I like to use all possible natively supported shorthands. There are two broad motivations for that.

  1. Fingers have a limited number of movements in them. Save as many as possible left late in life.
  2. Current research suggests that multitasking has detrimental effects on memory. Development tends to be very heavy on multitasking. Maybe relieving some of the pressure on quick-access short term memory (like knowing all relevant branch names) add up to leave a healthier memory down the line.

First up for our scenario: the - shorthand, which refers to the previously checked out branch. There are a few places we can't use it, but it helps a lot:

Bash
# USING -

git checkout feature
# hack hack hack
git push
git checkout qa-environment
git merge --no-ff --no-edit -        # ????
git push
# hack hack hack
# whoops
git checkout -        # now on feature ???? 
git cherry-pick origin/qa-environment..qa-environment
git push
git checkout - # now on qa-environment ????
git reset --hard origin/qa-environment
git merge --no-ff --no-edit -        # ????
git checkout -                       # ????
# on feature and ready for more feature commits
Bash
# ORIGINAL

git checkout feature
# hack hack hack
git push
git checkout qa-environment
git merge --no-ff --no-edit feature
git push
# hack hack hack
# whoops
git checkout feature
git cherry-pick origin/qa-environment..qa-environment
git push
git checkout qa-environment
git reset --hard origin/qa-environment
git merge --no-ff --no-edit feature
git checkout feature
# ready for more feature commits

We cannot use - when cherry-picking a range

> git cherry-pick origin/-..-
fatal: bad revision 'origin/-..-'

> git cherry-pick origin/qa-environment..-
fatal: bad revision 'origin/qa-environment..-'

and even if we could we'd still have provide the remote's name (here, origin).

That shorthand doesn't apply in the later reset --hard command, and we cannot use it in the branch -D && checkout approach either. branch -D does not support the - shorthand and once the branch is deleted checkout can't reach it with -:

# assuming that branch-a has an upstream origin/branch-a
> git checkout branch-a
> git checkout branch-b
> git checkout -
> git branch -D -
error: branch '-' not found.
> git branch -D branch-a
> git checkout -
error: pathspec '-' did not match any file(s) known to git

So we have to remember the remote's name (we know it's origin because we are devoting memory space to knowing that this isn't one of those times it's something else), the remote tracking branch's name, the local branch's name, and we're typing those all out. No good! Let's figure out some shorthands.

@{-<n>} is hard to say but easy to fall in love with

We can do a little better by using @{-<n>} (you'll also sometimes see it referred to be the older @{-N}). It is a special construct for referring to the nth previously checked out ref.

> git checkout branch-a
> git checkout branch-b
> git rev-parse --abbrev-rev @{-1} # the name of the previously checked out branch
branch-a
> git checkout branch-c
> git rev-parse --abbrev-rev @{-2} # the name of branch checked out before the previously checked out one
branch-a

Back in our scenario, we're on qa-environment, we switch to feature, and then want to refer to qa-environment. That's @{-1}! So instead of

git cherry-pick origin/qa-environment..qa-environment

We can do

git cherry-pick origin/qa-environment..@{-1}

Here's where we are (🎉 marks wins from -, 💥 marks the win from @{-1})

Bash
# USING - AND @{-1}

git checkout feature
# hack hack hack
git push
git checkout qa-environment
git merge --no-ff --no-edit -                # ????
git push
# hack hack hack
# whoops
git checkout -                               # ????
git cherry-pick origin/qa-environment..@{-1} # ????
git push
git checkout -                               # ????
git reset --hard origin/qa-environment
git merge --no-ff --no-edit -                # ????
git checkout -                               # ????
# ready for more feature commits
Bash
# ORIGINAL

git checkout feature
# hack hack hack
git push
git checkout qa-environment
git merge --no-ff --no-edit feature
git push
# hack hack hack
# whoops
git checkout feature
git cherry-pick origin/qa-environment..qa-environment
git push
git checkout qa-environment
git reset --hard origin/qa-environment
git merge --no-ff --no-edit feature
git checkout feature
# ready for more feature commits

One down, two to go: we're still relying on memory for the remote's name and the remote branch's name and we're still typing both out in full. Can we replace those with generic shorthands?

@{-1} is the ref itself, not the ref's name, we can't do

> git cherry-pick origin/@{-1}..@{-1}
origin/@{-1}
fatal: ambiguous argument 'origin/@{-1}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

because there is no branch origin/@{-1}. For the same reason, @{-1} does not give us a generalized shorthand for the scenario's later git reset --hard origin/qa-environment command.

But good news!

Do @{u} @{push}

@{upstream} or its shorthand @{u} is the remote branch a that would be pulled from if git pull were run. @{push} is the remote branch that would be pushed to if git push was run.

> git checkout branch-a
Switched to branch 'branch-a'
Your branch is ahead of 'origin/branch-a' by 3 commits.
  (use "git push" to publish your local commits)
> git reset --hard origin/branch-a
HEAD is now at <the SHA origin/branch-a is at>

we can

> git checkout branch-a
Switched to branch 'branch-a'
Your branch is ahead of 'origin/branch-a' by 3 commits.
  (use "git push" to publish your local commits)
> git reset --hard @{u}                                # <-- So Cool!
HEAD is now at <the SHA origin/branch-a is at>

Tacking either onto a branch name will give that branch's @{upstream} or @{push}. For example

git checkout branch-a@{u}

is the branch branch-a pulls from.

In the common workflow where a branch pulls from and pushes to the same branch, @{upstream} and @{push} will be the same, leaving @{u} as preferable for its terseness. @{push} shines in triangular workflows where you pull from one remote and push to another (see the external links below).

Going back to our scenario, it means short, portable commands with a minimum human memory footprint. (🎉 marks wins from -, 💥 marks the win from @{-1}, 😎 marks the wins from @{u}.)

Bash
# USING - AND @{-1} AND @{u}

git checkout feature
# hack hack hack
git push
git checkout qa-environment
git merge --no-ff --no-edit -    # ????
git push
# hack hack hack
# whoops
git checkout -                   # ????
git cherry-pick @{-1}@{u}..@{-1} # ????????
git push
git checkout -                   # ????
git reset --hard @{u}            # ????
git merge --no-ff --no-edit -    # ????
git checkout -                   # ????
# ready for more feature commits
Bash
# ORIGINAL

git checkout feature
# hack hack hack
git push
git checkout qa-environment
git merge --no-ff --no-edit feature
git push
# hack hack hack
# whoops
git checkout feature
git cherry-pick origin/qa-environment..qa-environment
git push
git checkout qa-environment
git reset --hard origin/qa-environment
git merge --no-ff --no-edit feature
git checkout feature
# ready for more feature commits

Make the things you repeat the easiest to do

Because these commands are generalized, we can run some series of them once, maybe

git checkout - && git reset --hard @{u} && git checkout -

or

git checkout - && git cherry-pick @{-1}@{u}.. @{-1} && git checkout - && git reset --hard @{u} && git checkout -

and then those will be in the shell history just waiting to be retrieved and run again the next time, whether with CtrlR incremental search or history substring searching bound to the up arrow or however your interactive shell is configured. Or make it an alias, or even better an abbreviation if your interactive shell supports them. Save the body wear and tear, give memory a break, and level up in Git.

And keep going

The GitHub blog has a good primer on triangular workflows and how they can polish your process of contributing to external projects.

The FreeBSD Wiki has a more in-depth article on triangular workflow process (though it doesn't know about @{push} and @{upstream}).

The construct @{-<n>} and the suffixes @{push} and @{upstream} are all part of the gitrevisions spec. Direct links to each:



    • Code
    • Front-end Engineering
    • Back-end Engineering

    up

    Setting New Project Managers Up for Success

    At Viget, we’ve brought on more than a few new Project Managers over the past couple of years, as we continue to grow. The awesome new people we’ve hired have ranged in their levels of experience, but some of them are earlier in their careers and need support from more experienced PMs to develop their skills and flourish.

    We have different levels of training and support for new PMs. These broadly fall into four categories:

    • Onboarding: Learning about Viget tools and processes
    • Shadowing: Learning by watching others
    • Pairing: Learning by doing collaboratively
    • Leading: Learning by doing solo

    Onboarding

    In addition to conducting intro sessions to each discipline at Viget, new Viget PMs go through a lengthy set of training sessions that are specific to the PM lab. These include intros to:

    PM tools and resourcesProject processes
    Project typesProject checklists
    Project taskingProject planning
    Budgets, schedules, and resourcingRetrospectives
    Working with remote teamsProject kickoffs
    Thinking about developmentGithub and development workflow
    Tickets, definition, and documentationQA testing
    Account management

    Shadowing

    After PMs complete the onboarding process, they start shadowing other PMs’ projects to get exposure to the different types of projects we run (since the variety is large). We cater length and depth of shadowing based on how much experience a PM has coming in. We also try to expose PMs to multiple project managers, so they can see how PM style differs person-to-person.

    We’ve found that it can be most effective to have PMs shadow activities that are more difficult to teach in theory, such as shadowing a PM having a difficult conversation with a client, or shadowing a front-end build-out demo to see how the PM positions the meeting and our process to the client. More straightforward tasks like setting up a Harvest project could be done via pairing, since it’s easy to get the hang of with a little guidance.

    Pairing

    While shadowing is certainly helpful, we try to get PMs into pairing mode pretty quickly, since we’ve found that most folks learn better by doing than by watching. Sometimes this might mean having a new PM setting up an invoice or budget sheet for a client while a more experienced PM sits next to them, talking them through the process. We’ve found that having a newer PM lead straightforward activities with guidance tends to be more effective than the newer PM merely watching the more experienced PM do that activity.

    Another tactic we take is to have both PMs complete a task independently, and then meet and talk through their work, with the more experienced PM giving the less experienced PM feedback. That helps the newer PM think through a task on their own, and gain experience, but still have the chance to see how someone else would have approached the task and get meaningful feedback.

    Leading

    Once new PMs are ready to be in the driver’s seat, they are staffed as the lead on projects. The timing of when someone shifts into a lead role depends on how much prior experience that person has, as well as what types of projects are actively ready to be worked on.

    Most early-career project managers have a behind-the-scenes project mentor (another PM) on at least their first couple projects, so they have a dedicated person to ask questions and get advice from who also has more detailed context than that person’s manager would. For example, mentors often shadow key client and internal meetings and have more frequent check-ins with mentees. This might be less necessary at a company where all the projects are fairly similar, but at Viget, our projects vary widely in scale and services provided, as well as client needs. Because of this, there’s no “one size fits all” process and we have a significant amount of customization per project, which can be daunting to new PMs who are still getting the hang of things.

    For these mentorship pairings, we use a mentorship plan document (template here) to help the mentor and mentee work together to define goals, mentorship focuses, and touchpoints. Sometimes the mentee’s manager will take a first stab at filling out the plan, other times, the mentor will start that process.

    Management Touchpoints

    Along the way, we make sure new PMs have touchpoints with their managers to get the level of support they need to grow and succeed. Managers have regular 1:1s with PMs that are referred to as “project 1:1s”, and are used for the managee to talk through and get advice on challenges or questions related to the projects they’re working on—though really, they can be used for whatever topics are on the managee’s mind. PMs typically have 1:1s with managers daily the first week, two to three times per week after that for the first month or so, then scale down to once per week, and then scale down to bi-weekly after the first six months.

    In addition to project 1:1s, we also have monthly 1:1s that are more bigger-picture and focused on goal-setting and progress, project feedback from that person’s peers, reflection on how satisfied and fulfilled they’re feeling in their role, and talking through project/industry interests which informs what projects we should advocate for them to be staffed on. We have a progress log template that we customize per PM to keep track of goals and progress.

    We try to foster a supportive environment that encourages growth, feedback, and experiential learning, but also that lets folks have the autonomy to get in the driver’s seat as soon as they’re comfortable. Interested in learning more about what it’s like to work at Viget? Check out our open positions here.




    up

    Upcoming: Google IO

    At Google IO June 27-29 the Android platform will be on display. Direct from a recent slamdown legal court grudge win against Java steward Oracle, the Android crew will be able to tell you  about what is new and what is upcoming in Android, how you can monetize Google apps, multiversioning and more. Much will Read the rest...




    up

    Scaling up CSS

    CSS has a habit of creeping up on you. If you’re not careful, your humble stylesheet can go from a few flourishes to a giant maintenance tangle. Before you can say “12-deep nested div”, your in a world of duplication and complexity that prevents you from making timely user-interface updates. [Medium’s](https://medium.com) one organisation that’s been Read the rest...







    up

    Support Communication During Conversation




    up

    My PTSD can be a weight. But in this pandemic, it feels like a superpower.

    For the first time, it seems, the entire world knows what it’s like to live inside my head.




    up

    How Coal Country Is Cleaning Up Its Act

    By Mason Adams Yes! Magazine A program in eastern Kentucky is retraining miners in industries that help mitigate the environmental impacts of mining on communities. Like many men raised in eastern Kentucky, Frank Morris spent a chunk of his working … Continue reading




    up

    Coronavirus is Shutting Down the Meat Supply Chain

    The United States faces a major meat shortage due to virus infections at processing plants. It means millions of pigs could be put down without ever making it to table. This is what the predicament looks like on a Minnesota farm. ... According to the Minnesota Pork Producers Association, an estimated 10,000 pigs are being euthanised every day in the state. ... [Farmer Mike Boerboom:] "On the same day that we're euthanising pigs - and it's a horrible day - is the same day that a grocery store 10 miles away may not get a shipment of pork. It's just that the supply chain is broken at this point."




    up

    Judge Could Hold Up Trump Administration's Bid to Clear Flynn, Legal Experts say

    The notoriously independent-minded federal judge who once said he was disgusted by the conduct of Michael Flynn could block the administration's bid to drop criminal charges against the former adviser to President Donald Trump, legal experts said.




    up

    Scientists Obtain 'lucky' Image of Jupiter

    Astronomers have produced a remarkable new image of Jupiter, tracing the glowing regions of warmth that lurk beneath the gas giant's cloud tops. The picture was captured in infared by the Gemini North Telescope in Hawaii, and is one of the sharpest observations of the planet ever made from the ground.




    up

    Self Reliance + Personal Uprising with John Jantsch

    John Jantsch is a veteran marketer. He’s written several bestselling books including Duct Tape Marketing and The Referral Engine. He’s out with a new book called the Self-Reliant Entrepreneur: 366 Daily Meditations to Feed Your Soul and Grow Your Business  As you might know, I’m a bit of a fan of daily habits, so of course John gives us a little preview into some of the daily explorations of thoughts and writings from notable American authors. Of course, that’s not all…  we also get into: We go deep into following your own path and listening to your intuition. What we can learn from rabble rousers of our history and those who embraced counter culture to follow their own beliefs. The role that self-awareness has in pursuing our dreams. and much more. Enjoy! FOLLOW JOHN: facebook | twitter | website Listen to the Podcast Subscribe   This podcast is brought to you by CreativeLive. CreativeLive is the world’s largest hub for online creative education in photo/video, art/design, music/audio, craft/maker, money/life and the ability to make a living in any of those disciplines. They are high quality, highly curated classes taught by the world’s top experts — Pulitzer, Oscar, Grammy Award winners, New […]

    The post Self Reliance + Personal Uprising with John Jantsch appeared first on Chase Jarvis Photography.




    up

    Committed to the wrong branch? -, @{upstream}, and @{-1} to the rescue

    I get into this situation sometimes. Maybe you do too. I merge feature work into a branch used to collect features, and then continue development but on that branch instead of back on the feature branch

    git checkout feature
    # ... bunch of feature commits ...
    git push
    git checkout qa-environment
    git merge --no-ff --no-edit feature
    git push
    # deploy qa-environment to the QA remote environment
    # ... more feature commits ...
    # oh. I'm not committing in the feature branch like I should be

    and have to move those commits to the feature branch they belong in and take them out of the throwaway accumulator branch

    git checkout feature
    git cherry-pick origin/qa-environment..qa-environment
    git push
    git checkout qa-environment
    git reset --hard origin/qa-environment
    git merge --no-ff --no-edit feature
    git checkout feature
    # ready for more feature commits

    Maybe you prefer

    git branch -D qa-environment
    git checkout qa-environment

    over

    git checkout qa-environment
    git reset --hard origin/qa-environment

    Either way, that works. But it'd be nicer if we didn't have to type or even remember the branches' names and the remote's name. They are what is keeping this from being a context-independent string of commands you run any time this mistake happens. That's what we're going to solve here.

    Shorthands for longevity

    I like to use all possible natively supported shorthands. There are two broad motivations for that.

    1. Fingers have a limited number of movements in them. Save as many as possible left late in life.
    2. Current research suggests that multitasking has detrimental effects on memory. Development tends to be very heavy on multitasking. Maybe relieving some of the pressure on quick-access short term memory (like knowing all relevant branch names) add up to leave a healthier memory down the line.

    First up for our scenario: the - shorthand, which refers to the previously checked out branch. There are a few places we can't use it, but it helps a lot:

    Bash
    # USING -
    
    git checkout feature
    # hack hack hack
    git push
    git checkout qa-environment
    git merge --no-ff --no-edit -        # ????
    git push
    # hack hack hack
    # whoops
    git checkout -        # now on feature ???? 
    git cherry-pick origin/qa-environment..qa-environment
    git push
    git checkout - # now on qa-environment ????
    git reset --hard origin/qa-environment
    git merge --no-ff --no-edit -        # ????
    git checkout -                       # ????
    # on feature and ready for more feature commits
    Bash
    # ORIGINAL
    
    git checkout feature
    # hack hack hack
    git push
    git checkout qa-environment
    git merge --no-ff --no-edit feature
    git push
    # hack hack hack
    # whoops
    git checkout feature
    git cherry-pick origin/qa-environment..qa-environment
    git push
    git checkout qa-environment
    git reset --hard origin/qa-environment
    git merge --no-ff --no-edit feature
    git checkout feature
    # ready for more feature commits

    We cannot use - when cherry-picking a range

    > git cherry-pick origin/-..-
    fatal: bad revision 'origin/-..-'
    
    > git cherry-pick origin/qa-environment..-
    fatal: bad revision 'origin/qa-environment..-'

    and even if we could we'd still have provide the remote's name (here, origin).

    That shorthand doesn't apply in the later reset --hard command, and we cannot use it in the branch -D && checkout approach either. branch -D does not support the - shorthand and once the branch is deleted checkout can't reach it with -:

    # assuming that branch-a has an upstream origin/branch-a
    > git checkout branch-a
    > git checkout branch-b
    > git checkout -
    > git branch -D -
    error: branch '-' not found.
    > git branch -D branch-a
    > git checkout -
    error: pathspec '-' did not match any file(s) known to git

    So we have to remember the remote's name (we know it's origin because we are devoting memory space to knowing that this isn't one of those times it's something else), the remote tracking branch's name, the local branch's name, and we're typing those all out. No good! Let's figure out some shorthands.

    @{-<n>} is hard to say but easy to fall in love with

    We can do a little better by using @{-<n>} (you'll also sometimes see it referred to be the older @{-N}). It is a special construct for referring to the nth previously checked out ref.

    > git checkout branch-a
    > git checkout branch-b
    > git rev-parse --abbrev-rev @{-1} # the name of the previously checked out branch
    branch-a
    > git checkout branch-c
    > git rev-parse --abbrev-rev @{-2} # the name of branch checked out before the previously checked out one
    branch-a

    Back in our scenario, we're on qa-environment, we switch to feature, and then want to refer to qa-environment. That's @{-1}! So instead of

    git cherry-pick origin/qa-environment..qa-environment

    We can do

    git cherry-pick origin/qa-environment..@{-1}

    Here's where we are (🎉 marks wins from -, 💥 marks the win from @{-1})

    Bash
    # USING - AND @{-1}
    
    git checkout feature
    # hack hack hack
    git push
    git checkout qa-environment
    git merge --no-ff --no-edit -                # ????
    git push
    # hack hack hack
    # whoops
    git checkout -                               # ????
    git cherry-pick origin/qa-environment..@{-1} # ????
    git push
    git checkout -                               # ????
    git reset --hard origin/qa-environment
    git merge --no-ff --no-edit -                # ????
    git checkout -                               # ????
    # ready for more feature commits
    Bash
    # ORIGINAL
    
    git checkout feature
    # hack hack hack
    git push
    git checkout qa-environment
    git merge --no-ff --no-edit feature
    git push
    # hack hack hack
    # whoops
    git checkout feature
    git cherry-pick origin/qa-environment..qa-environment
    git push
    git checkout qa-environment
    git reset --hard origin/qa-environment
    git merge --no-ff --no-edit feature
    git checkout feature
    # ready for more feature commits

    One down, two to go: we're still relying on memory for the remote's name and the remote branch's name and we're still typing both out in full. Can we replace those with generic shorthands?

    @{-1} is the ref itself, not the ref's name, we can't do

    > git cherry-pick origin/@{-1}..@{-1}
    origin/@{-1}
    fatal: ambiguous argument 'origin/@{-1}': unknown revision or path not in the working tree.
    Use '--' to separate paths from revisions, like this:
    'git <command> [<revision>...] -- [<file>...]'

    because there is no branch origin/@{-1}. For the same reason, @{-1} does not give us a generalized shorthand for the scenario's later git reset --hard origin/qa-environment command.

    But good news!

    Do @{u} @{push}

    @{upstream} or its shorthand @{u} is the remote branch a that would be pulled from if git pull were run. @{push} is the remote branch that would be pushed to if git push was run.

    > git checkout branch-a
    Switched to branch 'branch-a'
    Your branch is ahead of 'origin/branch-a' by 3 commits.
      (use "git push" to publish your local commits)
    > git reset --hard origin/branch-a
    HEAD is now at <the SHA origin/branch-a is at>

    we can

    > git checkout branch-a
    Switched to branch 'branch-a'
    Your branch is ahead of 'origin/branch-a' by 3 commits.
      (use "git push" to publish your local commits)
    > git reset --hard @{u}                                # <-- So Cool!
    HEAD is now at <the SHA origin/branch-a is at>

    Tacking either onto a branch name will give that branch's @{upstream} or @{push}. For example

    git checkout branch-a@{u}

    is the branch branch-a pulls from.

    In the common workflow where a branch pulls from and pushes to the same branch, @{upstream} and @{push} will be the same, leaving @{u} as preferable for its terseness. @{push} shines in triangular workflows where you pull from one remote and push to another (see the external links below).

    Going back to our scenario, it means short, portable commands with a minimum human memory footprint. (🎉 marks wins from -, 💥 marks the win from @{-1}, 😎 marks the wins from @{u}.)

    Bash
    # USING - AND @{-1} AND @{u}
    
    git checkout feature
    # hack hack hack
    git push
    git checkout qa-environment
    git merge --no-ff --no-edit -    # ????
    git push
    # hack hack hack
    # whoops
    git checkout -                   # ????
    git cherry-pick @{-1}@{u}..@{-1} # ????????
    git push
    git checkout -                   # ????
    git reset --hard @{u}            # ????
    git merge --no-ff --no-edit -    # ????
    git checkout -                   # ????
    # ready for more feature commits
    Bash
    # ORIGINAL
    
    git checkout feature
    # hack hack hack
    git push
    git checkout qa-environment
    git merge --no-ff --no-edit feature
    git push
    # hack hack hack
    # whoops
    git checkout feature
    git cherry-pick origin/qa-environment..qa-environment
    git push
    git checkout qa-environment
    git reset --hard origin/qa-environment
    git merge --no-ff --no-edit feature
    git checkout feature
    # ready for more feature commits

    Make the things you repeat the easiest to do

    Because these commands are generalized, we can run some series of them once, maybe

    git checkout - && git reset --hard @{u} && git checkout -

    or

    git checkout - && git cherry-pick @{-1}@{u}.. @{-1} && git checkout - && git reset --hard @{u} && git checkout -

    and then those will be in the shell history just waiting to be retrieved and run again the next time, whether with CtrlR incremental search or history substring searching bound to the up arrow or however your interactive shell is configured. Or make it an alias, or even better an abbreviation if your interactive shell supports them. Save the body wear and tear, give memory a break, and level up in Git.

    And keep going

    The GitHub blog has a good primer on triangular workflows and how they can polish your process of contributing to external projects.

    The FreeBSD Wiki has a more in-depth article on triangular workflow process (though it doesn't know about @{push} and @{upstream}).

    The construct @{-<n>} and the suffixes @{push} and @{upstream} are all part of the gitrevisions spec. Direct links to each:



      • Code
      • Front-end Engineering
      • Back-end Engineering

      up

      Setting New Project Managers Up for Success

      At Viget, we’ve brought on more than a few new Project Managers over the past couple of years, as we continue to grow. The awesome new people we’ve hired have ranged in their levels of experience, but some of them are earlier in their careers and need support from more experienced PMs to develop their skills and flourish.

      We have different levels of training and support for new PMs. These broadly fall into four categories:

      • Onboarding: Learning about Viget tools and processes
      • Shadowing: Learning by watching others
      • Pairing: Learning by doing collaboratively
      • Leading: Learning by doing solo

      Onboarding

      In addition to conducting intro sessions to each discipline at Viget, new Viget PMs go through a lengthy set of training sessions that are specific to the PM lab. These include intros to:

      PM tools and resourcesProject processes
      Project typesProject checklists
      Project taskingProject planning
      Budgets, schedules, and resourcingRetrospectives
      Working with remote teamsProject kickoffs
      Thinking about developmentGithub and development workflow
      Tickets, definition, and documentationQA testing
      Account management

      Shadowing

      After PMs complete the onboarding process, they start shadowing other PMs’ projects to get exposure to the different types of projects we run (since the variety is large). We cater length and depth of shadowing based on how much experience a PM has coming in. We also try to expose PMs to multiple project managers, so they can see how PM style differs person-to-person.

      We’ve found that it can be most effective to have PMs shadow activities that are more difficult to teach in theory, such as shadowing a PM having a difficult conversation with a client, or shadowing a front-end build-out demo to see how the PM positions the meeting and our process to the client. More straightforward tasks like setting up a Harvest project could be done via pairing, since it’s easy to get the hang of with a little guidance.

      Pairing

      While shadowing is certainly helpful, we try to get PMs into pairing mode pretty quickly, since we’ve found that most folks learn better by doing than by watching. Sometimes this might mean having a new PM setting up an invoice or budget sheet for a client while a more experienced PM sits next to them, talking them through the process. We’ve found that having a newer PM lead straightforward activities with guidance tends to be more effective than the newer PM merely watching the more experienced PM do that activity.

      Another tactic we take is to have both PMs complete a task independently, and then meet and talk through their work, with the more experienced PM giving the less experienced PM feedback. That helps the newer PM think through a task on their own, and gain experience, but still have the chance to see how someone else would have approached the task and get meaningful feedback.

      Leading

      Once new PMs are ready to be in the driver’s seat, they are staffed as the lead on projects. The timing of when someone shifts into a lead role depends on how much prior experience that person has, as well as what types of projects are actively ready to be worked on.

      Most early-career project managers have a behind-the-scenes project mentor (another PM) on at least their first couple projects, so they have a dedicated person to ask questions and get advice from who also has more detailed context than that person’s manager would. For example, mentors often shadow key client and internal meetings and have more frequent check-ins with mentees. This might be less necessary at a company where all the projects are fairly similar, but at Viget, our projects vary widely in scale and services provided, as well as client needs. Because of this, there’s no “one size fits all” process and we have a significant amount of customization per project, which can be daunting to new PMs who are still getting the hang of things.

      For these mentorship pairings, we use a mentorship plan document (template here) to help the mentor and mentee work together to define goals, mentorship focuses, and touchpoints. Sometimes the mentee’s manager will take a first stab at filling out the plan, other times, the mentor will start that process.

      Management Touchpoints

      Along the way, we make sure new PMs have touchpoints with their managers to get the level of support they need to grow and succeed. Managers have regular 1:1s with PMs that are referred to as “project 1:1s”, and are used for the managee to talk through and get advice on challenges or questions related to the projects they’re working on—though really, they can be used for whatever topics are on the managee’s mind. PMs typically have 1:1s with managers daily the first week, two to three times per week after that for the first month or so, then scale down to once per week, and then scale down to bi-weekly after the first six months.

      In addition to project 1:1s, we also have monthly 1:1s that are more bigger-picture and focused on goal-setting and progress, project feedback from that person’s peers, reflection on how satisfied and fulfilled they’re feeling in their role, and talking through project/industry interests which informs what projects we should advocate for them to be staffed on. We have a progress log template that we customize per PM to keep track of goals and progress.

      We try to foster a supportive environment that encourages growth, feedback, and experiential learning, but also that lets folks have the autonomy to get in the driver’s seat as soon as they’re comfortable. Interested in learning more about what it’s like to work at Viget? Check out our open positions here.




      up

      Freaky Logo Friday. Logo Mash-Ups

      What would happen if the logos of famous brands suddenly wake up in the bed of another? Thats what the new tumblr blog Logo Mashups explores. It makes us think in the in the connections they share and how they are constantly appealing to our consumer mind through the commons grounds of symbology and typography.




      up

      Brighten Up Someone’s May (2020 Wallpapers Edition)

      May is here! And even though the current situation makes this a different kind of May, with a new routine and different things on our minds as in the years before, luckily some things never change. Like the fact that we start into the new month with some fresh inspiration. Since more than nine years already, we challenge you, the design community, to get creative and produce wallpaper designs for our monthly posts.




      up

      Watch YouTube’s most informed sock puppet teach you how to shoot with manual exposure

      For those who’ve never seen TheCrafsMan SteadyCraftin on YouTube, you’re in for a treat – even if you already understand everything contained within this 25-minute video. For those who have, you know exactly what to expect. I’ve been following this rather unconventional channel for a while now. It covers a lot of handy DIY and […]

      The post Watch YouTube’s most informed sock puppet teach you how to shoot with manual exposure appeared first on DIY Photography.




      up

      Non-associative Frobenius algebras for simply laced Chevalley groups. (arXiv:2005.02625v1 [math.RA] CROSS LISTED)

      We provide an explicit construction for a class of commutative, non-associative algebras for each of the simple Chevalley groups of simply laced type. Moreover, we equip these algebras with an associating bilinear form, which turns them into Frobenius algebras. This class includes a 3876-dimensional algebra on which the Chevalley group of type E8 acts by automorphisms. We also prove that these algebras admit the structure of (axial) decomposition algebras.




      up

      The entropy of holomorphic correspondences: exact computations and rational semigroups. (arXiv:2004.13691v1 [math.DS] CROSS LISTED)

      We study two notions of topological entropy of correspondences introduced by Friedland and Dinh-Sibony. Upper bounds are known for both. We identify a class of holomorphic correspondences whose entropy in the sense of Dinh-Sibony equals the known upper bound. This provides an exact computation of the entropy for rational semigroups. We also explore a connection between these two notions of entropy.




      up

      Regular Tur'an numbers of complete bipartite graphs. (arXiv:2005.02907v2 [math.CO] UPDATED)

      Let $mathrm{rex}(n, F)$ denote the maximum number of edges in an $n$-vertex graph that is regular and does not contain $F$ as a subgraph. We give lower bounds on $mathrm{rex}(n, F)$, that are best possible up to a constant factor, when $F$ is one of $C_4$, $K_{2,t}$, $K_{3,3}$ or $K_{s,t}$ when $t>s!$.




      up

      A Marstrand type slicing theorem for subsets of $mathbb{Z}^2 subset mathbb{R}^2$ with the mass dimension. (arXiv:2005.02813v2 [math.CO] UPDATED)

      We prove a Marstrand type slicing theorem for the subsets of the integer square lattice. This problem is the dual of the corresponding projection theorem, which was considered by Glasscock, and Lima and Moreira, with the mass and counting dimensions applied to subsets of $mathbb{Z}^{d}$. In this paper, more generally we deal with a subset of the plane that is $1$ separated, and the result for subsets of the integer lattice follow as a special case. We show that the natural slicing question in this setting is true with the mass dimension.




      up

      On the affine Hecke category. (arXiv:2005.02647v2 [math.RT] UPDATED)

      We give a complete (and surprisingly simple) description of the affine Hecke category for $ ilde{A}_2$ in characteristic zero. More precisely, we calculate the Kazhdan-Lusztig polynomials, give a recursive formula for the projectors defining indecomposable objects and, for each coefficient of a Kazhdan-Lusztig polynomial, we produce a set of morphisms with such a cardinality.




      up

      On the finiteness of ample models. (arXiv:2005.02613v2 [math.AG] UPDATED)

      In this paper, we generalize the finiteness of models theorem in [BCHM06] to Kawamata log terminal pairs with fixed Kodaira dimension. As a consequence, we prove that a Kawamata log terminal pair with $mathbb{R}-$boundary has a canonical model, and can be approximated by log pairs with $mathbb{Q}-$boundary and the same canonical model.




      up

      Arthur packets for $G_2$ and perverse sheaves on cubics. (arXiv:2005.02438v2 [math.RT] UPDATED)

      This paper begins the project of defining Arthur packets of all unipotent representations for the $p$-adic exceptional group $G_2$. Here we treat the most interesting case by defining and computing Arthur packets with component group $S_3$. We also show that the distributions attached to these packets are stable, subject to a hypothesis. This is done using a self-contained microlocal analysis of simple equivariant perverse sheaves on the moduli space of homogeneous cubics in two variables. In forthcoming work we will treat the remaining unipotent representations and their endoscopic classification and strengthen our result on stability.




      up

      Solutions for nonlinear Fokker-Planck equations with measures as initial data and McKean-Vlasov equations. (arXiv:2005.02311v2 [math.AP] UPDATED)

      One proves the existence and uniqueness of a generalized (mild) solution for the nonlinear Fokker--Planck equation (FPE) egin{align*} &u_t-Delta (eta(u))+{mathrm{ div}}(D(x)b(u)u)=0, quad tgeq0, xinmathbb{R}^d, d e2, \ &u(0,cdot)=u_0,mbox{in }mathbb{R}^d, end{align*} where $u_0in L^1(mathbb{R}^d)$, $etain C^2(mathbb{R})$ is a nondecreasing function, $bin C^1$, bounded, $bgeq 0$, $Din(L^2cap L^infty)(mathbb{R}^d;mathbb{R}^d)$ with ${ m div}, Din L^infty(mathbb{R}^d)$, and ${ m div},Dgeq0$, $eta$ strictly increasing, if $b$ is not constant. Moreover, $t o u(t,u_0)$ is a semigroup of contractions in $L^1(mathbb{R}^d)$, which leaves invariant the set of probability density functions in $mathbb{R}^d$. If ${ m div},Dgeq0$, $eta'(r)geq a|r|^{alpha-1}$, and $|eta(r)|leq C r^alpha$, $alphageq1,$ $alpha>frac{d-2}d$, $dgeq3$, then $|u(t)|_{L^infty}le Ct^{-frac d{d+(alpha-1)d}} |u_0|^{frac2{2+(m-1)d}},$ $t>0$, and the existence extends to initial data $u_0$ in the space $mathcal{M}_b$ of bounded measures in $mathbb{R}^d$. The solution map $mumapsto S(t)mu$, $tgeq0$, is a Lipschitz contractions on $mathcal{M}_b$ and weakly continuous in $tin[0,infty)$. As a consequence for arbitrary initial laws, we obtain weak solutions to a class of McKean-Vlasov SDEs with coefficients which have singular dependence on the time marginal laws.




      up

      Almost invariant subspaces of the shift operator on vector-valued Hardy spaces. (arXiv:2005.02243v2 [math.FA] UPDATED)

      In this article, we characterize nearly invariant subspaces of finite defect for the backward shift operator acting on the vector-valued Hardy space which is a vectorial generalization of a result of Chalendar-Gallardo-Partington (C-G-P). Using this characterization of nearly invariant subspace under the backward shift we completely describe the almost invariant subspaces for the shift and its adjoint acting on the vector valued Hardy space.




      up

      Cameron-Liebler sets in Hamming graphs. (arXiv:2005.02227v2 [math.CO] UPDATED)

      In this paper, we discuss Cameron-Liebler sets in Hamming graphs, obtain several equivalent definitions and present all classification results.




      up

      Some Quot schemes in tilted hearts and moduli spaces of stable pairs. (arXiv:2005.02202v2 [math.AG] UPDATED)

      For a smooth projective variety $X$, we study analogs of Quot functors in hearts of non-standard $t$-structures of $D^b(mathrm{Coh}(X))$. The technical framework is that of families of $t$-structures, as studied in arXiv:1902.08184. We provide several examples and suggest possible directions of further investigation, as we reinterpret moduli spaces of stable pairs, in the sense of Thaddeus (arXiv:alg-geom/9210007) and Huybrechts-Lehn (arXiv:alg-geom/9211001), as instances of Quot schemes.




      up

      Nonlinear singular problems with indefinite potential term. (arXiv:2005.01789v3 [math.AP] UPDATED)

      We consider a nonlinear Dirichlet problem driven by a nonhomogeneous differential operator plus an indefinite potential. In the reaction we have the competing effects of a singular term and of concave and convex nonlinearities. In this paper the concave term is parametric. We prove a bifurcation-type theorem describing the changes in the set of positive solutions as the positive parameter $lambda$ varies. This work continues our research published in arXiv:2004.12583, where $xi equiv 0 $ and in the reaction the parametric term is the singular one.




      up

      Entropy and Emergence of Topological Dynamical Systems. (arXiv:2005.01548v2 [math.DS] UPDATED)

      A topological dynamical system $(X,f)$ induces two natural systems, one is on the probability measure spaces and other one is on the hyperspace.

      We introduce a concept for these two spaces, which is called entropy order, and prove that it coincides with topological entropy of $(X,f)$. We also consider the entropy order of an invariant measure and a variational principle is established.




      up

      Resonances as Viscosity Limits for Exponentially Decaying Potentials. (arXiv:2005.01257v2 [math.SP] UPDATED)

      We show that the complex absorbing potential (CAP) method for computing scattering resonances applies to the case of exponentially decaying potentials. That means that the eigenvalues of $-Delta + V - iepsilon x^2$, $|V(x)|leq e^{-2gamma |x|}$ converge, as $ epsilon o 0+ $, to the poles of the meromorphic continuation of $ ( -Delta + V -lambda^2 )^{-1} $ uniformly on compact subsets of $ extrm{Re},lambda>0$, $ extrm{Im},lambda>-gamma$, $arglambda > pi/8$.




      up

      Approximate Two-Sphere One-Cylinder Inequality in Parabolic Periodic Homogenization. (arXiv:2005.00989v2 [math.AP] UPDATED)

      In this paper, for a family of second-order parabolic equation with rapidly oscillating and time-dependent periodic coefficients, we are interested in an approximate two-sphere one-cylinder inequality for these solutions in parabolic periodic homogenization, which implies an approximate quantitative propagation of smallness. The proof relies on the asymptotic behavior of fundamental solutions and the Lagrange interpolation technique.




      up

      Solving an inverse problem for the Sturm-Liouville operator with a singular potential by Yurko's method. (arXiv:2004.14721v2 [math.SP] UPDATED)

      An inverse spectral problem for the Sturm-Liouville operator with a singular potential from the class $W_2^{-1}$ is solved by the method of spectral mappings. We prove the uniqueness theorem, develop a constructive algorithm for solution, and obtain necessary and sufficient conditions of solvability for the inverse problem in the self-adjoint and the non-self-adjoint cases




      up

      An embedding of the Morse boundary in the Martin boundary. (arXiv:2004.14624v2 [math.GR] UPDATED)

      We construct a one-to-one continuous map from the Morse boundary of a hierarchically hyperbolic group to its Martin boundary. This construction is based on deviation inequalities generalizing Ancona's work on hyperbolic groups. This provides a possibly new metrizable topology on the Morse boundary of such groups. We also prove that the Morse boundary has measure 0 with respect to the harmonic measure unless the group is hyperbolic.




      up

      Complete reducibility: Variations on a theme of Serre. (arXiv:2004.14604v2 [math.GR] UPDATED)

      In this note, we unify and extend various concepts in the area of $G$-complete reducibility, where $G$ is a reductive algebraic group. By results of Serre and Bate--Martin--R"{o}hrle, the usual notion of $G$-complete reducibility can be re-framed as a property of an action of a group on the spherical building of the identity component of $G$. We show that other variations of this notion, such as relative complete reducibility and $sigma$-complete reducibility, can also be viewed as special cases of this building-theoretic definition, and hence a number of results from these areas are special cases of more general properties.




      up

      Lagrangian geometry of matroids. (arXiv:2004.13116v2 [math.CO] UPDATED)

      We introduce the conormal fan of a matroid M, which is a Lagrangian analog of the Bergman fan of M. We use the conormal fan to give a Lagrangian interpretation of the Chern-Schwartz-MacPherson cycle of M. This allows us to express the h-vector of the broken circuit complex of M in terms of the intersection theory of the conormal fan of M. We also develop general tools for tropical Hodge theory to prove that the conormal fan satisfies Poincar'e duality, the hard Lefschetz theorem, and the Hodge-Riemann relations. The Lagrangian interpretation of the Chern-Schwartz-MacPherson cycle of M, when combined with the Hodge-Riemann relations for the conormal fan of M, implies Brylawski's and Dawson's conjectures that the h-vectors of the broken circuit complex and the independence complex of M are log-concave sequences.




      up

      On the exterior Dirichlet problem for a class of fully nonlinear elliptic equations. (arXiv:2004.12660v3 [math.AP] UPDATED)

      In this paper, we mainly establish the existence and uniqueness theorem for solutions of the exterior Dirichlet problem for a class of fully nonlinear second-order elliptic equations related to the eigenvalues of the Hessian, with prescribed generalized symmetric asymptotic behavior at infinity. Moreover, we give some new results for the Hessian equations, Hessian quotient equations and the special Lagrangian equations, which have been studied previously.




      up

      Differentiating through Log-Log Convex Programs. (arXiv:2004.12553v2 [math.OC] UPDATED)

      We show how to efficiently compute the derivative (when it exists) of the solution map of log-log convex programs (LLCPs). These are nonconvex, nonsmooth optimization problems with positive variables that become convex when the variables, objective functions, and constraint functions are replaced with their logs. We focus specifically on LLCPs generated by disciplined geometric programming, a grammar consisting of a set of atomic functions with known log-log curvature and a composition rule for combining them. We represent a parametrized LLCP as the composition of a smooth transformation of parameters, a convex optimization problem, and an exponential transformation of the convex optimization problem's solution. The derivative of this composition can be computed efficiently, using recently developed methods for differentiating through convex optimization problems. We implement our method in CVXPY, a Python-embedded modeling language and rewriting system for convex optimization. In just a few lines of code, a user can specify a parametrized LLCP, solve it, and evaluate the derivative or its adjoint at a vector. This makes it possible to conduct sensitivity analyses of solutions, given perturbations to the parameters, and to compute the gradient of a function of the solution with respect to the parameters. We use the adjoint of the derivative to implement differentiable log-log convex optimization layers in PyTorch and TensorFlow. Finally, we present applications to designing queuing systems and fitting structured prediction models.




      up

      Triangles in graphs without bipartite suspensions. (arXiv:2004.11930v2 [math.CO] UPDATED)

      Given graphs $T$ and $H$, the generalized Tur'an number ex$(n,T,H)$ is the maximum number of copies of $T$ in an $n$-vertex graph with no copies of $H$. Alon and Shikhelman, using a result of ErdH os, determined the asymptotics of ex$(n,K_3,H)$ when the chromatic number of $H$ is greater than 3 and proved several results when $H$ is bipartite. We consider this problem when $H$ has chromatic number 3. Even this special case for the following relatively simple 3-chromatic graphs appears to be challenging.

      The suspension $widehat H$ of a graph $H$ is the graph obtained from $H$ by adding a new vertex adjacent to all vertices of $H$. We give new upper and lower bounds on ex$(n,K_3,widehat{H})$ when $H$ is a path, even cycle, or complete bipartite graph. One of the main tools we use is the triangle removal lemma, but it is unclear if much stronger statements can be proved without using the removal lemma.




      up

      Convergent normal forms for five dimensional totally nondegenerate CR manifolds in C^4. (arXiv:2004.11251v2 [math.CV] UPDATED)

      Applying the equivariant moving frames method, we construct convergent normal forms for real-analytic 5-dimensional totally nondegenerate CR submanifolds of C^4. These CR manifolds are divided into several biholomorphically inequivalent subclasses, each of which has its own complete normal form. Moreover it is shown that, biholomorphically, Beloshapka's cubic model is the unique member of this class with the maximum possible dimension seven of the corresponding algebra of infinitesimal CR automorphisms. Our results are also useful in the study of biholomorphic equivalence problem between CR manifolds, in question.




      up

      Finite dimensional simple modules of $(q, mathbf{Q})$-current algebras. (arXiv:2004.11069v2 [math.RT] UPDATED)

      The $(q, mathbf{Q})$-current algebra associated with the general linear Lie algebra was introduced by the second author in the study of representation theory of cyclotomic $q$-Schur algebras. In this paper, we study the $(q, mathbf{Q})$-current algebra $U_q(mathfrak{sl}_n^{langle mathbf{Q} angle}[x])$ associated with the special linear Lie algebra $mathfrak{sl}_n$. In particular, we classify finite dimensional simple $U_q(mathfrak{sl}_n^{langle mathbf{Q} angle}[x])$-modules.




      up

      Automorphisms of shift spaces and the Higman--Thomspon groups: the one-sided case. (arXiv:2004.08478v2 [math.GR] UPDATED)

      Let $1 le r < n$ be integers. We give a proof that the group $mathop{mathrm{Aut}}({X_{n}^{mathbb{N}}, sigma_{n}})$ of automorphisms of the one-sided shift on $n$ letters embeds naturally as a subgroup $mathcal{h}_{n}$ of the outer automorphism group $mathop{mathrm{Out}}(G_{n,r})$ of the Higman-Thompson group $G_{n,r}$. From this, we can represent the elements of $mathop{mathrm{Aut}}({X_{n}^{mathbb{N}}, sigma_{n}})$ by finite state non-initial transducers admitting a very strong synchronizing condition.

      Let $H in mathcal{H}_{n}$ and write $|H|$ for the number of states of the minimal transducer representing $H$. We show that $H$ can be written as a product of at most $|H|$ torsion elements. This result strengthens a similar result of Boyle, Franks and Kitchens, where the decomposition involves more complex torsion elements and also does not support practical extit{a priori} estimates of the length of the resulting product.

      We also give new proofs of some known results about $mathop{mathrm{Aut}}({X_{n}^{mathbb{N}}, sigma_{n}})$.




      up

      Equivalence of classical and quantum completeness for real principal type operators on the circle. (arXiv:2004.07547v3 [math.AP] UPDATED)

      In this article, we prove that the completeness of the Hamilton flow and essential self-dajointness are equivalent for real principal type operators on the circle. Moreover, we study spectral properties of these operators.




      up

      Hessian quotient equations on exterior domains. (arXiv:2004.06908v2 [math.AP] UPDATED)

      It is well-known that a celebrated J"{o}rgens-Calabi-Pogorelov theorem for Monge-Amp`ere equations states that any classical (viscosity) convex solution of $det(D^2u)=1$ in $mathbb{R}^n$ must be a quadratic polynomial. Therefore, it is an interesting topic to study the existence and uniqueness theorem of such fully nonlinear partial differential equations' Dirichlet problems on exterior domains with suitable asymptotic conditions at infinity. As a continuation of the works of Caffarelli-Li for Monge-Amp`ere equation and of Bao-Li-Li for $k$-Hessian equations, this paper is devoted to the solvability of the exterior Dirichlet problem of Hessian quotient equations $sigma_k(lambda(D^2u))/sigma_l(lambda(D^2u))=1$ for any $1leq l<kleq n$ in all dimensions $ngeq 2$. By introducing the concept of generalized symmetric subsolutions and then using the Perron's method, we establish the existence theorem for viscosity solutions, with prescribed asymptotic behavior which is close to some quadratic polynomial at infinity.




      up

      On the Asymptotic $u_0$-Expected Flooding Time of Stationary Edge-Markovian Graphs. (arXiv:2004.03660v4 [math.PR] UPDATED)

      Consider that $u_0$ nodes are aware of some piece of data $d_0$. This note derives the expected time required for the data $d_0$ to be disseminated through-out a network of $n$ nodes, when communication between nodes evolves according to a graphical Markov model $overline{ mathcal{G}}_{n,hat{p}}$ with probability parameter $hat{p}$. In this model, an edge between two nodes exists at discrete time $k in mathbb{N}^+$ with probability $hat{p}$ if this edge existed at $k-1$, and with probability $(1-hat{p})$ if this edge did not exist at $k-1$. Each edge is interpreted as a bidirectional communication link over which data between neighbors is shared. The initial communication graph is assumed to be an Erdos-Renyi random graph with parameters $(n,hat{p})$, hence we consider a emph{stationary} Markov model $overline{mathcal{G}}_{n,hat{p}}$. The asymptotic "$u_0$-expected flooding time" of $overline{mathcal{G}}_{n,hat{p}}$ is defined as the expected number of iterations required to transmit the data $d_0$ from $u_0$ nodes to $n$ nodes, in the limit as $n$ approaches infinity. Although most previous results on the asymptotic flooding time in graphical Markov models are either emph{almost sure} or emph{with high probability}, the bounds obtained here are emph{in expectation}. However, our bounds are tighter and can be more complete than previous results.