Messing with PHP-ODT

Share with:


I’m working oh hobby project on a free time, and one of the tasks here is to generate ODT file, containing output from the database. The output library i’ve chosen is PHP-ODT. It’s kind of basic, but allows to create ODT documents on the fly.

And now, lessons learned

Allways provide file size.

This code will create corrupt file, according to LibreOffice: The correct code is:

 header(“Content-Description: File Transfer”);
header(“Content-Type: application/vnd.oasis.opendocument.text”);
header(“Content-Disposition: attachment; filename=\”” . $ODTFile .”\”” );
readfile($ODTtmpFile);

 header(“Content-Description: File Transfer”);
header(“Content-Type: application/vnd.oasis.opendocument.text”);
header(‘Content-Length: ‘ . filesize($ODTtmpFile));
header(“Content-Disposition: attachment; filename=\”” . $ODTFile .”\”” );
readfile($ODTtmpFile);

It is possible to add hierarchical styles

Not in the base code yet

$pStyleDate = new ParagraphStyle(‘revDate’);

$pStyleDateStrike = new ParagraphStyle(‘revDate-strike’);
$pStyleDateStrike->setAsChild(‘revDate’);

It is possible to add text decorations in the paragraph level

Again, not in the base code yet:

$pStyleDateStrike->setLineThrough(StyleConstants::SINGLE);

It is possible to merge cells in the table

Well, not in the base code and horizontally only:

$hSpan=array(“”,””,””);

$cRow = array($hSpan,$pRev,$pDate,$pMemo);
$table->addRows(array($cRow));

Tags: ,

My favourite X sceensaver is …

Share with:


Substrate

Captured with  ‘$ sleep 120 ; xwd -root -out full-screen.xwd

Tags:

Replacement belt for Proxxon KS 230 table saw

Share with:


The belt is B45MXL – MXL (0.08″) pitch, 45 -teeth, 10 mm width.

It will cost around $15 per 10 pack on if you know the pitch and length, or starting $15 for a single one, if you buy it as “KS 230 replacement belt”, part number  27006/57.

 

Tags: ,

The Power of Pipes

Share with:


Okay guys, the log if filling with

sshd[20117]: Invalid user pi from 142.93.118.186 port 50416
sshd[20117]: input_userauth_request: invalid user pi [preauth]
sshd[20117]: Received disconnect from 142.93.118.186 port 50416:11: Bye Bye [preauth]
sshd[20117]: Disconnected from 142.93.118.186 port 50416 [preauth]
sshd[20119]: Invalid user cubie from 5.189.227.161 port 39772
sshd[20119]: input_userauth_request: invalid user cubie [preauth]
sshd[20119]: Received disconnect from 5.189.227.161 port 39772:11: Bye Bye [preauth]
sshd[20119]: Disconnected from 5.189.227.161 port 39772 [preauth]
sshd[20121]: Invalid user guest from 208.68.37.169 port 42858

Read the rest of this entry »

Tags: , ,

Postfix and virtual SMTP users

Share with:


Short how-to use the save virtual users both for receiving emails via IMAPS, and sending via SMTP, or just rants for myself:

Source for the ideas and setup

/etc/postfix/main.cf must contain:
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes

Read the rest of this entry »

Tags: , , ,

PCB manufacturing in China

Share with:


So, here it comes. I need a small, pretty looking PCB for the infrared switcher.

It took 3 hours to validate the order, almost 25 hours to make the PCBs and almost 2 days to announce them delivery ready.

To be continued, once they arrive 🙂

Tags:

Migration hell

Share with:


After a regular hardware failure the entire site was migrated to a more stable location.

Well, there was a lot of customization done and the new APIs appeared in the last .. 12 (wait, no way!)  years.

As allways, be sure you have your backups. they are up to date and are easily accessible once you need them.

Infrared switcher for the auditorium. Part 1

Share with:


Sometimes I find myself in awkward situations.

Some time ago we have installed a video duplication system in one of auditoriums. It is based on the HDMI backbone and some active equipment, like splitters and media converters.

It has single video injection point, where different sources can be selected. Source switching is made using KD-S4X1 switch from Key Digital.

One small problem is the entire installation must be concealed, while the switch is controlled with a button on the case and the IR remote. It has also no means of displaying the output, except a LED per active channel.

And so the Project was born: place a push button anywhere and replay the sequence on the IR LED inside the enclosure. Just to be sure, an Read the rest of this entry »

Tags: , ,

Grinding arbor for Unimat SL/DB

Share with:


Unimat SL/DB grinding arbor. Photo from the Internet

Arbor’s lenght 18 + grinding tool + 3 + 5.2 (bolt head) mm. Thread length on bolt 13,2 mm, M12x1.

Thread on the arbor M12x1, continuous, last 5 mm toward the headstock are bored to ~14 mm.

Holder diameter 15 mm, holder lip 3 mm. Max diameter 28mm.

 

Safety first

Share with:


Right shoe failed. Skid marks on the wall, the ladder is out of service.