Direct-BT C++ Implementation Details (Part 1)

This is the first article covering Direct-BT‘s implementation details including jaulib.

See Direct-BT, Bluetooth Server and Client Programming in C++ and Java (Part 1) for a little introduction to Direct-BT.

Standard and Proprietary Communication Channels

As described, we were required to utilize the host Bluetooth implementation in the GNU/Linux kernel, i.e. BlueZ/Kernel directly without D-Bus to achieve best performance and access the native HCI, L2CAP/GATT and SMP communication channels directly. Continue reading “Direct-BT C++ Implementation Details (Part 1)”

Direct-BT, Bluetooth Server and Client Programming in C++ and Java (Part 1)

This is the first article covering Direct-BT  using version 2.7.1 and may give you a little introduction into this project.

See Direct-BT C++ Implementation Details (Part 1) for some insight view.

Overview

Direct-BT provides direct Bluetooth LE and BREDR programming, offering robust high-performance support for embedded & desktop with zero overhead via C++ and Java.

It supports a fully event driven workflow from adapter management, device discovery to GATT programming, using its platform agnostic HCI, L2CAP, SMP and GATT protocol implementation.

Multiple Bluetooth adapter are handled, as well as multiple concurrent connections per adapter.

Peripheral server device programming is supported as well as the central client, which is also used for Java and C++ self unit testing across two or more Bluetooth adapter. Continue reading “Direct-BT, Bluetooth Server and Client Programming in C++ and Java (Part 1)”

What is Direct-BT? Where is JogAmp 2.4.0?

What is Direct-BT?

I happily joined Xerxes’s call to enhance the
Bluetooth experience on embedded GNU/Linux for Zafena.

This ended up in a new Bluetooth LE (almost done) and BREDR (in progress)
C++-11 implementation named Direct-BT.

It exposes a modern Java binding to the refactored original TinyB. Continue reading “What is Direct-BT? Where is JogAmp 2.4.0?”

Debian General Resolution: Init systems and systemd on 12/7 – 12/27

Debian General Resolution: Init systems and systemd

Just in case they vote on Choice 1: F: Focus on systemd,
i.e. completely disabling another init script, I have to pick up a new distribution.

Today, I mostly run Debian on desktop and server.
Most server use a non-systemd init system for sanity.

Easing systemd dependencies via systemd-shim, libsystemd0
and using sysvinit. Continue reading “Debian General Resolution: Init systems and systemd on 12/7 – 12/27”

Resurrecting a dying Species? Bring back Java™ to the Browser?

While I was doing the admin work for the next JogAmp release 2.4.0 I added some old video teaser supporting the point of enabling high performance hardware accelerated features to anything Java™’ish for any platforms.

It rang some belts that all these demos were easily and interactive launched used Applets within the browser.
Sadly today, browser don’t support such plugin’s anymore, which enabled simplified launching of Java™ Applet’s and its seamless integration into the web page.

I well remember the debates back then, about bloated browsers and security issues. But what do we have today? Bigger (or bloated) browsers containing the VM implementation itself, only that this time it is not Java™ but a JavaScript VM. Not a big qualitative change, but a restriction to choice, IMHO. This move only disabled third parties enabling their content via the browser interface. Almost sounds like the old Microsoft and Firefox browser wars, only that this time all browser vendor are aligned and believe to be the good guys now 😉
Most notable for me is that the security issues has not changed here at all. Continue reading “Resurrecting a dying Species? Bring back Java™ to the Browser?”

Cross Compilation to Arm64 for OpenJDK, JogAmp on GNU/Linux, iOS, ..

Finally pushed our crosstool-ng-projects configuration to our SCM repositories and published the latest signed & hashed binaries here.

Changes to the last April toolchain builds are multiple:

  • Updating crosstool-ng to latest release 1.24.0
  • Aligning configuration with Debian 10 (Buster):
    • glibc 2.28
    • binutils 2.31.1
    • gcc 8.3.0 (unchanged)
  • Using 4-tuple symbolic links to 3-tuple, dropping vendor. This allows drop-in usage for OpenJDK cross-compilation via –with-toolchain-path=/usr/local/x-tools/aarch64-unknown-linux-gnu/bin

Continue reading “Cross Compilation to Arm64 for OpenJDK, JogAmp on GNU/Linux, iOS, ..”

Debian 10 (Buster) ZFS Live Image Recipe

First of all KUDOS to Debian’s new release this month, Debian 10 (Buster).

Notable to me is the effort for reproducible binaries, which aligns with my security Source Certification Contract (SCC) goals of Are You Who You Say You Are? Trust the Source, User.
Debian’s Buster release PR accordingly:

Thanks to the Reproducible Builds project, over 91% of the source packages included in Debian 10 will build bit-for-bit identical binary packages. This is an important verification feature which protects users against malicious attempts to tamper with compilers and build networks. Future Debian releases will include tools and metadata so that end-users can validate the provenance of packages within the archive.

Continue reading “Debian 10 (Buster) ZFS Live Image Recipe”