TweetFollow Us on Twitter

Dec 91 Mousehole
Volume Number:7
Issue Number:2
Column Tag:Mousehole

STR# Hurdles

By Larry Nedry, Mousehole BBS SysOp

From: Jslee

Re: STR# Resource

From the frying pan, now into the fire. As you all know the Mac has a toolbox call called GetIndString. This is really cool, but I need to do the same function in reverse, that is, how can I add additional STR# resources to a list of resources? I have yet to find a code fragment demonstrating this technique. What I want to do is add a series of strings to the STR# resource via C (Think to be precise). Looking at IM I-476 I see that STR# resource consists of 2 bytes containing the number of strings then m bytes as the strings. Can I take this to mean:

typdef struct {
  short num_of_strings;
  str63 the_strings[max_strings];
} str_def;

Is this right? If not, how would I do it? I need to have a handle to each string item so that I can write it back to the resource. Any ideas would be great.

From: Mrteague

Re: STR# Resource

You have it partly wrong - because the “strings” are Pascal strings (and it wouldn’t matter of they were C strings), they are NOT of fixed size, which means you can’t use a struct as you have defined. There would be a number of different ways of doing what you need to do, but generally it involves parsing the resource structure yourself - i.e.

{1}

tempHandle = GetResource(‘STR#’,someID);
HLock(tempHandle); tempPtr = *tempHandle;
numStrings = *(short *)tempPtr;
tempPtr += sizeof(short);
for (i = 1; i <= numStrings; i++)
 {
 char tempchar[256];
 short theLength = *tempPtr++;

 strncpy(tempchar, tempPtr, theLength);
 dosomethingwithstring(tempchar);
 tempPtr += theLength;
 }

Then you have to output the new resource - either you have to create a new resource from scratch and add each string to it at a time (sort of the reverse of above), or you can attempt to modify the existing resource in place (remember to detach resource first) - this gets tricky when you insert strings, delete strings, or modify the length of existing strings.

I wrote a HyperCard XMCD that did something similar to this a long time ago, so if you are still stuck after trying my suggestions, I will see what I can do to help.

From: Jslee

Re: Writing to an STR# resource

Hurdle # 1: Parse out the strings from an STR# resource.

Hurdle # 2: Find out how the STR# is organized so you can write back to the resource file.

Hurdle # 3: How can I write out the data in my string to the STR# resource.

I figured out hurdle #1 and #2. #3 is a bit more perplexing. What I did was to create a string that looks like this: “/0/3/5Test1/5Test2/0”. The reason why the string is formatted this way is because this is the way the STR#128 resource (my own resource file in the THINK C project) looks. Now when I create a handle to this string, and try to write out the resource using AddResource nothing is written. When I perform a SizeResource to my handle it returns a -1 which means that the handle to the resource does not exist. I would like to create a handle to my string, then write it out to the STR# resource with a new id. Here is a code fragment:

/* 2 */

do_write()
{
OSErr oserr;
Handle dstHdl;
Ptr destPtr;
int newID;
int checkdigit;
int my_resfile;
OpenResFile(“\pNewRes”);
my_resfile = OpenResFile(“\pNewRes”);
UseResFile(my_resfile);
/*
newStr looks like this:
 “/0/3/5Test1/5Test2/0”
*/
dstHdl = NewHandle(sizeof((char *)&newStr));
oserr = PtrToHand((char *)&newStr,dstHdl,(long)sizeof(newStr));
if (oserr)
{
/*check os error here */
}
HLock(dstHdl);
newID = UniqueID(‘STR#’);
AddResource(dstHdl,’STR#’,newID,”\p”);
WriteResource(dstHdl);
checkdigit = HomeResFile(dstHdl);
/* always shows up as a -1
   meaning that this is not a handle to the resource
   why?,why?,why?
*/
HUnlock(dstHdl);
CloseResFile(my_resfile);
}

From: Mikel

Re: OOP Ignorance

When you say “get at” the Button, are you referring to getting control when the button’s smacked? If so (mind you, I’ve not used THINK C objects, just MacApp), odds are you should declare a class descendent from the type of AcceptButton (TButton, perhaps?) and override the appropriate method. Hope this makes sense.

From: Smug1

Re: OOP Ignorance

Thanks for the help, and I will try in that region. What I want to do is, When someone clicks on that button, to be able to send the message to my routine to do “Whatever”. Sort of like an “On MouseDown” script in HyperCard. I HAVE tried to make a Subclass; maybe I am doing it wrong. Using the same code as before, When I declare a new class (MyButton) and then try to access it, it tells me that “Acceptbutton is not declared. Do I redo the “new(AcceptButton)” routine ?

From: Mikel

Re: OOP Ignorance

I took a peek at some THINK C OOP code and saw that your CButton, when pressed, can send a message to its supervisor (I assume that’s the container view). Call the button’s SetClickCmd method with the appropriate command number (of your choosing). When the user presses the button, the supervisor’s DoCommand method is called with the button’s clickCmd.

In other words, don’t bother creating a new button class. The support is already there.

From: Smug1

Re: OOP Ignorance

Thanks for more of the help. I will give that a try. I figured it was that or “DoGoodClick” but I was not real sure where to assign it. (I am programming in Think Pascal w/TCL, by the way) I will keep marching on, and let you know how it goes.

From: Smug1

Re: OOP Ignorance (Still)

Sorry to keep bothering everyone. If I could get a hint...

Using Think Pascal 3.0 w/TCL & AppMaker, trying to get control of my controls (Mainly, my OK & Cancel buttons). They are made in my window initialization (AppMaker Generated). I try to get a hold of them by using:

Type

MyButton = Object(Cbutton)

Procedure DoGoodClick(WhichPart:integer);

Override;

end;

It shows up in the “Class Browser”, and compiles fine, but in my code area I put:

procedure MyButton.DoGoodClick(WhichPart:Integer);

begin

{Nothing here but a “stop sign” to wait for the step through}

end;

I was just check to see if it would use it, but when I put a “Stop” there, it never goes near it. It stops at CButton’s “DoGood Click” but not mine. Is it my breath ? Any help would be appreciated.

From: Mikel

Re: OOP Ignorance (Still)

Sounds like your object isn’t the one getting into your view. Are you sure your initialization code instantiates a MyButton and not a CButton?

From: Smug1

Re: OOP Ignorance (Still)

Thanks for all the assistance and help. I finally called Bowers Development to ask them if there was a “Suggested” method of overriding their buttons that they have generated.

(Some Background) If you have never used AppMaker (which is a neat program, I think and now supports MacApp) It generates 2 “Modules” for each area--a regular module, and one with a “Z” prefix. The “Z” module should remain unchanged, because it will be regenerated should you change something later with the AppMaker program. But the regular module will be untouched, so you can override & code away, safe in knowing that you won’t wipe out your work if you make a change in the interface.

So I called Bowers, and they said that although it is not recommended to change the “Z” module, you HAVE to change it to assign a “SetClickCmd” to the button, or else recode EVERYTHING. They said they will automatically do this for future versions, but as of yet, this is the way to do it. I feel a little sheepish, but it’s better than still not knowing. Such a simple solution, but the manual said...

From: Smug1

Re: OOP Ignorance (Still)

A better way for me to get control of my button (or anything else for that matter) is NOT to modify the “Z” module of AppMaker, but to override the “IMainWindow” method of the “Z” module in the regular module, “inherit” the “IMainWindow” methods & instance variables, and add the “SetClickCmd there instead. That way, the “Z” module” remains pristine (i.e. no extra coding should I regenerate it). This is getting interesting (dare I say it, almost “Fun”!).

From: Mikel

Re: OOP Ignorance (Still)

Bizarre. Anyway, I’m currently using ViewEdit with MacApp, which is pretty cool, but I’d certainly like to hear more about AppMaker. Do you have their phone number?

From: Smug1

Re: OOP Ignorance (Still)

Yes, I do. As a side note, I ordered this from Japan, as a trade up from Prototyper, and I got it in about 3 days after the transfer of funds reached them. Anyway, the number is: (508) 369-8175 (EST 9-5) or (508) 369-8224 FAX number. Compuserve 70731,3710. Applelink D1721. As I learn more about OOP, and find that AppMaker helps a lot in “Getting idea”, but it must be ok for others too.

From: Midiman

Re: Writing a Macintosh Application

Is there anyone out there who can offer me some guidance in converting a Turbo Pascal program to a Macintosh application? I’ve spent an hour scanning the shelves at Computer Literacy trying to find a book on writing applications but the only thing I could find is MPW and I don’t have the capital to purchase it at this time. I have a Turbo Pascal book by Borland and it has a few applications that come with the software but the documentation is pretty cryptic. One of the examples enables me to write a text file to the screen but I can’t seem to figure out how to write it to an array. I’ve managed to define my menus and my windows but I’m really not too clear on what I’m doing (other than copying the examples in Turbo Pascal).

I also have the first two volumes of Macintosh Revealed but I have had no success using the examples in those books with Turbo Pascal. Any ideas on why that might be? I am not an experienced programmer, I’m pretty much self taught, but I’m not too proud to ask for help from anyone who can point me in the right direction. Any information that you might have in this regard would be greatly appreciated.

From: Walrus

Re: Writing a Macintosh Application

One book I can recommend for Macintosh programming is Macintosh Programming Primer for Think Pascal. This is using a different programming environment than you are. Outside of that, you might be able to find a Mac Turbo Pascal book somewhere, but I’m not sure what kind of selection you have for that. As for your comment that you really don’t feel like you know what you’re doing -- I think that happens with experienced programmers going to the Mac for the first time. If you have little experience outside of the Mac, then your learning curve will be even steeper. But you just have to keep at it and after awhile you’ll get the hang of it. You are best advised to stick with small projects for now (like create a mini application that has a menu that creates different kinds of windows). That way you can get some confidence in using the Toolbox and all that. As your experience increases, then you can go ahead and do some scarier things.

From: Smug1

Re: Writing a Macintosh Application

If you already have Turbo Pascal Mac, then I suggest "Turbo Pascal Tutor" from Borland. It goes through everything, and is pretty easy to follow. If you have not purchased a language, THINK Pascal is a winner. If you buy THINK, then get Mark & Reed's Macintosh Pascal Programming Primer. It's good, and dedicated to THINK. If you want Interface code generators, Prototyper supports Turbo, Think, MPW & TML. It only does procedural code. AppMaker does OOP & Procedures, but not Turbo (Think, MPW, MacApp), however in the long run, it can "Grow" with you. For "Real" reference, you'll need IM 1-6, a wheelbarrow, and a loan. Check your latest "MacTutor" for Ads on these products. Good Luck ! Don't worry about being a beginner. I am too, and you should see (maybe you shouldn't) some of the questions I ask...

From: Midiman

Re: Writing a Macintosh Application

Thanks for the feedback. I don’t think it would be a quantum leap to switch from Turbo Pascal to Think Pascal, but what about doing it in C? I only ask because I’m using my girlfriend’s Mac and she already has Think C. The reason I originally wrote the program in Turbo Pascal is that I thought it would be logical to do it in Pascal (since that’s what the operating system is written in) but the only Pascal she has is the old Borland Turbo Pascal. As far as sticking with simple applications is concerned, I’ve already gotten that far. I have figured out how to define my own menus, windows and sizes. What I can’t seem to do is the simple stuff like a ReadLn. It worked in the original program (which now displaces 20K, and 12 pages of hardcopy), but now it chokes on the ReadLn command even though I think I’ve declared all the necessary resources. Anyway, it’s beginning to look more and more like I’m going to go the Think way (whether it’s C or Pascal remains to be seen). Thanks again for the feedback, if you think of anything else that I might be doing wrong drop me a line.

From: Midiman

Re: Writing a Macintosh Application

Thanks for the response about writing the Mac application. I’m probably going to have to get the loan first before I get the wheelbarrow and Inside Macintosh. I’m not familiar with MacTutor however, is that a magazine? Would I find it at Computer Literacy? Your continued feedback will be greatly appreciated.

From: Smug1

Re: Writing a Macintosh Application

MacTutor is the Mac Programmers Magazine. I’m not sure what Computer Literacy is (Take that how you will...). I live in Japan, so I get it at the T-Zone at outrageous prices (Subscribe? maybe). That’s how I found the Mouse Hole (this BBS) Have fun, don’t hesitate to ask.

From: Pkram

Re: Multifinder & MacTutor

Does anyone remember which issue of MacTutor discussed programming with WaitNextEvent? I only have IM vol’w 1-5, but I think MacTutor had an article about how to use it. (Try volume IV, numbers 2 & 3 for some good MultiFinder articles.-ed)

From: Grinch

Re: Multifinder & MacTutor

It’s in the Programmer’s Guide to Multifinder as well as IM6. Actually, IM6 is more authoritative and it covers system 6 with Multifinder as well as system 7.

From: Jslee

Re: Segment Loader Limits with TCL

Yeah, I am running out of JT during the build (i.e. “data segment too big”). I got rid of a lot of static vars that I did not need. But the strange thing is that this happens ONLY when I venture outside the use of the TCL Libs and functions. What I have done is made two modal dialog routines which have 3 editable text fields. Man, each section of code takes up about 6k of data space. Yeah, I am doing a lot of string manipulation stuff, but I figured that it would give me SOME overhead, but NOT as much as it does. Right now the whole thing is reasonable. I have about 14-15k of data segment space left, so I am being REAL careful.

From: Dave

Re: Segment Loader Limits with TCL

Your overruns MAY be due to too much global data use (strings/global static arrays, etc.) Separate STRs can fix that. So can THINK C 5.0 which is now shipping.

From: Scottab

Re: Think Reference 1.0

Yes, but will the THINK Reference be easier to lug around than Inside Macintosh 1-6 and the X-Ref and far more comprehensive than the Programmer’s Online Companion? If so, I’ll buy it.

From: Walrus

Re: Think Reference 1.0

Think Reference not only gives you the calls for the routines (usually in C rather than Pascal) but tells you what it’s for, what the parameters are and many times gives some snippets of code. It’s much more comprehensive than Online Companion (the Think Ref database is 2.2 Megs) and is easier to lug around and refer to than IM. I haven’t taken Inside Mac DA off my system yet but I certainly don’t use it as much. TR seems to be easier to use.

From: Scottab

Re: Patching Launch trap

It would probably be too much work to patch OpenResFile, as any application can open any other application (read ResEdit). How would you tell that the application was actually launching, and not just opening?

This is a good question. The INIT I wrote a while back that keeps track of the applications launched patches _InitGraf. I will have to dig it up and see if it works under MultiFinder. It seemed at the time to be the perfect trap to patch, as every application should call it, whether or not it has menus, windows, or dialogs.

From: Scottab

Re: HELP! Menu Bar Height

I have heard about this routine, but I couldn’t find any other mention of it, even in the THINK C Mac #interfaces. Have you been able to call it ? If so, how?

What I do now is declare:

      extern int MBarHt : 0x0BAA;

Then just use MBarHt like any other integer. If you desire, and as soon as I get home, I will upload a code fragment that works on every Mac I’ve tried it on.

From: Btoback

Re: HELP! Menu Bar Height

GetMBarHeight is documented in IM5, page 315.

From: Frankh

Re: Serius?

I recently downloaded a demo of Serius, and it looks like an interesting way of generating an application, and it can read externally compiled code (in just about any language, it seems). The demo is pretty simple, but interesting. Does anyone here use the Developer version? How hard is it to generate useful external code for it? What are the drawbacks? Are there any major speed hits?

From: Walrus

Re: Minix on the Mac

Does anyone out there have any experience with Minix on the Macintosh (it’s kind of like a Unix shell)? Does it support programming access to Unix system calls from C? What about awk and sed? The package I saw was for $169 (with source code!) , and I am curious to know how much it simulates a ‘real’ Unix environment.

Yes, I know Apple has A/UX but I have neither an ‘030 machine nor $800 to spring for ‘Unix for the rest of us’.

From: Femur

Re: sound software

I’m looking for a shareware file for the Mac that can let me attach sounds to finder activities. I know I’ve seen this program on some BBS, but I can’t remember what it’s called, or from where I can download it.

Does anyone know what I’m talking about? Thanks.

From: Sysop

Re: sound software

The name of the cdev is SoundMaster. I have just uploaded the latest version (1.7.1) to the System File LIB.

From: Chuckerp

Re: Hacking Laserprep / QuarkPrep

Is anyone else decoding Apple’s Laserprep postscript code? How about QuarkXpress’s preamble? I’ll show you mine if...

From: Smug1

Re: Kanji Fonts

Does anyone have/know of a decent public domain Kanji Laser Font that works with a QMS PS/410 ? I have the fonts that came with my Japanese System, but I can not get the “Font Downloader” utility to see them, and everything comes out Bitmapped. Any info would be appreciated.

From: Mrteague

Re: Sytem 7 and HP DeskWriter

Re your problem with the HP DeskWriter : it would help to tell us what model Mac you are using this printer with. I believe the IIfx has problems with this printer - due to the HP DeskWriter printer driver doing some low level things it shouldn’t have been. As I understand it, problems with the Mac and HP DeskWriter are a fault of HP, not Apple. I also believe HP have fixed this problem some time ago, and there is a new version of the driver available - suggest you contact HP.

From: Scottab

Re: System 7 and HP DeskWriter

Contacting HP is a long and arduous task: they’re too big. I’ve found that dealing with them rarely results in them mailing you the drivers that week. They tried to convince me that the old ones were adequate for my uses. In all, I was disappointed. Try contacting the store you bought it from: they should have a copy and copy it onto your disk for free.

From: Sonnyb

Re: System 7 and HP DeskWriter

I have had a similar problem with DeskWriter. I called HP and apparently there is a problem using the DeskWriter through the serial port while using virtual memory. That is when you get the message “DataComm buffer overrun - no DTR handshake.” HP is working on the problem and will be offering an upgrade soon. This problem does not occur if you use the DeskWriter over an AppleTalk network. If you turn off virtual memory, all is well.

From: Dirks

Re: System 7 and HP DeskWriter

Thanx. Turning off V-memory really solved the problem. Now all I need is a RAM upgrade...

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

GarageSale 7.0.7 - Create outstanding eB...
GarageSale is a slick, full-featured client application for the eBay online auction system. Create and manage your auctions with ease. With GarageSale, you can create, edit, track, and manage... Read more
SpamSieve 2.9.28 - Robust spam filter fo...
SpamSieve is a robust spam filter for major email clients that uses powerful Bayesian spam filtering. SpamSieve understands what your spam looks like in order to block it all, but also learns what... Read more
Thunderbird 45.7.1 - Email client from M...
As of July 2012, Thunderbird has transitioned to a new governance model, with new features being developed by the broader free software and open source community, and security fixes and improvements... Read more
Opera 43.0.2442.991 - High-performance W...
Opera is a fast and secure browser trusted by millions of users. With the intuitive interface, Speed Dial and visual bookmarks for organizing favorite sites, news feature with fresh, relevant content... Read more
OnyX 3.2.4 - Maintenance and optimizatio...
OnyX is a multifunction utility that you can use to verify the startup disk and the structure of its system files, to run miscellaneous maintenance and cleaning tasks, to configure parameters in the... Read more
VueScan 9.5.71 - Scanner software with a...
VueScan is a scanning program that works with most high-quality flatbed and film scanners to produce scans that have excellent color fidelity and color balance. VueScan is easy to use, and has... Read more
Slack 2.5.1 - Collaborative communicatio...
Slack is a collaborative communication app that simplifies real-time messaging, archiving, and search for modern working teams. Version 2.5.1: New The way we load teams you don't view often has been... Read more
HandBrake 1.0.3 - Versatile video encode...
HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs. Features Supported Sources VIDEO_TS folder, DVD image or real DVD (unencrypted... Read more
Vivaldi 1.7.735.46 - An advanced browser...
Vivaldi is a browser for our friends. In 1994, two programmers started working on a web browser. Our idea was to make a really fast browser, capable of running on limited hardware, keeping in mind... Read more
Vivaldi 1.7.735.46 - An advanced browser...
Vivaldi is a browser for our friends. In 1994, two programmers started working on a web browser. Our idea was to make a really fast browser, capable of running on limited hardware, keeping in mind... Read more

Mudd Masher arrives this week
Atooi Games, the minds behind Totes the Goat and Mutant Mudds, have a new game in the works -- Mudd Masher. The game, a hybrid of the independent studio's first two titles, is expected to launch this week on March 2. [Read more] | Read more »
The best sales on the App Store this wee...
The App Store has quite an exciting lineup of discount games this week that range across a variety of genres. It's a great opportunity to catch up on some of the premium games you may have been holding off on -- and some you can even grab for free... | Read more »
The best new games we played this week
Ah, here we are again at the close of another busy week. Don't rest too easy, though. We had a lot of great new releases in mobile games this week, and now you're going to have to spend all weekend playing them. That shouldn't be too much of a... | Read more »
Rollercoaster Tycoon Touch Guide: How to...
| Read more »
Rabbids Crazy Rush Guide: How to unlock...
The Rabbids are back in a new endless running adventure, Rabbids Crazy Rush. It's more ridiculous cartoon craziness as you help the little furballs gather enough fuel (soda) to get to the moon. Sure, it's a silly idea, but everyone has dreams --... | Read more »
Tavern Guardians (Games)
Tavern Guardians 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Tavern Guardians is a Hack-and-Slash action game played in the style of a match-three. You can experience high pace action... | Read more »
Slay your way to glory in idle RPG Endle...
It’s a golden age for idle games on the mobile market, and those addictive little clickers have a new best friend. South Korean developer Ekkorr released Endless Frontier last year, and players have been idling away the hours in the company of its... | Read more »
Tiny Striker: World Football Guide - How...
| Read more »
Good news everyone! Futurama: Worlds of...
Futurama is finding a new home on mobile in TinyCo and Fox Interactive's new game, Futurama: Worlds of Tomorrow. They're really doing it up, bringing on board Futurama creator Matt Groening along with the original cast and writers. TinyCo wants... | Read more »
MUL.MASH.TAB.BA.GAL.GAL (Games)
MUL.MASH.TAB.BA.GAL.GAL 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: ENDLESS UPGRADES. CONSTANT DANGER. ANCIENT WISDOM. BOUNCY BALLS. Launch Sale, 40% OFF for a very limited time!!! MUL.... | Read more »

Price Scanner via MacPrices.net

13-inch 2.7GHz Retina MacBook Pro on sale for...
B&H Photo has the 2015 13″ 2.7GHz/128GB Retina Apple MacBook Pro on sale for $150 off MSRP. Shipping is free, and B&H charges NY tax only: - 13″ 2.7GHz/128GB Retina MacBook Pro (MF839LL/A): $... Read more
13-inch 1.6GHz/256GB MacBook Air on sale for...
Newegg has the 13″ 1.6GHz/256GB MacBook Air (MMGG2LL/A) on sale for $1029.99 including free shipping. Their price is $170 off MSRP, and it’s the lowest price available for this model. Choose Newegg... Read more
Apple refurbished Apple TVs available for up...
Apple has Certified Refurbished 32GB and 64GB Apple TVs available for up to $30 off the cost of new models. Apple’s standard one-year warranty is included with each model, and shipping is free: -... Read more
27-inch 3.3GHz 5K iMac on sale for $2099, sav...
B&H Photo has the 27″ 3.3GHz 5K Apple iMac on sale for $2099.99 including free shipping plus NY sales tax only. Their price is $200 off MSRP. Amazon also has the 27″ 3.3GHz 5K iMac on sale for $... Read more
21-inch iMacs on sale for up to $111 off MSRP
B&H Photo has select 21″ Apple iMacs on sale for up to $110 off MSRP, each including free shipping plus NY sales tax only: - 21″ 2.8GHz iMac: $1189 $110 off MSRP - 21″ 1.6GHz iMac: $999 $100 off... Read more
12-inch 1.2GHz Retina MacBooks on sale for $2...
Newegg has the 12″ 1.2GHz Space Gray Retina MacBook (sku MLH82LL/A) on sale for $1349.99 including free shipping. Their price is $250 off MSRP, and it’s the lowest price available for this model.... Read more
13-inch MacBook Airs on sale for $100 off MSR...
B&H Photo has 13″ MacBook Airs on sale for $100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 1.6GHz/128GB MacBook Air (MMGF2LL/A): $899 $100 off MSRP - 13″ 1.6GHz/... Read more
9-inch 32GB Silver iPad Pro on sale for $549,...
B&H Photo has the 9.7″ 32GB Silver Apple iPad Pro on sale for $549 for a limited time. Shipping is free, and B&H charges NY sales tax only. Their price is $50 off standard MSRP for this model... Read more
13-inch 2.0GHz Apple MacBook Pros on sale for...
B&H has the non-Touch Bar 13″ 2.0GHz MacBook Pros in stock today and on sale for $100 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 2.0GHz MacBook Pro Space Gray (... Read more
15-inch Touch Bar MacBook Pros on sale for up...
B&H Photo has the new 2016 15″ Apple Touch Bar MacBook Pros in stock today and on sale for up to $150 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 15″ 2.7GHz Touch Bar... Read more

Jobs Board

*Apple* Solutions Consultant - Apple (United...
# Apple Solutions Consultant Job Number: 55676865 Los Angeles, California, United States Posted: Feb. 22, 2017 Weekly Hours: 40.00 **Job Summary** As an Apple Read more
Programmer/Editor *Apple* Music Dance - App...
# Programmer/Editor Apple Music Dance Job Number: 55565967 Culver City, California, United States Posted: Feb. 23, 2017 Weekly Hours: **Job Summary** Apple Music Read more
Digital Marketing Specialist - *Apple* iClo...
# Digital Marketing Specialist - Apple iCloud Job Number: 54729233 Culver City, California, United States Posted: Feb. 22, 2017 Weekly Hours: 40.00 **Job Summary** Read more
Marketing Specialist, iTunes & *Apple*...
# Marketing Specialist, iTunes & Apple Music Job Number: 55704205 Culver City, California, United States Posted: Feb. 23, 2017 Weekly Hours: 40.00 **Job Summary** Read more
*Apple* Wireless Lead - T-ROC - The Retail O...
…of knowledge in wireless sales and activations to the Beautiful and NEW APPLE Experiencestore within MACYS. THIS role, APPLE Wireless Lead, isbrandnewas MACYS Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.