<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Walking on the edge</title><link>https://ralchev.info/</link><description></description><lastBuildDate>Sat, 17 Oct 2020 07:10:00 +0300</lastBuildDate><item><title>Under an open sky</title><link>https://ralchev.info/posts/under-an-open-sky/</link><description>&lt;p&gt;This summer we decided to spend a week far from the noise of civilization, meters away from the sea. During the day, we challenged ourselves to use as few resources as possible. At night, we felt free, knowing that we are just a tiny part of this world. &lt;/p&gt;
&lt;p&gt;&lt;img alt="Under an open sky" src="https://ralchev.info/images/under-an-open-sky.jpg"&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ivan Ralchev</dc:creator><pubDate>Sat, 17 Oct 2020 07:10:00 +0300</pubDate><guid isPermaLink="false">tag:ralchev.info,2020-10-17:/posts/under-an-open-sky/</guid><category>posts</category></item><item><title>The Small Decentralised Web</title><link>https://ralchev.info/posts/the-small-decentralised-web/</link><description>&lt;p&gt;The year is 2018. I have just left the home of my friends An and &lt;a href="https://yovko.net" target="_blank" rel="noopener"&gt;Yovko&lt;/a&gt;. While driving to Sofia, I am listening to &lt;a href="https://www.theguardian.com/technology/audio/2018/feb/02/digital-dystopia-taking-back-control-podcast" target="_blank" rel="noopener"&gt;"Digital Dystopia: taking back control"&lt;/a&gt; — a podcast by The Guardian, featuring Aral Balkan, Gus Hosein and Rachel Botsman. The reason is our long talk about the state of the Internet and the changes in the way we communicate. &lt;/p&gt;
&lt;p&gt;Social networks easily let us take the stage in front of a large audience. They quickly reward us for every action. In return, they collect troves of sensitive data concerning our lives. And for the most part, we seem to be perfectly fine with it. In fact, this is how most of the Internet works. We don't mind seeing personalized ads. On the contrary — we are told we prefer them over random, irrelevant ads. Yet, we get amused each time LinkedIn shows us a recent post of an old contact we just met in the streets, even though we have not talked in years or engaged in any LinkedIn-related way.&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;The year is 2020. Aral has been pushing the &lt;a href="https://sitejs.org" target="_blank" rel="noopener"&gt;Site.js project&lt;/a&gt; further with the goal to let everybody in the known world &lt;a href="https://ar.al/2020/08/07/what-is-the-small-web/" target="_blank" rel="noopener"&gt;own their place on the Internet&lt;/a&gt; and have full control over what they share and whom they communicate with.&lt;/p&gt;
&lt;p&gt;I have just installed the &lt;a href="https://www.manyver.se" target="_blank" rel="noopener"&gt;Manyverse&lt;/a&gt; app on my mobile phone to test the "off the grid", decentralised social network with friends. A few years ago, I read an article by Andre Staltz called &lt;a href="https://staltz.com/the-web-began-dying-in-2014-heres-how.html" target="_blank" rel="noopener"&gt;"The Web began dying in 2014, here's how"&lt;/a&gt;. Then, I enjoyed his thoughts about &lt;a href="https://staltz.com/a-plan-to-rescue-the-web-from-the-internet.html" target="_blank" rel="noopener"&gt;saving the Web from the Internet&lt;/a&gt;. Today, I am more than happy to see it working — over our home network, syncing content between devices and storing it in a local database. No algorithms, no collection of sensitive data and control over "what content gets through the noise".&lt;/p&gt;
&lt;p&gt;And &lt;a href="https://joinmastodon.org" target="_blank" rel="noopener"&gt;Mastodon&lt;/a&gt; has become an even more interesting place, albeit a bit crowded with technology nerds.&lt;/p&gt;
&lt;p&gt;We all decide the fate of the Internet.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ivan Ralchev</dc:creator><pubDate>Tue, 11 Aug 2020 23:20:00 +0300</pubDate><guid isPermaLink="false">tag:ralchev.info,2020-08-11:/posts/the-small-decentralised-web/</guid><category>posts</category></item><item><title>Building a simple Pomodoro app with Python and voice</title><link>https://ralchev.info/posts/pomodoro-python-voice-pymodoro/</link><description>&lt;p&gt;When I focus on a task at hand, I tend to lose track of time and can spend a few hours without leaving the desk. I know that taking short breaks, walking around and doing some physical exercises does wonders to one's thinking and work, but I often need an external trigger to get moving.&lt;/p&gt;
&lt;p&gt;During one of the breaks between tasks I decided to quickly build a &lt;a href="https://en.wikipedia.org/wiki/Pomodoro_Technique" target="_blank" rel="noopener" title="Pomodoro Technique on Wikipedia"&gt;Pomodoro&lt;/a&gt; app in Python and let it talk to me — merely to announce the end of a work interval and then remind me to get back to work after five minutes away from the computer.&lt;/p&gt;
&lt;p&gt;I used &lt;a href="https://pypi.org/project/pyttsx3/" target="_blank" rel="noopener" title="Pyttsx3 - a text-to-speech convenversion library in Python"&gt;Pyttsx3&lt;/a&gt; — a text-to-speech library in Python. It works like a charm on macOS with support for different voices and languages (US, UK, male, female for example). My Pymodoro app stores records about work activity (task, period and time of start of the work interval) in an SQLite3 database.&lt;/p&gt;
&lt;p&gt;A few days later I added a reporting feature to summarise the work day and a simple menu with all functions.&lt;/p&gt;
&lt;p&gt;The code is available &lt;a href="https://github.com/ralchev/pymodoro" target="blank" rel="noopener" title="Pymodoro on Github"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Pymodoro app in action" src="https://ralchev.info/images/pomodoro-python-voice-pymodoro.png"&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ivan Ralchev</dc:creator><pubDate>Thu, 09 Apr 2020 09:20:00 +0300</pubDate><guid isPermaLink="false">tag:ralchev.info,2020-04-09:/posts/pomodoro-python-voice-pymodoro/</guid><category>posts</category></item><item><title>Cybersecurity books, blogs and podcasts to start with</title><link>https://ralchev.info/posts/cybersecurity-book-blogs-and-podcasts-to-start-with/</link><description>&lt;p&gt;Cybersecurity is a complex and boundless domain and as I joined AMATAS, I had to quickly get to the speed of my colleagues. But apart from a shallow understanding of security in the digital world, I lacked the general perspective — the concepts, the nature of the problems and challenges people and organisations face, the incentives that push them in a particular direction. I needed something to step on. Here is the list of what I have found useful.&lt;/p&gt;
&lt;h3&gt;&lt;a href="https://www.bookdepository.com/Click-Here-Kill-Everybody-Bruce-Schneier/9780393608885" target="_blank" rel="noopener"&gt;Click here to kill everybody by Bruce Schneier&lt;/a&gt; (book)&lt;/h3&gt;
&lt;p&gt;Bruce is a renowned security technologist. His latest book, "Click here to kill everybody", is an entertaining and worthwhile read. For someone like me, looking for the broader picture, the book provides the general understanding of risks and security implications of all Internet-connected things.
It is easy to read, with examples from our daily life used to support his arguments.
&lt;a href="https://www.schneier.com/books/data_and_goliath/" target="_blank" rel="noopener"&gt;Data and Goliath&lt;/a&gt; will most likely be the next book I will read.&lt;/p&gt;
&lt;h3&gt;&lt;a href="https://www.bookdepository.com/Social-Engineering-Christopher-Hadnagy/9781119433385" target="_blank" rel="noopener"&gt;Social engineering — the science of human hacking by Christopher Hadnagy&lt;/a&gt; (book)&lt;/h3&gt;
&lt;p&gt;As I immersed myself in cybersecurity, social engineering was the topic that was closest to me. People are usually the weakest security element, with flaws that can easily be exploted by bad actors. In this book, Christopher talks about social engineering techniques and methods, and supports them with stories from his personal experience as a social engineer. The book is fun to read, eventhough it could have been more concise.&lt;/p&gt;
&lt;h3&gt;&lt;a href="https://schneier.com" target="_blank" rel="noopener"&gt;Schneier on Security&lt;/a&gt; (blog)&lt;/h3&gt;
&lt;p&gt;In his blog, Bruce Schneier often shares his take on recent news and developments in the security domain — &lt;a href="https://www.schneier.com/blog/archives/2019/06/risks_of_passwo.html" target="_blank" rel="noopener"&gt;the risks of password managers&lt;/a&gt; and &lt;a href="https://www.schneier.com/blog/archives/2019/06/how_apples_find.html" target="_blank" rel="noopener"&gt;the way Apple's new "Find My" feature works in the context of privacy and security&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There are as well many of &lt;a href="https://www.schneier.com/essays/" target="_blank" rel="noopener"&gt;his essays&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a href="https://danielmiessler.com/" target="_blank" rel="noopener"&gt;Daniel Miessler&lt;/a&gt; (blog)&lt;/h3&gt;
&lt;p&gt;Daniel's website helped me better understand the cybersecurity terms and the idea behind them — &lt;a href="https://danielmiessler.com/study/red-blue-purple-teams/" target="_blank" rel="noopener"&gt;red, blue and purple teams&lt;/a&gt;; &lt;a href="https://danielmiessler.com/study/event-alert-incident/" target="_blank" rel="noopener"&gt;events, alerts, incidents&lt;/a&gt;; &lt;a href="https://danielmiessler.com/study/vulnerability-assessment-penetration-test/" target="_blank" rel="noopener"&gt;vulnerability assessment and penetration testing&lt;/a&gt;.
His &lt;a href="https://danielmiessler.com/blog/" target="_blank" rel="noopener"&gt;blog posts&lt;/a&gt; focus on some of the most intriguing aspects of cybersecurity, the web in general, and other matters beyond that.&lt;/p&gt;
&lt;h3&gt;&lt;a href="https://www.darkreading.com/" target="_blank" rel="noopener"&gt;Dark Reading&lt;/a&gt; (news website and online community)&lt;/h3&gt;
&lt;p&gt;Dark Reading is a good source of news from the industry — recent developments, breaches, know-how shared by providers of cybersecurity solutions and other experts in the field.&lt;/p&gt;
&lt;h3&gt;&lt;a href="https://podcasts.apple.com/us/podcast/cyber/id1441708044?mt=2" target="_blank" rel="noopener"&gt;Cyber by Motherboard&lt;/a&gt; (podcast)&lt;/h3&gt;
&lt;p&gt;Every episode of Motherboard's Cyber podcast takes on a story — the ASUS supply chain attack, the memories of a penetration tester, and more — and gives colour and substance to it. It is really enjoyable start of the day, on the way to work.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ivan Ralchev</dc:creator><pubDate>Thu, 04 Jul 2019 04:20:00 +0300</pubDate><guid isPermaLink="false">tag:ralchev.info,2019-07-04:/posts/cybersecurity-book-blogs-and-podcasts-to-start-with/</guid><category>cybersecurity</category></item><item><title>An even smarter RPi thermometer with Python</title><link>https://ralchev.info/posts/learning-python-api/</link><description>&lt;p class="with-list"&gt;With the second version of &lt;a href="/posts/learning-python" title="Learning Python with a home challenge"&gt;my RPi thermometer&lt;/a&gt; built with Raspberry Pi I wanted to:

&lt;ul class="with-paragraph"&gt;
    &lt;li&gt;learn more about API requests and pull data from an external service;&lt;/li&gt;
    &lt;li&gt;get familiar with the principles of modular programming.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the first, I decided to go with the OpenWeatherMap API and &lt;a href="https://openweathermap.org/current" target="_blank"&gt;the free tier for Current weather data&lt;/a&gt; (up to 60 calls per minute). From all the data provided by the service, I was going to need only the current temperature for Sofia, Bulgaria.&lt;/p&gt;

&lt;p class="with-list"&gt;As my program got more complex, I split the code in modules — one for each function of the program:&lt;/p&gt;

&lt;ul class="with-paragraph"&gt;
    &lt;li&gt;one to read the data from the RPi sensor;&lt;/li&gt;
    &lt;li&gt;one for the OpenWeatherMap data;&lt;/li&gt;
    &lt;li&gt;one for the database management;&lt;/li&gt;
    &lt;li&gt;one to bundle them together.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class="with-list"&gt;The next version of the TemPY program will focus on:&lt;/p&gt;

&lt;ul class="with-paragraph"&gt;
    &lt;li&gt;analysis of the correlation between internal, external temperature and gas consumption, possibly allowing me to improve energy efficiency;&lt;/li&gt;
    &lt;li&gt;turning the program into a package.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The second version of TemPY is in its &lt;a href="https://github.com/ralchev/tempy" target="_blank"&gt;own Git repository&lt;/a&gt;.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ivan Ralchev</dc:creator><pubDate>Tue, 20 Feb 2018 23:20:00 +0200</pubDate><guid isPermaLink="false">tag:ralchev.info,2018-02-20:/posts/learning-python-api/</guid><category>programming</category></item><item><title>Learning Python with a home challenge</title><link>https://ralchev.info/posts/learning-python/</link><description>&lt;p&gt;A few weeks ago I started &lt;a href="https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/" target="_blank"&gt;learning Python&lt;/a&gt;.
The first steps with it are so easy and inspiring that I quickly decided to try and build something. I had a challenge at hand — to measure and keep track of the temperature at home and later play with the data (as I progress with Python).&lt;/p&gt;
&lt;p&gt;I got all the hardware parts needed — a Raspberry Pi 2, a breadboard, jumpers, a temperature sensor (DS18B20) and a 4.7k resistor — and assembled it.
A few commands later I saw the first signs of success in Terminal — a number with five digits, the temperature in Celsius.&lt;/p&gt;
&lt;p&gt;&lt;img alt="The working digital thermometer" src="https://ralchev.info/images/learning-python-with-a-home-challenge.jpg"&gt;&lt;/p&gt;
&lt;p&gt;The next step was to write the Python script that would read the data from the sensor.
Once that was ready, I decided to include a timer, so that temperature was measured periodically.
The last stage was to write the data (temp and time (Unix Time Stamp)) to a database (SQLite for starters).
And my Python script was ready.&lt;/p&gt;
&lt;p&gt;But then, to keep it running, I had to keep an SSH connection to the Raspberry Pi.
I started looking for a way to run my Python script as a system service. &lt;a href="https://serverfault.com/questions/821575/systemd-run-a-python-script-at-startup-virtualenv" target="_blank"&gt;This tutorial on Stack Overflow&lt;/a&gt; offered an easy solution.&lt;/p&gt;
&lt;p&gt;I have been recording the temperature at home every 15 minutes since then. In a few days I will add external temperature and gas consumption (on daily basis) and play with all that.
My solution to the task is &lt;a href="https://github.com/ralchev/python-projects/blob/master/tempy.py" target="_blank"&gt;available on Github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Retrieving the home temperature data" src="https://ralchev.info/images/learning-python-data.jpg"&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ivan Ralchev</dc:creator><pubDate>Sat, 13 Jan 2018 10:20:00 +0200</pubDate><guid isPermaLink="false">tag:ralchev.info,2018-01-13:/posts/learning-python/</guid><category>posts</category></item><item><title>On building things</title><link>https://ralchev.info/posts/on-building-things/</link><description>&lt;p&gt;My grandfather keeps telling this story. When my father was a teenager, he found the family car, a Moskvitch 412, quite boring. This and his desire to build and experiment made him install small electric bulbs in places where he thought they were needed — the ashtrays, the dashboard, the doors. At some point he had to rethink his design — higher energy consumption would quite often drain the car’s battery.&lt;/p&gt;
&lt;p&gt;Later on my father let me feel the joy of creating and fixing things on my own. Together we used to modify and improve our first family car — a Skoda 120L. I helped him renovate the attic and turn it into a medical practice. He managed to instil this desire to build and see things work into me.&lt;/p&gt;
&lt;p&gt;Together with my mother, the doctors they are, they made me believe that one is capable of doing things one has never been taught to, one just needs to stay curious and keep learning (my father is a medical doctor; not an electrician). Further, one has to never settle for anything, as everything could be done better and deliver higher value to people (oneself included). They taught me that everything I do should do good to people and me.&lt;/p&gt;
&lt;p&gt;I am really grateful to live in our time. Today we can build things of great value and quality that can make people’s lives better on a previously unthought-of scale. Computing power, curiosity and the abundance of information have already opened a world of possibilities for us.&lt;/p&gt;
&lt;p&gt;&lt;img alt="With the first bicycle frame by 1bike" src="https://ralchev.info/images/1bike-first-frame.jpg"&gt;&lt;/p&gt;
&lt;p&gt;And if you have any doubt about it, just look at the smile on my face (that of an economist with a modest technical experience) while riding the first bicycle frame I have designed myself for &lt;a href="https://1bike.bg"&gt;1bike&lt;/a&gt; and built with the help of a dear friend.&lt;/p&gt;
&lt;p&gt;More on that — later.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Ivan Ralchev</dc:creator><pubDate>Sat, 27 May 2017 10:20:00 +0300</pubDate><guid isPermaLink="false">tag:ralchev.info,2017-05-27:/posts/on-building-things/</guid><category>posts</category></item></channel></rss>