I’m up late working… need music to get me through.
A little bit of boogie woogie blues from that Lil’ Ol’ Band from Texas sure gets you through.
I’m up late working… need music to get me through.
A little bit of boogie woogie blues from that Lil’ Ol’ Band from Texas sure gets you through.
This is documented but in a subtle way, so I thought it’d be worthwhile to mention in a more obvious way.
If you are using NSTableView’s -setDoubleAction: method, the action is only invoked if the cell or column double-clicked upon is uneditable.
Thus, it may not be enough to go:
[theTableView setDoubleAction:@selector(myAction:)];
You may also have to do something like:
[theTableView setDoubleAction:@selector(myAction:)];
[theTableColumn setEditable:NO];
I ran into this just now because I had a single-column table (just a simple table to display a list of stuff, thus the user wasn’t allowed to edit anything) and I wanted to allow a double-clicking on the item (row/cell) to advance the user to the next stage of things (they could also single-click to select the item then click a “Go” button… double-click would just be a shortcut). It actually was working fine under Mac OS X 10.6 Snow Leopard, but the double-click was failing under Mac OS X 10.4 Tiger. Once I made the table column explictly uneditable, it started working and the table received the clicks, the clicks didn’t fall through to the table column.
I’ve been working as a full-time telecommuter for at least a decade.
I enjoy it. It’s my preferred mode of working.
The company I work for finally opened an office in Austin. They opened it due to other projects in the company (all the people and projects I work on are in California), but hey… it’s here, I can work in it. I figured if nothing else, I should establish a presence there. Meet the folks in the office, stake out a claim on a desk, stuff like that. So that’s kinda cool. The office is still being brought online 100%, but today I spent my first day there.
I don’t like it.. 🙂
Don’t get me wrong. The office itself is alright. The people are good (especially the lady that’s managing the office). Yes there are some hiccups as the office is coming online. But hey, all in all things aren’t bad. Plus I have a proper office, with a door, a window, a nice view.
What do I not like? I can’t listen to loud music while I work. I don’t have the smell of Wife’s wonderful cooking filling the air. I don’t hear my children playing. I have to wear shoes all day. I can’t just wander out of my office and go poke at my best friend (Wife) or play with my kids or see what they’re up to. No cats to sit in my lap.
I know. Cry me a river.
I know my life is good. I know that I’m blessed and fortunate. I have a life that many people would love to have. I worked hard to get here. I wouldn’t settle for anything less than the life I have, and through hard work, dedication, and sacrifice I’ve gotten where I am. So days like today? They’re just reminders of how fortunate I am and how good life can be. That whole “count your blessings” thing.
Every morning when I wake up I say to myself, “Daub, don’t fuck this up.”
Still, I’ll probably come to the office now and again. It’s not all bad.
The company I work for, they’re opening a proper office in Austin. I’m still going to work from home. Been doing it over 10 years, I see no reason to stop, especially since my home office is better set up and equiped for the requirements of my job.
However, I did discover the new office isn’t too far from GT Distributors.
“Honey…. I need to uh… go to the office (yeah, that’s it).” 🙂
Work ran long today. I was determined to finish the compliance with the new open source software usage policy, so I could get back to more creative endeavors. I’m all done save hearing back from the CTO on a couple things.
Consequently I missed my martial arts class tonight. Bummer too, as it’s weapons night.
Tonight is also the sparring class. If all goes well, I’ll have something from the UPS man in a couple days that will make that class finally happen. Details will be posted after Mr. UPS stops by.
In lieu of proper class, off to the garage I go. Going to work out on the DIY mook jong. I think I’ll stick my blue gun in the holster too for a little “cross-training”. And on all that knife blarg I’ve been writing about lately? That is one benefit to the Delica: there’s a trainer version. Hrm.
If you choose to take a telecommuting job, especially if it’s full-time telecommuting, you also take upon yourself some communication responsibilities you may not be aware of. If you don’t, you risk isolating yourself which doesn’t bode well for you or the company over the long-term.
My head will be down for a bit.
I need to convert a library of C++ code into a Mac OS X framework. It’s heavily complicated by the copious inling of functions in the header files (bad thing in a dynamic library situation). Much rewriting and massaging of code must ensue. *sigh*
Head will be down for a while.
But given I’ve been awake since about 3 o’clock this morning and have to stay up and active until late afternoon anyways (Kali class tonight!), I think I’ll take a break from work in a little bit and run to the gun range. Stay tuned….
I’ve never written an installer with Apple’s PackageMaker. Never had a need to.
However, the day job has recently required me to write a few custom plugins to customize how some installers work.
I was amazed at how easy it was. The InstallerPlugins.framework is very simple and well-constructed. Sure you can’t do everything you need with it, but you can do most and then write scripts and other things to customize it to your heart’s content.
The thing that gets me? There’s almost no documentation on it. Apple provides the InstallerPluginSample code, and really in a lot of ways between that and reading the InstallerPlugins.framework headers, that’s about all you need. It’s that simple and well-written of an SDK.
Still, some things came up while I was working that I couldn’t find an answer to. For instance, I was instructed to create a “display license” panel that replicated the stock panel the installer provided but had a few customizations. The trouble with this? Anything outside of the content panel I couldn’t replicate, such as the “Print” and “Save” buttons. I was pointed to this resource and specifically this FAQ:
[Q] Can I add Print… and Save… buttons similar to the ones used in the default License pane?
- You can do it through an undocumented and private method:
1 Open the nib of your plugin project in Interface Builder. 2 Add a custom view to the nib file. 3 Add Print… and Save… buttons to this custom view. 4 Create outlets in your controller class for this custom view and buttons and make the appropriate connections in Interface Builder. 5 Add 2 methods in your controller class to be called from the 2 buttons and connect the buttons to these methods in Interface Builder. 6 Add the - (id) bottomContentView;method to your controller class and make it return the reference to your custom view.
IMHO, using an undocumented and private method is bad and just asking for breakage and trouble down the line. But, some people are willing to live with that so tread accordingly.
Stéphane Sudre also provides this HOWTO on using PackageMaker. By the screenshots and some text I can see it’s old, so I don’t know how relevant it is to day’s PackageMaker. But there you go.
I’ve been developing software over 30 years, 15 of those professionally. I’ve learned a thing or two from the real-world trenches, one of which is that all code written must eventually be maintained… probably by you. The more you can do to ensure your code can be understood 6 months (or more) later, the better (your) life will be.
But this is hard.
Not just whining that it’s hard, but it is a difficult thing to do because who can know what exactly you’ll need to know or care about during maintenance. And while you’re in the heat of the moment writing code, you may not consider everything that needs to be documented. This is why the best you can do is strive to write simple code, well-factored, and as understandable as possible from the get-go. Premature optimization is the root of all evil. Simple is good; simple is best.
Via Slashdot I see this article on Coding Practices. He raises good points, but at least in my experience it doesn’t always work out that way.
I am a Mac user. In fact, I don’t just use Macs but I write software for Macs as my chosen profession. I’ve been writing Mac software for over 17 years. The first computer I owned (well, parents owned it… first computer in my household that I had regular access to) was an Apple //e. I’ve been working with computers for over 30 years, and for the most part yes it’s been Apple-based. Sure I’ve used other computers and computing systems, but Apple computers and Macs are my mainstay.
Why do I prefer Macs? Because they are elegant, beautiful, “they just work”, there’s a familiarness in their use and design. Like any good tool, the tool should enable and enhance your ability to get work done and should not get in your way. This is the Mac User Experience. Granted, it’s not always perfect. Apple themselves have changed and refined the OS over the years, with some stumbles but some great strides too. Certainly you encounter 3rd party software that can be wonderful to use, and some that can be amazingly painful to use. Usually I’ve found the painful stuff is written by people who think they’re just writing software and don’t fully grok the notion of “user experience” and what that means and why it matters.
That’s why I write today.
I’ve been temporarily reassigned to another project within the company I work for. This particular piece of software exists on both Mac OS X and Microsoft Windows. For the most part, that it exists on Windows matters not to me. However, I was just given a couple bugs (I didn’t write them, but I get to fix them) to investigate that necessitate the use of Windows.
I haven’t had to run or really touch a Windows box in over 10 years. Oh sure from time to time I have, at a friend or relative’s house, but in general I just have no reason or need for it. Thankfully the company has copies of VMware Fusion and some pre-made “virtual disks” with Windows XP already installed. A few hours of file transfers later (the VPN is slow) and I was up and running with Windows on my MacBook Pro.
That’s where the pain started.
How in the world can you people use Windows? 🙂
Apparently the XP installs were fresh installs, so upon first login I get bombarded with questions. Little balloons popping up everywhere trying to be helpful but only serving to overwhelm me with a desire to put my fist through the screen. You close one and another one immediately pops up, again, and again, and again, and a-fucking-gain. Oh hey it noticed some sort of hardware, tho I don’t know what, and it’s trying to help me cope with it but doesn’t tell me what it wants to cope with. And the stream of dialogs and “helpful” things just keep coming like and endless parade.
MY GOD WILL YOU SHUT UP AND STOP TRYING TO BE SO FUCKING HELPFUL!
The thing is, I’m a computer savvy person so I understand a lot of what’s going on and why. But I step back and try to look at this experience from the angle of someone like my mother, and I just cringe. No wonder she has to take her computer into the shop so often. No wonder she spends so much time on the phone with tech support. What a nightmare! And all I’ve done so far is log into the machine!
Yes, I’ve been away from Windows that long. I wish it could have been longer.
The I run some installers and wow, talk about more unfriendly and bizarre designs. I know some of this is merely because it’s the devil I don’t know… because it’s “not Mac”. Ultimately however it’s not that. It’s about poor user interface and user experience considerations and design. Granted it is not easy to do, to make something so complex, so technical, into something that just anyone can use. But I do like to think Apple’s done a pretty fair job with that.
I just cannot see how people can use Windows and enjoy it. Most people have to use it because work requires it of them, and then they use it at home because it’s the devil they know. As well, I know most people just aren’t into computers as much as I am so it’s not something they think much about. Or the old stigma’s remain about Macs that keep them away. It’s all about inertia.
I have to use Windows for a little while to deal with this bug. Thankfully it’s only for a little while. 🙂
If you want to learn more about interface and user experience design, check out stuff from Bruce Tognazzini and Jef Raskin. In fact, here’s a great little article by Jef on Tog’s website, about “intuitive”.