My News: TOP - Autos Intimate goods Chairs Underwear Ladies handbag Bracelets Sportswear Top auto-moto furniture Dating Boots FDA Approved Pharmacy Boats Necklace Yachts Medical tests Suits Medicine news Building materials Top casino Rington ya.by Tunings Sale Auto Chronometer Blog Search the Web Cases Mobiles Cigarettes Cars auto-moto Ear rings Cigarette Green Card Information
uncommonplace
 

    Follow me

     Apple’s RecentItems
    Filed under: — David @ 8:15 pm

    As I was browsing the contents of the latest ADC documentation update, I found a new sample code package called RecentItems, which implements a “recent items” menu for Carbon applications. Interestingly, the sample app sorts files, folders, and applications into separate submenus.

    Of course, I’ve already implemented a Carbon “recent items” menu in ACCELA’s ARecentItemsMenu, so I had to check this out to see how it compares. My goal was to imitate the Cocoa version as closely as possible, but apparently not so with this sample. There are no file icons in the menu, and if you have two files with the same name (but in different locations), the old item is deleted. I followed Cocoa’s behavior of showing the parent folder’s name and icon to differentiate the two.

    It would have been interesting if this sample code had tried to do what I did… but at least now I don’t have to catch up with the competition :)

     My OS X 10.5 wish list
    Filed under: — David @ 6:54 pm

    Now that the official 10.5 Leopard preview is approaching, various people are starting to post their wish lists and fake screenshots (which are kind of wish lists in disguise). So here’s mine.

    Like everyone else, I hope to see improved UIs for the Finder and Spotlight, but since everyone else has already covered that I’ll skip it. So I’ll shorten my list to two closely related things, both inspired mainly by developments in Tiger.

    1. Consistent, less fragmented UI

    The number of different button types in OS X is getting ridiculous. For Cocoa buttons, Interface Builder lists 11 button types: (deep breath) Rounded Bevel Button, Square Button, Small Square Button, Square Textured Button, Round Textured Button, Push Button, Check Box, Radio Button, Round Button, Disclosure, and Help Button.

    My favorite thing in that list (in a “love to hate” kind of way) is that the “square” and “rounded” textured buttons are actually the same shape: rectangular with rounded corners. In other words, neither square nor round. The “square” style is the gray button style sort of (but not exactly) like what you see at the bottom of the iTunes window. The “round” style is the shiny plastic style seen in the Safari toolbar buttons. The difference between the two, as far as intended use, is unclear and undocumented. Both appear in the Address Book toolbar, shooting down my initial theory that the “round” style was for toolbars and the “square” style was for other places.

    I also was initially confused by the word “textured” there, since both styles look smooth, but really it means that both button styles are supposed to be used with the “textured” (or metal) window style… which, if iTunes is any indication, isn’t going to be textured anymore. At least they’re still buttons.

    Then there are the button styles that are not available as standard controls, which developers must reproduce manually if they want to use them:
    • The flat, round-ended “More Info…” button in the Finder column view
    • The square popup buttons in Mail for selecting your account, signature, etc.
    • The search location buttons in the Finder and Mail (which are also different between those two apps)

    And so on. You get the idea. So at the very least, I hope Apple doesn’t further increase the number of button styles we see in 10.5. Ideally I’d like to see that number decrease, but I’ll be honestly surprised if it does.

    2. Documentation for new UI elements

    Documentation is, I think, more important than providing developers with standardized controls. I can easily create an imitation of, say, the “more info” button style, but I’m on my own when it comes to deciding when I should actually use it. So is everyone else, and we all might have different opinions on that subject. It’s a good thing these new button styles didn’t become trendy like metal windows did. That was one ugly trend. At least I think it’s relatively safe to talk about it in the past tense.

    Apple’s interface guidelines are in pretty good shape right now. My only complaint is that they are incomplete. Well, that and Apple keeps releasing applications of their own with experimental new interface features. If it’s in an Apple application, it’s effectively the standard, even if it isn’t documented. Third party developers want to follow that standard, but when there are no real guidelines, and especially when not even Apple seems to know what they’re doing, that can really go downhill. This appearance of a “do as we say, not as we do” attitude makes a lot of people unhappy, including me.

     More spam lockdowns
    Filed under: — David @ 10:30 pm

    So soon after removing my site’s forums, today I disabled guest comments in the Volley wiki. It had actually been surprisingly free of spam up until about a week ago, but then suddenly the spammers started attacking.

    The funny thing is that in many of the spam comments, they got the markup wrong so the links didn’t work. They ended up appending their intended URL to the wiki’s own URL, creating a bunch of 404 errors in my server logs. That’s how the spam was brought to my attention. If they had formatted their spam properly it would have taken me longer to discover it.

    Tikiwki doesn’t have particularly good features for dealing with spam, at least not the slightly outdated version I have installed. So to find the affected pages, I used Google to search my site for things like “buy online”, “nice site” (the phrase that screams “spam comment”), or various drug names - the very keywords they were trying to grab. It was fun to take Google and use it as an anti-spam tool.

     Scripting Volley
    Filed under: — David @ 6:56 pm

    I forget what got me onto this subject, but lately I’ve been thinking about approaches to adding scripting support to Volley. Now this isn’t a subject that I’m much of an expert on, but it does seem like something that other people could find a lot of uses for. Plus, Volley is supposed to be flexible and multi-purpose, and that goes with the scripting concept very well.

    Based on my limited expertise in scripting, I’ve chosen JavaScript as the one to investigate - inspired largely by its use in Konfabulator, a.k.a the Yahoo! Widget Engine. In fact, I’d probably use the same implementation: Mozilla’s SpiderMonkey. I looked briefly at JavaScriptCore, the engine that Safari uses, but found that it’s nowhere near as well-documented as SpiderMonkey. Plus, someone is already doing a C++ wrapper library for the SpiderMonkey API.

    The next question is, what should the scripting interface look like? The simplest and most obvious answer is to provide an interface to the core messaging interface, plus the other constructs like data pods and data pipes. This also has the advantage that it can be implemented as a self-contained plugin, and such a plugin would be useable in both the client and the server.

    On the other hand, I still only have a vague idea of what people (users and administrators) might want to do with scripting. Plus I still need to get back to getting the Cocoa client back on its feet. The problem is I have all these Justice Leauge DVDs to go through.

     Recent Releases
    Filed under: — David @ 11:32 am

    The main page just got a new thing: a list of recent releases. Like the body of the main page, this is powered by WordPress, listing posts in the new Releases category. I’ve been thinking for a while that the main page was lacking something. This should help not only by providing convenient download links, but also giving visitors a better idea of what goes on here.
    (more…)

     Modding plans
    Filed under: — David @ 6:27 pm

    So it seems that UT2007 won’t be coming out until next March. That’s disappointing. I hope they release a preliminary demo nice and early so we at least can get a look at the UnrealScript source and start planning our mods accordingly.

    My plan was to get a nice Mac Pro this Fall and use it as a dual-boot UT2007 modding machine - there are even indications that the UT2007 tools will finally work on OS X. So maybe I’ll just do a bit more UT2004 work once the Mac Pro happens, as much to polish things off as to get warmed up for UT2007. There are some fixes queued up for Flag Domination, and if I get really ambitious I might finally do Flag Effects. Or maybe a miracle will happen and the CTF4 team will get back together and we’ll do ONS4.

    Actually, one of the reasons I’m not modding much now is my PC got slow and not so much fun to play on. I don’t know what happened to it, but gameplay just got jerky. I couldn’t detect any viruses on it, but I’m far from an expert on PC viruses. On the other hand, with my G5 dead, I may give it another shot.

     Major ACCELA changes
    Filed under: — David @ 5:00 pm

    I’ve been making some major ACCELA changes in the past few days.

    The first was something that’s been bothering me for a while: that extra flag in the XRefCounter and XWrapper class templates. Flags are often a sign of sub-optimal design. They can be hard to read because “true” and “false” don’t have enough inherent meaning. A better approach is usually to add more meaning to whatever the flag accompanies, so that’s what I did in this case.

    I created new simple wrapper types that contain a reference type - like a WindowRef - with the additional meaning that “this reference has just been retained” or “you should delete this object when you’re done”. XRefCounter and XWrapper now have two constructors: one that takes the plain reference type (the WindowRef), and another that takes the “retained” or “owned” wrapper type.

    This actually has two advantages. First, it replaces those flags with something that’s easier to read. Second, any function that returns a newly retained or created reference can return the new retained/owned wrapper instead so that you don’t have to remember that detail when you use the function. That information is already built-in.

    This kind of thing is what I love about C++.

    Since this was such a wide-reaching change, I also started writing some basic unit tests. So far I had only done that for the document classes. To begin with I just have some tests for ACFString, but that tests the new wrapper class system well enough too.

    That new unit test project (BasicTests) includes every file in the library, to make sure everything complies. It also has a file that includes every header file that doesn’t have a corresponding source file, to make sure the compiler looks at everything. This uncovered quite a few problems. There were several files that I had written speculatively but never used. In some cases I had written the same class in different places, and the compiler complained about reusing the name. Right now I have everything compiling except for the duplicate printing classes.

    Now I’m working on a new approach to Carbon Event parameters, associating them with their type codes and data types. Instead of manually adding new entries in AEventParameter.h, I developed some regular expressions for extracting the definitions from the Carbon header files and turning them into macros that declare template specializations. Most parameter names are followed by a comment with their type code, and most type codes have a comment with their data type. I still had to do some hand-editing for the exceptions, and for those which didn’t have one specific data type, but it’s still more efficient than the old way.

    This is another thing that makes C++ fun for me.

    On the other hand, there are many of you who might not see how any of the above could be called “fun”. To each his own. I’m going to go home and watch cartoons.

     What about me?
    Filed under: — David @ 11:07 am

    I just had to make a little correction in this article in today’s LA Times:

    Catmull, who lives in Marin County with his wife, Susan, and their three kids, has never worked in Hollywood.

    That should be “three of their kids”. There’s also me and my brother; we just don’t live in the house there.

    Other than that, though, it’s a really good article.


    This is my personal blog. The views expressed on these pages are mine alone and not those of my employer.

    Powered by WordPress

    Shareware Icons Games
    Topic - News Blogs: Bracelets auto-moto Chairs Blog Search the Web Top auto-moto Boats Autos Cases Intimate goods Necklace Trousers Underwear Top casino Sale Auto Building materials Evening dress Yachts Tunings Medicine news furniture Rington Replica Rolex Mobiles Rolex Replica Boots Ear rings Fashions Green Card Information ya.by Balans Cigarettes Medical tests Sport Betting Cars