Steam is pretty cool by Thom McGrath
Steam is Valve's community and game distribution service. I was introduced to Steam some years ago when I started playing Half Life 2. The ability to download complete games was pretty neat, and I did that. The idea of having Steam running all the time bugged me however. I thought "why on Earth should I keep this running just for Half Life?"
Also, digital download services bother me, because I don't physically have a copy of the product. When I want to install a game, I really don't want to wait hours to download it.
I recently started playing Left 4 Dead 2, which requires Steam as well. This time around, however, my impression of it has completely changed. The reason behind the change is Left 4 Dead 2 makes excellent use of Steam and the community features. It is easily compared to Xbox Live, but less awful. Here's a few cool features:
- Steam will automatically download updates for Steam-powered games.
- Steam Cloud keeps my settings synced between computers.
- I can make physical backups of the games I download.
- Steam sells a lot more than just Valve games. In fact, most new games are available on Steam.
- Valve Anti-Cheat is better than PunkBuster.
- By pressing shift-tab, I can bring up an overlay which includes friend information, and even a web browser. I can do this in any game, even non-steam games. The ability to bring up a browser in-game is very handy, especially in games such as Borderlands.
I could keep going. Overall, I think Steam is pretty cool.
[ Permalink | Accepting Comments (2) | Accepting Pings (0) ]
Microsoft continues to threaten web development by Thom McGrath
I just read an article about Internet Explorer 9. Considering that Internet Explorer 7 and 8 have made significant strides towards standards-compliance, I was under the impression that IE9 might begin to support CSS3 and HTML5. Especially since Microsoft has taken an interest in working with the W3C, Apple, Mozilla, and Google on HTML5.
First the good news. IE9 brings significant improvements to JavaScript performance. This is fantastic since IE8 cannot keep up. I've actually disabled some features on the REAL web site when using Internet Explorer because it just is not fast enough.
The bad news is that Microsoft is continuing to threaten standards. Rather than supporting the proposed cross-platform WebGL, Microsoft intends to support their own Windows-only Direct2D. Once again, developers will need to choose which side they're on. It is nothing new either. In the IE6 days, developers needed to choose to do things right and support everything except IE6, or do them simple and wrong to support IE6. This will be even worse, because a developer looking to do 3D will have no choice than two write two sets of code, or choose to support only IE9 or standards browsers.
Does it surprise me? Yes and no. It surprises me because it seemed as if Microsoft was interested in making a good browser. It does not surprise me because Microsoft gets everything else wrong, so why would this have been different.
[ Permalink | Accepting Comments (1) | Accepting Pings (0) ]
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) ]
Do Something Challenging by Thom McGrath
Most of the code on this website is the result of me actually needing the code in one of my own projects, but some of it, such as the HIToolbar classes and my ArchDetect project, are the result of me challenging myself in an effort to "keep my skills sharp."
[ Read More | Accepting Comments (0) | Accepting Pings (0) ]
Marvel Dies by Thom McGrath
Marvel has agreed to be bought-out by Disney. Need I say more? I imagine everybody else already has, but I'll say it as well.
[ Read More | Accepting Comments (3) | Accepting Pings (0) ]
iPhone Upgrading by Thom McGrath
I decided to upgrade my launch-day iPhone to a new white 32GB 3GS. The upgrade went pretty smoothly, and the features are nice. This article is part review, part nightmare.
[ Read More | Accepting Comments (0) | Accepting Pings (0) ]
Come With Us by Thom McGrath
We've started a Battlefield 2142 clan server. It's a flexible infantry-only server, only few rules. Number one rule, no demo pak whoring!
Address 68.232.170.19:16567.
[ Permalink | Accepting Comments (1) | Accepting Pings (0) ]
Nintendo Almost Disappoints by Thom McGrath
I watched Nintendo's E3 conference live today. As expected, it was more gimmicks. A lot of them. I'm happy to see New Super Mario Brothers coming to the Wii, and I imagine the RPG titles coming to the Wii and DS will make their fans happy too. But most of the conference was about appealing to tweens and non-gamers. That's fine, but gamers need something too!
[ Read More | Accepting Comments (2) | Accepting Pings (0) ]
Until the end of time by Thom McGrath
My laptop is finally a laptop again! Since my hard drive went bad about 6 months ago, I've been running it from an external. Not a small, friendly one either. I looked around and determined it would cost about $350 to repair it. That's why I've been waiting.
[ Read More | Accepting Comments (1) | Accepting Pings (0) ]
Life Without Logic by Thom McGrath
Not too long ago, I noticed Microsoft's new windows tagline: "Life Without Walls". Right...
[ Read More | Accepting Comments (0) | 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) ]
The Lab! by Thom McGrath
Kelly and I have been moving since Friday morning. Got a new place with lots more space. When I started with REAL and began working from home, it quickly became obvious that I needed my own space. The apartment complex we were in has some very nice townhouses, so we put our names on the waiting list for one of those. That was in June.
[ 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) ]
My brain hurts... by Thom McGrath
I frequent GameFAQs about daily to check out their poll. Being a CBS-owned site now, they have links to other (mostly worthless) junk at the top of the page, just below the logo. Some of it gets my curiosity of course.
[ Read More | Accepting Comments (2) | Accepting Pings (0) ]
REAL Software Website Updates by Thom McGrath
We've had our new site online for a little over a month now and since then, we've been listening to user feedback and rolled out some new updates for the site. Some of which you'll notice, others are under the hood. (Those under-the-hood ones are very useful, but I won't speak of them here.)
[ Read More | Accepting Comments (0) | Accepting Pings (0) ]
Casualty by Thom McGrath
We just got back from the vet. One of our newborn rabbits got her paw tangled in the bedding. We were using the store-bought cotton nesting material, which I would certainly not recommend. Unfortunately, we did not catch it in time, and the paw was deprived of blood for too long. Much of the paw did recover, but the toes did not.
The odds of surviving the amputation were not good. Even in adult rabbits, the survival rate is low. In a week-old such as this, there was nearly no chance she would survive it. If left untreated, it would spread and eventually kill her.
She was euthanized about an hour ago.
The other four are doing exceptionally well, and we expect them to open their eyes by the end of the weekend. We're using a couple old t-shirts for a nest now, which they and the mother are satisfied with. We're hopeful they will make it through.
[ Permalink | Accepting Comments (0) | Accepting Pings (0) ]