Good bug reports are like art or great code. Often you can’t say specifically what it is about the piece of art that appeals to you, or what makes a certain piece of code great- but you know them when you see them.
Month: June 2013
If you use WebSessionContext in your Xojo web projects, you’re probably aware by now that they’re not working very well. I thought I’d take a few minutes to tell you what’s going on and how we’re planning to fix it.
What is a WebSessionContext anyway?
First of all, a quick description of what WebSessionContext is supposed to do for you. WebSessionContext is a mechanism for accessing a particular existing WebSession from within an area of your application that would otherwise not know where it belongs. These include Threads, Timers, System Events, App Events, etc. Normally you could tell because you would get a SessionNotAvailableException when trying to access a particular WebSession in your code.
Now that you have tried Xojo, you’re probably thinking of creating stand-alone apps. Maybe you are considering selling your app or maybe you just want to share your app with some friends.
So now you are ready to build and deploy your apps, and to do that you need a Xojo license. No problem, Xojo has a straightforward licensing scheme.
Perhaps you already knew, but with desktop apps it has always been considered bad form to directly access any part of your user interface from within a Thread. Alas, even though this was frowned upon, it generally worked in most of your desktop apps.
Starting with 2013r1, this no longer works with Xojo for Cocoa apps. If a Cocoa app tries to access the UI from a thread, a ThreadAccessingUIException is raised. But what exactly does “accessing the UI” mean? In the case of Cocoa, it means any access to a built-in property or method on any UI control or Window. You can access your own methods or properties added to control subclasses as long as they do not access the UI themselves.
If you have been around the Mac community long enough, you may have ended up with two Apple IDs. I have one for iTunes and another one that came from MobileMe. This resulted in effectively having two iCloud accounts. This can be inconvenient and probably will become more so in the future. Apple doesn’t provide a means to merge Apple IDs. They know they need to provide this, but they do not yet do so. I, however, have found a way.
Since the introduction of iCloud, I have wanted to have a single Apple ID. When Apple recently added the two-step authentication for Apple IDs to make them more secure, I decided to sign in and update my Apple ID account. Part of the process is to verify a device you own which will be used, along with your password, to authenticate that you are who you say you are should you want to make changes (such as your password) to your Apple ID in the future. The webpage said it would list my devices, but none were listed. It didn’t take long to figure out why. The Apple ID I was updating was for iTunes, while the Apple ID Apple was using to find my devices was the one associated with my iCloud (MobileMe/mac.com) account.
The LA Times is reporting that the Los Angeles Unified School District has awarded Apple a $30 million dollar contract to provide 35,000 iPads to students in the district. The iPad was chosen after students and teachers tried several tablets and gave the iPad the highest score.
When working with Windows services you’ll want to debug the application while it’s running as a service. To do this, you can Select Run Paused from the project menu, then create the windows service and start it. Now you’re debugging your app while it runs in service mode.
All of this takes time, and having to create/start the service each time slows down debugging considerably.
I have written a little utility that allows me to right click on the debug executable and automate the service creation and startup. You can download this utility from https://dl.dropboxusercontent.com/u/18858366/DebugService.zip. The source for the Xojo project is included. The utility accepts the executable path as its argument, creates a service “_test” and starts the service.
Xojo can connect to a wide variety of databases, including: SQLite, PostgreSQL, MySQL, Oracle, Microsoft SQL Server and pretty much anything else using ODBC. A must-read for anyone building their first database application.
Xojo is the modern alternative to Microsoft Visual Basic. Xojo is a single language to build apps for Mac, Windows and Linux desktop, plus web, mobile and Raspberry Pi. Cross-compile desktop apps and use the same powerful language to develop for web and mobile too.
Unless you have been living under a rock for the past week, you know that Apple unvieled iOS 7 and its new user interface coming this fall to an iOS device near you. While there are some great new features, like the engine in a car, it’s not the first thing people notice. Most car shoppers are looking at the color of the paint, the sleekness of the design, the look of the interior and dashboard, etc. In other words, they look at the cars’ UI.
The new UI in iOS 7 is the most controversial thing about it by far. I’ll admit that when I first saw it, I thought they were changing it just to change it. I thought they hadn’t put enough thought into the reasons why or they were just bending to the pressure of change for change’s sake. In my role at Xojo, I think at a lot about UI design. Before long, I realized that of course Apple put a lot of thought into it. That’s what Apple does. It’s their culture. So why were they going with this new, simpler, non-skeumorphic design?