Roland Weigelt

Born to Code

  • Zeit für Veränderungen

    tl;dr: Ich ziehe mich aus der lokalen .NET Community (User Group Bonn-to-Code.Net, dotnet Cologne Community-Konferenz) zurück. Die gewonnene (Frei)zeit investiere ich, um in den nächsten Jahren ein umfangreiches Hobby-Projekt neu zu implementieren und dabei mit Hilfe der Universal Windows Platform bisher nicht umsetzbare Visionen zu realisieren.

    Eine Bestandsaufnahme

    Ich kann nicht gerade behaupten, dass mir in meiner Freizeit langweilig würde…

    Da sind zum einen meine Aktivitäten in der .NET Entwickler-Community:

    • 2006 gründete ich die Bonner .NET User Group “Bonn-to-Code.Net”, damit verbunden wurde ich Mitglied im Microsoft Community Leader/Insider Program, später TechConnect.
    • 2008 war ich zum ersten Mal an der Organisation einer Community-Konferenz beteiligt (AfterLaunch 2008)
    • 2009 organisierten Albert Weinert, Stefan Lange und ich die erste dotnet Cologne, später stieß mit Melanie Eibl ein weiterer wichtiger Baustein zum Team hinzu.

    Darüber hinaus spielt Basketball eine große Rolle in meinem Leben. Mittlerweile nicht mehr aktiv, sondern als Fan und Unterstützer des lokalen Basketball-Bundesligisten Telekom Baskets Bonn:

    • Von 1996 bis 2006 zunächst als Co-DJ (mit einer eigenen DJ-Software),
    • Ab 2006 betreute ich dann die Videowände in der Halle. Einerseits (man ahnt es schon) mit Software, andererseits mit Inhalten (Visual Design, Redaktion).
    • Mit der Installation von LED-Werbebanden 2013 wurde aus einer ehrenamtlichen Aufgabe schließlich eine bezahlte Nebentätigkeit mit einem gehörigen Teil “Bürokram” (Kommunikation mit Sponsoren, etc.).

    Zwischendrin veröffentliche ich auch gerne mal Software für Entwickler (GhostDoc 20032009, Emaroo ab 2010) und dieses Weblog gibt es auch bereits seit 2003.

    Bei allen diesen Aktivitäten geht es mir darum, etwas zu erschaffen, “etwas auf die Beine zu stellen”. Das bereitet mir viel Freude, bedeutet aber auch eine Menge Arbeit. Der zeitliche Spielraum ist mittlerweile sehr gering geworden und der Stresslevel, insbesondere wenn Basketball-Saison und dotnet Cologne-Vorbereitung parallel laufen, ist manchmal einen Tick zu hoch.

    Die Entscheidung

    Um in meiner Freizeit wieder mehr freie Zeit zu haben (die ich aber gleich wieder nutzen möchte, dazu gleich mehr) habe ich folgende Entscheidung getroffen:

    • Ich werde die Bonner .NET User Group “Bonn-to-Code.Net” nicht mehr weiterführen. Wie es mit der Bonner .NET Community weitergeht/weitergehen kann, dazu schreibe ich mehr auf den Kommunikationskanälen der User Group.
    • Damit erlischt auch meine Mitgliedschaft im Microsoft Community-Programm.
    • Ich werde mich aus der Organisation der dotnet Cologne zurückziehen, auch wenn es mir sehr schwerfällt. Man wird mich aber definitiv auf der dotnet Cologne 2018 finden können und hier und da werde auch ich Albert, Stefan und Melanie weiterhin unterstützen (z.B. mit der Software für die InfoScreens, mit der einen oder anderen Grafik in Adobe Illustrator oder wenn verhandlungssicheres Englisch gefragt ist).

    Der Plan

    Die Arbeit an der Software für die Videowände und LED-Werbebanden ist für jemanden wie mich, der ohnehin immer sehr am Visuellen interessiert war, einerseits sehr befriedigend, andererseits – bisher – aber auch immer ein wenig frustrierend. Die Vision, Darstellungen in “Fast-US-Sportfernsehen-Qualität” zu entwickeln (animierte Statistiken etc.), war für mich nie ganz zu erreichen. Denn die Windows Presentation Foundation (WPF) hat ihre Performance-Probleme architekturbedingt nie in den Griff bekommen, gleichzeitig kam ein tiefer Einstieg in DirectX wegen des (Zeit-)Aufwands nicht in Frage.

    Die Universal Windows Platform (UWP) sah von Anfang an sehr vielversprechend aus, weshalb ich im Sommer 2016 einen ersten Anlauf unternahm, mich darin einzuarbeiten – der im Herbst von der Basketball-Saison (Heimspiele in Bundesliga und europäischem Wettbewerb) und den Arbeiten für die dotnet Cologne jäh gestoppt wurde.

    In diesem Sommer habe ich dann angefangen, die WPF-basierte Software für die LED-Banden komplett neu unter UWP zu entwickeln. Mit ermutigenden Ergebnissen. Unter WPF bringt die Aufgabe, elf Videos (für elf Werbebanden) parallel abzuspielen und gleichzeitig die elf nächsten Videos vorzuladen, auch einen leistungsfähigen Rechner an seine Grenzen:

    • Die Videos ruckeln. Und das auf einem Rechner, der sonst umfangreiche 3D-Darstellungen flüssig in 2560x1600 Pixeln darstellt.
    • Das Abspielen ist von mysteriösen Stabilitätsproblemen im Dauerbetrieb geplagt (spontane Abstürze im Dauerbetrieb mal nach zwei, mal nach fünf Stunden). Eine Suche im Web zeigt: Ich bin nicht alleine.

    Hingegen läuft der Proof-of-Concept mit UWP superweich, einen Testlauf habe ich nach 20 Stunden selbst beendet.

    Mein Ziel ist nun, die Software bis zum Saisonbeginn “alltagstauglich” zu machen. Anschließend gehe ich daran, nach und nach auch die restliche, in den letzten zehn Jahren entstandene Software zu ersetzen. Damit dürfte ich einige Spielzeiten beschäftigt sein…

    Fazit

    Ich sehe in der Universal Windows Platform und ihren Fähigkeiten (Stichwort: Composition) eine riesengroße Chance, meine Visionen in der von mir gewünschten Qualität umzusetzen. Und der Ausblick auf die Zukunft auf der diesjährigen Microsoft Build-Konferenz, sprich Fluent-Design, war für mich ein einziges “oh ja, so etwas kann ich gebrauchen!”.

    Daher ist es jetzt für mich höchste Zeit, ernsthaft einzusteigen. Das heißt lernen, Erfahrungen sammeln, Zeit investieren – und deshalb klare Prioritäten zu setzen, auch wenn es vielleicht schwerfällt.

  • Emaroo 3.2.0 Released

    Emaroo is a free utility for browsing most recently used (MRU) file lists of programs like Visual Studio, Word, Excel, PowerPoint and more. Quickly open files, jump to their folder in Windows Explorer, copy them (and their path) to the clipboard - or run your own tools on the MRU items! And all this with just a few keystrokes or mouse clicks.

    About This Release

    When writing and testing custom actions, having to switch back and forth between tabs quickly becomes cumbersome. In version 3.2.0 you can edit a custom action directly on an application’s page via a new context menu on the custom actions.

    Another improvement for custom actions is that the $(DirPath) macro now also works for specifying the executable. You can use this e.g. to define a custom action for opening an “README.md” file in the directory of a Visual Studio solution (if it exists):

    • Start Emaroo.
    • Switch to the “Settings” tab.
    • Select e.g. Visual Studio 2017 in the list under “Applications”.
    • “Add New” custom action:
      • Name: README.md
      • Executable: $(DirPath)\README.md
      • Arguments: (empty)
      • Start in: (empty)
    • Close the dialog with “OK”.

    Now switch to the Visual Studio 2017 tab and select a solution.

    • If the solution’s directory does not contain a README.md file, the custom action will be disabled.
    • If the solution’s directory does contain a README.md file, executing the custom action will open the application registered for Markdown files (I really like Typora, by the way).

    What Else is New?

    • Added: The icon of a custom action now indicates whether it requires administrative privileges.
    • Added: Emaroo now handles some use situations involving quote characters in custom actions automatically:
      • If the arguments of a custom action consists of only the $(DirPath) or $(FilePath) macro, quotes are added when closing the dialog with OK.
      • Quotes around executable paths are removed automatically, which is useful if you copied the path in the Windows Explorer via the Copy as Path context menu entry. In earlier versions the quotes would prevent the custom action from working at all.
    • Fixed: When opening a Visual Studio solution in a higher version of Visual Studio, the “always open as administrator” setting (via a .openAsAdmin marker file) wasn't honored.
    • Removed: Support for IrfanView - it didn't work correctly in all scenarios. I have a basic idea how to fix the problem, so support will come back as soon as I find the time for research, implementation and testing.

    Read the complete version history on the Emaroo website.

  • Emaroo 3.1.0 Released

    Emaroo is a free utility for browsing most recently used (MRU) file lists of programs like Visual Studio, Word, Excel, PowerPoint and more. Quickly open files, jump to their folder in Windows Explorer, copy them (and their path) to the clipboard - or run your own tools on the MRU items! And all this with just a few keystrokes or mouse clicks.

    About this Release

    A long weekend (with much more time at my hand than I originally thought) was a good opportunity to re-think the UI of the feature that has given me the most headaches in Emaroo: The import/export of configuration settings.

    Importing/exporting the configuration is necessary (at least for me), because I use Emaroo daily, on virtually every computer I get my hands on, and at the same time tricky, because

    • Not all systems require the same configuration – they configurations are similar, but not the same.
    • I make changes to the configuration in different places.
    • I don’t want to care about making changes in a specific order and/or syncing them the configurations immediately.

    In Emaroo 3.0.0, the dialog for importing configurations showed (more or less) how the configuration would look like after the import – OK at first, but getting rather complex pretty fast.

    With Emaroo 3.1.0, the import dialog now only shows the delta between the two configurations.

    Here’s an example where I import a pretty large configuration into a similar configuration. The two configuration differ only regarding a specific custom action (“Search in FileLocator”):

    • Visual Studio 2017 doesn’t have this custom action yet, so it should be added by default – with an option to ignore it.
    • Visual Studio 2015 already had the action, but the imported custom action is newer, so it should replace the existing by default.
    • Visual Studio 2013 also had the action, but the imported custom action is older, so the default is to keep the existing custom action – with an option to choose the imported one.

    This is what it looks like:

    20170605_ImportDialog

    Looking at the screenshot one might wonder why the original solution didn’t look like this in the first place… As often the case, getting to a seemingly easy solution takes a couple of iterations. And sometimes even removing features.

    In this case, the import dialog in Emaroo 3.0.0 had the feature to remove parts of the configuration during import. That was possible because of the approach to show the result of the import. But possible does not necessarily mean useful. Deciding to leave out the feature opened up the opportunity to go with the delta approach, which in the end led to a better UI.

    Emaroo 3.1.0 in a Nutshell

    • Changed: Major overhaul of import dialog UI, greatly reducing complexity when importing into configurations that have many custom actions and/or installed applications.
    • Changed: UI tweaks to export dialog.
    • Added: Check for new version on help page (only on-demand, not performed automatically).
    • Changed: The number of custom actions is no longer limited to 10, even though only the first 10 actions can be executed via hotkey. Removing the limit is intended to support scenarios where a larger number of custom actions exists temporarily (e.g. when trying out custom actions).
    • Fixed: Copy/paste of custom actions didn't always change the ID when it was necessary.
    • Fixed: Various corner cases in import/export.

    Read the complete version history on the Emaroo website.

  • Emaroo 3.0.0 Released

    What is Emaroo?

    Emaroo is a free utility for browsing most recently used (MRU) file lists of programs like Visual Studio, Word, Excel, PowerPoint and more. Quickly open files, jump to their folder in Windows Explorer, copy them (and their path) to the clipboard - or run your own tools on the MRU items! And all this with just a few keystrokes or mouse clicks.

    20170531_ScreenShot400x254

    Getting Started

    • Download, unzip and run the MSI
    • Start Emaroo (e.g. by hitting the Windows key, typing “Emaroo” and pressing Enter)
    • Tip: Right-click the “Emaroo” task bar item and choose “Pin this program to the task bar” from the context menu. If you drag the task bar item to the left-most position, you can start Emaroo anytime by hitting Win+1.
    • Press F1 for a quick reference of the features.

    What’s New?

    • Added: User-defined custom actions that can be defined per-application, called via the hotkeys Ctrl+1, Ctrl+2, ... Ctrl+9, Ctrl+0.
    • Added: Export/Import configuration settings.
    • Added: Support for Visual Studio 2017.
    • Added: Support for Word, Excel, PowerPoint 2016.
    • Added: Support for Photoshop CC.
    • Added: Support for Illustrator CC.

    Read the complete version history on the Emaroo website.

  • MarkdownTextBlock Improvements in UWP Community Toolkit 1.4

    Version 1.4 of the UWP Community Toolkit has been released, read more about it on the Windows Developer website and in the release notes.

    In my blog post about version 1.3, I wrote about the then-new the MarkdownTextBlock control which had a couple of missing features. While writing the blog post, improvements were announced for 1.4 on the Universal Windows Platform UserVoice page and I can now confirm that they are actually in the new release:

    • Images are supported (They cannot be embedded inside a hyperlink, though).
    • Triple backticks (```) for fenced code blocks are included (without language-specific syntax highlighting, which frankly would be a bit too much to ask – but a way to implement your own would be nice).
    • Tables work as expected.

    The fastest way to try out the MarkdownTextBlock (and many others controls and features) is in the UWP Community Toolkit Sample App in the Windows Store.

  • Design/UI/UX-Praxiswissen für Entwickler am 4. Mai in Köln

    Am 4. Mai leite ich im Rahmen der dotnet Cologne 2017 einen Workshop mit dem Titel “Von Null auf GUI - Design/UI/UX-Praxiswissen für Entwickler”.

    In diesem Workshop vermittle ich Entwicklern ohne UI/UX-Vorkenntnisse sowohl ein Grundverständnis für die Materie, als auch das notwendige Handwerkszeug für die tägliche Arbeit. Vortragsteile und praktische Übungen wechseln sich dabei ab, um das Erlernte in Einzel- und Gruppenarbeiten direkt vertiefen zu können.

    Ich spreche u.a. über folgendes:

    • Wissenswertes über die visuelle Wahrnehmung des Menschen: Warum ist man manchmal einfach "blind", wenn man einen Button in einer GUI sucht, aber nicht findet?
    • Visuelles Design für Nicht-Designer: Ein paar Grundregeln, mit denen man jede Anwendung aufwerten kann.
    • User Experience: Wie Gefühle das Handeln von Anwendern bestimmen und wie das Wissen darüber hilft, bessere Bedienoberflächen zu gestalten.
    • Das passende Werkzeug zur richtigen Zeit: Mit Stift und Papier Zeit und Geld sparen - auch wenn man gar nicht zeichnen kann.
    • Denken in UI-Patterns: Mit der richtigen Herangehensweise besser entscheiden können, was man sich von anderen UIs abgucken kann.

    Wer als Entwickler gerne bessere GUIs gestalten würde, sich aber bisher die Frage nach einem Einstieg mit verwertbaren Erkenntnissen für den Alltag gestellt hat, für den ist dieser Workshop genau das Richtige.

    Anmeldung und Infos auf https://dotnet-cologne.de/Anmeldung.ashx.

  • UWP Community Toolkit 1.3 Released – now with Markdown

    A new version of the UWP Community Toolkit has been released, this article on the Windows Developer website has the details on what’s new.

    One thing that caught my eye was the MarkdownTextBlock XAML Control that does exactly what the name implies: You set the Text-property with some Markdown text and it shows the rendered Markdown. You can change the styling of the output (font size, color, etc.) to match your application or a specific desired document style. And the LinkClicked event tells you when a link has been clicked.

    If you want to see it (and all the other toolkit features) in action, download the UWP Community Toolkit Sample App in the Windows Store.

    image

    How good is it?

    If you’ve used Markdown in more than one application or website before, you’ll know that there are smaller and larger differences here and there (the website for CommonMark has more on that).

    Playing around with the control to learn more, I found the following:

    While this list makes it sound like there are a lot of things that aren’t working (yet) or are missing, it is important to consider use cases for the control.

    • Do you plan to display arbitrary Markdown like Readme.md files from GitHub?
    • Or do your want a control to display explanation texts on a form (where you write all the markdown)?

    If the latter is the case, the control most likely will do its job already in version 1.3, with the tables and images coming in version 1.4 being a welcome addition, of course.

  • 20 Years at the Same Company

    Ten years ago I wrote a blog post that I simple re-use here:

    Today, exactly ten 20 years ago, I started working at Comma Soft here in Bonn, Germany, coming straight out of university. Just amazing how fast time has gone by. Ten years at the same company is even more amazing considering the fact that I originally had planned to stay maybe one or two years, just enough to gain some professional experience, and then move on.

    But towards the end of 1997 I joined what would later become the infonea INFONEA product team. Working in a team of nice and intelligent people (neither nice bozos nor intelligent back-stabbers are helpful in the long run), using a wide array of different technologies over the years, made me stay. […]

    The two TFT screens in the photo of the original blog post have been replaced by three 24” screens. My keyboard is now one without number keys (same key switches as the old one), but the desk is still the same and I’m still in the same office.

    I’m no longer working as a (full-time) software developer, having moved to user experience and product design. I also took on the herculean task of consolidating all documentation efforts into one single-source system (using MadCap Flare), which has both technical as well as editorial aspects.

    Code, graphics, concepts, words – I’m doing it all; things are definitely not getting boring here!

  • dotnet Cologne 2017 am 4./5. Mai 2017

    image

    Am 4. und 5. Mai 2017 findet in Köln zum neunten Mal die dotnet Cologne statt. Die mit 400 Teilnehmern größte deutsche Community-Konferenz für Software-Entwickler im Microsoft-Umfeld wird von Stefan Lange und Melanie Eibl (dotnet Köln/Bonn e.V.), Albert Weinert (.net user group Köln) und mir (Bonn-to-Code.Net) organisiert. Zusammen mit Sprechern, Sponsoren und Helfern vor Ort veranstalten wir die dotnet Cologne als eine Konferenz, die sich jeder leisten kann und die wir selbst gerne besuchen würden.

    Das “…die wir selbst gerne besuchen würden” nehmen wir dabei durchaus ernst. Ebenso ernst nehmen wir das Feedback der Teilnehmer, das einerseits sehr positiv ist (was natürlich motiviert), anderseits viele konstruktive Vorschläge liefert.

    Ein häufiger Wunsch der Teilnehmer war ein eigener Workshop-Tag, um ein Thema einmal etwas ausführlicher behandeln zu können. Da die Buchung von Räumlichkeiten – vorsichtig ausgedrückt – eine relativ langfristige Angelegenheit ist, hat es etwas gedauert, aber am Donnerstag, den 4. Mai, ist es endlich soweit. Genaue Informationen zu den Workshops folgen noch, aber das Angebot verspricht sehr interessant zu werden!

    In eine ganz andere Richtung gehen die sog. “Lightning Talks”, Kurzvorträge von maximal 15 Minuten (plus 5 Minuten für Fragen). Diese Vorträge sind einerseits dafür gedacht, kurz und knapp in ein Thema einzuführen. Andererseits geht es uns dabei darum, das unter den Teilnehmern vorhandene Know How besser zu nutzen. Nicht jeder hat die Zeit, eine komplette 60-Minuten-Session vorzubereiten, aber ein 15-Minuten-Vortrag ist sowohl zeitlich als auch inhaltlich vielleicht eine andere Angelegenheit.

    Daher an dieser Stelle der Aufruf (gültig bis zum 3. Februar 2017):

    Kurzvorträge gesucht!

    • Du kennst ein cooles Open Source-Tool und möchtest es vorstellen?
    • Du hast positive Erfahrungen mit einer Bibliothek oder einem Framework gemacht?
    • Du hast Dich mit einem interessanten Konzept beschäftigt, von dem mehr Leute erfahren sollten?
    • Du möchtest andere vor Fallstricken warnen ("Fünf Dinge, die ich gerne früher über X gewusst hätte")?
    • Du hast Tipps zum Thema Softskills und Teamdynamik?
    • Du kennst Yoga-Übungen für Bildschirmarbeiter?
    • ...oder Du hast noch eine ganz andere Idee?

    Dann gehe schnellstens auf http://dotnet-cologne.de/LightningTalks.ashx, dort gibt es alle Infos.

    Als Belohnung winkt ein kostenloses Ticket für den 5. Mai, komplett ohne Anmeldestress!

  • Black Friday Deal for OzCode

    Back in 2015, I discovered OzCode, an awesome C# debugging tool, at an exhibitor booth at the Microsoft Build conference. Not only was the in-person-demo at the booth convincing, the website also did an amazing job explaining the features.

    When I returned home, I bought a personal copy for my hobby projects (I rarely write code at work these day, focusing on product design, UX and documentation) – and I enjoy using ever since.

    Visit http://www.oz-code.com/, scroll down a bit and watch the videos for “Magic Glance”, “Search” and the other features. You’ll see why I’m such a fan. I can wholeheartedly recommend this tool, which costs $79 for a personal license.

    The reason why I’m writing about OzCode now: There’s an “Black Friday” offer for a personal license at 50% OFF, valid until November 27, 2016. Just follow the link on this tweet: https://twitter.com/i/web/status/801805038658224128.