Blog
TermTalk. Talk to AI from Your Terminal.
Piotr
Nov 13, 2024
In a world where AI is accessible to more people than ever, many of us interact with GPT-4 through user-friendly web interfaces (like CharGPT). But what if you could bring that same powerful conversation engine directly to your terminal? Thatâs where TermTalk comes in, a new Linux-based tool thatâs redefining how developers, command-line enthusiasts, and productivity powerhouses connect with AI.
What is TermTalk?
TermTalk is an open-source, command-line tool built in Python that gives you the power of OpenAIâs GPT-4 models straight from the console. Imagine having the capabilities of ChatGPT right in your terminal â whether you're working in an interactive mode or simply seeking a quick answer, TermTalk is designed to deliver AI responses as efficiently as possible. Although initially configured for Linux, TermTalkâs Python-based design makes it highly adaptable for other operating systems.
Key Features
Interactive Mode TermTalkâs interactive mode is like having a ChatGPT-like chat window in your terminal. You can ask follow-up questions, explore complex topics, and maintain a fluid conversation with AI, all without leaving the console.
Question-Answer Mode For times when youâre looking for straightforward, one-off answers, TermTalkâs question-answer mode is perfect. Just type a question (also about the system files), get your response, and move on. Itâs quick, to the point, and ideal for developers who want answers without a lot of back-and-forth.
Local Conversation Storage TermTalk is also privacy-conscious, storing all your conversations in a local SQLite database. This means you have complete control over your data, with easy access to previous chats, making it simple to retrieve information when you need it.
Whatâs Next for TermTalk?
While TermTalk is already packed with features, this is just the beginning. Hereâs a glimpse of whatâs on the roadmap:
API Integration The upcoming TermTalk API will open the door for other applications to interact with TermTalk. This could pave the way for custom workflows, integration with development environments, and even mobile or desktop applications.
Web Client Imagine the ease of the ChatGPT-like website experience combined with the local storage and privacy of TermTalk. The future TermTalk web client will provide a more graphical, user-friendly interface, ideal for those who prefer a web-based interaction.
With TermTalk, youâre not just getting an AI-powered terminal tool; youâre stepping into a future where AI is embedded directly into your workflow, whether youâre scripting, troubleshooting, or simply brainstorming ideas.
âŹď¸ Download from GitHub: TermTalk 0.1-alpha (Release info)
đ Visit the main page for TermTalk: https://piotrkepka.com/termtalk.
đť The code is hosted on GitHub.
đ Documentation is available at https://termtalk.github.io.
đ Stay updated and connect with the TermTalk community on LinkedIn.
I Got My A1/A3 Drone Pilot License in 4 Hours! And You Should Too
Piotr
Nov 5, 2024
Yep, you read that right! I went from zero to certified in just a few hours, and if youâre into drones - or even just curious - getting your A1/A3 Drone Pilot License is way easier than it sounds. Hereâs how I did it and why itâs worth your time. đ
Why Get a Drone License? đ¤
Drones are popping up everywhere, from capturing stunning landscapes to inspecting rooftops or delivering packages. Even if you donât have a drone now, having a basic license is like having a driving license - future-proofing your life! The A1/A3 license isnât just about your manual flying skills; itâs also about understanding the safety rules, privacy considerations, and airspace regulations that keep our skies safe.
Besides, letâs be honest: calling yourself a âpilotâ (okay, a drone pilot, but still!) is a fun achievement and will make you think a bit differently about the skies above. đ¤ď¸
Who Oversees This? Meet EASA âď¸
All these rules and certifications fall under the European Union Aviation Safety Agency (EASA), which regulates drone operations across the EU to keep flying safe and consistent across all member states. The A1/A3 license is the most basic certification within the EUâs âOpen Categoryâ of drone operations, making it easy for beginners and hobbyists to get started. You can read more about EASA and drone licensing on their official website ⤴.
My 4-Hour Path to Certification đ
-
Registering as a Drone Operator: First, I registered as a drone operator online through my national aviation authority. This step is super easy and helps keep drone operations trackable and safe.
-
Taking the Online Course: The course, available online, covers all the basics like safe distances, airspace restrictions, and privacy considerations. Itâs a straightforward overview of what you need to know, broken down into bite-sized modules. đ
-
Passing the Test: The exam is a 40-question, single-choice test that you can take right after the course. Once you pass (and itâs not too hard if you study the material!), youâll get your certificate instantly! đ Youâll need a score of 75% to pass. But if it doesnât go well the first time, no worries - you can retake the test as many times as needed.
What the A1/A3 License Covers đŤ
Hereâs a quick look at what the A1/A3 license lets you do compared to other certifications:
License Type | Permitted Drone Classes | Flight Limitations | Ideal For |
---|---|---|---|
No License Required | Lightweight drones (<250g) without data collection (no camera, no sensors) | No proximity restrictions to people, but safe flying practices encouraged | Casual, toy-grade flyers |
A1/A3 | Light drones (<25kg) | Open spaces, safe distance from people đ¤ | Beginners, hobbyists |
A2 | Mid-weight drones (<2kg) | Closer to people (within limits) đ˘ | Urban areas, advanced users |
Specific | Larger/advanced drones | Special operations, high-risk zones | Professionals (e.g., filming, rescue) |
The A1/A3 license is perfect for anyone just getting started with drones. If youâre planning to fly closer to people or operate larger drones, you might eventually consider the A2 or Specific category licenses.
Where to Get Licensed in Your Country
Each EU country has its own aviation authority, where youâll register, take the course, and pass the test. Hereâs a list of some national aviation authority links to get you started:
Germany: Luftfahrt-Bundesamt (LBA) ⤴
France: Direction gĂŠnĂŠrale de lâaviation civile (DGAC) ⤴
Italy: Ente Nazionale per lâAviazione Civile (ENAC) ⤴
Spain: Agencia Estatal de Seguridad AÊrea (AESA) ⤴
Poland: UrzÄ
d Lotnictwa Cywilnego ⤴
Switzerland: Bundesamt fßr Zivilluftfahrt BAZL ⤴
For other EU countries, check the full list of national contacts on the EASA website ⤴.
Visitors to the EU
If youâre visiting Europe and want to fly a drone, youâll also need to follow these regulations. In many cases, you can register and take the A1/A3 test in the country where youâll be flying, or even register online with EASA-approved courses before arriving. Just remember to carry your certificate with you in case itâs requested by local authorities!
Do you have questions?
Check the official FAQ ⤴.
Final Thoughts
The A1/A3 license is a quick and easy way to understand the rules, fly safely, and enjoy the skies responsibly. Itâs a small achievement with big potential benefits, whether youâre flying for fun or exploring a new hobby. So if youâre on the fence, go for it - getting licensed is simpler than you think, and you might just love the view from above! đ
How a Ham Radio Conversation Really Sounds
Piotr
Oct 24, 2024
Ham radio operators use a unique set of codes and protocols to keep conversations short, clear, and efficient. In this post, weâll walk through a typical ham radio conversationâalso known as a QSOâfrom calling CQ to signing off with 73. You'll see how Q-codes and signal reports are used in a real-world exchange between two operators.
If youâre new to ham radio, you might have heard operators calling CQ or signing off with 73, but what does a typical conversation actually sound like? A ham radio exchange, or QSO, follows a simple structure, often including Q-codes, signal reports, and friendly chat about gear and location. Below, we break down a sample conversation to help you understand the flow, from the initial call to the final sign-off.
Letâs dive into what a QSO looks like between two stations, KE5ABC and N1ESC.
Station 1 (Operator A):
CQ CQ CQ, this is Kilo Echo 5 Alpha Bravo Charlie (KE5ABC), calling CQ and standing by.
(Operator A is calling for any station to respond, using "CQ" to indicate they're looking for contacts.)
Station 2 (Operator B):
KE5ABC, this is November 1 Echo Sierra Charlie (N1ESC), over.
(Operator B responds with their call sign.)
Station 1 (Operator A):
N1ESC, KE5ABC. Nice to hear you. Youâre 5 by 9 (59) here in Texas. Name is Mike, QTH is Houston. How copy? Over.
(Operator A gives a signal report of 59, meaning strong signal and clear readability, and shares his name and location (QTH).)
Station 2 (Operator B):
KE5ABC, N1ESC. Hi Mike, you're 5 by 7 (57) in Boston. Name here is Sarah, QTH is Boston, Massachusetts. Thanks for the QSO! Over.
(Operator B gives a signal report of 57, shares her name and location.)
Station 1 (Operator A):
N1ESC, KE5ABC. Great to meet you, Sarah. Are you QRV for a quick chat? Over.
(Operator A asks if Station B is ready to continue the conversation.)
Station 2 (Operator B):
KE5ABC, N1ESC. Sure, Iâm QRV. Just enjoying the good propagation today. Over.
(Operator B confirms they are ready to continue the conversation.)
Station 1 (Operator A):
N1ESC, KE5ABC. I agree, conditions are great today. Whatâs your rig? Iâm running a Yaesu FT-891 at 100 watts, over.
(Operator A asks about Station B's radio setup and shares their own equipment.)
Station 2 (Operator B):
KE5ABC, N1ESC. Iâm using an Icom IC-7300, about 50 watts into a dipole antenna. QSL?
(Operator B responds with their radio and asks for confirmation using QSL, meaning "did you receive this information?")
Station 1 (Operator A):
N1ESC, KE5ABC. QSL, I copy the Icom IC-7300 and dipole. Great setup! Iâm getting a bit of QSB on your signal though. Over.
(Operator A confirms the message and mentions QSB, which means thereâs some fading in the signal.)
Station 2 (Operator B):
KE5ABC, N1ESC. QSL on the QSB, Iâm noticing it as well. The band is starting to change a bit. Over.
(Operator B acknowledges the signal fading.)
Station 1 (Operator A):
N1ESC, KE5ABC. Understood, Sarah. Iâm going to QSY to another frequency soon. Thanks for the QSO! 73 and all the best. Over.
(Operator A indicates they will change frequencies soon and signs off with 73, meaning "best regards.")
Station 2 (Operator B):
KE5ABC, N1ESC. QSL, Mike. 73 and take care! This is N1ESC, clear and QRT.
(Operator B acknowledges the sign-off with 73 and indicates they are going off the air (QRT).)
Station 1 (Operator A):
N1ESC, KE5ABC. 73, and have a great day! KE5ABC clear.
(Operator A signs off and confirms they are clear of the frequency.)
Key Terms in the Conversation:
CQ: Calling for any station.
QTH: Location.
59, 57: Signal reports, where the first digit is signal strength and the second is readability.
QRV: Ready to communicate.
QSB: Signal fading.
QSL: Confirm receipt of information.
QSY: Change frequency.
73: Best regards.
QRT: Going off the air.
This is a simplified conversation, but it shows how hams use a mix of codes and casual language to keep communication efficient and clear.
đ Check my projects, especially the Morse Code Translator
Decoding Ham Radio: The Meaning Behind Q-Codes and 73
Piotr
Oct 24, 2024
In the world of ham radio, operators use a special set of abbreviations known as Q-codes to streamline communication. Whether you're a seasoned ham radio enthusiast or just getting started, understanding these codesâand what it means to send "73" at the end of a conversationâcan help you communicate more efficiently. In this guide, weâll explore the most common Q-codes, their meanings, and how to use them in real-world ham radio exchanges.
If you're new to ham radio, you may have noticed operators using short codes like QTH for location, or ending their conversations with a simple "73." These abbreviations are called Q-codesâa system designed to make communication more efficient, especially when using Morse code (CW). But over time, these codes became widely adopted even in voice communication.
What Are Q-Codes?
Q-codes originated in the early 20th century as a shorthand for telegraph operators working under international telecommunication systems, primarily to make Morse code transmissions faster and clearer. Each Q-code represents a specific question or statement, often followed by a simple response. For example, "QRM" means interference from another station, while "QSL" means receipt acknowledgment.
Q-Code | Meaning | Example of Use |
---|---|---|
CQ | Calling any station, seeking a contact | "CQ CQ CQ, this is KE5ABC calling CQ." |
QRM | Interference from other stations | "Iâm getting QRM, another station is causing interference." |
1-5 (1=low, 5=high) | Refers to man-made interference from other stations on the same band. | |
QRN | Static or natural noise interference | "There is too much QRN, itâs hard to hear." |
1-5 (1=low, 5=high) | Refers to natural noise, such as thunderstorms or atmospheric noise. | |
QRO | Increase power | "Iâm going to QRO to help you copy me better." |
QRP | Reduce power , Low power operation | "Iâm running QRP with 5 watts." |
1-10 watts | Refers to low-power operation, often less than 10 watts. | |
QRQ | Send faster (in Morse code) | "Could you QRQ? Your Morse code is a bit slow for me." |
QRS | Send more slowly (in Morse code) | "QRS please, Iâm having trouble copying your CW." |
QRV | Ready to copy | "Iâm QRV now, go ahead with your transmission." |
QRX | Stand by | "Iâll be QRX for 5 minutes." |
Time value (e.g., 5 minutes) | Tells the other station to wait or stand by for a certain time. | |
QRZ | Who is calling me? | "QRZ? I hear a station calling but not sure who." |
QSB | Fading signal | "Your signal has QSB, youâre fading in and out." |
1-5 (1=low, 5=high) | Refers to the signal fading or fluctuating in strength. | |
QSL | Acknowledgment of receipt (or paper card) | "QSL, I received your transmission." |
QSO | Conversation between stations | "Thanks for the QSO, it was great talking to you." |
QSY | Change frequency | "Letâs QSY to 7.200 MHz to continue our chat." |
Frequency (e.g., 7.200 MHz) | Used to indicate a change to a different frequency. | |
QTH | Location | "My QTH is New York City." |
City/Location (e.g., New York) | Refers to the operatorâs location. | |
QRG | What is my exact frequency? | "Could you give me your QRG?" |
Frequency (e.g., 14.250 MHz) | Asking for or confirming exact operating frequency. | |
QTR | What is the time? | "Whatâs the QTR?" |
Time (e.g., 15:30 UTC) | Asking for the current time, often in UTC (Coordinated Universal Time). | |
QSL? | Can you acknowledge receipt? | "Did you receive my transmission? QSL?" |
QSP | Relaying a message | "Iâll QSP your message to the net." |
QRL | Frequency in use | "Is this frequency QRL? I want to make sure before transmitting." |
QSY | Change frequency | "Letâs QSY to another frequency, thereâs too much interference." |
QRU | Have you anything for me? | "Iâm QRU for now, nothing more to transmit." |
QRK | How well can you copy me? | "Whatâs my QRK? Can you copy me well?" |
1-5 (1=poor, 5=excellent) | Asking for a readability report, typically for voice signals. | |
QSB | Signal is fading | "Your signal has a lot of QSB, itâs fading in and out." |
1-5 (1=low, 5=high) | Describes the fluctuation in signal strength. | |
QRP? | Shall I reduce power? | "QRP? Should I reduce my power for better communication?" |
Though developed for commercial radio, Q-codes have since become a mainstay in amateur (ham) radio. Using Q-codes saves time and reduces confusion when signals are weak or conditions are noisy.
Why Say "73"?
The 73 code is among the most recognized in ham radio, meaning "best regards" or a friendly sign-off at the end of a conversation. It dates back to the 1850s when telegraph operators began using numbers as shorthand for common phrases. 73 has stuck around ever since, symbolizing goodwill and friendly communication between operators.
Code | Meaning | Example of Use |
---|---|---|
73 | Best regards | "Thanks for the QSO, 73!" |
88 | Love and kisses (often used in friendly QSOs) | "Great to hear you on the air, 88!" |
33 | YL (Young Lady) best regards | "Nice talking to you, 33 and see you soon!" |
55 | Good luck | "Hope you have a great contest, 55!" |
99 | Go away (used when someone is being annoying) | "This frequency is busy, 99!" |
161 | Best regards with 73 and 88 combined | "161 to you and the family!" |
Today, both Q-codes and codes like 73 are still used by ham radio enthusiasts across the globe, bridging the gap between languages and making radio communication quicker and easier.
đ Check my projects, especially the Morse Code Translator
73!
CEPT T/R 61-01 and 61-02 agreements
Piotr
Oct 23, 2024
The CEPT T/R 61-01 and CEPT T/R 61-02 agreements are both related to amateur radio, but they serve different purposes and have distinct scopes. Here's a breakdown of the key differences between the two:
CEPT T/R 61-01 Agreement
Purpose: This agreement simplifies the ability of licensed amateur radio operators to operate their stations in other countries without obtaining an additional local license.
Scope: It allows radio amateurs holding a license in one CEPT country to operate in another CEPT member country temporarily, using their home country callsign with the appropriate local prefix (as discussed earlier).
Key Benefit: Amateurs do not need to apply for a new license when visiting another CEPT country; they can operate their equipment under the CEPT mutual recognition system.
Who it applies to: Applies to individuals who already hold a valid amateur radio license from a CEPT member country.
Example: A Polish amateur with the callsign SP1ABC can operate in Switzerland using the callsign HB9/SP1ABC without needing a Swiss license.
CEPT T/R 61-02 Agreement
Purpose: This agreement creates a harmonized examination certificate, known as the HAREC (Harmonised Amateur Radio Examination Certificate), which simplifies the process of obtaining an amateur radio license in another CEPT country.
Scope: It allows individuals who pass a standardized amateur radio examination in their home country to receive a HAREC certificate. This certificate can then be used to apply for an amateur radio license in any other CEPT country.
Key Benefit: Instead of retaking the examination in every country, the HAREC certificate is recognized across all CEPT countries, making it easier for an operator to get a permanent license abroad.
Who it applies to: Those who have passed the required examination in their home country and wish to obtain a permanent amateur radio license in another CEPT country.
Example: A person who passes the amateur radio exam in Germany and receives the HAREC certificate can use that certificate to apply for an amateur radio license in France without needing to retake the exam.
Aspect | CEPT T/R 61-01 | CEPT T/R 61-02 |
---|---|---|
Purpose | Allows temporary operation in other CEPT countries | Harmonizes amateur radio examination standards |
Scope | Use home country callsign with local prefix in another country | Recognizes HAREC certificate to obtain a new license abroad |
Usage | For temporary operations (e.g., travel) | For applying for a new license after passing the exam |
Key Document | Amateur radio license | HAREC (Harmonised Amateur Radio Examination Certificate) |
Example | A licensed operator using their callsign while traveling | An operator moving to another country and applying for a local license using their HAREC certificate |
In summary, CEPT T/R 61-01 is for temporary operation in other CEPT countries, while CEPT T/R 61-02 is for harmonizing exam standards and making it easier to get a permanent license abroad.
đ Check my projects, especially the Morse Code Translator
Amateur Radio on the Go: CEPT Callsign Rules for Operating Abroad
Piotr
Oct 23, 2024
Amateur radio operators who wish to take their hobby abroad must follow international regulations to use their callsigns correctly. Whether youâre planning to operate from a mobile station or a fixed location, understanding the CEPT agreement and the specific callsign modifications required for each country is essential. This guide will walk you through how to properly use your callsign when transmitting in foreign countries, with Switzerland as a key example, and provide a list of common suffixes and country prefixes for European operators.
Amateur radio, also known as ham radio, is governed by international regulations, especially when you want to use your callsign abroad, such as from a mobile station. To correctly operate amateur radio outside your home country, you need to meet several conditions:
CEPT License (CEPT T/R 61-01 Agreement)
Most European countries, as well as a few others (e.g., Canada, the USA, Australia, New Zealand), are signatories to the CEPT T/R 61-01 agreement. This allows amateur radio license holders from one of these countries to operate in other countries covered by the agreement without needing an additional local license.
How to use your callsign abroad?
When using your callsign in another country, you need to modify it accordingly:
Switzerland as an example
When operating in Switzerland, you need to modify your callsign according to CEPT rules:
Add the country's prefix:
The prefix for Switzerland is HB9.
Your full callsign in Switzerland:
Your callsign will consist of the Swiss prefix "HB9", followed by a slash â/â, and your home country callsign. Example: If your callsign in Poland is SP1ABC, in Switzerland you will use HB9/SP1ABC.
Portable station:
For transmitting from a handheld device, you would typically use the suffix /P to indicate that you are operating from a portable station. This is because handheld radios are typically used when you're operating from a temporary or non-fixed location, which is the general definition of a portable station.
Example: If you are transmitting from a car in Switzerland, your callsign will be HB9/SP1ABC/P.
Mobile station:
If you are operating from a mobile station (e.g., a vehicle), you can add the suffix /M. Example: If you are transmitting from a car in Switzerland, your callsign will be HB9/SP1ABC/M.
NATO Phonetic Alphabet Example for Switzerland: Portable and Mobile Operation
For HB9/SP1ABC/P:
HB9: Hotel Bravo Nine
/: Slash
SP1ABC: Sierra Papa One Alpha Bravo Charlie
/P: Slash Papa
For HB9/SP1ABC/M:
HB9: Hotel Bravo Nine
/: Slash
SP1ABC: Sierra Papa One Alpha Bravo Charlie
/M: Slash Mike
Important notes
Frequency bands: Be sure to comply with local regulations regarding the frequency bands and transmitter power limits. Switzerland may have slightly different rules for various radio bands.
Carry your documents: Always have a copy of your amateur radio license and proof that your license complies with the CEPT T/R 61-01 agreement.
To summarize, when operating in Switzerland, use your callsign in the format HB9/Your callsign, and add the /M suffix for mobile stations.
List of European CEPT country prefixes
Here are the callsign prefixes for some European countries under the CEPT agreement:
Country | Prefix |
---|---|
Austria | OE |
Belgium | ON |
Croatia | 9A |
Czech Republic | OK |
Denmark | OZ |
Finland | OH |
France | F |
Germany | DL |
Greece | SV |
Hungary | HA |
Iceland | TF |
Ireland | EI |
Italy | I |
Luxembourg | LX |
Netherlands | PA |
Norway | LA |
Poland | SP |
Portugal | CT |
Romania | YO |
Slovakia | OM |
Slovenia | S5 |
Spain | EA |
Sweden | SM |
Switzerland | HB9 |
United Kingdom | G, M |
Common suffixes and their meanings
Suffix | Meaning |
---|---|
/M | Mobile station (e.g., operating from a vehicle). |
/P | Portable station (e.g., operating from a temporary location or outdoors). |
/A | Operating from an alternative fixed location (different from home QTH). |
/MM | Maritime mobile (operating from a ship or boat in international waters). |
/AM | Aeronautical mobile (operating from an aircraft). |
These suffixes are used to clarify the operating conditions of your station and are often required to provide context to other operators.
đ Check my projects, especially the Morse Code Translator
NATO Phonetic Alphabet and Morse Code in Radio Communication
Piotr
Oct 23, 2024
In the world of aviation and radio communication, clear and precise transmission of information is crucial. To avoid misunderstandings, pilots, air traffic controllers, and radio operators use the NATO phonetic alphabet and Morse code. Both systems have become global standards, ensuring effective communication across language barriers and in challenging conditions.
NATO Phonetic Alphabet
The NATO phonetic alphabet is used to spell out letters and numbers over radio or phone communication. It helps prevent confusion between similar-sounding letters and numbers, especially when signal quality is poor or background noise is present. For instance, "B" and "D" may sound similar over a weak connection, but saying "Bravo" and "Delta" clarifies which letter is meant.
One notable difference in radio communication is the pronunciation of the number "9" as "Niner." This modification ensures it isn't confused with "five," which can sound similar under noisy conditions.
NATO Phonetic Alphabet Table
Letter/Number | NATO Code (Phonetic Alphabet) | Difference for "Niner" |
---|---|---|
A | Alfa | |
B | Bravo | |
C | Charlie | |
D | Delta | |
E | Echo | |
F | Foxtrot | |
G | Golf | |
H | Hotel | |
I | India | |
J | Juliett | |
K | Kilo | |
L | Lima | |
M | Mike | |
N | November | |
O | Oscar | |
P | Papa | |
Q | Quebec | |
R | Romeo | |
S | Sierra | |
T | Tango | |
U | Uniform | |
V | Victor | |
W | Whiskey | |
X | X-ray | |
Y | Yankee | |
Z | Zulu | |
0 | Zero | |
1 | One | |
2 | Two | |
3 | Three | |
4 | Four | |
5 | Five | |
6 | Six | |
7 | Seven | |
8 | Eight | |
9 | Niner | "Niner" used to avoid confusion with "Five" |
Morse Code
Morse code is another vital tool for radio communication, especially in situations where voice communication is not possible. Developed in the 1830s, Morse code uses a series of dots (short signals) and dashes (long signals) to represent each letter of the alphabet and numbers. Even though it's no longer as widely used as it once was, Morse code remains a fundamental skill for many radio operators and is still employed in certain emergency situations.
Morse Code Table
Letter/Number | Morse Code |
---|---|
A | .- |
B | -... |
C | -.-. |
D | -.. |
E | . |
F | ..-. |
G | --. |
H | .... |
I | .. |
J | .--- |
K | -.- |
L | .-.. |
M | -- |
N | -. |
O | --- |
P | .--. |
Q | --.- |
R | .-. |
S | ... |
T | - |
U | ..- |
V | ...- |
W | .-- |
X | -..- |
Y | -.-- |
Z | --.. |
0 | ----- |
1 | .---- |
2 | ..--- |
3 | ...-- |
4 | ....- |
5 | ..... |
6 | -.... |
7 | --... |
8 | ---.. |
9 | ----. |
Both the NATO phonetic alphabet and Morse code are essential tools in ensuring clarity and precision in radio communication, whether it's for aviation, maritime operations, or amateur radio.
đ Check my projects, especially the Morse Code Translator
Why You Need Your Own Domain: More Control, Privacy, and Professionalism
Piotr
Oct 15, 2024
Letâs be honest: Gmail is great. Itâs free, and convenient, and pretty much everyone uses it. But what if I told you that owning your own domainâlike yourname.comâcould make your online life so much better? Think of it as leveling up from renting a tiny apartment (Gmail) to owning a cozy little home (your own domain). Ready to hear why you should bother getting your own domain? Letâs dive in, and I promise to make it fun!
Data Privacy: Your Emails Shouldnât Be a Peep Show
Sure, Gmail gives you free email, but hereâs the catch: theyâre reading your emails. Yep, Google scans your messages to figure out which ads to show you. Thatâs like having a nosy neighbor who watches you through the blinds and then tells you which laundry detergent to buy. Creepy, right?
When you own your own domain, youâre the boss. No oneâs snooping through your inbox to sell you stuff. You get total privacy and control, like the king or queen of your very own email kingdom. You can even set up encryption to keep your emails locked up tighter than a secret agentâs briefcase. Spy-proof and sleek.
Gmail Could Ghost You (And Itâs Not as Fun as It Sounds)
Free services like Gmail have this sneaky little clause called âTerms of Service.â Basically, if you break the rulesâor even look like you didâthey can shut your account down faster than you can say, "What policy violation?" Itâs like getting kicked out of a party for spilling your drink when it wasnât even you!
What happens if you lose access to your Gmail? Your emails, your contacts, your calendar, poofâgone! With your own domain, nobody can shut you down. No surprise lockouts, no having to prove your innocence. Itâs your space, and youâre in total control. No more being at the mercy of Big Techâs whims.
Look Like a Pro (Even If Youâre Just Figuring Things Out)
Letâs be real: when someone emails you from yourname@gmail.com, itâs fineâbut when they hit you up from yourname@yourdomain.com, itâs a whole different vibe. You go from âjust another emailâ to âwow, this person means business!â Itâs like showing up to a meeting in a sharp suit instead of sweatpants.
For business owners, freelancers, IT pros, or anyone wanting to look legit, a custom domain gives you instant credibility. It shows youâve got your act together, even if youâre still eating cereal for dinner. And for students, this is a total game-changer. Youâll impress your professors, future employers, and maybe even your friends who still think â.eduâ is as fancy as it gets.
IT Geeks and Students: Flex Your Skills
If youâre in IT, development, or Ops, having your own domain is like having your own playground (but cooler). You can set up real systems, host projects, mess around with configurations, and show off your skills. Itâs also a killer way to stand out in job applications or at the next tech meetup. Imagine saying, âYeah, check out my project on myawesomedomain.com,â instead of sending someone a random link. Big flex.
Students, youâre not left out! Your own domain lets you practice, build portfolios, and create something memorable. Yourname@yourdomain.com > yourname12345@gmail.com every time. Trust me, itâll make you stand out when youâre applying for internships or showing off to friends.
Service Shutdowns? Not on Your Watch!
Look, free services can disappear. Remember Google Plus? Yeah, me neither. Imagine one day you wake up and BAM, Gmail, or whatever free service youâre using decides to shut down. With your own domain, thatâs never going to be a problem. Youâre in charge, and your email isnât going anywhere. No more worrying about losing access to all your important stuff.
Build Something Bigger
When you own a domain, youâre not just getting a shiny new email addressâyouâre investing in your future online empire. Today it might just be an email, but tomorrow you could build a website, host projects, or start a blog. Your domain is like a blank canvas, and you can paint whatever you want on it. (Bonus: itâs way more fun than adult coloring books.)
Conclusion: Why Be Basic When You Can Be Boss?
So, yeah, Gmail and other free services are cool, but having your own domain is like moving out of your parentsâ house and getting a place of your own. Youâll have more control and more privacy, and youâll look like a total pro. Plus, no one can shut you down or peek at your emails without your say-so.
Ready to stop being basic and start being the boss of your online life? Get your domain and start flexing your professional (or personal) muscle today.
How I Accidentally Went Viral on LinkedIn with the #Desperate Hashtag. And a Bear
Piotr
Oct 9, 2024
Picture this: youâre sitting at your computer, working late into the night on a quirky project you started on a whim. You finally wrap it up and, instead of posting immediately, you decide to sleep on it. Early the next morning, you hit "post" on LinkedIn and go about your day. By the time you check back, youâre semi-viral. Thatâs exactly what happened to me, turning the hashtag #desperate into a platform for creativityâand a surprising moment of social media fame.
The Desperate Badge and the Birth of My App
It all started with a LinkedIn post by Courtney Summer Myers đŹđ§, where she introduced the #desperate badge as a cheeky overlay for job-seekers to show their determination. Like many, Iâm currently navigating a tough job market. But rather than just using the badge, I had an idea: Why not create a tool that allows anyone to design their own custom banner?
So, late one afternoon, I took to coding. By 3 a.m., after combining my front-end skills with some basic graphic design, I had a working app that could apply personalized banners to LinkedIn profile pictures. And because Bern, Switzerlandâwhere I liveâwas named after a bear, I threw in an Easter egg: a bear. To try the app, users could slap the #desperate banner (or any custom text) onto a bear picture, without needing to share any personal data. The app was designed to be secure and operate entirely within the user's browser. Otherwise, who would trust a random guy on the Internet with their picture?
But here's where things took a wild turn.
From Idea to 30,000+ Impressions in Days
I posted about my new tool on LinkedIn, fully expecting maybe a handful of views from friends. The next morning, I had almost 20,000 impressions, over 150 reactions, and nearly 20 comments. My phone wouldnât stop buzzing. On October 1st, the post reached its peak, with thousands of people engaging. By October 5th, the post's virality slowed, but it had already hit over 30,000 impressions and 330 reactions in total.
Why Did It Go Viral?
The secret sauce? Timing. I launched my app right as the #desperate badge was gaining momentum on LinkedIn. The badge struck a chord with people worldwide, frustrated with their job search struggles. My app, which allowed users to easily create custom banners, offered a quick, fun way to join the trendâno graphic design skills needed, and it could all be done in under a minute.
What made it stand out even more was how simple and secure the app was. Users didnât have to upload any personal data, everything worked directly in their browser. No graphic design skills were required. It was just me, my app, and a quirky bear.
What Came Next?
Besides a flood of LinkedIn notifications, I received about 40 networking opportunities. Some people offered to recommend me for jobs, and while I didnât land any concrete offers from the viral post (yet), Iâve certainly expanded my network in ways I never expected. And letâs face it, in todayâs job market, visibility is currency.
Reflections on Going Viral
Going viral is a strange, exhilarating, and overwhelming experience, especially for someone who had rarely posted on social media before this. In just a few days, I saw firsthand how quickly something can snowball online. What started as a fun side project transformed into a viral momentâand a personal lesson in seizing opportunities.
So whatâs next? Well, Iâm continuing to explore projects like this, sharpening my skills, and trying to stand out in a very competitive market. If nothing else, this experience has reinforced one thing: donât wait for the perfect opportunity to showcase your skills. Sometimes, you just have to throw a bear into the mix and see what happens.
And if you want to check out my app or learn more about my projects, head over to piotrkepka.com/desperate.
Now, letâs see what I can cook up next. Hopefully, it doesnât involve staying up until 3 a.m. again... but no promises.
Statistics
I believe in being transparent because it helps build trust and fosters stronger relationships.
Create and Deploy a Website in Under 10 Minutes
Piotr
Sep 23, 2024
Deploying a website in just under 10 minutes is totally achievable. This guide will walk you through the process, step by step, using Hetzner as your cloud provider and Letâs Encrypt to set up a free SSL certificate.
Before we start, youâll need to ensure a few prerequisites are in place.
Prerequisites
A Domain Name
Ensure you already own a domain or have an account with a domain provider (such as EuroDNS, GoDaddy, or Namecheap) where you can quickly purchase one.
An Account on Hetzner
Hetzner is our cloud provider for this tutorial. You'll need to sign up if you donât have an account yet. Remember that creating an account might require a prepaid balance of âŹ20, which can be paid via PayPal or credit card.
Once youâve handled these prerequisites, youâre ready to move on.
đ The timer is running.
Step 1: Acquire a Domain Name
đ If you already own a domain, feel free to skip this step. If not, hereâs what you need to do:
Sign in to your domain providerâs platform. Search for an available domain and complete the purchase. Once purchased, keep the DNS management tools handyâyouâll need them shortly.
Step 2: Generate an SSH Key (OpenSSH Certificate) (optional but recommended)
đ To securely connect to your server, you must generate an SSH key.
If you don't have any yet, hereâs how:
Open a terminal on your local machine (Linux/macOS) or use an SSH tool (like PuTTY on Windows).
Run this command to generate an SSH key:
ssh-keygen -t rsa -b 4096
Save the key and copy your public key using:
cat ~/.ssh/id_rsa.pub
In the Hetzner Cloud control panel, add the public key to the SSH Keys section (within the Security menu). This will enable you to connect to your VM securely.
Step 3: Set Up Your Web Server on Hetzner
đ With a Hetzner Cloud account ready, itâs time to deploy a virtual machine (VM) where your website will be hosted:
Log in to your Hetzner Cloud account.
- Go to the Cloud Console, create a "New Project," then select "Create Server."
- Choose the Location closest to your target audience (Hetzner has multiple data centers worldwide).
- Select the Image (I chose Debian 12)
- Select the Type of your Server: Shared vCPU, x86 (Intel/AMD) and then CX22 (2vCPUs, 4 GB RAM, SSD 40 GB and the price at âŹ0.006/h is an excellent choice to start with)
- In the Networking section, ensure you enable IPv4 (alongside IPv6) because some domain providers require IPv4 to link domains. That will add an extra âŹ0.00086/h to the bill but is rather necessary.
- SSH keys: To increase the security of your server, you are recommended to use SSH keys. You can use a previously added SSH key or copy and paste a new public one into this field.
- Deploy the server by clicking "Create & Buy now".
After your server is created, Hetzner will provide your server's public IP address.
Step 4: Connect to Your Server
đ Now that the SSH key is in place, connect to your Hetzner server using the following command:
ssh root@your-server-ip
Make sure to replace your-server-ip with the IP address Hetzner provided.
Step 5: Install Nginx
đ Once logged into your server, the next step is to install a web server. Weâll use Nginx, a widely used and reliable web server.
Update the package lists:
bash
sudo apt update
sudo apt upgrade
Install Nginx:
sudo apt install nginx
Start the Nginx service:
sudo systemctl start nginx
You can now navigate to your serverâs IP address in a browser. You should see the default Nginx welcome page.
Step 6: Configure DNS to Point to Your Server
đ Itâs time to connect your domain to your server by setting up DNS records:
Log in to your domain providerâs DNS management tool.
Add an A record pointing your domain to the IPv4 address of your Hetzner server:
A record: * points to your-server-ip
A record: www points to your-server-ip
The wildcard * record is for any subdomain (including a non-prefixed domain name without any subdomain).
Optionally, using @ instead of * will allow you to use your domain without any subdomain only.
A record: @ points to your-server-ip
Wait for the DNS propagation, which can take anywhere from a few minutes to an hour.
Step 7: Secure Your Website with SSL (Using Letâs Encrypt)
đ Your site is now online, but itâs not yet secure. Letâs use Letâs Encrypt to set up a free SSL certificate:
Install Certbot, the tool used for obtaining SSL certificates:
Install Python:
sudo apt install python3 python3-venv libaugeas0
Install Certbot Nginx Package:
sudo apt install python3-certbot-nginx
Set up a Python virtual environment:
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
Install Certbot:
sudo /opt/certbot/bin/pip install certbot
Prepare the Certbot command:
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
Run Certbot to generate and install the SSL certificate:
sudo certbot --nginx -d your-domain.com -d www.your-domain.com
Certbot will prompt you to enter an email address and agree to the terms of service. Once Certbot finishes, it will configure Nginx to redirect HTTP traffic to HTTPS automatically.
Or, just get a certificate:
If you want to change your Nginx configuration by hand, run this command.
sudo certbot certonly --nginx
Set up automatic renewal:
Letâs Encrypt SSL certificates are valid for 90 days and it is recommended to set up a cron job to automatically renew it for free before its expiration to avoid service interruption.
Run the following line, to add a cron job to the default crontab.
echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
Step 8: Verify HTTPS
đ You should now be able to visit your website using HTTPS. To verify everything is working, open your browser and navigate to https://your-domain.com.
To double-check your SSL configuration, you can use tools like SSL Labs to confirm that your SSL certificate is correctly installed and trusted.
Step 9: Deploy your website
đ The content you see visiting your website is the default Nginx welcome page. It lives in /var/www/html. To change it to your desired content, do the following:
cd your-website-directory
scp * root@your-server-ip:/var/www/html
Was it 10 minutes?
đ I don't know, but now that you know the steps, you can set the web server in less than that!
â
đ This clock does not show 10 minutes, true.
đ But it is still cool to see so many nice native Unicode characters available today.
My Thoughts on Local-First Software
Piotr
Sep 14, 2024
As a full-stack engineer with a strong background in cybersecurity, including certifications like CySA+ and Security+ from CompTIA, Iâve come to believe that local-first applications are the future of secure and reliable software. While not all of my apps currently follow this model, itâs something Iâm increasingly focused on for the privacy, control, and resilience it offers.
As a full-stack engineer, I've always kept in mind the importance of building applications that offer users privacy, security, and control over their data. With my experience in software development and cybersecurity, Iâve gradually come to believe that local-first applications are a strong way to achieve these goals.
Local-first applications are built to store and process data primarily on the userâs device, rather than relying heavily on cloud servers. From a security standpoint, this offers some clear advantages. Storing data locally means itâs less exposed to potential breaches that could occur in the cloud. Users aren't constantly transmitting sensitive information to external servers, which reduces the risk of hackers intercepting or exploiting that data.
This ties directly into the privacy benefits of local-first apps. Because data is kept on the userâs device, they have far more control over who accesses it and when itâs shared. Itâs a model that empowers the user, giving them the final say on when and how their data gets uploaded to the cloud. As someone with a cybersecurity background, including certifications like CySA+, Iâve seen how essential it is to minimize the points where data can be compromised. Local-first applications inherently do this by reducing cloud dependency.
Thereâs also the added advantage of offline functionality. Local-first apps donât rely on an internet connection to work properly, which is a huge benefit, both from a user experience perspective and for reliability. Whether you're working in a remote location, traveling, or simply dealing with unstable Wi-Fi, local-first applications allow you to continue using them without interruption. This makes them not only more convenient but also more resilient than cloud-first alternatives.
While not all of my current applications are built with a local-first approach, itâs something Iâm focusing on more. The principles of privacy, security, and user control are increasingly becoming central to how I approach new projects. Local-first architecture will play a big role in the apps I develop going forward because it aligns with the kind of reliable and secure software I believe people need today.
As I continue exploring this model, Iâm confident that local-first applications are the future for those who want greater control over their data and peace of mind when it comes to privacy and security.
Rescued from e-waste: The Revived Android 4.4 KitKat Tablet
Piotr
Sep 10, 2024
In 2014, I bought a budget tablet on a whimâonly to bury it in a drawer when it turned out to be painfully slow. Nine years later, I stumbled upon it again, lifeless and stuck on the boot screen. Rather than tossing it, I took on the challenge to bring it back to life. What followed was a journey through lost manuals, forgotten forums, and obsolete softwareâa surprising adventure in tech revival that reminded me of the joy in fixing, not just discarding.
2014
I stumbled upon a full-page ad for a 50% off electronics sale at a newly opened shopping mall. When I arrived, a crowd was already hunting for deals. Luckily, I managed to grab a brand-new budget tablet, the MSI Primo 81, originally marked at $100, for just half the price.
I went back to my place and, excited, unpacked and turned on my first tablet.
A simple but colorful animation with a pleasant sound invites me inside.
I played with it for a while, and then it struck me: this thing is slooow â too slow for me. What a pity.
As I could not find any good use for it, the tablet ended up at the bottom of the drawer and was forgotten...
2023
...till now. Actually, I was looking for something else, and I found it.
Looks brand new, even after those nine years. Completely discharged as expected.
Let's give it a chance! - I thought.
I charged the battery 100%, and... here comes the first disappointment/challenge: It does not boot! It stucks on the MSI logo and goes nowhere.
Make it alive or make it... electro trash?
Making electro trash from a barely used device is a bit sad.
So, I accepted the challenge about MSI Primo 81, an Android 4.4 KitKat tablet, assuming the fun should be good.
NOTICE / WARNING: I take NO RESPONSIBILITY for any steps to recover an Android device,
especially MSI Primo 81. If you have a similar problem, you can try taking them at
your OWN RISK. This is not a technical advice. Your case may be different than mine.
Also, DO NOT TRUST any external source mentioned here, as there is no guarantee that
the software is free from viruses or malware or will not cause DAMAGE to your device.
Always check files downloaded from the internet with up-to-date AV software.
Loading firmware/software on your Android device from unknown and untrusted sources
introduces a high RISK.
Problem 1: What this thing is?
So, basically, at this point, I knew this was an MSI device only because it showed the logo.
I had no clue what that thing was. On the back side, the printing almost disappeared, and the letters were so small that they were hard to read even from the zoomed-in picture.
Finally, I got the name:
MS-N821
Indeed, this device by MSI existed.
Problem 2: How to boot this at all?
Searching for:
How to hard reset the MSI MS-N821 tablet
gave some clues, but none of the advice worked.
My first shot was this old Owner's Manual: https://manualzz.com/download/61899754, but there was nothing about hard reset.
The second shot:
MS-N821 MSI site:msi.com
gave a product list offered in Japan. In Japanese. This trace will be helpful later, though.
Then I found this thread: https://forum-en.msi.com/index.php?threads/please-help-how-to-hard-reset-msi-primo-81-or-recovery.255010/
That was gold:
On Apr 20, 2015, hchg wrote:
The reset of Primo 81 would be long pressing the power key for over 8 secs, but it won't enter the Android recovery mode.
The better way to solve your problem now is to re-flash the firmware.
FW Download Link: http://download.msi.com/archive/frm_exe/N821_v4.5rc5_v4.4_20140414.zip
Updaet Guide: http://www.msi.com/files/pdf/Primo73_75_81_91_93firmware_recovery_en_21.pdf
The better way is (...) to re-flash the firmware!
Maybe something happened to the flash memory after so many years without power? Let's try this!
Somehow, the "Update Guide" is still there: http://www.msi.com/files/pdf/Primo73_75_81_91_93firmware_recovery_en_21.pdf
And the firmware! http://download.msi.com/archive/frm_exe/N821_v4.5rc5_v4.4_20140414.zip
The Firmware Recovery process requires PhoenixSuite1.0.6.zip.
Let's go to the product page and download it, right?
Problem 3: Unsupported by MSI
I was late. Like two years only, but still.
The product page, linked in the Firmware Recovery Guide, was gone.
MSI dropped support for this and similar devices in 2021 (Primo 73, Primo 75, Primo 81, Primo 91, Primo 93).
Somehow, I also found the product page on MSI Japan, jp.msi.com, but it was already gone too.
So, I used the Wayback machine:
...and the translator that is built into the Chrome browser.
Hint: Look at the URLsâeven if the link is in Japanese, the URL can be in English.
This way I found again the manual, OS image and the USB driver for Windows (finally not needed).
But there was no PhoenixSuite anywhere!
Let's ask Google again:
msi phoenixsuit1.0.6.zip
Anyone?
I got several Chinese pages, some not very trustworthy looking, and this other one that seems to be a legit shop in Hungary:
https://www.alcordigital.hu/downloads.php?method=download&id=12
Install the software
I installed the PhoenixSuite, but it failed to install the "Google Inc Win USB" driver on Windows 10.
Here is how to fix that: https://www.youtube.com/watch?v=pKsuzITki3E
Search for: Recovery options
Settings > Recovery options > Advanced startup > Restart now
Troubleshoot > Advanced options > Startup settings > Restart
Choose: Disable driver signature enforcement (option no. 7 - use F7 to select)
(When got back to Windows, run the installer again and select the "Repair" option)
3, 2, 1... Flash it! But Cable â Cable
So the procedure is exactly as described in the Firmware Recovery Guide (Primo73_75_81_91_93firmware_recovery_en_21.pdf):
1. Long press the power key at least 10 seconds to power off the device.
2. Release âpower keyâ after the system shut down (For now, Do NOT connect to PC)
3. Press âVolume +â and do NOT release it.
4. Keep pressing âVolume +â button and connect to PC through USB2.0.
5. Keep pressing âVolume +â button and push 5 times on âpowerâ key. ( Please make sure âVolume +â and âpowerâ are pressed together when you push the fifth time on âpowerâ key)
6. Release all key which are pressed and the device should start the auto upgrade process. (If the upgrading didnât start, please repeate the steps 1~5)
It did not work for me initially because of the USB cable (maybe a data line was broken?). After I took a brand new one, it went smoothly.
The procedure takes about 5 minutes. Just stay still and do not touch anything.
Back to 2014
OK, I am in. Hurray!
Android has started, and... nothing is working!
No Google Play store, no YouTube. Retry. Still nothing.
But the browser still opens websites. That is a good sign.
The device has not been updated since I bought it. Nine years in IT is like a century. Everything has changed.
Let's start with some cleaning. Remember, this device is not a speed demon.
Just "Force stop" and "disable" all the applications you won't need. Do it slowly, one by one, so you know what has stopped working.
Let's update it
Because Google Play is not working, probably due to changes in the cloud API, we will need another way to bring newer applications.
At least at the beginning.
The plan is as follows:
- We need the newest versions of some basic software, but it must work on Android 4.4 KitKat.
- This software will not come from the official Google Play store, so we have to allow the installation of apps from Unknown sources.
Settings > Security > Device Administration > Unknown sources [X]
Now we are good to go.
To find all the applications, I searched for:
[application name] apk for android 4.4
like:
"vlc apk for android 4.4"
I downloaded all the apps from https://apkmirror.com. I am not related to this website. Feel free to use any source you want.
The applications I found and used are here:
name | app | version | API version (API 19 - Android 4.4 Kitkat) |
---|---|---|---|
Google Chrome | chrome | 81.0.4044.138 | minAPI19_maxAPI23 |
Google Play Services | gms | 23.30.13 | minAPI19 |
Google Play Store | vending | 33.1.16 | minAPI19_maxAPI24 |
VLC for Android | vlc | 3.1.2 | minAPI17 |
Amazon Kindle | kindle | 8.5.0.77 | minAPI19 |
Google Camera | camera | 2.7.010 | minAPI19 |
Adobe Reader | reader | 16.4 | minAPI16 |
What did not work:
name | app | version | API version |
---|---|---|---|
YouTube | youtube | 14.43.55 | minAPI19 |
Netflix | netflix | 4.16.7 | minAPI19_maxAPI25 |
At this point, you should be able to Sign Into Google Play and download applications from there.
Disallow installation from unknown sources:
Unknown sources [ ]
Welcome to 2023, Primo 81!
And yes, you can still register your MSI Primo 81 for Warranty and Quicker Product Support:
https://account.msi.com/en/login
Level up: Root it (WARNING: Exploit included)
WARNING: If you follow my steps in this part, you are especially exposed to dealing
with viruses, malware, etc.
Yes, really.
You have been warned and hopefully discouraged.
Here is where things get murky:
I googled:
how to root android 4.4 msi
And the first result optimistically asks back:
root the Primo 81?
The link leads to the "MSI Forum (Micro-Star International)" and mentions the Root Onda package.
STOP Here! This package contains Exploit:AndroidOS/Lotoor.B!MTB
â ď¸ DO NOT INSTALL IT! â ď¸
Even on the Russian forum, users complain that their devices behave weirdly after installing this package. If I only knew what could cause that. Hmmm? :)
To Root it or not to Root it?
I see this as an opportunity to learn something new.
How to root an Android device? Not how to follow the steps, but deeper inside.
What exactly makes the software from the .ru websites and instruction steps written in Cyrillic "magic"?
Root it! (but myself)
Afterword
I am glad I found this forgotten device.
Today, in 2023, buying things is easier than fixing them.
This little intellectual challenge, combined with a bit of luck and the goodwill of people keeping internet archives, gave me a lot of satisfaction.
It is great that this device has not been lost.
Why I Built Colorosaur.com?
Piotr
Sep 7, 2024
Sometimes, all it takes to move forward is a simple reason â even something as small as creating coloring pages.
In December 2023, I created a website called colorosaur.com, The Coloring Dinosaur, to offer free, family-friendly coloring pages for every occasion. At first glance, the website might seem simple or perhaps even unnecessary, but my intention was entirely different.
I hadnât built a website or an application from scratch in quite some time. Although I had been involved in maintenance and working on other peopleâs projects, it had been a while since Iâd embarked on a project of my own. I wanted to challenge myself with something new, so I began looking for an idea that would allow me to apply my skills in PHP while learning a new framework, Laravel.
I decided to create this website to provide a fun, creative outlet while also serving as a platform to refresh and expand my development skills. I designed, developed, and deployed everything entirely on my own â from the logo and website code to the domain registration, the SSL certificate, and the cloud hosting setup. The project was motivating and educational, and I built it from the ground up in just two weeks. This process included everything from brainstorming functionality to mastering the Laravel framework and launching a complete, fully functional product.
The website offers several key features. Users can choose from hundreds of carefully selected coloring pages, which can be printed individually or combined into a custom PDF collection for easy printing. Each PDF also includes a QR code that quickly directs users back to the website for more coloring pages.
While colorosaur.com, The Coloring Dinosaur may appear simple, but it represents a significant personal achievement. It merges creativity with technology and serves as a fun, accessible resource for families.
Happy coloring!
How I Used AI to Fix a Laundry Room Problem
Piotr
Sep 7, 2024
Whenever you need a new Waschplan fĂźr die WaschkĂźche (PDF), it is there waiting for you!
If youâve ever dealt with a shared laundry room, you know the annoyance when the sign-up list (Waschplan) isnât there. Thatâs what happened to me recently. I went downstairs to reserve a slot, but the list for the upcoming week was missing againâthe Hauswart hadn't put it up yet. I saw the current weekâs list, which was empty, but I needed to sign up for the following week. I knew we'd be stuck without a schedule until the Hauswart returned, which could take days.
So, I decided to get creative. I took a photo of this week's empty list and asked ChatGPT, with its new vision capabilities, to recreate it using PHP code.
The original photo sent to GPT4o
Prompt:
Recreate this layout of page in PDF in PHP on A4 page.
If you ask me if the result was perfect â the simple answer is: No â the general layout was there, but the columns and sizing were off. However, it gave me a solid starting point.
I spent a few minutes adjusting the script, refining the layout, and then asked ChatGPT to generate the dates for six days, starting from the previous Monday or the next one if the PDF wasnât created on a Monday. Within about 40 minutes, I had a working prototypeâa quick, practical solution I hadnât even considered before.
Whenever the Hauswart forgets the list (Waschplan fĂźr ein Mehrfamilienhaus (PDF)), I have a tool to generate a PDF instantly and keep everyone on schedule.
Problem solved!
You can also check my other projects and coding experiments.
Waschplan fĂźr die WaschkĂźche, Waschplan fĂźr ein Mehrfamilienhaus, Der Waschplan pdf, Waschplan Vorlage zum Ausdrucken
PHP/Laravel: kickstart the app
Piotr
Sep 5, 2024
Create Project
composer create-project laravel/laravel <project_name>
cd <project_name>
Application Encryption Key
php artisan key:generate
Set proper group and privileges for the web server (nginx)
sudo chgrp -R www-data .
sudo chmod -R 775 ./storage
Fix privileges on files and folders (optional)
find . -type f -exec chmod 644 {} +
find ./storage -type d -exec chmod 775 {} +