When I wrote about SourceTree, I mentioned that I wanted a Git client that could search the content of the changed source lines. Gitbox can do this. It integrates with various diff-viewing tools, but unfortunately it relies on them. You cannot even see a quick preview of the changes (or, in this case, search matches) within the application. It also uses a faux-iOS scrollbar thumb that was difficult for me to drag.
Archive for May 2011
At the moment, the Amazon Mac Downloads Store isn’t nearly as impressive as the Mac App Store, but Amazon has a great deal of retailing experience and has shown the patience necessary to build up a market. In a year or so, the Mac Downloads Store could be a credible way to find and purchase a wide variety of Mac software.
As a user, I like that it’s fully accessible from a Web browser. I can open tabs, copy and paste, find within the page, etc. Similarly, it’s much more pleasant to shop for Kindle books and Amazon Instant Video than to use Apple’s restrictive iBooks and iTunes Store interfaces.
It’s a shame that there’s no way for developers who were depending on these APIs to pay to continue using them.
Online crime falls mostly into four categories: self-spreading malware (like viruses); malware that attacks vulnerable Web browsers when you visit a site (drive-by attacks); malware that tricks you into installing it (like Mac Defender); and online scams and Web attacks that don’t hack your computer (eBay scams, phishing, search-result poisoning, and so on). Macs are still unlikely to see the first or fully-automated versions of the second. Mac users have always faced the fourth. But as our numbers grow, it’s only natural we will see more of the third.
I think most longtime Mac users have experienced that installing anti-virus software causes far more problems it solves, so it’s ironic that in this case it still seems to be true. Not worrying about malware would have protected you from Mac Defender.
The recent Carbonite IPO filing, and related S1 documentation, has opened the kimono on the economics of online backup. Until now opportunities to get a real handle on the business model of the online storage/file sharing business have been limited. Vendors, both new and old, are happy to provide customer adoption metrics and the number of objects/files stored as an indicator of uptake. But extrapolating more precise details about the business model has been nothing more than “fun with numbers”. Fortunately for us, Carbonite’s S1 filing (shown here) is chock full of data points and financial metrics that enable a much deeper glimpse into the economics (or lack thereof) of this business. The data seems to reveal a stark contrast between the traditional online backup model and that of the newer generation of “freemium” file protection/sharing services like Dropbox.
So, in the end, while I appreciate the thinking behind Copland 2010 I don’t believe it’s quite the issue Siracusa believes it is. Objective-C continues to evolve, and in directions I believe will be increasingly important in the future. I don’t believe we’re anywhere near the level of crisis that Apple hit with Classic Mac OS and I don’t believe that a total second-system re-write without a clear goal is the best prescription for the platform.
Siracusa’s original piece was written after a long period of near stagnation in Objective-C. Apple has since made major improvements to the language such as garbage collection and blocks. Objective-C and the Cocoa frameworks could still use a lot of work, but I don’t think they’re approaching the edge of a cliff. There’s room for continued evolution. If Apple keeps working on it, I think they’ll be fine.
A distinction that’s not commonly discussed is that, although Objective-C provides automatic memory management via garbage collection (on Mac OS X, but not iOS), it is not a true managed or safe language like Java, C#, or Python. It’s still possible to have bad pointers and to reference memory that has been deallocated, and this leads to unexpected behavior or a crash, rather than a
NullPointerException or an
AttributeError. Likewise, an infinite recursion in Objective-C will crash rather than produce a
RuntimeError. Ideally, it would not be possible to call a function with the wrong number or type of arguments.
At this point, Objective-C’s hybrid nature is probably a plus. However, I would like to see it evolve in the direction of increased safety. Microsoft seems to have a successful transition strategy, where managed and unmanaged code can be mixed in the same application while remaining isolated. A successor language from Apple could potentially remove the unsafe C parts and compile down to a VM but still call into classic Objective-C where needed.
SourceTree is a Git and Mercurial client (via @FogBugz). It seems to include all the expected features, including the ability to send diffs to BBEdit. Overall, I prefer the way Tower’s interface is designed. SourceTree’s seems busier, a bit unpolished, and it wants you to make wide windows. However, SourceTree also seems to be faster at showing diffs, and it can do some things that Tower can’t, such as blame view and per-file change logs (which, alas, do not seem to use --follow to track the history through moves and renames). After switching to Git about four years ago and using it via Terminal and some AppleScripts for a long time, it’s great to be able to choose from multiple good GUI clients (including Xcode 4). I plan to use several of them in concert going forward. The next thing I’d like is for the clients to let you search based on the changed source lines, rather than just the commit messages.
Update: Developer Steve Streeting replied to my e-mail almost immediately with this explanation:
I used to use --follow in an earlier version of SourceTree, until I discovered that, for now at least, this option is fundamentally flawed in Git, and it causes random dropping of log lines in many cases. This has been reported here for example.
I don’t know if git has any plan to fix this, but I disabled it a few point releases ago because it was doing more harm than good (at least the lack of history over rename is predictable). I intend to add a new option to the dialog to selectively allow users to re-enable it when they need it, so that hopefully you can get the information back in those cases without it randomly breaking other logs.
This major upgrade for Nisus Writer Pro adds change tracking, drawing tools, PDFs with clickable links and tables of contents (which Microsoft Word and Pages still can’t do, as far as I know), EPUB export, and lots more.
Update (2011-06-09): Joe “Nisus Way” Kissell reviews Nisus Writer Pro 2.0:
After following Nisus Writer’s ups and downs carefully these many years, I am equally shocked and delighted to say this is the first version of the application since Mac OS X was released — over ten years ago — that I can seriously contemplate using for my own professional writing.
I can’t think of any reason why Twitter would force native apps through OAuth other than to create a hurdle that steers users toward Twitter’s own official native clients. Because Twitter’s official clients aren’t going to force users to jump through OAuth to authenticate — they’re still going to simply ask for your username and password in a simple native dialog box.
Time to be frank: any security that OAuth claims – with respect to native applications – is an illusion. If a native app wants to get a copy of your password, it will get a copy of your password. If it wants to hijack the authentication process, bring up a bogus “browser” for you to enter a password into, register keyloggers, muck with your system web proxy settings and sniff passwords before they hit the wire, or phish you some other way, guess what: it can and it will. OAuth does not solve these problems. It just adds complexity to the login process.
Update (2011-05-19): Macro Arment:
Oh, and one more thing: formerly-xAuth apps that need DM access have only 12 days to build this completely new login interface, test it, and release a new version — and, for iOS and Mac App Store apps, get it approved — before their existing apps start being denied access to DMs and probably display confusing and incorrect error messages, since the developers could never have foreseen this condition. Such aggressive timing is definitely a dick move.
Twitter has since extended the deadline to June 14, but that’s still rather short notice.
All the known examples of this type of identification are from the research world — no commercial or malicious uses have yet come to light — but they prove that anonymization is not an absolute protection. In fact, it creates a false sense of security. Any dataset that has enough information on people to be interesting to researchers also has enough information to be de-anonymized. This is important because I want to see our tools applied to problems that really matter in areas like health and crime.
I’ve long suspected this to be the case, but I didn’t realize that it had already been studied. I wonder whether anything interesting could be deanonymized out of consolidated.db. It doesn’t worry me personally, but it would be nice if Apple provided a way to opt out.
There have been some important updates since version 2 of my comparison. Notesy 2.0.1 now supports nested folders and has improved searching and a cleaner list view. PlainText 1.4.1 now has a basic search feature. Both apps unfortunately only show you the list of matching documents; they provide no help in finding the matches within the files. Overall, Notesy is the clear winner for me.
|Droptext 1.2.1||Elements 1.5.1||Locayta Notes 2.0.1||Nebulous Notes 4.3.1||Notesy 2.0.1||PlainText 1.4.1||Simplenote 3.1.4 (Premium)|
|Choose Folder on Dropbox||Yes||No||No||Yes1||Yes||Yes||Yes2|
|Choose Font||No (Helvetica)||Yes||Yes3||Yes||Yes4||No (Georgia)||No (Helvetica)|
|Search Results List||No||No||Yes||No||No||No||No|
|Jump Within File||No||No||No||No||No||No||Yes6|
|LF Line Breaks||Yes||No||Yes||Yes||Yes||Yes||Yes|
|Sort by Name||Yes||Yes||Yes||Yes||Yes||Yes||Yes|
|Sort by Modified||No||Yes||No||No||Yes||Yes||No7|
|Price||$1||$5||free||$2||$5||ads or $5||$20/year|
1. Rather than syncing everything, Nebulous Notes makes you choose individual files as “auto-saves,” which is a drag.
2. Simplenote seems to be much slower than the other apps at picking up changes from Dropbox. It was often 5 minutes out-of-date, and sometimes hours or days. You can force it to sync, but to do that you have to go to the Simplenote Web site.
3. Locayta Notes is the only app I saw that lets you set font and color options per-file.
4. Notesy lets you set both a variable-width font and a fixed-width font, which is a good compromise between choosing just one and choosing per-file.
5. Locayta Notes does some sort of indexed/prefix search, coupled with auto-correct, which didn’t work well for me. Some words it didn’t find at all. When searching for “cat” it would find lots of useless matches of “at” but totally miss “wildcat”.
6. Simplenote’s results-jumping did not work for me with files containing basic Unicode characters such as é and ’. The tech support person was not able to tell me which subset of characters to avoid, so the only solution seems to be to stick with ASCII.
7. The option is there, but in my experience the modification dates shown in Simplenote, if I’m using Dropbox, have little relation to when I actually edited the files. The tech support person said this is not the normal behavior and is looking into the matter but has not yet found a solution for me. Even going by the displayed dates, the sorting is sometimes out of order.
8. Simplenote’s versions feature is like the one in Lion and works within the app—very cool.
9. Excellent options for searching by word (Boolean AND), phrase, or regular expression. You can also choose whether to search everything or just the filenames.
The complaint alleges that at least two of Dropbox’s competitors, SpiderOak and Wuala, make security promises similiar to those of Dropbox, but actually can’t get at the data because they don’t hold the encryption keys. That means those services have to spend more on storage, because they can’t detect duplicate files stored by different users. That, according to the complaint, lets Dropbox promise total security without paying the costs, while putting its competitors at a disadvantage.
So what it comes down to is that Thomson, McCarron, and other iOS developers are being threatened by Lodsys for using Apple intellectual property under license from Apple, in such a fashion that they cannot even settle without violating the iOS Developer Program License Agreement. They can’t legally agree that Apple’s In App Purchase API violates Lodsys’s patents, and no matter what, there’s no way Apple would give permission for such a settlement due to the chilling effect it would have on iOS development in general.
Update (2011-05-17): Mike Lee:
If using a platform-provided API is not free from the odious weight of software patents, then software development as a cottage industry is no longer practicable. Make no mistake, Lodsys demonstrates that software patents threaten our very way of life.
Lodsys’s position is that Apple’s license does not cover what the targeted app devs do. I have looked at the patent and I guess that the alleged infringement really relates to the commands executed by the apps themselves. I don’t know whether implementing Apple’s API inevitably leads to what the alleged infringement is about. My feeling is it’s probably not inevitable: I guess there are ways to make use of Apple’s in-app purchase API that don’t result in the fact pattern that Lodsys claims to be an infringement.
I noticed something very interesting: the number of users in Game Center and the number of users reported by Flurry Analytics were at least 3 times the total number of sales reported in iTunes Connect. At first I thought the iTunes reports were delayed, but a google search revealed that there are lots of pirated copies available. If the numbers are accurate, this means there are at least 3 or 4 times as many pirated downloads as we had legal sales.
This is after only two days of sales, and it’s a 99-cent app. Remember when people were saying that an advantage of the App Store model was that Apple would be able to prevent this? Instead, the enforced monoculture has enabled piracy and prevented developers from trying to stop it.
For the main 3.5″ SATA hard drive bay in the new 2011 machines, Apple has altered the SATA power connector itself from a standard 4-pin power configuration to a 7-pin configuration. Hard drive temperature control is regulated by a combination of this cable and Apple proprietary firmware on the hard drive itself. From our testing, we’ve found that removing this drive from the system, or even from that bay itself, causes the machine’s hard drive fans to spin at maximum speed and replacing the drive with any non-Apple original drive will result in the iMac failing the Apple Hardware Test (AHT).
Hard drives fail and are also prime candidates for upgrading your Mac. It’s too bad that the Intel iMacs have made it increasingly difficult to replace drives, whereas it’s become much easier for MacBooks and MacBook Pros.
Apple still hasn’t opened up the FaceTime standard. Make no doubt about it, Apple very clearly said they were going to do this. Steve Jobs himself said so at WWDC 2010…
It seems like this is still in Apple’s interest, so my guess is that they just haven’t gotten around to it yet.
And that’s how an iAd supported version of Dex died. No warning, no notice and inevitably no respect to the developers who have centered their app’s revenue model around the iAd platform.
Apple should target their ads better. I would have loved to have seen some ads that were better suited to kids in Dex. It’s a shame they don’t have the inventory to do so. However the manner in which they’ve made this policy change just stinks.
Furthermore there is no documentation of this change. Nothing is on the iAd developer page to alert people that the current fill rate for apps and games targeted at kids is zero.
What determines whether an application is “targeted at young children”? I suppose that with Pokémon it’s fairly clear, but where is the line for apps that are intended for all ages? Do you have to mark it as having objectionable material in order for it to not be a kid’s app? Or does the iAds staff just decide on their own?
What sounds like a reasonable demand when packaged by Apple’s extraordinary public relations department is essentially an eviction notice to all ebook sellers on iOS. After over three years of developing products for iOS during which we had over six million downloads of our BeamItDown iFlowReader products, Apple is giving us the boot by making it financially impossible for us to survive. They want all of the eBook business on iOS and since they have the unilateral power to get it, we are out of business and the iFlow Reader is dead.
As described previously, Apple changed the rules so that apps that display content must use in-app purchase and give Apple 30%. And because of the agency model (which Apple encouraged the publishers to adopt) it’s not even possible to raise prices to avoid losing money on each e-book sold. June 30th is fast approaching, so we’ll soon see whether Amazon gets special treatment, they decide to withdraw the Kindle app from iOS, or Apple changes the rules again.
It must be strange being longtime Mac OS X developer Karelia. First they came out with the excellent Watson. Apple added the inferior Sherlock 3 to Mac OS X 10.2, Karelia discontinued Watson in 2004, and then Apple discontinued Sherlock with Mac OS X 10.5—although it sort of lives on in Dashboard.
In 2005, Karelia demoed Sandvox, Apple added iWeb to iLife ’06, and Karelia shipped Sandvox 1.0 later that year. Sandvox has always been more flexible; it wasn’t until ’09 that iWeb supported servers other than MobileMe. I think initially iWeb was a bit simpler to use, though.
Now, iWeb is part of iLife ’11 but seemingly not updated since ’09, and it (like iDVD) is not available from the Mac App Store. Meanwhile, Karelia has released Sandvox 2.0 with an impressive list of changes. It has more features than ever, but to me it feels cleaner and smoother than before.
Personally, I write raw HTML (or write code to generate it), but I’ve enjoyed following Sandvox’s progress over the years. I think it makes a good case study for interface design, particularly the “getting started” experience, complete with videos and periodic e-mails that help you through the steps of creating a Web site.
Of course, as with many App Store rejection stories, there are plenty of examples of approved and popular apps that do essentially the same thing. In this case, there are even other Hacker News clients, but Reddit clients and even Flipboard could easily fit under the same logic used to reject news:yc.
Now it was PowerPC that was emulated, using Rosetta. In Snow Leopard, the first Intel-only version of Mac OS X, Rosetta wasn’t installed by default; it would be downloaded and installed automatically the first time a PowerPC application launched, but the hand was already writing its ominous message on the wall. The rumor, which has become as loud as a roar, is that Mac OS X Lion will not support Rosetta. Snap!
As of this afternoon, PowerPC-only software that I had installed was:
- I don’t use it anymore, but I have lots of AppleWorks documents, as well as files from ClarisWorks 4, 5, and 6. From what I’ve read, it’s not a good idea to rely on Pages and Numbers to read the word processing and spreadsheet files, so I should probably convert these to Word and Excel format while I can still run AppleWorks. The data from AppleWorks databases can probably be saved as CSV, but I guess there’s no way to use it short of recreating the layouts in another database program.
- Presumably, FogCreek will have an update for this before Lion ships.
- I only have this for testing with SpamSieve. The plug-in will likely not be updated again, and in fact it was built with CodeWarrior, which I no longer have installed.
- FrameMaker and FrameMaker+SGML
- These only run in Classic, and unfortunately there are no other applications that understand their files. I suppose I should try to fire up Acrobat Distiller to convert the documents to PDF while my PowerBook still works.
- Internet Explorer
- It’s been a long time since I even used this to test pages.
- RealOne Player
- I can’t remember the last time I used this.
- Web Confidential
- I converted my files to 1Password a while ago. I do have one file with unknown contents and an unknown passphrase; at this point, I have no real need for it and will probably never get it open.
- This was easily updated by recompiling the source.
I suppose it goes without saying that the most future-proof old documents that I have are in Microsoft Office, LaTeX, and plain text formats. Annoyingly, Office 2011 warns about opening files with type/creator codes but no extension, making me get at them through the Open dialog instead of by double-clicking or drag and drop.
Update (2011-05-2): I found that, Office 2008 is much more reliable than Office 2011 at opening files from Word 5.
If you’re looking to make sure that your proposed app doesn’t get banned, don’t look to Apple for any reasonable guidelines, but remember: Don’t get involved in religious or political debates, don’t try to discourage users from using cell phones, and never, ever shake a baby. Feel free to help people dodge DUI checkpoints, though. In the world of Apple, pretend-smuggling a group of immigrants across the border apparently is worse than implicitly encouraging users to drive drunk.
When they finished, I asked them to tell me about the book. They described how they could blow on the screen and see the windmill turn, how they could run their fingers across the interactive map and see colors changing. How they could pinch to open and close images. But they couldn’t recall much of what the book was about. They couldn’t recall the message intended to be communicated in any of the info-graphics (though they could recall, in detail, how they worked.)
Solid state hard drives are so freaking amazing performance wise, and the experience you will have with them is so transformative, that I don’t even care if they fail every 12 months on average! I can’t imagine using a computer without a SSD any more; it’d be like going back to dial-up internet or 13" CRTs or single button mice. Over my dead body, man!
I’ve been using an SSD as my main storage for a little over a year. It’s been great so far, but I specifically bought it from Apple so that they would be responsible for the drivers and AppleCare would deal with any problems that crop up.
The May issue of ATPM is out:
- MacMuser: Da Pain, Da Pain
- MacMuser: All Abroad for iPad 2 Alternative
- The iPad Chronicles: Two iPhones and a Rice Bowl
- The iPad Chronicles: Wonders Never Cease
- How To: Using the Free Disk Utility on Your Mac
- Desktop Pictures: Arizona 2010
- Out at Five
- Software Review: Escape Rosecliff Island HD
- Software Review: Handoff 1.1
- Software Review: PDF Studio Pro 6.6
- FAQ: Frequently Asked Questions
CodeRunner is a little app that lets you type in a snippet of code in Objective-C (or various other languages) and quickly run it (via Nicolas Seriot). There’s no need to fire up Xcode and make a project, and it has a nice simple window like AppleScript Editor, with a Run button at the top and space for console output at the bottom.