OpenSSH server on Windows using Cygwin

Sometime I need to automate some task on windows, and it’s a pain.

A solution I found is to set up an ssh server on windows and execute remotely most of the tasks.

First you have to install Cygwin and select the openssh package.

Then open an Administrator Cygwin console and type:

ssh-host-config -y -c "tty ntsec"

This will accept all the defaults and add the support for the NT system user accounts (untested).

Then you will have to add an exception for the sshd service in the windows firewall, it is located in:

C:\cygwin\usr\sbin\sshd.exe

If needed you can add your public ssh key in the .ssh/authorized_keys in your cygwin home.

If you trust the machine, you can activate the agent forwarding, but to make that work you have to start an ssh-agent in your .profile or .bashrc:

if [ -z "$SSH_AUTH_SOCK" -a -x ssh-agent ]; then
	eval $(ssh-agent -s)
	trap "kill $SSH_AGENT_PID" 0
fi

Now you can start the server from your Administrator Cygwin console:

net start sshd

Done!

References

Compilare pdf non predisposti con GNU/Linux

xournal-screenshotA volte capita di dover compilare dei moduli che vengono distribuiti solo in forma di pdf e senza predisposizione per la compilazione, principalmente tasse da pagare, l’ultimo che mi è capitato era il Modello 730. Poi ho scoperto 1) che in una seconda pagina c’è anche il pdf ‘editabile’ e 2) che come per il modello Unico c’è anche un Software di compilazione rilasciato dall’Agenzia delle Entrate!

Però dato che me ne sono accorto troppo tardi, dopo aver provato qualche editor di pdf alla fine ho trovato comodo usare Xournal «an application for notetaking, sketching, keeping a journal using a stylus».

Non è una applicazione nata per questo, però se la cava meglio di altri tool specifici con solo un paio di piccoli difetti che dovrei notificare all’autore:

  1. Il cursore dell’inserimento del testo è spostato leggermente in alto rispetto a dove viene effettivamente inserito il testo
  2. La risoluzione del pdf compilato è fissa, a volte va bene, a volte è troppo bassa per moduli complessi. Sarebbe importante fosse almeno personalizzabile, se mantenesse vettoriale tutto quello che era vettoriale sarebbe perfetto.

.

F2PY rulez!

I recently found some old Fortran code from the paper Algorithm AS197 A Fast Algorithm for the Exact Likelihood of Autoregressive-Moving Average Models (Melard 1984) [pdf] [code].

I’m not very fluent in Fortran77 and I don’t like the idea of rewriting a well tested piece of code introducing new bugs, so why not give a try to F2PY?

F2PY is a tool that provides an easy connection between Python and Fortran languages. F2PY is part of NumPy.
F2PY creates extension modules from (handwritten or F2PY generated) signature files or directly from Fortran sources.

Continue…

PostgreSQL custom aggregate functions

Aggregate functions compute a single result from a set of input values. Like sum() or count() they operate on one or more columns and multiple rows and output a single result.

In PostgreSQL is quite easy to create a custom aggregate function, the ingredients are:

  • Create an aggregate function
  • Create a state update function
  • optional: create a final function

For example, if we want to implement the avg function we can write:

CREATE AGGREGATE avg (float8)
(
    sfunc = float8_accum, -- {_count+=1, _sum+=value}
    stype = float8[],
    finalfunc = float8_avg, -- _sum / _count
    initcond = '{0,0}'
);

Now we need a bit more complex aggregate function to write…

continue…