Automatically Download Last Release on Github

I wanted to download the latest Hugo version and the website is always a nightmare to browse, so here is a Windows bash script to download it automatically and place the hugo.exe file at the right place.

You can adapt it to work with any Github repository. The important line to modify is this one:

for /f "tokens=1,*" %%A in ('curl -kLs https://api.github.com/repos/USER/REPO/releases/latest ^| find "github" ^| find "HAVE_TO_BE_IN_FILENAME" ^| findstr /V "CANT_BE_IN_FILENAME"') do (

Change the username and repository name. It’s basically in the URL of the repo you want to download
USER/REPO:

Those are filters for selecting the right file in the list of files in the release.
HAVE_TO_BE_IN_FILENAME
CANT_BE_IN_FILENAME

Read More

My Must Have Softwares

MPC-HC and madVR #

The best video players on Windows by far, it even put Linux players to shame.
The quality and responsiveness is crazy good, it downloads subtitles automatically, it keeps track of time position for each file, resize the window according to the video dimension. You can put it in minimal mode (1) with only the video without any UI or controls in the way.
You need to clean a folder full of videos? Press the delete key while playing a file to delete it then go automatically to the next in the playlist.
It downloads and play videos from tons of streaming website, you can also get automatic captions from Youtube.

Combine it with madVR to get even better video quality, to control tons of image processing or cut useless black bars automatically.

AltSnap #

If you are used to Linux, this is a must have!
Move and resize any windows anywhere without using the classic handlers. Here are my settings:

  • Windows + Click to move
  • Windows + Right Click to resize
  • Windows + Scroll to change opacity
  • Windows + Middle click to stay on top.
  • Windows + Mouse 4 to put any program borderless

Extremely intuitive and can’t live without it. You can even resize unresizable windows.
You can also pause processes, very useful when you want to pause an intensive CPU process without closing the program. Resume it whenever you want like nothing happened.

Can go in pair with RBTray that will minimize any window in the systray icons by right clicking the minimize button.

Read More

Manage Software Settings Across Devices

Did you ever lost valuable settings when reformating a computer? Or wanted to have unified prefs across all your different devices?
I overuse Symbolic Links for that. Symlinks are virtual links allowing you to move files elsewhere while making a reference to it at the original location. This way you can put a configuration file on a shared location folder while still letting the software update the configuration files. The software still think the file is in their regular folder, while it is instead modifying the file at another path.

You can regroup all the settings files of all your programs in a single place, like a Dropbox folder and never have to worry about them. You could also use the same settings over different versions of the same program, this works but this could lead to some problems on some softwares.

Let’s see how to do it with a practical example with Open Broadcast Studio: #

Read More

Remove Ghost Keyboard Layout

You installed Windows and no matter what you do with your language settings or keyboard configuration there is a ghost keyboard layout that shouldn’t be there?
Say no more, all you have to do is:

  • start the program “regedit”,
  • go to ALL those path,
  • delete all the layouts you don’t want on each path.

You can get all value combinations from this website, in my case I needed to delete the United Kingdom: 00000809 one.
You’ll need to restart for it to be effective.

HKEY_CURRENT_USER\Keyboard Layout\Preload  
HKEY_LOCAL_MACHINE\SYSTEM\Keyboard Layout\Preload  
HKEY_USERS\.DEFAULT\Keyboard Layout\Preload 

Houdini TD - Create Shelves On The Fly

One thing you want in your pipeline is a way to distribute your tools to the artists through the shelf, you can do this several ways:

  • Have the same shelf file on a network drive used by everyone but with restricted write permissions
  • Copy the preference shelf file to the user preferences each time you update it
  • Build the shelves automatically each time you launch the software

The first twos are the easiest to implement and maintain, but they have one major drawback: the users can’t customize their shelves. Soon enough you are going to have to fit that need, limiting basic user customisation of the software they use daily is usually not a good idea. That lets us with the third option but it can take a lot of time and is more error prone… Well here it is!

Read More

Mayabatch vs Mayapy - Headless Processing

There are several ways of launching a Maya without interface to process some operations in a way more efficient way than launching the GUI. There is the Maya -batch option (mayabatch on windows) and mayapy, also called Maya standalone. Mayabatch is a complete headless Maya without GUI, while mayapy is a python console with the Maya modules imported.

Mayabatch

  • same environment as Maya GUI
  • easy to use, exitcode are consistent
  • you get all stdout info of Maya starting
  • stderr is empty and incorporated in stdout (on windows)
  • can't be used interactively (rpyc maybe?)

Mayapy

  • stderr is correctly separrated from stdout
  • can be connected to a debugger
  • can be used in an interactive way as an idle process
  • you don't get any stdout info of Maya starting
  • can be different than a normal Maya, some plugins and scripts may not work
  • problems when initialising
  • problems when exiting, exitcode may not be a good reflection of the actual job state

I personally exclusively use mayabatch instead of mayapy because of a lot of bad experience with mayapy and because the calls are cleaner. I even changed a whole studio from mayapy to mayabatch because they had a lot of problems with renders not being done when they were marked as done, the outputs of jobs completely were different from the real execution of jobs. Using mayabatch fixed all of the problems at once.

I also encountered a lot of problems when Pymel was being used too, if you have problems you should investigate that part if you have some or better stay away from it.

Headless Playblasts Batches

Contrary to popular beliefs, it’s totally possible to do your playblasts in batch mode. It can be very helpful in a lot of workflow:

  • create a missing playblast without the hassle of opening Maya UI
  • move all playblasts calculation to a remote computer to be able to continue to work at the same time
  • update playblasts of all shots at once on a renderfarm to make an up to date montage of the movie All of this is made a lot easier and faster when doing playblasts in batch mode

Both mayabatch and mayapy can do this, the main difference is the background color being different and mayapy being a little finicky.

In a Python module put this simple code:

def do_playblast(output):
    cmds.playblast(f=output, widthHeight=[1980, 1080], percent=100, forceOverwrite=True, viewer=False)

And you can call maya with one of those

# For mayabatch
maya -batch -file "file_to_playblast.ma" -command 'callPython "playblast" "do_playblast" {"output_path.mp4"}' -noAutoloadPlugins
# For mayapy
mayapy -c "import maya.standalone;maya.standalone.initialize(name='python');import playblast;playblast.do_playblast('output_path.mp4')" "filepath_to_playblast.ma"

The Maya file to open is directly in the command but you can also put the opening of the Maya file into the script instead. This way it’s possible to do a batch of several scenes on a single node to save time on the initialization of Maya, but it’s not worth it. If it crashes it’s harder to know what happened and which job was processed or not. By deploying one job per scene you can send it to different computers on the renderfarm and see the general progress.

Read More

New Environment Variables in Maya 2022

Apart from the expected Python 3 upgrade, two little things slipped through Maya 2022 are 3 new environment variables regarding Maya batch mode.

The MAYA_BATCH_STDOUT_LOGGING_LEVEL and MAYA_BATCH_STDERR_LOGGING_LEVEL set the logging level of outputs of stderr and stdout.
The accepted values are all (stderr default), info, result, warning, error, and none (stdout default)
It should only change the behaviour of mayabatch… but when testing it I haven’t seen any differences. Same with mayapy. If anyone has more info let me know!

When Maya is in batch mode, the MAYA_DISABLE_ADP env var disables the analytics sent to Autodesk, along the same lines as the ones described in this article. They should all be set to 1 to improve your Maya experience:
MAYA_DISABLE_CLIC_IPM
MAYA_DISABLE_CIP
MAYA_DISABLE_CER
MAYA_DISABLE_ADP

Oh, and the Maya console is hidden by default now, yay!

Read More

Move and Resize Windows Easily With Altdrag

One thing that always mess me up when I go back to Windows is its way to move and resize windows, I am more used to some windows managers in Linux where you just have to press a key and click anywhere on the window to move or resize it. It is very handy and intuitive, you don’t have to aim for the title bar or anything and do as you please.

Thankfully I recently discovered a wonderful software that does just that: AltDrag

Sadly it has not been updated since 2015, but it does a lot of things already. I urge you to test it as it drastically changes the experience on any computer. By default the key is set to Alt, but it’s best to put it on Windows (Meta) especially if you do 3D work. You can also change the transparency of windows as well as the “Always on top” and “Borderless” settings.

Better Accents on Qwerty Layout

A lot of countries have their own keyboard layouts for special characters and accents.
France for example has the AZERTY layout… certainly one of the worst of all with an accent acting as a dead key (^¨) and some other times with hardkeyed letters with accents (éèàç and even the ù which exists in one and only ONE word in French).
This is not logical and very badly thought out, as well as a complete waste of space.

In summary Azerty comes with:

  • the A and W switched with Q and Z
  • the M on the second row next to the L
  • the top row numbers activated with shift
  • a lot of special characters switched all around
  • some keys blocked by diacritic characters (éèàçù)

And even worse:

  • the numerous bugs in tons of programs because of all that
  • and let’s not forget all the weird shortcuts…
  • and let’s not talk about the accentuated capitals…

Azerty is quite bad all around, and one way to fix it… is to switch to Qwerty.
Yup, Qwerty is superior. It’s way easier to do accents and your experience will be a lot better overall.1

Read More