Feedback Tricks by Thom McGrath
Here's a short list of some neat secrets about Feedback:
OpenSearch Support
If you use any OpenSearch enabled browser, such as Firefox or Internet Explorer, you can visit http://feedback.realsoftware.com/ and your search field will light up with the ability to search our Feedback database. If you add it as a permanent search provider, you'll be able to search Feedback from your browser. The results will still launch Feedback and display the results there, but it can be handy if you are on our forums or read the mailing lists using a webmail app.
iSeek Site
For the few and far between users of iSeek, I've prepared this search site that will allow you to search Feedback from your menubar.
Alternate Theme
Feedback uses three different themes to render its content. On the Mac, either Aqua or Graphite is used according to the user's system preferences, and on Windows & Linux, a more neutral theme is used. Currently, only the action bar is rendered differently, but that could change in the future.
You're not completely confined by your OS though. If you want to use the neutral theme on Mac, fire up terminal and type
defaults write com.realsoftware.feedback "Use Neutral Color Scheme" -bool YES
And reset it by using the same command, but replace YES for NO. On Windows and Linux, it's a little trickier. On Windows, you need to edit the registry. The path is HKEY_CURRENT_USER\Software\REALSoftware\Feedback and add a value for "Use Neutral Color Scheme" = 0 to enable Aqua.
Linux uses an XML file in ~/.realsoftware/Feedback/Preferences.xml which you can add a key to:
<element><key>Use Neutral Color Scheme</key><value type="8">0</value></element>
[ Permalink | Accepting Comments (0) | Accepting Pings (0) ]
Feedback Ships by Thom McGrath
After a very long time in development, REAL Software's new feedback system is finally available to the public and in use.
I've been working on this system for a long time, since about mid-March if I recall correctly. It's so nice to finally see it live. I'm so proud to have contributed this to REAL Software, since it is such a crucial part of the company. Sure, I've worked on critical parts of the company for about a year now (new website backend, new servers, new order system), but there is something special about this. That other stuff is all very important, probably more than the feedback system, but this is an app that our customers will use frequently.
We've already been getting many compliments about the design of the app, and I do plan to do a post-mortem type article on the company blog. It does surprise me though, because although I find the UI simple, it's certainly not ground-breaking in my opinion. Or I just have high standards.
Early in the development process, we discussed a very critical choice: web-based or desktop-based. The discussion was heavily weighted towards web-based, and I could certainly do it, but I saw an opportunity to do something special. By creating a desktop app, it could be designed to show-off some of the abilities of REALbasic (not that the IDE does not already do that) and it allows us an unprecedented level of integration with our products and our user's systems.
Since it was being developed on the desktop, the argument was made that this should be completely integrated into REALbasic. While an interesting thought, that posed a couple problems:
- If REALbasic crashes, that system has a lot of functionality that needs to work inside an application that has already had an exception and locked up. There is a lot of potential for lost information there.
- If there is a minor bug in the feedback system, it could not be fixed until the next release of REALbasic. That's a significant problem for a new system. Keeping it separate allows us to push updates (yes, it has an auto-update system) to our users without them downloading the entire REALbasic package.
- What about our other products? Should a customer really be expected to launch REALbasic just to report a bug about our website or REAL Server? No.
So development on the app began from the ground up. Code was developed to handle preferences correctly on each platform, open source projects were utilized to provide animation, client-to-server communication and CoreFoundation support, and the source list and automatic updates were provided by code I had laying around and needed a good testing route. Right off the bat, many of the core systems of the application were falling into place.
Another big source of debate is the app's client-to-server communication method. This app does not speak to our database directly. An abstraction layer was implemented on the server to provide security and ease development. During the beta process, many bugs were fixed simply by updating server-side code. Using a straight SQL connection could not have done that. If we needed to move databases, upgrade servers, etc then we would need to issue an update to app. Instead, we could switch the database backend entirely without the app ever complaining. There's no database login details in the app, nor does it even know where the database is. That provides a significant amount of security. This abstraction layer also allows the activity viewer to work. You'll notice that the app almost never locks up or appears unresponsive. That's another thing an SQL connection could not have provided. There is still some debate that the app should be speaking directly to our REAL Server, but I stand by my position that this abstraction layer is not only very useful, but very important.
We quickly realized people would be asking for some of this functionality in REALbasic. It'll happen. I don't know when, and I don't know what, but we are aware of some gaps in the REALbasic framework that the code from this app can fill.
We have big plans for this tool. Remember, this is the 1.0.0 release. There is plenty of room to grow. Of course, I can't say what ideas are floating around, but I will say it will keep evolving.
Lastly, although I did all the development work on the app, the entire team provided lots useful feedback, suggestions, requirements, etc. I can't take all the credit.
[ Permalink | Accepting Comments (1) | Accepting Pings (0) ]
REALbasic's TrueWindow by Thom McGrath
Don't get too alarmed, but I'm writing for two blogs now. I just contributed my next tutorial to REAL Software's official blog rather than my own:
REALbasic's New TrueWindow Feature
As much as I love writing content on my own blog - and I'll continue to do so - it makes more sense for the company if I do the tutorials and such in a more official capacity.
[ Read More | Accepting Comments (0) | Accepting Pings (0) ]
REALbasic 2009r1 Released! by Thom McGrath
REALbasic 2009r1 is one of my favorite releases, and it should be yours too. This release adds a handful of useful new features, and it's also the first release I've directly contributed code to.
[ Read More | Accepting Comments (0) | Accepting Pings (0) ]
Tip: Fix Linux Button Sizes by Thom McGrath
This really bugs me about Linux, at least on Ubuntu. Button sizes are typically 30 pixels tall, as opposed to the 20 pixels on Mac and Windows. So when you're creating your UI and plan to deploy to Linux as well, be aware of this. If your button sizes are 20 pixels tall - the REALbasic default - your buttons will look terrible on Linux, only showing the top half of the caption.
My solution? A subclass of PushButton I call RespectfulPushButton. In it's Open event, I simply make the height 10 pixels taller and move it up by 5 pixels. The result won't harm the UI much, and the buttons look perfect on Linux. You'll then want to define a new Open event, and trigger it from the Open event of the subclass. Of course, use conditional compiles to only resize the buttons on Linux. I then just use this subclass instead. Minimal work to setup, but you'll then need to get into the habit of using the subclass instead when placing new buttons.
PopupMenus have this pain as well. I have not seen this on any other controls, but I most write my own anyway.
[ Permalink | Accepting Comments (0) | Accepting Pings (0) ]
Image Masking by Thom McGrath
Over the past few days I've seen this topic come up on the REAL Software Forums and the REALbasic NUG. There's quite a mix of information - some correct and misleading. Luckily, I've not seen information that is just flat out wrong.
[ Read More | Package Included! | Accepting Comments (2) | Accepting Pings (0) ]
Custom Controls: Finding your global screen bounds by Thom McGrath
I find myself writing a fair amount of custom controls. Frequently, I find myself wanting to find the position of the mouse relative to my control. The MouseDown, MouseDrag, etc. events have this info, but if you need this in the Paint event, you must either save it to a property or get it from the system. We're exploring the latter, as it's not as simple as you might think.
[ Read More | Accepting Comments (0) | Accepting Pings (0) ]
HIToolbar 1.1.3 Released by Thom McGrath
Even though I should be working on getting two other projects made public, I thought I would update HIToolbar first. Since it broke on REALbasic 2008r3, it made sense that this one should get more attention.
[ Read More | Accepting Comments (1) | Accepting Pings (0) ]
Determining if a window should be highlighted by Thom McGrath
I've been working on a window designed to look similar to Safari. This means a window with a "Unified" toolbar and tabs that blend into said toolbar.
[ Read More | Accepting Comments (0) | Accepting Pings (0) ]
Does a window have a sheet? by Thom McGrath
So Norman Palardy recently posted some code for detecting if a window has a sheet attached. Charles Yeomans took this code and modified it to work without subclassing window.
I take it one step further, and fix a bug...
[ Read More | Accepting Comments (0) | Accepting Pings (0) ]
AnimationKit 2.0 Released by Thom McGrath
I have finally found some free time, so I decided to release a brand new version of AnimationKit. This new version is significantly changed, and will break existing code. It does, however, include some great new features.
[ Read More | Accepting Comments (0) | Accepting Pings (0) ]
Passwording, Favorites, and... Invitations and Profiles? by Thom McGrath
Tonight, I'm sharing two screenshots. Nothing fantastic on that front. But I'm also going to share an idea I just had that I think is very cool - and it's another unique feature!
[ Read More | Accepting Comments (0) | Accepting Pings (0) ]
Services Preview by Thom McGrath
Want more Hamachi? Who doesn't! These screenshots should hold us over for a few days... or make everybody want it more!
[ Read More | Accepting Comments (1) | Accepting Pings (0) ]
Hamachi for Mac OS X by Thom McGrath
After being supremely upset with the current options for using Hamachi on Mac OS X, and the difficultly of getting it installed in the first place, I set out to solve every issue I've ever had with Hamachi on the Mac. At least, as much as is possible.
It's important to note that I am NOT an official developer for LogMeIn, and this project may not see the light of day due to some issues I cannot yet speak about.
But if this does work out... damn... Hamachi on Mac worries are over.
[ Read More | Accepting Comments (1) | Accepting Pings (0) ]
Some insight about REALbasic toolbars by Thom McGrath
So upon looking into a new rewrite of HIToolbar, I've wanted to hit at least one of two incredible features: controls-in-toolbars and cross-platform toolbars.
Focusing on the latter in this post, I said to myself "If REAL Software can do it, then there is no reason why my class cannot do the same."
This statement, as it turns out, is incorrect.
[ Read More | Accepting Comments (0) | Accepting Pings (0) ]
Converting HTML Entities [Updated] by Thom McGrath
I've made another mini-release. This is simply a REALbasic module which allows quick conversion back and forth between HTML entities, and their actual character.
[ Read More | Package Included! | Accepting Comments (0) | Accepting Pings (0) ]
Brad Rhine releases the Toolbar Utilities module by Thom McGrath
Based on code provided by myself and Charles Yeomans, Brad Rhine has released the Toolbar Utilities module - a REALbasic module which adds most of the standard Mac OS X toolbar features to built-in REALbasic toolbars.
[ Read More | Package Included! | Accepting Comments (0) ]
HIToolbar 1.1.2 Released by Thom McGrath
This maintenance release to HIToolbar fixes a critical bug which prevented every toolbar's ItemClicked events from firing on Intel Macs. This update is strongly recommended for all users of HIToolbar.
Sorry this was not caught sooner. And thanks to the users which brought this to my attention.
[ Permalink | Package Included! | Accepting Comments (0) ]
HIToolbar Crash Situation by Thom McGrath
One of my users of HIToolbar has brought a crash to my attention, forwarded from one of his users. I'm at a loss for the reason, and the developer himself has been unable to replicate the crash. However, we do have a crash log from the user. If anything, this article should be to make other users of HIToolbar aware of the situation, if not solve the problem.
[ Read More | Accepting Comments (0) ]
Hey, what smells like blue? by Thom McGrath
Those that do not get this reference should remember to Futurama episode 3acv19: Roswell That Ends Well when Fry puts an "Iffy Pop" into the microwave: the impossible happens. Well this mini post is simply to inform my few readers that my impossible happened! REAL Software has not only verified my bug, but has also fixed it! I honestly expected to live with this forever! Thanks REAL Software!
[ Permalink | Accepting Comments (0) ]
Of Going Mad and Losing Work by Thom McGrath
While working on my new RSS class, I lost a couple classes that seemed to disappear. I started cursing and such, because my work was long gone - you know the drill - sonofa#*@*$iknewtherewasareasonnottouserb@*#!!.
[ Read More | Accepting Comments (0) ]
Creating Aqua effects in code by Thom McGrath
Using nothing but some gradient code and logic, you can creating Aqua effects using REALbasic code. We'll explain both.
[ Read More | Package Included! | Accepting Comments (0) | Accepting Pings (0) ]
Mac OS X Search Field 1.1 Released by Thom McGrath
Our Mac OS X Search Field has been updated to support Universal Binaries. There are no other new features.
[ Permalink | Package Included! ]
HIToolbar 1.1.1 Released by Thom McGrath
As well as updating code to work with modern versions of REALbasic and bug fixes, HIToolbar has been update to work with Universal applications as well. This is a must-have upgrade for all users of HIToolbar.
[ Read More | Package Included! ]