Névnapok

Írtam a .bashrc-mhez egy kőegyszerű shell scriptet, ami kiírja az aktuális
névnapot.
Nem egy nagy etwas, de ha más szeretne ilyet, és lusta hozzá, annak itt van:
https://gist.github.com/numen/f923776b832ff5689368d450ccfd88c7

Hozzászólások

Tény, nem is gondolom, hogy ezt a scriptet használom még három év múlva :)
Erre a mission critical taskra úgy döntöttem, elég lesz a 99.5% pontosság kiszámítható hibával.

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

Tényleg szebb (és korrektebb)
– az awk elég régóta a holnap megtanulandó nyelvek között van (de végül mindig megmaradok a gyalog shellscripteknél)

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

Nem rossz, de a Facebook is jelzi, sőt a szülinapokat is :)

Elolvastam a cikket.
Tud rólam mindent az FB, és?

Én egy csomó mindent ott gyűjtők:
Képeket, videókat, milyen filmeket, sorozatokat nézek (amolyan nyilvántartás)
Ott chatelek, voice chatelek, ott jelölöm be az eseményeket amikre el akarok menni valamikor. Becsekkolok ahol épen vagyok.
Nem igazán van olyan funkciója amit nem használok :)

Ha M. Zuckerbergnek ezeket van kedve nézegetni, hát tegye! :)
Én viszont legalább semmit nem felejtek el, minden archiválva van és az ismerőseim név/szülinapját sem felejtem el :)

Szerintem a szabadság az - is -, ha te döntöd el, kivel mit, milyen mértékben osztasz meg az életedről, milyen célból és mikor, tehát ha szabadon dönthetsz arról, hogy kit mennyire engedsz közel magadról. Ha erről nem magad dönthetsz, véleményem szerint nem vagy szabad.

Amúgy meg a börtön falain belül is szabadság van, csak a fal másik oldalán vannak emberek. Hát nem teljesen mindegy?

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Így van. De én beleegyezek abba, hogy amit a netre felteszek azt viheti bárki. Semmilyen értéket nem tulajdonítok ezeknek az adatoknak. Ezek csak adatok egy egy olyan mesterséges közegben amit az ember hozott létre.
Egyszer úgy is ott pusztul az egész rendszer, mindenki hülye képeivel, szövegeivel, adataival együtt, csak idő kérdése.

A gond az, hogy ezekből az adatokból lehet intra- és extrapolálni olyanokra is, amit sohasem adtál meg, valamint ezek segítségével be lehet szerezni máshonnan, s ezt meg is teszik. Ugyanakkor tudom, nem mindenkinek azonos az igénye a szabadságra.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Maskepp fogalmazva: ez az ara a kenyelemnek. Marmint, jelenleg nincs olyan non-profit kezdemenyezes, ami ugyanezeket tudna, es kozben nem gyujtogetne az adatokat, vagyis a tenyleges alternativa az, hogy vagy hasznalod a Facebookot, ahol ez mind egyutt megvan, vagy hasznalsz kismillio - talan kevesbe adatgyujtogeto - toolt, szivsz az osszekotesukkel, az elcsuszasaikkal, a deszinkronizacioval - es cserebe orulsz, hogy milyen jo, hogy nem lesik az adataidat kicsi indiaiak.
--
Blog | @hron84
Üzemeltető macik

Nem kimondottan a Facebookra mint szocialmediara gondoltam.

De egesz jo esemenyszervezo van benne, tallozhatoak a regisztralt cegek/helyek, vagyis az esemenybol egy kattintassal meg tudod nezni, hogy hol van a hely, meddig van nyitva. De ott van peldaul a fenykepek megosztasa is, albumokba rakhato, megjelolhesz rajta embereket, kategorizalhatod es tagelheted oket, stb.

Ezeket a szolgaltatasokat jelenleg kulon-kulon tudja sok cucc, de osszeintegralni oket egy platformba, raadasul szervesen osszetartozokent a Facebook csinalta meg eloszor. A G+, a Twitter csak loholnak a FB utan.

Nem azt mondom, hogy a FB a leheto legjobb dolog a vilagon, foleg, mert a sok elonyhoz sok hatrany is tartozik. De peldaertekunek tartom magat a szoftvert amit alkottak, mind szolgaltatasaiban mind a felhasznaloi elmeny tekinteteben. En sose nem azert nem mentem a Facebook kozelebe, mert nem tudnam vagy nem akarnam hasznalni a szolgaltatasait, hanem a hulyek miatt. De amiota ki lehet kovetni embereket azota komolyan elkezdtem gondolkodni rajta, hogy raszanok par napot, kitakaritom a FB falamat, es elkezdek bizonyos szolgaltatasokat beepiteni az eletembe.
--
Blog | @hron84
Üzemeltető macik

Nagyon jó ötlet, gratulálok. Egy kérdésem volna: honnan veszed a nap név párosításokat? Magyarországon legalább háromféle névnapnaptár van a különböző hagyományok miatt. Pl Zsuzsanna nap a katolikus naptár szerint augusztus 11 (Szent Zsuzsanna vértanú emléknapja), míg a református és az evangélikus naptár szerint február 19. Nagyon sok névnap másmikor van a különféle hagyományok szerint, ezért nagyon nem mindegy, hogy melyiket használja a scripted.
--
Csaba

Köszönöm :)
Az adat a Wikipédiáról van. Mivel az forrásként az Új Misszió falinaptárat jelölte meg, ezért gyaníthatóan a katolikus névnapokról van szó.

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

Tudom, és együttélek azzal a tudattal, hogy először három év múlva majd el kell gonolkodnom azon, hogy miért van csillag a nevek mellett február végén. Meg azzal is, hogy minden negyedik évben nem tudom meg, kinek a névnapja van február 29-én :)

int getRandomNumber() { return 4; }  // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű.  xkcd

+1 a grep $0 -ra és a rövidségre

Az én megoldásom:


d=($(date "+%Y %m %d")); y=${d[0]}; m=${d[1]}; d=${d[2]}; leap=0
#y=2020; m=02; d=24      # test
for yy in 2020 2024 2028 2032 2036 2040 2044 2048; do [ ${yy} -eq $y  ] && leap=1; done
if [ $leap -eq 1 ] && [ $m -eq 2 ] && [ $d -gt 23  ]; then echo $(grep "$m@$d" $0); else echo $(grep "$m/$d" $0); fi

A módosított lista:
...
02/24 Mátyás Jázmin
02/25 Géza Cézár Vanda
02/26 Edina Viktor Győző
02/27 Ákos Bátor Gábor
02/28 Elemér Oszvald Román
02@24 Szökőnap
02@25 Mátyás Jázmin
02@26 Géza Cézár Vanda
02@27 Edina Viktor Győző
02@28 Ákos Bátor Gábor
02@29 Elemér Oszvald Román
...

--
eutlantis

Tetszik a tömbös megoldásod, illetve a szeparáló szóközök! :) A $0 megérdemelt volna egy idézőjelet.

A grep miért van echo-ban? Szerintem a grep kimenete éppen text, azt visszahelyettesíteni egy echo-ba, majd kiíratni miért jó?

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Nem jó, mert minden 4-gyel osztható év szökőév, de minden 100-zal osztható év nem szökőév, ám minden 400-zal osztható év szökőév. Nézd meg, én így csináltam awk-ban:

    if (t[2]==2) {
        m=t[1]%4;
        if (t[1]%100==0) {
            m=1;
        }
        if (t[1]%400==0) {
            m=0;
        }
        if (m && t[3]>23) {
            t[3]++;
        }
    }
 

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

A modulo 4 ellenőrzés valóban nem helyes önmagában, de vajon lesz-e még olyan rendszer, amin le lehet futtatni egy bash vagy awk scriptet, amikor ez legközelebb probléma lesz? Lesznek-e meg névnapok és vajon ugyanazok a szabályok fognak vonatkozni rájuk? Valóban érdemes ezért növelni a script komplexitását?

És ha már itt tartunk, nem lehet a date-től megkérdezni, hogy adott év szökőév-e, vagy hogy adott nap egy nem szökőévben hányadik naptári napnak felel meg?

Azért van némi különbség a néhány évtized és a néhány évszázad között.

Egyébként igazad van, erre vonatkozik a fenti hozzászólásom második fele. Az a legjobb megoldás, ha fel tudsz használni már létező funkcionalitást, ahelyett, hogy újraimplementálnád. Így ha hibás az algoritmus, elég egy helyen javítani, amiért ráadásul nem is te vagy felelős.

Nekem is van hasonlo, 10+ eve hasznalom. :) Az enyemben a lenyegi kulonbseg, hogy nem csak az aktualisat hanem a nehany kovetkezot is kiirja (mert ugye aznap mar lehet, hogy keso! ;) )
Csak ki kell cserelni a "grep"-et pl "grep -A 5" -re es kesz is (igen, igy december vegen nem lesz az igazi, de azt elviselem).