4. October 2017

Webpack: How to read version from file and render it into React web

Imagine the simple scenario.The string with version is stored in the file, and it is necessary to transport it from the file into a React application using Webpack.

The solution is relatively simple.

The whole idea is to execute child process which will read the file and transfers the content via variable into the application.

You will need DefinePlugin which allows defining a custom variable and transports it into the transpiler.

Update your package.json and add there

new webpack.DefinePlugin({
   __VERSION__: JSON.stringify('1.2.3')
})

Update your compoents to render the version:

... {__VERSION__} ...

Check the application and you should see there version 1.2.3.

Let’s move further and read a value from the file version.txt. You will need child_process. Add following line to package.json:

const childProcess = require('child_process');

Now update our previous code to read the value from the file. It is necessary to wrap the output into JSON.stringify otherwise you won’t be able to render the version properly.

new webpack.DefinePlugin({
   __VERSION__: JSON.stringify(childProcess.execSync('cat version.txt').toString())
})

This command will invoke the cat command and the output of the command will be set to variable.

If you want a little bit more portable version of the script, then use ShellJS instead of a plain cat.

The code with ShellJS will look like this:

cons shell = require('shelljs');

new webpack.DefinePlugin({
   __VERSION__: JSON.stringify(shell.cat('version.txt').toString())
})

11. September 2017

How to increase font size in Wireshark 2.4 on Windows

Wireshark is based on the new version of QT, and it has a similar problem on Windows like pgAdmin 4.

If you have a screen with higher density, the font will be too small.

The solution is to add one parameter for QT engine to handle DPI differently.

Open PowerShell as Administrator and go to the directory with Wireshark open qt.conf file:

cd "C:\Program Files\Wireshark"
notepad qt.conf

Write there following content:

[Platforms]
WindowsArguments = dpiawareness=0

Save the file and start Wireshark.

Note: make sure that the file name is just qt.conf. Notepad could add .txt file extension when saving the file directly from Notepad.

Enjoy bigger font:

21. August 2017

Docker deploy DAB failed on Windows 10: service needs ingress network

Deploying application bundle to Docker Swarm (v17) is pretty straightforward. Simple command on Manager node:

docker deploy georgiktest --bundle-file .\georgiktest.dab

Unfortunately, it failed with message:

Loading bundle from .\georgiktest.dab
Creating network georgiktest_default
Creating service georgiktest_client
Creating service georgiktest_server
failed to create service georgiktest_server: Error response from daemon: rpc error: code = FailedPrecondition desc = service needs ingress network, but no ingress network is present

Solution that worked for me:

docker system prune
docker network create --ingress --driver overlay ingress

Thanks to cabloo for the solution.

11. August 2017

Windows 10 displays different time after reboot from Linux

Using dual-boot Windows and Linux has several advantages. If one system fails to update, you can still work with the other one.

I experienced strange problem that Windows was always shifting the time about 2 hours after rebooting from Linux. One solution was to let Windows determine the time zone, but that worked until next reboot to Linux and back to Windows.

The solution that worked for me was to open regedit.exe and define following key as QWORD set to value 1:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal

Then reboot the machine to Linux and back to Windows and everything was ok. No more time shifts.

Thanks to Ailurus for the solution.

28. June 2017

How to speed up Gradle build in Android Studio caused by problems with proxy

Update: This article targets one particular scenario when Android builds are too slow. There might be other reasons behind your slow build. Let me know if you need assistance. Now back to original article.

Gradle build should be fast. Even when you build C++ dependencies for Android.

Unfortunately, it often happens that builds take forever and Gradle is not providing any hint how to speed up the build.

One of the most common reasons is that Gradle is trying to download many dependencies. This will take some time even on a fast network. If you’re behind proxy it might take forever.

A quick way to improve performance is to switch Gradle to offline mode.

Go to File, Settings.

Search for “work offline”, check Work offline option and click Ok.

Next Gradle sync or build should be at least 10 times faster.

Once you’ve proved that you have this issue, go to Settings and update Proxy configuration which matches your network.

Enjoy faster builds 🙂

If you’re still facing slow builds let me know.

  • Where is the fish?

  • Further info

  • Twitter

    Follow @jurajmichalek on twitter.

  • Comments

  • Tags

  • Topics