QuickTime components: one key to step further!

Final Cut Express could almost open my Bandicam AVI captures: no image but sound. I recalled that I chose to use Xvid as encoding format in Bandicam so tonight, I did a quick Google search to find some QuickTime components that could add Xvid support. I was not really hopeful to find anything useful, was expecting to get blocked by yet another trial version, but instead, I found Perian, a set of QuickTime components supporting several formats. Although the project reached its end of life, it can be of some help, and this is definitely better than nothing! It’s free and likely to be released as open source when it is final.

I couldn’t resist the temptation of powering my Mac up again, download the tool and install. That worked very well, no issue. After I did that, I was able to play my Bandicam AVI files in QuickTime, smoothly, no choppy video! I was also able to import such an AVI file into Final Cut Express. Very nice! That means I can use Final Cut Express to work with ANY Bandicam capture, including my next set of Minecraft videos if I feel at trying my luck with this.

Digging a bit deeper, I found out that the MPEG4 causing issues with Final Cut Express are the ones from my Android phone. They are encoded using H.264 AAC, which is quite expensive to decode. This explains why I was getting choppy video yesterday! Moreover, I found out that my new Nexus 5 creates 1080p videos, which really doesn’t help my poor old MacBook Pro! I still have to check the encoding out of my GoPro, which also resulted in choppy videos on my Mac, but again, 1080p definitely doesn’t help, even alone.

I tested with a video from my Sony Cybershot digital camera: MPEG4 encoding in 720p. That played smoothly in QuickTime and imported into Final Cut Express!

That means I can, at least in theory, do something with Final Cut Express now! I expect the machine will soon be too slow for any non-basic editing, especially with my HD material I intend to throw at it (even 720p may hammer it to death), but at least I will have a way to try out Final Cut Express. If the tool happens to be too cool, I will have to choose between putting my Hackintosh back up or purchasing a newer Mac.

 

Desperately slow

This morning, I tried to install Razer Synapse on my Mac now equipped with Mac OS X 10.7 (Lion). That worked very well but brought absolutely NO improvement with respect to mouse smoothness. In fact, it does absolute nothing: no compensation or removal of the unwanted acceleration, and no handling at all of the side buttons. That program seems to only manage keyboard macros, completely ignoring the mouse. I thus had to reinstall SmoothMouse.

Then I started to have issues with the mouse wheel. Sometimes it wasn’t working at all, sometimes it was scrolling in the wrong direction, sometimes it seemed correct after a couple of attempts. I found an option in Mouse preferences to invert direction of scrolling and unchecked that. That may partly explain the erratic behavior.

The biggest disappointment came from performance. Boot up time is more than a minute and a half and no video playback of any kind is possible. I tried YouTube with Flash, with HTML5: choppy video with correct sound. I tried to play MPEG4 videos with QuickTime: choppy video with correct sound. It seems I would have to convert all my videos to QuickTime, probably with reduced resolution. This is kind of pointless and very time consuming. In fact, QuickTime won’t play AVI files as well: again, transcoding is required. That can of course be worked around with any good video player such as VLC, MPlayer, maybe even Kodi/XBMC, but then I slowly but surely come up to the conclusion that ALL Apple applications need to be supplemented or replaced with a cross-platform alternative that can also work well, even better, on a non-Mac environment!

Final Cut Express, while claimed in the documentation to support many input video formats such as MPEG4 and AVI, happens to support only QuickTime .mov files. As far as I read, QuickTime is a container: a .mov file can contain different kinds of video and audio streams. In practice, there is no tools capable of repackaging a MPEG4 or AVI file into a QuickTime movie: tools will slowly and wrongly reencode video, recompress audio, into some kind of probably proprietary, unknown, undocumented, Apple-specific format. Maybe only trial versions of commercial tools can do the repackaging, if at all possible.

Final Cut Express miserably failed at importing MPEG4 files from my Android phone, bailing out with useless error message. I tried with AVI files from video captures with Bandicam with a bit more success: Final Cut Express imported the clip, was able to preview sound but displayed no video.

Sometimes, more and more often, system response became unacceptable. The mouse started to be choppy, literally jumping from one place to another. Sometimes, the movement was smooth, sometimes the mouse would jump ahead, sometimes the mouse would stop moving. When that happened, I had to shut down applications, which took up to THIRTY seconds!

After that, keyboard stopped working properly. This started with CTRL-F2 not opening up the menu bar. I had to change the binding for CTRL-F10, for no obvious reason. That worked an hour or two, then ALL F1-F12 keys on my Razer external keyboard stopped working, no reason, reboot required to fix! Probably the USB stack has some quirks to flaw non-Apple devices but make people believe they CAN work. So I would have to pay 50$ for an Apple keyboard, 70$ for an Apple USB trackpad or mouse, and find some place to install all this or move all my stuff around when switching from my PC to my Mac.

Conclusion: this machine is almost unusable. I REALLY would have to downgrade to Snow Leopard, probably even better to Leopard, to do anything with this, and even then, what’s the point of using Final Cut Express if I need to preprocess all my input files into QuickTime, loosing quality during the lossy process, and then let Final Cut Express scramble the video information once more during its rendering phase?

From Snow Leopard to Lion: a leap towards the limbo

Again, I was a bit stuck with my Mac. SmoothMouse was helping with the mouse handling but not fully solving the issues with acceleration. Sometimes, the pointer was just going away. I cannot believe I loose it so often: it just disappears! I often have to bring the pointer to the top left corner two or three times per mouse action! Mouse wheel also moves super slowly, making it almost useless. I have to give it an hard swing for scrolling to begin. Besides this very frustrating mouse response, side buttons are just not working. Besides trying with all the proprietary solution, probably ending up purchasing each of them one after the other to figure out none of them will work correctly for me, there was another thing to try: Razer Synapse. But it was requiring Mac OS X 10.7, so named Lion.

Moreover, I tried on November 28th 2014 to synchronize my Google contacts with the builtin Address Book application, again without success. I took me almost fifteen minutes to figure out that the instructions I found to do it were inaccurate. They were referring to a sync menu item while the command to sync was an ICON in the top right area! The icons are too tiny so I don’t look at the area all the times in case of something that appears! The sync icon was there: i had to click on it and select the command to synchronize now. After all these efforts, I got no result, again, no sync.

I was also hoping that getting an updated Mac OS X version would give me better chances to import video files into Final Cut Express without transcoding everything to .mov files.  I read that Final Cut Express is using the QuickTime stack which is built into Mac OS X, so a newer Mac OS X implies a newer QuickTime stack.

Last weekend, I decided to try my luck with this upgrade and stop using that dumb machine if it fails or makes the system unusably slow. Easy, I though, just go the the Mac App Store, get Lion, buy and download. No, no more Lion app, just Mountain Lion! Grrrr, AGAIN! I searched on Google once more, and found that Lion can be purchased from the Apple Store. Again… Will I really have to wait for a new shipping?

No, not this time, have I found. The purchase of Lion gives you a content code to download the product. However, the code came only two days after the purchase. What? That means there is a manual process to get the content code? Quite bad design, once again. I also found on a forum people that waited for ten days to get the code without success. They had to phone Apple, not even email support, to get the email resent, the resent didn’t happen, they had to phone again, etc. I found some downloads of Lion on Kickass that I could try my luck on, but there were images for VMWare and VirtualBox, so I would have ended up downloading gigabytes of data for nothing until I find a correct Lion installation!

Fortunately, I got two emails about an Apple License Agreement from Apple Volume Licensing. Opening the first message was giving me a PDF attachment with indications that the password would come in a second email. The second email was providing the password. If I didn’t look at these emails in depth, I would have thought they only provided a somewhat useless license agreement, not the content code I really needed. I think some people did that mistake and just ignored or deleted the emails. This may explain why some people waited ten days for the content code, contacted Apple, got the email resent, waited, didn’t get anything, etc.

The content code WAS in the PDF file! I needed the first email with the PDF, second email with the password, open PDF, and then the code was there along with the agreement!

Back on my Mac, I plopped the code in the Redeem code part of the App store. That didn’t work, because I had to accept the new conditions for the App Store. I had to reenter the code, then that worked and finally started downloading Lion! Before letting the beast install, I made a backup copy of the installation application.

The installation took almost an hour, but at least it worked. This gave me the launch pad as was as iCloud integration. Synchronization of address book now works and I presume I will be able to installer Synapse now. However, the machine is significantly slower since I upgraded it.

I’m slowly loosing interest in exploring the Mac platform. It seems that Mac OS X is now behind Windows in term of maturity and responsiveness. Apple did the exact same mistake as Microsoft a few years ago: stacking more and more useless functionalities on top of a core, assuming more powerful CPU and higher memory will alone compensate lack of judgment from software designers and programmers. I’m quite annoyed to pay for that mistake once again. I know Microsoft fixed that since my Pentium D bought in 2006 started with Windows XP and evolved to Windows 7, while my Core i7 went from Windows 7 to Windows 8 without significant performance degradation (stability and compatibility are other stories…). Maybe this is fixed in Mac OS X 10.9 or 10.10, but the machine I have just cannot run these versions of Mac OS X, so I would have to revert back to my brittle Hackintosh to continue my exploration of the Mac world.

Groovy and Eclipse incompatible in practice

This week, I tried to get my Groovy+Eclipse setup back and running, because I needed to debug a complex script that was outputting 15-20 line stack traces with a lot of useless information about Groovy internals. Finding the exact error message was taking me several seconds and no matter how hard I was trying to fix things, I was getting other and other errors. A step by step debugger was more than welcome.

I looked once more at Groovy web site for the presence of the plugin for Eclipse 4.4. Up to last Monday, release was supposedly imminent. Searching on Google was giving information that the special STS bundle of Eclipse 4.4 was providing Groovy integration. Wow, will I really have to install a special version of Eclipse to get Groovy now? I didn’t want to get STS which will give me Grails, Spring, etc, which I don’t need.

But last Monday, release was there. I tried to install it, but I found out it couldn’t install because of a compatibility problem with some of the features I had in my environment. It is possible that the plugin works only with the original version of 4.4, not the SR1. I tried a couple of times without success, then fell back on the development build. This one installed. I’m not sure it will be stable, but it was better than nothing. However, the same way as in August 2014, I was consistently getting the following error message:

Conflicting module versions. Module [groovy-all is loaded in version 2.2.1 and you are trying to load version 2.3.6

No matter how hard I searched for a solution, there was NO result. I opened my Maven POM file in Eclipse, pulled the dependency hierarchy, searched for Groovy, and found only one Groovy-All dependency. Nothing other than Groovy 2.3.6 was pulled by transitivity from other dependencies. Any search on Google was yielding results about Grails. Some people fixed the issue by removing the GROOVY_SUPPORT container from the build path: well, no GROOVY_SUPPORT in my build path.

I then thought about running a simple Java program in the same project as my Groovy script and output the class-path from the System.getProperties() object. Looking at the JARs in the class-path, I found no Groovy dependency. From my dummy program, I then tried to call my Groovy script. The script is compiled just as a regular class with a main method that I called… with success!

I then found out that you can execute a Groovy script as a regular Java Application in Eclipse: no need to run as a Groovy script. The script runner most likely involves a wrapper with a Groovy 2.2.1 dependency. This wrapper is built into Eclipse’s Groovy plugin. Running directly as a Groovy class avoided the introduction of the Groovy 2.2.1 dependency in the class-path alongside Groovy 2.3.7 so I got passed the hurdle and was able to more easily debug my code! During the process, I updated to Groovy 2.3.7 to match what was used by Groovy Eclipse.

The newest version of the Groovy plugin behaved a bit better, allowing me to use conditional breakpoints a couple of times, as opposed to the last version for which that was consistently failing with compilation errors.

For the complex stack traces, there is a simple solution: the StackTraceUtils class has methods to sanitize stack traces, removing frames related to Groovy internals. I just wrote a small uncaught exception handler and registered that as the default handler, and tada, more compact exception traces! Of course, I have to do it for each of my scripts, but that’s just a one-liner since I put the code registering the default handler in a utility method.