Author Archive

Some Tweaks to RemObjects TV and Radio

We’ve made some tweaks to RemObjects TV and RemObjects Radio integration with the web sites, today. For one, new podcast episodes and videos will now show aggregated in the main blog feed and here on the blogs website.

We’ve also updated remobjects.com/radio from the static page it was to be driven by actual content from the podcast RSS feed, and embedded a player in the website (using the HTML5 Audio tag on Webkit, and falling back to a Flash player on IE and FireFox (the latter of which does not support mp3. An even odder choice than not supporting H.264, IMHO).

Also, remobjects.com/tv has the embedded player tweaked as well, to fall back to Flash on FireFox (as it already did on IE). As Jim mentioned in his previous post, Ogg didn’t really perform that well, and having to render two versions of the videos is a pain — with the current setup, a single H.264 version will play (and smoothly so) everywhere.

by marc hoffman, September 1st, 2010

Delphi Prism XE is Available Now!

Hi.

This is just a quick post to let you know that Delphi Prism XE is available now.

XE is a pretty minor update to Delphi Prism over the Delphi prism 2011 release we shipped in May, but it does contain quite a few fixes, tweaks and enhancements, so it’s an update we are very excited about getting out to users.

If you already have Delphi Prism 2011 (whether standalone or via a recent purchase of RAD Studio or a RAD Studio with SE), your existing serial number will work out of the box, and you can grab the trial download to upgrade. No need to wait for that email from Embarcadero. If you have RAD Studio 2010 without SA, you will need to upgrade to XE (or get SA) – but on the plus side, that means you’re currently still on Delphi Prism 2010, which makes the XE release much more exciting for you, as it will bring you a lot of new stuff, starting with VisualStudio 2010 and MonoDevelop IDE support.

You can find a complete list of changes in Delphi Prism XE at http://remobjects.com/changelogs (check also the Delphi Prism 2011 section, if you are coming from 2011. Yes, you will need to scroll down quite a bit!)

And, of course, you can grab the trial version from http://remobjects.com/trials. Note that there’s a separate download for the edition that integrates onto MonoDevelop/Mac (the regular Windows installer includes support for MonoDevelop/Windows).

Enjoy!

by marc hoffman, August 30th, 2010

Delphi Live — Day 2 Recap

Day 2 was busy and eventful. We started out with Sebastian‘s presentation of Hydra, our cross platform plugin framework that allows you to mix and match code written in Delphi/Win32 and in .NET (preferably of course Delphi Prism, but also C#, VB or any other CLR language) in the same application. Sebastian built an application from scratch that hosted a WPF based Telerik gauge control in a native Win32 application. He also showed how to communicate bidirectionally between the managed plugin and the host, by creating interfaces that are shared by both sides of the equation.

Sebastian’s second session later that day focused on language features that are specific to Delphi Prism, including class contracts, the colon operator sequences and iterators, future types and much more. The session quickly developed into an interactive workshop, where Sebastian write code on the fly to illustrate various aspects of the language based on questions from the audience, and it was my impression that all attendees were quite intrigued by the capabilities offered by Delphi Prism (both compared to native Delphi, and compared to C# and other .NET languages). Many times, we heard the question “when will we get this feature in native Delphi?” ;)

Jim rounded off the day with a short introduction into Silverlight (with Delphi Prism), a talk that he would repeat the next day with more detail in the form of an intensive 3.5 hour workshop. Jim gave a thorough introduction to the platform, from basic concepts such as XAML and layouting to more advanced topics such as data bindings (including a sort excursion into Data Abstract with a demo on how to connect a Silverlight client to data from our PCTrade sample server). Most of the attendees were new to Silverlight (or even .NET) and, from the feedback we got, found the two sessions intriguing and were looking forward to work with Silverlight, more.

Over the course of the day, two other sessions by Ray Konopka of Raize Software (who’s CodeSite Express is now included as part of Delphi Prism, by the way) and Cary Jensen rounded of the Delphi Prism coverage, with Cary presenting ASP.NET development and Ray providing an excellent and thorough introduction to WPF. After Ray’s talk, even i was tempted to take a closer look at playing with WPF, again. And that’s saying something ;).

 

To close the day of, Jim, Sebastian and i got talked into the In-N-Out Burger experience, so we went along with David I, Mike Rozlog and Al Mannarino to have a round of Double Double Animal Styles (well, most of us). Fun was had, although i must admit that i, myself, was underwhelmed by the burgers…

DavidI.jpg

David I getting ready to go “Animal Style”.
Still from video, so apologies for the quality.

by marc hoffman, August 27th, 2010

Delphi Live — Day 1 Recap

Day one of Delphi Live has been great, here in San Jose. After the morning Keynote with David I, Michael Swindell, Tony de la Lama and Mike Rozlog and the official launch of RAD Studio XE, Andreano Lanusse gave a whirlwind tour of the cross platform capabilities in Delphi Prism XE — which included creating a ASP.NET web service in Visual Studio 2010 and deploying it to his Linux VM to run in Apache with mod_mono, and using MonoDevelop on the Mac to create an iOS application for the iPhone using MonoTouch (creating a web browser seems to be the Hello World of the iOS platform).

The highlight of the day most definitely was the return of Jim McKeeth‘s Delphi Bots Live, a hands on session where the audience was invited to program a bot for the Unreal Tournament ego-shooter game to fight and hunt down Jim’s real-live player. The battle raged on for over two hours, and participation was great, with people using Delphi Prism in Visual Studio, MonoDevelop and even in Notepad with the command line compiler to create their bots. In fact, Michael Swindell was so successful developing his bot with the command line compiler that we have decided to pull Visual Studio support from the product, and to concentrate our development efforts on Notepad, moving forward.

IMG_0363.jpg

San Jose City Hall; collage of multiple exposures
shot with the iPhone 4 and “See This

by marc hoffman, August 25th, 2010

Delphi Live — Day 0: What Airport Are You At?



(download, H.264)

Jim is telling a story at BJs in Cupertino; with Sebastian, marc and Robert Love.
(Sorry, only H.264 video, Firefox and IE users, pls use the download).

by marc hoffman, August 24th, 2010

Delphi Live!

Hi.

This is just a short reminder that  yours truly will be at Delphi Live in San Jose this upcoming week, along with Jim McKeeth and Sebastian Gingter. If you’re attending as well, or just are in the general vicinity of SJ, we’d love to meet you.

As Sebastian put it — go look for the guy with the hat. That’s me ;). Drop me a mail or a message via twitter if you can’t find me.

We’ll also be blogging, podcasting and hopefully posting photos and videos from the conference as well, so iy you cannot attend, stay tuned to this blog for details (and make sure to subscribe to our Podcast at remobjects.com/radio.

Off to TXL to catch a plane, now,

marc

by marc hoffman, August 21st, 2010

What’s New? Lots!

The past few weeks have been very busy, here at RemObjects, and today we’re finally ready to share many of fruits of the work we’ve been doing. Let’s see what we have.

  • The brand new “Summer 2010” releases are finally out. Initially we merged the planned  May and August releases to bring you one big release at the end of July. We then decided to delay another two weeks, to cross the last Ts and dot some more Is, and it’s been well worth the wait, as we have lots of exciting new features and enhancements for you. I won’t go into all the details here, but make sure to check out our updated What’s New page and Change Logs. The new builds are available as Trials and for licensed users.
  • We’ve started a podcast, entitled RemObjects Radio, that will keep you, our customers, up to date with latest developments, news and information about our products and related technologies. The first episode is up now, with Jim and myself discussing the coolest new features in the “Summer 2010” Releases, but we already have more episodes in the pipeline, and topics will include technologies such as DA SQL and Relativity, interviews with various members of the product teams, live reports form conferences such as the upcoming Delphi Live, EKON and 360|iDev later this year, and more. We’d also love to get customers on the show as well, to talk about their experiences with our products, so if you’re interested, drop us a mail. Check out the RemObjects Radio home page or subscribe via our Podcast Feed.
  • As if that wasn’t enough, we’ve also started (long overdue, i know) making and publishing some screen casts, available under – fittingly enough – the RemObjects TV moniker. As i’m writing this post, we have three videos ready, two on new Data Abstract features from the “Summer 2010” release, and one introduction to Delphi Prism in Visual Studio (linked from the new Everwood Welcome Page of Delphi Prism XE). These are just the beginning, we have lots more planned. All the videos are published using standard-compliant HTML5, and they will also work well of viewing on iPad or Apple TV, for those of you not fond of watching while sitting at the computer.
  • We’ve also launched a new Events page, to keep you apprised of upcoming conferences, roadshows and other events that might be of interest to you. Right now, this lists a handful of conferences we’ll be presenting at, as well as our first ROadshow stop in Denmark that Jim blogged about.
  • Last but not least, we gave our entire website a small overhaul, to go along with the new changes and to present our new company logo and corporate revised identity. We explored a lot of options with our friends at Clever Starfish, and we felt the “hand-drawn” look fit best with the kinds of logos and images we’ve already been using for other areas of the website, so we extended that to the company logo itself – i hope you like it.
  • Oh, and i almost forgot: today we also RTMed the next release of Delphi Prism, called Delphi Prism XE. The new version is mainly a bug-fix release over the recent release from May (after all, we only had a good 2 months of product cycle), but we’re pretty excited about it. It will ship with RAD Studio XE and also be a free update to all current Delphi Prism 2011 customers, and should be available within the next couple weeks, or so.

remobjects-full-600w.png

by marc hoffman, August 13th, 2010

Half a Release

Originally, we had planned to finalize and release our “Summer 2010” releases today.  We were almost there, but there were a few minor issues and regressions that had crept up during our last rounds of testing that we wanted to get in but for various reasons (mainly the vacation season, and two important contributors being off this and the next week) could not get in at this time.

For that reason, we have decided to postpone RTM by 2 weeks, in order to get those issues addressed, once everyone is back from vacation and settled in. Our ne wplan is to have the “Summer 2010″ release finalized and available to customers and trial users on Friday August 13.

The times before RTM are always a few busy weeks, and i’ve spent a lot of time this past week preparing change logs, writing the “what’s new” page, and i can tell you, we have an exciting release with a lot of very cool new features for you, so it should be well worth the extra wait.

Jim is currently working on a screen casts about some of them that we will hopefully be able to share with you as a teaser, early next week, as part of some bigger changes to our website that we have also been working on alongside the new releases.

You said Half?

That’s right. As you probably know by now, our core products, RemObjects SDK and Data Abstract are available on three platforms now. All the issues we were waiting for were isolated to the editions for Delphi and .NET (which, in general, have a of co-dependencies), but the team felt we were ready to ship the editions for Xcode. I know that many of you have been anxiously waiting for us to ship the official iOS 4 support, and so we decided to RTM Data Abstract for Xcode and RemObjects SDK for Xcode, today.

The products are available for download now, both as full versions for licensed users, as well as as trials at remobjects.com/trials. Next to other tweaks and improvements, the most exciting new feature in this release is completely transparent support for Background Task Completion in iOS 4. If your code uses asynchronous RO or DA calls (and you really should be using asynchronous calls, especially in Cocoa and Cocoa Touch apps), your calls will now complete in the background, when users quit your app – without any changes or code needed from you.

Also, Help.

We also shipped the first version of out new standalone “Offline Help” installer, which integrates a local snapshot of our wiki for F1 help in Delphi and Visual Studio. The wiki has been growing so tremendously, that we felt we had to separate offline help from the regular product installers and bundle it in a separate installer SKU, that (a) users can decide to download as they need (most users, we find, use the live online wiki) and, more importantly, (b) we can update out of band and independent of product releases, as the wiki gets updated.

You can download the installer now at remobjects.com/offlinehelp, or find more information on the IDE integration at http://wiki.remobjects.com/wiki/Wiki_Integration_into_Visual_Studio or http://wiki.remobjects.com/wiki/Wiki_Integration_into_Delphi, respectively. (For Xcode, we still ship the integrated live wiki – which is much cooler – but an offline version can also be obtained at http://wiki.remobjects.com/wiki/Wiki_Integration_into_Xcode).

 

That’s it, for now. I apologize for the slight delay with the .NET and Delphi products, but i hope you will find it worth the wait (also, if your subscription is up to date, you can always grab the latest beta we just posted today.

yours,
marc

by marc hoffman, July 31st, 2010

Handling UIDeviceOrientationFaceUp & UIDeviceOrientationFaceDown

If your iPad (or iPhone) application uses UIDeviceOrientationDidChangeNotification to detect device rotation, there might be a couple cases you forget to think about. If your device is lying down flat (or upside down), there is still an implied “felt” orientation, based on how the iPad was last held before it went flat. How will iOS let you know about this? Here is what i found out when writing Dwarfland Photos:

After you sign up for UIDeviceOrientationDidChangeNotification, if your device is flat, you will receive 3 notifications. The first one will be with a value if UIDeviceOrientationFaceUp (or UIDeviceOrientationFaceDown), matching the actual current physical location of the device. Right afterwards, you get another notification, and this one will specify one of UIDeviceOrientationPortraitUIDeviceOrientationPortraitUpsideDown,  UIDeviceOrientationLandscapeLeft,  or UIDeviceOrientationLandscapeRight – depending on what the UI was showing before your app started (and indicating how the user will think of the device as being rotated). This is followed right up with a third notification that brings you back to either UIDeviceOrientationFaceUp or UIDeviceOrientationFaceDown.

Essentially, the device is pretending the user really quickly shook it back to an upright position, and back down.

The best way to handle this that i found in my app was to never ever use the actual reported orientation do fo any drawing or calculation, but instead cache the last “felt” orientation, within an handler as follows:

- (void)orientationChanged:(NSNotification *)notification
{
  UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation];
  if (orientation == UIDeviceOrientationPortrait ||
      orientation == UIDeviceOrientationPortraitUpsideDown ||
      orientation == UIDeviceOrientationLandscapeLeft ||
      orientation == UIDeviceOrientationLandscapeRight)
  {
    if (!currentOrientation)
    {
      currentOrientation = orientation;
      [self prepareScreen];
    }
    currentOrientation = orientation;
  }
  [[UIApplication sharedApplication] setStatusBarOrientation:currentOrientation animated:YES];
}

All my code will use currentOrientation, so it will always have a proper orientation value. Also any screen initialization that depends on having a proper orientation (in Dwarfland Photos that is the initial drawing of the startup logo, once Default.png disappears)  i do in prepareScreen, which is not called until i obtained the proper “felt” rotation.

by marc hoffman, June 29th, 2010

Introducing Dwarfland Photos for iPad

 

Photos-in-iPad-600.jpg

 

Last Saturday i wrote and submitted my first, personal app for the iPad. I had been long looking for a great idea, and the previous evening, while seeing my flickr-based screen saver play on the TV screen, i decided to create an app that shows off some of my photos on the iPad. I started experimenting that night, and did the  real implementation the following morning.

While implementing the app did provide a few challenges (for example, it uses a unique way to react to screen rotation – when you turn your iPad around, the current image will not turn, and the image you are viewing will stay on screen exactly as it is. However, the orientation of the next image that is about to come on screen will adjust to the new device orientation), the result is a very a very simple (i ended up with less than 200 lines of written code), yet – i hope – beautiful application.

There’s no UI. no controls. Just pictures.

Once the application was finished and working, the real work began, and most of the time was spent selecting the right set of 90+ images from my photo library, all of which are included in the app in high 2048*x resolution, to look stunning on the iPad’s display.

Late last night, “Dwarfland Photos” was approved (after being “in review” for a ridiculously short amount of time), just in time to make Steve Job’s promise of “within 7 days”, and it is available on the App Store, now — i hope the one or other of you, dear readers, will decide to get a copy.

As time permits, i am planning to extend the application, in the future. For one, future updates will include new (and in many cases exclusive to the app) images. I will also play with the option for the app to automatically look for and download new images in the background, as they become available, as well as maybe to provide a few (hidden by default) controls to favorite and revisit images, or possible select images as wallpaper for your iPad lock or home screen.

Enjoy!

 

Photos-AppIcon-128.png

by marc hoffman, June 26th, 2010