Enterprise • 1:00:00
Hear four case studies about application development on Mac OS X featuring these popular databases: 4th Dimension, FrontBase, FileMaker Pro, and OpenBase. By examining both in-house and commercial application development you'll see the unique offerings for Mac OS X each environment offers. See how our wealth of RDBMS tools can fulfill your development needs!
Speakers: Tyler Stone, Alykhan Jetha, Chuck Sholdt, Eric Jungemann, Avi Drissman
Unlisted on Apple Developer site
Transcript
This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.
Well, other than being nervous, here we go. Daylight is actually that slide's not supposed to show up like that. But Daylight is a contact and sales management solution specifically catered to small businesses and sales professionals. So 1 to 25 kind of users. So it's an end user kind of solution. We fit in right into the day-to-day applications for that target market such as Word, Excel, Mail, that kind of thing. It's an application that has to be up all the time.
So this is what it looks like. It's very graphical, a lot of graphs, a lot of nice little calendar bubbles and so on and so forth. I'll get into the Daylight specifics. First of all, it's 100% an Objective-C Cocoa application. It connects through the OpenBase APIs. They're Cocoa APIs, actually. They have a whole bunch of APIs.
It's built with Xcode, Interface Builder, EOModeler, EOGenerator, CVS, Bash scripts. Is anybody familiar with EOF or Core Data, that type of thing? So, a few of you. So, we've used some of those techniques. While we haven't used their technology, we've used some of those techniques to build our application. And also, the whole development process was very iterative. And I'll get back to this. I mentioned this for a reason.
So, next thing was, you know, how do I add some value to this presentation other than showing you actually a product demo, which you can download and see for yourselves? So, I figured we'll show you a little bit about how we built this application. First of all, it's a hybrid object relational system. It's totally key value coding compliant, KVC compliant. And first of all, we -- oh, wrong order here.
First of all, we start off with foundation. So, as everybody knows, any Cocoa application, you've got to have foundation. The next thing is the OpenBase APIs. And those are also based on foundation, but as far as we're concerned, that's the bottom layer because that talks to the database.
On top of that, we have our persistence layer that we've built ourselves. And that adds a little bit of a layer to the database. And that abstracts the database for us. And actually, this is where our EO model, you know, you load in the EO model files and the whole schema is kind of built. On top of that, we have the Daylight substrate.
And this is all objects. You know, we don't talk rows here. We don't talk tables here. We talk entities and properties, so on and so forth. And that layer is where all the Daylight business logic resides. It's totally UI independent at this particular point. The next layer is, of course, the AppKit.
Within the AppKit, we use the document pattern, so to speak. And some of you who have seen the core data sessions know about how a document works and how a document is basically your portal to data. So Daylight can actually connect to multiple databases at the exact same time.
On top of that, we have window controllers. And it's very much the same thing as the other ones. It's the same thing as NSWindowController, just subclasses that abstract a few things for us. On top of that, we have object controllers, also very similar to Cocoa Bindings, except it's kind of our own stuff. And we have a plugin architecture above and beyond that one.
So that's our architecture. As you can see, the bottom layer is just rows and tables below the -- halfway underneath the persistence layer. And above that, it's objects. And that's what makes it totally KVC compliant. We also do object faulting and so on. And so forth in there. So if you're a plugin, you can just -- you know, you're just talking objects. You don't have to worry about fetching this or fetching that. It's just done for you.
So our competitive advantage, as you can see, we've abstracted the database. We could go really with any database. So we chose OpenBase, number one, for its data integrity. In all the years that we've worked with it, we haven't had a single case of data corruption. We've had issues where we've introduced a bug, but that's a different story. But no issues of data corruption per se. And we have thousands of customers in all kinds of weird situations. Multi-user client server, unlike core data or anything like that, is all over the internet, connect over the internet locally, on the networks, so on and so forth.
Slow maintenance and ease of administration, very important for us because our target user is a technical neophyte. It's a sales manager, it's a salesperson. They don't want to know anything. They just want to download, click, and go. So we have automatic database cleanup on a periodic basis. Also, when you create a backup, it automatically cleans up. Easy schema updates. Now, I said a few slides ago that we talked about iterative development.
Guess what? A lot of times we would forget the odd column or whatnot in a release. And for our users, it's just, you know, you launch the application, connect to the database, we detect a schema change, and we just tell you, hey, there's a change. You want to update? Hit the update button, and off we go.
We don't have to worry about dropping tables, exporting tables, you know, adding the column, all that kind of stuff. It's all very easy to actually administer and manage. Small, compact, portable data files. Some of our customers actually deploy the database on Linux, on Solaris, on, God forbid, Windows. But our target is really Mac OS X, and it's actually feasible. We do have customers doing those things.
Of course, an application like ours, we need some performance and query optimization and we do use some of those, but out of the box OpenBaS is already pretty performant. And so we don't have to do too many tweaks. And in our stack there we don't have to make special calls. We do have the odd one, but out of the box it's pretty good.
Powerful features: we have automatic synchronization out of the box. I guess the other one is change in notification. In the demo I'll show you that. And of course our history. We've been working with the OpenBaS guys since 1991. They're a great bunch of guys, good support, so on and so forth. So that was also part of the decision making process. So I don't know how many minutes I have left. This clock is not going.
How am I doing? Okay, I'll talk some more. Okay, so we'll go to the demo and what I'm going to show you is synchronization as well as change notification. So we'll go to this first machine. This is, is this the one that's showing up here? Yeah, there we go. So what I have here is I installed on these two computers two copies of Daylight that you can just download from our website, nothing special.
On both machines I installed the default database, but what I'm doing here is I'm connecting from this machine to that machine in this particular instance that what we're seeing here. Another thing that we do is we have, we use record locking. Pessimistic record locking actually. And one of the problems with, with, with that kind of strategy is that if, if a database or, sorry, if a client just dies for whatever reason, they jump off the network or whatnot, and the lock is still in the database, you have to typically go in there and delete the lock.
But with open base, the cool thing is, is that if you disconnect from the network, either, you know, something bad happened or you just, you know, shut off your power book, it automatically releases the lock because you're not, you're not using it, which is a neat feature. So what I have here is I'm going to make a little change here. What's happening is.
We're going to make a change, it's going to go in the database and automatically without me touching that computer the change will be reflected on that computer. So I'm just going to change George to whatever and hit return. And if you could just switch over to this computer here.
If you could switch to this computer, there we go. You'll notice that it's first of all it's locked, it's non-editable, and secondly you'll see that the first name field has changed. So this is automatic change notification out of the box in OpenBaSe. We can switch back over here to this computer.
Now what I'm going to do is I'm going to pretend I'm a laptop user and I've connected to the server at the office and I'm going to go out on the road as a salesman should. So what I'm going to do is I'm going to create an offline database.
So here we detect right away that we don't even have an offline copy of the database on this local computer, so we're going to go ahead and do that. And Murphy's Law hopefully won't come into play here and mess up my demo. What we're doing here is we're creating the database on a local machine, we're updating the schema if need be, we're setting up the synchronization rules, and we're actually doing the synchronization. And there we are. What we've done now is we've migrated the connection from the server to a database on the local machine. The user doesn't even know. The only way they know is if they go to get database info here, it tells us that we're offline.
Now to go back, they come back into the office, they want to either synchronize, they can either choose to synchronize with the online database and stay offline, or just go back online. So it just synchronizes back online, all the data moves back and forth. If you have changes on the master, if you have changes on the slave, they all get reconciled, and you're back on the server. In case of a conflict, master always wins. So that's my demo, and I'm not doing too bad for time. There you go. Thank you very much.
Keep forgetting I have to use the podium mic. Next I'd like to bring up Chuck Sholdt from a company called Weather Central. Chuck is going to demonstrate an editorial based workflow solution built around 4th Dimension. Thank you, sir. This one? Okay. Morning. How are you all doing? Here I am, fat, bald, over 50, in a college dropout, and I'm talking at one of the premier technical conferences in the world. Is this a great country or what? I love this.
Before I get started I want to thank Brendan Coveney at 4D and the folks at Apple for having me do this. I hope I don't disappoint them. This is the weather page for the San Francisco Chronicle and that's what we do among other things is produce weather pages for newspapers all around the country.
And as you can see this is a very dense, complex page. I've got very sophisticated graphics to deal with, agate which would be all the city listings that you see up there. The air quality chart right here changes color based on what the air quality readings or forecast is for the day. So we have an immense amount of data that we have to deal with.
By the way, pardon me, like I said I'm over 50. I'm actually closer to 60 so my memory isn't what it should be. So I'm going to use these crib sheets. Anytime you deal with a newspaper, it is deadline dependent and time is our enemy. And this is what I'm going to be talking about is how we've taken time and compressed it through the use of AppleScript and 4D.
What you're seeing here is a rough approximation of what our workflow looks like. Ten years ago, a group of us bought Weather Central from its original owners and we did an analysis of each of the business segments. And on the newspaper side, it took nine people to put together 13 weather pages every day.
We calculated that for every five clients we added, we'd have to add one additional staff member. Now, to be honest with you, meteorologists don't earn a lot of money. I'm sure some of you would say that's fine with you when you get rained out of your golf game.
But you can see that there's an economic problem here. We just had to find some way to make it more efficient. Today, including the San Francisco Chronicle, we have over 200 newspaper customers and we have seven people producing those same 200 pages. So that's a dramatic improvement. But we have to get even better.
Now this is what you see highlighted here is the data acquisition side. We get 275,000 files streaming in from the National Weather Service every 24 hours. Seven days a week, 365 days a year. We have to sort through all of that information and pick out the files that we need. The data needs to be sliced, diced, parsed, and processed.
In addition to the 275,000 files, we have to get all sorts of different information into that database. And it comes from a variety of sources: email, websites, faxes, telephone calls, and includes pollen information, air quality, sun, moon, rice set tables, tide tables, salooner data, weather trivia. We even have one customer who wants bat data. You know, the Austin American Statesman apparently bats, or anybody here from Austin? Gentleman over here. So that's a big deal and we have to get that information into the database. So once all of the information is in there, now we have to process it.
And if you see where it says database up there on the top, that's the 4D database. And you notice that everything either flows into it or from it. And this is where we're seeing the greatest increase in efficiency is because of the use of 4D. Here's a close...
[Transcript missing]
I want to just briefly tell you what we've got here. Where you see where it says meteorologists, those are our older G4 Macs that have been recycled out of the production process where we need the most speed. And on the production side we're running dual processor 1 gigabit OS X machines. Where you see the internal server, that's actually two X-SERVs running.
They're mirrored and we have kind of a primitive IP failover situation so if the primary server switches we can very quickly and efficiently change over to the backup.
[Transcript missing]
Just an old OS X machine, a one gigabyte server. And then we have a dedicated machine for the 4D server.
When all of this information is brought in and stored the meteorologists can call it up, they can look at it at what the National Weather Service has provided, and then based on their experience they create their own forecast and they can go in and modify the information. Narrative pieces. Computers are very good at repetitive, tedious sorts of tasks, but they're not quite as good at what we would call news judgment and writing narratives, so the narrative is always entered by hand.
This is the production phase and what these folks do is enter in any additional deadline dependent information. And then they issue reports and you can see in the middle these would be a series of InDesign tagged files needed for the Denver Post. And then you can see that all of the information, the style sheets, and any typesetting coded information is used or is embedded in those files that InDesign can then read. And it does the typesetting on the page.
What we found, or what I found, I have what I call my hover time. When we're in the middle of production I go down and I watch, watch the people work, and I put a stopwatch to one of my better technicians. And I found what was happening was that she would sit there and wait 10 to 20 seconds, watching the little beach ball spin for the page to complete production. Doesn't seem a lot, multiply that times 200 and a lot of other scripts that run.
And all of a sudden you're up to a significant amount of time. In fact, for her, it amounted to an hour a day. Now I don't expect in times four systems that's four hours a day that's being wasted. I'm not such a terrible boss that I expect them to have their nose to the grindstone every second of every minute. But you can see that there's some possibilities for increasing the efficiency. Excuse me. So, I'm going to show you folks. What we've done with 4D. You have to kind of.
I love technology. Isn't this cool? It's a little Bluetooth mouse. Wireless. Okay, use your imagination here a little bit. In the background this would be the server running. This guy over here is a remote machine. Now if you picture that schematic I showed and you're adding two or three of these remote machines that do nothing but sit there and assemble pages. There's nobody sitting at them, it's all done remotely. So this is running a 4D client over here and then this is where the production technician would be sitting.
And there's a, it's very well designed console metaphor that shows what clients need to be run. We can sort by shift and you can see we do it geographically, east, west, and then there's a third shift called nap maps where I can show them all. It tells what the deadline time is, gives a status, in this case data is needed, and then any notes or error messages are displayed here. So you double click and you can go in and look at those notes.
What I'm going to do here, and I need to describe this to you before it happens. I used to be able to walk through these things and as they occurred but it happened so fast that I wouldn't be able to do it. I'm going to click on this mark data okay.
It means all the data files that come in. So what's going to happen is the console here is going to talk to the database, the server, and set a Boolean flag. This guy over here is continuously checking with the database to see if any of those Boolean flags have been checked.
What will happen is it will say, "Ah, data is ready. I need to report the files and then I need to get an Apple script that's stored as text." Think about this. I'm going to get the Apple script that's stored as text and then I'm going to take it and I'm going to send it to the operating system on my machine and tell the operating system to compile it and run it.
Okay?
[Transcript missing]
The server throws a confirmation dialogue and lists any problems that it knows need to be solved before you can actually do it. It's a way of making certain everything's cool. Click on yes. Now it's sitting out there watching. It'll take a second here. There it goes. The files have been reported. Now it's going to launch QuarkXPress.
And now it's going to launch QuarkXPress. Come on. Oh, see, I've got an error. Well, wouldn't you know this was going to happen to me. I told Avi it was going to happen to him. What's the error? Page problem encounter by a designer. Let me clear these errors and we'll try it one more time. Anybody here from Quark? Good. I knew I should have done this in InDesign instead of Quark. Okay. Let me try something real quick here.
Bear with me. It works, it really does. And it's not 4D's fault, I can tell you that right now. Okay, we're going to mark data okay, clear the error message. It will re-report the files. Reports the files. I'm bummed. Let me do this real quick. See if we can't get this to work. It worked, okay? Now, so the page has been assembled. The production technician would come in and they need to proofread the page. So they would open up the page, make any changes that needed to be made, save it, Close it, come back, and mark the pages proofed.
Well, I apologize folks. I don't know what happened. Anyhow, that's my story and I'm sticking to it. It is very fast, it's very efficient, and it does work. Thank you very much. It's probably our fault for asking folks to take client-server processes and cram them all onto a single PowerBook and without a whole lot of notice can come up here and try and deliver those. So it did work in rehearsal.
I can vouch for Chuck. The next solution we'd like to focus on is a patient management solution built by folks at InfoMatrix using FileMaker Pro and a complementary product known as SyncDeck. And so we'll call up Eric Jungemann to present the InfoMatrix story. Damn! I did a good job. Oh, thanks.
How many folks in here have used FileMaker before? Wow, that's great. That's fantastic. So today I'm going to talk about a couple of things. One is a concept called the Nimble App. In fact, the other two presenters are really demonstrating a lot of the characteristics of a Nimble App.
And I'll get into that in a moment. But really it's focusing on how do you deal with things called edge departments. These are in the enterprise the departments that are around the edge that you just never can seem to get to with the core enterprise capabilities, CRM, ERP, etc. And techniques to use that. And frequently it's done with FileMaker.
InfoMatrix, which is my company, is a consulting company based here in California. And we have five general partners and we've all worked together for 20 years. The only reason I mention that is as we go along here you'll see that when you have five people that have worked together for 20 years it's kind of an ongoing soap opera, slugfest, etc. And from that and from our enterprise perspective we've come up with this concept called the Nimble App.
Nothing that we invented, just ideas that we pulled together through our experience. All of us are developers who as we got older, as we got more experienced, rose up through the ranks to become CIOs, CTOs, general managers, and senior development executives. And of course, for any of you, how many people here manage developers? So there's a fair number of hands.
You know that when that occurs and the higher up you get, the less time you actually spend on the technologies. In fact, you're trotted out for dog and pony shows like this instead of actually getting to work with the technologies. And it's a problem. And it became a real problem for us so we eventually got tired of it and said we're getting no development bandwidth, we really like to develop, and so we formed our own company.
So we like to do consulting and development. And I think those two things go hand in hand. Usually when we're consulting we see problems that we can't resist getting our hands into the middle of. And also because we've been successful in business and we have access to capital we've helped found several successful companies.
So that gives us another perspective. Now the Nimble app. I've got a white paper which at the end of these slides there's some links or if you give me your business card I'll make sure to get a copy to you. And it's a white paper that talks about these concepts.
These edge departments. And these edge departments are things like this and I'm sure all of you get, encounter these kind of departments. There are departments that you can't get to the top of. So that's the big backbone systems. Number one. Number two they might be a department that's doing something entirely different than the essential central thrust to the company. So, they're just foreign to the company and they don't get the support that they need, or it's something that the company intentionally launched, a new venture that also doesn't link into the systems.
And these tend to be rapidly evolving situations. Can all of you relate to what I'm talking about here? I mean, this is a common problem and they generally get short shrift. And it's not, by the way, because the IT department doesn't want to service them, that's not the issue at all.
This is not, we're not knocking anything here, we're just saying this is a fact of life. And so, because they're rapidly evolving and because they're at the edge, because they probably can't muster a lot of budget, you need to take different approaches. And so, from our IT perspective and our enterprise perspective, we came up with this series of concepts to address them.
And you can apply these techniques to a number of technologies. However, the two technologies that I'm going to talk about are the two technologies we use to address these and we think that they're enormously effective to do it and we'll give you some reasons why. And that is FileMaker and SyncDeck and I'm going to talk about each of them.
But the analogy that I'd like to use was one that in talking to Tyler about doing a presentation here came to me because it happened to me right in, I was developing one day and it happened on TV in front of me which is Spaceship One, right? The Burt Rutan, go into space, you know the whole X Prize, three people, not into orbit, just into space and then come back down.
You know, wait list for three minutes kind of thing. So you got that model, right? And then the space shuttle model which is I want to get a couple of tons, I don't know how many tons, I want to get that into orbit, alright? One of them you can fly every two weeks and one of them isn't flying right now, flies, you know, best case every three months I think, I don't want to, you know, overly characterize it but, and it's a major thing, major multi-year kind of project. I think Rutan started maybe three years ago on his project. You can see that they're two entirely different models to accomplish sort of the same thing.
So what are the goals of the Nimble app? Well, the one I want to focus on today is common code base. Okay, a common code base to address what? Well, with one code base we want to address server users in edge departments. That's people that work in the office all day. Mobile users, that is people that are untethered from the office, they're out in cars and airplanes and they're all over the place.
Individual users in collaborative communities, they may be, because this edge department may really not even have a server, it may have ten people that collaborate together. They may be ten lawyers working on a case, you know, who knows? Web users and a high degree of integration with the enterprise, bidirectional, that is data that they collect in this edge department being able to be used by the enterprise and then being used by the enterprise. And vice versa. Certain kinds of builds that occur within the enterprise, data builds that flow outwards. And to me, because this is not a big budget item, you need to have one codebase. You need the efficiency of one codebase.
So let's talk about FileMaker 7. FileMaker had a booth here. Since a lot of you are FileMaker people, I hope all of you had a chance to at least look at FileMaker 7. We're hip deep in FileMaker 7 and we really like it. And I was going to go down a laundry list and in reviewing the slides with Tyler he said, "You know, why don't you tell people what you like about it?" And so I said, "Okay, great.
Here's what we like about it." 1. The ability to do dual platform transparently. I'm a Mac fanatic living seamlessly in a PC world. I write applications and I don't even think about whether they're going to run on a Mac or a PC. I almost don't give much thought on whether they're going to run on the web either.
Closely coupled GUI and database, that is, you know, in development everybody talks about different layers of things and we're cool about that, but in these edge departments we're going to turn a lot of this stuff over to that edge department. We want them to be able to write reports, you know, we don't want them to have to get in a queue in IT to do stuff, so closely coupled GUI and database is a very big thing.
Low QA time is very important. When you write it, it almost has to work just after developer unit testing. It has to work. It can't go in through, you know, three rounds of QA. There's not the budget, there's not the time, it's evolving too rapidly. So these first three things are huge and FileMakeR 7 delivers them.
And importantly, and vastly expanded from FileMakeR 6, a common code base for webpublishing. Instant web publishing or IWP is tremendous in FileMakeR 7. We take some very complex GUIs and I'm going to show you a couple of them in slides. I'm not brave like Chuck was and I'm not going to try to do a demo, just some slides, but very complex GUIs with the same code base over the web, you don't need to think about it.
Quantum Leap from FileMaker 6 but still familiar. That's a huge thing. So if you've worked in FileMaker a lot, the biggie at the top of the list is in a file you can have multiple tables. So in the application I'm going to show you which is used in FileMaker 6 was a 30 file system is now a one file system with 30 tables.
Makes it a lot easier to deploy and manage. It's just a lot more fun to work. Secondly, along with that a new what looks like an entity relationship diagram which is really kind of a cool table occurrence diagram that more accurately presents views the way they occur in the database.
Script parameters, custom functions, there's a whole long list. I'll let the FileMaker folks talk about that. Another thing that we really like about it is once we deploy it's very stable and easy to administer compared with other database technologies. It just works. That's what we expect in the Mac world. Well, that's what we get. And we have databases deployed in places where there's no IT people around. And they just work. They can turn them on, they can turn them off, they can read the errors, etc.
The other thing we like about FileMaker is it's of sufficient size. I think that they have about 9 million licenses out there. So it has a big user base and a great developer community and lots of plug-ins so that we don't need to reinvent the wheel. Oh, you need barcoding? Got it. You need synchronization technology? Got it.
Which gets us to SyncDeck 5. We had a need as FileMakeR developers to deploy a synchronized solution for remote workers, mobile users. In this case I'm going to show you today, it's medical case managers that are driving around visiting hospitals and skilled nursing facilities. And so we went looking for a plug-in.
And our research, my research, led us to SyncDeck in Berkeley, California. And you know, it's fun when you first approach a product, right? You kind of get some expectations. So my expectation was, hmm, Berkeley, California, got to be really smart people. One of my other partners sort of muttered, might be too smart. You know, this is the sort of Socratic dialogues that we have back and forth. Yeah, but what about BSD? You know, kind of back and forth. Yeah, but might be getting ahead of themselves, that whole thing. But it turned out that I was right.
Really smart people with really pragmatic technology. Now, what I go to look at is who's using the technology. And in the case of SyncDeck, I got attracted to it immediately because it had a blend of customers. I'm going to mention NASA and Lockheed. The International Space Station engineering drawings are coordinated in Europe, Japan, and the United States using servers, FileMaker servers, to coordinate those.
And those servers communicate with SyncDeck. So I thought, okay, that's pretty cool. They probably rung the thing out. And then I found out that it's used by most of the major touring bands in the world to manage the tours. What is a tour? Got to happen every night, right? On schedule.
People running around like crazy, limos, catering, flights, just you name it. You can imagine. And it's all coordinated by FileMaker using SyncDeck technology by a really cool company called PC Guild. So I really like that. And then the sports organizations were using it for their scouts in the field. So they'd go to games and get statistics and feed those back. So very cool customer base.
That immediately attracted me. Secondly, it was developed on Mac. I thought, that's cool. Third, transparent in use between Mac and PC. Now, this is what we expect in the FileMaker world, but synchronization can be a little bit differently transparent. The current product, SyncDeck 5, is essentially a plug-in communicating to a set of Java and XML-based services. So I think that's very cool. And leveraging very strong FileMaker 7 XML support, which is a big thing in talking to the enterprise. I love the fact that FileMaker has JDBC, ODBC, XML, and all these capabilities. to talk to something we can.
Okay, SyncDeck 5, what does it do? Simply, it synchronizes FileMakeR databases. Now what can these be? First of all, they can be collaborative communities. If four of us had the same database and we were in four different parts of the planet, we could synchronize our databases together, which is very cool.
If you try to think about how you might do that, without a VPN kind of technology, getting involved with, you know, IT networks and things like that, it's hard to do. Secondly, mobile workers synchronizing with a server. And that's the problem that we had to solve. But I really like that we could solve any of these other problems as well.
Server to server. You got a web server over here running from FileMaker that's really busy. And you've got another server over here that the users are on. You know, it's too big for one server, although that's getting increasingly hard in FileMaker 7, because the capacities for everything have gone up.
But nonetheless, you can synchronize the two servers. So you got server to server. And a mix and match of any of those four or three capabilities there. Jason Erickson, who's here somewhere, right there, Jason Erickson, who's the president of WorldSync, calls it database synchronization for the rest of us. And indeed it is. And we like it because it's both practical and interactive. And it's inexpensive. There's not a lot of plumbing that you have to do once you install the resources in SyncDeck. You just develop, and it will synchronize.
How it works. Well, this is the part that really almost started, we started laughing when we got in the middle of this. One is, the synchronization is asynchronous. That is, you decide when you want to synchronize. Press a button, kind of go from there, or run a script or whatever.
It uses email, one email account per node, transmits compressed and encrypted shuttles, that is the data and only the changed data is sent over email, compressed and encrypted, with field level tracking and conflict detection, and uses a FileMaker plugin with some script and field resources to accomplish that. So it's pretty cool. It's simple. No complicated server, no additional stuff. You just need email. So you don't run that server. server.
Transparent Macro PC and it's a patented approach. The Syncdeck guys have been working on this for about five years. The other things that we like, two big things that we like, first of all is VUM, Version Update Manager. This is big in the FileMaker world. We can make a change and then project that change to any of the servers or clients on those servers using Syncdeck. That's very cool. You make a mistake, you want to add a button, you want to add a layout, you want to add a file, you want to add a table, you can do all of that. Okay.
And then we can monitor what's going on because we can be a node on those systems and see the data changes and make sure that everything's going along okay. The medical world application that I'm going to show you briefly is a critical care, managing critical care people on ventilators.
These are the most ill people in our society and the expenses in this environment are really high. And the people that developed the approach that we developed the software for really had some great ideas on how to drop costs and get the care higher. They have an office staff, case managers, they have a feed to National Institute of Health. They don't have any internal IT staff, pretty talented office workers but no IT staff, and very complex data needs with high security. So we use the nimble app approach.
And I'm just going to show you a couple of slides. If you just look at that, that is, if I'm a case manager in the field, that's the screen that I get. If I'm in the office, that's the screen that I get. If I'm on the web, that's the screen that I get. Same codebase.
This is an evaluation screen, lots of medical data, don't need to go into it, but Same whether I'm in the office, I'm mobile, or I'm on the web. Notes. By the way, the other thing I want to mention is that they switched. We started out, they were an all Mac shop, we showed up, we're doing Mac development, and guess what happened? They finally showed up one day, one of the guys had had a broken Compaq, and we loaned them an iBook, and it started this cascade. And so, In a couple of months they'll be all Mac. They're gradually all iBooks in the field, servers gonna change, etc. So, very cool and very, very easy to do from a development standpoint. Thank you very much.
All such exciting solutions, you could just talk about them for days. But here's our final one. Avi Drissman from Harrison Baseview is going to show a number of editorial solutions after he finishes blessing his demo machine. A number of editorial solutions based on FrontBase. Good power book, good power book. Thank you, Tyler. Actually, a brief apology. I learned very late that if you leave a voicemail in an Apple employee's voicemail box and you start it with, "Hey, this is Avi. We need to talk," it kind of freaks them out.
Anyway, hi, I'm Avi Drissman, I'm from Harrison Baseview and I'm here on behalf of FrontBase. Well, who is Harrison Baseview? Well, as you can see it's two different companies but not really. It's Harris Publishing in Melbourne, Florida and Baseview Products up in Ann Arbor. And we work together to build all kinds of publishing solutions, primarily for the newspaper industry. We're a division of MediaSpan which owns a couple of other companies who do very similar things but for different media industries. And Harris and Baseview together have more than 2,800 customers worldwide which makes us, I believe, the number one vendor of products in our field.
And they actually like us too. I mean, we're number one but we have very high satisfaction ratings. We do all kinds of stuff. I'm not going to go very, very in-depth in all of those fields but in general if you pick up a new newspaper, I mean, first thing you see are the articles. So we have an editorial solution where you've got people out in the field and they file articles and they get laid out on the page. You've got to keep everybody in sync.
Advertising, that's more like classified advertising where you've got pages and pages and pages of classified ads. Those aren't laid out by hand. Goodness. So we've got stuff that will automatically crank those out, bill people, whatever. Circulation, people are paying you for the newspapers. So you have to keep track of who's paid you and you have to give them the information. So you have to keep track of who's paid you and you have to give them the information. So you have to organize who carries the newspapers, the carrier routes and all that stuff. Production is for almost everything else like display ads and so on.
Most customers aren't going to come to you with camera-ready copy and say, hey, put this in. Well, if they do, it's nice. But in most cases, they're just going to say, I'm going to need an ad and it's going to have to say such and such and such and such and you get to build it.
So you've got to keep track of whose ads are coming in and whose ads are not coming in. in and whose heads are going and are the ads ready for today's paper because you can't hold the presses if someone's screwing up. Internet is listed there as the last point,
[Transcript missing]
Circulation Pro is our circulation program that goes and keeps track of who's getting your paper. They're currently a WebObjects app and they're using FrontBase via their JDBC driver and their WebObjects integration. Ad Manager Pro is a classified ad solution and since classified ads require you to see what you're doing, that's more of a desktop app solution. So we actually used Real Basic for that. And once again, FrontBase with Real Basic plugins makes that not a problem.
Production Manager Pro, within the next year we are hoping to do some major work on it and soon enough they'll be using FrontBase. But I'm here on behalf of the editorial team and we just finished up NewsEdit Pro IQ. We just announced it at the Nexpo conference last week. That's our icon up there.
That's an editorial solution and we're building it piece by piece. Server, this is more of a traditional server kind of approach. We're doing it as a J2EE application using an application server called JBoss. If you want to check that out, well, you missed session 610, but go check it up on the DVD. But the idea is it's a J2EE application server that's free but also very, very powerful and we love it.
It allows us to go access things using EJB entity beans we need to get to our data. Sometimes EJBQL is just not good enough and we have to go straight to the database. We use the JDBC driver and we can go format whatever ridiculous queries we need to do to support the user.
Functionality-wise, EGB session beans and Singleton M-Beans because J2E spec doesn't let you do Singleton, so it's some technical stuff. As for clients, well, most of the end-user clients are actually Carbon apps that we brought over some cross-platform stuff with some incredible magic. We have some Java applications for the administration of the server, but those aren't what the users see at this point. They connected this server using a proprietary protocol.
And tools. Pretty much FrontBaSe is very standard, so whatever tools we want. We're also very, very laid back, so pretty much we build using Ant. If you want to use a different editor, go ahead. We've got people using Eclipse, IntelliJ, JBuilder. But as long as you build with Ant and you don't check in anything into this server that breaks the build, we don't care.
Oh, and implementation. You can implement the features you need to, but that's a different matter. So why FrontBaSe? I mean, we took a look at a whole bunch of different front database servers, and we decided on FrontBaSe for a couple of reasons. I mean, the first batch of reasons here is simplicity. It's easy to install.
Now, I mean, I'm not going to say I'm a stupid guy, and I could probably make anything install if I tried hard enough, but why bother? When you take a look at a database solution and you say, "Click, click. It's on there." And it works, and you don't have to worry about installing it.
That saves a lot of time for me because then I can go and write code and do all the other stuff that I'm paid to do instead of going and fiddling around with an install. And it's also very important because we go on site to these newspapers and we install our solutions for them.
And, well, I don't go, but we have installers and trainers, and they don't necessarily have all the skills to do that. So just being able to say, "Click, click. It's on there." And then, "Click, click. It's installed." Go on to the rest of this stuff that needs installing instead of having to worry about it is a very good asset that we've got. Less configuration means more time to do real work. And low maintenance. These are newspapers, and they've got IT staffs who are busy running around supporting wall quark and other layout stuff. So they don't necessarily have the time to fiddle around with DBAs and stuff.
So we want to make sure that they don't need it. And fortunately, they don't. But it's not a toy. This is not some cheap little database that, if you're lucky, kind of works and supports stuff. It's SQL 92 compliant. So there are three points I wanted to make. The third one I just came up with the other day. So it's not on here. Feature number one.
The thing is, is that it's got all the features that you want. For example, subselects. We use them all the time. And you don't have to worry about, well, is this feature in the database? Did they just add it? Is it in the next release? No. It's there if it's in the standard.
And the second thing is you don't have to worry about syntax. For a standard, SQL is varied. And everybody implements it in just a different way. So then the question is, well, how did they do it? Do we have to phrase it this way? Do we have to phrase it that way? No. You just open up your SQL 92 standards book. And whatever they say, that works. Another interesting thing about SQL 92 compliance is they're very strict. So they don't mess around with any data integrity.
The database engine does not like you. But by the time you get it working very well on FrontBase, you have not made any mistakes. Another feature that it's got is clustering. We took a look at what we could find for that feature in other databases and either it's not available at all or it's at a price point that we just couldn't afford. So clustering at the price point and at the availability of the OS X is a great way to get the best out of your OS X.
Control via JDBC. We can do all kinds of stuff via the driver. I mean, creating and destroying tables, sure, but creating and destroying databases, back them up, start and stop them, not everybody's JDBC driver can do that. And in general, we've got other issues that we needed to contend with. Platforms.
We needed to make sure that even though it was available on other platforms like Windows and Unix and other stuff like that, we wanted to make sure that it had OS X support. And it's not always easy to find that. Price-wise, for the features that we got, the pricing is very aggressive and very cool and support has been absolutely incredible. So I'm going to actually attempt a demo.
And so if we could switch to Mr. PowerBook here. Oh, cool. Thank you very much. This is our administration tool. Very briefly, I don't want to go into too much depth on him, but he'll just show you the kind of things that we've got. So here are our media products, i.e. newspapers.
So we've got the BaseView Bugle. I don't know, my favorite newspaper of choice. Priorities here, users and so on. But this one actually is a swing app and it works pretty well. There's our control app. But pretty much everything works in NewsEdit Pro. This is our end user app for most end users.
And so let's go...
[Transcript missing]
So you open up a new document. I'm going to use our styled macro key to just drop my title and position in there. And so I'm going to go write a story. Unfortunately, I'm not really a fast typer, so I'm going to go do another styled macro and just drop one in really quick.
So if we go command-quote, because this is Geneva and this font is just up there so you can quickly see what you've got. This is not what the newspaper is printing in, goodness knows. So you can go hop to preview and oh, looks pretty cool. Hop back from preview. And so let's go to, let's turn off preview. I thought I hit that. Make a new headline. Say, okay, it's like 30 inch display or 30 inch screen WWDC and so that's going to overflow.
So we can highlight that and go make the font a little bit bigger. We can go into the headline and drop the box down to fit the headline. Preview that. Ooh, wonderful. So we go save that. We can also deal with images too. So, if we go in and do a saved search for our images, let's see what we can find. We've got, "la la la la la, I think I saw the other day while preparing for this, ooh Sandra." So you double click her and up it comes in Photoshop.
So we go and if Photoshop didn't work, I wrote the plugin for that so I know who to blame. So let's go in and... Zoom in, crop in, save. Yeah, yeah, yeah. And as soon as we close, our plugin kicks in, updates the database so when we do an update of our image search, there she is, cropped in. And then finally, since you want to get things out on paper, you're going to need to do layout. So let's pull up our template search, it's a minimized search, and we've got Quark and InDesign support. I'm going to choose InDesign today.
Actually, more for familiarity, I wrote the plugin again, so once again, I get to berate myself if it just doesn't work right. Zoom out a little bit. Hop back to NewsEdit, My Stories. Now since I just filed that story, that search searches for anything I created. It's right there. So you just take the file and you just drag and drop it right onto the page and thunk.
There we go. Now it actually does match the margins if you do that. So you zoom in and zoom in and the text is there. And you can see the style sheets match up and the character styles and all that stuff. And it looks pretty cool. If we go back to NewsEdit, back to the image search, you can grab an image and just drop that on the page. And if you notice that it automatically keeps the caption as well. Should probably not drop that on top.
There is a caption in here. I didn't demo with this exact image, so there should be a caption there, honest. So I could probably go and... Come on, I've got to go make a cool demo. Drop it on there. And we have a caption on that photo. There we go.
So that image has a caption. And so you go and you print and out comes this huge piece of paper and the presses that run 20,000 copies an hour and you make everybody happy. And so this is pretty much our system but pretty much everything you see here from the articles to the pictures down to the style sheets themselves, everything is running in a database called FrontBaSe. Thank you.
The ground rules for this session was all the different database representatives would play nice. Unfortunately, I didn't broaden that out to don't pick on any page layout applications. For more information, here's contact information for the different presenters you've seen. If you're interested in any of the solutions that they showed you today, as well as my contact info on there. and reference in case you've never heard of Google or any other search engine these are the URLs for the different database providers.