PHP function to check if a date is a holiday in Lithuania

Here is a simple function for PHP to check if a date, given in standard ISO format (Y-m-d) is a public holiday in Lithuania. I needed one for a project, so here it is for everyone:

 
/**
 * Checks if a passed date is a public holiday 
 * (or weekend) in Lithuania
 * 
 * @param bool $weekends - true if you want the function to include weekends
 *    default - false
 * @param string $date - 'Y-m-d' format date (or full ISO 8601 datetime string)
 *    defaults to current date
 * @return bool true (if holiday) or false (not a holiday)
*/
 
function is_lt_holiday(bool $weekends = false, string $date = null): int
{
    //date is today if it was not passed to the function
    if (!isset($date)) $date = date('Y-m-d');
 
    //check if the date is valid
    if (
         strlen($date) < 10 
      || !checkdate(substr($date,5,2), substr($date,8,2), substr($date,0,4))
    ) 
    {
        trigger_error('You shoud pass a valid date in \'Y-m-d\' format');
        return false;
    } 
 
    $year = substr($date,0,4);
    $mday = substr($date,5,5);
    $easter = date('Y-m-d',easter_date($year));
    $easter2 = date('Y-m-d', strtotime($easter . ' +1 day'));
    $public_holidays = [
        '01-01', //new year
        '02-16', //independence day
        '03-11', //restoration of independence day
        substr($easter,5,5), //easter day1
        substr($easter2,5,5), //easter day2
        '05-01', //int worker's day
        '06-24', //summer solstice
        '07-06', //state day
        '08-15', //mary's assumption
        '11-01', //all saints day
        '11-02', //day of the dead
        '12-24', //christmas eve
        '12-25', // christmas day1
        '12-26'  //christmas day2
       ];
 
    if (in_array($mday,$public_holidays)) {
        return true;
    }
    elseif (
       $weekends == true 
       && (date('D',strtotime($date)) == 'Sat' 
       || date('D',strtotime($date)) == 'Sun')
    ) 
    {
        return true;
    }
    return false;
}
 
 
// and now let's test it:
 
echo is_lt_holiday(true);
//today; it depends :)
echo is_lt_holiday(false,'2022-01-01');
//returns true
echo is_lt_holiday(false,'2022-01-02');
//returns false
echo is_lt_holiday(false,'2022-01-32');
//returns false and error notice - an impossible date

Apeliacinio teismo nuosprendis sausio 13-osios byloje

Besidomintieji Sausio 13-osios byla turbūt jau seniai susirado Lietuvos Apeliacinio Teismo nuosprendį. Tačiau tie, kas dar to nepadarė (o tas copy-paste tipografinis košmaras yra tokio dydžio, kad jį atsisiųsti iš Liteko man pavyko tik iš ketvirto karto), gali atsisiųsti štai šitą aptvarkytą elektroninės knygos versiją (su daugmaž veikiančia navigacija).

Atsisiųsti elektroninę knygą (EPUB), Atsisiųsti sutvarkytą teksto dokumentą (*.odt). Nuosprendis Liteko sistemoje.

Nuotraukoje – nuosprendžio paskelbimo LRT transliacijos stop kadras.

Downloading Manga Comics Using a Bash Script

My teenage daughter got immersed into manga, that is, Japanese comics books. That is not something that I would enjoy doing myself (never was much of a fan of comics books), but since she asked me to download the comics for offline reading, it became a father-and-daughter thing for us. So I decided to show her some Linux command line magic. After some tinkering I wrote a bash script that can download manga books from many popular manga sites to read offline, on an ebook reader. Toliau skaityti Downloading Manga Comics Using a Bash Script

Were There Sufficient Reasons to Refer Case „Drėlingas v. Lithuania” to the Grand Chamber of ECHR?

The text below discusses the grounds for referral of the case „Drėlingas v. Lithuania” to the Grand Chamber of the European Court of Human Rights.

Unfortunately the case was not referred to the Grand Chamber for review. It failed to be referred to the Grand Chamber not because there were not enough grounds, however. It should not be forgotten that the Grand Chamber of ECHR is not much like an appeals instance in the national court systems. Usually an appeals instance would take any appeal submitted in time. The cassation courts would accept any appeal that challenges the previous decisions based on the interpretation of the law. But it is not so with the Grand Chamber of ECHR. According to the Chancellery of the Court only ~5% of all cases that are appealed are examined by the Grand Chamber. That is, one case in twenty. Same happened in the case of Drėlingas v. Lithuania: 20 applications were rejected and one was accepted for review by a panel of five judges. Therefore, though the Chamber decision in the Drėlingas case did enter into force once the panel of five judges chose a different case as a more important one on September 9, 2019, the reasoning in the Chamber case is still superceded by the decision of the Grand Chamber in the case Vasiliauskas v. Lithuania. The text below explains, why I think the Chamber in Drėlingas case was wrong.

Toliau skaityti Were There Sufficient Reasons to Refer Case „Drėlingas v. Lithuania” to the Grand Chamber of ECHR?

Kaip nusipirkau suklastotą planšetę (ir kaip pavyko jos atsikratyti)

Prieš tris savaites pirkau dukrai planšetinį kompiuterį. Deja, pataikiau ant klastotės. Ypatingai buvo apmaudu ir nesmagu, nes kas jau kas, o aš turėjau suprasti iškart, kad su tuo kompiuteriu kažkas ne taip. Tai, kad to nesupratau laiku, kainavo man dvi savaites apmaudo.

Štai skelbimas „Išpardavimas Tik 149€ 64gb 4gb RAM 10 branduolių“, kuriame reklamuotą kompiuterį pirkau:

Skelbime nurodyti tokie pagrindiniai planšetės parametrai:

Ištraukos iš Tarptautinio Baudžiamojo Teismo nuosprendžio byloje „Prokuroras prieš Germain Katanga“

Žemiau pateikiu Tarptautinio baudžiamojo teismo 2014 m. kovo 7 d. nuosprendžio byloje „Prokuroras prieš Germain Katanga“ ištraukų vertimą. Šias ištraukas verčiau norėdamas detaliau analizuoti Vilniaus apygardos teismo 2019 m. kovo 27 d. nuosprendį sausio 13-osios byloje. Paviršutiniškai jį buvau apžvelgęs čia. Norėjau parodyti, kaip mūsų Vilniaus apygardos teismo svarstymai apie ataką prieš civilius 1991 m. sausio 11-13 dienomis atrodo analogiškų Tarptautinio Baudžiamojo Teismo svarstymų šviesoje.

Byloje „Prokuroras prieš Germain Katanga“ nagrinėtas Kongo Demokratinėje Respublikoje vykusio pilietinio karo metu įvykęs vieno kaimo užpuolimas. Teismas, vertindamas įvykio aplinkybes, pripažino egzistavus puolėjų bendrą siekį žudyti civilius gyventojus, tačiau tam konstatuoti neužteko vien fakto, kad žuvo nuo 60-ties iki 200 civilių. Teismas įvertino liudytojų parodymus, kad buvo šaudoma į bėgančius civilius, kad buvo mačetėmis užkapoti namuose pasislėpę vaikai ir moterys, kad kai kurios moterys tik apsimetusios kitos genties dalimi buvo paliktos gyvos ir pan. Skaitant teismo argumentus yra aišku, kad ne kaimo užėmimas, o patys civiliai gyventojai buvo taikinys. Taip pat svarbu atkreipti dėmesį į tai, kas nebuvo pripažinta bendru tikslu. Bendru užpuolikų tikslu nebuvo pripažinti, pvz., moterų prievartavimai ir pagrobimai sekso vergovei, nes tai buvo palyginti negausūs atvejai, apie kurių buvimą bendru užpuolikų tikslu įvykių aplinkybės spręsti neleido. Tik įvertinus bendrus užpuolikų tikslus teismas ėmėsi spręsti apie konkrečiai vado Germain Katanga atsakomybę dėl nusikaltimų, nes G. Katanga užpuolime asmeniškai nedalyvavo. Toliau skaityti Ištraukos iš Tarptautinio Baudžiamojo Teismo nuosprendžio byloje „Prokuroras prieš Germain Katanga“

„Deja, Lietuva yra įvairi“