Category Archives: software development

ham radio logbook fit for the 21st century

It all started with a simple whatsapp messages on a whatsapp group

hmmmm…. that’s a nice callsign…. have I’ve worked him before?

of course I had all the information available at my fingertips, if I was near my computer. but I had to get of the couch for this. if only I had my logbook as an iphone app, I thought

Since I wrote my own logging program, it shouldn’t be too hard to port it into a mobile app, or so I thought.

Continue reading ham radio logbook fit for the 21st century
Pin It

Experimenting with physical kanban boards

I’m a big fan of project management tools, especially bug & issue trackers. back in the day when I was leading a big development team with multiple projects and clients, we’ve implemented Jira, and with all the growing pains, in the end it was a big success.

now days, my requirements are very simple. I’ve got one project at the startup I’m working, and one pet project (actually, several pet projects, but only one at a time). and although we practice agile at work with kanban boards on jira, lately I found myself more than once jotting down my tasks on a piece of paper permanent on my desk.

Continue reading Experimenting with physical kanban boards
Pin It

running rust on raspberry pi zero

in my previous post I’ve described my first rust project. when i finally got everything working I went on to deploy my app on the raspberry pi zero host. and it wasn’t easy at all.

for reasons I didn’t quite understand it’s impossible to compile rust on the zero. the rust toolchain only support the new arm7 architecture and not the older arm6 used on the zero.

I found plenty of articles describing how to perform the cross compilation, and after a couple of days downloading linkers and building virtual machines, I gave cross a try. while it requires docker to be installed, I found it as a small price to pay considering the ease of use.

as per the instructions, I’ve typed the following line and watch the magic happen

Continue reading running rust on raspberry pi zero
Pin It

rust for the regular human being

some time ago I wrote about the poor run-time performance of python. I recently wanted to use that same piece of code and thought it might be a good exercise to rewrite that program in rust.

rust is a new system programing language focused on safety without sacrificing performance.
So I could have the advanced features I easily implemented on python with the speed of C, and figure out what’s behind the hype over rust.

Continue reading rust for the regular human being
Pin It

קוד בירושה (לגאסי)

לפני מספר ימים נקראתי בדחיפות לייעץ בישיבה עם מנכל של חברה מסוימת. המתכנתת שתיחזקה את המערכת העיקרית של אותה חברה הודיעה שהיא מתפטרת והיה צריך להחליט מה לעשות.

המנהל שאחראי על הנושא היה מיואש עוד הרבה לפני זה. המערכת המדוברת נכתבה לפני מעל ל20 שנה וככזו היתה מורכבת ממגוון טכנולוגיות מיושנות, שפות טכנות שפסו מהעולם והמון המון בעיות לתחזק ועל כך זה גם לקוחות עם דרישות חדשות. רוב הזמן עבר בכיבוי שריפות בעוד אותו עניין לפתח מוצרים חדשים בטכנולוגיה עדכנית, וכל המורשת הזו גם ככה ישבה לו כאבן ריחיים. ההתפתרות היתה רק הקש ששבר את גב הגמל.

Continue reading קוד בירושה (לגאסי)
Pin It

speeding up python on the raspberry pi

As a young engineer I was writing image processing real-time embedded software for a living. we used the DSP chips for all they could offer, and used to rewrote parts of the algorithms in assembly so we can shave off a few cycles per pixel and squese out a bit more of proccessor power.

recently i’ve been writeing a piece of software for my High Altitude Balloon. the original code was written in C and bash, but was hard to manage. so for this release I used python as the programming language. for most used this is a great choise. it’s robust, easy to write and debug, and a pleassure to use it’s flexible data stractures.

while python it not concidered a “fast” language due to the use of an interpreter, it was quite all right for most of my not-so-ergent needs.

but then I got a piece of code that converts a data stream to audio file that is transmitted back to ground. when I needed to send a large image file, this modem took several minutes to do the jobs. this was not ok. so I started to dig into the code to see what’s going on.

Continue reading speeding up python on the raspberry pi
Pin It


one of the good things that worked during my last balloon launch was the transmission of images from the balloon using SSTV.

Due to the geography of my country, it’s very difficult to catch the balloon after it lands. so up until now I wasn’t able to recover the memory stick from the camera. so, it was great fun to finally see some pictures from up there.

it was especially important as the GPS broke down 5 minutes into the flight. but I was able to identify some landscape features and draw a rough map of its heading.

but the technology did start to show it age.

Continue reading SSDV over APRS
Pin It

מודול מונדאל ל MagicMirror

אני לא חובב כדורגל גדול, אבל עקב אחוזי הצפיה בבית, ועם סיום שלב הבתים התחלתי להראות קצת יותר התעניינות מהרגיל בנעשה במונדיאל.

כדי לעקוב אחרי המשחקים בכל יום, הכנתי מודול קטן לMagicMirror

את הנתונים אני לוקח מאתר כאן 11

המעוניינים יכולים להוריד ולנסות MMM-Mondeal

Pin It

why i decided to write yet another ham radio logbook software

TL;DR It’s all about the User eXperience, design and making software fit you, and not the other way around.

I’m an amateur radio operator. as all hams, we are required to save a log of our contacts with other people. besides the legalities, it’s nice to have a record of places & people I’ve talked with. when I’ve started my hobby, some 30 years back, I received a paper logbook which I’ve been using untill recently, and I’ve been very happy with it.

I’ve been thinking of using a computerized logbook software, but to be honest, I really had no incentive. pen and paper were good enough for me. plus, the ones I’ve tried to use (out of the thousands out there) left me with a horrible experience. i consider my self as a savvy computer user, but most of the programs I’ve tried had a “designed by an engineer” look and feel, which in this day and age is simply a crime.

Continue reading why i decided to write yet another ham radio logbook software

Pin It

ריבוי משימות בארדואינו

לפני מספר ימים פרסם חבר טוב סרטון ביוטיוב שבו הוא מדגים שימוש בפונקצית yield אשר מוחבאת בתוך פקודת delay כדי להריץ שתיי משימות  במקביל.

גם מיקום הקריאה, וגם המינוח yield (״תן זכות קדימה״ בתרגום חופשי) עוררו בי את החשד שמדובר בתשתית למתזמן (scheduler) עבור מערכת הפעלה. חיפוש קצר באינטרנט אישר את החשד. מדובר בספרית ריבוי משימות, אך כרגע רק לארכיטקטורות 32 ביט של ATMEL ולכן מוגבל בלוחות שנתמכים.

רציתי לכתוב גרסא גם למעבדי הAVR, ולכן התחלתי לקרוא יותר על הארכיטקטורה שלו. תוך כדי מצאתי מימוש שמישהו כתב גם למעבדים ה״רגילים״. המימוש של שנינו דומה מאוד, כך שעבודת הבדיקה נחסכה ממני. אנסה להסביר כיצד זה עובד… Continue reading ריבוי משימות בארדואינו

Pin It