Listing posts

Displaying posts 6 - 10 of 200 in total
ImageMagick | Convert images to A4 PDF
mouse 1758 · person cloud · link
Last update
2019-07-29
2019
07-29
« — »
1
2
3
4
5
6
convert *.jpg \
  -compress jpeg -quality 75 \
  -resize 1240x1754 -extent 1240x1754 \
  -gravity center -units PixelsPerInch \
  -density 150x150 \
  out.pdf

A4 measures 210x297mm / 8.27x11.69in / 595x842pt.

At 150ppi the image needs to be 1240x1754px.

At 300ppi the image needs to be 2480x3508px.

Hint: to crop the image to adapt to the A4 aspect ratio:

1
2
# crop bottom at 83%
for i in *.jpg; do convert $i -crop "x83%" -delete 1 out/$i; done




Here are the commands for my scanners (Canon Lide35, Lide220):

1
2
3
4
5
6
7
8
9
# scanimage -d ... --resolution 300 --mode Gray | convert - xxx.jpg

for i in *.jpg; do
  convert "$i" -crop "96.67%x99.7%" -delete 1-3 \
    -compress jpeg -quality 75 -resize 1240x1754 -extent 1240x1754 \
    -gravity center -units PixelsPerInch -density 150x150 "resized/$i"
done

convert resized/*.jpg document.pdf

Source: StackOverflow, PrePressure, imagemagick forum


~~~ * ~~~

Bash coprocesses
mouse 45 · person cloud · link
Last update
2019-07-25
2019
07-25
«control async process stdin/stdout simultaneously»

A coprocess is executed asynchronously in a subshell with a two-way pipe established between the executing shell and the coprocess.

Esample: redirect netcat stdout ${COPROC[0]} to bash stdin, and bash stdout to netcat stdin ${COPROC[1]}

1
2
coproc netcat -l -p 1234
exec bash <&${COPROC[0]} >&${COPROC[1]} 2>&1

Source: stackexchange, gnu.org


~~~ * ~~~

Record what you hear with pulseaudio attachment
mouse 23 · person cloud · link
Last update
2019-07-22
2019
07-22
« — »
1
2
3
4
5
6
7
8
# identify your speakers monitor
pacmd list-sources | grep "name.*monitor"

# record audio to RAW WAV file
parec --format=s24le -d alsa_output.pci-xxxx_yy_zz.w.analog-stereo.monitor raw.wav

# encode output with opus
opusenc --raw --raw-bits 24 --raw-rate 44100 --bitrate 24 raw.wav out.opus

See attached script for a pipe-file solution that integrates above commands.


Source: askubuntu.com


~~~ * ~~~

Rails upgrade notes
mouse 124 · person cloud · link
Last update
2019-07-19
2019
07-19
«rails notable/interesting changes from v4 to edge»

TODO





New in rails (till 2019-07-06)

ActiveRecord

ActionView

ActiveJob / background jobs

ActionCable / websockets

Frontend

Email

ActiveStorage / upload to cloud -- guide

Security & Paranoia

Core/config changes

Development

  • rails console --sandbox don't write changes to DB -- PR+cfg
  • byebug > 8.2.1 is faster
  • faster dev reload: set in Gemfile group :development{gem 'listen', '~> 3.0.4'}

Tools / External gems

Testing

Info / Minor changes / Good to know


Upgrade experiences -- google search


References


Tools

  • scaling ruby apps
  • 📺 DHH youtube videos on writing sw well
  • MiniMagick
  • ruby's set: a collection of unordered values with no duplicates
  • obj.method(:method_name).source_location => mostra dov'e' definito il metodo
  • <<~TAG ... TAG al poso di <<-TAG...TAG rimuove gli spazi di indentazione!
  • thor -- build powerful command-line interfaces

Benchmark howto

docs, ips extension, article

1
2
3
4
5
6
7
8
9
require 'benchmark'

a = [:a, :b]
b = :b
n = 10000000
Benchmark.bm do |x|
  x.report { n.times do !(Array(a) & Array(b)).empty? end }
  x.report { n.times do Array(a).include?(b) end }
end
1
2
3
4
5
6
7
8
require 'benchmark/ips' # instructions per second
require 'uri'

uri = 'http://example.com/foos_json?foo=heyo'

Benchmark.ips do |x|
  x.report('URI.parse') { URI.parse(uri) }
end

vedi esempi di barnchmark in Hash#deep_merge PR


Books


~~~ * ~~~

Cotton cake
mouse 41 · person cloud · link
Last update
2019-07-16
2019
07-16
«Japanese cotton cake o Cheesecake giapponese.
Torta magica che si scioglie in bocca!»
Cover original

Strumenti:

  • 1x stampo a cerniera da 20cm
  • 1x teglia per contenere lo stampo

Versione classica

Ingredienti:

  • 30gr di burro
  • 60ml di latte
  • 180gr di formaggio spalmabile
  • un pizzico di sale
  • scorza di un limone grattugiata
  • 110gr di zucchero
  • 40gr di farina 00
  • 20gr di amido di mais
  • 5gr di lievito
  • 3x uova
  • 10ml di succo di limone

Procedimento:

  1. Foderare lo stampo: dentro carta forno e fuori carta stagnola (per isolarlo dall'acqua del bagno maria).
  2. Sciogliere il burro e lasciarlo raffreddare.
  3. Preparare il composto:
    1. Primo:
      • Frustare latte, formaggio, sale, scorza di limone.
      • Incorporare tuorli e burro.
      • Incorporare farina, amido e lievito.
      • Posizionare lo stampo dentro teglia più grande riempita a metà con acqua calda.
    2. Secondo:
      • Montare gli albumi col succo di limone triplicando il volume.
      • Incorporare lentamente lo zucchero.
    3. Unire i due composti con movimenti circolari dall'alto verso il basso.
  4. Cottura:
    1. Riempire con acqua metà teglia.
    2. Versare il composto nello stampo ed inserirlo nella teglia.
    3. Infornare (statico) per 60-70 minuti a 150°.
    4. Lasciar raffreddare nel forno spento e leggermente aperto.

Versione rapida

Ingredienti:

  • 120gr di cioccolato bianco
  • 120gr di formaggio spalmabile
  • 3x uova

Procedimento:

  1. Foderare lo stampo: dentro carta forno e fuori carta stagnola (per isolarlo dall'acqua del bagno maria).
  2. Sciogliere il cioccolato, incorporare formaggio e tuorli
  3. Montare a neve gli albumi ed incorporarli al composto
  4. Cottura:
    1. Riempire con acqua metà teglia.
    2. Versare il composto nello stampo ed inserirlo nella teglia.
    3. Infornare (statico) per 15 minuti a 170° e poi altri 15 minuti a 160°.
    4. Lasciar raffreddare nel forno spento e aperto.

Fonte: lacucinaitaliana.it