Archive for the ‘Software Development’ Category
Posted by jpluimers on 2020/08/12
This and built-in markdown support made the switch to Visual Studio code from Atom.io so much easier: [WayBack] PlantUML – Visual Studio Marketplace.
Atom.io was already on my list of tools to say good bye to: though a good project to show the versatility of the Electron Framework, over time – like Google Chrome – it had become a memory and CPU hog and a drag to use and update.
Integrating debuggers and other parts of the development life cycle involved too much fuzz, for which Visual Studio code (also known as vscode) was much easier from the start.
Probably Visual Studio code did not suffer from what the Dutch call Law of the handicap of a head start: it is much more responsive and versatile than Atom.io. Also the plugins – despite having come to the market later – feel way more mature in Visual Studio code than Atom.io.
Finally, the PlantUML support extension for vscode is so much nicer than in Atom.io, it for instance supports live updating and in addition to local rendering, rendering through a PlantUML server (see [WayBack] GitHub – plantuml/plantuml-server: PlantUML Online Server).
Source code is at [WayBack] GitHub – qjebbs/vscode-plantuml: Rich PlantUML support for Visual Studio Code.
Read the rest of this entry »
Posted in .NET, atom editor, Development, Diagram, PlantUML, Power User, Software Development, Text Editors, UML, Visual Studio and tools, vscode Visual Studio Code | Leave a Comment »
Posted by jpluimers on 2020/08/12
For a project I’m going to be in need to compare version numbers.
I’m not sure yet if I need wildcards, or can leave them out (but for partial semantic versioning, I might need them).
Below a bunch of links that should get me started.
From a quick glance: versioning is hard, comparing even harder.
On versioning in general
Numeric versioning (usually without wildcards):
On semantic versioning (SemVer for short):
On the C# Version class (which handles most of semantic versioning except: leading zero’s, very large numbers, non-numeric release specifiers)
Interesting idea, but not sustainable: using floating point values to compare versions:
On wildcards:
Via: [WayBack] Anyone tips for a TVersion structure that supports at max quad digits or wildcards and comparison? Like 3.2 matching 3.2.5.7, but not matching 3.3.4.28 ? – Jeroen Wiert Pluimers – Google+
–jeroen
Posted in *nix, *nix-tools, Development, Power User, rpm, Software Development, Versioning | Leave a Comment »
Posted by jpluimers on 2020/08/11
Since I keep forgetting that PowerShell is part of WMF (Windows Management Framework) and about the compatibility/installation matrix: [WayBack] Installing Windows PowerShell | Microsoft Docs:
The installation package for PowerShell comes inside a WMF installer. The version of the WMF installer matches the version of PowerShell; there’s no stand alone installer for Windows PowerShell.
If you need to update your existing version of PowerShell, in Windows, use the following table to locate the installer for the version of PowerShell you want to update to.
For historic reference:
Downloads
To upgrade to WMF 5.0 from 4.0 you need to install .net 4.5 or later on your machine first. Then install WMF 5.0 RTM.
–jeroen
Posted in CommandLine, Development, PowerShell, PowerShell, Scripting, Software Development | Leave a Comment »
Posted by jpluimers on 2020/08/11
Old but useful: [WayBack] GitHub – blackrosezy/gui-inspect-tool: Gui Inspect tool for Windows, a collection of Windows UI inspection tools:
- AccEvent.exe
- AccExplorer32.exe
- Inspect.exe
- SPYXX.EXE
- swapy-ob-0.4.3.exe
- UISpy.exe
- ViewWizard.exe
- WSEdit.EXE
- swapy-ob-0.4.3.exe
–jeroen
Posted in Development, Software Development, Windows Development | Leave a Comment »
Posted by jpluimers on 2020/08/06
Since I keep forgetting the difference and order between renaming branches and tags.
Note you need to repeat the origin steps for each remote!
[WayBack] How to rename git local and remote branches:
git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch
Like tags below, be aware of the implications when renaming branches: if you pushed before other users already can have the old branch and have acted upon it.
[WayBack] git tag – How do you rename a Git tag? – Stack Overflow:
old^{}
git tag -d old
git push origin :refs/tags/old
git push origin refs/tags/new
Be aware, of the [WayBack] implications that a Git Tag change has to consumers of a package!
Note the first step is not just a plain git tag new old
The reason is that this will create a tag new pointing to the tag old, failing to point to the actual commit behind old. A more detailed explanation, including how to better handle renames, is at [WayBack] git tag – Why isn’t my tag listed when I checkout with Git GUI? – Stack Overflow
–jeroen
Posted in Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management | Leave a Comment »
Posted by jpluimers on 2020/08/06

Colorblind Web Page Filter
A great tool I found out about a while ago [Archive.is] Toptal Color Blind Filter.
It shows the original web page and the rendering for various types of color blindness:
protan -> Protanopia: red/green color blindness; anomalous red cones
deutan -> Deutanopia: red/green color blindness; anomalous green cones
tritan -> Tritanopia: blue/yellow color blindness; anomalous blue cones
grey -> Greyscale/achromatopsia: quick check for all forms of colorblindness
Because of a comment at [WayBack] Forums… https://embarcaderomonitoring.wiert.me/ – JWP – Google+, I used Toptal to notify Uptime robot that their status pages are hard for color blind people: [WayBack] Jeroen Pluimers on Twitter: “Some color blind people indicated to me that @uptimerobot status pages are hard for them to read. Examples are for @EmbarcaderoTech as they have subdomains being offline often: …”, so lets look at how people with various types of color blindness see embarcaderomonitoring.wiert.me :
Read the rest of this entry »
Posted in *nix, Color (science), Color (software development), Development, Monitoring, Power User, science, Software Development, Uptimerobot, Usability, User Experience (ux), Web Development | Leave a Comment »
Posted by jpluimers on 2020/08/06
Sometimes you cannot avoid handling passwords in your application. When you do,
- keep them around as short as possible
- store them in data types that are not garbage collected
- wipe the storage as soon as you are done
In practice, this usually comes down to storing them as arrays (character or byte arrays), not strings.
This holds for many other platforms outside Java as well: strings are usually managed in one way or the other, so they cannot be wiped
References:
For actual storage of passwords, you always have the risk of retrieval: when a “bad guy” gets physical access to a device, it is basically hosed.
A KeyStore can only do so much against it: if your APK can be downloaded, it can be reverse-engineered revealing the exact steps how the store is accessed, reproducing the steps needed to hack into the underlying protected data/functionality.
The keystore can be forgetful…
You’ve just moved in to a new house and have been given the master key for the front door. You only have one of these so you know you need to keep it safe. Your really paranoid so you hire an armed guard, whose sole job is to protect this key, in fact, this is all he has been trained to do and has a catchy slogan of “need to protect a key, its what I was born to do!”. You install an extra lock on your front door as you feel the bodyguard isn’t enough, this is a rough area anyway and who’s going to make sure no-ones about to break in and steal all your crap. You return to your key guard only to be informed he has thrown the key away. You shout and scream at him but he just blankly says “I don’t have it anymore, I didn’t think it was important”. You can’t contain your anger “What the hell, your a jerk! You had one thing to do and you failed, this causes me a lot of problems, why didn’t you tell me you might do this?! What do I do now?!”
[WayBack] Android Security: The Forgetful Keystore – SystemDotRun – Dorian Cussen’s Super Blog
–jeroen
Posted in Android, Development, Java, Java Platform, Mobile Development, Power User, Security, Software Development | Leave a Comment »
Posted by jpluimers on 2020/08/05
From the update process:
==> Caveats
==> hub
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completions have been installed to:
/usr/local/share/zsh/site-functions
==> python
Python has been installed as
/usr/local/bin/python3
Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
/usr/local/opt/python/libexec/bin
If you need Homebrew's Python 2.7 run
brew install python@2
You can install Python packages with
pip3 install
They will install into the site-package directory
/usr/local/lib/python3.7/site-packages
See: https://docs.brew.sh/Homebrew-and-Python
==> youtube-dl
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
zsh completions have been installed to:
/usr/local/share/zsh/site-functions
==> mpv
zsh completions have been installed to:
/usr/local/share/zsh/site-functions
==> node
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
–jeroen
Posted in Apple, Development, Home brew / homebrew, Power User, Python, Scripting, Software Development | Leave a Comment »