RemObjects Software Gears
 
       

Happy New Year 2009

{#} by marc hoffman 01/01/09 03:57:45 pm, 58 words, Categories: RemObjects, .NET, non-tech, Visual Studio, Delphi, Mono, Cocoa, Mac, Photography, Windows, Linux


11963

“Happy New Year 2009” — see it on dwarfland.com

A happy a successful new year of 2009 to all readers. Thank you for your continued support and patronage, and looking forward to seeing you back here frequently in the new year.

(Photo taken at midnight last night, in Berlin Friedrichshain)

yours,
marc hoffman
Chief Architect
RemObjects Software

Photo of the Week #21

{#} by marc hoffman 12/22/08 06:44:55 pm, 33 words, Categories: Photography


11963

“Spree” — see it on dwarfland.com

The river Spree, shot from Treptower Park. HDR of 9 exposures shot freehand thanx to the D300's excellent 9-fold auto bracketing. Taken yesterday, December 21.

Playing with the Nikon D300 SDK

{#} by marc hoffman 12/19/08 02:28:50 pm, 98 words, Categories: Cocoa, Mac, Photography

Since i got my D300 last night, but the weather is too crappy to go out and shoot today, i started playing with the Nikon SDK a bit. After some initial headaches to get the C sample project's code working properly in an Objective-C environment, things are starting to take shape.

Below is a screen shot of my "D300.app", with Live View (not a feature i'd use when shooting regularly, but it does come in handy when being tethered, indeed) enabled. The live view updates regularly (albeit at a reduced rate of 2 frames per seconds, for now).

Podcasts Galore

{#} by marc hoffman 12/16/08 02:18:59 pm, 225 words, Categories: RemObjects, Oxygene, .NET, Visual Studio, Delphi, Mono, Cocoa, Mac, Windows, Linux, Podcast

It's been over a month so i was almost beginning to show withdrawal symptoms, but on Saturday, Jim McKeeth, Olaf Monien and i finally got together for a new episode of the Podcast at Delphi.org, which is available now.

With the product being official and out now, this episode fully focuses on Delphi Prism, the new .NET solution that CodeGear and RemObjects have been working on together (in case you have been living uner that rock for the past two months ;). We discuss questions readers of Jim's blog had submitted, and take a general look of what can be done with Prism. Definitely worth checking out!

Talking about Podcasts, last night Nick Hodges and i also had a chance to record an episode of .NET Rocks with Carl Franklin and Richard Campbell, which will air on January 6th – we talked about both Delphi/Win32 and Delphi Prism, and while the conversation was a lot more high-level and more aimed at people coming from the .NET community who are not familiar with either Delphi or Prism at all, it still should be an interesting listen for existing users as well.

In both podcasts, we also take a brief look at different areas of research and features that are on the horizon for future Prism versions, both short and longer term.

Thanx for listening,
marc

Life after Prism (1.0) - Part 2

{#} by marc hoffman 12/13/08 03:45:32 pm, 610 words, Categories: RemObjects, Oxygene, .NET, Visual Studio, Mono, Cocoa, Mac

In the first post of this blog series, we've taken a look at the new Add Reference pane for Mono that will be coming to a future prism release. Today, i want to talk about a feature that, technically, already ships in the current 3.0.15 release, but simply is not exposed via a nicely wrapped up template, yet.

When i was at PDC, i had the chance to catch up with Geoff Norton, who is the driving force behind the Mac OS X support in Mono. We talked a bit about the future of Cocoa# and Geoff suggested i should have a look at a third party library called Monobjc, which tries to solve the same problem as Cocoa# – making the Objective-C classes that form the basic of Mac OS X's APIs available to managed code – but is at a much more complete state and provides better performance.

I liked a lot what i saw when i first looked at Monobjc in early November. From a user (read: developer) perspective, the library works very similar to Cocoa#, seems to be more stable and exposes a lot more functionality. The main differences for developers using Monobjc is that it maintains the original class names from Objective-C (Cocoa# dropped the NS prefixes, which i always thought was a mistake and caused a lot of confusion, not to mention duplicate class names that forced you to use System. or Cocoa. namespace prefixes all the time), and that it uses slightly different attributes to define the mapping between managed and unmanaged code.

So i set out to adjust the IDE support for Cocoa# development we have in Prism, to provide similar functionality for Monobjc. Basically, the development process will be the same as outlined in our wiki article on Cocoa#, but:

  • A new Custom Tool (MonobjcNibGenerator) is provided to generate code from the elements in your NIB file to match what Monobjc expects. As explained above, this mainly constitutes of using different class names and different attributes; NSObject instead of Cocoa.Object, etc.
  • Secondly, our MacPack MSBuild extension was updated to provide a new Monobjc option, because Monobjc expects the application bundles to be packed up slightly differently.

All of this is present in the current Prism release, if you know how to use it. What's missing is a nice template that wraps everything up and gets you going with one click, as our current Cocoa# templates do. I would have loved to include that, but by the time the above features were going into SVN, we were less than a handful of days from RTM, so i could not really justify adding a new official feature and get it thru QA ;).

So what's missing – and coming with the next feature release of Prism – is this:

a nice template that brings it all together and makes using Monobjc in Prism as easy as using Cocoa# is now!

I've been using Monobjc myself over the last few weeks, building a Mac OS X user interface for our upcoming DAServer6 (which will be part of Data Abstract later in 2009), and so far i must say i'm very happy with what i'm seeing. Cocoa# has numerous known bugs where applications would just crash if you pressed the wrong key or button, and severe performance problems when lots of round trips between managed and unmanaged code (such as when populating an NSTableView) happened. With Monobjc, i have seen no such problems; it runs stable and speedily, and the running application is literally indistinguishable from a "native" app.

I would certainly recommend giving Monobjc a try if you are doing Mac development with Prism.

Life after Prism (1.0)

{#} by marc hoffman 12/06/08 02:53:54 pm, 299 words, Categories: RemObjects, Oxygene, .NET, Visual Studio, Mono, Cocoa, Mac, Windows, Linux

With the first release Delphi Prism now out the door and in the hands of the first users, lots of people a starting to chat, blog and write about Prism in public, and it's great to see all the excitement and the usually positive feedback. It seems that a lot of people who never gave Oxygene a second thought are looking at Prism now, and liking what they are seeing.

So with everyone else and their uncle starting to cover "Prism 1.0", i thought it might be n ice to start a new blog series that will take a closer look at the labs to see what's brewing in terms of new features that will come in future updates of prism, instead.

First in line is a feature that's hot of the presses (i'm seeing it fully functional myself for the first time, today) that has been very close to my heart ever since i requested it <g>: a special Add References Pane for Mono.

This is just one more in many current (and future) features to make developing for Mono from inside Visual Studio easier. What happens is that if Prism detects that you're working on a Mono project (my looking at the Framework Folder you have selected), it will expand the standard Add References dialog and show an extra page that gives you direct access to all the Mono dlls - from the standard system dlls to Mono-specific stuff such as Cocoa#, GTk#, Boo or the Mono.* dlls that extend the FCL.

Just a single click, and your Mono dlls are added to what we call the "shopping cart" area at the bottom (another Prism unique feature that makes adding multiple referneces in all project types much easier), ready to be added to your project:

 

New RemObjects Software Blogs Skin

{#} by marc hoffman 01:42:30 pm, 51 words, Categories: main

The old blog skin was getting a little long in the tooth, so i figured, why not spend a few minutes creating a new one, based on the new layout of our 4.0 remobjects.com site we launched in October. the new theme is live now, let us know what you think.

The West Wing meets delphi.non-tech

{#} by marc hoffman 12/04/08 11:33:01 pm, 17 words, Categories: non-tech

The World Does Not Revolve Around Delphi(Feeds)

{#} by marc hoffman 11/25/08 12:52:16 am, 212 words, Categories: non-tech, Delphi

I'm sometimes wondering if people actually know there's a world out there that is not about Delphi.

Every time i do a blog post that is not about Delphi (and, come on, i post once a month on average, so how often can that be?), i get the the invariable stream of comments saying "duuude. what haz this 2 do W/ Delphi" or "duuude, why R U posting this on a Delphi forum".

Newsflash, guys: this is a BLOG. have you heard of them? In blogs, people talk about stuff they care about and people choose to either read em or not. There's life our there that does not relate to Delphi, so some people - even those who occasionally do work with Delphi - end up caring and thus talking about stuff that is, shocker, not related to Delphi.

I happen to do a lot of things that are not about Delphi (such as our products and research for other tools and platforms) or even about work (such as the occasional "weekly" photo i may most once every two months). If you care, great. If you don't, great too.

Deal with it. Or stop reading. Who cares. But don't give me "duuude, this isn't about Delphi". No, it's not. it's a blog.

Photo of the Week #20

{#} by marc hoffman 11/23/08 05:03:58 pm, 24 words, Categories: Photography


11963

“Winter Reveries, Part One” — see it on dwarfland.com

Frankfurter Tor, Berlin Friedrichshain; HDR of 6 exposures — taken today, November 23, 2008, 1AM

Podcast@Delphi.org Episode 11 Live

{#} by marc hoffman 10/20/08 11:36:52 pm, 54 words, Categories: .NET, ROFX, Delphi, Podcast

It's that time of the fortnight again, and episode 11 of the delphi.org roundtable podcast is up. Get it here at or on iTunes.

Good stuff, as we discuss garbage collections and the IDispose pattern, efficiency of string manipulations, the upcoming PDC (make sure to visit our booth #910!) and much much more.

Enjoy,
marc

Visit us at PDC2008!

{#} by marc hoffman 10/13/08 11:15:49 am, 313 words, Categories: RemObjects, Oxygene, .NET, non-tech, Visual Studio, ROFX, Press, Delphi, Cocoa, Mac, Windows

Just like in 2005, RemObjects Software will be present at Microsoft PDC2008 with a booth in the Expo Hall, showing our suite of products. Our main focus will be Data Abstract for .NET, and we're in the process of preparing some pretty cool demos that show off DA LINQ, DA SQL, Silverlight support and some of the other cool features of DA*. (i'll also have my iPhone along to demo a preview of Data Abstract for OS X talking to our demo server, to anyone interested in a bit of cross-platforming at the Microsoft event ;).

*the demos we're working on will also me available as Samples in future releases of DA; we're currently planning a pretty thorough review and rewrite of all the samples, in order to provide a more cohesive and coherent view at what DA offers and ho to leverage it; the stuff we're working on for PDC is just a first step here, so stay tuned for more.

If you're attending PDC, make sure to drop by our booth so we can have a chat, whether you're an existing customer, considering our products, or just wanna say hi. We'll be at booth #910.

If you're interested in Oxygene and Object Pascal programming for .NET, the guys from CodeGear/Embarcadero will be right next to us at booth #912 to announce and show a preview of a very exciting new product called Delphi Prism. I hear there will be preview disks of Delphi Prism available on site.

From Monday to Wednesday, Carlo, Mike and myself will be at our booth to meet with you; in case you can't make it to PDC yourself, we'll also have a page up at remobjects.com/pdc that we'll keep updating with news and photos, and you can follow Mike and me on twitter, to keep up with what's happening.

Hope to see you in L.A.,
marc

Podcast@Delphi.org Episode 8 Live

{#} by marc hoffman 10/07/08 01:06:17 pm, 141 words, Categories: Delphi, Cocoa, Mac, Podcast

I can't believe it's already been two weeks again, but the next episode of the delphi.org roundtable podcast is up. Get it here at or on iTunes.

In addition to whats becoming "the regular gang" of myself, Roland Beenhakker and Jolyon Smith, we had Anders Ohlsson of CodeGear/Embarcadero join us, and we've chatted about a lot of interesting things, including – if i remember correctly – version control, exception handling, the MVC pattern in VCL and Cocoa and a cool new language idea for Delphi proposed by Jolyon.

I also hope my sound is a bit better this time – but there's just not much i can do about the 3.5 meter ceiling height in my apartment ;)

Again, make sure to let us know what you think, in comments here, on Delphi.org or as feedback on iTunes.

Enjoy,
marc

Podcast@Delphi.org Episode 6 Live

{#} by marc hoffman 09/22/08 02:21:39 pm, 76 words, Categories: .NET, Delphi, Podcast

New delphi.org podcast is up, once again featuring your's truly as "The Terminator". Enjoy it here at or on iTunes.

This time, Jim invited me, Roland Beenhakker and Jolyon Smith for some general round-table discussion on all things Delphi.

We hope to make this a semi-regular thing, so stay tuned for more. Also, make sure to let us know what you think, in comments here, on Delphi.org or as feedback on iTunes.

Enjoy,
marc

Bonjour!

{#} by marc hoffman 09/17/08 12:51:36 pm, 566 words, Categories: RemObjects, .NET, Visual Studio, ROFX, Delphi, Mono, Cocoa, Mac, Windows, Linux

Back in this post i mentioned that we're looking at improved Service Discovery for RemObjects SDK.

Well, that's still a bit off (it won't be shipping in the November releases, as we have an extremely busy cycle ahead of ourselves for that), but i got around to playing and advancing this yet a bit last night and wanted to show a sneak peak.

the screenshot below shows a (ever so slightly) modified MegaDemo that has been adjusted to leverage the new ZeroConfRegistration component to register it's services with ZeroConf (aka DNS-SD or Bonjour). Literally the only code changes are that the component was dropped, and that a new attribute was added to the Megademo Service:

[RemObjects.SDK.ZeroConf.ServiceType("megademo")]

(the last part could have been omitted, in which case the default name – the class name – would be used.)

The MegaDemo server is being run in a Windows 2008 VM, called VEMMY – that'll become relevant soon.

As soon as the "Activate" button is clicked to start the server, Bonjour Browser (here running on the host machine, but really it could be running on any other computer on the LAN or configured for the same wide-area service discovery domain, more in that later) shows a new service of type _megademo_rosdk._tcp., with the name of VEMMY. If i click "Deactivate", it disappears again, right away.

By default, ZeroConfRegistration uses the machine name to register your service (so if you run the same executable on three different machines, it will show up under three different names automatically). That's why our service showed up in Bonjour Browser named "VEMMY". This can of course be overriden, so your server could — say — load a specific name from its configuration.

Finally, hiding in the back, is the Mac OS X version of our Mega Demo (which you've seen before here). It too has been updated to support ZeroConf, which was a matter of a few lines of code using Cocoa's standard NSNetServiceBrowser class that already implements the Bonjour discovery infrastructure. As new services are discovered, they are automatically added to the combo box; as they go away they are removed.

You can see in the screen shot that VEMMY was found (this time across the WLAN, as the client demo is running on my laptop). using the initWithNetService method on the RORemoteService class, the client code instantiates a proxy for that service (without having to worry about host name, port, or even channel and message type), and fire away to make its calls:

remloteService = [[RORemoteService alloc] initWithNetService:netService]; 
megaDemoLibrary = [[MegaDemoService_Proxy alloc] initWithService:remloteService];
int result = [megaDemoLibrary sum:A:B];

The above sample shows a .NET server and a Mac client, but the same concepts will of course apply to clients and servers written with either of the three versions of the product.

As mentioned before, the new discovery support will not make it for the Nov08 releases (it's still very much a work in progress, and September and October have been and will be so busy months here at RO that we don't have the time to fully concentrate on this, just yet). But i'm looking forward to this receiving our full focus come December, so hopefully this will ship in Feb09.

On more short term news, look forward to the official announcement of the RemObjects Client SDK of OS X, very soon.

yours,
marc

Rick Wright dies at 65

{#} by marc hoffman 09/15/08 06:29:24 pm, 42 words, Categories: non-tech

Rick Wright, founding member of Pink Floyd and (imho) one of the most brilliant musicians ever is dead. Rick was behind many the Floyd's most brilliant compositions and also released several solo albums, the latest being the brilliant and underrated "Broken China".

| Next >

 

RemObjects Blogs

Welcome to the RemObjects Software blogs, where RemObjects staff and TeamRO talk about their daily work on or with our products, and other things.

Twitter

marc hoffman (follow)
    loading...
Mike Orriss (follow)
    loading...

Navigation

XML Feeds 

Who's Online?

  • Guest Users: 23