ue

Record-Low 2016 Antarctic Sea Ice Due to ‘Perfect Storm’ of Tropical, Polar Conditions

By Hannah Hickey UWNEWS While winter sea ice in the Arctic is declining so dramatically that ships can now navigate those waters without any icebreaker escort, the scene in the Southern Hemisphere is very different. Sea ice area around Antarctica … Continue reading




ue

The Strategic Pyramid – Brand Purpose, Mission, Vision & Values

Do you know the difference between a mission and a vision? Or the difference between a purpose and a goal? Don’t worry, you’re not the only one. Let's clarify!




ue

5 Tips That You Absolutely Must Know To Design A Unique Metal Business Card

Every day thousands of business cards exchange hands, and these business cards often get lost in mounds of other cards. Often, clients are unable to reach you just because they couldn't find your...



  • Design Roud-up

ue

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

    ue

    CLI Equivalents for Common MAMP PRO and Sequel Pro Tasks

    Working on website front ends I sometimes use MAMP PRO to manage local hosts and Sequel Pro to manage databases. Living primarily in my text editor, a terminal, and a browser window, moving to these click-heavy dedicated apps can feel clunky. Happily, the tasks I have most frequently turned to those apps for —starting and stopping servers, creating new hosts, and importing, exporting, deleting, and creating databases— can be done from the command line.

    I still pull up MAMP PRO if I need to change a host's PHP version or work with its other more specialized settings, or Sequel Pro to quickly inspect a database, but for the most part I can stay on the keyboard and in my terminal. Here's how:

    Command Line MAMP PRO

    You can start and stop MAMP PRO's servers from the command line. You can even do this when the MAMP PRO desktop app isn't open.

    Note: MAMP PRO's menu icon will not change color to reflect the running/stopped status when the status is changed via the command line.

    • Start the MAMP PRO servers:
    /Applications/MAMP PRO.app/Contents/MacOS/MAMP PRO cmd startServers
    • Stop the MAMP PRO servers:
    /Applications/MAMP PRO.app/Contents/MacOS/MAMP PRO cmd stopServers
    • Create a host (replace host_name and root_path):
    /Applications/MAMP PRO.app/Contents/MacOS/MAMP PRO cmd createHost host_name root_path

    MAMP PRO-friendly Command Line Sequel Pro

    Note: if you don't use MAMP PRO, just replace the /Applications/MAMP/Library/bin/mysql with mysql.

    In all of the following commands, replace username with your user name (locally this is likely root) and database_name with your database name. The -p (password) flag with no argument will trigger an interactive password prompt. This is more secure than including your password in the command itself (like -pYourPasswordHere). Of course, if you're using the default password root is not particular secure to begin with so you might just do -pYourPasswordHere.

    Setting the -h (host) flag to localhost or 127.0.0.1 tells mysql to look at what's on localhost. With the MAMP PRO servers running, that will be the MAMP PRO databases.

    # with the MAMP PRO servers running, these are equivalent:
    # /Applications/MAMP/Library/bin/mysql -h 127.0.0.1 other_options
    # and
    # /Applications/MAMP/Library/bin/mysql -h localhost other_options
    
    /Applications/MAMP/Library/bin/mysql mysql_options # enter. opens an interactive mysql session
    mysql> some command; # don't forget the semicolon
    mysql> exit;
    • Create a local database
    # with the MAMP PRO servers running
    # replace `username` with your username, which is `root` by default
    /Applications/MAMP/Library/bin/mysql -h localhost -u username -p -e "create database database_name"

    or

    # with the MAMP PRO servers running
    # replace `username` (`root` by default) and `database_name`
    /Applications/MAMP/Library/bin/mysql -h localhost -u username -p # and then enter
    mysql> create database database_name; # don't forget the semicolon
    mysql> exit

        MAMP PRO's databases are stored in /Library/Application Support/appsolute/MAMP PRO/db so to confirm that it worked you can

    ls /Library/Application Support/appsolute/MAMP PRO/db
    # will output the available mysql versions. For example I have
    mysql56_2018-11-05_16-25-13     mysql57
    
    # If it isn't clear which one you're after, open the main MAMP PRO and click
    # on the MySQL "servers and services" item. In my case it shows "Version: 5.7.26"
    
    # Now look in the relevant MySQL directory
    ls /Library/Application Support/appsolute/MAMP PRO/db/mysql57
    # the newly created database should be in the list
    • Delete a local database
    # with the MAMP PRO servers running
    # replace `username` (`root` by default) and `database_name`
    /Applications/MAMP/Library/bin/mysql -h localhost -u username -p -e "drop database database_name"
    • Export a dump of a local database. Note that this uses mysqldump not mysql.
    # to export an uncompressed file
    # replace `username` (`root` by default) and `database_name`
    /Applications/MAMP/Library/bin/mysqldump -h localhost -u username -p database_name > the/output/path.sql
    
    # to export a compressed file
    # replace `username` (`root` by default) and `database_name`
    /Applications/MAMP/Library/bin/mysqldump -h localhost -u username -p database_name | gzip -c > the/output/path.gz

    • Export a local dump from an external database over SSH. Note that this uses mysqldump not mysql.

    # replace `ssh-user`, `ssh_host`, `mysql_user`, `database_name`, and the output path
    
    # to end up with an uncompressed file
    ssh ssh_user@ssh_host "mysqldump -u mysql_user -p database_name | gzip -c" | gunzip > the/output/path.sql
    
    # to end up with a compressed file
    ssh ssh_user@ssh_host "mysqldump -u mysql_user -p database_name | gzip -c" > the/output/path.gz
    • Import a local database dump into a local database
    # with the MAMP PRO servers running
    # replace `username` (`root` by default) and `database_name`
    /Applications/MAMP/Library/bin/mysql -h localhost -u username -p database_name < the/dump/path.sql
    • Import a local database dump into a remote database over SSH. Use care with this one. But if you are doing it with Sequel Pro —maybe you are copying a Craft site's database from a production server to a QA server— you might as well be able to do it on the command line.
    ssh ssh_user@ssh_host "mysql -u username -p remote_database_name" < the/local/dump/path.sql


    For me, using the command line instead of the MAMP PRO and Sequel Pro GUI means less switching between keyboard and mouse, less opening up GUI features that aren't typically visible on my screen, and generally better DX. Give it a try! And while MAMP Pro's CLI is limited to the essentials, command line mysql of course knows no limits. If there's something else you use Sequel Pro for, you may be able to come up with a mysql CLI equivalent you like even better.



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




    ue

    Value Neutrality and the Ethics of Open Source

    2019 was the year of the “ethical source” licenses – or ‘open source with a moral clause’ licenses. It was also the year many in the open source movement labeled any attempt at adding moral clauses to open source licenses not only made them not open source licenses, but were a dangerous attack on the […]

    The post Value Neutrality and the Ethics of Open Source appeared first on MOR10.




    ue

    9 Convincing Reasons Why Designers Should Pursue Personal Projects

    Web designers have skills and expertise that open up a whole world of possibilities. Many designers and developers choose to pursue personal projects in their own time, which can be a nice change of...

    Click through to read the rest of the story on the Vandelay Design Blog.




    ue

    Insects Are ‘Glue in Nature’ and Must Be Rescued to Save Humanity, Says Top Scientist

    By Jake Johnson Common Dreams Rapidly falling insect populations, said Anne Sverdrup-Thygeson, “will make it even more difficult than today to get enough food for the human population of the planet, to get good health and freshwater for everybody.” A … Continue reading




    ue

    Insects Are ‘Glue in Nature’ and Must Be Rescued to Save Humanity, Says Top Scientist

    By Jake Johnson Common Dreams Rapidly falling insect populations, said Anne Sverdrup-Thygeson, “will make it even more difficult than today to get enough food for the human population of the planet, to get good health and freshwater for everybody.” A … Continue reading




    ue

    Finding a Balance: College, Work, Family ... and Issues from TBI

    Returning to school as a veteran — especially with a brain injury — can be difficult. Adam suggests strategies like starting slowly or taking a smaller course load that balances better with work and life.




    ue

    Using Communities to Further the True Meaning of Resiliency

    Service members, veterans, and their caregivers are incredibly resilient, says Adam, but learning to connect with whatever community you are in will only strengthen that resiliency.




    ue

    Electric Cars and Surging Solar Spell Market Doom for Fossil Fuels

    By Jessica Corbett Common Dreams Analyses show how demand for electric vehicles and rapidly falling renewable energy prices could take down oil and gas industry As an increasing number of nations make plans for banning gas and diesel vehicles within … Continue reading



    • Business & Economy

    ue

    Warming Weather Could Reduce the Nutritional Value of Rice

    UN Environment Press Release Hundreds of millions of people in Asia rely on rice not only as a staple but as their main source of nutrition. But new research suggests the rice they eat will become less nutritious due to … Continue reading




    ue

    Mysterious Sharks Dance Away Bethel's COVID-19 Blues

    A couple of mysterious sharks have caught the fancy of the town. Maybe it's the cabin fever finally setting in, or perhaps this is what happens when you go too long without washing your mask, but Bethelites are going wild for two people in inflatable shark suits who pop up randomly around town.




    ue

    the quest for personal style (with pal Alex Strohl)

    One of the most common questions I get is about how to stand out + how to develop personal style. So when fellow photographer Alex Strohl stopped by the studio, I wanted to get his take on this ever-popular question. If you’re not familiar with Alex’s work, a quick spin on instagram will fill in the blanks. He’s a photographer that tells stories through pictures and film. And when you see his work, there is a distinct thumbprint on it. Developing a personal style is critical. It’s the reason why someone would seek you out vs someone else. It’s the thing that differentiates your work from everyone else. There’s a thousand ways to develop your personal style. In our conversation, Alex shares some of his insights he’s gained along the way. Though each of us may take a different path to get there, there is one constant, and that’s doing a lot of work. So take a listen and then get back to work. ???? Enjoy and subscribe to the podcast below if you dig.  Please give Alex a shout on social @alexstrohl ???? FOLLOW ALEX: twitter | instagram | website Listen to the Podcast Subscribe   Watch the Episode  […]

    The post the quest for personal style (with pal Alex Strohl) appeared first on Chase Jarvis Photography.




    ue

    Finding True North with Chelsea Yamase

    So many of us are going along on the path that we think we want, only to realize that something is missing. The same was true for today’s guest, Chelsea Yamase (@chelseakauai) who found herself heading into a potential career that was slowly killing her soul. Through a winding path of architecture, graphic design, journalism, and a myriad of side hustles, she found herself faced with the big question: pursue the unconventional life of your dreams or stick to a “real job”. She lept. Today, Chelsea is a sought after model, photographer, influencer and movement enthusiast from Hawaii with a focus on mindful living. She’s been featured in Travel and Leisure, Cosmopolitan, Condé Nast Traveler, to name a few, and and worked with numerous brands such as Canon USA, Adidas, Google, Athleta, GoPro, DJI Global and The National Parks Foundation. In this episode: How to give yourself structure that can help you take a leap into an unconventional lifestyle What can you make with what’s around you? Constraints are a path to creativity and a key gaining new perspectives As money and opportunities come in, how do you stay in alignment with your values and the work you really want […]

    The post Finding True North with Chelsea Yamase appeared first on Chase Jarvis Photography.




    ue

    Start in a Place That’s True with IN-Q

    Storytelling is one of the oldest art forms. It connects us. Our brains our wired for it. Story is not only a way for us to share and connect with others, but a path to deeper understanding and vulnerability. That’s why I’m very excited to have on the show award winning Poet, Author, and Performer, IN-Q. In addition to his poetry, live performances and storytelling workshops, IN-Q is a multi-platinum songwriter having worked with Selena Gomez, Aloe Black, Miley Cyrus, Mike Posner, and Foster the People. Oprah named him on her SuperSoul 100 list of the world’s most influential thought leaders. He’s been featured all over the place including A&E, ESPN, HBO, and companies such as Nike, Instagram, Spotify, and many more. In our conversation, we get into his new book, Inquire Within. In fact, he reads a bit of it on the show. It’s an awe-inspiring rhythmic exploration of transforming love, loss, and forgiveness into growth. Super excited for you to hear it. We also get into: Developing your own voice by focusing on what’s moving and meaningful for you How to find calm in the chaos Using vulnerability to short-cut and deepen relationships in our lives and much, […]

    The post Start in a Place That’s True with IN-Q appeared first on Chase Jarvis Photography.




    ue

    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

      ue

      CLI Equivalents for Common MAMP PRO and Sequel Pro Tasks

      Working on website front ends I sometimes use MAMP PRO to manage local hosts and Sequel Pro to manage databases. Living primarily in my text editor, a terminal, and a browser window, moving to these click-heavy dedicated apps can feel clunky. Happily, the tasks I have most frequently turned to those apps for —starting and stopping servers, creating new hosts, and importing, exporting, deleting, and creating databases— can be done from the command line.

      I still pull up MAMP PRO if I need to change a host's PHP version or work with its other more specialized settings, or Sequel Pro to quickly inspect a database, but for the most part I can stay on the keyboard and in my terminal. Here's how:

      Command Line MAMP PRO

      You can start and stop MAMP PRO's servers from the command line. You can even do this when the MAMP PRO desktop app isn't open.

      Note: MAMP PRO's menu icon will not change color to reflect the running/stopped status when the status is changed via the command line.

      • Start the MAMP PRO servers:
      /Applications/MAMP PRO.app/Contents/MacOS/MAMP PRO cmd startServers
      • Stop the MAMP PRO servers:
      /Applications/MAMP PRO.app/Contents/MacOS/MAMP PRO cmd stopServers
      • Create a host (replace host_name and root_path):
      /Applications/MAMP PRO.app/Contents/MacOS/MAMP PRO cmd createHost host_name root_path

      MAMP PRO-friendly Command Line Sequel Pro

      Note: if you don't use MAMP PRO, just replace the /Applications/MAMP/Library/bin/mysql with mysql.

      In all of the following commands, replace username with your user name (locally this is likely root) and database_name with your database name. The -p (password) flag with no argument will trigger an interactive password prompt. This is more secure than including your password in the command itself (like -pYourPasswordHere). Of course, if you're using the default password root is not particular secure to begin with so you might just do -pYourPasswordHere.

      Setting the -h (host) flag to localhost or 127.0.0.1 tells mysql to look at what's on localhost. With the MAMP PRO servers running, that will be the MAMP PRO databases.

      # with the MAMP PRO servers running, these are equivalent:
      # /Applications/MAMP/Library/bin/mysql -h 127.0.0.1 other_options
      # and
      # /Applications/MAMP/Library/bin/mysql -h localhost other_options
      
      /Applications/MAMP/Library/bin/mysql mysql_options # enter. opens an interactive mysql session
      mysql> some command; # don't forget the semicolon
      mysql> exit;
      • Create a local database
      # with the MAMP PRO servers running
      # replace `username` with your username, which is `root` by default
      /Applications/MAMP/Library/bin/mysql -h localhost -u username -p -e "create database database_name"

      or

      # with the MAMP PRO servers running
      # replace `username` (`root` by default) and `database_name`
      /Applications/MAMP/Library/bin/mysql -h localhost -u username -p # and then enter
      mysql> create database database_name; # don't forget the semicolon
      mysql> exit

          MAMP PRO's databases are stored in /Library/Application Support/appsolute/MAMP PRO/db so to confirm that it worked you can

      ls /Library/Application Support/appsolute/MAMP PRO/db
      # will output the available mysql versions. For example I have
      mysql56_2018-11-05_16-25-13     mysql57
      
      # If it isn't clear which one you're after, open the main MAMP PRO and click
      # on the MySQL "servers and services" item. In my case it shows "Version: 5.7.26"
      
      # Now look in the relevant MySQL directory
      ls /Library/Application Support/appsolute/MAMP PRO/db/mysql57
      # the newly created database should be in the list
      • Delete a local database
      # with the MAMP PRO servers running
      # replace `username` (`root` by default) and `database_name`
      /Applications/MAMP/Library/bin/mysql -h localhost -u username -p -e "drop database database_name"
      • Export a dump of a local database. Note that this uses mysqldump not mysql.
      # to export an uncompressed file
      # replace `username` (`root` by default) and `database_name`
      /Applications/MAMP/Library/bin/mysqldump -h localhost -u username -p database_name > the/output/path.sql
      
      # to export a compressed file
      # replace `username` (`root` by default) and `database_name`
      /Applications/MAMP/Library/bin/mysqldump -h localhost -u username -p database_name | gzip -c > the/output/path.gz

      • Export a local dump from an external database over SSH. Note that this uses mysqldump not mysql.

      # replace `ssh-user`, `ssh_host`, `mysql_user`, `database_name`, and the output path
      
      # to end up with an uncompressed file
      ssh ssh_user@ssh_host "mysqldump -u mysql_user -p database_name | gzip -c" | gunzip > the/output/path.sql
      
      # to end up with a compressed file
      ssh ssh_user@ssh_host "mysqldump -u mysql_user -p database_name | gzip -c" > the/output/path.gz
      • Import a local database dump into a local database
      # with the MAMP PRO servers running
      # replace `username` (`root` by default) and `database_name`
      /Applications/MAMP/Library/bin/mysql -h localhost -u username -p database_name < the/dump/path.sql
      • Import a local database dump into a remote database over SSH. Use care with this one. But if you are doing it with Sequel Pro —maybe you are copying a Craft site's database from a production server to a QA server— you might as well be able to do it on the command line.
      ssh ssh_user@ssh_host "mysql -u username -p remote_database_name" < the/local/dump/path.sql


      For me, using the command line instead of the MAMP PRO and Sequel Pro GUI means less switching between keyboard and mouse, less opening up GUI features that aren't typically visible on my screen, and generally better DX. Give it a try! And while MAMP Pro's CLI is limited to the essentials, command line mysql of course knows no limits. If there's something else you use Sequel Pro for, you may be able to come up with a mysql CLI equivalent you like even better.



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

      ue

      How To Build A Vue Survey App Using Firebase Authentication And Database

      In this tutorial, you’ll be building a Survey App, where we’ll learn to validate our users form data, implement Authentication in Vue, and be able to receive survey data using Vue and Firebase (a BaaS platform). As we build this app, we’ll be learning how to handle form validation for different kinds of data, including reaching out to the backend to check if an email is already taken, even before the user submits the form during sign up.




      ue

      The Canon EOS R5 release gets closer as it passes Bluetooth certification

      We’re a big step closer to a Canon EOS R5 release announcement now, as Nokishita Tweets that it has passed its Bluetooth certification. The belief is that the EOS R5 was originally scheduled to ship in July, and Canon Rumors reports that they’ve been told that’ll still happen. With lockdowns still in effect in much […]

      The post The Canon EOS R5 release gets closer as it passes Bluetooth certification appeared first on DIY Photography.






      ue

      Paper: Evidence for Area as the Primary Visual Cue in Pie Charts

      How we read pie charts is still an open question: is it angle? Is it area? Is it arc length? In a study I'm presenting as a short paper at the IEEE VIS conference in Vancouver next week, I tried to tease the visual cues apart – using modeling and 3D pie charts. The big […]




      ue

      Goals Scored Picks *** Tuesday *** 19 September 2017

      We have a new preview on https://www.007soccerpicks.com/tuesday-matches/goals-scored-picks-tuesday-19-september-2017/

      Goals Scored Picks *** Tuesday *** 19 September 2017

      MATCH GOALS PICKS To return: ??? USD Odds: 6.27 Stake: 100 USD   Starting in   Teams   Our Prediction Odds Burnley - Leeds Soccer: England - Carabao Cup OVER 2.5 2.00 Schalke - Bayern Munich Soccer: Germany -…




      ue

      Half Time Picks *** Tuesday *** 19 September 2017

      We have a new preview on https://www.007soccerpicks.com/tuesday-matches/half-time-picks-tuesday-19-september-2017/

      Half Time Picks *** Tuesday *** 19 September 2017

      HALF TIME PICKS To return: ??? USD Odds: 6.93 Stake: 100 USD   Starting in   Teams   Half Time Our Pick Odds Crystal Palace - Huddersfield Soccer: England - Carabao Cup HALF TIME X 2.10 FC Augsburg - RB…




      ue

      Asian Handicap Picks *** Tuesday *** 19 September 2017

      We have a new preview on https://www.007soccerpicks.com/tuesday-matches/asian-handicap-picks-tuesday-19-september-2017/

      Asian Handicap Picks *** Tuesday *** 19 September 2017

      ASIAN HANDICAP PICKS To return: ??? USD Odds: 4.08 Stake: 100 USD   Starting in   Teams   Our Prediction goes for Odds West Ham - Bolton Soccer: England - Carabao Cup West Ham -0.5 1.55 Bologna - Inter Soccer:…




      ue

      Double Chance Picks *** Tuesday *** 19 September 2017

      We have a new preview on https://www.007soccerpicks.com/tuesday-matches/double-chance-picks-tuesday-19-september-2017/

      Double Chance Picks *** Tuesday *** 19 September 2017

      DOUBLE CHANCE PICKS To return: ??? USD Odds: 1.95 Stake: 100 USD   Starting in   Teams   Our Prediction Odds Bournemouth - Brighton Soccer: England - Carabao Cup 1X 1.20 Wolfsburg - SV Werder Bremen Soccer: Germany…




      ue

      Fulltime Result Picks *** Tuesday *** 19 September 2017

      We have a new preview on https://www.007soccerpicks.com/tuesday-matches/fulltime-result-picks-tuesday-19-september-2017/

      Fulltime Result Picks *** Tuesday *** 19 September 2017

      FULLTIME PICKS To return: ??? USD Odds: 5.40 Stake: 100 USD   Starting in   Teams   Our Prediction Odds GAIS - Frej Soccer: Sweden - Superettan 1 1.82 Bologna - Inter Soccer: Italy - Serie…




      ue

      Corners Picks *** Tuesday *** 19 September 2017

      We have a new preview on https://www.007soccerpicks.com/tuesday-matches/corners-picks-tuesday-19-september-2017/

      Corners Picks *** Tuesday *** 19 September 2017

      MATCH CORNERS PICKS To return: ??? USD Odds: 1.55 Stake: 100 USD   Starting in   Teams   Our Prediction Odds Valencia - Malaga Soccer: Spain - LaLiga OVER 9.5 CORNERS 1.55




      ue

      Both teams to score Picks *** Tuesday *** 19 September 2017

      We have a new preview on https://www.007soccerpicks.com/tuesday-matches/teams-score-picks-tuesday-19-september-2017/

      Both teams to score Picks *** Tuesday *** 19 September 2017

      BOTH TEAMS TO SCORE To return: ??? USD Odds: 4.75 Stake: 100 USD   Starting in   Teams   BTS Our Pick Odds Schalke - Bayern Munich Soccer: Germany - Bundesliga Both to score YES 1.60 Leicester -…



      • both teams to score picks
      • both teams to score tips
      • Both teams to score
      • Tuesday Matches

      ue

      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.




      ue

      Weak-strong uniqueness for an elastic plate interacting with the Navier Stokes equation. (arXiv:2003.04049v2 [math.AP] UPDATED)

      We show weak-strong uniqueness and stability results for the motion of a two or three dimensional fluid governed by the Navier-Stokes equation interacting with a flexible, elastic plate of Koiter type. The plate is situated at the top of the fluid and as such determines the variable part of a time changing domain (that is hence a part of the solution) containing the fluid. The uniqueness result is a consequence of a stability estimate where the difference of two solutions is estimated by the distance of the initial values and outer forces. For that we introduce a methodology that overcomes the problem that the two (variable in time) domains of the fluid velocities and pressures are not the same. The estimate holds under the assumption that one of the two weak solutions possesses some additional higher regularity. The additional regularity is exclusively requested for the velocity of one of the solutions resembling the celebrated Ladyzhenskaya-Prodi-Serrin conditions in the framework of variable domains.




      ue

      Eigenvalues of the Finsler $p$-Laplacian on varying domains. (arXiv:1912.00152v4 [math.AP] UPDATED)

      We study the dependence of the first eigenvalue of the Finsler $p$-Laplacian and the corresponding eigenfunctions upon perturbation of the domain and we generalize a few results known for the standard $p$-Laplacian. In particular, we prove a Frech'{e}t differentiability result for the eigenvalues, we compute the corresponding Hadamard formulas and we prove a continuity result for the eigenfunctions. Finally, we briefly discuss a well-known overdetermined problem and we show how to deduce the Rellich-Pohozaev identity for the Finsler $p$-Laplacian from the Hadamard formula.




      ue

      Khintchine-type theorems for values of subhomogeneous functions at integer points. (arXiv:1910.02067v2 [math.NT] UPDATED)

      This work has been motivated by recent papers that quantify the density of values of generic quadratic forms and other polynomials at integer points, in particular ones that use Rogers' second moment estimates. In this paper we establish such results in a very general framework. Namely, given any subhomogeneous function (a notion to be defined) $f: mathbb{R}^n o mathbb{R}$, we derive a necessary and sufficient condition on the approximating function $psi$ for guaranteeing that a generic element $fcirc g$ in the $G$-orbit of $f$ is $psi$-approximable; that is, $|fcirc g(mathbf{v})| le psi(|mathbf{v}|)$ for infinitely many $mathbf{v} in mathbb{Z}^n$. We also deduce a sufficient condition in the case of uniform approximation. Here, $G$ can be any closed subgroup of $operatorname{ASL}_n(mathbb{R})$ satisfying certain axioms that allow for the use of Rogers-type estimates.




      ue

      Bernoulli decomposition and arithmetical independence between sequences. (arXiv:1811.11545v2 [math.NT] UPDATED)

      In this paper we study the following set[A={p(n)+2^nd mod 1: ngeq 1}subset [0.1],] where $p$ is a polynomial with at least one irrational coefficient on non constant terms, $d$ is any real number and for $ain [0,infty)$, $a mod 1$ is the fractional part of $a$. By a Bernoulli decomposition method, we show that the closure of $A$ must have full Hausdorff dimension.




      ue

      Twisted Sequences of Extensions. (arXiv:1808.07936v3 [math.RT] UPDATED)

      Gabber and Joseph introduced a ladder diagram between two natural sequences of extensions. Their diagram is used to produce a 'twisted' sequence that is applied to old and new results on extension groups in category $mathcal{O}$.




      ue

      Extremal values of the Sackin balance index for rooted binary trees. (arXiv:1801.10418v5 [q-bio.PE] UPDATED)

      Tree balance plays an important role in different research areas like theoretical computer science and mathematical phylogenetics. For example, it has long been known that under the Yule model, a pure birth process, imbalanced trees are more likely than balanced ones. Therefore, different methods to measure the balance of trees were introduced. The Sackin index is one of the most frequently used measures for this purpose. In many contexts, statements about the minimal and maximal values of this index have been discussed, but formal proofs have never been provided. Moreover, while the number of trees with maximal Sackin index as well as the number of trees with minimal Sackin index when the number of leaves is a power of 2 are relatively easy to understand, the number of trees with minimal Sackin index for all other numbers of leaves was completely unknown. In this manuscript, we fully characterize trees with minimal and maximal Sackin index and also provide formulas to explicitly calculate the number of such trees.




      ue

      Groups up to congruence relation and from categorical groups to c-crossed modules. (arXiv:2005.03601v1 [math.CT])

      We introduce a notion of c-group, which is a group up to congruence relation and consider the corresponding category. Extensions, actions and crossed modules (c-crossed modules) are defined in this category and the semi-direct product is constructed. We prove that each categorical group gives rise to c-groups and to a c-crossed module, which is a connected, special and strict c-crossed module in the sense defined by us. The results obtained here will be applied in the proof of an equivalence of the categories of categorical groups and connected, special and strict c-crossed modules.




      ue

      Steiner symmetry in the minimization of the principal positive eigenvalue of an eigenvalue problem with indefinite weight. (arXiv:2005.03581v1 [math.AP])

      In cite{CC} the authors, investigating a model of population dynamics, find the following result. Let $Omegasubset mathbb{R}^N$, $Ngeq 1$, be a bounded smooth domain. The weighted eigenvalue problem $-Delta u =lambda m u $ in $Omega$ under homogeneous Dirichlet boundary conditions, where $lambda in mathbb{R}$ and $min L^infty(Omega)$, is considered. The authors prove the existence of minimizers $check m$ of the principal positive eigenvalue $lambda_1(m)$ when $m$ varies in a class $mathcal{M}$ of functions where average, maximum, and minimum values are given. A similar result is obtained in cite{CCP} when $m$ is in the class $mathcal{G}(m_0)$ of rearrangements of a fixed $m_0in L^infty(Omega)$. In our work we establish that, if $Omega$ is Steiner symmetric, then every minimizer in cite{CC,CCP} inherits the same kind of symmetry.




      ue

      Continuity in a parameter of solutions to boundary-value problems in Sobolev spaces. (arXiv:2005.03494v1 [math.CA])

      We consider the most general class of linear inhomogeneous boundary-value problems for systems of ordinary differential equations of an arbitrary order whose solutions and right-hand sides belong to appropriate Sobolev spaces. For parameter-dependent problems from this class, we prove a constructive criterion for their solutions to be continuous in the Sobolev space with respect to the parameter. We also prove a two-sided estimate for the degree of convergence of these solutions to the solution of the nonperturbed problem.




      ue

      The conjecture of Erd"{o}s--Straus is true for every $nequiv 13 extrm{ mod }24$. (arXiv:2005.03273v1 [math.NT])

      In this short note we give a proof of the famous conjecture of Erd"{o}s-Straus for the case $nequiv13 extrm{ mod } 24.$ The Erd"{o}s--Straus conjecture states that the equation $frac{4}{n}=frac{1}{x}+frac{1}{y}+frac{1}{z}$ has positive integer solutions $x,y,z$ for every $ngeq 2$. It is open for $nequiv 1 extrm{ mod } 12$. Indeed, in all of the other cases the solutions are always easy to find. We prove that the conjecture is true for every $nequiv 13 extrm{ mod } 24$. Therefore, to solve it completely, it remains to find solutions for every $nequiv 1 extrm{ mod } 24$.




      ue

      Pointwise densities of homogeneous Cantor measure and critical values. (arXiv:2005.03269v1 [math.DS])

      Let $Nge 2$ and $ hoin(0,1/N^2]$. The homogenous Cantor set $E$ is the self-similar set generated by the iterated function system

      [

      left{f_i(x)= ho x+frac{i(1- ho)}{N-1}: i=0,1,ldots, N-1 ight}.

      ]

      Let $s=dim_H E$ be the Hausdorff dimension of $E$, and let $mu=mathcal H^s|_E$ be the $s$-dimensional Hausdorff measure restricted to $E$. In this paper we describe, for each $xin E$, the pointwise lower $s$-density $Theta_*^s(mu,x)$ and upper $s$-density $Theta^{*s}(mu, x)$ of $mu$ at $x$. This extends some early results of Feng et al. (2000). Furthermore, we determine two critical values $a_c$ and $b_c$ for the sets

      [

      E_*(a)=left{xin E: Theta_*^s(mu, x)ge a ight}quad extrm{and}quad E^*(b)=left{xin E: Theta^{*s}(mu, x)le b ight}

      ] respectively, such that $dim_H E_*(a)>0$ if and only if $a<a_c$, and that $dim_H E^*(b)>0$ if and only if $b>b_c$. We emphasize that both values $a_c$ and $b_c$ are related to the Thue-Morse type sequences, and our strategy to find them relies on ideas from open dynamics and techniques from combinatorics on words.




      ue

      The Congruence Subgroup Problem for finitely generated Nilpotent Groups. (arXiv:2005.03263v1 [math.GR])

      The congruence subgroup problem for a finitely generated group $Gamma$ and $Gleq Aut(Gamma)$ asks whether the map $hat{G} o Aut(hat{Gamma})$ is injective, or more generally, what is its kernel $Cleft(G,Gamma ight)$? Here $hat{X}$ denotes the profinite completion of $X$. In the case $G=Aut(Gamma)$ we denote $Cleft(Gamma ight)=Cleft(Aut(Gamma),Gamma ight)$.

      Let $Gamma$ be a finitely generated group, $ar{Gamma}=Gamma/[Gamma,Gamma]$, and $Gamma^{*}=ar{Gamma}/tor(ar{Gamma})congmathbb{Z}^{(d)}$. Denote $Aut^{*}(Gamma)= extrm{Im}(Aut(Gamma) o Aut(Gamma^{*}))leq GL_{d}(mathbb{Z})$. In this paper we show that when $Gamma$ is nilpotent, there is a canonical isomorphism $Cleft(Gamma ight)simeq C(Aut^{*}(Gamma),Gamma^{*})$. In other words, $Cleft(Gamma ight)$ is completely determined by the solution to the classical congruence subgroup problem for the arithmetic group $Aut^{*}(Gamma)$.

      In particular, in the case where $Gamma=Psi_{n,c}$ is a finitely generated free nilpotent group of class $c$ on $n$ elements, we get that $C(Psi_{n,c})=C(mathbb{Z}^{(n)})={e}$ whenever $ngeq3$, and $C(Psi_{2,c})=C(mathbb{Z}^{(2)})=hat{F}_{omega}$ = the free profinite group on countable number of generators.




      ue

      An Issue Raised in 1978 by a Then-Future Editor-in-Chief of the Journal "Order": Does the Endomorphism Poset of a Finite Connected Poset Tell Us That the Poset Is Connected?. (arXiv:2005.03255v1 [math.CO])

      In 1978, Dwight Duffus---editor-in-chief of the journal "Order" from 2010 to 2018 and chair of the Mathematics Department at Emory University from 1991 to 2005---wrote that "it is not obvious that $P$ is connected and $P^P$ isomorphic to $Q^Q$ implies that $Q$ is connected," where $P$ and $Q$ are finite non-empty posets. We show that, indeed, under these hypotheses $Q$ is connected and $Pcong Q$.




      ue

      Approximate Performance Measures for a Two-Stage Reneging Queue. (arXiv:2005.03239v1 [math.PR])

      We study a two-stage reneging queue with Poisson arrivals, exponential services, and two levels of exponential reneging behaviors, extending the popular Erlang A model that assumes a constant reneging rate. We derive approximate analytical formulas representing performance measures for the two-stage queue following the Markov chain decomposition approach. Our formulas not only give accurate results spanning the heavy-traffic to the light-traffic regimes, but also provide insight into capacity decisions.




      ue

      On solving quadratic congruences. (arXiv:2005.03129v1 [math.NT])

      The paper proposes a polynomial formula for solution quadratic congruences in $mathbb{Z}_p$. This formula gives the correct answer for quadratic residue and zeroes for quadratic nonresidue. The general form of the formula for $p=3 ; m{mod},4$, $p=5 ; m{mod},8$ and for $p=9 ; m{mod},16$ are suggested.