Happy New Year ’21!
I’m using VMware Workstation (in my case, Workstation 15.5.1) on my Windows 10 computer and I wanted to install Docker. After installing Docker and enabling some Windows features, e.g. Hyper-V, I was able to use it properly.
But now, when I try to run a VM in Workstation, the following message is displayed:
VMware Workstation and Device/Credential Guard are not compatible.
VMware Workstation can be run after disabling Device/Credential Guard.
Please visit http://www.vmware.com/go/turnoff_CG_DG for more details.
This strange message is linked to Hyper-V. VMware products can’t be used if Hyper-V is installed. At the same time, Docker needs Hyper-V to run!
The only option you have to allow a VM to start is to disable Hyper-V. So I tried to disable the feature in Windows but this isn’t sufficient! You need to change a parameter in the boot registry too.
The issue is, if you disable Hyper-V, Docker will not run! So you have a choice to make here. Everytime you want to use Docker, you have to enable Hyper-V; and if you want to use VMware products, you have to disable Hyper-V… Find below the commands to execute in both cases.
Disabling Hyper-V: Use VMware products
Open a PowerShell in Administrator mode then type:
bcdedit /set hypervisorlaunchtype off
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
Then restart. Now VMware products (Player or Workstation) may run!
Enabling Hyper-V: Use Docker
Now if you want to use Docker, you have to enable again Hyper-V. Open a PowerShell in Administrator mode then type:
bcdedit /set hypervisorlaunchtype auto
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
Then restart. Docker may now be used but not VMware products.
This situation will not stay like this, but for now it’s the only workaround you have. The issue is under investigation.
I just want to wish you a happy new year 2020! 🙂
A new decade was now started and the Dreamcast scene is almost alive, and that’s a pleasure to see that!
I’ve not posted so much things here but don’t worry, speaking about my hobbies, I’m working on the coming DreamSDK R3 package, but I’m really slow because as you might know, so much work for little free time…
In the meantime, see you around!
Recently I wanted to set Google Chrome by default on my fresh Lubuntu 19.04 VM and despite the presence of the
Make Google Chrome as default browser button, it never works: Firefox remains the default browser.
I wanted to setup Google Chrome by default without uninstalling Mozilla Firefox as I use both browsers. Open a Terminal then do the following:
BROWSER variable to
/usr/bin/google-chrome-stable as shown below. Save the changes.
sudo update-alternatives --config x-www-browser then choose the
/usr/bin/google-chrome-stable entry in
manual mode (
2 in the screenshot below).
sudo update-alternatives --config gnome-www-browser. Do the same as above.
Type the following commands:
sudo xdg-settings set default-web-browser google-chrome.desktop
sudo xdg-mime default google-chrome.desktop x-scheme-handler/http
sudo xdg-mime default google-chrome.desktop x-scheme-handler/https
sudo xdg-mime default google-chrome.desktop text/html
Then restart the computer (
sudo reboot). Check now if the
$BROWSER variable is OK by typing
Then now, when checking Firefox, it should says that the browser isn’t the default, and Google Chrome shouldn’t complain!
I totally forgot to post here, but I’ve recently released the DreamSDK R2 package!
A lot of improvements and changes are included in this release, like:
- Full Code::Blocks IDE integration, including debugging on the real hardware, directly from the IDE!
- DreamSDK Manager was redesigned and improved a lot.
- A lot of new tools are included now, like makedisc, allowing you to create CD releases of your programs.
- The Help content was improved a lot and it’s now available online (and of course, it’s still available in the package too).
- A lot of other things that you will find out by yourself!
For those who don’t know what is DreamSDK, it’s a package which contains everything you need to develop for the Sega Dreamcast video game console on Microsoft Windows. This isn’t a ready-to-use high level framework like Unity, it’s a low-level SDK which is based on KallistiOS (KOS). So you’ll need to learn Dreamcast programming with KOS and learn C/C++ programming languages.
I just want to wish you a happy new year 2019! 🙂
May the Dreamcast be with you this year!
So after almost 2 months of intensive work, I’m really happy to announce you that my latest project is done: DreamSDK R1 is out.
DreamSDK is a modern, ready-to-use environment for the Sega Dreamcast development designed for the Microsoft Windows platform.
Main features are:
- Fast & easy to install: just double-click on the setup file and let the program install & configure everything for you.
- Ready to use: All the required toolchains (for the SuperH & Yamaha AICA) are already prebuilt and ready-to-use.
- Lightweight: Thanks to the MinGW/MSYS environment, the space used on the disk is minimal.
- Configurable & upgradable: With the included DreamSDK Manager tool, manage DreamSDK components really easily.
- Respectful of the standards: DreamSDK is 100% compliant with the KallistiOS standards and documentation.
This package has a very different approach comparing to the others packages of this kind. The major difference is that KallistiOS is not included: instead it’s downloaded/installed from DreamSDK Manager, which is a tool part of this package. This will keep up-to-date your installation and will allow DreamSDK always be usable, as only the toolchains (SuperH & Yamaha AICA) are included (which don’t changes often). In clear, doing so will give you the possibility to update KallistiOS directly from the DreamSDK environment.
Please also note that I’m using the official KallistiOS repositories (kos and kos-ports) and not my repositories (which contains various fixes on the build systems). The exception is dcload-serial and dcload-ip: I’m using my repositories as official ones will not compile on MinGW/MSYS without my fixes.
DreamSDK was built to be the greatest environment for Sega Dreamcast development on Microsoft Windows. I hope you’ll enjoy it as much I enjoyed to make this package.
Note: This package contains only free & open source tools and libraries.
As I stated on Twitter, I’ve released all the source codes of all my tools I’ve published through years. Most of them are written in Pascal Object/Delphi, but some of them are written in C/C++.
All these tools were originally published almost 15 years ago, so a lot of them will not work on modern OS like Windows 10.
Maybe I’ll try to adapt/convert them for newer OS, maybe I won’t, who’s knows? 🙂
If you are a Java developer you certainly know Apache Maven, which is (more or less) a Make equivalent for the Java world.
Some days ago I needed to automatically extract some values from the pom.xml file to automatize some operations. For example, I wanted to extract the values of the groupId, artifactId and version nodes from a Maven project, i.e. from the pom.xml file.
I finally created a pure Windows batch solution in order to do that, I called this little utility: POM Tool.
Here is the source code of it:
if "%2" neq "" set MAVEN_POM_FILE=%2
rem Check input parameters
if "%MAVEN_POM_INPUT_TAG%"=="" goto help
if "%MAVEN_POM_FILE%"=="" goto error_pom_not_found
if not exist %MAVEN_POM_FILE% goto error_pom_not_found
rem Compute start/end positions to extract the value from the XML tag
set /a TAG_BEGIN=%_strlen% + 2
set /a TAG_END=(%TAG_BEGIN% + 1) * -1
rem Perform the XML tag value extraction
call:extractxml %MAVEN_POM_INPUT_TAG% %TAG_BEGIN% %TAG_END%
if "%_extractxml%"=="" goto error_extraction_failed
rem Display help message
echo Usage: %~n0 ^<xml_tag^> [pom_file]
echo Example: %~n0 version - will return artifact version
echo %~n0 groupId - will return artifact groupId
rem Error: The requested tag was not found
echo Error: The tag "%MAVEN_POM_INPUT_TAG%" wasn't found in the "%MAVEN_POM_FILE%" file.
rem Error: The Maven POM file wasn't found
echo Error: The "%MAVEN_POM_FILE%" file wasn't found.
rem Function: banner
rem Used to display the tool banner
echo POM Tool - Ver. %POM_TOOL_VERSION%
rem Function: extractxml
rem Used to parse %MAVEN_POM_FILE% for extracting tags value.
rem Usage: call:extractxml %param% where %param% is the tag to search.
for /f "tokens=*" %%a in (%MAVEN_POM_FILE%) do (
if /i "!row:%_token%=!"=="!row!" (echo NOP > nul) else (
if /i "!_extracted_xml_result!" neq "" goto extractxml_endloop
if "%_final%" neq "" call set _final=%%_final:~%_begin%,%_end%%%
if "%~1" neq "" set "_extractxml=%_final%"
rem Function: strlen
rem Get the length of a string
rem Thanks to: SS64 (https://ss64.com/nt/syntax-strlen.html)
rem Remove any quotes
rem Test if empty
if not defined _str echo endlocal & set _strlen=0&goto:eof
for /l %%g in (0,1,!MAX_STRING_LENGTH!) do (
REM extract one character
REM if _char is empty we are at the end of the string
if not defined _char endlocal & set _strlen=%%g& goto:eof
Just copy-paste that source code into a new file and call the file pomtool.cmd.
The usage is pretty simple:
pomtool artifactId c:\temp\my-maven-project\pom.xml
This will give you the value of the artifactId node for the c:\temp\my-maven-project\pom.xml file!
Of course you can include a call to the POM Tool in another batch file, for example:
for /f "tokens=*" %%i in ('pomtool description c:\my\project\pom.xml') do set "PROJECT_NAME=%%i"
In that way, the %PROJECT_NAME% variable in your batch will have the output of the POM Tool utility, in that example the content of the description node! 🙂
Don’t hesitate to comments if you have any question! 🙂