Categories
Uncategorized

Using Rasberry Pi 400 for web development – part 1

My Raspberry Pi 400 set up

Yeah, I know, I’m rambling a bit here. Remember, I’m not an expert at web development, using the Raspberry Pi, nor its software tools. I’m a Noob, and don’t feel qualified to offer guidance to other Noobs. There’s no how-tos, tutorials, not even wise words to share, just my experience as an absolute beginner. So I suggest you adjust your expectations before reading the Wall Of Text below.

(Estimated reading time: 14 minutes.)

Table of contents

Introduction

When I started to use micro∙blog for real, with a domain name for a Dutch running diary blog, called Loopgenot, I discovered that my hosting provider of choice, micro∙blog, only lets you change so much of your site’s appearance and functionality through settings. Since it’s based on the templating language Hugo, most is done through templates, CSS, JavaScript and plug-ins. While you can modify existing templates, knowing how to required knowledge I didn’t possess. So I really needed to teach myself templating language, specifically Hugo. Micro∙blog isn’t 100% compatible with Hugo, but it’s close enough, so I’m told. After that I might dive into CSS, JavaScript and plug-ins, maybe.

So there’s my next (big, yet narrowly focussed) self-challenge: learn enough about Hugo to be able to modify a micro∙blog theme to my needs and taste.

🗂 back ToC

How does one become a web developer?

Quick answer, by doing.

Slightly longer answer, by using a computer with a suitable OS, like Windows, MacOS or Linux, and installing the appropriate software, go through the tutorials, read the manuals, and try stuff.

🗂 back ToC

Step one, get a computer, and skip sleep

Only thing was, I didn’t have a working computer with such a system. I had a working iPad and iPhone, but those don’t qualify.

Some Dutch libraries offer a subscription for a few tens of euros a year for unlimited use of the library’s computers. However, my particular local library sucks, because of budget cuts caused by local government, in which overzealous politicians seemed more concerned about climbing the political ladder toward the big city or national parliament, perhaps even national government (and beyond), rather than serving their citizens. So the library was a no-go.

Windows just scares me, with all its security and privacy problems, together with a lackadaisical attitude by Microsoft (Windows 11 is unsafe by design). It seems to require a security expert IT manager, and a corporation to finance. MacOS requires a Mac, which I can’t afford, frankly. I tried in the past, and every time I went bankrupt, especially when one still had to pay for yearly upgrades. I have an old iMac from 2009, unsupported, hence unsafe on the Internet. What was left available to me was Linux Desktop.

Someone on micro∙blog suggested to use a Raspberry Pi 400 instead. They are very affordable and come with everything I need, except a screen. Any somewhat modern TV or computer monitor will do, as long as it supports HDMI (and even that isn’t strictly necessary). Another snag; I don’t own a television set, nor a separate computer monitor. How could I possibly afford this?

Well, enter my marathon ambition (November 28, 2021). In order to loose weight I had to put myself on a strict calorie-deficient diet, because I was 16 kg (35 lbs) overweight on August 1. This meant buying significantly less groceries, like 130 euros less in August, compared to July. I already was living quite frugally, with a tiny monthly budget to spend on things like new clothes (which I can buy only once in a while, budget allowing), storage space (closets instead of cardboard boxes) for my rather austere (read: empty) house interior, and in general, for home improvement.

I had a budget!

I could buy the computer monitor from my monthly budget and the Raspberry Pi 400 from the money I saved by eating less (though healthier, with lots of veggies). So I bought both at the same day. It may sound weird to “starve” for a computer, but, hey, it worked. Also, Raspberry Pi (aka RPi) sounds like fooood 🥧 The monitor I got on Wednesday (when I decided I had a budget) from a local computer shop, and the Pi from a Dutch online retailer arrived a day later.

The next day I got up before 5 in the morning, to be able to do my marathon training session early in the morning on Thursday before the mail delivery might arrive at my door with my Raspberry Pi 400. After it arrived in the afternoon, it was past midnight before I went to bed, after a very long day. I didn’t have much sleep that night either, too excited about my purchases and what’s ahead of me, much like a kid excited about unwrapping present come Christmas Morning 😆 I’m 61 years of age, but apparently, the youthful excitement is still there.

That afternoon, I had already ordered a bigger (128 MB) micro-SD card than the stock 16 MB, and a card reader. Both would arrive by mail a day later (it was small enough that both packages fitted through the mail slot).

After receiving both items the next day (again, in the afternoon), I had to reinstall my software all over. That went faster than the first time, because I knew what to do. In time I’ll need a 3-2-1 backup solution, though, to secure my data as an individual (corporations need even more, with the threat of mal- and ransomware). My bed time was Saturday morning after 3 AM 🥱

Because I had a rough few days, with little sleep, I decided for my marathon training to make Friday and Saturday recovery days, without running sessions. Not that I had much reason to do any running; the running statistics site Runalyze already had me in the red because of too much training that week. So, a word to the wise—recovery is key for sustainability in long-distance and marathon training.

🗂 back ToC

Step one-and-a-half, setting up the computer in a roundabout way

After buying the computer, I needed to get comfortable with it. It has been a long time since I used Linux desktop (Ubuntu and Xubuntu). Back then it was out of curiosity. What I distinctly remembered is that, if you’re not careful, you can spend a lot of time fidgeting with the OS, without any real productivity. Because one can, it doesn’t mean I should. Remember why I bought this device? Right!

😂 Famous last words…

Though I should’ve known better, my feeling was one of disappointment when I couldn’t get any sound out of the computer through the monitor. Turned out the monitor had HDMI sound… output, via a 3.5 mm jack. The computer had Bluetooth sound, so I dug up an old BT speaker, with a battery that no longer could hold a charge, was annoying to use, and made me wonder why I didn’t dispose of it before my previous move in October/November 2019. I guess sentiment? Anyway, sound worked. Not that I will need it, because I have the iPad to watch YouTube instructional videos. Even so, on Saturday afternoon I bought a cheap over-the-ears headset, just to have a makeshift audio solution, before eventually buying something recommended by Marco.org.

That was a bit of waste of time, wasn’t it? 🤷‍♂️

Then there was the frivolous time-waster of trying to implement emoji fonts and an emoji picker. The latter I didn’t get working, after many hours of fruitless effort, the former I did, after manually grabbing the raw image of a Google font called NotoColorEmoji.ttf from GitHub. It had been moved since the article was written, and I got as a tip on micro∙blog. Now all I (still) need to write is a cheat sheet with Ctrl+Shift+U hex codes. It’s one of the many chores still ahead of me, buying a cheap computer, expecting the functionality of an expensive one. Ah well, one learns from experience.

And, BTW, this certainly feels like I remember using Linux 😉 in the oughts. It’s patchwork and more patchwork, tinkering heaven 🔧😇

Another snag on Friday was finding out how to best transfer files between my iPhone or iPad to my Raspberry Pi. I tried SMB (aka Samba), and it worked after installing the necessary apps on the Pi. Then, the next day (Saturday), someone from the micro∙blog community suggested using Secure ShellFish, an SSH enabler for the Apple Files app. It worked flawlessly. Of course, I already had my password on the Raspberry Pi set to very secure and hard to guess (thanks 1Password!). I suppose once I’ve paid for Secure ShellFish, I’ll remove the SMB server and its software via an sudo apt purge [name] command—where [name] is the name of the installed Linux software, according to the full Raspberry Pi OS documentation.

The next tiny piece of rough-edginess left on Saturday morning was that the Pi doesn’t seem to have Display Power Management Signaling (DPMS) out of the box. Instead of the (possible) headache of installing it myself, I opted for XScreenSaver to keep my screen alive, so I could SSH into my Pi while away from the keyboard, also preventing possible burn-in my monitor complains about while booting (any way to turn that off?).

So it seemed my problems were solved! Well, the ones I encountered in the first days, anyway. There’ll be many more to come in the weeks ahead, I’m sure. Until then, I’m a happy camper with a budget development system of a few hundred euros.

Raspberry Pi running Raspberry Pi OS

🗂 back ToC

Step two, install the software

Installing software on Linux is somewhat odd, coming from MacOS. It’s mostly done through the command line, with the apt install command. I read Snap was quite universal across different flavors of Linux, so I tried that first. However, I got all kinds of strange error messages and unexpected results, so I uninstalled the Snap version, and next reinstalled the Hugo app via the built-in apt instead, which worked fine.

Raspberry Pi OS (renamed from Raspbian) is based on Debian, a solid version of Linux, and runs on a 64-bit Arm processor. It makes sense that a more dedicated version for Debian works better than a more generic cross-platform Snap Store version. Still, I’ll keep Snap installed, since I might need it again, some day.

The funny thing about installing on Linux is that it can take a really long time, because of all the dependencies, libraries upon libraries, from all over the Internet. Some connections are fast, others not so much. My basic connection through crappy ISP WiFi could easily keep up. There’s waiting, though. Patience is a virtue.

Next, I installed Firefox ESR, because the built-in webbrowser, based on Chromium confused me too much. Cookies and passwords weren’t saved for some reason with Chromium, so I had to log in with every new session. I’m sure I could’ve figured it out, but I think I shouldn’t; a webbrowser should “just work.” So, Firefox it was.

For repositories on GitHub, I installed a Desktop client called Git-Cola. This came in handy when following the excellent Giraffe Academy YouTube Hugo course by Mike Dane. He had me install a custom theme from GitHub, and I didn’t know how. A quick web search gave me Git-Cola, and it worked as expected (to clone a project, enter an URL, point to the local folder, and let it do its thing). No futzing with incomprehensible git commands on the command line. Just remember to replace in the url the leading https:// by a git://

For more serious development, I also downloaded Visual Studio Code, by Microsoft. This is a more refined piece of software, which I assumed has a learning curve. So I guessed it more like a back-burner thing, while I learn Hugo using a text editor, the command line, a web browser, and the already mentioned YouTube tutorial (using VS code as an IDE on MacOS). However, I was wrong, again, in my assumption. VS Code is quite intuitive and easy to use. The development team did a great job hiding complexity 👏 Which complexity is certainly present, judging from the one tutorial I did, clearly written for experienced coders instead of a newbie like myself.

BTW I also installed the Hugo extension from the VS Code Marketplace. I can also imagine needing Javascript and CSS, since those are also part of web development. However, this would require more time and study. The focus now should be on Hugo and templates.

Because I couldn’t help myself, I also installed Go and the VS Code extension for Go. I probably won’t need it anytime soon, but, hey, it’s free.

Visual Studio Code on Raspberry Pi OS

🗂 back ToC

Step three, education, finally!

After four days of—sometimes a bit obsessively—gathering and setting up equipment and software (and a little break to recover), come Sunday I will be able to start studying in earnest, IOW, learning how to use Hugo, and in order for me to apply all the gained knowledge and skills on modifying themes on micro∙blog. Remember that was actually my goal?

Rereading the previous paragraph, I realize that me, getting to this point, did quite well. It was pretty quick too, because I worked late hours and long days, slept short nights. If I had done it on “normal hours”, it would’ve taken much longer, possible frustrating me to the point I’d quit the whole project/self-challenge. Four days is not bad, I’d say when asked (and self-talk when not).

To celebrate, I decided to publish part 1 before starting with step 3. I needed a rest, to recover from the lack of sleep and trying to learn new things. A well-rested brain learns faster and better 💤

I already went through some of the Giraffe Academy YouTube tutorial, mentioned above, not just by listening, but by actually doing while listening, which often meant re-listening several times, especially if I was confused about what was exactly meant or what to type as commands, or what to change in settings files to make things work. Doing it in Visual Studio Code, instead of separate applications sped things up, kept it manageable for me. The less friction, the better, I suppose.

So far, I got the impression that by doing the tutorial, I gradually got more comfortable with using the Hugo commands. It turned out that, instead of creating the files yourself from scratch, you let Hugo create them for you, and then modify those files afterwards. It’s a somewhat different workflow from regular programming, that usually starts with writing code in a file, and feeding it to an interpreter or compiler, which spits out runnable code, or runs the code (in the case of an interpretative language). So not only is Hugo a templating language, writing in Hugo is templating as well. Hugo creates the core file, which the programmer modifies to specifications.

One of the skills I’ll need to run Hugo is using the command line 🙄

Luckily, there’s the online Raspberry Pi OS documentation I mentioned before, which will be invaluable. However, I will be going through it only when I need to, to solve a problem.

In the beginners’ guidebook that comes with the hardware (there’s also a free PDF that can be downloaded, together with other titles), there’s already enough about the CLI to get started, and the rest, I’ll learn piecemeal.

As an example of the latter, I already made the SSH sessions require a password. I stopped there, because creating the next layer in security (SSH private/public key pair instead of user name and password) was still a bit too much for me, and, frankly not yet necessary for the sole user of a home network—that would be me 🙋‍♂️

However, since I visit websites, running a password-less SSH server is asking for being taken over by an evil script. So I guess, that’ll keep the script kiddies out the door.

Next up is actually doing the entire tutorial, and hoping I will learn enough to start reading the documentation on Hugo, without it looking like Greek (actually, I can read Greek characters, studied classic languages in high school).
So, step 3, now for realz.

🗂 back ToC

To be continued in part 2…

Categories
Uncategorized

Training to train? Oh no, not that!

Now I’m about to be fully vaccinated against COVID-19, I can start thinking about joining my running group for marathon training. However, right now I feel unfit to join. Their training schedule is pretty hard, which is logical, considering what the goal is. I’ve let myself slip into an unfit state, overweight and lacking endurance. The endurance part I can tackle through training, the overweight part has to be dealt with through time and discipline; it will take years, rather than months.


Running again

Considering I’ve aged since my previous marathon in 2016, I suppose I have to lower my goals, which were pretty high back then. Since my first marathon I aimed too high, since it’s such an expensive and intense event. The result of preparation for and actually running the marathon has been a breakdown afterwards or during the marathon (cramps). In short, I ran my marathon like any road race, which obviously is not how one should run a marathon. Call me stubborn, and I won’t object to your assessment.

This approach and attitude was clearly unproductive. It’s best to aim low, reach that goal, and aim higher next time. While others did just that, they progressed over the years to their actual goal. Taking a shortcut, as I did, did not work.

My first goal should be: being able to join the training sessions of my running group at the lowest level, 10 km in 50 minutes. There are runners for whom even that’s too ambitious, and I can join them temporarily to get to that base level. Based on past experiences, this might take as long as 3 months (or more now I’m older), provided I don’t get injured, so around the end of 2021.

Here’s my plan. I’ll temporarily join another running group, meant for runners who need more than an hour to run a 10 km race. My reason for joining is to get back into a habit of running with a group every week. Luckily, this group is being described on my track and field club’s website as a means for injured runners to get back into shape. So, knowing that, it shouldn’t be much of a problem to join the group, once a week.

In the meanwhile I’ll be working on my endurance and speed separately, and hopefully will be able to join the training sessions of my marathon group mid September this year. My main training goals for the moment are 60 km per week, and a single long run of 30 to 50 percent of that weekly distance (18 – 30 km), slowly increasing the long run by 2 km per week. A few walk breaks are allowed in long runs, since overall speed doesn’t really matter that much.

I don’t mind training hard, but I do mind not having a goal in mind. Training for training’s sake is not my cup of tea.

🏃

Categories
Uncategorized

Third week of house renovation

After a bad start on Monday (heavy rain, so no work on the roof), the workers did their best to put tiles on the roof, both in front and back. As expected, it looks very nice as seen from the street, not so nice from the backyard. In the meanwhile I did some work on the inside as well, mainly sanding and putting primer on doors.

Front of the roof

Back of the house

I want to note that after almost 2½ weeks the progress is a bit disappointing. If I had to guess, they’re at the half-way point, instead of finishing up in days, as was promised in advance. Where the cantilever window has to be installed the roof is covered with (dirty and old) roof tiles. I suppose those will be removed once the cantilever windows arrive from the supplier. My guess is that it will take longer to deliver them than initially planned. In houses in my neighborhood that were already done, they installed the cantilever windows before laying the roof tiles. Now it’s the other way around for some reason.

Hole in the ceiling

I’m dealing with some ugly holes in my ceilings, and making use of the opportunity to paint the slats that are normally covered by a fireproof plate. It will look nicer if I do it like that than when the celing plate is installed. I’m in no hurry, though, since they’ll be waiting until the scaffolding outside is removed, a couple of weeks from now.

Bathroom door

I have also smoothed, sanded and put primer (twice) on the doors and frames of my bathroom and kitchen. Those should be ready to be painted with a final coat of paint lacquer.

Kitchen door

The annoying thing is that while in the first week of, and in the week leading up to the renovation work, I got lots of explanation from the company overseeing the renovation. Now there are no more visits from a friendly employee, and work indoors happens at the drop of a hat, so to speak, without prior notification. I asked the overseer, but even he doesn’t know what is going to happen when. It seems rather uncoordinated. Things get done when they get done, and after everything’s done, any damage done will be repaired, work that was done shoddily will have to be redone.

Well, I guess I’ll manage somehow. My house will look so nice both on the inside and outside, and it will feel comfortable to live in. Until then I’ll have to put up with some discomfort.

🏠

Categories
Uncategorized

Finally, progress with the renovation!

This morning someone rang my doorbell while I was still in my pajamas. They needed access to my roof from the inside. I sent them away to dress myself and lock away my cats in my living room (one of them had fled upstairs). It was totally unexpected, because it was never announced. A time schedule was shared a few weeks ago, which I can safely ignore, because of all the delays going on.

Like the general says, the best plans die after the first shot in battle. Here those plans were likely meant to defuse the residents’ worries, so they’d sign an agreement for the renovation and all the trouble it would cause. Obviously, currently neighbors are not too happy about how things (too) slowly progress. I can only accept reality as-is, however uncomfortable it might be. Once they’ve finished renovation I can look forward to enjoying living in this neighborhood for years to come.

Hole in my ceiling!

Anyway, one person needed to go through the ceiling, and crawl in the tiny space underneath the wooden base of the roof. It was, judging from the swearing, very uncomfortable to work in. His co-worker was on the roof and together they replaced the ventilation shafts of my high-efficiency heating system, fueled by natural gas. Of course, they didn’t close the hole afterwards, because more work has to be done after the roof tiles have been installed. After that, the solar panels will be installed and connected to the electrical grid (and my energy meters), which will require renewed access to the crawl space. Closing it now would be a waste of time, labor and money. It still looks ugly, though.

So I will be living with this ugly hole for some weeks to come, as am I with another ugly hole where the mechanical aeration system for the downstairs will be replaced, but couldn’t because of the scaffolding for the roof workers. It all seems quite badly though through, and uncoordinated. Well, I suppose it’s either that, or demolition of the entire neighborhood, destroying an unique and coherent community of friendly neighbors, many of whom have lived here their whole lives and are invested in keeping it safe and livable.

Knowing that, I can live with any temporary discomfort and having strangers invade my privacy.

Safely tucked away

I noticed my lovely bengal cats being stressed out by all the work going on (also, an open front door). So to give them a feeling of safety, I locked them in their cage, covered by a fleece blanket. They calmed down, being used to the cage for three weeks now. They don’t like it, clearly, but now are accepting being confined in a tiny space for a little while (like a few hours).

Damage noted

My neighbor told me roof workers had cut into their dormer window on the front. Cleaning the area, I noticed the same had been done to mine as well. I reported the damage to the supervisor, and he told me that, after the roof work is finished, the gypsum board (acting as a “suitable insulation”, suitable in the 1990s that is, against the cold of winter) will be replaced and repainted, as will be any damage done during the renovation. The roof workers needed to cut away some slats, and put in proper insulation material before covering it up with a weatherproof board. Apparently, they just can’t always avoid cutting into the gypsum board with a hand tool on a roof. I suppose I couldn’t have, either. Having an understanding supervisor explain it to you makes the damage more acceptable. It’s a tiny cut, but it shouldn’t be there.

Roof still exposed

While summer rain has wet the roof last night, the tiles still aren’t installed, neither has the cantilever window been replaced. Since it’s Friday, I expect they’ll do it next week. Fingers crossed they will, because it feels like it takes forever!

New roof tiles

On the front of the roof new tiles have been placed to be installed next week. They look lovely. On the back, the old tiles will be reinstalled, after being “cleaned.” It sounds “eco-friendly”, but I think that’s just spin for saving costs. Those 50 year old tiles are full of cracks and will fill with moss in a few months, leading to clogged up downpipes very soon. It means cleaning the gutter more often than with new roof tiles. But then, cleaning the gutter at the back was apparently left to the person or family renting the house, because I heard from neighbors it has never been done in the last 25 years. Some even own a ladder to get access to the gutter to do the cleaning themselves, with all risks involved of falling down a ladder. I would never do that, and rather call the owner to have a professional do it for me. That’s what I’m paying rent for, anyway.

This concludes week two of the renovation of my house, as initiated by the owner, the non-profit housing corporation Stadlander. I haven’t done much on my own during this week, like filling holes and painting walls and doors, because of the heat. Since I’m my own boss, so to speak, I can do it whenever it suits me, that is, when it’s not so freaking hot.

🏠

Categories
Uncategorized

Second week of house renovation

Things are a bit chaotic at the moment. Luckily, it will be over in a week or two, maybe three. Plans seldom survive first contact in battle, or, in this case, realization by workers. Renovation is often underplanned and under budget, otherwise it wouldn’t get a “go ahead” by the house owner, who rather avoids spending money on old housing stock, rather spending it on new housing, much more profitable I assume.

Needs a final coating

Saturday I finished the upstairs by painting two doors that should’ve received their second coat of paint lacquer more than a year ago. I had put it off for too long. Now the upstairs is finally done!

Infrared panel

Monday morning, there was an unexpected ring on the door bell. It was a firm trying to install aeration for the downstairs part of the house, plus heating for the annex/outside bathroom (in winter, when it freezes, it got cold there, like 12℃ (-8℉), which was why I installed a small IR panel myself. Obviously, that is no longer needed, and I can repurpose it elsewhere in my house, using electricity from my—to be installed—solar panels.

Control panel of IR panel

It was a hassle, with an electrical short that had to be solved. It was, and I got a RF controlled panel to control my infrared panel in the winter. It will be so much more cosy, and no longer do I need to make excuses when visitors want to use the bathroom, that it’s so very cold in there.

Ceiling removed

Anyway, the ceiling will stay removed until the new aeration system is installed. Until then I will keep using the old one, very noisy and energy-inefficient. It would’ve been installed today, but it couldn’t; there’s scaffolding for the roof worker in the way. When that’s removed, the firm will return to finish the aeration system.

Control panel for mechanical aeration

Its control panel and CO2 sensor is already installed, communicating over indoor mains. The thing to communicate with has to wait a little longer.

Front roof

Back roof

The progress on the roof is slow, because eight houses are done all together with a single crew of roof worker (other crews are working on other blocks of houses). Still, judging from what I’ve seen already, I expect them to be finished by the end of next week, at the latest.

Then there’s the solar panels and mechanical aeration system to be installed, and the renovation is over. By that time I hope to be done with indoor home improvement as well.

🏠

Categories
Uncategorized

Day 4 of home improvement project

The day started with a costly visit to the home improvement store (by foot this time).

Home improvement store basket

As my chore for today, I put primer on both my kitchen and bathroom doors, plus the doorpost of the former. It’s a nasty smell, which tells me it was the “good stuff.” The bathroom door’s side planes were bare wood and need a second coat. The doorpost of the bathroom needs fixing, because it was not flat (holes in it). So there’s still a lot to do.

Tiny hallway in two views

In the meanwhile, roof workers had problems with my dormer window. As I write this, they already spent a few hours fixing it. I’m sure they’ll get it done.

Unexpected problems

🏠

Categories
Uncategorized

Day 3 of major and minor maintenance of my house

I decided to do some maintenance on the doors between my kitchen and my backroom (the latter being outside the body of my house, like an appendix).

Bathroom door

The bathroom doorpost needed the most attention, since it probably hasn’t been maintained by renters for years. I was hesitant to do anything about it, because it seemed so much work. However, the workers outside motivated me do it. Working on a roof is so much harder than doing light maintance inside, however taxing that is for a 60+ year old man, out of shape.

Neglected doorpost

Luckily, I had some materials from my earlier—unfinished—maintenance, one and a half years ago. I applied those, and will let it dry for at least 24 hours.

Maintenance

The work outside is slow, yet methodical, as it should be. I prefer my roof not to be leaking water after each torrentual rainfall, as happened to houses in my neighborhood that were done too hastily. Therefore, the pace has been slowed down, to allow for more precision and care of the workers, and the foreman keeps a closer eye on the work. The original plan has been modified accordingly. It will take longer to do the maintenance, but still within the periode agreed upon (three work weeks). There was already slack to allow for setbacks like this one.

Ongoing renovation

Tomorrow I’ll continue the maintenance of those inside doors. I hope to put primer on them, and on one of the doorposts. Sanding and—possibly—applying primer on the other doorpost will be done the day after tomorrow, so it’ll be fully dried.

🏠

Categories
Uncategorized

They’ve started renovation of my rental house’s roof. It’ll be insulated, new roof tiles will put on it in front, cleaned old roof tiles on the back roof. To generate electricity locally solar panels will be installed. It’ll take one or two weeks, depending on the weather. 🏠

New roof!

Categories
Uncategorized

Naked organist from Monty Python’s Flying Circusesesess as pixxxel arrrt-t-t 🎨

Today’s Pixel Dailies theme was organ, restriction: 48x48px max.

Yeah, I traced.

Categories
Uncategorized

Yesterday’s theme on Pixel Dailies was windmill. Pixel 🎨 64×64, 4 colors.