Tag: Mac

Replacing my Mac Pro

I wrote about my new Mac Pro a year ago. It’s still rock-solid, and it’s done everything I asked of it. But the writing is on the wall: Apple’s new $1,000 MacBook Air is now comparable in speed to my year-old $10,000 Mac Pro. This year, Apple will likely release updated MacBooks Pro with more cores and memory and blow right past the performance of my Mac Pro. Next year, an updated Mac Pro will do the same again.

I had hoped to get seven years out of it? That was before Apple announced the switch to their own chips, and before they blew Intel chips away with the performance of the M1. My expectation was based on the incremental performance gains we’ve seen from Intel over the last decade, not the paradigm shift ushered in by Apple’s M1. The Intel-based Mac Pro is rapidly losing value, and it’s clear I’ll want to replace it as soon as I can.

My Plan

Here’s my current plan; we’ll see if Apple releases the right products in the right order for this to work out.

Mid 2021: Buy the rumored 14-inch MacBook Pro. I expect it to be faster than my Mac Pro for all practical purposes. Hook it up to my existing two monitors and use as my main machine. Sell or trade in the Mac Pro before it loses too much of its value.

Mid 2022: Evaluate the new Mac Pro, and possibly upgrade to that one.

External Displays

I’m glad there are finally some rumors about cheaper external displays. I think Apple was waiting to release monitors until they redesigned the iMac, so the monitors could match the look of the iMac (ideally using the same enclosure with simpler innards). And they were waiting with the iMac redesign until they could use their own chips, both for lower thermal requirements and to be able to include Face ID. Now their ducks are finally all lined up.

It makes too much sense for Apple to plug this hole in their lineup. And the work Apple has put into making resolution switching seamless also makes more sense if monitors are on the horizon. Here’s hoping — I’d love to replace the LG 5K with an Apple monitor with Face ID.

So while my Mac Pro didn’t turn out to be the long-term investment I had hoped for, I’m stoked about Apple’s M1, and very excited about what they’ll announce this year and next.

SmartGo: Mac $0, Windows $19

tl;dr SmartGo for Mac is now free; SmartGo for Windows reduced to $19 (was $39). All-new version of SmartGo for iOS in the works, will come to Mac later. No ETA.

Future of SmartGo Apps

The all-new version of SmartGo for iOS is taking shape. Still no ETA, but getting closer, and I’m excited for how it’s turning out. If you have an iPhone or iPad running iOS 14, and are interested in early testing, let me know.

The new iOS version will replace both SmartGo Player and SmartGo Kifu. It will be free to download, with a subscription for the GoGoD game collection and some functionality; additional problem collections will be available through in-app purchase.

SmartGo for Mac

I plan to bring that same iOS app to the Mac. Catalyst has become much more capable this year, making it easy to bring an iPad app to the Mac. Thus it’s now clear that the current Mac version (built on the old code base) is a dead end, and that it doesn’t make sense to update it any more. I’ve released what is likely the last iteration of that app. While it’s far from perfect, it can still be a useful tool for many until the new Mac app comes along, so I’ve made it a free download. Thanks to GoGoD and goproblems.com for letting me take that step while keeping their game and problem collection in the app; please support them in other ways (e.g. by buying books by John Fairbairn).

SmartGo for Windows

SmartGo for Windows has not been getting frequent updates over the last years, and that will likely not change. My focus is on the iOS and Mac versions of SmartGo. Given that reality, I’ve reduced the price from $39 to $19. The app is getting long in the tooth, but it’s still an indispensable tool for go players on Windows, with 108,000 pro games, 2,000 problems, joseki matching, and more. It may get some updates, but no promises; buy it for what it is and can do today.

Enjoy! And please stay safe until we can play go in person again.

SmartOthello on Mac

SmartOthello 3.0 is out, and it now also runs on the Mac. More on that below; first, we need to delve into profile pictures.

Profile Pictures are Back!

You may remember the profile picture saga from earlier versions of SmartOthello: iOS 10 removed profile pictures from Game Center just after SmartOthello was released. Those images were integral to SmartOthello’s design, so I had to add support for users adding their own images for just SmartOthello. Needless to say, not too many users did that.

Fast forward to iOS 13: profile pictures are back. Finally. While you can’t just choose any image, like you could before iOS 10, you can use Memoji and Animoji to create a suitable image (in the Settings app, scroll down to Game Center, then tap on the avatar to edit it). And as almost all users are now on iOS 13, this was a good time to make the app iOS 13 only and use the official profile pictures.

SmartOthello on Mac

SmartOthello was my test vehicle to learn Swift as well as gain experience with Game Center. (The former went well; the latter made very clear that I would not be using Game Center in SmartGo.) Now I got to use SmartOthello to test out Catalyst and the Mac App Store, in preparation for the all-new version of SmartGo. Catalyst has made significant progress since I tried it last year, and getting SmartOthello to run on the Mac was a snap. Adding it to the Mac App Store as a universal app also worked out well: buy it once, download it on iPhone, iPad, and Mac. Try it out! Practice against the five levels of computer opponents first, then invite your friends who are stuck at home to play with you.

 

A Month with Mac Pro

I’ve now enjoyed my Mac Pro for over a month. Why did I decide on that computer, and how is it working out?

iMac

My late-2014 5K iMac was five years old: it still worked, but was increasingly limiting. The internal 500 GB SSD was too small, and even with the external 1 TB SSD I kept bumping into limits, wasting time cleaning out cruft. Ports were another issue: no USB-C ports, not enough ports in general, and I have yet to find a 100% reliable USB hub. The retina screen is still perfect, and my wife will likely get many more years out of this computer, but as a daily developer workhorse, it was getting long in the tooth.

I was sorely tempted to upgrade to an iMac Pro two years ago. However, while the current iMac Pro might be a great choice for many developers, for me it had a few drawbacks:

  • GPU not upgradable: I’d have to decide up front how much to invest in this rapidly evolving technology.
  • No way to drive the non-XDR 6K monitor that Apple is surely going to release any year now.
  • Ports not future proof: Thunderbolt 3 / USB-C will remain relevant for many years to come, but new standards will surely emerge in the next decade.

My apps

I’m a developer, not a video professional, so the case for a Mac Pro is not as clear-cut. My main work right now is on the all-new version of SmartGo, about 70k lines of Swift and growing. The shipping version of SmartGo for Windows is 166k lines of C++; SmartGo Kifu is a mix of C++, Objective-C, and Swift. So while there are other tasks that benefit from a multi-core CPU (e.g. running Go or Othello simulations overnight, or converting 140 Go books to ePub), speeding up Xcode builds is the main benefit.

Modern Go programs are based on neural nets, which benefit a lot from a powerful GPU. However, my current development focus is on user interface, not on stronger play, so with GPUs still improving rapidly, I want to delay investment in a powerful GPU until I really need it.

Specs

Basically, I maxed out SSD and CPU (within halfway reasonable budget constraints), and plan to upgrade memory and GPU as needed.

  • 3.2 GHz 16-core Xeon W, turbo boost to 4.4 GHz: Slightly slower than the 12-core, but turbo-boost speed is the same.
  • 48 GB RAM DDR4 ECC at 2933 MHz: I figured this would be plenty for a while, and so far memory has not been an issue.
  • 4 TB SSD: I don’t want to keep bumping against that limit.
  • Base GPU: More than powerful enough for what I need now.

In addition, the expandability of the Mac Pro may lead me to:

  • Add more ports: If I need more USB ports, or some other port comes along that is helpful, I can just add a card for that.
  • Add internal SSD: I currently have a 2 TB SSD hanging off the internal USB port (for nightly backups); when I need more, I can add a PCI card with extra SSD storage.
  • If/when Apple switches to ARM, it’s conceivable that Apple would create a card with an ARM processor for the Mac Pro.
  • The unknown: Having PCI Express card slots available keeps options open for the future.

I expect the Mac Pro to be reliable for many years, and if something goes wrong, it will be easier to repair than a computer crammed behind a large screen.

Monitor

I’m used to dual monitors: a 4K monitor next to the 5K iMac (a Dell P2415Q 24-inch 4K monitor, which is surprisingly good). I’d love a 6K monitor, but the 6K Pro XDR is not for me. The iMac is overdue for an SSD-only update and visual refresh, and at that point it would make a lot of sense to also release standalone screens in the same form factor. However, Apple’s timing is famously unpredictable, so I decided to go with the LG 5K for now to avoid being dependent on Apple’s plans. If they do release a 6K monitor for mere mortals, I’d be happy to replace the 4K by a 6K screen.

Performance

For developers, staying in the zone is crucial, and being able to reduce the build-run-debug cycle has really helped. Compared to my old iMac, build and run speed has improved by a factor of 2 to 3, and build times have become much more predictable. For my 70k lines of Swift, launching on an iOS device (connected by USB) after a small change takes 6-7 seconds, and a full build takes less than 30 seconds, more than good enough. I feel like I’ve gotten a lot more done this last month than in prior months.

Price

Yes, it was a very expensive machine, but I do expect to get at least 7 to 8 years out of it. (I got 7 good years out of my 2006 Mac Pro.) The 6% cash back when buying with the Apple Card before December 31 helped; also, if you’re in the market for a Mac Pro, make sure you talk to the business rep at your local Apple Store to see if you can get a discount.

Summary

A month in, the Mac Pro has been everything it was supposed to be: fast, reliable, silent, unflappable. It looks gorgeous, but I hardly even notice it – it just sits quietly below my desk helping me focus on my work.

Using Strong Go Programs on Macintosh

SmartGo for Mac is not playing strongly, as computer play is using my own pre-AlphaGo engine. However, like SmartGo for Windows, you can use GTP (Go Text Protocol) to connect to strong engines to play against.

The most recent version of SmartGo for Macintosh (0.8.18) includes some improvements in how it handles GTP engines. It’s not perfect, there’s much more to be done, but hopefully it will tide you over while I keep my focus on the new SmartGo for iOS.

The first step is downloading and installing the computer go engines you want to connect to. Here are three I’ve tested with SmartGo for Mac, from easy to hard to install. All assume that you’re somewhat comfortable using the Terminal app; check out this iMore guide if you’re new to the command line.

Pachi

The easiest way to install Pachi on the Mac is using Homebrew (which you probably have to install first). Follow these instructions:

https://brewinstall.org/Install-pachi-on-Mac-with-Brew/

Leela Zero

Find Leela Zero on Github, scroll down to I just want to play with Leela Zero right now, and follow the Homebrew instructions. You’ll also have to download a file with network weights; the link is in that same section.

KataGo

Installing KataGo is more complicated, as you have to compile it yourself. Follow the instructions for Linux at https://github.com/lightvector/KataGo.

smartgo-mac-gtp-preferences

Setting Parameters

Once you’ve installed an engine, you need to add it to SmartGo. Choose SmartGo > Preferences in the menu and click on GTP. Then click on the + icon and navigate to the executable of the engine you want to add. SmartGo uses the engine name to guess reasonable parameters, then tries to run the engine to get its name and version. If you see a green checkmark with the name and version, you’re all set. Otherwise, edit the parameters sent to the GTP engine (the third column in the table). The following basic settings work for my setup:

Leela Zero: -g –playouts 1000 –noponder -w /usr/local/Cellar/leela-zero/0.17/best-network/40b_257a_64k_q

KataGo: gtp -model /Users/anders/work/katago/cpp/models/model.txt.gz -config /Users/anders/work/katago/cpp/configs/gtp_example.cfg

Leela Zero and KataGo take a while to initialize, so even just getting name and version initially can take a minute, and SmartGo may time out. If it does, just try starting a game against the engine anyway (File > New Game, specify the engine in the dropdown for Black or White), and see if it works.

I hope these instructions get you pointed in the right direction. I’m sorry none of this is as easy as it should be.