Drawing a Yellow Rectangle on Android

As an addendum to my previous article, there now also is an Android App „YellowRectangle“ that draws a yellow rectangle and terminates on the first touch event. It runs on Android version 4.0.3 (Ice Cream Sandwich MR1) and upward. It is written in Java and C++ and uses the Allegro game development library (http://liballeg.org/).

YellowRectangle running on Android 7.0 in the Genymotion emulator.

Weiterlesen … »

Drawing A Yellow Rectangle

Premise

On the weekend i wanted to perform the task of drawing a yellow rectangle programmatically onto the screen of a Personal Computer:

  • The program would feature a viewport that occupies the entirety of the primary display of the PC.
  • On the viewport, 640 pixels could be adressed in width, 480 in height.
  • The viewport would be drawn in black color by default.
  • A yellow, filled rectangle would be drawn from an upper left corner at pixel coordinates 10 from the left, 20 from the top to a lower right corner at 100 from the left, 75 from the top.

  • When having drawn the yellow rectangle, the program would indefinately await any keypress and then shut down.

I solved this task using several different programming languages and toolkits, having the following goals for the implementation:

  • The program does a simple thing, so it should require little processing and memory resources.
  • The program should still work in 24 months from now.

Update der Webseite

Ich habe die Webseite ein bisschen aufgehübscht. Im Wesentlichen habe ich nur ein tolles Hintergrundbild eingebunden, dass ich mit MyPaint, Inkscape und The Gimp erstellt habe. Ich hoffe, der Effekt ist dennoch überwältigend! Auch die Galerie wurde besser in das angestrebte gesamte Erscheinungsbild der Seite eingebunden, hier ist jedoch noch etwas Feinarbeit erforderlich. Das Musik-Archiv wurde auf eine einzelne Playlist im Shuffle-Modus reduziert.

Ich habe den Text meiner Datenschutzerklärung überarbeitet. Es wird nun klar darauf hingewiesen, dass diese Datenschutzerlärung sich mit der Erhebung und Verwendung personenbezogener Daten befasst, die durch den Besuch dieser Webseite über die Besucherinnen und Besucher dieser Webseite auf Systemen unter meiner administrativen Aufsicht anfallen. Ein neuer Abschnitt befasst sich mit der Verwendung des Kontaktformulars und damit damit verbundenen gesetzlichen Aufbewahrungsfristen für geschäftsmäßige Bestell- und Auftragsinformationen. Für eine Erklärung zu datenschutzrechtlich relevanten Fragen abseits des Betriebs dieser Webseite sei auf meine allgemeinen Geschäftsbedingungen verwiesen, und dort insbesondere auf den Abschnitt 8, „Datenschutz“.

Auf macOS HTTP(S) ohne Entwickler-Werkzeuge protokollieren

Die Browser-Entwicklerwerkzeuge sind nett, aber der Netzwerktraffic-Reiter hat (insbesondere bei FF) ein Problem, er reisst die Performance so weit runter, dass einem das Gesicht einschläft.

Auf macOS verwende ich „mitmproxy“, um HTTP und HTTPS zwischen Browser und Server zu protokollieren. Das Verfahren erfordert die Installation von „homebrew“ (ein Paket-Manager für macOS) und damit dann „mitmproxy“ (ein „Man-in-the-Middle“ Web-Proxy, der im Terminal läuft, und alles mitprotokolliert, was Browser und Webserver kommunizieren).

Weiterlesen … »

Creative E-MU 1616m PCIe on Windows 10 64bit

On a PC running Win10Pro64 that has no Firewire port i needed a 4in4out audio solution functioning as an ASIO device.

So i dug out my E-MU 1616m PCIe, and – fearing that it would show severe compatibility issues – installed the most recent driver (EmuPMX_PCDrv_US_2_30_00.exe, July 15th 2011). To my surprise, the device started working immediately. So far i have not found any unsupported or problematic features (at 48 kHz samplerate i use WDM audio output, symmetrical input with zero-latency monitoring and ASIO sends and output to speakers through a 4-band EQ as DSP insert).

I think the E-MU 1616m PCIe is a great device:

  • 10 years after i bought it, it works as on the first day.
  • It has good and solid performance, i permanently run it with 10ms buffer size, which in Ableton Live adds on to 23.3 ms global round-trip latency, and i am yet to encounter any dropout or instability.
  • PatchMix looks and feels very functional (apart from the brushed Aluminium skin which i find quite funny and nostalgic). Since it has spent many years in maturity, having no „software development“ bloating it with useless features and workflows, it runs rock solid and lightning fast on a modern PC.
  • The breakout box (called „Microdock“) has massive connectivity:
    • copper S/PDIF, AES or EBU (really!),
    • optical ADAT or S/PDIF,
    • four balanced 6.35mm input jacks,
    • two XLR/jack combo inputs,
    • six balanced 6.35mm output jacks,
    • three unbalanced 3.5mm stereo output jacks,
    • a dedicated 6.35 mm headphone output jack with hardware volume control and
    • a stereo pair of RCA inputs plus GND (Phono).
  • It works with Linux (using emutrix instead of PatchMix).

This is the best Creative product ever – ah wait, it’s not really by Creative … 😉

xdraw 1.1

I was very pleased to notice that my small Xlib-utility xdraw has made it across the years unscathed. It compiled after 11 years of complete lack of code or build system maintenance. Hail to the stability of the X Library!

However, i found the visual quality of the drawing results a bit lacking – the drawn lines are too uneasy. So i have added weighted average smoothing to the drawn lines.

xdraw in action.

I have released this improvement as version 1.1 of xdraw here: https://gitlab.tk-sls.de/tilman/xdraw/tree/1.1

In Powershell das Piepen bei Backspace abstellen

Folgendes Verfahren habe ich auf Windows 10 Home durchgeführt:

In einer Powershell werden einige Vorbereitungen durchgeführt:

# Profil erstellen, falls nicht vorhanden
if (!(test-path $PROFILE)) {
    new-item -type file -path $PROFILE -force
}

# Skript-Ausführungs-Richtlinie ändern:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

# Profil-Skript editieren:
notepad $PROFILE

Hinweis: Die Ausführungsrichtlinie RemoteSigned erlaubt das Ausführen von Skripten auf den lokalen Datenträgern. Dabei gelten gewisse Ausnahmen (eine „aus dem Internet heruntergeladene Datei“ zum Beispiel ist nicht sofort vertrauenswürdig sondern führt beim Versuch der Ausführung zu einem zusätzlichen Bestätigungsdialog). Etwas sicherer wäre die Richtlinie AllSigned, doch das würde bedeuten, dass wir unser  Profil-Skript Windows PowerShell-Skript.ps1 signieren müssen, was ohne das .NET SDK nicht machbar ist. Hurra! 🙂

In das Profil-Skript wird folgender Befehl geschrieben:

# Akustisches Signal in der Powershell deaktivieren
Set-PSReadlineOption -BellStyle None

… und das Generve hat ein Ende.

Angepasstes Bootstrap-CSS selbst erstellen

1. NodeJS und npm installieren.

Wie das geht, hängt vom Betriebssystem ab.

Auf jeden Fall sollte man ein möglichst aktuelles NodeJS verwenden. Ich habe das folgende Verfahren mit v7.8.0 durchgeführt.

2. grunt-cli installieren.

~$ npm install -g grunt-cli

3. Aktuellen (stabilen) Source von bootstrap holen.

~$ git clone https://github.com/twbs/bootstrap.git
~$ cd bootstrap
bootstrap$ git checkout v3.3.7

4. Abhängigkeiten installieren.

bootstrap$ npm install

5. Bootstrap übersetzen.

bootstrap$ grunt dist

6. Verzeichnis für eigene Anpassungen erstellen.

bootstrap$ mkdir ../boostrap-custom
bootstrap$ cd ../bootstrap-custom

7. Dateien für eigene CSS-Anpassungen erstellen:

bootstrap-custom$ touch custom-variables.less custom-other.less
bootstrap-custom$ echo '
@import "../bootstrap/less/bootstrap.less";
@import "custom-variables.less";
@import "custom-other.less";
@import "../bootstrap/less/utilities.less";
' > custom-bootstrap.css

8. LESS CSS-compiler installieren:

bootstrap-custom$ npm install -g less

und schließlich:

9. Angepasstes bootstrap-CSS erstellen:

bootstrap-custom$ lessc -x custom-bootstrap.css > custom-bootstrap.min.css

Damit steht ein angepasstes Bootstrap-CSS als custom-bootstrap.min.css zur Verfügung. Diese kann anstelle von bootstrap.min.css verwendet werden.

Quellen: