Until the archive and refresh happens, how about a quick update on some basics on my professional life from the past 7 tears as a start? Probably a good place as any to start.
A quick aside – you may be able to tell from going back through old entries on my site/blog – all the way back to the oldest entry from July of 2001 (when I started making entries in a custom system I developed that had a Flash front end) – I used to focus just primarily on tech related to my work and Macromedia/Adobe Flash related tech (which was a huge focus for me – thanks Flash – you paid the bills!) – along with a healthy dose of my personal and professional projects for self-promotion and to help push my career forward and garner work. It’s been nearly 10 years since I updated this site with any real regularity. In that time, I’ve changed, my family and friends have changed, my kids are teenagers, social media has changed, world politics have changed, tech is always changing, the universe is in a constant state of entropy – its the law! All this change, so I think I’ll be switching gears and changing the diversity of my content too. I don’t have the same desire or need for the same level of self promotion now, and I’d rather share more of my broad interests and hobbies. Sounds like a plan – but lets get the employment stuff out of the way to make room for the fun stuff.
Back to 2013, I was with PointRoll (great fun place, cool people) for a few years, PointRoll, sadly, was acquired by Sizmek in November of 2015. I watched a lot of great people get laid off – which was terrible – I stayed on through June of 2016 – which was “REDACTED“. I had been planning on taking some time off, but that was short lived, as a slew of exciting opportunities literally fell into my lap. A couple would have involved insane commutes, or me moving across the country to California or Washington, but I wasn’t ready at the time to uproot my kids and family, for a variety of reasons.
Luckily something perfect came along in my own backyard – an offer to join Scala Inc. a big player in the digital signage space (not the JAVA language variant) located not far from me in Malvern, PA. Scala has an interesting history/timeline – and some of it is documented. They’ve been around for over 30 years, and many of the core developers, including several still with us, came from various teams at Commodore (Amiga OS and others) since the old Commodore headquarters were nearby in West Chester (and where QVC now operates) and the original incarnations of some of Scala’s offerings were for the Amiga platform.
I joined in September of 2016, right as they were being acquired by Stratacache (which has turned out wonderfully) and as a former colleague of mine was taking over as COO of Scala. I jumped at the opportunity and dove in headfirst. I’ve been cranking away there for a little over two and a half years now and I am really enjoying it – time is flying by very quickly. I get to use all my past expertise and experience in interactive software development, design, art, immersive experiences, product development and programming on all kinds of interesting projects. Plus I get to do it all with some of the most awesome people and teams all over the world (including former colleagues and friends we have recruited to also come onboard) under the ever-expanding Stratacache umbrella. In fact I’m heading to Las Vegas tomorrow to help man the Stratacache booth at DSE 2019 – we have a ton going on there. I’ll be speaking in our Emerging Tech Theater and demonstrating some really cool collaborative VR projects we have been working at Scala and Stratacache – including some work I have been heading up in partnership with NVIDIA where we are leveraging their Holodeck Technology for some amazing photorealistic collaborative design in VR. If you are in Vegas stop by!
That is probably enough for now. So much has changed in my personal life too – but that will have to wait for another time and a site wide refresh.
This was probably around the 6th or 7th major iteration of the site to go live since I registered the domain back in the late 90’s (back when you registered domains by faxing a form to InterNIC). I hope to make the next iteration a bit more interesting – stay tuned!
]]>I want to thank all of my fantastic friends and clients who over the years have provided some incredible opportunities and projects to work on. I wouldn’t have been able to support my wife and children for so long and so well, had I not been lucky enough to have such wonderful clients to collaborate with on so many cool projects – thank you all for a such a fantastic streak!
I plan on a follow up post once I settle in, describing more about what I’ll be doing – hang tight
The model I happen to have is an Onkyo HT-RC270 and I really like it. I have owned Onkyo receivers and equipment before, and pretty much all their receivers built after middle to late 2010 all have ethernet capabilities built in. There were only some very basic apps out for a while when they first arrived, but quickly third parties put out some great apps, especially for Apple iOS devices. Onkyo put out there own for iOS, the first version wasn’t so great, but the new version 2 available for iOs and Android, is much nicer. My favorite, is a third party app oRemote, the iPad version in particular is really nice. The availability of these apps also put a little damper on my enthusiasm to complete the project, but I got it to a point where it does all the basics I needed. One of my goals was to have something my wife could use that was very simple and just allowed her to switch all the various input sources and volume controls – the basic essentials, something easy enough that even the kids could navigate. Compared to the remote that it comes with, the app is very simple, but accomplished that goal, and is stubbed out to handle all the other features with some further development. I also feel there is value in a dedicated desktop app – all the apps I have seen focus on mobile apps. However, I work from home, and use it all the time, and using it right from my desktop is really handy. Since it’s all done over WiFi and the Onkyo devices support more than one Zone of active speakers, finishing up a desktop version still has some appeal and usefulness.
I started this project just before Adobe released Native Extensions for Adobe AIR and so I had planned to use that for a portion of the project as well. Adobe AIR for mobile does not currently support UDP sockets, nor does it support broadcast addresses over UDP or TCP, on either mobile or desktop. That is unfortunate as those two features would allow for UPnP style device detection automatically. Right now the app requires a manual input of the IP address, but a Native Extension for AIR to handle the UDP sockets and broadcast address functionality would give it the full capabilities to do the UPnP style auto-discovery of the device. I think this would be a valuable Native Extension that could be used for other projects as well. Something I may spend some more time on – and if anyone is interested in collaborating, feel free to drop me a note.
It’s is really rather useful, and very approachable even for someone unfamiliar with jQuery or just basic knowledge of JavaScript. One of the nicer aspects of it, is that even when using Flash for delivery, the entire UI and controls are all still done in HTML and CSS and controlled via JavaScript and communicate with Flash via ExternalInterface. This makes it very flexible in terms of layout, skinning and branding. This happened to match perfectly with what my client was trying to do, so it was a great fit. Unfortunately it only supported HTTP progressive delivery of content in Flash and there was no support for Adobe’s RTMP for for streaming audio and video sources. So that is what my fork encompasses, adding support for RTMP audio and video sources. The fork I put together can be found here:Â http://github.com/rmhall/jplayer/Â and includes some of the more expected things from RTMP, such as multi port/protocol negotiation, re-use of connections, and some other standard stuff. No multi-bitrate support or advanced QoS metrics, but that is on the drawing board/Todo list. I actually got word just the other day, that at some point soon my additions and changes will be incorporated into the main repository. That will nice as others may poke and prod at it to improve it beyond what I have done. If you are interested in learning more, read the README and RTMP_NOTES files located in my fork. I also welcome any improvements, suggestions, etc. – feel free to open any issues and make note right in the github repo.
If you would like to see the end results of the changes in action for my client, check out Daytrotter – http://www.daytrotter.com/
I’ve been working with several other audio and video frameworks the past few months, and plan to write up some of my experiences about them all and possibly do a bit of comparison of each. With the current state of HTML5 support for audio and video being still fairly fragmented across browsers, and so many different libraries and approaches for tacking this, I’ve found that depending on the needs of the project, some libraries and approaches have real benefits over others. I’ve also been working on some custom/hybris solutions and hope to be able to share some of that work here soon also.
More to come, especially once MAX is fully underway. Also, we will be having a local Philly MAX recap meeting in the week or two after MAX, more info here: Adobe MAX 2011 and Local Recap Meeting in October
“ipa-test-interpreter — functionally equivalent to a test package, but compiles more quickly. However, the ActionScript bytecode is interpreted and not translated to machine code. As a result, code execution is slower in an interpreter package.”
Now you may be thinking great that is awesome, I’m going to start using it, where is it. Well the rub is that currently, it can only be used when invoking adt.jar from the command line to compile your .SWF file to an AIR based .ipa. There is no GUI option for it in Flash CS 5.5 yet. This is not a problem for a lot of folks using ANT, or Flash Builder, or those comfortable with the command line. However, if you are using Flash Professional CS 5.5, then given the lack of any GUI based control over this, you would have to publish your .swf file, switch to a terminal prompt or run some other script in order to invoke adt.jar with the proper -target option. If you’ve ever done development for iOS and know how many clicks are already involved in getting a new .ipa onto a device even when using Xcode or the iPhone Configuration Utility instead of iTunes to take some shortcuts, its still a lot of manual operations, add in switching out of Flash and invoking adt.jar manually, and it is way too much repetitive, annoying operations. A lazy developer is the best developer – be a lazy developer and make a tool to help you be even lazier.
I hate all that extra clicking around as much as the next guy, being a lazy developer, I decided there has to be a way to make this easier. Surely at some point Adobe will enhance Flash CS 5.5 to leverage this new feature directly in the IDE, but I wanted it now. So last night I put together a custom solution that replaces the AIR adt.jar with a shim adt.jar based on a teeny-tiny java class I hacked together, that accepts the arguments from Flash CS 5.5, adjusts the -target option to ipa-test-interpreter, and along with a custom Automator Workflow (containing some shell script, and Applescript) – decouples the process and allows you to publish your .ipa with this new fast interpreted mode. It even includes some nice Growl based notifications, opens the folder where the .ipa is compiled and opens the iPhone Configuration Utility for you automatically so you can just drag and drop your .ipa and get on with testing. Not only solved the problem, but added some bonus functionality. Sweet huh?
A nice side effect is that you can easily retain the log of your adt.jar compilation arguments to use them to create template scripts of common adt.jar scripts you might re-use later. Granted this is a hack, albeit a nice one, but it does have a dependency on Apples Automator, so its currently Mac OS X only. For you Windows folks, you might look into possibly using a classloader to invoke the real adt.jar Main Class entry directly from mine to allow it to work on Windows (that a whole other can of worms) and avoid the dependency on Automator. This wouldn’t allow the other bells and whistles, but it might be workable.
You can see a video of the workflow in action here where I am publishing an app I am working on with this method/code.
http://www.impossibilities.com/projects/custom_AIR_ADT/customADT.mp4
Download the source code and binaries for everything (at your own peril, it is provided “as-is”), along with detailed instructions and notes here:
http://www.impossibilities.com/projects/custom_AIR_ADT/customADT.zip
If anyone makes any nice improvements or additions, please drop me a note or post a comment here. Good luck and happy compiling!
Here is a recap of the top new features, and then a list of other good links discussing AIR 2.7 I’ve consolidated.
NEW FEATURES for MOBILE:
NEW FEATURES for DESKTOP:
For additional feature and release details please read the AIR 2.7 developer release notes.
Collected Links about AIR 2.7:
Get the AIR 2.7 Runtime
AIR 2.7 developer release notes
Get the AIR 2.7 SDK
Paul Trani covers the new features of AIR 2.7
Flash Player Runtime Blog discusses AIR 2.7
Flash Player Team announces AIR 2.7
Lee Brimelow covers AIR 2.7
UPDATE: 06/16 – More info and the future of AIR for Linux:
I’ve had a couple commenters ask about support for AIR 2.7 for Flash Builder and its been noted by many that, this month, Flash Builder 4.5 will get an update to enable support for AIR 2.7 and PlayBook will receive an update OTA of AIR 2.7 by the end of June. Also the 2.7 SDK is easy to install for Flash Professional CS 5.5 – its as simple as unzipping the SDK, and drop the folder into the Flash Professional CS 5.5 application folder and rename it “AIR2.6”. There are actually a few more steps to fully install – for the full list of steps visit this link.
I’ve added some thoughts, and links about the future of AIR for Linux that didn’t get as much coverage originally. Including a good read from Oliver Goldman that provides a broader view of what the teams have been doing with AIR and mobile the last few years and some good info from Dave McAllister on the logic behind some of their decision making. I’ve already seen plenty of articles and developers (both for and against AIR) publicly and privately crying foul about Linux as a second class citizen, and a loss of trust with Adobe now, lack of insight to their roadmap – the whole gamut of concerns about the decisions around AIR on Linux. I don’t see it as black and white as many other do. In fact, I think it will be a good thing, which I’ll explain in a moment. First though, I hate to see that important information about the decisions are not being highlighted in many of the articles I am seeing, like this article on Electronista.com fails to point out one of the biggest take aways from Dave’s article and Adobes FAQ on AIR on Linux, is that its not been 100% sidelined but that instead they have shifted their resources to providing OSP Partners (OSP is Adobe’s Open Screen Project), like Google, Intel, RIM, Nvidia, ARM, Nokia, HTC, Comcast, LG, Mips, Motorola, Cisco, etc. (full list here) a Linux porting kit for AIR (including source code), so that if they choose to do so, they can implement their own vetted and approved versions of AIR for PC’s, mobile devices, TV’s and TV-connected devices like set top boxes and other consumer devices. More info on the porting kit and announcement about the strategy can be found here.
I posted a comment to that effect in a few places, like at that Electronista article pointing out that info, as it seems like they left out a critical take away that would have made for a much more informative and complete article instead of what, when seeing that bit left out, makes the authors of the articles at the least, less informed and not very thorough in their reporting and merely regurgitating without any critical thought, to at the worst jumping on the bandwagon of Flash bashers simply for the sake of driving page counts. I especially feel it is an important take away and to paraphrase Dave McAllister and Mark Hopper, by shifting Adobes focus to the porting kit and support of partner implementations, Adobe expects to provide broader support for AIR across Linux-based PCs and devices, whereas their own desktop Linux releases have accounted for less than 0.5% of lifetime AIR downloads. A good look at what RIM and Adobe have done for the Blackberry Playbook and it support of Flash in the browser on the device and as one of its options for native applications (albeit for QNX and not Linux proper) should serve as a good idea for what kind of fruit this shift in focus could bear. Its also worth pointing out that back in the Macromedia days, this was a similar model to how Flash Lite and custom variants of Flash for whole device UI’s worked – OEMs would license the source and work with Macromedia and a some select partners to make their own custom implementations. Palm, Sony, Nokia, Samsung, Kodak and others come to mind. I feel that the big push we have seen and performance improvements in AIR for iOS, Android and the Playbook, combined with this shift we will actually see more Flash/AIR on Linux in the future as opposed to if Adobe has been the sole driver/enabler/maintainer going forward. This is just my opinion, but I’ve been watching Flash evolve for almost 15 years now, and I’ve seen things that have floundered and flopped, and directions that didn’t work, but I feel the decisions behind this one are sound, and that it will be for the best long term.
Here are some additional links about AIR and Linux:
Adobe’s Flash Player has been getting a lot of press lately. Mainly in regards to HTML5, the Apple iPad (and its closed garden), performance on the Mac OS X platform, the changing face of mobile and other related discussions. The crux being Flash’s relevance and importance now and in the future. Posts and comments around the web have covered the entire spectrum, with everything from loquacious pontificating, to lugubriously laconic, to outrageously uninformed. They have all been quite polarizing in one direction or another. The biggest take away for me after absorbing everything for a week or two, has been the fact that the right people are listening and hear us and are also speaking up or acting. There have been several posts that I felt were especially well said and or align well with my own personal thoughts, so I wanted to highlight a few of them:
There are quite a number of other great posts around, and even more that I felt were just way off base or totally wrong – but for me again the biggest take away is that people are listening and acknowledging things that can be improved and putting their money where their mouth is and committing to certain actions and more transparency. Kevin’s promise to have the Flash Player teams publish some performance metrics for the various platforms, the transparency and insight that Emmy Huang Flash Player Product Manager blogged about and some plans to improve bug reporting process’s around the Flash Player – these are really great things that exemplify the level of commitment and care that Adobe places on its products and the community of developers and designers that use them.
So how can you get involved to improve things and shape the future and stability of Flash Player 10.1 and AIR 2.0? Get involved and install the latest betas and test them!
Download and install Flash Player 10.1 Beta 2 and AIR 2.0 Beta 2
Then test against your existing content and applications, surf the web and check out existing content and most important of all: Report any bugs or problems you find at http://bugs.adobe.com/ – This is the critical step as engineering teams use bug reports to reproduce errors, and improve the overall quality and stability of the releases. You can also browse through existing bugs and ECR’s (requests for enhancements/new features) and vote for ones you determine to be important.
Flash Player 10.1 and AIR 2.0 are both at public beta 2 and available through http://labs.adobe.com/ with beta 3 releases a few weeks away and final candidates expected within 60 days. Now is the time to get involved and test and report any issues bugs you find.
There are public discussion forums you may also leverage: Flash Player 10.1 and Adobe AIR 2.0
Ted Patrick has a great post summarizing this effort, and another way you can help is to spread the word by tweeting directly about this: Improve Flash 10.1 & AIR 2.0 via Beta 2 http://bit.ly/cty7Nm READ & RT #Flash #AIR #QUALITY
Finally, its also worth noting that you can sign up to be considered for Adobe’s Prerelease teams to get further involved in beta testing their products via this link: http://labs.adobe.com/wiki/index.php/Prerelease