TweetFollow Us on Twitter

Dec 87 Letters
Volume Number:3
Issue Number:12
Column Tag:Letters

Letters

MacTutor Editorial

Multi-Finder Changes the Game

The arrival of Multi-Finder changes the game for tool makers in the Macintosh world. When the Mac first came out, the emphasis was on one tool, one job. Consulair C and TML Pascal followed this design philosophy by making their compiler products seperate tools. There was the editor tool, the compiler tool, the linker tool and so forth. Using switcher, these tools could be used very easily, switching back and forth between them. After a while, this mode of operation fell out of favor as new system enhancements made switcher unreliable. This led to the creation of the “all-in-one” environment of LS C and Pascal and the MPW shell. In these products, the tools are not seperate anymore, but integrated with the shell environment of the tool maker. These products have become very popular. This change in thinking has also affected application development. With Pagemaker, the tools for creating layouts were unbundled and seperate. You use a word processor to create text, a drawing program to create graphics, and a layout tool like Pagemaker for combining and creating layouts, using the files created by the other tools. Lately, however, there has been a movement to return to the large, integrated tool, that does both word processing, graphics and layout in one. Microsoft Word has expanded into page layout, FullWrite is supposed to rival Pagemaker, Scoop combines an editor, Paint and Draw program with it’s layout capabilities. The result of this is that applications are bigger, more complicated and attempt to do all things for all people. This also makes them harder to debug, so that products like FullWrite and Scoop run over their ship dates by six months or more, and products like MS Word ship with bugs, causing a furor in the marketplace.

In the new world created by Multi-Finder, these integrated environments are the exact opposite of what we want today. Multi-Finder gives the user the opportunity to create his own integrated working environment, by mixing and matching the tools he wants open at any one time. The integrated environments prevent this by either not working at all with Multi-Finder, or by being so big and massive as to make their use under Multi-Finder impossible without five megabytes of memory!

The New Way of Tool Design

To take full advantage of the new Multi-Finder way of doing things, tools should go back to the old adage “keep it simple, stupid!”. One tool for one job is our motto. And each tool should have a re-sizable, dragable window because Multi-Finder operates best with normal windows. By clicking in the tool’s window, that tool is immediately activated. The user can then open the tools he wants and arrange their windows on the screen or screens at his disposal. Also, tools should confine their controls to their own window, rather than blasting a control all over the screen (as in WriteNow’s ruler). Normal, scrolling windows should be supported rather than fixed dialog boxes (as in Absoft’s Fortran). Windows should be moveable rather than fixed (as in Apple’s MacPaint). MacTutor encourages tool makers, both applications and programming products, to return to the idea of simple, reliable, one purpose tool making, each tool in it’s own window. Lets concentrate on creating tool families that can share information easily and painlessly in the new Multi-Finder environment.

Apple Defines the User Interface

Apple has published a new book with Addison-Wesley that defines the user interface for Macintosh type computers. Because Apple is trying to port the Mac look and feel back to their Apple IIgs, the name of the book is Human Interface Guidelines: The Apple Desktop Interface. But in reality, this is a complete, single volume statement of how a Macintosh application should look and feel to the user. The book contains descriptions of the look and feel associated with such new topics as tear off menus, pop-up menus and hierarchical menus. What is not in the book, and is needed, is some idea on how the user interface the book describes can be implemented! (I’m thinking of writing a little booklet that would implement the user interface as Apple describes it as the Pascal shell example they left out!) Also missing is some discussion of the philosophy of tool design as I’ve indicated in this editorial, now that Multi-Finder allows multiple active tools to be sitting around on the desktop. Tools need to be designed in such a way that they can be confined by the user if he wants to push that tool off to the side of the screen somewhere. Also missing from the book is a discussion of tool design for Apple Share, and what constraints that environment puts on good programming practice. Perhaps we need a volume 2 of the Apple Desktop Interface: The Developer’s Perspective. Human Interface Guidelines is part of the Apple Technical Library Series from Addison-Wesley and should be available at the MacWorld Expo in San Francisco. A must purchase for developers.

Colorizer Fixes Color Problems

Last month, we said you can’t take a snapshot of the color screen. The Colorizer cDev from Palomar Software does allow you to capture a color screen and to save it as a color PICT. Eventually the graphics programs will get updated to work with color PICTS so this will be very useful. A new version, 1.1 is now shipping and we recommend this product if you have a Mac II. Colorizer is a utility that adds colors to PICT compatible objects, allowing you to colorize MacDraw and other object oriented documents. See the mail order store in this issue, or contact them directly at (619) 727-3922.

WriteNow Cures Pagemaker Problems with MacWrite Formatted Files

As we have reported previously, the file filter in Pagemaker for MacWrite formatted files is buggy and often fails to place the file correctly. A dialog box comes up and says “you’ve used fonts not in your system file” and so forth. This problem has been a pain for us since we normally use MacWrite as our “galley editor” tool. This gives me a chance to again rant and rave about how we need tools for specific jobs.

In setting a magazine every month, you don’t need or want the world’s most comprehensive word processor. All that stuff just gets in your way. All you really need is a “galley editor”. Such a product need only set the column width, leading, font, style and tabs for creating galley strips of editorial. But it must be fast, and bomb proof. Those strips are then typeset into magazine columns with a page layout program like Pagemaker. It is much more efficent to keep these two tasks seperate. But Pagemaker has to be able to read a formatted file and version 2.0 can’t do this reliably with MacWrite. So we have switched from MacWrite to WriteNow by T/Maker and NeXT, which apparently owns the copyright. All the editorial in MacTutor is now set up with WriteNow. A translator program allows MacWrite and Word files to be translated into formatted WriteNow files. (The translator seems to have problems with Word 3.01, but you can save word files as MacWrite files, and the translator can convert those to WriteNow files.)

WriteNow is an excellent example of what I mean by a “galley editor”. It is simple, fast and obvious, like MacWrite, only better. It conforms to the new tool design philosophy by doing one thing well, like Filemaker. In fact, I think of it as the “Filemaker of word processors”. (The only drawback is that it’s ruler is not confined to a window as it should be to be truly Multi-Finder friendly.) The ability to set the leading and check the spelling in WriteNow, and have that leading respected by Pagemaker is what makes this tool so great for use with Pagemaker. As we have reported before, leading is a design goof in Pagemaker that can waste a lof of time trying to re-set the results of the auto leading calculation.

What I really like about WriteNow is that it follows the user interface in an obvious and simple way, unlike MS Word, which tries to go out of it’s way to be obnoxious. A simple example: you can set bold face type by pressing command-B, which should be obvious. But Pagemaker requires you to press shift-cmd-B, which is a physical impossibility for most normal people. I asked them why they did that and they said “because MS Word does!”. Obviously, they never tested their own interface. Another example: fonts and style are easily changed, both globally and locally, without the pain of a messy dialog box like MS Word and Pagemaker require. And the built-in spell checking is so easy and fast that even I can use it! (No more letters on MacTutor’s spelling problems!)

So if your looking for a good galley editor for Pagemaker, take a took at WriteNow. It has multiple windows, spell checking, leading, and simplicity. Once more, it’s file filter for Pagemaker works correctly. If you write for MacTutor and have WriteNow, please submit articles as WriteNow files instead of MacWrite files, although we can easily convert them. Contact T/Maker at (415) 962-0195. Current version shipping is 1.07, although I am using 1.0 on a Mac II with no problems.

Big Arrays for LS Pascal?

Noel Godlsmith

Melbourne, Australia

In the September issue of MacTutor, you published an article by Daryl Lovato on how he creates large arrays in TML Pascal (getting around the 32K limitation of the segment loader). I’ve tried everything and I can’t get this example to work in LS Pascal. I’ve written to Think also to ask them about this.

[The following unit will demonstrate how to create large arrays in LS Pascal following Lovato’s example. LS is very picky about things, especially handles, but the big problem seems to be that the address returned for a locked handle is not the correct address at all, but includes the lock bit, which currently is stored in the handle itself. To get the correct address, you have to clear the high order bit. In the SetElement routine, you need something like the following:

 MoveHHI(handle(mystuff));  
 HLock(handle(mystuff));  
 baseAddress := Ord4(@mystuff^^.dataStuff);
 BitClr(@baseAddress, 0); {clear lock bit}
 cellAddr:=fakePtr(baseAddress+(elemNum*mystuff^^.cellSize)); myPtr := 
fakePtr(elemPtr); 
 FOR i := 0 TO mystuff^^.cellSize - 1 DO 
 cellAddr^[i] := myPtr^[i]; 

This unit was set up to be used with the Pascal Code Tester that Jeff Fox wrote for us last month. If you add this unit to his program, and call GetBigArray in the test routine, then you can see the results of this unit. Note how the output is stuffed into the TextEdit record using TEInsert, where it will display with the next update event. Also, please be aware that the current version of LS Pascal is 1.11 and that this works (nearly) with the Mac II and provides the Volume 5 interfaces (still some bugs with the color video card turned on, switching context between the appl. and LS shell.) -Ed]

UNIT arrayStuff; 

INTERFACE 

 USES   ROM85, TestGlobals; 
 
FUNCTION CreateNewArray(elemSize,upperBound:Longint):Handle;
PROCEDURE SetElement(ary:Handle; elemNum: Longint;             elemPtr:Ptr); 

FUNCTION GetElement(ary:Handle; elemNum:Longint):Ptr; PROCEDURE GetBigArray; 


IMPLEMENTATION 

 TYPE   
 ArrayHdl = ^ArrayPtr;    
 ArrayPtr = ^ArrayRec;    
 ArrayRec = RECORD 
 hiBound: integer; 
 cellSize:  Longint; 
 dataStuff: integer;
 END; 

FUNCTION CreateNewArray;

VAR     
 tempHdl : ArrayHdl; 
BEGIN   
 tempHdl := ArrayHdl(NewHandle(Ord4(SizeOf(ArrayRec)) - 2 +    
 ((upperbound + 1) * elemSize)));  
 MoveHHI(handle(tempHdl));  
 HLock(handle(tempHdl));  
 WITH tempHdl^^ DO 
 BEGIN  
 hiBound := upperBound; 
 cellSize := elemSize;    
 END;   
 CreateNewArray := Handle(tempHdl);  
 HUnlock(handle(tempHdl));  
END; 
 
PROCEDURE SetElement;
 
TYPE    
 fakeary = PACKED ARRAY[1..10000] OF signedbyte;   
 fakeptr = ^fakeary; 
 
VAR     
 baseAddress : LongInt;   
 cellAddr, myPtr : fakePtr; 
 i : integer;    
 mystuff : ArrayHdl; 

BEGIN   
 mystuff := ArrayHdl(ary);  
 MoveHHI(handle(mystuff));  
 HLock(handle(mystuff));  
 IF (elemNum > 0) AND (elemNum < mystuff^^.hibound) THEN 
 BEGIN  
 baseAddress := Ord4(@mystuff^^.dataStuff);                    BitClr(@baseAddress, 
0);     
 cellAddr := fakePtr(baseAddress+(elemNum *                    
 mystuff^^.cellSize));    
 myPtr := fakePtr(elemPtr); 
 FOR i := 0 TO mystuff^^.cellSize - 1 DO 
 cellAddr^[i] := myPtr^[i]; 
 END;   
 HUnlock(handle(mystuff));  
END; 
 
FUNCTION GetElement; 
VAR     
 mystuff : ArrayHdl; 
 baseAddress : LongInt;   
 size : LongInt; 

BEGIN   
 mystuff := ArrayHdl(ary);  
 MoveHHI(handle(mystuff));  
 HLock(handle(mystuff));  
 baseAddress := Ord4(@mystuff^^.dataStuff);  
 BitClr(@baseAddress, 0); 
 size := mystuff^^.cellSize;  
 IF (elemNum > 0) AND (elemNum < mystuff^^.hibound) THEN       
 GetElement := Pointer(baseAddress + (elemNum * size));        HUnlock(handle(mystuff)); 
 
END; 
 
PROCEDURE GetBigArray;
 
TYPE    
 BigPtr = ^BigRec; 
 BigRec = RECORD 
 r : real;  
 r2 : real; 
 other : ARRAY[1..20] OF Longint;  
 END; 
 
VAR     
 myArray : handle; 
 i : longint;    
 Big : BigRec;   
 ValuePtr : BigPtr;  
 Value : real;   
 str0, str1, str2 : str255; 
 number : longint; 
BEGIN   
 myArray := CreateNewArray(SizeOf(BigRec), 2000); 
 str0 := chr(13);  
 str1 := ‘Total Size of Record = ‘;  
 number := SizeOf(BigRec);  
 NumToString(number, str2); 
 str1 := concat(str1, str2);  
 TEInsert(pointer(ORD(@str0) + 1), 1, JeffsText);  
 TEInsert(pointer(ORD(@str1) + 1), length(str1), JeffsText); 
 str1 := ‘Total Size of the array = ‘;
 number := GetHandleSize(myArray); 
 NumToString(number, str2); 
 str1 := concat(str1, str2);  
 TEInsert(pointer(ORD(@str0) + 1), 1, JeffsText); 
 TEInsert(pointer(ORD(@str1) + 1), length(str1), JeffsText);   
 TEInsert(pointer(ORD(@str0) + 1), 1, JeffsText)   
 FOR i := 1 TO 2000 DO    
 BEGIN  
 Big.r := i / 1.0; 
 SetElement(myArray, i, @Big);     
 ValuePtr := BigPtr(GetElement(myArray, i));
 value := valuePtr^.r;    
 str1 := StringOf(value : 7 : 2);  
 IF (i > 500) AND (i < 519) THEN 
 BEGIN  
 TEInsert(pointer(ORD(@str0) + 1), 1, JeffsText);              
 TEInsert(pointer(ORD(@str1) + 1), length(str1),               
 JeffsText);     
 END;   
 END;   
 DisposHandle(myArray); 
END; 
END.

LaserWriter EEPROM Behavior

Herb Weiner

Portland, Oregon

The following information relates to the item “LaserWriters Self-Destruct after One or Two Years!” on page 85 of the October MacTutor: It’s actually rather simple to “reset” the LaserWriter EEPROM, including the page counter: replacing the Version 23.0 PostScript (original LaserWriter Version 1.0) ROMs with Version 38.0 PostScript (LaserWriter Plus or LaserWriter Version 2.0) ROMs or vice versa resets the EEPROM, including all non-volatile parameters, the page counter, and the printer serial number used by the protected versions of the Adobe downloadable fonts. This is the reason that the page counter in early LaserWriters was reset to zero when they were upgraded to a LaserWriter Plus, but that the page counter in a newer LaserWriter (with Version 38.0 PostScript) is not reset by this upgrade. (I don’t know how the most recent version of PostScript behaves.)

The number at the lower left corner of the line graph on the startup page (1.0 or 2.0) indicates which version of the ROMs you have. If you have the old ROMs and your LaserWriter dies due to bad data in your EEPROM, perhaps you can persuade a sympathetic dealer to insert new ROMs long enough to power up the machine and reset the EEPROM. Alternatively, perhaps you’d rather spend the $800 on a LaserWriter Plus upgrade than a board swap! Note that this approach will work only if the problem with the EEPROM is bad data; if the EEPROM has physically gone bad, you can’t cure it by reprogramming. Each location in an EEPROM can be written only a limited number of times before it goes bad, at which point the EEPROM would need to be replaced. (I suspect you could unsolder and replace the defective EEPROM, which the software might then reprogram upon power up, but have never investigated this suspicion.)

I suspect it is somewhat unfair to blame Apple for the behavior of the EEPROM. PostScript is, after all, implemented by Adobe. It is my understanding that Adobe does not even provide source code to Apple. Perhaps I could expand this into an Article. (I am the author of the software for both LaserMagic™ and MacScan™)

CDEV Notes

Robert Rossevelt

New York, NY

Thanks to your recent articles about the new control panel and ‘cdev’ files, I have been doing some experimenting and have discovered the following (possibly trivial) facts which have not, as far as I know, appeared in print.

The control panel maintains a resource of type ‘clst’ in the System File. This resource contains information about the various cdev’s in the System Folder. In particular, it contains a copy of each cdev’s ICN# resource, which is distinct from the ICN# stored in the cdev’s file. This means that if you change the ICN# in the cdev file, the change doesn’t show up when you open the control panel.

However, if you hold down the command and option keys when opening the control panel, it will rebuild the ‘clst’ resource from scratch, thereby incorporating your icon changes. This procedure is distinct from holding Command-Option-Shift, which on some machines, resets the PRAM memory as well as rebuilding the ‘clst’.

Remember that you’ll also have to inform the DeskTop file about your changes if you want them to show up there. Note that the Chooser maintains a ‘clst’ of its own; presumably it serves the same purpose there as well. Thanks for an informative and useful magazine.

Foreign View of Developers

Charles Dyer

Kingston, Jamaica

One thing I really don’t like about shareware is when someone writes a shareware product and deliberately cripples it so that you have to send in the fee in order to get the ‘secret’ command to uncripple it, and then the author cashes your check but doesn’t bother to send you word one! Over the last two months, I’ve sent in two checks for useful shareware DA’s to people who did just that. Most people that I send shareware checks to break their necks getting back to me; these two don’t seem to be in any hurry.

I note that you don’t seem particularly interested in Modula-2 any more. I plan on getting either Semper Modula-2 or TML Modula-2. Right now, I’m leaning strongly towards Semper, mostly because it’ll work out cheaper for me and they bundle MPW in and ship for free. TML had the best shot, because Florida’s a lot closer, and cheaper to get at, than Illinois, but they don’t seem to like to answer letters there. If they don’t respond to my letters when I’m offering them money, how will they respond later on if I have a problem, and after I’ve given them my money?

The same kind of thing afflicts hard drive manufacturers. I’ve written at least a dozen and the only replies that I’ve received are from Jasmine, Warp Nie, and Relax. The others don’t seem to want my money. Maybe it’s my breath. Ah well. Enough moaning. I like your magazine. If you need someone to look at Modula-2 again, I’m available. [Developer’s, let’s be kind to our overseas friends. And yes, we are interested in Modula-2, but TML never sent me a Modula-2 compiler either, so -Ed]

68010 Rumor Mil

Gary Odom

Tullahoma, TN

The October issue of MacTutor had a Mousehole report that the 68010 chip, being pin-compatible with the 68000 could be put into a Mac (with no change in clock speed) and an “about 30%” speed increase would ensue. Scoth that rumor! A 30% speed increase is nothing to sneeze at, especially for a $50 chip you just slap in, but it just isn’t so.

I have an early Moster Mac (one where they rip the 68000 heart out, stick voodoo pins in the motherboard, and place the CPU on the “little beast”). I did some benchmarks with the 68000, then popped in a 68010 and ran the same tests. I found no difference when loading a MacDraw document or doing a Mac C compile from RamDisk. The Mac C Sieve with register integer math showed only a 3.6% improvement, and the floating point tests actually were 5% slower!

The 68010 has special “loop mode” instructions that are supposed to make for more effiecient processing in program loop situtations. This may account for the speed improvement in the register integer math benchmark. Why is the floating point slower? I don’t know. Perhaps Sane?

The Motorola 68000 Programer’s Reference manual has some instruction execution times (in clock cycles) for both the 68000 and 68010. The only significant difference is in the multiply and divide instructions, where the 68010 is about 30% faster in clock cycles. That may be how the rumor was started.

Debugger Art Work

Tim Hammett

Auckland, New Zealand

Put your Mac II into 256 colour mode, double click on the MacsBug 5.4 icon, and watch the show! [This little note intrigued me, so I tried it. MacsBug 5.4 displays a color fractal that increases in resolution the longer it runs.]

Key Bug in System 4.1 fixed in 4.2

Neville Smythe

Canberra, Australia

There is an error in one of the keyboard mapping resources in the System file 4.1, which is fixed in the new System file 4.2, which will not allow the characters A-tilde and O-tilde to be accessed from the keyboard. They are supposed to be obtained by pressing option-n A and option-n O respectively. The lower case characters work, as in ã and õ, but the upper case do not under system 4.1. This is a real problem since in the Symbol font, option-n A and option-n O are the heavily used ‘contained in’ characters, Ã and Õ. As you can see, under System 4.2, this apparently has been fixed, since I am now able to display them.

Custom Text Edit Project

Clifford Story

Murfreesboro, TN

I’m working on a project to replace TextEdit with custom editing routines. Would you like an article on this subject? [Yes, we’ve been after a TextEdit replacement for over a year! -Ed]

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Fresh From the Land Down Under – The Tou...
After a two week hiatus, we are back with another episode of The TouchArcade Show. Eli is fresh off his trip to Australia, which according to him is very similar to America but more upside down. Also kangaroos all over. Other topics this week... | Read more »
TouchArcade Game of the Week: ‘Dungeon T...
I’m a little conflicted on this week’s pick. Pretty much everyone knows the legend of Dungeon Raid, the match-3 RPG hybrid that took the world by storm way back in 2011. Everyone at the time was obsessed with it, but for whatever reason the... | Read more »
SwitchArcade Round-Up: Reviews Featuring...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for July 19th, 2024. In today’s article, we finish up the week with the unusual appearance of a review. I’ve spent my time with Hot Lap Racing, and I’m ready to give my verdict. After... | Read more »
Draknek Interview: Alan Hazelden on Thin...
Ever since I played my first release from Draknek & Friends years ago, I knew I wanted to sit down with Alan Hazelden and chat about the team, puzzle games, and much more. | Read more »
The Latest ‘Marvel Snap’ OTA Update Buff...
I don’t know about all of you, my fellow Marvel Snap (Free) players, but these days when I see a balance update I find myself clenching my… teeth and bracing for the impact to my decks. They’ve been pretty spicy of late, after all. How will the... | Read more »
‘Honkai Star Rail’ Version 2.4 “Finest D...
HoYoverse just announced the Honkai Star Rail (Free) version 2.4 “Finest Duel Under the Pristine Blue" update alongside a surprising collaboration. Honkai Star Rail 2.4 follows the 2.3 “Farewell, Penacony" update. Read about that here. | Read more »
‘Vampire Survivors+’ on Apple Arcade Wil...
Earlier this month, Apple revealed that poncle’s excellent Vampire Survivors+ () would be heading to Apple Arcade as a new App Store Great. I reached out to poncle to check in on the DLC for Vampire Survivors+ because only the first two DLCs were... | Read more »
Homerun Clash 2: Legends Derby opens for...
Since launching in 2018, Homerun Clash has performed admirably for HAEGIN, racking up 12 million players all eager to prove they could be the next baseball champions. Well, the title will soon be up for grabs again, as Homerun Clash 2: Legends... | Read more »
‘Neverness to Everness’ Is a Free To Pla...
Perfect World Games and Hotta Studio (Tower of Fantasy) announced a new free to play open world RPG in the form of Neverness to Everness a few days ago (via Gematsu). Neverness to Everness has an urban setting, and the two reveal trailers for it... | Read more »
Meditative Puzzler ‘Ouros’ Coming to iOS...
Ouros is a mediative puzzle game from developer Michael Kamm that launched on PC just a couple of months back, and today it has been revealed that the title is now heading to iOS and Android devices next month. Which is good news I say because this... | Read more »

Price Scanner via MacPrices.net

Amazon is still selling 16-inch MacBook Pros...
Prime Day in July is over, but Amazon is still selling 16-inch Apple MacBook Pros for $500-$600 off MSRP. Shipping is free. These are the lowest prices available this weekend for new 16″ Apple... Read more
Walmart continues to sell clearance 13-inch M...
Walmart continues to offer clearance, but new, Apple 13″ M1 MacBook Airs (8GB RAM, 256GB SSD) online for $699, $300 off original MSRP, in Space Gray, Silver, and Gold colors. These are new MacBooks... Read more
Apple is offering steep discounts, up to $600...
Apple has standard-configuration 16″ M3 Max MacBook Pros available, Certified Refurbished, starting at $2969 and ranging up to $600 off MSRP. Each model features a new outer case, shipping is free,... Read more
Save up to $480 with these 14-inch M3 Pro/M3...
Apple has 14″ M3 Pro and M3 Max MacBook Pros in stock today and available, Certified Refurbished, starting at $1699 and ranging up to $480 off MSRP. Each model features a new outer case, shipping is... Read more
Amazon has clearance 9th-generation WiFi iPad...
Amazon has Apple’s 9th generation 10.2″ WiFi iPads on sale for $80-$100 off MSRP, starting only $249. Their prices are the lowest available for new iPads anywhere: – 10″ 64GB WiFi iPad (Space Gray or... Read more
Apple is offering a $50 discount on 2nd-gener...
Apple has Certified Refurbished White and Midnight HomePods available for $249, Certified Refurbished. That’s $50 off MSRP and the lowest price currently available for a full-size Apple HomePod today... Read more
The latest MacBook Pro sale at Amazon: 16-inc...
Amazon is offering instant discounts on 16″ M3 Pro and 16″ M3 Max MacBook Pros ranging up to $400 off MSRP as part of their early July 4th sale. Shipping is free. These are the lowest prices... Read more
14-inch M3 Pro MacBook Pros with 36GB of RAM...
B&H Photo has 14″ M3 Pro MacBook Pros with 36GB of RAM and 512GB or 1TB SSDs in stock today and on sale for $200 off Apple’s MSRP, each including free 1-2 day shipping: – 14″ M3 Pro MacBook Pro (... Read more
14-inch M3 MacBook Pros with 16GB of RAM on s...
B&H Photo has 14″ M3 MacBook Pros with 16GB of RAM and 512GB or 1TB SSDs in stock today and on sale for $150-$200 off Apple’s MSRP, each including free 1-2 day shipping: – 14″ M3 MacBook Pro (... Read more
Amazon is offering $170-$200 discounts on new...
Amazon is offering a $170-$200 discount on every configuration and color of Apple’s M3-powered 15″ MacBook Airs. Prices start at $1129 for models with 8GB of RAM and 256GB of storage: – 15″ M3... Read more

Jobs Board

*Apple* Systems Engineer - Chenega Corporati...
…LLC,** a **Chenega Professional Services** ' company, is looking for a ** Apple Systems Engineer** to support the Information Technology Operations and Maintenance 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
*Apple* / Mac Administrator - JAMF Pro - Ame...
Amentum is seeking an ** Apple / Mac Administrator - JAMF Pro** to provide support with the Apple Ecosystem to include hardware and software to join our team and 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
Cashier - *Apple* Blossom Mall - JCPenney (...
Cashier - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Blossom Mall Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.