The story We left Temenos and headed towards the border. Anastasis brother, who also hosted us for the night, told us there is a road that goes to Bulgaria from Dipotama . Not commonly used and mostly known by locals, we were advised it will rough, and it would be best to cross the border further down from the paved road. “Crossing the border like a roadie does not sound too bad”, I…
All photos are shot on an Olympus Trip MD3, loaded with an Ilfords HP5 Plus, at Goulinas . The world of software engineering is shifting really fast. The stochastic parrot that was good for sloppy snippets is now smarter and can code really well. Not smarter in the sense of a human. Smarter in the sense of “this multi-dimension vector really knows what comes next”. It has been called…
You know what they say; if you can’t beat them, join them. By the time you are reading this, the repository structure might have changed a bit. You will find the repository link at the very end of this post. What is described here still applies. The set up I have set up a repository with five distinct directories. . ├── data-structures ├── leetcode ├── problem-solving-patterns ├──…
I got the Fuji that our friend George lent us at our last trip . All photos are from the Fuji X-S10 with a Fujinon XF 16-80 F4. I deliberately did not include photos from our mobiles or other cameras. All photos are SOOC. Expect badly framed, blurry, wrongly exposed, glorious images. Don’t Panic Athens ⇒ Igoumenitsa “The ship is running late and will arrive at 0200* sir.”, said…
How it all started I used to run PopOs and their modified gnome environment that had some nice i3wm features. I liked it a lot - the flatpaks, the hybrid tilling experience with gnome, some extra creature comforts - but eventually moved back to Ubuntu after they stopped keeping up with Ubuntu releases. I carried over some shortcuts and extended Gnome with a tilling extension. Not exactly the same…
Standards are good The most popular way to incorporate a frontend framework to a Liferay application was to create a Liferay widget. That widget would be a module that had it’s own Liferay specific bundler with some idiomatic code that produced an OSGi jar, ready to be deployed to the Portal. That bundler was liferay-npm-bundler and it was the stuff of nightmares for me. Fast forward a…
The who, what, where, when, and why. A year went by since our last long-distance enduro trip, and we were again on our bikes, heading to our new adventure. Christos and I would be joined by our friend George on his out-of-the-box Aprillia Tuareg Rally. We all had about 10 days free at the start of June. Our route this year would be the left half of the Bulgarian TET and the bottom half of the…
The bug report A while back, a weird bug report popped on my work’s ticketing platform. It was something along the lines of: The user navigates to any page of the website on a Chromium-based browser. They open the developer tools and select the Application tab. The browser freezes and crashes. The initial investigation and the crash report led us to the icons in the manifest file . After…
Why should you cleanse your git repos? Repositories can get bloated overtime. You end up carrying commits and history that you may no longer need. Or even worse, you may have commits that contain confidential data like secret keys. Personally, I found that many of my repos were extremely large. For example, this blog was 391 MiB . That is an absurd size for a blog like this one, with simple…
Here we go again About half a year ago I migrated my server . The tech stack was largely unchanged, but it was a tedious process to bring everything over. For a while I was happy. For a very little while. Plesk is a reminiscence of the past Plesk was good enough, with a nice feature set ootb, good extensibility with addons, beginner-friendly, and a low price. You would even get it for free when…
Introduction We had been daydreaming a trip to Cappadocia for months, Giannoula and I started drafting a route from early 2024. When Christos and I were doing part of the Balkan TET , we would spend our evenings planning Cappadocia. Funny to say the least. We didn’t know where we would spend the night, but apparently, we were concerned about how many luggage liters would be suitable for two…
Introduction I have been maintaining a managed Plesk server on a Greek hosting provider for the past few years. It contains a handful of production websites and their respective mail servers. While it was okayish for basic hosting needs, the demands quickly outgrew it with limitations starting to appear on the infrastructure, supported technologies, and services. After a little market research, I…
Introduction The Trans Euro Trail (TET) is a scenic GPX route that spans the entire European continent. As of now, its length is approximately 100 thousand kilometers and continues to grow. Each country has its own linesman to curate the GPX, but the community behind it is much larger than just one person! I’ve known Christos for the better part of my adult life. We met at a bicycle group ride I…
Introduction The Canvas API is used to draw graphics with Javascript. It can be utilized to make browser games, animations, visualize data, and much more. We will create a really basic Canvas library that receives input from a configuration file and draws the falling items animation. Particle Class The Particle class represents a single falling object. It is initialized with the same config object…
Introduction Dotfiles are user-specific application configuration files that your filesystem does not display by default, and they start with a dot (ie ~/.gitconfig ). It is common to host them in a git repository in order to keep a consistent environment across machines. We are going to automate some of our application installs and symlink our system dotfiles to a git repository. Repository…
Introduction At my day job we decided to rewrite a Liferay portlet to React, it displays draws and results data from different numeric games (the client is a betting company slowly porting many of their games online). This particular portlet has been a pain in the ass to maintain, port new CRs, and was horrible performance wise, and that is because: The code was inherited from another company and…
Introduction Statically generated sites are fast and flexible but don’t have the ability to send contact us emails due to the lack of a backend. A simple solution would be using a service like Airform, Mailgun, or Formspree, but where’s the fun in that? Instead, we can build a simple Express.js API that will handle POST requests from a form and will in turn forward that email to a…
Introduction Having SSH access to the server you are battling with is an invaluable tool - no matter how feature-rich the console may be. In the few past days, we (my father and I) faced connectivity issues on a corporate network where a specific client (a POS device) would not stay attached to the nearest access point but instead hop to an AP further away. That caused connectivity problems with…
Introduction I encountered a weird issue the other day at work where I could not resolve a specific dev server on my laptop. Despite being logged to the company’s VPN and being able to resolve all the other servers, this specific one stubbornly refused. Going through the debugging process of a complex network was not an option, so resolved.conf came to the rescue. Network Name Resolution…
Introduction Building a blog from the ground up can be quite interesting. It won’t and can’t be a match to a feature-rich blogging engine, without any substantial effort at least, but it will help you understand topics like REST, CRUD, and many more. A while ago I created alfacycling.com , a primitive blog to get my hands dirty with new technologies. Architecture The idea behind this project was…
Introduction A while ago I submitted my thesis with its subject being the study of the architecture of BAN and PAN, and their applications, with the aim of optimizing athletes performance, by enhancing personalized training practices. I was also tasked with creating an e-sport application that would collect and analyze data on the athlete’s body position in real-time. I named the e-sport…
This is actually me. Having a personal website is pretty cool. It’s like the old days—an internet full of weird and interesting blogs—where you owned your identity and content. This corner of the web is mine. Contact You can contact me on: Signal Email My blog feed: RSS For work-related stuff see my: Resume My links to the rest of the web: Mastodon Forgejo Codeberg GitHub Blogroll Here are…
Download my resume as a PDF. Please contact me at haris@razis.com . Work Experience Frontend Engineer Technopolis S.A. — Mar 2021-Present Developed frontends using multiple technologies including vanilla JS, Typescript, and React. Played a key role in designing and implementing the application’s frontend architecture, while leading the development team. Created a Docker-based local…