TweetFollow Us on Twitter

March 96 - Macintosh Q & A

Macintosh Q & A

Q I'm having problems with our caching drivers on the Power Macintosh 9500. Our drivers allocate a large amount of RAM (up to 4 MB) early in the boot process. If I set the driver's cache size to 4 MB, the computer locks up as soon as the driver is executed. If I set the cache size to 2 MB, the driver loads and executes properly, but the computer gets a bus error much later in the boot process (after MacsBug loads and after the Mac OS screen is displayed, but before the Finder executes). If I set the cache size to 1 MB, everything runs properly. What's going on here?

A Because of Open Firmware requirements, the boot stack on the new Power Macintosh 9500 CPUs was changed to 4 MB. As a result, you can't grow the system heap past 4 MB or a system crash will occur. If possible, try to defer allocating memory until INIT time. The 'sysz' mechanism is supported by the enabler ('boot' 3) when INITs are being loaded.

Q We want to maximize our throughput across the PCI bus between Macintosh memory and a block of static RAM on our card. This static RAM is also accessible from an on-card DSP, which constantly reads/modifies RAM. The DSP isn't directly on the PCI bus, so it can't easily participate in cache coherency schemes. What's the best way to get data across the PCI bus to and from this memory?

A The PowerPC processor can only burst to and from a cacheable memory space. Your best option is to use BlockMoveDataUncached. This doesn't use burst transfers, but rather uses floating-point loads and stores. You may want to design your own algorithms, using the double declaration in C to get compilers to translate BlockMoveDataUncached into floating-point loads and stores. For more information, see Chapter 9 of Designing PCI Cards and Drivers for Power Macintosh Computers, and Technote 1008, "Understanding PCI Bus Performance."

Q The Power Macintosh 9500 Developer Note says that the sound-in port for the 9500 has 4-conductor requirements. What is the 4-conductor pinout? Does the PlainTalk microphone work on the 9500?

A The 9500 has stereo in (supporting left, right, power, and ground) and requires a mini stereo plug that you can buy today -- no wacky new pinouts. The PlainTalk microphone works fine on the 9500.

Q Is there any information on writing native SCSI disk drivers for the PCI-based Power Macintosh computers? In particular, what's the proper way to install a native driver on a SCSI disk: is there a special partition type for a native driver, or should there be a standard SCSI disk driver that loads a PowerPC code fragment?

A Apple doesn't support native SCSI drivers yet (this will be a feature of Copland, the next generation of the Mac OS). You can write a native SCSI Interface Module (SIM). Remember that a driver is the software that handles a particular SCSI device, while a SIM is responsible for SCSI controllers (for example, PCI or NuBus(TM) cards).

Normally, SCSI 4.3 drivers are loaded off the Apple_Driver43 partition, and SIMs are typically loaded from the disk controller firmware (PCI card). If you want to load a native SIM off of the disk, you'll have to encapsulate the code fragments and read and link them in from your standard 680x0 driver.

Q We have SCSI routines that transfer 64K data blocks (to get the highest transfer rates possible with the tape drive we're using). On the Power Macintosh (8100/80 or 8100/100), if the mouse is moved during a 64K transfer, the cursor is jumpy. Lowering the cache size to 16K reduces the problem to an acceptable level but kills the transfer rates. We're using SCSI Manager 4.3. How do we avoid the jumpy cursor while maintaining maximum throughput?

A Your jumpy cursor is an indication that you aren't properly implementing SCSI direct memory access (DMA). When using the 8100 (and PCI-based machines) for DMA transfer efficiency, you should ensure the following:

  • Your data is aligned on 8-byte block boundaries. Since the DMA hardware can't do odd transfers, it must perform programmed I/O to handle at least part of the transfer if the data isn't aligned.
  • Your physical memory buffer is contiguous (which you ensure by calling LockMemoryContiguous). Otherwise, the DMA transfer will have to be broken up; this will especially be a problem if virtual memory is turned on.
Also, if you have disconnects enabled in your device or driver, it's possible that the transfer is getting broken up and some VBL activity is occurring. The bottom line is that you don't want a SCSI disconnect to occur during your transfer.

Q Is it possible to create and resolve aliases asynchronously?

A No, you can't resolve aliases asynchronously because the Alias Manager uses all synchronous File Manager and Device Manager requests.

Q Is there a QuickTime codec for converting QuickDraw GX pictures to QuickDraw PICT format? If so, can you provide this?

A At a session during Apple's 1995 Worldwide Developers Conference, a new technique for exporting QuickDraw GX pictures as QuickDraw PICT files was demonstrated. The method makes use of QuickTime and a new codec that's included in the QuickDraw GX extension version 1.1 and later. With this codec, you can embed a flattened QuickDraw GX picture into a PICT file (or a QuickTime movie). We recommend that you use this method if you want to allow your QuickDraw GX application to exchange pictures with existing QuickDraw applications. You can find sample code demonstrating the use of this codec in the Macintosh Technical Q&A "Embedding a GX Picture into a PICT" (GX 07).

One important feature of this codec is that it does not convert QuickDraw GX pictures to QuickDraw PICTs in the traditional sense of the word "convert." What it allows is the embedding of QuickDraw GX objects inside a PICT file. The advantage of this is that it allows QuickDraw GX pictures to be viewed (but not edited) in any application that can open a PICT file. Although "embedding" is very useful, it's quite different from "conversion."

Strictly speaking, it's not possible to convert QuickDraw GX pictures to QuickDraw PICTs without loss of information, because QuickDraw GX has much greater functionality than traditional QuickDraw. You can, of course, draw the QuickDraw GX picture offscreen and capture the result in a QuickDraw PICT, but you'll lose much of the information. There's no way to represent complex transfer modes, perspective, advanced typography, and so on under the QuickDraw imaging model. By using the new codec, you don't lose any of the QuickDraw GX features.

Note that this technique is quite different from that used in the older PicturesAndPICTLibrary.c, which embeds a QuickDraw GX shape into a PICT by using picture comments. We recommend that you use the codec instead because picture comments have several weaknesses, including these:

  • They're limited to 32K.
  • Many applications strip out any picture comments they don't recognize.
  • DrawPicture ignores all picture comments.
Using the codec to embed the QuickDraw GX picture avoids these problems.

Q How can I find out which printer is selected in the Chooser?

A Under the old printing architecture, you can locate the driver for the currently selected printer by accessing the 'STR ' -8192 or 'alis' -8192 resource in the System file. The 'STR ' -8192 resource contains the name of the current driver and the 'alis' resource contains an alias record that will take you right to the driver. Note that with older system software the 'alis' resource doesn't appear in the System file. If the 'alis' resource is present, resolve it; if not, look in the Extensions folder and in the System Folder for a file with the same name as 'STR ' -8192.

With QuickDraw GX installed, the 'STR ' -8192 resource still exists for backward compatibility with applications that don't use QuickDraw GX printing. In this case the 'STR ' -8192 resource gives the name of the default desktop printer file. For applications that are QuickDraw GX savvy, the concept of a default printer isn't important because the user can pick any printer from the QuickDraw GX Print dialog.

Once you've located the 'STR ' -8192 resource and you have the name of the current printer, you can then determine the printer's zone and type using the 'PAPA' -8192 resource in the driver (if the traditional printing architecture is in use) or by accessing the printer's 'comm' resource (if the QuickDraw GX printing architecture is in use). Sample code demonstrating this can be found in the Macintosh Technical Q&A "Locating the Selected Printer" (GXPD 36).

Q When I call FDecompressImage during printing, it appears that the custom StdPix bottleneck of the LaserWriter 8.3 driver isn't called. Why not?

A FDecompressImage doesn't call through the StdPix bottleneck. The workaround is to directly call the StdPix bottleneck in the current graphics port (or the StdPix obtained from calling SetStdCProcs if there are no custom bottlenecks in the current graphics port). For more information, see "Printing Images Faster With Data Compression" in develop Issue 24.

Q When I attempt to open the built-in Ethernet driver with the OpenDriver call on a PCI-based Macintosh, the call fails. What's the correct way to access the built-in driver on these new Macintosh computers?

A The new PCI-based Power Macintosh computers use Open Transport for network services. This architecture is a precursor to the changes expected for Copland. Since Open Transport is PowerPC-native, there's no longer a dependence on the 680x0-based Device Manager and Slot Manager. To maintain compatibility for the built-in Ethernet driver, an ENET shim was implemented so that applications that called the Ethernet driver directly could continue to work. (Note that the ENET shim is missing from the original Power Macintosh 9500 release, but became available with later software updates.)

The ENET shim opens when OpenSlot is called to open the Ethernet driver in NuBus slot 0. The shim intercepts this request and loads a .ENET driver entry into the driver table. Subsequently, applications that call OpenDriver will get the driver reference number for the shim driver, which then handles the various Control calls it receives. The shim works only for the built-in Ethernet device, not for an installed PCI Ethernet card.

For some code demonstrating how to do this, see the Macintosh Technical Q&A "Ethernet Error on a PowerMac" (NW 14).

Q How can I check whether the Open Transport IP protocol stack is loaded?

A Open Transport provides the option to delay the complete loading of the protocol stack. This reduces the use of system memory for the IP protocol stack until a TCP/IP application is launched. To check whether the stack is loaded, call OTInetGetInterfaceInfo. If it returns an IP address, the stack is loaded. If the returned address is 0 or the call fails, the stack is not yet loaded. Note that the call to OTInetGetInterfaceInfo doesn't force the load of the IP stack.

Q When we call DirFindRecordGet, we get the message kOCEInvalidCommand (-1501). Is there another way to get all records from a given catalog?

A The catalog about which you're attempting to get record information doesn't support the DirFindRecordGet function (few out there actually do). To check whether a particular catalog supports this function, you need to first call DirGetDirectoryInfo and check the features flags that are returned. Check the kSupportsFindRecordBit (see Inside Macintosh: AOCE Application Interfaces, page 8-31) to see if this call is supported. If it's not supported, you'll have to use DirEnumerateGet instead to get all the records from a catalog.

You might want to look at the DTS Catalog Peek sample code on the Mac OS Software Developer's Kit, which uses the DirEnumerateGet call.

Q Sometimes, after I copy an HFS volume one-to-one to a CD-ROM, aliases that look perfectly fine on the source volume are disconnected on the CD-ROM -- the Alias Manager claims that it can't find the volume. What should I do to detect and fix a possible disconnected alias before writing it to CD-ROM?

A Sometimes, when aliases move from hard drives to CD-ROMs, volume information changes, rendering the alias unresolvable. The Alias Manager requires the following pieces of information in order to identify a volume:

  • the volume's name
  • the volume's creation date (which should be a unique number)
  • the volume's kind (ejectable, nonejectable, floppy disk, or foreign file system)
The Alias Manager expects all three pieces of information to match. If they don't all match, the Alias Manager attempts to identify the volume by matching two of the three items, trying for a volume match in this order:
  • by name and creation date
  • by creation date and volume kind (if the volume name changed)
  • by name and volume kind (if the creation date is not stable, as with some network file systems)
When pressing a CD-ROM, you're moving aliases from a hard drive (nonejectable volume kind) to an ejectable volume kind. If the volume name or creation date of the hard drive changes after alias creation, the aliases may not resolve properly. You can avoid this problem by ensuring that the volume name of the hard disk doesn't change while you're building a CD-ROM's content. Also, do not back up, reformat, or restore a hard disk while you're building a CD-ROM's content, so that the creation date doesn't change.

Sometimes, valid-looking aliases fail to resolve. Because the Finder creates alias files, the Finder is responsible for resolving them. The Finder doesn't always check and update aliases as carefully as you might. Additionally, the Finder always uses a relative search path when resolving aliases.

You might want to test to see whether installing QuickTime makes a difference in the cases where perfectly valid looking aliases fail to resolve. QuickTime includes patches that make the Alias Manager work better.

Q What does holding the Shift key down at startup turn off under System 7?

A This information isn't documented; the following list isn't guaranteed complete or accurate and is certain to change in the future. Under System 7.0 through System 7.5 the following files are explicitly skipped:

  • A/ROSE
  • Virtual memory
  • Files of type 'scri' (Roman still works), 'cdev', 'RDEV', 'INIT', 'cbnd', 'fbnd', 'tbnd', 'adev', 'ddev', 'appe', 'fext', 'AINI', and 'thng'
  • Finder Startup and Shutdown items (since the Finder Scripting Extension controls these tasks)
MacsBug will not load under System 7.0, but it will load under System 7.5 if both the Option and Shift keys are held down. In addition, System 7.0 sets the disk cache to 64K, while System 7.5 sets it to 96K.

Q What does turning everything off in the Extension Manager actually turn off?

A The only files the Extension Manager turns off are those that it shows. Which files will be turned off isn't documented; the following list isn't guaranteed complete or accurate and is certain to change in the future.

There are four creator types that the Extension Manager doesn't show: 'mntr', 'DMOV', 'extE', and '8INI'. Items of type 'extE' and '8INI' aren't shown because the Extension Manager extension has the creator of 'extE' and the Extension Manager control panel has the creator of '8INI'. This prevents you from using the Extension Manager to disable itself.

Also, the Extension Manager won't show any items of type 'INIT', 'RDEV', or 'cdev' if they have the "no INITs" Finder flag set.

The Extension Manager shows only items of type 'INIT', 'RDEV', 'cdev', 'PRES', 'PRER', 'adev', 'fext', 'scri', 'cbnd', 'fbdn', 'tbnd', 'ddev', 'appe', 'gc24', 'adrp', 'dbgr', 'dfil', 'APPL', 'FFIL', 'pext', and 'vbnd'.

Q Do I always need to call PrJobDialog to print a document? Why?

A Yes, you do. The reason for this is that many drivers (notably LaserWriter 8) don't initialize the job-specific settings until PrJobInit is called. Without this call, they fall back on the default, which is usually stored in the driver in the PREC 0 resource.

The normal definition of the PREC (which maps to a TPrint structure) doesn't have as much space as LaserWriter 8 needs. Because of this, LaserWriter 8 stores some settings in this PREC 0 resource and others in the LaserWriter 8 Prefs file. This separation of LaserWriter settings can wreak havoc on a job run without the PrJobDialog call.

If you absolutely must avoid displaying the job dialog box, there are two ways to work around it. Note that these are not supported methods, and by using either of them you'll make your application hostile to QuickDraw GX and to Copland.

  • Have users invoke the Print dialog as part of their preferences setup, and save the resulting print record. Every time you print, merge that print record in with a call to PrJobMerge. This way each document can have its own page setup, accommodating things like printing on A4 paper instead of US letter.
  • "Display" the job dialog, but never let the user see it. You can accomplish this by calling PrJobInit, moving the resulting dialog offscreen, patching ModalDialog, and calling PrDlgMain. Your patched version of ModalDialog can return 1 for the OK button immediately, and you've got the added benefit of actually calling all the code and having a relatively normal print loop.

Q I'm writing a printer driver, and I've noticed that when I print a window from the Finder with my driver the icons don't show up. What gives?

A What you've uncovered is an "optimization" in the Icon Utilities. When drawing an icon, the Icon Utilities use CopyMask rather than go through the standard bottlenecks. This is true unless you're saving to a PICT or you set a certain low-memory global (which isn't well documented) indicating that CopyBits should be used.

The following two macros tell the Icon Utilities to use CopyBits instead of CopyMask:

#define setPrinting() {*((short *)0x948) = 0;}
#define clearPrinting() {*((short *)0x948) = -1;} 
Call setPrinting in your PrOpenPage function and clearPrinting in your PrClosePage function, and all should be well.

Q Which LaserWriter drivers are ColorSync aware?

A Currently, LaserWriter driver 8.3 is the only ColorSync-aware LaserWriter driver; versions earlier than 8.3 are not.

Q What does the 7.5.2 Printing Update 1.1 update? Why do I need it?

A This extension fixes a printing problem that may occur on Power Macintosh 7200, 7500, 8500, and 9500 computers using System 7.5.2. Without this fix, your computer may freeze if you attempt to print on a network-based printer that's busy.

The update contains a new version of the LaserWriter driver (8.3.2) and also a fix to serial DMA. The changes fix the ATP and PAP networking protocol layers.

An updated version of the PAP.WrkStation.o library will be distributed on a future version of the Mac OS Software Developer's Kit; developers who have licensed the library will be notified when the new library is available.

Q Do QuickDraw 3D mesh contours run in the same or the opposite direction as the face? For example, if the face runs clockwise, will the contour run counterclockwise?

A The exterior face needs to be defined in a counterclockwise direction, but the contours defining holes can run in either direction. The mesh code is able to identify holes in a face.

Q I'm using QuickDraw 3D 1.0 on a Power Macintosh 7100. If I try to launch my application when QuickDraw 3D is disabled with the Extension Manager, I get a message that the application couldn't be opened because QuickDraw 3D could not be found. Since the application has to run even if the user doesn't have QuickDraw 3D, what should I do ?

A You're "hard linking" to the QuickDraw 3D shared library. You need to "weak link" to the library instead. With Metrowerks CodeWarrior this is trivial: simply select the project window, click the small triangle to the right of the library in the window, and choose the Import Weak option from the pop-up menu. In your code, use the Gestalt selector for QuickDraw 3D to determine whether the library exists. If it does, you should additionally check at least one symbol in the library against kUnresolvedCFragSymbolAddress to be sure the library was linked successfully, as described in Inside Macintosh: PowerPC System Software on page 1-25. It's possible for Gestalt to indicate that the library is available even though the weak link failed -- for example, if there isn't enough memory available.

Q I've been trying to use QuickTime to step through a movie of PICTs activated by keyboard input (that is, press a key and the next frame is displayed). My problem is that I can't consistently step one frame at a time. What's the easiest way to move to the next frame?

A The easiest way is to use a movie controller to accomplish this. You can send mcActionStep to the controller to bump the movie to a new frame. A little more work, but perhaps more suitable for you if you don't want to use a controller, is to use GetMovieNextInterestingTime to find the next frame.

Q Is there any way to ask QuickTime, at the operating system level, whether any movies are currently playing?

A No, there's no supported way to do this.

Q We're writing a screen saver that plays QuickTime movies. Our WaitNextEvent loop is very basic. We've noticed that other background applications don't get any time, even if we use WaitNextEvent and make sure that MoviesTask doesn't spend too much time playing the movie. However, if we add code to track update events with BeginUpdate and EndUpdate the problem goes away. Why?

A QuickTime and other parts of the operating system are sending update events to your application. If these events aren't handled, they're resent, resulting in no time yield to other applications. By calling BeginUpdate and EndUpdate or otherwise taking care of the update event inside your event loop, you allow yielding to other applications. See Macintosh Technical Note "Pending Update Perils" (TB 37) for more information.

Q Is the data rate stored somewhere in a QuickTime movie? If not, how can I compute it?

A The data rate isn't stored in the movie, because a QuickTime movie isn't required to have a constant data rate: it can change over the duration of the movie. Typically, in the case of video, one sample equals one frame; in the case of sound and other media, this one-to-one relationship doesn't necessarily hold. Additionally, none of the video samples in a continuous stream are exactly the same size, even if in practical terms this is often assumed.

There are several possible methods of measuring the rate of samples, but the quickest and easiest is to do what Movie Player does: for each track, get the media size and divide by the media duration. This provides a rough estimate of the data rate that should be suitable for most purposes and works for all types of movies, video and otherwise.

Q It's critical in my CD project to be able to load small QuickTime loop movies entirely into RAM. This is still not supported in QuickTime for Windows 2.0.3. Will this functionality be available soon, or should I focus on developing a workaround?

A Support for loading a movie into and playing it from RAM will not be in QuickTime for Windows 2.1. It is, however, still on Apple's to-do list. For now, you can improve performance by copying your small movie to a temporary file on the hard drive. From there you can force it into the disk cache or DOS buffers by opening and reading all of it yourself.

Q How can I place blue-screen video over a QuickTime VR panorama?

A For starters, you need to know the exact view over which you want to place the video. Note that if you're only warping in one dimension, it may be a bit tricky.

To get a very close match, take the following steps:

  • Push each individual frame of the video sequence through the Stitcher (assuming that the motion fits within a single photograph) with wrap turned off, and the same vfov set as for the panorama. The resulting images will be warped into the same space as your complete panorama.
  • Either turn your single-frame image into a partial panoramic movie or replace the appropriate part in your background panorama with the single frame.
  • Run the image through the p2mv and msnm tools, and use QuickTime VR to dewarp it with warpMode 1 with the precise hpan, vpan, and zoom data set. You may want to use p2mv with the "raw" compressor to maximize your image quality.
  • If you do this for every image (it can be automated with scripting), you should get a completely matched motion sequence that you can turn into a QuickTime movie with standard tools. This is where you should do your compression (not at step 3).
This should mostly take machine time, not your time. Steps 1 and 3 can be scripted in MPW. Step 2 can be scripted in AppleScript using PhotoFlash or in DeBabelizer, and step 4 in HyperCard or Director. Step 5 uses ConvertToMovie. Once you develop these scripting tools the first time, each sequence should be pretty quick to fire up.

Q My cat exhibits a behavior I hope you can explain. Every now and again, he'll sniff something with particular attention and intensity -- the bend of my wrist, say, or a spot on the rug. So far so good. But then when he lifts his head, he holds his mouth open, his lower jaw hanging stupidly. It looks ridiculous! And he seems totally unaware of it, invariably sitting there for several seconds, mouth gaping, looking around blithely as if there's nothing out of the ordinary, before finally licking his chops and closing his mouth. What's going on? Is there any way I can curb this behavior? It's embarrassing.

A First off, don't worry. Your cat is perfectly normal. All cats do this, and there's nothing wrong with it (except of course that it looks silly). Your cat is simply making use of a little-known sensory organ called the vomeronasal organ, or Jacobson's organ. It's a second scent organ, located far forward on the roof of the mouth, and is supplemental to -- but distinct from -- the nose. It's even wired into slightly different areas of the brain, areas dealing with feeding and complex sexual behaviors. Many other animal species have a Jacobson's organ, from rattlesnakes to bighorn sheep, but humans don't.

The behavior you've noted is called the flehmen reaction (flehmen is a German word with no satisfactory English translation). By holding his mouth open and not breathing, your cat is concentrating the molecules to be sensed over his Jacobson's organ, allowing it to do its job. The behavior is exhibited by all cats, domestic and wild, large and small.


These answers are supplied by the technical gurus in Apple's Developer Support Center. For more answers, see the Macintosh Technical Q&As on this issue's CD or on the World Wide Web at http://dev.info.apple.com/techqa/Main.html. (Older Q&As can be found in the Macintosh Q&A Technical Notes on the CD.)*

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

VueScan 9.5.75 - 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
Opera 44.0.2510.1449 - High-performance...
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
Opera 44.0.2510.1449 - High-performance...
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
Skim 1.4.29 - PDF reader and note-taker...
Skim is a PDF reader and note-taker for OS X. It is designed to help you read and annotate scientific papers in PDF, but is also great for viewing any PDF file. Skim includes many features and has a... Read more
FontExplorer X Pro 6.0.2 - Font manageme...
FontExplorer X Pro is optimized for professional use; it's the solution that gives you the power you need to manage all your fonts. Now you can more easily manage, activate and organize your... Read more
1Password 6.7.1 - Powerful password mana...
1Password is a password manager that uniquely brings you both security and convenience. It is the only program that provides anti-phishing protection and goes beyond password management by adding Web... Read more
Vivaldi 1.9.818.44 - 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.9.818.44 - 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
Skim 1.4.29 - PDF reader and note-taker...
Skim is a PDF reader and note-taker for OS X. It is designed to help you read and annotate scientific papers in PDF, but is also great for viewing any PDF file. Skim includes many features and has a... Read more
1Password 6.7.1 - Powerful password mana...
1Password is a password manager that uniquely brings you both security and convenience. It is the only program that provides anti-phishing protection and goes beyond password management by adding Web... Read more

Latest Forum Discussions

See All

Fire Emblem Heroes event announces new m...
As reported yesterday, Nintendo was gearing up a live press event for their popular mobile game,Fire Emblem Heroes. While the stream revealed a lot of new things, the event was entirely in Japanese. Luckily we have a rundown of what was announced... | Read more »
Best games we played this week
Another week, another slate of new mobile games. Although there weren't as many big name releases as last week, there were plenty of unique video game titles that came out that's sure to keep you interested over the weekend. Everything from classic... | Read more »
Olli by Tinrocket (Photography)
Olli by Tinrocket 1.0 Device: iOS iPhone Category: Photography Price: $2.99, Version: 1.0 (iTunes) Description: Get drawn in with Olli by TinrocketOlli instantly turns your everyday moments into hand-drawn art and animations. • Watch... | Read more »
Penarium (Games)
Penarium 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: | Read more »
Fire Emblem Heroes is way more profitabl...
Profits for Nintendo's mobile game Fire Emblem Heroes are apparently impressive enough to beat out other Nintendo titles likeSuper Mario Run, despite having 10 times fewer downloads. [Read more] | Read more »
Classic series Robot Unicorn Attack 3 no...
The classic Adult Swim browser game, Robot Unicorn Attack, branched off into a series of popular mobile games. Now, the latest entry into the series, Robot Unicorn Attack 3, is available for iOS and Android mobile devices. [Read more] | Read more »
Sudoku Sweeper (Games)
Sudoku Sweeper 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: A minimalist mashup of Minesweeper and Sudoku. Logic puzzle perfection. Every row, column and zone contains a bomb and one of... | Read more »
Under Leaves (Games)
Under Leaves 1.0.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0.0 (iTunes) Description: Journey into the forest, the jungle or the depths of the deep blue sea. Find chestnuts for the pigs, a caterpillar for the... | Read more »
Ninja Pizza Girl (Games)
Ninja Pizza Girl 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: In the not-so-distant future, rampart traffic congestion has resulted in only one way to deliver pizzas across town in thirty... | Read more »
SCRAP (Games)
SCRAP 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: That day, for no apparent reason, SCRAP decided to wake up and run. He had to, because his activation was a mistake the "Factory" could... | Read more »

Price Scanner via MacPrices.net

13-inch 2.7GHz Retina MacBook Pro, Apple refu...
Apple has Certified Refurbished 13″ 2.7GHz/128GB Retina MacBook Pros available for $200 off MSRP. An Apple one-year warranty is included with each model, and shipping is free: - 13″ 2.7GHz/128GB... Read more
13-inch Gray 2.9GHz/512GB Touch Bar MacBook P...
Amazon has the 13″ Space Gray 2.9GHz/512GB Touch Bar MacBook Pro (model MNQF2LL/A) in stock today and on sale for $150 off MSRP. Shipping is free: - 13″ 2.9GHz/512GB Touch Bar MacBook Pro Space Gray... Read more
15-inch 2.7GHz Space Gray Touch Bar MacBook P...
B&H Photo has the 15″ 2.7GHz Space Gray Touch Bar MacBook Pro in stock today and on sale for $2599…$200 off MSRP. Shipping is free, and B&H charges NY & NJ sales tax only: - 15″ 2.7GHz... Read more
13-inch 2.9GHz/256GB Space Gray Touch Bar Mac...
B&H Photo has the 13″ 2.9GHz/256GB Space Gray Touch Bar MacBook Pro in stock today and on sale for $150 off MSRP including free shipping plus NY & NJ sales tax only: - 13″ 2.9GHz/256GB Touch... Read more
21-inch iMacs on sale for up to $151 off MSRP
B&H Photo has 21″ iMacs on sale for up to $151 off MSRP, each including free shipping plus NY sales tax only: - 21″ 3.1GHz iMac 4K: $1348 $151 off MSRP - 21″ 2.8GHz iMac: $1199.99 $100 off MSRP... Read more
Weekend deal: Up to $420 off new MacBook Pros...
Apple has Certified Refurbished 2016 15″ and 13″ MacBook Pros available for $230 to $420 off original MSRP. An Apple one-year warranty is included with each model, and shipping is free: - 15″ 2.6GHz... Read more
Price drop: 15-inch 2.2GHz Retina MacBook Pro...
Amazon has dropped their price on 15″ 2.2GHz Retina MacBook Pros (MJLQ2LL/A) to $1709.99 including free shipping. Their price is $290 off MSRP for this model. Note that stock may sell out quickly at... Read more
2.8GHz Mac mini on sale for $899, save $100
B&H Photo has the 2.8GHz Mac mini (model number MGEQ2LL/A) on sale for $899 including free shipping plus NY & NJ sales tax only. Their price is $100 off MSRP. Read more
Check Apple prices on any device with the iTr...
MacPrices is proud to offer readers a free iOS app (iPhones, iPads, & iPod touch) and Android app (Google Play and Amazon App Store) called iTracx, which allows you to glance at today’s lowest... Read more
New System Clock for macOS by B-Eng Now Avail...
Fehraltorf, Switzerland based B-Eng has announced the release and immediate availability of System Clock, the company’s new system monitor and information app developed exclusively for macOS. System... Read more

Jobs Board

*Apple* Mobile Master - Best Buy (United Sta...
**493714BR** **Job Title:** Apple Mobile Master **Location Number:** 001024-Weatherford-Store **Job Description:** **What does a Best Buy Apple Mobile Master Read more
*Apple* OS X Server Administrator (Active Se...
** Apple OS X Server Administrator \(Active Secret Clearance\)** **Description** Come be a part of a top notch team, apply today\!\! Tuva TUVA provides turnkey Read more
*Apple* Mac Computer Technician - GeekHampto...
…complex computer issues over the phone and in person? GeekHampton, Long Island's Apple Premium Service Provider, is looking for you! Come work with our crew Read more
Best Buy *Apple* Computing Master - Best Bu...
**501846BR** **Job Title:** Best Buy Apple Computing Master **Location Number:** 001126-South Bay Center-Store **Job Description:** **What does a Best Buy Apple Read more
Consultant or Sr. Consultant, *Apple* Allia...
…improve our business and your clients will be heard.Project Manager, Apple AllianceLocation:San Francisco preferred, open to other locationsLevel:Consultant or Sr. Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.