TweetFollow Us on Twitter

Get Your Growl ON

Volume Number: 22 (2006)
Issue Number: 3
Column Tag: Programming

The Source Hound

Get Your Growl ON:

by Dean Shavit

Making The BIG Cat Really ROAR!

Many Mac OS X users tend to think of Open Source Software as "too geeky to be easily used." After four years of life with Mac OS X, many Mac power users and IT pros alike shy away from using the command-line user interface (CLUI) and gravitate toward the GUI (graphical user interface), which is understandable, because mastering the Terminal isn't an absolute necessity to get work done, or even to support others.

Open-Source with Claws

And so the Open Source world has adapted to meet Mac OS X users halfway. We know because Apple keeps reminding us that much of the BSD subsystem of Mac OS X consists of Open Source tools, and we need look no farther than http://www.apple.com/opensource to get Apple's official line:

    Apple believes that using Open Source methodology makes Mac OS X a more robust, secure operating system, as its core components have been subjected to the crucible of peer review for decades. Any problems found with this software can be immediately identified and fixed by Apple and the Open Source community.

So what Apple seems to be telling us is that the "unsexy" parts of Mac OS X, command line tools like "cp" and "cat" and "grep" and "netstat" are the nuts and bolts on which other non-Open Souce goodies of Mac OS X like QuickTime, Spotlight and Expose depend. In essence, the Open Source parts of Mac OS X, also known as "Darwin" are supposed to be dry and boring, boring and geeky. A quick trip to the source code repository at http://www.opensource.apple.com/ darwinsource doesn't do much to alleviate that predilection. Even more high-profile projects like QuickTime Streaming Server and Open Directory don't offer relief in the way of GUI tools, which, for the most part, are not Open Source, as they are bundled with Mac OS X Server, a commercial product. Even though Open Source super-projects like Fink (http://fink.sourceforge.net) and DarwinPorts (http://darwinports.opendarwin.org) can help us manage the CLUI complexities, and even provide us with comfortable GUIs to do so, it's a pretty safe bet to make the sweeping statement that the vast majority of Apple's involvement in Open Source (I'm not going to count Safari since it's an application, not an OS component) exists within the realm of source code, GCC (the GNU Compiler Collection), and the CLUI. Likewise it is understood that most of the elements making up the "look and feel" of Mac OS X (or the "eye candy" as some like to call it) exist in the realm of Apple's trade secrets and intellectual property.

Five years ago, when Mac OS X was in Public Beta, UNIX geeks were busy organizing and finding ways to get Linux and BSD software packages to run on Apple's new fusion of sleek GUI and Open Source. Much of the effort revolved around getting X11, the standard Linux/UNIX windowing system, running on Mac OS X. X11 was about as different from Mac OS X as Microsoft Windows Explorer, with a multitude of themes and desktop managers. Fortunately, Apple released its own distribution of an X11 desktop manager optimized for Mac OS X in 2002, bringing X11 Open Source program much closer to what the typical end-user would consider "usability."

"Make it Mac"

X11, though, with its own keyboard shortcuts that use the control key instead of the standard command key, its menus pinned to the top of each window (like Microsoft Windows) rather than a menu bar at the top of the screen, and its inability to master some basic GUI tricks like exchanging clipboard data with Carbon, Cocoa and Classic applications, hasn't found the following we Open Source advocates had hoped for. The "big kahuna" of Open Source, OpenOffice, ran well under Mac OS X, but its usability (what some would call usefulness) suffered from being an X11 program. In mid-2005, the NeoOffice project (http://www.neooffice.org) finished its amazing NeoOffice/J port of OpenOffice, bringing a polished Open Source alternative to Microsoft Office that runs on Mac OS X without X11. Other Open Source projects, such as Abiword and GIMP can now run in Mac OS X without the benefit of X windows. Whereas such portability seemed like a distant pipe dream five years ago, each Open Source X11 application that can function independently in Mac OS X brings us closer and closer to a roadmap for all of the best Linux and UNIX software to find its way onto the Desktops of end users and power users alike.

Made For Mac

OK, so Open Source is geeky, boring and clunky, though occasionally, with a Herculean effort (the NeoOffice/J project being a prime example), can bear fruit that blossoms into something all Mac OS X users can enjoy. Many projects, like so many of the groupwares (Zimbra collaboration suite being the latest darling) that everyone hopes and wishes might challenge Microsoft Exchange in the Enterprise, may be diamonds in the rough, waiting to be polished a little. But once in a while, seemingly out of the blue, comes an Open Source project so useful and straightforward and clever that it verges on necessity. And when that Open Source project is something built for Mac OS X, it can be a thing of beauty. The Growl project, which lives at http://growl.info is, in this writer's opinion, the perfect example of such a project. Growl simply roars: install me, I'm useful.


Figure 1. Growl Download Page.

It's difficult to classify Growl, which is often a clue that an Open Source project is either a completely new way of looking at human interaction with computers or is something that defies categories because of its genius. An example of the former is, The Humane Interface (http://rchi.raskincenter.org), the brainchild of the recently deceased and legendary Jef Raskin, founder of the original Macintosh project at Apple, which may cross into the latter category in time. While the Growl project is an example of something born squarely into the latter: something that defies classification and is simultaneously useful to many people. Before delving into an Open Source project, it's always a good practice to see how the developers see themselves, and the main points of their self-description are positively short and pithy:

    First, a bit of marketing:

    "Useful notifications that you control"

    Then, the crux:

    "Growl is a notification system for Mac OS X: it allows applications that support Growl to send you notifications."

    Then, the window dressing:

    "What are notifications?

    Growl includes several display types for notifications.

    Notifications are a way for your applications to provide you with new information, without you having to switch from the application you're already in."

Doesn't seem like a whole heck of a lot on first read. But the key really is in the last bit: ". . .without you having to switch from the application you're already in."

Nonplussed

Nonplussed is one of my new favorite words. I think it's a more elegant way of saying something is so surprisingly weak that I sit there with a look of confusion and surprise on my face when beholding the phenomenon for the first time. Such are my feelings regarding the wimpy way the notification system in Mac OS X tries to get someone's attention: it tells the application to jump up and down. When brought to the front, the application displays the pending notification. That's not a terrible idea, but it can be easy to miss, and gives the user absolutely no idea whether the notification is urgent or simply something to dismiss and keep working. Either way, it results in an interruption and requires interaction on the part of the user.

In a similar vein, there's no easy way to have notifications traverse the CLUI barrier and appear in the Finder, though it's not so difficult with a trick or two. Yet the Finder's icon jumping up and down in the dock isn't a really good way of, let's say, reporting that a scripted backup has completed or a cron job that checks the status of a RAID mirror has found a problem. Things that are running as system processes or command-line tasks, need to report what they do as well. Since they aren't part of the GUI world, they are left without the type of notifications they deserve, those that would report information in a non-interactive way without having to switch between applications.

Howl for Growl

That's precisely the void Growl aims to fill in Mac OS X. Growl delivers non-invasive, semi-transparent notifications that overlay the Desktop regardless of which application is in the foreground or background, along with a notification title, application icon, and pithy message. Years ago, when I was a kid at summer camp, we used to do this silly thing, pounding our fists on the table, chanting "I scream, you scream, we all scream for ice cream." Now, it's time for all Mac users to rise up, pound their fists on their desks and demand from their IT staff: "I howl, you howl, we all howl to get Growl."


Figure 2. Mounted Growl Disk Image.

Getting Growl is pretty easy. Just download the installer from http://growl.info and double-click on the Growl.prefpane. When asked, decide whether you'd like to install Growl for yourself or for all users of the computer. For all users, you'll need an admin username and password. Even though it's not necessary to be an admin user to install Growl, admin rights are necessary in order to use it as a scripting enhancement, if it's necessary to run script with root privileges, so I recommend installing it for all users of the computer.


Figure 3. Install for One or All Users

Once installed, the Growl preference pane reveals a number of options, such as the notification style, the applications registered to use Growl, and which notifications they're set to use, as well as a "Stop/Start" Growl item, that either launches or kills the GrowlHelperApp background process. The styles range from the default "Bubbles" to the more serious-looking "Bezel" and the rather in-your-face "Music Video" which places a long black bar across the bottom of the display right where the Dock usually sits. General Growl preferences govern the Growl background process GrowlHelperApp, whether logging is enabled or not, idle and menu bar status icon settings, and whether Growl should automatically check for updates.


Figure 4. Growl General Settings. Figure 5. Growl Application and Notification Settings.

The next tab in the Growl preference pane governs the Growl-savvy applications registered with the Growl notification system and their notifications, which can be toggled between a state of on and off, and whether they are "sticky" meaning that they will stay on screen until receiving a mouse click. Individual display styles are available for each notification, as well as a priority, should there be several notifications queued. One of my absolute favorite Open-Source programs for Mac OS X, is Cyberduck (http://cyberduck.ch), a wonderful FTP/STFP client, made "just for Mac OS X." For long downloads and uploads, it's very useful to have some notifications more informative than a "jumping" duck, and with the "sticky" option, the notice remains on the screen until receiving a mouse click.


Figure 5. Upload Task Completion Notification.

It's not hard to imagine that useful notifications such as those from Cyberduck would find their way into so many developers' applications. Growl even has recently-added network support, which allows for the relaying of alerts to client machines across a network. It's even possible to set up multiple relays to propagate notifications over a wide area network, though network implementations of Growl are largely unheard of at this point in time. For System Administrators who'd like to send Growl notifications over a network, there's the Growl Perl Module in CPAN (Comprehensive Perl Archive Network) http://search.cpan.org/ ~nmcfarl/Net-Growl-0.99/lib/Net/Growl.pm that can send out Growl notifications without Growl needing to be installed on the originating host, opening up the door to notifications that might come from a Linux or Windows box as well. As a matter of fact, with some cooperation, it's not a stretch to imagine Growl and a network monitor like Nagios (http://www.nagios.org) complementing each other to form a comprehensive solution for local and remote alerts via web server, pager, email and the Desktop.

Growl, Who's There?

Perhaps the most common use for Growl is an application which many Mac users depend on for daily interaction and communication, yet suffer from the "jumping" icon syndrome: iChat. As people on an iChat buddy list come online or go offline, the user gets background sound effects. If a chat is initiated, and iChat is in the background, iChat jumps, it doesn't say who is inviting you to chat nor will it tell you who is available, or who would like your attention. Wouldn't it be nice if it did? Wouldn't it be nice to see the incoming status messages from a backgrounded chat session without brining iChat to the front? Wouldn't it be nice to know exactly who is available or not available with a translucent status message rather than a whoosh sound effect, that says "someone is either coming or going, I don't know who. . ." Well, that's precisely what the free enhancement growliChat (http://www.growliChat.com) brings to Mac OS X. Installing growliChat is a piece of cake, just download it and double click on the disk image (.dmg), then double-click the prefPane to install it and move the application to /Applications.


Figure 6. Installing GrowliChat.

Once installed, and with growliChat running, it's necessary to specify the desired notification behavior. The default is usually good enough, though it's possible to turn notifications on or off for specific buddies. Like Growl, growliChat is configured via a preference pane, with a few tabs of options for each major form of iChat trasport: AIM, Bonjour, and Jabber, making it a suitable enhancement for the new iChat service bundled with Mac OS X Tiger Server.


Figure 7. GrowliChat AIM Notification Settings.

Once everything's configured accordingly, and growliChat is running and registered with Growl, the fun begins! Now, instead of the whoosh sound when a buddy comes online, and having to bring iChat to the foreground to see who may have become available or away, the user's greeted with the following notification:


Figure 8. GrowliChat Buddy Available Notification

I can't begin to gush over how useful this is compared to a whoosh sound. The notification presents the screenname, first name, or full name of the buddy changing status, the status (available) and even a picture (or icon) of the buddy as if the name weren't enough! Since I installed growliChat, I no longer find myself bringing my buddy list window to the front to check out who's left or arrived. So powerful and yet so simple. Kind of like the spirit of the Macintosh itself.


Figure 9. GrowliChat Buddy Offline Notification.

If You Build It, They Will Come

One of the classic mythical ways to make a fortune is to "build a better mousetrap." That whole notion is predicated on the fact, that, everyone has a problem with mice, which Apple has now seemed to address with the addition of the Mighty Mouse to its product lineup. But in the Mac OS X world, people have an issue with application notifications, even if they don't realize it. Others have called Growl an enabler with "multiplier" capabilities that could possibly enrich the entire Mac OS X Software landscape. Today, about 150 applications in 13 categories sport Growl support, from Powermail (http://ctmdev.com/) to the Shiira Web Browser (http://hmdt-web.net/shiira), that shares the Webkit engine with Apple's own Safari to the FTP Clients Cyberduck and Transmit (http://panic.com/transmit). Personally, I can't imagine any developer working on an application that benefited from notifications not considering using Growl support. It just doesn't make sense to roll your own. Hear that, Roxio?

When faced with the task of notifying users of my own application, Mac HelpMate, (http://www.macworkshops.com/machelpmate), that a scheduled maintenance task had completed, I wasn't very thrilled with having a dialog pop up in the Finder, to trigger a leaping Finder icon in the dock, forcing the user to bring the Finder to the front to get the message. Does that sound like a repetitive and familiar complaint? Sure! So, I decided that, if a Mac HelpMate user wanted to install Growl, then I'd support Growl for the notifications instead.


Figure 10. Mac HelpMate Scheduled Task Completion.

Installing Growl also installs the Growl.Framework for Cocoa Developers in /Library/Frameworks. However, since I'm not a Cocoa developer (Although I aspire to be at some point in the future, for now Mac HelpMate is an AppleScript Studio effort), I needed a way to hook up with Growl notifications rather than by using Objective C. Fortunately for me, Growl has some rather easily accessed support for AppleScript. All it takes is a little imagination to add fancy notifications to even the simplest of applications.

Hear that, Apple? There's even a certain crowd of independent developers and their associates who would advocate Apple adopting Growl or choosing to bundle it with Mac OS X. Although Apple has its own translucent bezel notifications, the most conspicuous of which, are the translucent "eject" icon or "volume" icons, that appear over the Desktop, there's not a readily available Framework available for Developers to use. Even though Apple has a track record of imitating popular eye-catching technologies such as Watson (for Sherlock) then Konfabulator for Dashboard, Growl has already gained so much momentum and is complex enough (network support is a perfect example) that Apple would be hard pressed to clone, bundle or support Growl for the typical Mac OS X user. For that reason, my money is on Growl remaining a growlingly popular application most Mac users will never know about (sniffle), unless we, their System Administrators, Support Pros and Consultants, give it to them.

If You Build It, You Can Growl

Those of you who read my column certainly are familiar with the bio and blurb I use to close out each one, but this time, I want to do it a different way. This time, I'm going to sign off using a Growl notification. Let's start with a simple AppleScript application designed to do two things: first, register itself as a Growl application, second, actually send a notification from the application to the Desktop via the GrowlHelpApp process. I'm going to use the sample ApplesScript code from the Growl site available at http://growl.info/documentation/applescript-support.php The simple AppleScript application is going to be called "Authorbio."

    Step 1: open up the "Script Editor" application in /Applications/AppleScript and copy and paste the sample AppleScript code into the new script window

    Step 2: modify the AppleScript with your desired Application name, and your desired notifications

    Step 3: use the very cool Open Source utility img2icns from www.rknet.it/program/img2icns to create a folder from a picture of yourself and then cut and past the icon on to your Application when your finished, like so:


    Figure 11. Custom Icon from Photograph.

    Step 4. Save the AppleScript as an Application, and cut and paste the icon of yourself on the Authorbio Application so that when you "sign out" using the Growl notification of your choice, your face is showing next to the alert--cool!

    Step 5: After initially registering the Application in the Growl preference pane in System Preferences, make sure you've selected an alert style capable of displaying a lot of text. For my own purposes, I prefer the "smoke" style.


Figure 12. Select Appropriate Alert Style.

Here's the AppleScript code of my Authorbio.app Application. You can download the entire project from my site, http://www.themacheldesk.com and customize it for your own use. There's even an example on how to use osascript to run the notification from the Terminal, so you can use it to notify you when cron jobs or launchd jobs complete!

    --present the choice in a dialog:


Figure 13. Authorbio.app User Interface.

set mygrowl to display dialog -
   "What do you want to do?" buttons ["Register", "Sign Off"] -
   default button 2
set grrr to button returned of mygrowl

--if "register" set up notitications and register with Growl

if the grrr is equal to "register" then
   tell application "GrowlHelperApp"
      
      -- Make a list of all the notification types 
      -- that this script will ever send:
      set the allNotificationsList to -
         {"Scheduled tasks completed!", "Dean Shavit", -
            "S.M.A.R.T Error Detected! Backup up your data ASAP!"}
      
      -- Make a list of the notifications 
      -- that will be enabled by default.      
      -- Those not enabled by default can be enabled later 
      -- in the 'Applications' tab of the growl prefpane.
      set the enabledNotificationsList to -
         {"Scheduled tasks completed!", "Dean Shavit", -
            "S.M.A.R.T Error Detected! Backup up your data ASAP!"}
      
      -- Register our script with growl.
      -- You can optionally (as here) set a default icon 
      -- for this script's notifications.
      register as application -
         "Authorbio" all notifications allNotificationsList default notifications -
         enabledNotificationsList icon of application "Authorbio"
   end tell
   
   --if "sign off" then say goodbye to this issue of MacTech
   
else if grrr is equal to "Sign Off" then
   tell application "GrowlHelperApp"
      --   Send a Notification...
      notify with name "Dean Shavit" title "Dean Shavit, a.k.a Sourcehound" 
         description "is an ACSA (Apple Certified System Administrator) who 
         loves Open-Source and freeware solutions for Mac OS X. During the day, 
         he is a partner at MOST Training & Consulting in Chicago, where he 
         trains system administrators in Mac OS X and Mac OS X Server, helping 
         his customers get the best ROI possible from their computer investment 
         while writing for his own website, www.theMachelpdesk.com. Recently, he 
         became the father of an application: the Mac HelpMate troubleshooting 
         tool, available at www.Machelpmate.com. If you have questions or comments 
         you can contact him: dean@Macworkshops.com" 
         application name "Authorbio" with sticky
   end tell
end if

OK, let's run the Application. First, we'll need to choose to register the application so it shows up as a "known" alerting process in the Growl System Preference. Launch the Authorbio, and click the "register" button:


Figure 14. Application Registration

Now, let's try it again, except this time, I'll click the "Sign off Button," and make my grand exit. I'm unsure what I'm going to write about in my next column, but this is such an exciting time to be a Mac user, the world's a veritable oyster. So, my good friends, ciao for now. . . Signing off. . .



Dean Shavit is an ACSA (Apple Certified System Administrator) who loves Open-Source and freeware solutions for Mac OS X. During the day, he's a partner at MOST Training & Consulting in Chicago, where he trains system administrators in Mac OS X and Mac OS X Server, helping his customers get the best ROI possible from their computer investment while writing for his own website, www.theMachelpdesk.com. Recently, he became the father of an application: the Mac HelpMate troubleshooting tool, available at www.Machelpmate.com. If you have questions or comments you can contact him: dean@Macworkshops.com.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

The Legend of Heroes: Trails of Cold Ste...
I adore game series that have connecting lore and stories, which of course means the Legend of Heroes is very dear to me, Trails lore has been building for two decades. Excitedly, the next stage is upon us as Userjoy has announced the upcoming... | Read more »
Go from lowly lizard to wicked Wyvern in...
Do you like questing, and do you like dragons? If not then boy is this not the announcement for you, as Loongcheer Game has unveiled Quest Dragon: Idle Mobile Game. Yes, it is amazing Square Enix hasn’t sued them for copyright infringement, but... | Read more »
Aether Gazer unveils Chapter 16 of its m...
After a bit of maintenance, Aether Gazer has released Chapter 16 of its main storyline, titled Night Parade of the Beasts. This big update brings a new character, a special outfit, some special limited-time events, and, of course, an engaging... | Read more »
Challenge those pesky wyverns to a dance...
After recently having you do battle against your foes by wildly flailing Hello Kitty and friends at them, GungHo Online has whipped out another surprising collaboration for Puzzle & Dragons. It is now time to beat your opponents by cha-cha... | Read more »
Pack a magnifying glass and practice you...
Somehow it has already been a year since Torchlight: Infinite launched, and XD Games is celebrating by blending in what sounds like a truly fantastic new update. Fans of Cthulhu rejoice, as Whispering Mist brings some horror elements, and tests... | Read more »
Summon your guild and prepare for war in...
Netmarble is making some pretty big moves with their latest update for Seven Knights Idle Adventure, with a bunch of interesting additions. Two new heroes enter the battle, there are events and bosses abound, and perhaps most interesting, a huge... | Read more »
Make the passage of time your plaything...
While some of us are still waiting for a chance to get our hands on Ash Prime - yes, don’t remind me I could currently buy him this month I’m barely hanging on - Digital Extremes has announced its next anticipated Prime Form for Warframe. Starting... | Read more »
If you can find it and fit through the d...
The holy trinity of amazing company names have come together, to release their equally amazing and adorable mobile game, Hamster Inn. Published by HyperBeard Games, and co-developed by Mum Not Proud and Little Sasquatch Studios, it's time to... | Read more »
Amikin Survival opens for pre-orders on...
Join me on the wonderful trip down the inspiration rabbit hole; much as Palworld seemingly “borrowed” many aspects from the hit Pokemon franchise, it is time for the heavily armed animal survival to also spawn some illegitimate children as Helio... | Read more »
PUBG Mobile teams up with global phenome...
Since launching in 2019, SpyxFamily has exploded to damn near catastrophic popularity, so it was only a matter of time before a mobile game snapped up a collaboration. Enter PUBG Mobile. Until May 12th, players will be able to collect a host of... | Read more »

Price Scanner via MacPrices.net

Apple is offering significant discounts on 16...
Apple has a full line of 16″ M3 Pro and M3 Max MacBook Pros available, Certified Refurbished, starting at $2119 and ranging up to $600 off MSRP. Each model features a new outer case, shipping is free... Read more
Apple HomePods on sale for $30-$50 off MSRP t...
Best Buy is offering a $30-$50 discount on Apple HomePods this weekend on their online store. The HomePod mini is on sale for $69.99, $30 off MSRP, while Best Buy has the full-size HomePod on sale... Read more
Limited-time sale: 13-inch M3 MacBook Airs fo...
Amazon has the base 13″ M3 MacBook Air (8GB/256GB) in stock and on sale for a limited time for $989 shipped. That’s $110 off MSRP, and it’s the lowest price we’ve seen so far for an M3-powered... Read more
13-inch M2 MacBook Airs in stock today at App...
Apple has 13″ M2 MacBook Airs available for only $849 today in their Certified Refurbished store. These are the cheapest M2-powered MacBooks for sale at Apple. Apple’s one-year warranty is included,... Read more
New today at Apple: Series 9 Watches availabl...
Apple is now offering Certified Refurbished Apple Watch Series 9 models on their online store for up to $80 off MSRP, starting at $339. Each Watch includes Apple’s standard one-year warranty, a new... Read more
The latest Apple iPhone deals from wireless c...
We’ve updated our iPhone Price Tracker with the latest carrier deals on Apple’s iPhone 15 family of smartphones as well as previous models including the iPhone 14, 13, 12, 11, and SE. Use our price... Read more
Boost Mobile will sell you an iPhone 11 for $...
Boost Mobile, an MVNO using AT&T and T-Mobile’s networks, is offering an iPhone 11 for $149.99 when purchased with their $40 Unlimited service plan (12GB of premium data). No trade-in is required... Read more
Free iPhone 15 plus Unlimited service for $60...
Boost Infinite, part of MVNO Boost Mobile using AT&T and T-Mobile’s networks, is offering a free 128GB iPhone 15 for $60 per month including their Unlimited service plan (30GB of premium data).... Read more
$300 off any new iPhone with service at Red P...
Red Pocket Mobile has new Apple iPhones on sale for $300 off MSRP when you switch and open up a new line of service. Red Pocket Mobile is a nationwide MVNO using all the major wireless carrier... Read more
Clearance 13-inch M1 MacBook Airs available a...
Apple has clearance 13″ M1 MacBook Airs, Certified Refurbished, available for $759 for 8-Core CPU/7-Core GPU/256GB models and $929 for 8-Core CPU/8-Core GPU/512GB models. Apple’s one-year warranty is... Read more

Jobs Board

Operating Room Assistant - *Apple* Hill Sur...
Operating Room Assistant - Apple Hill Surgical Center - Day Location: WellSpan Health, York, PA Schedule: Full Time Sign-On Bonus Eligible Remote/Hybrid Regular Read more
Solutions Engineer - *Apple* - SHI (United...
**Job Summary** An Apple Solution Engineer's primary role is tosupport SHI customers in their efforts to select, deploy, and manage Apple operating systems and Read more
DMR Technician - *Apple* /iOS Systems - Haml...
…relevant point-of-need technology self-help aids are available as appropriate. ** Apple Systems Administration** **:** Develops solutions for supporting, deploying, Read more
Omnichannel Associate - *Apple* Blossom Mal...
Omnichannel Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Operations Associate - *Apple* Blossom Mall...
Operations Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.