Ubuntu, Fedora, openSUSE, CentOS, SUSE Linux Enterprise, Debian,... users can finally use Autodesk Fusion 360 in the Linux Browser now.
On Chromium 55.0.2843.0 I get NET::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED
.
Ubuntu, Fedora, openSUSE, CentOS, SUSE Linux Enterprise, Debian,... users can finally use Autodesk Fusion 360 in the Linux Browser now.
On Chromium 55.0.2843.0 I get NET::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED
.
Lower precedence means a stronger binding; ie. this list is sorted from strongest to weakest binding, and in the case of equal precedence between two operators, the associativity decides the binding.
Prec | Abbreviation | Example | Assoc | Description |
---|---|---|---|---|
1 | SELECT | e . attrpath [or def] |
none | Select attribute denoted by the attribute path attrpath from set e . (An attribute path is a dot-separated list of attribute names.) If the attribute doesn’t exist, return default if provided, otherwise abort evaluation. |
2 | APP | e1 e2 |
left | Call function e1 with argument e2 . |
3 | NEG | -e |
none | Numeric negation. |
4 | HAS_ATTR | e ? attrpath |
none | Test whether set e contains the attribute denoted by attrpath ; return true or false. |
5 | CONCAT | e1 ++ e2 |
right | List concatenation. |
6 | MUL | e1 * e2 |
le |
I recently happened upon a very interesting implementation of popen()
(different API, same idea) called popen-noshell using clone(2)
, and so I opened an issue requesting use of vfork(2)
or posix_spawn()
for portability. It turns out that on Linux there's an important advantage to using clone(2)
. I think I should capture the things I wrote there in a better place. A gist, a blog, whatever.
This is not a paper. I assume reader familiarity with
fork()
in particular and Unix in general, though, of course, I link to relevant wiki pages, so if the unfamiliar reader is willing to go down the rabbit hole, they should be able to come ou
#!/bin/sh | |
# | |
# libinput by default will disable the touchpad while a key is pressed. | |
# to disable this, run `xinput` to list the inputs. find the name of your | |
# touchpad (mine is 'Microsoft Surface Keyboard Touchpad'). | |
# | |
# Disable the setting 'Disable While Typing Enabled' | |
# `xinput --set-prop 'Microsoft Surface Keyboard Touchpad' \ | |
# 'libinput Disable While Typing Enabled' 0` | |
# |
This is a set up for projects which want to check in only their source files, but have their gh-pages branch automatically updated with some compiled output every time they push.
A file below this one contains the steps for doing this with Travis CI. However, these days I recommend GitHub Actions, for the following reasons:
Conversion script between the TTML & SRT subtitle formats. This is particularly useful with Adobe Premiere, as it doesn't understand the SRT format (which is joyously simple and interoperable). TTML-XML is probably the most straightforward subtitle format it does understand, hence this tool.
Note that due to the simplicity of the SRT format, this conversion is extremely lossy for all the bells and whistles supported by TTML. Not like you'd want fixed-pixel font sizes etc in your subtitles anyway, but you've been warned.
#!/bin/bash | |
# | |
# rotate_desktop.sh | |
# | |
# Rotates modern Linux desktop screen and input devices to match. Handy for | |
# convertible notebooks. Call this script from panel launchers, keyboard | |
# shortcuts, or touch gesture bindings (xSwipe, touchegg, etc.). | |
# | |
# Using transformation matrix bits taken from: | |
# https://wiki.ubuntu.com/X/InputCoordinateTransformation |
/** | |
* STEP 1: Setup | |
* - Open Chrome Secure Shell settings | |
* - Open JS Console (CTRL+SHIFT+J) | |
* - Copy and paste the following: | |
*/ | |
var s7d_colours = { | |
'base03': '#002b36', | |
'base02': '#073642', | |
'base01': '#586e75', |
/*! normalize.css v2.1.3 | MIT License | git.io/normalize */ | |
/* ========================================================================== | |
HTML5 display definitions | |
========================================================================== */ | |
/** | |
* Correct `block` display not defined in IE 8/9. | |
*/ |