In the last post I’d made WinSCP script to copy a local folder to a remote folder to deploy my website. I’ve made some improvements since. Instead of using put to copy the files across I’ve used synchronize to do so.
synchronize basically makes one folder the same as the other. You could switch out remote and use local to download changes from the remote. The critera part tells how we compare files between local and remote. As I’m using Hugo, the timestamps get binned when the site is compiled so I only have the sizes to go by.
Another issue I’ve had is with Hugo itself not copying assets that aren’t directly used (e.g. images). So I’ve bunged an xcopy together with the above to make this handy batch file.
This is just a snippet of code to automate the deployment of a website (Hugo, Jeykll, etc.) by using WinSCP. I’m using WinSCP because I need WebDAV. I want the script to connect to remote, change to the websites directory and upload the new website version from a folder (overwriting everything in the process) before disconnecting. Here is the script.
This was the first attempt at running the script. It worked but the terminal did not wait for the command to complete, which wasn’t ideal. The only way to confirm it had finished was by reviewing the log file.
I’ve just setup a new computer and have been running into this dubious message when using git.
fatal: detected dubious ownership in repository at 'E:/seeker'
To add an exception for this directory, call:
git config --global --add safe.directory E:/seeker
Set the environment variable GIT_TEST_DEBUG_UNSAFE_DIRECTORIES=true
and run again for more information.
Note that tools using git (VS Code) may not work or give any feedback about this fatal error. You have to use the terminal to get at it.
If you DuckDuckGo the message sites will tell you to add the directory as a safe place or turn off this security feature completely in git. This seems a bit silly. The error is telling you that the directory is not owned by the current logged-in user of the machine. I keep my development code on its own SSD which I’ve migrated to the new computer and so Windows had no idea who the owner actually is.
To fix this the best thing you can do is simply change the owner of the directory.
Right click the folder
Go to the Security tab
Click the Advanced Button
At the top on the ‘Owner:’ item, press the Change text at the end
Type part of your username into the name field, Click ‘Check Name’
I’ve had an itch lately to make a map for Quake or Half-Life so after a bit of research discovered Trenchbroom which does both. It seems to be highly regarded amongst Quake mappers and has ’experimental’ support for Half-Life. After an hour of research I couldn’t find an easy article to set it up for Half-Life so went down the rabbit hole enough to figure it out.
After more research people seemed convinced Trenchbroom was fine for Half-Life mapping but Trenchbroom does say Half-Life support is experimental so I was a bit suspicious.
The first port of call was checking out how you’d setup Hammer (the original Half-Life map editor) so this excellent site came up quickly for general GoldSrc (name of the Half-Life engine) modding and mapping goodness. All beginners guides say you should use Vluzacn’s ZHLT to build your maps. Looking up ZHLT started to ring some bells from the last time I tried to do Half-Life mapping (when I was a young person). You pass your designed map to a series of tools to “compile” it into an actual game map. These are…
HLCSG - makes solid geometry by taking your map and making polygons from the brushes
HLBSP - makes the BSP (binary space partition) node tree
HLVIS - Generates visibility flags for the polygons (what the player can see)
HLRAD - Generates lighting
Looking into Trenchbroom you’ll find similarish tools pre-filled in for Quake, so a bit of fiddling around and I made it work using this.
Here we export the map (in case we haven’t saved it), run the tools above with some parameters that point to the exported map and copy the files into Half-Life’s valve/maps folder (would do different folders for mods).
Next, we setup the Engine simply telling it how to find hl.exe
The game also needs to know what map we want to run (although you can run it via the console) so we use +map XXX and -dev (just enables dev mode).
The texture WADS can be added at the bottom right in the ‘Texture Collections’ area. You’ll find the WAD files in the Half-Life directory (you’ll want at least halflife.wad). A prompt will ask how you want to link the WAD, I went with Absolute but do whatever works for your setup.
Couple of issues
Models do not appear in the editor (e.g. you’d expect a scientist model instead of a green box ideally). Not a big deal.
The properties for entities are not correct and/or auto-populated. I had to manually had Brightness, Appearance and Quadratic. The pre-populated _light value was wrong, so I changed it to 255. You’ll need to dig out the properties you need and add them manually when dealing with entities.
Ultimately, I really like Trenchbroom and will spend some time learning it.
As I little bit of a side project I recently touched my toes into the world of sports activity data by reading some data from my Garmin watch.
Garmin uses a binary file format called FIT which is a type of GIS file
containing geographical data alongside sport data points for whatever activity you're doing.
The FIT file itself wouldn't be hard to parse by hand but there is no point doing so as
Garmin provide an SDK to read the data into memory. Once the file is parsed, you can easily export to CSV or do some data analysis with it.
I wrote a small C# app to read any single FIT file and output a bunch of diagrams. Below I've fed the GPS data into
OpenStreetMap using the awesome Leaflet library to plot my recent walk.
I've also done a couple of charts using Highcharts. Not bad for 2 hours work!
My main takeaway from this small project is suprise at the lack of quality alternatives to Strava.
Obviously there is a lot more to Strava (comparisons, analysis, etc.) but with very little effort I've made a dumb activity page.