HN user

pgtan

328 karma

TeX, Emacs, netpbm, Imagemagick, Gentoo

Posts18
Comments153
View on HN

Here are two checks using joins, one with sqlite, one with the join builtin of ksh93:

  check_empty_vhosts () {
    # Check which vhost adapter doesn't have any VTD mapped
    start_sqlite
    tosql "SELECT l.vios_name,l.vadapter_name FROM vios_vadapter AS l
        LEFT OUTER JOIN vios_wwn_disk_vadapter_vtd AS r
    USING (vadapter_name,vios_name)
    WHERE r.vadapter_name IS NULL AND
      r.vios_name IS NULL AND
   l.vadapter_name LIKE 'vhost%';"
    endsql
    getsql
    stop_sqlite
  }

  check_empty_vhosts_sh () {
    # same as above, but on the shell
    join  -v 1  -t , -1 1 -2 1 \
   <(while IFS=, read vio host slot; do 
  if [[ $host == vhost* ]]; then
      print ${vio}_$host,$slot 
  fi
     done < $VIO_ADAPTER_SLOT | sort -t , -k 1)\
   <(while IFS=, read vio vhost vtd disk; do
  if [[ $vhost == vhost* ]]; then        
    print ${vio}_$vhost
  fi
     done < $VIO_VHOST_VTD_DISK | sort -t , -k 1)
  }
Simple Unix Chat 3 years ago

OK, for starter the while loop. Main rule of writing shell scripts is, Use The Shell, Luke. Don't start external programs, if your shell (which is already running) can do it. "while /usr/bin/true" is nonsense, every time an external program gets executed for nothing. There are plenty of bash (since this shell is used in the example) internals, which evaluate to true, like ":", "test 1", "(( 1 ))", maybe others too. So "while :" should be better. But why even use dummy true statement, since the loop terminates with read? You can put the read as argument to while directly: "while read -r line; do" ... Same with echo and date. Just use one single printf builtin.

while read -r line ; do printf '%(%FT%T%z)T %-9s %s' -1 "$(/usr/bin/id --user --name --real)" "$line" ; done

No, process substitution must be provided by the kernel/syslibs, it is not feature of bash. For example there is bash on AIX, but process substitution is not possible because the OS do not support it.

No idea how old this command is. Most of the AIX/Linux admins I knew were very bad shell programmers, skills end with awfull for-loops, useless use of cat, and awk '{print $3}'.

I'm disturbed by this awful loop, every time I see `setq' gives me the heretic though, that most of the eslip code is just Perl with parentheses.

  (cl-loop
    for sum = 0 then (+ sum (* total 0.1))
    for total = 100 then (* total 0.9)
    repeat 10
    finally (return (list sum total)))

Thanks for sharing! Those must be exciting times. I remember tweaking the fonts only once for printing my diploma thesis back in the 90s; but contrary to the most opinions, I made the fonts even lighter, because of the ultra white paper, we were obliged to print to. It was a very big file due to the 1200dpi rasterized fonts, but the result was better than any print shop could produce at that time.

If you have a certain printer to use, you can tweak the Metafont mode for the fonts and create your preferred look. The definitions for various printers are in the file modes.mf

For example:

% From {\tt stsmith@ll.mit.edu}, 10 May 93.

% With |fillin=0|, the diagonal of {\tt cmtt10}'s `z' is too thin.

% |blacker=.8| too thin, 2 too thick.

mode_def docutech = %\[ Xerox 8790 or 4045 (600dpi)

mode_param (pixels_per_inch, 600);

  mode_param (blacker, 1);

  mode_param (fillin, .1);

  mode_param (o_correction, 0.9);

  mode_common_setup_;
enddef;
KolibriOS 5 years ago

remember to cut down your kernel.

yes, my Linux kernel is 3.4M, bz2 compressed. Unfortunately, some things are no more possible to get removed from the kernel, like the xattr in ext4.

It is you. CM is based on the Modern fonts used in scientific typesetting decades before Knuth made a MF version of it. I had often chance to give non-TeX (coming from humanities) proofreaders and copy-editors the choice between Times and CM. Almost all of them choosed CM.

Guix 1.3 5 years ago

I really would like to see a Gentoo equivalent based on Lisp/Scheme, but as far Guix seems to be not even near. I just looked for no-multilib option (only 64bit of libc), custom compile flags or similar, but didn't find anything.