tag:blogger.com,1999:blog-27895493766716476292024-03-21T07:28:56.695-07:00What is eszka doingSzymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.comBlogger38125tag:blogger.com,1999:blog-2789549376671647629.post-42610687999585462932023-02-13T00:15:00.004-08:002023-02-13T00:17:23.252-08:00FOSDEM 2023This year I had a talk on FOSDEM in Brussels about recent LibreOfficeKit improvements. <br>Slides:<br>
<a href="https://drive.google.com/file/d/1QcRkcK8kzGymIspzn6TIqMFpQ_5Qhe-K/view?usp=sharing" target="_blank"><div class="separator" style="clear: both; display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="480" data-original-height="570" data-original-width="1014" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif7iSm7ZqmW1025CSXymFT-7S1Ma3mkk5R0LRqsMuxj4JPXwmzvPth58PrAfouZwptadKAt8pQebrDjBqH0Al9SGq5C-Hjk4dtOOEsgX1AOQs5heYkD2MFMl2cGLk4bCqbxdIDBYAOYNuTJED9YBv8ieorDsc9yUTTs-xX0nUAzhph0MlRRbfAlyjTgQ/s320/fosdem2023-szyklos-lokit.png"/></div></a>
<br>Video:<br>
<video preload="none" controls="controls">
<source src="https://video.fosdem.org/2023/H.1308 (Rolin)/lotech_libreofficekit.webm" type="video/webm; codecs="vp9, opus"">
<source src="https://video.fosdem.org/2023/H.1308 (Rolin)/lotech_libreofficekit.mp4" type="video/mp4">
</video>
Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-87195453795636112602022-11-28T23:41:00.001-08:002022-11-28T23:41:35.045-08:00COOLDays 2022 - BerlinThis year Collabora Productivity organized hybrid conference in Berlin. I've participated virtually by presenting video with recent improvements in JSDialogs which provides dialogs knwon from the LibreOffice for Collabora Online. Second talk was a short case study / tutorial how to add new component based on a mentioned framework.<br><br>
<iframe width="560" height="315" src="https://www.youtube.com/embed/RUHA03mwKiI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br><br>
<iframe width="560" height="315" src="https://www.youtube.com/embed/AtKmyd0ohLk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-19228532314194390262022-11-12T09:23:00.000-08:002022-11-12T09:23:21.662-08:00Raspberry Pi OS with LUKSShort notes with setup for working remote LUKS decrypt. Unofrtunately after cryptroot-unlock success it shutdowns the system :) Maybe I will try again when will find some time.
<ol>
1. Burn Rasberry Pi OS Lite image <br /><br />
2. Create additional partition for encrypted root partition.<br /><br />
3. Update and restart:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>apt-get update && apt-get upgrade
sudo shutdown -r now
</code></pre>
4. Install deps:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>apt-get install busybox cryptsetup dropbear-initramfs lvm2
</code></pre>
5. Prepare partition:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>cryptsetup -v -y --cipher aes-xts-plain64 --key-size 256 luksFormat <newroot>
cryptsetup -v luksOpen <newroot> sdcard
mkfs.ext4 /dev/mapper/sdcard
cryptsetup luksClose /dev/mapper/sdcard
</code></pre>
6. Configure partition in the system:
check <newroot>:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>blkid | grep crypto_LUKS
</code></pre>
open /etc/crypttab and add:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>sdcard <newroot> none luks,initramfs
</code></pre>
open /etc/fstab and replace original root partition with:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>/dev/mapper/sdcard / ext4 defaults 0 1
</code></pre>
open /boot/cmdline.txt and replace existing partition config with:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>root=/dev/mapper/sdcard cryptdevice=<newroot>:sdcard
</code></pre>
also add at the end of the same file dhcp configuration:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>ip=:::::eth0:dhcp
</code></pre>
7. Configure early decryption:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>echo 'DROPBEAR_OPTIONS="-RFEsjk -c /bin/cryptroot-unlock"' > /etc/dropbear-initramfs/config
echo "CRYPTSETUP=y" >> /etc/cryptsetup-initramfs/conf-hook
</code></pre>
8. Fix issue with short timeout for decryption:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>sed -i 's/^TIMEOUT=.*/TIMEOUT=100/g' /usr/share/cryptsetup/initramfs/bin/cryptroot-unlock
</code></pre>
9. Configure early remote access over SSH:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>touch /boot/ssh
echo '<your_public_ssh_key>' > /etc/dropbear-initramfs/authorized_keys
</code></pre>
10. Copy files from original root partition to the new encrypted partition.
11. Generate initramfs:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>sudo mkinitramfs -o /boot/initramfs.gz
echo "initramfs initramfs.gz" >> /boot/config.txt
</code></pre>
12. Reboot and try to connect remotely. Configs for ssh:
<pre style="background-color: #eeeeee; border: 1px dashed rgb(153, 153, 153); color: black; font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; font-size: 12px; line-height: 14px; overflow: auto; padding: 5px; width: 100%;"><code>Host pi
HostName <ip>
User user
PreferredAuthentications password
Host pi-enable
HostName <ip>
User root
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
IdentityFile ~/.ssh/<your_public_ssh_key>
</code></pre></newroot></ol>
<br><br><br><br>
Links:<br><br>
https://github.com/ViRb3/pi-encrypted-boot-ssh<br><br>
https://www.paxswill.com/encrypted-raspberry-pi/<br><br>
https://www.kali.org/docs/arm/raspberry-pi-with-luks-full-disk-encryption/<br><br>
https://www.arminpech.de/2019/12/23/debian-unlock-luks-root-partition-remotely-by-ssh-using-dropbear/<br><br>
Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-9433886299348255202022-06-06T06:53:00.003-07:002022-06-06T06:53:27.584-07:00New formulabar in Collabora OnlineI still continue conversion of various UI components in Collabora Online to "native" HTML widgets. This helps us to get better user experience especially on touch / mobile devices. This time I converted formulabar which is used to edit data in cells in the spreadsheets.<br/><br/>
Previous "tunneled" approach had some disadvantages like blurry look under some conditions and cursor position setup depending on a pixel based coordinates. Now it become edit field which is rendered by the browser - so we have always crisp text. Position of the carret is represented as a logical value and also handled by the browser - so on touch devices it is much easier to type.<br/><br/>
Here you can see how it looks on a smartphone:<br/><br/><br/>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7NkXTLW_uWsG6gfWs5Na5MtTbK9dTWoaMzZ1pIQg3rTZNhT-aeR-LL5C9FlmfUuEtLK2SrseXtL5JaGn0ZRKvHsHS18VlJ_Eap9zQTwJvNOOAYTCiKQb2UCHoypCNm8AVUKviNnCROggM8mNOng2GVl8ofFMbDSvyN0Vku1izAxZZzpEvvA5hjO-R5A/s1600/spreadsheet-ods-Files-Nextcloud-mobile.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="730" data-original-width="411" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7NkXTLW_uWsG6gfWs5Na5MtTbK9dTWoaMzZ1pIQg3rTZNhT-aeR-LL5C9FlmfUuEtLK2SrseXtL5JaGn0ZRKvHsHS18VlJ_Eap9zQTwJvNOOAYTCiKQb2UCHoypCNm8AVUKviNnCROggM8mNOng2GVl8ofFMbDSvyN0Vku1izAxZZzpEvvA5hjO-R5A/s1600/spreadsheet-ods-Files-Nextcloud-mobile.png"/></a></div>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-38654808561733225572022-02-07T12:42:00.000-08:002022-02-07T12:42:06.475-08:00FOSDEM 2022 - Building Collabora Online UI using LibreOffice ComponentsLast weekend I participated in online event - FOSDEM 2022. Well known conference in the Open Source community, as described on the webpage: "FOSDEM is a free event for software developers to meet, share ideas and collaborate.".<br/><br/>
I've presented my work from the recent year. Video and slides can be found here:<br/>
<a href="https://fosdem.org/2022/schedule/event/lotech_buildingcoolui/" target="_blank">https://fosdem.org/2022/schedule/event/lotech_buildingcoolui/</a><br/><br/>
<div class="separator" style="clear: both;"><a href="https://video.fosdem.org/2022/D.libreoffice/lotech_buildingcoolui.webm" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="400" data-original-height="1080" data-original-width="1920" src="https://blogger.googleusercontent.com/img/a/AVvXsEgKIOxUhCeMVQFnn0GpgM_TnC4jQEqqg4l-TFDwS9TtN-EYdNlwdQiL7tAFdDxHQPRsjjkDb7VdxI_crC0pI0uX4Hyynv_U7xlZ8oeBD6pjE--Hn2xVmD-Qfd6WwddYBrt0J_U64fXzXB93BIS0j8hLnMGzvGxR9_gXkXCDQC6fPA3EwyEGg6M1DZdkgQ=s400"/></a></div>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-91744305897667106962021-06-14T06:16:00.001-07:002021-06-14T06:16:55.643-07:00Sidebar converted to „native” HTML controlsIn the past I’ve converted sidebar into contextual menus for mobile
version of Collabora Online. Since that time I was waiting for a
moment when it will be possible to do similar thing for the desktop
version of Collabora Online, the one that you use in the browser on
your laptop. It is a good step to make UI unified and more convenient
for a user.<br/><br/>
In the new approach we use HTML controls with „native” listboxes and
spinfields instead of pictures generated by the server. The
data transfer from the server to the browser for fields invalidation
should be reduced as we don’t have to send images. Widgets can be
now styled using the same CSS like other UI components what will
improve look of the sidebar. Thanks to the conversion for a desktop I
also improved the mobile menus and did few optimizations.<br/><br/>
Sidebar is still under development but looks promising:<br/><br/>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwz9vfjqSRBSjPTOHFbDba3X84rNuucpDCxRfbUL80hpUekf2FVnxsle59AhzJonBx_sePkVYFrQeTilAUbkJlFX3pBRxMOQIu1CFbu5G-Km3Bd8J-bhcaMaBnxIjljPhOy7L1aaUDw5yo/s0/sidebar3.gif" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="598" data-original-width="1024" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwz9vfjqSRBSjPTOHFbDba3X84rNuucpDCxRfbUL80hpUekf2FVnxsle59AhzJonBx_sePkVYFrQeTilAUbkJlFX3pBRxMOQIu1CFbu5G-Km3Bd8J-bhcaMaBnxIjljPhOy7L1aaUDw5yo/s0/sidebar3.gif"/></a></div><br/><br/>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFyox4n1UIvG8R11AlrEzygD81v0MaeiBKvcTAp6-1xSxn7QP3up1bYQ9KnilpGQ6KiFWnX5_IZt4s-ZKNan0dkMsXti-Q3S9gdufex8h8b44OW2l4_D1rIbZm-DApmcqYjTlXv5whPVOm/s642/sidebarwirter.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" height="400" data-original-height="642" data-original-width="350" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFyox4n1UIvG8R11AlrEzygD81v0MaeiBKvcTAp6-1xSxn7QP3up1bYQ9KnilpGQ6KiFWnX5_IZt4s-ZKNan0dkMsXti-Q3S9gdufex8h8b44OW2l4_D1rIbZm-DApmcqYjTlXv5whPVOm/s400/sidebarwirter.png"/></a></div>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com1tag:blogger.com,1999:blog-2789549376671647629.post-12227479620100787522020-10-26T04:03:00.001-07:002020-10-26T04:05:02.813-07:00LibreOffice & OpenSUSE Conference 2020Recently I participated in the annual LibreOffice conference. This year it was different: first because it was done together with OpenSUSE community and second it was online event.
I had two talks about features I implemented last year: mobile tool palette and notebookbar on desktop.
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim-SfTSZxi5r_tbkjHSvb90Dgx1TLxVWDoa_P2m08vVRkxu-WPmKbsVlObvSaIGhN-zCgDYbz0R144JHHeGB8nj8r0XFh2VQEc0FX-cqbfEMeTDcZMJSHObo-bXHRBAbhYLjoubas4636f/s1920/CollaboraOnline_Writer_Notebookbar_home_zoom133_20200810_1920x982.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="600" data-original-height="160" data-original-width="1920" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim-SfTSZxi5r_tbkjHSvb90Dgx1TLxVWDoa_P2m08vVRkxu-WPmKbsVlObvSaIGhN-zCgDYbz0R144JHHeGB8nj8r0XFh2VQEc0FX-cqbfEMeTDcZMJSHObo-bXHRBAbhYLjoubas4636f/s600/CollaboraOnline_Writer_Notebookbar_home_zoom133_20200810_1920x982.png"/></a><p style="text-align: center">Notebookbar</p></div>
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVbitQZSuwHoNoyLwZo3M3Ntt38-wq5YgpWM48_oJKIlAzEwfmXYZ9JCnMAbLE1u251yncyxCh6-T7okyPwrTv_R3pb9keEOarkiFHcPWV5I5_2s047TWa692TQDUBhEJqVMvcHnEwGnq0/s741/mobile-chart-type.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" height="320" data-original-height="741" data-original-width="417" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVbitQZSuwHoNoyLwZo3M3Ntt38-wq5YgpWM48_oJKIlAzEwfmXYZ9JCnMAbLE1u251yncyxCh6-T7okyPwrTv_R3pb9keEOarkiFHcPWV5I5_2s047TWa692TQDUBhEJqVMvcHnEwGnq0/s320/mobile-chart-type.png"/></a><p style="text-align: center">Mobile tool palette - reused sidebar from the desktop application.</p></div>
Here you can see my slides:
<a href="https://drive.google.com/file/d/1VaG35VjHNnOgwnoPKPJeR4-dXFogEWnJ/view?usp=sharing"><div class="separator" style="clear: both;"><img alt="" border="0" width="640" data-original-height="225" data-original-width="400" src="https://1.bp.blogspot.com/OppmjwN3IZ351VtX9ixVX7a2cHN0epgKYaQWDN_1OkLyR5OV7fv4kp31uquyRufl2QUvu68rDmMt27I=s640"/></div></a>
<a href="https://drive.google.com/file/d/10ie-ElOPNrkEzWidEpvf8dy9AIDWLbFP/view?usp=sharing"><div class="separator" style="clear: both;"><img alt="" border="0" width="640" data-original-height="225" data-original-width="400" src="https://1.bp.blogspot.com/X2EBgviEWnHLT7jdg2gyANwjYPSLPjkn8lCJXUeSrCkhPnl9mT-FVHxLDj6z6ZGwg3vTir6wNYsU5JQ=s640"/></div></a>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-22845410829896507512019-09-20T09:46:00.000-07:002019-09-23T00:12:56.178-07:00Native widgets on mobile for Online - prototype<p>In the desktop suite we have the sidebar which is a context dependant feature improving user performance eg. in chart editing. Unfortunately it's not the perfect UI for a mobile clients, so the new concept is to tunnel the UI description to the browser and create native widgets there. I did some prototyping work in this area and I can see first results:</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSzpFfkyYZXOO6mf0CJVTGYjvKcy9OlRGrhVAlVZWUxHI91AuZPvixRMi3gE1VjkJlFRBA17HbAk_xfzLCO-SHiUk-mPgYrxpjTRRXdWi_m8ytPyppJE1Fw8B0v2KDaTVhfkJ_-b9YyNMX/s1600/jsdialog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSzpFfkyYZXOO6mf0CJVTGYjvKcy9OlRGrhVAlVZWUxHI91AuZPvixRMi3gE1VjkJlFRBA17HbAk_xfzLCO-SHiUk-mPgYrxpjTRRXdWi_m8ytPyppJE1Fw8B0v2KDaTVhfkJ_-b9YyNMX/s640/jsdialog.png" width="640" height="403" data-original-width="1512" data-original-height="951" /></a></div>
<p>As we can see all basic widgets and layout are preserved. All sections are visible, it will be possible to create an UI where user will see only one section at time for better mobile experience. Complex controls like color selectors are not available yet (I'm going to use our color selector present in the toolbar). The development takes place in the <a href="https://cgit.freedesktop.org/libreoffice/core/log/?h=feature/jsdialogs">feature branch</a>.</p>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-76477018645351164592019-09-16T02:27:00.000-07:002019-09-17T12:09:19.357-07:00LibOCon 2019 Almeria - How to debug the Online conveniently<div class="separator" style="clear: both; text-align: center;"><a href="https://drive.google.com/file/d/1VbSgbJ0xoN0Pee5U5i9Z9SzQw_JD_t2p/view?usp=sharing" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><div class="separator" style="clear: both; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXA8Fh9i6PBUpHd5B6txw8jBPvy77fmlW3m4eaomXBWAUlPX-sUIuwi_7761d_VXnnERgbiIY0fKnQ923JoC6BQElTVc-2vo3B5AlRitkqlKvq9b29CZ0JzmnXGqPEl2jjVH-7pOyRNsLt/s640/szymon_klos_LibOCOn2019_how_to_debug_online.png" width="640" height="360" data-original-width="1600" data-original-height="900" /></div></a></div><br/>
<blockquote class="twitter-tweet" data-lang="pl"><p lang="pl" dir="ltr">Szymon Kłos showing how to debug conveniently 💪 <a href="https://twitter.com/hashtag/collaboraonline?src=hash&ref_src=twsrc%5Etfw">#collaboraonline</a> <a href="https://twitter.com/hashtag/libreoffice?src=hash&ref_src=twsrc%5Etfw">#libreoffice</a> <a href="https://twitter.com/hashtag/libreofficeonline?src=hash&ref_src=twsrc%5Etfw">#libreofficeonline</a> <a href="https://twitter.com/LibOCon?ref_src=twsrc%5Etfw">@LibOCon</a> <a href="https://twitter.com/hashtag/debug?src=hash&ref_src=twsrc%5Etfw">#debug</a> <a href="https://t.co/EXrqk0WvCM">pic.twitter.com/EXrqk0WvCM</a></p>— Collabora Office (@CollaboraOffice) <a href="https://twitter.com/CollaboraOffice/status/1172417349984456704?ref_src=twsrc%5Etfw">13 września 2019</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-44939761470890314632019-09-05T00:33:00.000-07:002020-05-16T01:41:55.841-07:00Hackerspace 3city - August with Open SourceThis year in local Hackerspace in Gdańsk there was a series of meetups about Open Source related topics. I participated in one of them - IoT workshop about <a href="https://www.thethingsnetwork.org/">The Things Network</a> and <a href="https://en.wikipedia.org/wiki/LoRa">LoRaWAN</a> by <a href="http://www.inzynierdomu.pl/">Inżynier Domu</a>.<br/>
To be short: LoRaWAN is an open network for IoT devices which provides possibility to communicate eg. with a server side application. Interesting standard, but unfortunately not so popular in Poland yet (only one gateway in hs range - at Gdansk University of Technology).<br/><br/>
Links to remember:<br/>
<a href="http://www.inzynierdomu.pl/lora-i-lorawan-czesc-1/">http://www.inzynierdomu.pl/lora-i-lorawan-czesc-1/</a><br/>
<a href="http://www.inzynierdomu.pl/lora-i-lorawan-czesc-2/">http://www.inzynierdomu.pl/lora-i-lorawan-czesc-2/</a><br/>
Photos from: <a href="https://www.facebook.com/pg/hackerspacetrojmiasto/posts">https://www.facebook.com/pg/hackerspacetrojmiasto/posts</a>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com2tag:blogger.com,1999:blog-2789549376671647629.post-22651537168808385482019-02-21T03:11:00.000-08:002019-02-21T04:59:16.432-08:00Hack Week - Browsersync integration for Online<p>Recently my LibreOffice work is mostly focused on the Online. It's nice to see how it is growing with new features and has better UI. But when I was working on improving toolbars (eg. folding menubar or reorganization of items) I noticed one annoying thing from the developer perspective. After every small change, I had to restart the server to provide updated content for the browser. It takes few seconds for switching windows, killing old server then running new one which requires some tests to be passed.</p>
<p>Last week during the Hack Week funded by <a href="https://www.collaboraoffice.com/">Collabora Productivity</a> I was able to work on my own projects. It was a good opportunity for me to try to improve the process mentioned above.</p>
<p>I've heard previously about <a href="https://www.browsersync.io/">browsersync</a> so I decided to try it out. It is a tool which can automatically reload used .css and .js files in all browser sessions after change detection. To make it work browsersync can start proxy server watching files on the original server and sending events to the browser clients if needed.</p>
<p>What is the advantage? Developer tools in the browser are not good enough?
<ul><li>Changes tracked by git - no need to copy changes from the browser's developer tools to the source files</li>
<li>You can setup testing matrix with all apps (writer, calc, impress) and all is reloaded instantly at one time (even on other devices like tablet or smartphone)</li>
<li>Fast prototyping</li></ul></p>
<p>Disadvantages<ul><li>You have to remember to run syntax tests before commiting the changes</li></ul></p>
<p>To integrate browsersync I needed to do some build system changes. First, all static files are served from 'loleaflet/dist' directory. These files are not the original sources but copies. I modified the Makefiles to create symlinks instead if the browsersync is activated. Thanks to that we can modify sources tracked by git and proxy can detect changes.</p>
<p>To try it out on your own:
<ol><li>Delete your 'loleaflet/dist' folder or<br/> <code>make clean</code><br/> you might need to delete generated 'Makefile' if repository was used before</li>
<li>Install browsersync:<br/> <code>npm install -g browser-sync</code></li>
<li>Run 'configure' script with additional <code>--enable-browsersync</code> argument</li>
<li>Run server with:<br/> <code>LOOL_SERVE_FROM_FS=1 make run</code></li>
<li>In the other console run browsersync:<br/> <code>make sync-[writer|calc|impress]</code></li></ol> More information can be found in: 'loleaflet/README'</p>
<p>In the video below you can see how it works:</p>
<div class="separator" style="clear: both; text-align: center;"><a href="https://www.youtube.com/embed/DNLRdNyStIU" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdEoQLywohrxJ2AbUSWrgxqmntsM4Rj4yIj-UgXrwd8zV39WNq0nTPIqyDNNmNalqdmhQXaNXa1hJ59dnJUfbuYpvWgfs3girIoAzWuZT9yeVJnQdo30j2yCM3SoBoQQ5Rd0zrm-OncGOJ/s640/bs3.mp4" width="569" height="320" data-original-width="1920" data-original-height="1080" /></a></div>
<p>Next step will be to allow browsersync usage with cloud storage integrations like richdocuments, I noticed also some issues with access from other devices (app is still using original server for some resources).</p>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-47763070825307011362018-10-18T12:12:00.000-07:002018-10-29T14:15:25.158-07:00Latest improvements in PPTX support - Tirana, LiboCon 2018My slides, the LibreOffice conference 2018:<br/><br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://drive.google.com/file/d/1zY87NB3YJZdQ1R1Q0hHE8dS1YcSXayQ0/view?usp=sharing" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgakTpwsGx3LHxP7dUhdqVNn3HZCq6ovJ-YEG1G2HEXVTpJ9qUD9Zp4LPh2BJxLehEJYrymGnVuPqXp1j44lXg46GVr3S0hpZRnXz3GA95xFUkktrDW_4QfdjXvLFxIbuyEDzf3wIZ3GsGr/s320/Latest+improvements+in+PPTX+support+2018_cover.png" width="400" height="300" data-original-width="400" data-original-height="300" /></a></div>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-1342145183420567142018-03-27T12:07:00.000-07:002018-03-27T13:04:52.991-07:00Highlight colors customization for CalcIn Calc it is possible to activate "Value Highlighting" mode (Ctrl + F8). When activated, Calc displays cell contents in different colors, depending on type. By default Text cells are formatted in black, formulas in green, number cells in blue, and protected cells are shown with light grey background, no matter how their display is formatted. There was no possibility to change default colors what could be a problem for a color blind person. During my work for Collabora Productivity I introduced new entries to the "Application colors" tab in Calc options to fix this issue:<br/><br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbRz0EHp98vQWPuAT-t2pcqSu9GiRPMI0nEg7iKLlSu5u2xkg6rDydy5DWp8w3rP6n3ClDvXywncGZjarch9mlXpubmXkyouohBmvRJ0-YrZV-H28-PmUszYyyJDJmlqY40yvodRSj4i6u/s1600/colors2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbRz0EHp98vQWPuAT-t2pcqSu9GiRPMI0nEg7iKLlSu5u2xkg6rDydy5DWp8w3rP6n3ClDvXywncGZjarch9mlXpubmXkyouohBmvRJ0-YrZV-H28-PmUszYyyJDJmlqY40yvodRSj4i6u/s400/colors2.png" width="400" height="335" data-original-width="814" data-original-height="682" /></a></div>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-52199425919245914582018-02-15T09:24:00.002-08:002018-02-15T09:25:30.782-08:00Nixie clock #3 - NodeMCU & auto time updatePrevious post: <a href="https://eszkadev.blogspot.com/2017/12/nixie-clock-2-multiplexing.html">Nixie clock #2</a><br/><br/>
Recently I finished my clock (electronics). All the code is uploaded on my github profile: <a href="https://github.com/eszkadev/nixie-clock">clock repo</a>.<br/>
I added automatic time update done by NodeMCU which connects to my predefined WiFi Access Point and after receiving the time, sends it over UART to the atmega microcontroller.<br/><br/>
Spaghetti for testing and results:<br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdJHnVtq2hQnjYpYu0e8sLhHv36bSixBT_YInBwicdqI5urdtkVgkRH2jwCZjdOTOlvgi6CbOLkQMmGPj1QCICeSnqzLkd0AaqwyfI6vczYDxn4wHSjj9gXwJi_Kl-3mwEVg0CUDpRFeHB/s1600/IMG_20180108_222236.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdJHnVtq2hQnjYpYu0e8sLhHv36bSixBT_YInBwicdqI5urdtkVgkRH2jwCZjdOTOlvgi6CbOLkQMmGPj1QCICeSnqzLkd0AaqwyfI6vczYDxn4wHSjj9gXwJi_Kl-3mwEVg0CUDpRFeHB/s320/IMG_20180108_222236.jpg" width="320" height="240" data-original-width="1600" data-original-height="1200" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgri6wS9NVpiGjdiwM5lsKfvIPfyiwcLpd01wJXHTRUXwI3hrWYy8TnhqxcXN514iwTMP1gTifIsGvMkP4pAl187Cx8wRZkgBvqlLrN2JA_W3gYV_k4-Of9hF6gbI61SsU7oZJIEf_sSFZf/s1600/IMG_20180108_222305.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgri6wS9NVpiGjdiwM5lsKfvIPfyiwcLpd01wJXHTRUXwI3hrWYy8TnhqxcXN514iwTMP1gTifIsGvMkP4pAl187Cx8wRZkgBvqlLrN2JA_W3gYV_k4-Of9hF6gbI61SsU7oZJIEf_sSFZf/s320/IMG_20180108_222305.jpg" width="240" height="320" data-original-width="1200" data-original-height="1600" /></a></div><br/>
Now I should design a case for this device...Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-53139891082166914332018-01-02T13:06:00.000-08:002018-01-02T13:26:00.073-08:00Connect to the bluetooth serial port in linuxFrom time to time I use my bluetoth module HC-05 to communicate with microcontroller. Every time I have the same problem because I don't remember how to do that. Short receipe working for me (at least for openSUSE):<br/>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#202020;;padding:0px;color:#ffffff;text-align:left;line-height:20px;"><code style="color:#ffffff;word-wrap:normal;"> sudo bluetoothctl
power on
agent on
scan on
pair <MAC>
</code></pre>
Then:<br/>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#202020;;padding:0px;color:#ffffff;text-align:left;line-height:20px;"><code style="color:#ffffff;word-wrap:normal;"> sudo killall rfcomm
sudo rfcomm connect /dev/rfcomm0 <MAC> 1
</code></pre><br/>
/dev/rfcomm0 is ready to use now.<br/><br/>
<a href="https://askubuntu.com/questions/248817/how-to-i-connect-a-raw-serial-terminal-to-a-bluetooth-connection">source</a>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-43209396174921552642017-12-22T14:29:00.000-08:002017-12-22T14:29:40.022-08:00Nixie clock #2 - multiplexingPrevious post: <a href="http://eszkadev.blogspot.com/2017/02/nixie-clock-1-boost-converter-and-my.html">Nixie clock #1</a><br/><br/>
I had to choose my project for embedded systems classes (containing some kind of display, communication module, some other parts like sensors, etc.) and I proposed to continue with my nixie clock. I will have to add automatic time downloading from the internet. I'm going to use cheap & popular wifi module esp8366:<br/><br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAYvz24ZJ6IEt2f0iEsL_vfzFtAtKKxZZBHDpelzXXdpeeaEdMIJYazHKmHguUt65o8gtOPWpieLChD21GWaofXUY35Z9X6F2SBRcpBbn9oaOp5l2fwdYYEnAojh-NS-PKUQahmepxBZaV/s1600/IMG_20171222_230156.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAYvz24ZJ6IEt2f0iEsL_vfzFtAtKKxZZBHDpelzXXdpeeaEdMIJYazHKmHguUt65o8gtOPWpieLChD21GWaofXUY35Z9X6F2SBRcpBbn9oaOp5l2fwdYYEnAojh-NS-PKUQahmepxBZaV/s320/IMG_20171222_230156.jpg" width="240" height="320" data-original-width="1200" data-original-height="1600" /></a></div><br/>
Today I finished my second PCB for this project, board performing signal multiplexing for tubes. Inputs are HV from the boost converter, digit and tube activation signals. On the output correct tube gets power supply and specified number pin is driven. I put a lot of work into it (done in period of 2-3 weeks in the evenings), fortunately the board works:<br/><br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix36klhDth161OoyZ4WmAPS9FbGzwQSaKmHcf4ZurvsK8ir4GmYalnvNRFLDaeHRud42I_vGlPCkWjmw5g9wCsBJupJ5Xks2bGTx4iqCxhl2UzvGnQY_tMhlbUfv7sUxg01oB_Rf0g78oq/s1600/IMG_20171222_224141.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix36klhDth161OoyZ4WmAPS9FbGzwQSaKmHcf4ZurvsK8ir4GmYalnvNRFLDaeHRud42I_vGlPCkWjmw5g9wCsBJupJ5Xks2bGTx4iqCxhl2UzvGnQY_tMhlbUfv7sUxg01oB_Rf0g78oq/s320/IMG_20171222_224141.jpg" width="320" height="240" data-original-width="1600" data-original-height="1200" /></a></div><br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3MLW6yoMrueQdAQU9tmY_hVkQopBEtKvXpR2O7sK8yaTuKzwtdDP6n05CiDg7FFgU0vNSOyc99cGrLLabOYZgX9nMuXlLpCSl6Y-0DhmzMH1KWOk3hx7mbTcE_CuYfysaxcdZtT48Iw1B/s1600/IMG_20171215_185442_HDR.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3MLW6yoMrueQdAQU9tmY_hVkQopBEtKvXpR2O7sK8yaTuKzwtdDP6n05CiDg7FFgU0vNSOyc99cGrLLabOYZgX9nMuXlLpCSl6Y-0DhmzMH1KWOk3hx7mbTcE_CuYfysaxcdZtT48Iw1B/s320/IMG_20171215_185442_HDR.jpg" width="320" height="240" data-original-width="1600" data-original-height="1200" /></a></div><br/>
Nice views by copper & salts during etching so waiting wasn't too boring :)<br/>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-79893035926094068832017-12-06T14:32:00.000-08:002017-12-06T14:32:51.278-08:00Serverless architectureRecently I've heard about idea called "serverless architecture". This is the next architecture proposal for web applications after very popular in recent years microservices. To be short, in this approach developers don't have to care much about server-side infrastructure. Great description can be found at <a href="https://martinfowler.com/articles/serverless.html">martinfowler.com</a>. Serverless concepts can be found in big providers' platforms like AWS or Azure. As I see on Azure platform there is 1M free function invocations per month what allows to create & start small applications for free. Development can be rapid due to provided integrations (in Azure - Logic Apps) with popular services (Salesforce, Office 365, Twitter, Dropbox, Google services).Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-35038352857214025812017-06-13T00:00:00.000-07:002018-03-27T13:05:29.839-07:00Watermark for LibreOffice WriterRecently I was working on Watermark feature for LibreOffice Writer. In case of TSCP Classification it was possible to add "Confidential" watermark in the document background. I extended that with possibility to add custom text, font family, color, transparency level and angle. Additional dialog was introduced in the menubar under "Insert" > "Watermark...".
<br/><br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_ozCLSx59OeamEOv5UJLbP7j9uS9cwrdVZ6NilLsbuRUohaHblXNBWVVmpmsnK2VaxBaSauUdJLGnemtVu0s7sZPFg7SCQw6kX3BJmSUkcBB1uyzDeaMHodl_M_v9M3QQh-DOmKhrd_Bh/s1600/watermark.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_ozCLSx59OeamEOv5UJLbP7j9uS9cwrdVZ6NilLsbuRUohaHblXNBWVVmpmsnK2VaxBaSauUdJLGnemtVu0s7sZPFg7SCQw6kX3BJmSUkcBB1uyzDeaMHodl_M_v9M3QQh-DOmKhrd_Bh/s640/watermark.gif" width="640" height="485" data-original-width="800" data-original-height="606" /></a></div>
<br/>
I improved also export and import for that kind of shapes from .dotx files. Now font-family is correctly loaded:<br/><br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7E6VDpA5dwflP0qnfnf8StG1FeffLnXidomOwcaUBY6ekQbCy_H7FhEm3n-eLh2GYljAY05AD7W3ticgN7uk5_c0cdJiDpjNMcYequWtPb-CEqyXQ3Hgk9GnxRqdH0eTtjRTUl9Z5YZ-m/s1600/water_docx_font.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7E6VDpA5dwflP0qnfnf8StG1FeffLnXidomOwcaUBY6ekQbCy_H7FhEm3n-eLh2GYljAY05AD7W3ticgN7uk5_c0cdJiDpjNMcYequWtPb-CEqyXQ3Hgk9GnxRqdH0eTtjRTUl9Z5YZ-m/s640/water_docx_font.png" width="640" height="342" data-original-width="1389" data-original-height="743" /></a></div><br/>
RTF import also was improved, before Watermark was visible as a plain text:<br/><br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibDReNlJ61pJFIXTMev1vOiPR91jW-cGmqRsrESpQVWVMXlNaCf_VFzh7GDNsQ_7TGD5FVL1rpEt2S60VU1Z8L9vi-VVD45SJeqxfIB4EzNogaMS8mC6y4wk4FmRLAOcvgtoluMSoulM4F/s1600/water_rtf_before_after.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibDReNlJ61pJFIXTMev1vOiPR91jW-cGmqRsrESpQVWVMXlNaCf_VFzh7GDNsQ_7TGD5FVL1rpEt2S60VU1Z8L9vi-VVD45SJeqxfIB4EzNogaMS8mC6y4wk4FmRLAOcvgtoluMSoulM4F/s640/water_rtf_before_after.png" width="640" height="298" data-original-width="1495" data-original-height="696" /></a></div>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com3tag:blogger.com,1999:blog-2789549376671647629.post-71968297822847231352017-05-04T09:29:00.000-07:002017-05-04T09:29:04.293-07:00AutoText import from .dotx and .dotm filesIn the LibreOffice Writer user can prepare some pieces of documents which can be reused later. That feature is called <a href="https://help.libreoffice.org/Writer/Using_AutoText">AutoText</a> and is accessible using menubar (Tools - AutoText). In the AutoText dialog it is possible to manage existing entries and also import new ones from files.
<br/>
So far only *.dot and *.doc file formats were supported for importing AutoText. Here was my first task at Collabora: to add .dotx and .dotm format support.
<br/><br/>
One template document can contain multiple AutoText entires. Each entry has own name and can consist of formatted text, text with graphics, tables or fields. To import new templates user need to open AutoText dialog (Tools - AutoText), select according category and from the "AutoText" menubutton choose "Import". File explorer will appear. In the file format listbox new entries were introduced: "Microsoft Word 2007-2013 XML" and "Microsoft Word 2007-2013 XML Template" for *.docx and *.dotx or *.dotm.<br/><br/>
AutoText has own long name and shortcut. It is possible to insert AutoText after typing shortcut name into document and pressing F3.<br/><br/>
Following GIF shows *.dotx import with complex content (table, shape, formatted text and fields):<br/>
<br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK3EpzTK8mqDnKirxMf16s88s4KjmCZFXCSeNwELIBugqNrgchhds9WKfskMJR2rJWf9WR00uH4MJnoCP8Uv8ROVZYeM2bQM_snsXl24lNQiJLYWtZ3DIM-qY-WJmLM1l1n1DwopdeYikt/s1600/output.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK3EpzTK8mqDnKirxMf16s88s4KjmCZFXCSeNwELIBugqNrgchhds9WKfskMJR2rJWf9WR00uH4MJnoCP8Uv8ROVZYeM2bQM_snsXl24lNQiJLYWtZ3DIM-qY-WJmLM1l1n1DwopdeYikt/s640/output.gif" width="640" height="550" /></a></div>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com1tag:blogger.com,1999:blog-2789549376671647629.post-90295261281448553192017-04-16T14:14:00.000-07:002017-04-16T14:14:01.252-07:00Linux rescue after Windows 10 Creators UpdateLast night I've updated my Windows 10. That was big update called "Creators Update". I don't know details what was changed (I noticed only new privacy settings and mail client) but one thing was significant for me as a linux user. When I wanted to switch to my openSUSE it opened rescue mode. It happend after I entered password to my encrypted home partition. My first thought: update modified my partition! Fortunately it was possible to open and mount it using cryptsetup. I checked also /etc/crypttable and I realized what is the root cause of my problems.<br/>
In my config I found /dev/sda7 but my current encrypted partition number is 6! Fast research and I found empty space on my disk between two partitions. Possibly the update removed one of partitions existing before (created during Windows 10 installation) and now all my linux partitions have decreased numbers.<br/>
I created new partition in the empty space. Reboot. Linux works.Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-51137990901144202882017-04-10T14:25:00.000-07:002017-04-15T09:08:47.901-07:00SeniorITy Code powered by Sii - EmbeddedTwo weeks ago I participated in meeting where shortly were preseted different security aspects of the embedded systems.<br/><br/>
First talk was a introducion into C++11 for beginners. Next two were about safety and security of embeddes systems. Part about safety was focused on developing standards for increase of a quality of the final system (eg. restrictions in memory management).<br/><br/>
Last part was the most interesting in my opinion. Many methods of systems analysis were metioned - including copying of the architecture techniques. It is a real problem when it is that simple to reconstruct the net list from photos of a circuit using tools like <a href="http://www.degate.org/">degate</a>. To watch how the device is working there are methods called side channel attacks. Attacker can observe properties such as power usage, processing time, temperature or electro magnetic emissions to get knowledge about computations inside a chip. Other kind of attacks are state modifications. Using laser beam it is possible to change memory registers (but not single bit) which can be used to introduce changes in the code execution. Other methods are: overheating what leads to skiping instructions in some processors or changing voltage level to change signal interpretation (high/low state).<br/><br/>
Links:<br/>
<a href="http://www.ecs.umass.edu/ece/wolf/pubs/daes2008.pdf">Sri Parameswaran, Tilman Wolf - Embedded systems security—an overview</a>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-11001609445926182492017-04-04T05:12:00.001-07:002018-01-02T13:14:36.378-08:00How to run JHipster on openSUSE 42.2<a href="https://jhipster.github.io/">JHipster</a> is a tool to generate full web app template using Spring Boot and Angular frameworks. When I've tried to run it for a first time on my openSUSE 42.2 I've got:<br/>
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#202020;;padding:0px;color:#ffffff;text-align:left;line-height:20px;"><code style="color:#ffffff;word-wrap:normal;">/usr/local/lib/node_modules/generator-jhipster/generators/app/index.js:15
constructor: function (...args) { // eslint-disable-line object-shorthand
^^^
SyntaxError: Unexpected token ...
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.defineProperty.get [as jhipster:app] (/usr/local/lib/node_modules/yo/node_modules/yeoman-environment/lib/store.js:40:23)
at Store.get (/usr/local/lib/node_modules/yo/node_modules/yeoman-environment/lib/store.js:64:35)
at Environment.get (/usr/local/lib/node_modules/yo/node_modules/yeoman-environment/lib/environment.js:261:21)</code></pre>
Unfortunately JHipster needs node.js with version 6, not 4 which I installed from my default repositories. After node.js 6 installation it was working.<br/><br/>
After successful generation I wanted to start my web app, but I've met second problem. H2 database which I wanted to use for developing was throwing java.net.UnknownHostException:
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:none;background:#202020;;padding:0px;color:#ffffff;text-align:left;line-height:20px;"><code style="color:#ffffff;word-wrap:normal;">java.net.UnknownHostException: HOSTNAME.suse</code></pre>
Solution is simple: add new entry in the /etc/hosts
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:none;background:#202020;;padding:0px;color:#ffffff;text-align:left;line-height:20px;"><code style="color:#ffffff;word-wrap:normal;">127.0.0.1 HOSTNAME.suse</code></pre><br/>
Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-17044443007850297602017-03-27T09:03:00.000-07:002017-04-15T09:04:18.552-07:00Neural networks on drugsAI can be used just for fun. Great example is <a href="https://en.wikipedia.org/wiki/DeepDream">DeepDream</a> project which generates new images based on provided ones.<br/>
Results: :D<br/><br/>
<iframe width="645" height="360" src="https://www.youtube.com/embed/DgPaCWJL7XI" frameborder="0" allowfullscreen></iframe>
<br/><br/>
Way how it is possible is described in the following video (lectures, Stanford):<br/><br/>
<iframe width="645" height="360" src="https://www.youtube.com/embed/ta5fdaqDT3M?list=PLwQyV9I_3POsyBPRNUU_ryNfXzgfkiw2p" frameborder="0" allowfullscreen></iframe>
<br/><br/>
Another interesting video briefly showing how AI is used today:<br/><br/>
<iframe width="645" height="360" src="https://www.youtube.com/embed/mQO2PcEW9BY" frameborder="0" allowfullscreen></iframe>
<br/>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-21731405012978149072017-03-05T02:16:00.000-08:002017-03-26T13:01:17.111-07:000patchI've just read about very interesting product - <a href="https://0patch.com/">0patch</a>. Occasionaly, we got to know that some companies didn't fixed the bug which is causing serious vulnerability. When it becomes public sometimes we have to wait months for an official patch and 0patch want to provide own unofficial fixes.<br/>
The idea is simple: they prepare small patches which are applied by 0patch agent in the runtime. That solution uses technique called <a href="https://en.wikipedia.org/wiki/Hooking">function hooking</a> to modify existing code. They also shared <a href="https://0patch.com/files/0patch_Patch_Developer_Manual.pdf">manual for developers</a> which shows how to prepare own patches.<br/><br/>
Links:<br/>
<a href="https://0patch.blogspot.com/">0patch blog</a>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0tag:blogger.com,1999:blog-2789549376671647629.post-80130671208430738032017-02-04T07:38:00.001-08:002017-04-06T02:57:19.754-07:00Nixie clock #1 - boost converter and my first PCBSome time ago I bought couple of <a href="https://en.wikipedia.org/wiki/Nixie_tube">nixie tubes</a>. Nixie tubes look nice especially in the dark. When I've seen them for the first time I decided to build something on my own (I'm going to build a clock).<br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk1WU0n1z-Kvl5m3er_sGUt1z7O7ZbQLbHTLxktCbLlFqFU5Hw27EXToi597cdFoO3q2VL53RyaHk1J2XyIaO6YUi0pZpcyyrSdSSRAz4nLKChpCt4hGdG3GTnVXXJ5p__iEQ4lVtNtls6/s1600/IMG_20170124_183217.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk1WU0n1z-Kvl5m3er_sGUt1z7O7ZbQLbHTLxktCbLlFqFU5Hw27EXToi597cdFoO3q2VL53RyaHk1J2XyIaO6YUi0pZpcyyrSdSSRAz4nLKChpCt4hGdG3GTnVXXJ5p__iEQ4lVtNtls6/s400/IMG_20170124_183217.jpg" width="400" height="300" /></a></div>
<br/>First I had to build boost converter because tubes are working with high voltage (170-190V). I used this <a href="http://www.ledsales.com.au/kits/nixie_supply.pdf">one</a> which converts input voltage in range 9-12V to needed values. Output can be modified with potentiometer. After I bought all parts and assembled circuit I tested it with tube:<br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijfnffTXYFuxwIhNZbijWok1Ern5nNqmAg-ug67tFRnx1eqJLqlK06Czc1w5UTtY4L0SVqnigqL2MqbEOKUHfvVycmz70vy_Tg8L0HIEkIgnspt0gqnntLpahB7FFiIyRpTa-7xCJqwpO_/s1600/DSC00422.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijfnffTXYFuxwIhNZbijWok1Ern5nNqmAg-ug67tFRnx1eqJLqlK06Czc1w5UTtY4L0SVqnigqL2MqbEOKUHfvVycmz70vy_Tg8L0HIEkIgnspt0gqnntLpahB7FFiIyRpTa-7xCJqwpO_/s400/DSC00422.jpg" width="300" height="400" /></a></div><br/>
<br/>Today I've created my first <a href="https://en.wikipedia.org/wiki/Printed_circuit_board">PCB</a> using thermal transfer of a circuit printed (using laser printer) on the special glossy paper. It was also etched in a Sodium Persulfate solution. Results:<br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgThFJjrRtEdWY1e5iIjJ1RdwVW3Ka0azrmNL6UPKlRE1Sjd8Io1zGSz7QaCMXm5gBshOCG-Q8i0eFrVBplHk9F2Bt3JlRFO4zXxLlRo731Y_wNeROrqSduaCpwMP97oIRecfyEkYD0-jSg/s1600/DSC_0615.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgThFJjrRtEdWY1e5iIjJ1RdwVW3Ka0azrmNL6UPKlRE1Sjd8Io1zGSz7QaCMXm5gBshOCG-Q8i0eFrVBplHk9F2Bt3JlRFO4zXxLlRo731Y_wNeROrqSduaCpwMP97oIRecfyEkYD0-jSg/s400/DSC_0615.JPG" width="400" height="266" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilQWgfVOWQTILW2ES4OEsP-M8LJ6Gc9nqNMdPvbcQR0JIOTsesXdajwfYHewpVRmsbiueCKobKYBPFoVXMCQ-GT_1NOKESBpPlrot3Bj7GjSqtoFIkA4w_YYtG-0T2qXT0HyWRLctqNSp6/s1600/DSC_0619.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilQWgfVOWQTILW2ES4OEsP-M8LJ6Gc9nqNMdPvbcQR0JIOTsesXdajwfYHewpVRmsbiueCKobKYBPFoVXMCQ-GT_1NOKESBpPlrot3Bj7GjSqtoFIkA4w_YYtG-0T2qXT0HyWRLctqNSp6/s400/DSC_0619.JPG" width="400" height="266" /></a></div>
<br/><br/>
It is not perfect but pretty good considering that it was my first time :) I will put on that board my boost converter.
<br/><br/>
EDIT:<br/>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiDi6axXe3vI94t8MZ46qFuQvKlXhTpOpQDifq1rm3vv0rQALtgjM7V8AV90a1TRXzEX_dkay7-s8FqlO3fsb8TzDRi3WubKh2EorbzvvzkHap_oOitr2PAHckkKBsT6Bfq5BHCX-T7MKR/s1600/DSC_0636.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiDi6axXe3vI94t8MZ46qFuQvKlXhTpOpQDifq1rm3vv0rQALtgjM7V8AV90a1TRXzEX_dkay7-s8FqlO3fsb8TzDRi3WubKh2EorbzvvzkHap_oOitr2PAHckkKBsT6Bfq5BHCX-T7MKR/s320/DSC_0636.JPG" width="320" height="213" /></a></div>
<br/>
Board after soldering.
<br/><br/>Project files:<br/>
<a href="https://github.com/eszkadev/nixie-clock/tree/master/boost-converter">https://github.com/eszkadev/nixie-clock/tree/master/boost-converter</a>Szymon Kłoshttp://www.blogger.com/profile/18405957410766620690noreply@blogger.com0