I had a bunch of .mp4 and .3gpp video files whose file "create" and "last modified" filesystem dates did not match the meta data inside of the file, and this was causing problems because many apps use the filesystem dates when sorting video files (rather than using the metadata inside the video files).
I found ExifTool could fix this. ExifTool is a cmd-line tool, so you need to be comfortable with the cmd-line. The biggest challenge was that most of the documentation was on how to modify the internal meta data, but I wanted to "copy" from the meta data to the filesystem timestamps.
The first trick is to figure out what the "tags" are for the internal metadata and the file system. I found the ExifTool FAQ #24 which shows how to query for the times:
> exiftool -time:all -a -G0:1 -s tmp.mp4
[File:System] FileModifyDate : 2014:09:07 19:35:32-06:00
[File:System] FileAccessDate : 2015:10:24 22:55:22-06:00
[File:System] FileCreateDate : 2015:10:24 22:55:22-06:00
[QuickTime] CreateDate : 2013:09:14 00:52:38
[QuickTime] ModifyDate : 2013:09:14 00:52:38
From the above the CreateDate & ModifyDate are the internal meta data, and the FileModifyDate etc are the filesystem.
So to copy the metadate CreateDate to the FileSystem I used this command:
> exiftool "-CreateDate>FileModifyDate" tmp.mp4
And of course to modify multiple files you can use wild-cards on the filename, like *.mp4
Related, to update the file system time for image files to match the meta data:
> exiftool "-DateTimeOriginal>FileModifyDate" tmp.jpg
Note that most apps know how to look into image metadata, so setting the filesystem dates is not as important as for video files.
In the video below, a team built two computers out of dominoes. The first was capable of adding any two numbers between 0 (zero) and 7 (seven). The second computer they built was capable of adding any two numbers between 0 (zero) and 15 (fifteen).
The computer you are using right now, deep under the covers, does everything in terms of binary addition. What about the other operations you ask? Continue reading "A computer built out of dominoes?"
Here's a programmer with a sense of humor:
[as seen on The Daily WTF]
If you are interested in more details, be sure to read the comments at the end of Herb's blog post — there's some good examples and discussion.
Walking from my bus stop to work, I saw a Volkswagen Beetle (aka Bug) pull up to the drycleaners, with a personalized plate Y2KBUG. Of course it was one of the new Bugs.
An excellent story on hacking a punch card-based system. In the 1970's, the author attended a college whose registration system relied on punch cards handed out to students. This student was able to get into an already filled class by "hacking" a punch card.
After a certain point, adding more developers to a software project does not get the project done any faster. Frederick Brooks wrote about this problem in The Mythical Man-Month:
When a task cannot be partitioned because of sequential constraints, the application of more effort has no effect on the schedule. The bearing of a child takes nine months, no matter how many women are assigned. Many software tasks have this characteristic because of the sequential nature of debugging. In tasks that can be partitioned but which require communication among the subtasks, the effort of communication must be added to the amount of work to be done. […] Oversimplifying outrageously, we state Brooks's Law: Adding manpower to a late software project makes it later.
This O'Reilly Radar blog post presents the story of a CEO who did not understand this problem. The CEO hoped that adding more developers would speed up a project that was going to miss it's deadline. What did the developers do to convince the CEO that adding more developers wouldn't help, and might make things worse?
The developers each bought a copy of Brooks' book, brought the CEO into a conference room, and stacked up the copies of the book, telling him: It is extremely urgent that you read this book. We've bought you many copies so that you might read it faster. They made their point.
The Colgate Computer Science Department has a Cryptology class that includes some nice web-based tools and also applets.
The O'Reilly CodeZoo site hopes to do for Java what CPAN did for perl, and what Boost
did for C++. CodeZoo is not a "complete" list of all open-source
java, rather an edited list of the best bits of re-usable java
code. Like CPAN and Boost.
A short audio interview with Donald Knuth on NPR.
"Donald Knuth is legendary in the computer science world for writing a series of must-have reference books called The Art of Computer Programming. Part cookbook, part textbook, part encyclopedia, these books are also considered by many to be technical and personal works of art."