Thursday, May 5, 2022

2022 Holiday Schedule

Date Holiday
Friday, December 31 *         New Year's Day
Monday, January 17         Birthday of Martin Luther King, Jr.
Monday, February 21 **         Washington’s Birthday
Monday, May 30         Memorial Day
Monday, June 20 *         Juneteenth National Independence Day
Monday, July 04         Independence Day
Monday, September 05         Labor Day
Monday, October 10         Columbus Day
Friday, November 11         Veterans Day
Thursday, November 24         Thanksgiving Day
Monday, December 26 *         Christmas Day

*If a holiday falls on a Saturday, for most Federal employees, the preceding Friday will be treated as a holiday for pay and leave purposes. (See 5 U.S.C. 6103(b).) If a holiday falls on a Sunday, for most Federal employees, the following Monday will be treated as a holiday for pay and leave purposes. (See Section 3(a) of Executive Order 11582, February 11, 1971.) See also our Federal Holidays – "In Lieu Of" Determination Fact Sheet at https://www.opm.gov/policy-data-oversight/pay-leave/work-schedules/fact-sheets/Federal-Holidays-In-Lieu-Of-Determination.

**This holiday is designated as "Washington’s Birthday" in section 6103(a) of title 5 of the United States Code, which is the law that specifies holidays for Federal employees. Though other institutions such as state and local governments and private businesses may use other names, it is our policy to always refer to holidays by the names designated in the law.

https://www.opm.gov/policy-data-oversight/pay-leave/federal-holidays/#url=2022

Wednesday, December 29, 2021

Chess 960 posible starting positions

Examples in several programming languages
http://rosettacode.org/wiki/Generate_Chess960_starting_position

All the positions with the standard ID number
https://chess960.net/wp-content/uploads/2018/02/chess960-starting-positions.pdf

https://www.chessprogramming.org/Chess960

https://github.com/MichaelB7/Chess960-Lookup/blob/master/src/960v09.c

https://en.wikipedia.org/wiki/Fischer_Random_Chess_starting_position

Very good explanation of the rules
https://codegolf.stackexchange.com/questions/12322/chess960-position-lookup/12333#12333

B   B   Q   N   N   R K R
4 * 4 * 6 * 5 * 4 * 1     = 1920

Bishops have to be of different colors (4 black squares, 4 whites squares).

There is only 1 possible position for the King and Rooks because it has to go
between the Rooks and there are only 3 squares available at that time.

Because the Knights change color when they move they could be interchanged
without any difference then 5 * 4 should be divided by 2 then
total number of positions = 960.

Tmux commands

# List sessions
# Alias ls
tmux list-sessions
tmux ls

# Create new session
# It is good practice to name sessions
tmux new -s right_window

# Detach a session
Ctrl-b d

# Attach a session using name
tmux a -t right_window

# Use mouse to select pane
Ctrl-b :
# then type
set -g mouse on

# Zoom a pane
Ctrl-b z

# Scroll
Ctrl-b [
# Quit
q

Backup bash script

https://github.com/64board/Bash/blob/main/backup.sh

 

Perl sort example

Sorting in Perl with user defined subroutines.

https://github.com/64board/Perl/blob/main/sort.pl

Perl Getopt::Std example

Example of using Getopt::Std module.

https://github.com/64board/Perl/blob/main/get_opt.pl

Tuesday, August 31, 2021

Perl Date::Manip::Date business day

 #!/usr/bin/perl

# Creates /etc/cron.d file entries, one per month,
# for a program that should run on the previous
# day to last business day of the month.
# Uses Date::Manip::Date module, https://metacpan.org/dist/Date-Manip/view/lib/Date/Manip/Date.pod.
# 64board@gmail.com
# 2021-08-31
 
use strict;
use warnings;

use Date::Manip::Date;

sub cron_entry {

    my ($date) = @_;

    return $date->printf("30 19 %d %m %a\troot\t/opt/balmo_id/run.sh");
}

##MAIN##

my @months = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);

my $date = new Date::Manip::Date;

foreach my $month (@months) {

    print "Month: $month\n";

    # Get the last day of the month of current year.
    $date->parse("last day in $month");

    print 'Last day of the month: ', $date->printf('%Y-%m-%d, %a'), "\n";

    # Don't check time for business day.
    my $checktime = 0;

    my $offset = 1;
    # Case of last day of the month is not a business day.
    if (!$date->is_business_day($checktime)) {
    $offset = 2;
    }

    # The pevious day to last business day of the month.
    $date->prev_business_day($offset, $checktime);

    print 'Previous business day: ', $date->printf('%Y-%m-%d, %a'), "\n";

    # The CRON entry, use CRON: label to filter the cron entries
    # from the output.
    print "CRON: ", cron_entry($date), "\n";
}

__END__