Writing

Everything published, sorted by date. Filter by pillar or browse by topic.

Architecture20 postsGliding21 postsLab29 postsOff Topic4 posts
Lab

Porting LTESniffer to macOS on Apple Silicon

LTESniffer builds and runs on macOS ARM64 with a manageable patch set, because it links a fork of srsRAN2 21.10, the same srsRAN code line already ported for srsRAN 4G. The port is proven end to end on a ZMQ loopback, downlink and uplink decode, with no radio attached.

Read more →
Lab

A second 5G gNB on macOS ARM64: OpenAirInterface

OpenAirInterface now builds and runs on my Mac: the gNB, its nrUE, and the RF simulator between them, against the same Open5GS core from the earlier posts. The UE registers, opens a PDU session, gets 10.45.0.6, and pings the gateway both ways. Twenty-six patches, none in protocol code.

Read more →
Lab

A production 5G gNB on macOS ARM64

My 5G SA loopback now runs OCUDU as the gNB instead of srsENB. Same Mac, same Open5GS core, same srsUE, same ZeroMQ link in place of radios. The UE registers, opens a PDU session, takes 10.45.0.3, and pings the gateway both ways. Forty-nine patches to get there, none of them touching protocol code.

Read more →
Lab

Running a full 5G SA network on macOS ARM64

I got a complete 5G standalone network running on an Apple Silicon Mac: Open5GS as the core, srsRAN as the gNB and the UE, connected over ZeroMQ instead of radios. The UE registers, opens a PDU session, gets an IP, and pings the user-plane gateway both ways. No SDR, no Linux VM, no containers.

Read more →
Lab

Setting up an SDR lab on macOS Apple Silicon: Part 2

Part 2 of the macOS ARM64 SDR lab port. A 9-daemon Osmocom 2G+3G core runs native on the LibreSDR B220, with SCTP shim v0.3.x, AF_UNIX SOCK_STREAM fallback for PCUIF, utun for GGSN, and Iu-CS/Iu-PS control plane complete against a patched hnb-test. Plus the LTE measurement kit run on the same hardware.

Read more →
Lab

Kraken A5/1 on macOS ARM64 (port notes)

Frank Stevenson's Kraken builds on Apple Silicon with three patches and a semaphore shim. CPU cracker only. Cross-checked against libosmocore.

Read more →
Lab

Setting up an SDR lab on macOS Apple Silicon: Part 1

Notes on porting libosmocore and srsRAN 4G to macOS Apple Silicon for a LibreSDR B220 Mini lab, plus the bitstream trap that looked like a UHD bug.

Read more →
Off Topic

Berchtesgaden, Obersalzberg

View toward Untersberg and Watzmann, from the southern slope of Obersalzberg.

Read more →
Lab

Why Grafana MCP clients fail behind the Home Assistant ingress proxy

Grafana as a Home Assistant add-on serves its API under a hassio_ingress prefix, not at /api/. Every third-party client I tested hardcodes the shorter path and fails silently with HTTP 200 and HTML. Diagnosis, prefix workaround, and two InfluxDB notes.

Read more →
Lab

Sample density bias in Zigbee temperature averages

Consumer Zigbee sensors report on change, not on schedule. A naive mean() weights every sample equally regardless of how much real time it stands for. When a transient produces hundreds of clustered samples, the monthly mean drifts by two or three degrees. Fix at query time with hourly pre-aggregation.

Read more →
Gliding· In Flight Videos

Flying in Unterwossen

In-flight video of an ASK 21 glider at DASSU Unterwössen, in the Bavarian Alps.

Read more →
Off Topic

2023 in pictures

A photo essay of 2023: a selection of favourite pictures from the year, taken in the cockpit and on the ground.

Read more →
Gliding

Gliding in Germany

A Google map of German gliding clubs and airfields, sourced from segelflug.de and remapped so cities and routes are visible for trip planning.

Read more →
Gliding· In Flight Videos

25 points landing

Video from the 2020 precision-landing contest at LRCN Clinceni. A windy day and a 25-point result, useful practice for the next season.

Read more →
Architecture

Cloud Strategy, podcast with Gregor Hohpe

Gregor Hohpe on Software Engineering Radio: a decision-driven approach to successful cloud migration, framing cloud strategy as a series of well-scoped architectural choices rather than a single big project.

Read more →
Architecture

Digital transformation with Gregor Hohpe

Gregor Hohpe on digital transformation: what the term actually means, why most transformations stall, and how architects can push beyond IT modernization into genuine business change.

Read more →
Gliding· In Flight Videos

Glider winch launch

Video of a glider winch launch, taken from the winch.

Read more →
Architecture· Azure

Securing Azure Web Apps - Part III VNET Integration

In previous articles I described how an Azure web application can be secured and isolated from Internet traffic using Private Endpoints. If the security requirements are not draconian, a simpler solution can provide the same results: public internet access is forbidden and traffic between web apps is routed only in the VNET.

Read more →
Gliding

Precision landing

Photos from the 2020 precision-landing contest at LRCN Clinceni. Windy conditions on the day made the target hard to hit.

Read more →
Architecture· Enterprise architecture

ADR - Architecture Decision Record

In an Agile work environment, architecture decisions are made incrementally rather than all upfront. Architecture Decision Records are a lightweight way to capture the reasoning behind each significant choice.

Read more →
Architecture· Azure

Using OAuth 2.0 to protect APIs published on Azure APIM (API Management Gateway)

How to protect APIs published on Azure APIM with OAuth 2.0 authorization tokens: configuration walkthrough and policy example.

Read more →
Architecture· Azure

Securing Azure Web Apps - Private Endpoint Part II

Azure Web Apps private endpoints behave differently when the VNET uses custom DNS servers. What breaks in the default setup and how to configure DNS forwarding to make it work.

Read more →
Architecture

IT architecture: Cutting costs and complexity

Reducing IT infrastructure and application costs through architectural choices: consolidation, retirement, and moving commodity components to managed services.

Read more →
Architecture

Why Do Computers Stop and What Can Be Done About It?

A pointer to Jim Gray's 1985 Tandem paper on why computers stop, the failure taxonomy behind fault-tolerant systems, and what modern architects still borrow from it.

Read more →
Gliding

Glider at sunset

IS-28 B2 two-seat glider at rest on the LRCN Clinceni apron at sunset, after the last flight of the day.

Read more →
Gliding

McCready theory and Netto vario

External article by Claire and Benjamin explaining the McCready ring and the Netto variometer, two instruments that tell a glider pilot when to speed up between thermals.

Read more →
Gliding

Risk management when flying gliders

Three articles from chessintheair.com on risk management in soaring: how the sport kills experienced pilots, whether it must be so dangerous, and managing risk in contests.

Read more →
Architecture· Azure

Securing Azure Web Apps - Private Endpoint

All Azure Web Apps are directly available over the public Internet. To isolate them, Private Endpoints combined with a Web Application Firewall provide access control at the network layer. Setup walkthrough with WAF and VNET integration.

Read more →
Architecture· Aws

Run Less

Running less software (through SaaS or PaaS) sometimes buys you more than building or hosting it yourself. Notes on the tradeoffs.

Read more →
Architecture· Azure

How to modernise Microsoft .NET applications - part II

Part II of the .NET modernization series: selecting a modernization approach (lift-and-shift, replatform, rearchitect, rebuild) and choosing an architectural pattern based on MASA, with lessons from breaking a monolith into macroservices.

Read more →
Architecture· Azure

How to modernise Microsoft .NET applications - part I

Part I of the .NET modernization series: in a Microsoft-shop landscape running .NET Framework 2.0 through 4.5 alongside SharePoint, Dynamics, and Office 365, this is how I inventoried the applications and set the criteria for prioritizing what to modernize first.

Read more →
Architecture· Azure

Integrating Azure API Gateway (Azure APIM) with Application Gateway and multiple custom domains

Exposing Azure APIM over the Internet in a controlled way by placing an Application Gateway in front and mapping multiple custom domains to different API sets.

Read more →
Gliding

Glider pilot skill test

Glider pilot skill test passed on 29 October 2019, in marginal VFR weather. Six takeoffs and landings with the flight examiner, including a simulated winch cable break at 100 meters.

Read more →
Off Topic

Mainhattan

Frankfurt's high-rise skyline, nicknamed Mainhattan, photographed from the banks of the Main river.

Read more →
Gliding

Clouds

In-flight photos from a 100 km cross-country flight, cruising close to cloudbase along a line of cumulus.

Read more →
Architecture

Web developer roadmap 2019

A visual roadmap of the technologies web developers should know in 2019, covering frontend, backend, and DevOps learning paths.

Read more →
Gliding· In Flight Videos

Flying a glider in Budapest

Cross-country gliding in the Budapest area with MAV Repülőklub at LHDK. Flight over the Hungarian plain with a two-seat glider.

Read more →
Gliding

First solo flight

Finally, near the end of the flight season, the time for my first solo flight in a glider has come.

Read more →
Architecture· Aws

Amazon AWS Solution Architect - Associate Exam Resources

A curated list of resources (whitepapers, FAQs, practice tests, video courses) that helped me pass the AWS Certified Solutions Architect - Associate exam.

Read more →
Crazy Danish Hacker· Lab

Crazy Danish Hacker - SDR Series - International Space Station

Crazy Danish Hacker traces the ISS overhead using RTL-SDR, a directional antenna, and open-source tracking software. A fun radio experiment that shows how much you can hear from low Earth orbit with modest equipment.

Read more →
Crazy Danish Hacker· Lab

Crazy Danish Hacker - Signal jamming

Crazy Danish Hacker demonstrates GSM signal jamming with a Raspberry Pi running RPITX: a low-power transmitter that can disrupt cellular reception in a controlled test environment. Illegal in the wild; instructive in a Faraday cage.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - Spy on anyone's location

Crazy Danish Hacker uses GSM sniffing techniques to correlate cell tower interactions and infer a target device's approximate location: a demonstration of how the GSM protocol leaks location metadata by design.

Read more →
Off Topic

City from above

Bucharest at dusk from the 36th floor of Sky Tower, on a cloudy evening. Three frames looking across the city center.

Read more →
Gliding

Final landing

Last landing of the day at LRCN Clinceni, with tail number 3350 rolling out just before an approaching thunderstorm reached the airfield.

Read more →
Gliding· In Flight Videos

Morning thermals

In-flight video from LRCN Clinceni on a June 2018 morning, with unusually strong thermals for that hour of day.

Read more →
Gliding· In Flight Videos

Flying Samba ULM at Topoloveni airfield

In-flight video from a Samba ultralight at LRTP Topoloveni airfield, a change of pace from gliders in a light two-seat powered trainer.

Read more →
Gliding

Back in business ... of flying

Start of the 2018 gliding season at LRCN Clinceni. Back at the airfield after the winter break, first flights of the year.

Read more →
Gliding· In Flight Videos

FAI GRAND PRIX SAILPLANE

Promotional video for the FAI Sailplane Grand Prix, the shortened racing format where all gliders start together and the first back across the line wins.

Read more →
Architecture· Gdpr

An IT architect perspective on GDPR - part II

Part II of the GDPR series: mapping specific GDPR requirements (right to be forgotten, right of access, data portability, consent management) to concrete IT architecture implications.

Read more →
Architecture· Gdpr

An IT architect perspective on GDPR - part I

An IT architect's practical view on GDPR, from large enterprise experience: sanctions, compliance, consent, security by design, DPIAs, and what actually changes in IT systems.

Read more →
Architecture· Enterprise architecture

Beyond TOGAF certification

Achieving the TOGAF certification is a milestone, but it's only the start. Notes on what enterprise architects actually need beyond the framework itself.

Read more →
Architecture· Security

Can Apple read your iMessages?

A look at iMessage encryption after Matthew Green's public request for Apple to publish the technical details. What is known about the protocol, and what Apple still keeps closed.

Read more →
Architecture· Books

The Kubernetes Book

A short review and recommendation of Nigel Poulton's The Kubernetes Book: a practical, hands-on introduction to Kubernetes concepts and cluster operations.

Read more →
Gliding

2017 Gliding season is over

End of the 2017 gliding season with 7 hours of flying logged, roughly half of the 15 hours required for the license. Training continues next year.

Read more →
Gliding· In Flight Videos

Landing a glider

Cockpit view of a glider landing at LRCN Clinceni in August 2017, from downwind through final to touchdown.

Read more →
Gliding· In Flight Videos

Low pass

Cockpit video of a glider low pass at LRCN Clinceni, a high-speed run down the runway before the pull-up and circuit for landing.

Read more →
Gliding· In Flight Videos

Winch launch

In-flight video of a glider winch launch at LRCN Clinceni, filmed from the cockpit as the cable pulls the aircraft to release altitude.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 1

Episode 1 of Crazy Danish Hacker's GSM Sniffing series: introduction to the topic, what the series will cover, and the legal boundaries of intercepting GSM traffic in a controlled lab.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 2 - Requirements

Episode 2: hardware requirements for GSM sniffing. RTL-SDR dongle with E4000 tuner, appropriate antennas, and a Linux workstation. Overview of the toolchain needed for later episodes.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 10 - SMS Decryption

Episode 10: SMS decryption. Feeding the captured Kc session key back into the GSM traffic capture to decrypt SMS bursts and recover the plaintext message.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 11 - Voice Decryption 101

Episode 11: voice decryption basics. How A5/1-encrypted GSM voice traffic is structured on the traffic channel and what's needed to move from decoded bursts to intelligible audio.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 12 - ESXi Server

Episode 12: setting up ESXi as the hypervisor for the GSM lab. Preparing a Linux VM to host the Kraken rainbow-table cracker and other heavier tools.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 13 - Server config install

Episode 13: installing and configuring the Linux server that will host Kraken. Storage layout, network setup, and preparing the environment for the A5/1 rainbow tables.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 14 - Getting the A5/1 Tables

Episode 14: obtaining the A5/1 rainbow tables used by Kraken to break the GSM stream cipher. Where they come from, storage size, and how they map ciphertext bits to key candidates.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 16 - Cracking SMS w/ Kraken

Final episode: end-to-end SMS cracking. Feeding captured GSM bursts into Kraken, recovering the A5/1 session key from the rainbow tables, and decrypting the target SMS in plaintext.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 3 - Identifying downlinks

Episode 3: identifying GSM downlink frequencies. Using a spectrum viewer to scan the GSM 900 and 1800 bands and pick out active downlink channels used by nearby cell towers.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 4 - GQRX Installation and usage

Episode 4: installing and using GQRX, an open-source SDR receiver front-end. First hands-on look at the GSM band with an RTL-SDR dongle.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 5 - Kalibrate RTL

Episode 5: using kalibrate-rtl to detect GSM base stations and measure the frequency offset of the RTL-SDR dongle. A calibration step required before serious sniffing work.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 6 - Locating cell towers

Episode 6: locating nearby GSM cell towers by decoding their broadcast identifiers. Combining kalibrate output with public cell tower databases to map the local RF environment.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 7 - Installing GR GSM

Episode 7: installing gr-gsm on Linux. Building the GNU Radio-based GSM decoding toolset from source: dependencies, compilation, first sanity check.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 8 - Using GR GRSM

Episode 8: using gr-gsm to capture GSM broadcast channels. Decoding the control channel data and viewing raw traffic in Wireshark with the gsmtap dissector.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 9 - TMSI KC Extraction

Episode 9: extracting the TMSI and Kc session key for a target GSM subscriber by correlating paging messages and SDCCH activity, a prerequisite for later voice and SMS decryption.

Read more →
Crazy Danish Hacker· GSM Sniffing

Crazy Danish Hacker - GSM Sniffing 15 - Kraken install and test

Episode 15: installing Kraken on the Linux server and running the first sanity-check queries against the A5/1 rainbow tables. Confirming the cracker is operational before pointing it at captured traffic.

Read more →
Lab· Sdr

Building a homemade FM repeater with a Raspberry PI, RPITX and RTL SDR dongle

A radio repeater is usually a radio tower that receives weak signals from handheld, desktop or other radio, and rebroadcasts the same signal at a higher power over a wide area at a different frequency. This allows communications to be extended over a much greater area.

Read more →