Concatenating M4V files on Ubuntu 16.04

Hat tip My Web Experiences blog.

This is pretty neat. If you have two (or perhaps more) .m4v files that you want to concatenate, there is an open source package called gpac available for Ubuntu and Debian. Debian packages are available at the project website, and the source code is on a github repo.

The package is also available via the Ubuntu apt package manager. As of 2016 Dec 18, the latest release available via apt is 0.5.2, which is a bit behind the latest project release, 0.6.1.

While the package is called gpac, the command provided by the package used to concatenate M4V files is called MP4Box, and the syntax is:

$ MP4Box -cat video1.m4v -cat video2.m4v -new combinedvideo.m4v

This took maybe 5 minutes to combine two approx. 1 GB files on my Intel i5 from 2008.

Advertisements

Bytes in Python 3.5

I’m working with os.urandom and I was puzzled by this output:

>>> x = os.urandom(16)
>>> print(x)
b'cCIp>\xfebUe\x02c\xc9\xbf5P\xe2'
>>> type(x)
bytes
>>> len(x)
16
>>> x[5]
254
>>> x.hex()
'634349703efe6255650263c9bf3550e2'
>>> x[0]      # ASCII code for 'c' is 99 (decimal)
99
>>> hex(x[0]) # ASCII code for 'c' is 63 (hexadecimal)
'0x63'
>>> hex(x[5])
'0xfe'

This question on StackOverflow clears things up greatly.

print(x) displays a “mixed hexadecimal/ascii” representation of the bytes object x. Bytes that correspond to ASCII characters are displayed as ASCII characters, and bytes that do not are displayed in hexadecimal notation. Which is a little bit confusing if you aren’t expecting it.

Linux pagers: less is more

When you are on the Linux command line and you want to view the contents of a file, you can use the less program. less is a newer pager program that replaces the older pager program, more. Hence the joke: less is more.

less is new and improved, so in almost all cases it will be preferred over more (maybe there will sometimes be compatibility issues with very old programs, or shell scripts, in which case more will be used).

Continue reading “Linux pagers: less is more”

Standing Rock Sioux Tribe vs. the Dakota Access Pipeline: Donations and Funds Raised

srst-crowdwiseAs of Nov. 24, 2016, the Standing Rock Sioux have raised $164,315 via their CrowdWise fundraiser. While the detailed data is not readily accessible, I was able to extract information from the scroller and determine the sample mean of $68.30. Raw data follows. I am sure it is only a subset of the total contribution data (probably the most recent 100 donations). Some of the amounts are not given — these are not included in the sample mean calculation:

Continue reading “Standing Rock Sioux Tribe vs. the Dakota Access Pipeline: Donations and Funds Raised”

Not Gandalf

But you’d be forgiven for thinking so.

It is Alexander Grothendieck (1928-2014), who was a famous mathematician in the area of algebraic geometry. Born in Berlin, his father was Alexander “Sascha” Schapiro (aka Sascha Tanaroff), an anarchist and descendent of bourgeois Hasids from Novozybkov, Russia, near the modern-day borders with Belarus and Ukraine. Grothendieck’s mother was Johanna “Hanka” Grothenieck, also an anarchist and a descendant of middle-class German Protestants from Hamburg. 

Grothendieck survived the Second World War and entered academia as a mathematician, making significant contributions in the area of algebraic geometry. He eventually became convinced that mathematics was immoral, and descended into a madness of religious passion. One presumes that the photograph above is from this later period. 

Via Cliff Pickover on Twitter

See also:

Playing DVDs on Ubuntu 16.04 LTS

DVDs did not play out of the box on my Ubuntu Desktop 16.04 LTS machine. I was able to fix this by doing the following.

First, entered the command:

$ sudo apt install libdvd-pkg

After the package and dependencies finished downloading and installing, it launched a short guided prompt sequence. I answered yes to all prompts — the only one really worth paying attention to was a choice to have the thing automatically update itself. It sounded like it has to build itself from source every time or something, so I guess it is a little non-standard in this regard. The prompts then told me to run the following command, which I did:

$ sudo dpkg-reconfigure libdvd-pkg

This popped up another little pseudo-graphical terminal prompt screen which, if I recall correctly, just asked me if I wanted to install the thing, which I answered in the affirmative.

After I completed these steps, all was well and I can now play the two DVDs I have tested without any problems.

I discovered this fix via a page on the Ubuntu wiki, RestrictedFormats/PlayingDVDs. According to the wiki, the actual software package that does the work is called libdvdcss2, and the libdvd-pkg package is a convenience package that makes the install easier.

Non-breaking hyphens in Microsoft Word

I’ve encountered a weird little use case for non-breaking hyphens in Microsoft Word, and I have found the way to do it at this blog entry at Allen Wyatt’s Word Tips: Ctrl+Shift+- (or Ctrl+_).

word-symbols

The non-breaking hyphen is used to keep a hyphenated phrase together across a line break. So, for example, the phrase “non-breaking” when occurring at the end of a line would not do this:

non-
breaking

Curated lists on Github

There are a large number of list repositories on Github spanning dozens of subjects. There is a sort of in-joke in the naming convention: they are for the most part named “awesome-{topic}” e.g. awesome-sysadmin. Someone (bayandin) on Github totally beat me to this, but here’s a partial list (unfortunately in no particular order at this time):

sysadmin
python
awesomeness 
java 
node.js 
javascript
tools of the trade
iOS
shell
vim and tmux
ruby
android
android (JStumpp)
big data
php
swift
swift (Wolg)
react
courses
electron
go
data science
svg
flask
machine learning
.NET
front-end development
public datasets
vue.js
django
R
web performance optimization
algorithms
tensorflow
elixir
images
computer vision
networking
mac OS
npm
working remotely
rails
C (not github)
MaterialDesign (google UI visual design philosophy)
UI motion library animations
emacs
READMEs
interview questions
REST
bioinformatics, machine learning, data science, related languages
security
application security
hacking
sci-fi
rust
windows
talks
natural language processing (NLP)
swift education
nodejs (vndmtrx)
internet of things (IoT)
opengl
information security (infosec)