WWW-diary of Juhapekka Tolvanen:

Friday, 04 March 2005




02:48:40 EET @075

Nyt menee kyllä yli hilseen:

Huomasinpa, että zsh-skriptissäni nimeltä checkcdrom.zsh on pieni bugi: Se jättää tutkimatta hakemistot ja tiedostot, joitten nimi alkaa pisteellä, koska sen for-looppi alkaa näin:

for f in **/*(.)
do

Päätin kokeilla, että saisko koko helahoidon muutettua POSIX:in mukaiseksi shelliskriptiksi. Kokeilin jotain tällälailla alkavaa for-looppia

for f in `find ./ -type f`
do

Muuten hyvä juttu, mutta se alkoi sekoilla, jos tiedostojen nimissä on välilyöntejä. Päätin luopua tiukasta POSIX:in mukaisuudesta ja koittaa jotain tällaista GNU-spesifistä juttua:

IFS="`printf \000`"
export IFS

for f in `find ./ -type f -print0`
do

Eli koitin määrittää ympäristömuuttujan IFS arvoksi null-characterin ja sitten käskeä find-komentoa erottamaan tiedostojen nimet null-charactereilla. Mutta paskat se for-looppi välittänyt mun null-charreista alkuunkaan. Välillä koitin tuon find-komennon tulosteen putkitusta xargs:ille, joka puolestaan koitti jokaisen tiedostonnimen antamista funktiolle, mutta xargs osaa kai syöttää tiedostonimiä yms. argumentteja vain ulkoisille komennoille. Tein siitä funktiosta erillisen skriptin, homma kyllä muuten toimi, mutta lopuksi se skriptiä kutsuva skripti tai kutsuttu skripti valitti, ettei löydä tiedostoa nimeltä "". Kummaa...

Tällaisen virityksen sain jotenkuten toimimaan:

IFS="
"
export IFS

for f in `find ./ -type f -print`
do
  mytestfile.sh "${f}"
done

Eli tiedoston luettavuuden tarkistava funktio onkin nyt korvattu erillisellä skriptillä. Mutta tuo vetää herneen nenään, jos tiedostonimessä on rivinvaihto. Tokihan sellainen on aika harvinaista, mutta eihän sitä koskaan tiedä...

Mutta zsh:ssa tällainen pelittää:

setopt SH_WORD_SPLIT
setopt GLOB_DOTS
unsetopt MARK_DIRS

for f in **/*(.)
do

Mutta en kyllä itsekään aivan täysin ymmärrä, miksi se pelittää. Se ei säikähdä edes tiedostonnimissä olevia rivinvaihtoja saatikka välilyöntejä. Jokatapauksessa tiedoston luettavuus tutkitaan näin:

for f in **/*(.)
do
  echo "======="
  echo "$f"
  echo "======="
  file "$f" > /dev/null
  A="$?"
  if test "$A" != "0"
  then
    echo "file-error detected in file $f" >&2
    echo "$f" >> $FILE_ERRORS_LOG
  fi
  FILE_ERRORS=$(( $FILE_ERRORS + $A ))

  stat "$f" > /dev/null
  A="$?"
  if test "$A" != "0"
  then
    echo "stat-error detected in file $f" >&2
    echo "$f" >> $STAT_ERRORS_LOG
  fi
  STAT_ERRORS=$(( $STAT_ERRORS + $A ))

  cat "$f" > /dev/null
  A="$?"
  if test "$A" != "0"
  then
    echo "cat-error detected in file $f" >&2
    echo "$f" >> $CAT_ERRORS_LOG
  fi
  CAT_ERRORS=$(( $CAT_ERRORS + $A ))
done

Mutta olis kyllä kiva, jos tollaisen saisi toteutettua ihan vaan POSIX:in mukaisella shelliskriptauksella. Jokatapuksessa, uploadaanpa sen korjatun zsh-skriptini WWW:hen tarjolle.





06:34:02 EET @231

Kumma juttu.. Pendemonium-firman sivulla nimeltä A Few Thoughts on Fountain Pen Inks sanotaan tällaista:

Sheaffer Inks

Jet Black - I'd rank this black about a 7 out of 10 for deepest, most opaque black qualities. Tends to pick up some of those grey tones, especially in broader pens.

Parker Quink Ink

Black - I give it an 8 out of 10 on the dark black scale.

Elikkäs Parkerin mustan täytekynämusteen muka pitäisi olla mustempaa kuin Sheafferin vastaavan. Kumma kyllä, ainaskin minulla Sheaferin musta täytekynämuste näyttää niin mustalta kuin vain voi enkä ikinä ole havainnut siinä mitään "undertoneja" mutta Parkerin mustassa musteessa sellaisia huomaan vähän väliä. En kyllä tiedä, onko jotain merkitystä sillä, kun Sheaffer jokin aika sitten siirsi mustevalmistuksensa Yhdysvalloista Sloveniaan ja siinä samalla muutti musteittensa koostumusta. Ostamissani Sheafferin mustepateissa itsessäänkin lukee, että "Slovenia". Oliskohan tuo em. arvostelu peräisin ajalta ennen Sheafferin musteen koostumuksen muutosta? Toisaalta Parkerin mustepatien pakkauksessa ei enää lue, että "Quink", mutta en ole kuullut heidän vaihtaneen musteittensa koostumusta.

Oli miten oli, kai noista mustearvosteluista jotain osviittaa saa, mutta kannattaa myös muodostaa omia kokemuperäisiä mielipiteitä. Sitäpaitsi ei se kovin kallista ole ostaa paljon erilaisia täytekynämusteita ja kokeilla niitä. Kokeilemista varten patruunat kyllä tulevat halvemmiksi, mutta pullotetulla musteella taitaa olla pienempi litrahinta.





10:00:55 EET @375

Meenpä nukkumaan.





16:14:28 EET @634

Hereillä taas. On muuten vähän vittumaista koittaa nukkua, kun ne tekee sitä yhtä kerrostaloa viereisellä rakennustyömaalla. Räjäyttely kyllä loppui jo viikkoja sitten, mutta muuta mökää kyllä riittää.





17:51:52 EET @702

Jaahas... Täytyypä painua suihkuun ja sitten fillaroida kaupungille. Jyväskylän Setan 15-vuotisjuhlallisuudet alkavat tänään saunaillalla ja sinne on kutsuttu mm. minä, meikäläinen ja allekirjoittanut. Huomenna olis sitten ensin juhlaillallinen ja sitten tavalliset homobileet Ilokivessä.





Edellinen / Previous

Seuraava / Next

Juhapekka Tolvanen