Read and write embedded cover art to music files - id3

I am adding cover art support to the Mixxx DJ mixing software. Code is written in Qt. I don't understand how to write code that will do the exact reading from and writing to files containing cover art. I can use external libraries to perform this task but it is required that the libraries are cross platform and preferably open-source. Libraries can be in any language. Adding dependencies to the existing software is not much of an issue.
Any links, suggestions, code will be greatly appreciated.

I will use taglib to check whether embedded cover art is present. taglib is already a dependency for Mixxx and supports read/write of all the common formats for cover art (mp4,ID3v2).

Related

collada External Reference

When I load the samples with viewer by collada dom 1.4.
externalRef.dae
<library_nodes>
<node>
<instance_geometry url="cube.dae#box-lib"/>
</node>
</library_nodes>
I tried many loaders of collada like glc_player,google sketchUp,but none of them succeed.
what is wrong?
I'm the maintainer of pycollada, and I've had extensive experience with the COLLADA format.
External references in COLLADA were a good idea, but there's almost no support for it across the set of libraries and tools available today. If you want to use external references in your own tools, that's fine, but you're breaking compatibility with almost every tool that imports COLLADA.
There's been some effort to fix issues like this with the COLLADA Conformance Test Suite, but there's hasn't been much adoption yet.
According to this doc: vandaengine doc OpenCOLLADA import/export should have support for external references, so does the vandaengine. I did not try this myself.

What to resources to read to import Excel data to AutoCAD?

Doing some preliminary work on a project. I work at an engineering firm and the engineers build Excel spreadsheets containing information on what material the project uses (called cable schedules). This data is handed over to the drafter and they turn it into an AutoCAD drawing. If a change in the spreadsheet gets made the drafter needs to meticulously change every drawing. This is supposedly a lot of manual work.
I know little of AutoCAD and was wondering what research I should do to see if and how hard it would be to automate this process. If a course or books are available I'd like to be pointed in that direction.
If you're looking to simply display some Excel data as a table in AutoCAD the functionality is already built in via AutoCAD's DATALINK command.
If you want to automate something more complicated than that check out Autodesk's ObjectARX. It's used to create AutoCAD plugins and can be downloaded for free from their website. ObjectARX exposes both .NET and native C++ APIs. It is the library that AutoCAD itself is based on.
The RealDWG API (formally ObjectDBX) that Chris Neilsen mentioned is a subset of the functionality available in ObjectARX. It allows you to read and manipulate AutoCAD drawings outside of an AutoCAD process. RealDWG is, however, not free.
As for documentation, the help files and samples included with ObjectARX are pretty good and there is a fair amount of programming discussion on the Autodesk and AUGI forums. If your employer is an ADN member you'll find a lot more information there, including professional support.
See this SO Question for a discussion of libraries to access drawing files, including ODA and
AutoDesk RealDWG and a few others
The library I use for manipulating Excel from AutoCAD is available as a download here:
http://download.cnet.com/KozMos-VLXLS/3000-2077_4-94214.html
I found it far easier to use this inside the VLIDE to manipulate Excel data (whether it has anything to do with AutoCAD or not), than to use Excel's VBA (a horror) or a combination of scripting and interop.
I did have to fix one or two mistakes in there, so bear that in mind...

Platform for creating a visual programming language

I'm interested in creating a visual programming language which can aid non-programmers(like children) to write simple programs, much like Labview or Simulink allows engineers to connect functional blocks together without the knowledge of how they are internally built. Is this called programming by demonstration? What are example applications?
What would be an ideal platform which can allow me to do this(it can be a desktop or a web app)
Check out Google Blockly. Blockly allows a developer to create their own blocks, translations (generators) to virtually any programming language (or even JSON/XML) and includes a graphical interface to allow end users to create their own programs.
Brief summary:
Blockly was influenced by App Inventor, which itself was based off Scratch
App Inventor now uses Blockly (?!)
So does the BBC microbit
Blockly itself runs in a browser (typically) using javascript
Focused on (visual) language developers
language independent blocks and generators
includes a Block Factory - which allows visual programming to create new Blocks (?!) - I didn't find this useful myself...except for understanding
includes generators to map blocks to javascript/python
e.g. These blocks:
Generated this code:
See https://developers.google.com/blockly/about/showcase for more details
Best wishes - Andy
The adventure on which you are about to embark is the design and implementation of a visual programming language. I don't know of any good textbooks in this area, but there are an IEEE conference and refereed journal devoted to this field. Margaret Burnett of Oregon State University, who is a highly regarded authority, has assembled a bibliography on visual programming languages; I suggest you start there.
You might consider writing to Professor Burnett for advice. If you do, I hope you will report the results back here.
There is Scratch written by MIT which is much like what you are looking for.
http://scratch.mit.edu/
A restricted form of programming is dataflow (aka. flow-based) programming, where the application is built from components by connecting their ports. Depending on the platform and purpose, the components are simple (like a path selector) or complex (like an image transformator). There are several dataflow systems (just I've made two), some of them has no visual editor, some of them are just a part of a bigger system, and there're some which don't even mention the approach. (Did you think, that make, MS-Excel and Unix Shell pipes are some kind of this?)
All modern digital synths based on dataflow approach, there's an amazing visual example: http://www.youtube.com/watch?v=0h-RhyopUmc
AFAIK, there's no dataflow system for definitly educational purposes. For more information, you should check this site: http://flowbased.org/start
There is a new open source library out there: TUM.CMS.VPLControl. Get it here. This library may serve as a basis for your purposes.
There is Snap written by UC Berkeley. It is another option to understand VPL.
Pay attention on CoSpaces Edu. It is an online platform that enables the creation of virtual worlds and learning experiences whilst providing a more flexible approach to the learning curriculum.
There is visual coding named "CoBlocks".
Learners can animate and code their creations with "CoBlocks" before exploring and sharing them in mobile VR.
Also It is possible to use JavaScript or TypeScript.
If you want to go ahead with this, the platform that I suggest is the one used to implement Scratch (which already does what you want, IMHO), which is Squeak Smalltalk. The Squeak environment was designed with visual programming explicitly in mind. It's free, and Smalltalk syntax can learned in half an hour. Learning the gigantic class library may take just a little longer.
The blocks editor which was most support and development for microbit is microsoft makecode
Scratch is a horrible language to teach programming (i'm biased, but check out Pipes Visual Programming Language)
What you seem to want to do sounds a lot like Functional Block programming (as in functional block programming language IEC 61499 and other VPLs for mechatronics development). There is already a lot of research into VPLs so you might want to make sure that A) what your are trying to do has an audience and B) what you are trying to do can be done easily.
It sounds a bit negative in tone, but a good place to start to test the plausibility of your idea is by reading Davor Babic's short blog post at http://blog.davor.se/blog/2012/09/09/Visual-programming/
As far as what platform to use - you could use pretty much anything, just make sure it has good graphic libraries (You could use Java with Swing - if you like pain - or Python with TKinter) just depends what you are familiar with. Just keep in mind who you want to eventually launch the language to (if its iOS, then look at using Objective-C, etc.)

linux disassembler

how can I write just a simple disassembler for linux from scratches?
Are there any libs to use? I need something that "just works".
Instead of writing one, try Objdump.
Based on your comment, and your desire to implement from scratch, I take it this is a school project. You could get the source for objdump and see what libraries and techniques it uses.
The BFD library might be of use.
you have to understand the ELF file format first. Then, you can start processing the various sections of code according to the opcodes of your architecture.
You can use libbfd and libopcodes, which are libraries distributed as part of binutils.
http://www.gnu.org/software/binutils/
As an example of the power of these libraries, check out the Online Disassembler (ODA).
http://www.onlinedisassembler.com
ODA supports a myriad of architectures and provides a basic feature set. You can enter binary data in the Live View and watch the disassembly appear as you type, or you can upload a file to disassemble. A nice feature of this site is that you can share the link to the disassembly with others.
You can take a look at the code of ERESI
The ERESI Reverse Engineering Software Interface is a multi-architecture binary analysis framework with a tailored domain specific language for reverse engineering and program manipulation.

Generate class diagram from existing javadocs

I'm using an external java library for which I only have the javadocs and do not have the source code. I'd like to generate a UML diagram from the existing javadocs so that I can visualize the class hierarchy using something like Graphviz. Is that possible? Note that what I'm looking for is a graphical version of overview-tree.html.
Please let me know if you have any ideas and/or suggestions.
Thanks,
Shirley
I don't believe that there is such a tool. Most of the reverse engineer tools depend on the actual code. The javadoc information isn't guaranteed to match the code as a 1:1 for the structure, thus making it unreliable.
I'm not familiar with any off-the-shelf solution for this purpose. Most commonly folks have the source code that generated the JavaDoc.
That being said, the overview-tree.html traditionally has a fairly straightforward HTML format.
It should not be difficult to write a script that would read the file as text or as a DOM, reconstruct the hierarchy of UL and LI tags, and use that to build an input file for graphviz. I've done similar stuff in the past with other forms of data.
It's just a matter of time and proficiency with the scripting language or appropriate tools.
The one problem of this approach is that you would only get the hierarchy of classes. You would have to make it somewhat smarter if you wanted to get the "implements XYZ" and create multiple hierarchies. Even if you could get that data, you would have to manipulate GraphViz's levels to get it to provide an appropriate layout once you have this multiple inheritance structure.
Of course, adding the details of the members would turn this into a whole new problem since you will have to access other HTML files.

Resources