Compute unique ID for a video DVD - vlc

I'm trying to find a way to generate a unique ID for specific versions of a video DVD.
For example, if you have 2 identical copies of The Matrix DVD, inserting either DVD should output the exact same ID because they both represent the same content, release, country of origin, etc.
This forum post mentions using libdvdread's DVDDiscID() method, which appears to do what I want. However, I can't find a CLI or binaries to use. It appears that the VideoLan project has taken ownership of libdvdread, is it possible to use the VLC binaries/cli to call libdvdread.DVDDiscID()?
Is there a command-line utility already out there that can generate some type of unique ID for a video DVD? If not, how can I use libdvdread (or some other similar free library) in a NodeJS, PHP, C#, Python or C++ application on a Windows computer to get this information?

This looks like what you want https://github.com/beandog/dvd_info, it depends on libdvdread. Or just compile libdvdread and call it from your app.

Related

AutoCAD CUIX: Swapping my LISP routine’s mapped drive URL link in my Macro with the Google Share Drive web based link of the same file

My LISP routines are on the Google Share Drive at my work. I have buttons in my custom ribbon that calls my routines using a mapped drive letter URL link.
URL Link example in my custom Macro:
Goal:
Trying to share this with the other CAD users in the office.
Problem:
Various CAD Users have different mapped drive letters (Ex: H:\ or S:\ instead of G:).
Trying to avoid going around and manually changing the drive letter to match their mapping every time I updated the CUIX file (since path would be overwritten).
Would like to use the universal Google Share Drive web based link (by selecting the file and choose "get link" in Google Drive and copy the link).
The Swap:
Current URL Mapping in my Macro example (if image above not showing):
^C^C(load "G:\shardrive\CAD_Department\CAD_menu\LISP\My_routine.lsp");My_routine;
Example of swapping with the Google Share Drive link (not working):
^C^C(load "https://drive.google.com/file/d/0BlU92IihdhhcnRlcl9mWxl/view?usp=sharing&resourcekey=0-0VxGZXU_D8YjtjgjzQZnQ");My_routine;
Another method I tried
^C^C(command-s "_browser" "https://drive.google.com/file/d/0BlU92IihdhhcnRlcl9mWxl/view?usp=sharing&resourcekey=0-0VxGZXU_D8YjtjgjzQZnQ/");My_routine;
Anyone know the proper syntax for the macro?
Thanks in advance!
Sounds like a more configurable approach is needed, where the users can map the drives with whatever path they want (G:, S:\ or whatever). But they can still use the tools that are inside said drive.
To do this there are three things that would help:
1.) start using AutoCAD profiles. It's possible write a setup script to create the profile for the user. This profile would contain a support file path entry for the location of your LISP code. The path would vary depending on where the user has google drive mapped to.
2.) load all LISP from the profile when AutoCAD starts up, this can be done with the acaddoc.lsp file.
3.) remove all hard-coded load statements from the CUI buttons
For the issue I mentioned in my comment above about opening a folder through the CUIX macro only (and not through a LISP routine), I found this possible solution:
^C^C(startapp "explorer" (vl-string-translate "/" (chr 92) "C:/TEMP"));
Credit to Paul_Gander and his comments located here:
https://forums.autodesk.com/t5/autocad-forum/open-a-folder-with-a-button/td-p/3010928
More testing needed but so far so good...
Thank you Paul!

How to convert CorelDraw .WI wavelet-compressed image

I have a large sample of .WI images I need to convert to e.g. JPEGs, but the format now seems defunct.
The mimetype is image/wavelet.
The compression algorithm was developed by Summus, a US company that also now seems defunct.
The last CorelDraw support for the format was under 32-bit Windows. If I go down the hardware route I need to be able to make calls to a server via e.g. REST.
I think under *nix djvulibre might be able to open the files, but I haven't been able to test this yet.
Another option is to re-implement the codec myself.
It would be a nice-have to be able to script this.
Here's an example file http://www.wolfgang-rolke.de/graphics/wavelet.wi

Load many pictures in a form

I was asked to develop a game called "Flag Quiz" in which the player have to guess the correct name of the flag that appears in the middle of the screen.
Of course I have a lot of pictures (221 flags) and I have to put them inside the program because, when the button Play is pressed, the program has to pick randomly 10 of these flags.
Problem
I was thinking to use an ImageList but the flags are 480x311 and so Delphi asks me to separate the picutre in 30 different bitmaps. Can I do anything about this?
My idea, to avoid that problem, was the following (although I think that it's not very good): create 221 TPicture components (invisible to the user of course) and load in each of them a picture of a flag.
I'd prefer not using the last idea I had. Do you know any improvement?
This sort of problem is simply not suited to the form designer. You want to store 221 images, and managing that in the IDE will be horrible. Once you've got them all in you won't be able to see them readily because they will be base 16 encoded in a .dfm file. Under revision control it will be a mess because you won't be able to change individual images in a manageable and traceable manner.
The accepted way to do this is to use resources. If it were me, I'd arrange for my images to have predicatable names. For instance, flag1, flag2, etc. I'd generate a resource script (.rc) that listed all the flags. I'd compile that resource script to a compiled resource (.res) which is linked to the executable. I'd have the resource script and the image files committed to revision control.
Then at runtime you have a single TImage control to display the flag. Every time you need a new image you load it with TResourceStream, and push it into the TImage control.
Devexpress has a Componnect named cximagecolletion that you can put your images on it and save and load images from/to file
or you can save all flags in small access db and load it when you need using tadodataset
there is no doubt that if you put your images direct on your form your dfm grow very high and so you Get Into trouble
Personally I would store each file as an image in a dedicated subdirectory, using the country as a file name. Then I would read the subdirectory file names on entry to the program (so I have a list of countries that I can randomly choose from) and use TImage.LoadFromFile to display the flag. This is far easier to extend than using a resource file (IMHO).

Saxon CE 1.1 - Using result-document to create a output file

I've been playing with Saxon-CE_1.1 over the last few days and have managed to create a little application that allows users to classify pictures according to a data dictionary using a select dialog. All was going really well until I tried to use the result-document() function in it's "classic" way, to create a new file in the file system containing the choices the user has made.
XML Quire is returing with a severe error stating:
XpathException in mode: '{http:saxonica.com/ns/interactiveXSLT}onclick' event: [object MouseEvent]: Expected '?select=' ir '#' at start of result document href found "filename.xml
This error seems, to me, to be stating that I must pipe the results back into the HTML using # or ?select/
Is it still possible to create "external" output using SaxonCE? If so how can I accomplish the task.
Until recently it has not been possible to read or write files in the local client machine from Javascript code running in the browser, and if Javascript can't do it, then Saxon-CE can't do it either.
This may change soon with the HTML5 FileSystem API, but as far as I'm aware support for this is still very patchy. When it appears to be more stable and widespread, we can certainly look at implementing both doc() and xsl:result-document to access local filestore (or indeed, implementing the EXPath file module).

Can RoR access and monitor an external hard drive on clients local maching?

I am trying to build web based file archiving app (like Apple Time Machine) that watches an external hard drive and when ever a file/folder is added it writes the file path to a database that can be searched later. So if user added this folder "My Folder" on this date "04/16/12" to external HD "Drive 1" and needed to find that folder or its contents at a later date they could search the name, date or drive name and the corresponding results would be returned.
Is this possible with RoR or would I have to use another language or a combination of the two?
Ruby can access the local system, see here for some examples of Disk IO operations possible:
http://www.tutorialspoint.com/ruby/ruby_input_output.htm
Obviously, this means the ruby must be running on the local disk. In theory, RoR could be used along with vanilla ruby code for this purpose, so long as it was all running locally. Seems like a hassle to setup a web server simply for some software to use however.
See this question for a discussion of Ruby frameworks that aren't for web apps:
Ruby App MVC framework (not web)
No. Ruby on Rails is a web framework. You'll need to use something client-side such Objective-C, C++, or even Java.

Resources