Monday 27 August 2018

Applications sous OS X

Vous regrettez amèrement l'option « N'importe où » vous autorisant à installer/lancer sur votre OS X des applications sans contrôle de leur origine ?


Une simple ligne de commande peut vous aider :

sudo spctl --master-disable

Après avoir quitté et relancé les préférences, votre option préférée sera de nouveau là :


Pour revenir à l'état antérieur, une autre ligne de commande :

sudo spctl --master-enable

Wednesday 18 October 2017

OS X High Sierra installer hell (OSInstall.mpkg missing or corrupted)

Dear Apple, this is the fourth time in a row one of your system upgrades on iOS or OS X make me loose a day or two - when it does not make me loose a lot of data - and I am fed up with it. My last experience with your High Sierra upgrade is truly shocking:

  • this morning, I decided to finally upgrade my eligible MacBookPro to High Sierra
  • I did it the right way, and everything initially seemed to work fine
  • then suddenly the installer stopped, announcing that "mac OS could not be installed on your computer" because "file OSInstall.mpkg was missing or damaged". Uuuuh???? What the hell?!? I was really scared since my backup missed two days of data, some of them being extremely important to me.
  • I tried the Recovery mode to install, no result
  • I tried to locate the missing file somewhere else in the installer's filesystem, no result
  • I tried the Disk Utility and it was worse since the app was struck with a spinning wheel...
  • I tried disk utils in the Terminal but my HD was gone. Just gone. Awful. I was so shaken I had to stay away from the computer for a few minutes.
  • then I discovered there are literally thousands of Mac users complaining about High Sierra's installer bricking their Mac with the same error... We're not speaking of a beta here, we're not speaking of something released yesterday. How can this remain broken?
  • fortunately, we have a few other Macs at home so I downloaded High Sierra from another one, downloaded the excellent and free Disk Creator to create a bootable USB version of the High Sierra installer
  • the install from that USB stick seemed to work and my data is still there, wooooof.

So for the visitor hitting this article and willing to upgrade a Mac to High Sierra, these are my VERY strong recommendations:

  1. full Time Machine backup first. Full. Mandatory. More than ever with the filesystem change. Make 100% sure your backup ended correctly and is usable. Do it, whatever the time cost.
  2. download High Sierra from the App Store but do NOT install; hit Cmd-Q to close the installer.
  3. download Disk Creator (link above) and create a bootable USB version of the High Sierra installer (located in your /Applications folder). Of course, you need a USB key...
  4. shut down your Mac ; insert your bootable USB key and reboot while pressing the Alt/Option key. At prompt, use the arrows and the CR key to select the USB bootable installer.
  5. install High Sierra on your disk that way and if it fails, use the Time Machine backup you fortunately did at step 1.

My Mac went bricked at 10am. All in all, it took me 6 hours and 36 minutes to find how to get it fixed, stop being scared of launching that process that could wipe all my HD out, and do it. Let's be very clear : this is totally unacceptable. The High Sierra installer is still broken and thousands of people are hit by that breakage.

On another hand, last Windows10 upgrade was so smooth it felt old-days-Apple, ahem.

I had to recommend my less geeky dad, kids, friends to avoid High Sierra's installer if I am not around. Wake up Apple, you're reaching unacceptable limits here. Your hardware starts sucking (incredibly noisy and ugly keyboard, bad touchpad design, useless and expensive touchbar, USB-C hell, no more SD slot) and some of your software are now below expectations. Wake up. Now!

Tuesday 18 July 2017

A month with a new MacBookPro

I have been using a 2017 MacBookPro with touchbar for a month now and I can start giving some impressions about it:

  • loving the dark grey color
  • thinner, lighter; that's cool
  • better screen, that's cool too
  • USB-C is at the same time very nice and a true PITA. I need an adapter for so many of my USB devices it's awful. It's just ridiculous there is not 1 USB3. I can't even connect my iPhone without an adapter. Thinner for thinner is pointless in that case.
  • I just hate the noise of the new keyboard, INCREDIBLY noisier than the old MBP one, a huge negative point during conference calls. All in all, the old MBP keyboard seems to me ten times superior and less error-prone.
  • the Touchbar is cool - and I implemented touchbar support in Postbox - but after a month of usage, I clearly see it as a useless gadget. It's too easy to have a finger hover over the ESC key and I erroneously sent an email before finishing it because a finger hovered over the "Send mail" key of the Touchbar for Apple Mail. All in all, I sincerely regret the real KEYS of the old MBP. The Touchbar is not worth the price difference and not worth the hassle. Please also note the Touchbar is 100% unusable in a sunny environment since you don't even see what's on the Touchbar... Well done. Oh, and I suppose it sucks more power too.
  • I have extremely mixed feelings about the larger touchpad... The right-click is painful to get, the left-click is too often unreliable, the touchpad is too tall and I am deeply missing the wider gap between the keyboard and the touchpad to let my thumbs on it. Because of that, I am too often hitting the touchpad when I am typing. All in all, I think this is the worst touchpad made by Apple, by far.
  • the power adapter is such a regression I could cry. The "wings" of the power adapter are gone, the longer power chord is now a costly option, the incredibly great MagSafe is gone.
  • I do regret the SD/SDHC port, the DisplayPort port, all these things that now require an adapter. The new MBP is adapter's hell.
  • I noticed some static electricity on the MBP's shell when the battery is charging. Weird.

Thursday 6 April 2017

OS X Touchbar: your help needed

Still playing with OS X Touchbar, I am hitting a thick wall: the 10.2.1 Release Notes read:

NSTouchBar supports a text-related item identifier, NSTouchBarItemIdentifierCharacterPicker, and returns an NSPopoverTouchBarItem configured to show the system character picker from -itemForIdentifier:.

That Character Picker (that is more an Emoji Picker) is easily visible for instance with a Compose Window of Apple Mail:

Touchbar for Apple Mail's compose window

You can see there, from right to left, a scrubber with the most frequently used emojis, a label, and a popover button that allows access to the various categories of emojis and their contents. All in all, it's very well done.

But if I try to programmatically add a NSTouchBarItemIdentifierCharacterPicker to a touchbar that is not linked to a NSTextView or a NSTextField, I end up with a horked, partial, result. The popover button is correct but when you click on it...

Horked touchbar when created programatically

As you can see, there is only the list of favorites emojis (in fact the last used emojis), it does not scroll and its width/height seems wrong, the label is gone, and the emoji picker is completely gone... And whatever I do, I end up with the same result. Through lldb, I have dived into the touchbar: the CharacterPicker popover has the correct PopoverButtonItem and its associated popoverTouchBar only contains one element that has the NSTouchBarItemIdentifierCharacterPicker identifier.

Seen from here, there are only two possibilities:

  1. I am missing a parameter, an attribute, a whatever somewhere. That's not surprising given how superficial (to remain polite) the documentation is about this. The paragraph quoted above is the ONLY thing you can find about the CharacterPicker...
  2. there is a bug somewhere in Apple's code and Apple's own code works around it but it's totally impossible for me to find out what's going on here...

If you work at Apple or are a Touchbar expert and think you can help, please leave a comment here. This is true blocker to me and all the various approaches I tried to create the touchbar (manually created, dynamic, creating items, using only identifiers) lead to exactly the same horked result above. Thanks!

Addendum: OS X 10.12.4, Xcode 8.3 (8E162).

Monday 27 February 2017

From Swift2 to Swift 3

I am migrating a rough ~9000 lines of Swift 2 code to Swift 3. So really a small thing. And this is a mess of epic magnitude; the time needed to do that is not counted in hours but in days. Even if Swift is beyond 1.0, nothing seems stabilized. Some naming choices are totally ridiculous, unintuitive, painful to remember. Worse, they sometimes drastically change between two versions of Swift.

The whole naming thing of parameters is totally crazy. Let's take the example of some removeAtIndex() in Obj-C. The prototype for that in Swift 3 would be remove(at: index). That's über-cool when you read the prototype. But in your code, you have very little chance to have your parameter named 'index'. For instance remove(at: currentEntryRef). And bam, you've lost the connection to the Obj-C function. Most of my own functions end up with a leading underscore in front of each parameter...

Suppose you have 65 and you want "A". You need to convert your 65 into a UnicodeScalar. Until then, acceptable. Then from your UnicodeScalar to a String. But String(UnicodeScalar(65)) won't work, you need String(describing: UnicodeScalar(65)) but hey, that's an Optional("A") so you really need String(describing: UnicodeScalar(65)!)... Urgh. Oh and in Swift 2, it was String(UnicodeScalar(65)) and that's all. I miss JS's String.fromCharCode() so much. I miss JS so much.

Interestingly, the mobile team of Mozilla explained what it took to migrate Firefox for iOS from Swift2 to Swift 3. And we're now counting **in weeks**. This is clearly awful, Swift is not stable enough. While it should be very simple for a JS author to move from JS to Swift, it's not the case any more. It's also far too expensive to move from one version of Swift to the next one.

Instead of adding super-useful stuff like throwing computed properties (that are really, really useful to implement W3C DOM/CSS OM interfaces), Apple changed things that implied hours and hours of code tweaking just to build again even the first file of my repo in Swift3... Woooof.

I find this so depressing. Awful.

Monday 5 December 2016

MacBookPro 2016 with Touchbar

I spent a short while playing with a new MacBookPro 15" with Touchbar at the Apple Store. Conclusions:

  • I hate the keyboard that is too thin and has too little space between the keys. I made so many typing mistakes with it... This is a keyboard for people who don't use a lot their keyboard, not a keyboard for code developers
  • the Touchbar is a PITA and a strong disruption because it adds another layer of input/output between the keyboard and the screen. "Typing" on the Touchbar too often requires moving your eyes from the screen to the Touchbar and losing focus when you go back to the screen. For each app, you have to learn a new Touchbar design, and some apps have more than one. A mess. And it does not counter-balance the loss of the Escape and function keys.
  • the screen seems better and brighter than on my mid-2014 retina MacBook Pro.
  • Apple Store people themselves are extremely cautious with the USB-C-based power supply when they move a MBP. MagSafe, we all miss you.
  • Touch ID is cool but I noticed the Touch ID key does not seem to be oleophobic so the fingerprint of the person who unlocked the MBP can be very visible. Probably not too difficult to copy it.
  • I have doubts on the readability/usability of the TouchBar in high-light conditions
  • the price, the price, the price !!! The 15" model with Touchbar starts at $2,889.00 here in France (price converted from € to $ at today's exchange rate), urgh !!!

For the time being, I am more than happy with my mid-2014 model and I don't plan to change. This would probably feel like a downgrade to me.

Thursday 15 September 2016

email in iOS 10

Disclaimer: I know a thing or two about an email client and another one and viewports and line wrapping and html-based email...

I updated iOS on my iPhone yesterday night and suddenly, one of the apps I am using every 2 minutes is severely broken. Since I don't understand how so severe UI bugs were let by QA into this release, I feel the need to give here my fedback.

First email I checked was a CSS WG message in a conversation of two messages. I did not tweak at all the Settings before looking at my email. Here's a screenshot of what appeared:

conversation iOS10

So many things are completely borked here I cannot count them all:

  • unreadable font size
  • Plus button overflowing the message's prose
  • "Se désabonner" ("Unsubscribe") taking far too much space and repeated
  • no idea how to enlarge one given email
  • at least two clicks required now to view a message in a conversation while only one was needed before the update
  • no idea if and how Settings can be changed about this view

Globally, the user experience is horrible. Then I tried to view another message, not in a conversation...

standalone email iOS10

Again, plenty of issues here:

  • totally unreadable font size...
  • 1/3 of vertical space eaten by navigation button and headers with enormous vertical margins around all headers
  • no reflow if I zoom in the message, forcing me to move the viewport a dozen of times to read the message

Worse, as far as I can tell, there is strictly nothing in the Mail Settings allowing me to change the current behaviour, increase the font size, avoid showing conversations. Some trivial richtext emails are correctly rendered, some other ones are not and I fail seeing what is the issue comparing the two markups.

All in all, it's a rather severe regression. Everything that used to require one click now requires several, the UI is a pile of crap and it really feels it was not reviewed nor tested correctly. Wow.

Update: Apple knows and is working on it.

Friday 19 February 2016

A makefile-based build system for Swift

I'm currently playing with Swift, outside of Xcode (but of course, you need to have Xcode installed to have swiftc installed...), when I have a few spare cycles and building more than just a few files was getting so painful I started working on a minimal build structure. Since it's working pretty well and it was not always easy to figure out what to do, I've decided to share it.

First, clone the following git and copy the swiftbuild directory you'll find inside to your project's top directory: git clone https://github.com/therealglazou/swift-makefiles.git

Then tweak the swift/config.mk according to your wishes (in the repository, it's for a macosx x86_64 target).

Finally, add a Makefile file to each directory inside your project. Each file should look as following:

# TOPSRCDIR is a relative path to the top directory of your project
# for instance:
TOPSRCDIR = ../../..

# if you have subdirs to build, list them in DIRS. They will be built
# before the files directly in your directory
# for instance:
DIRS = public src

# if you're building a module from the swift files in this directory
# name your module in MODULE_NAME
# for instance:
MODULE_NAME = MyProjectCore

# if your directory contains your main.swift (mandatory for a
# standalone executable), give your app's name in APP_NAME
# for instance:

# now, always include $(TOPSRCDIR)/swiftbuild/config.mk
include $(TOPSRCDIR)/swiftbuild/config.mk

# your swift sources should go into SOURCES
# for instance:
SOURCES = foo.swift bar.swift

# if you need to import modules outside of your project
# use IMPORTS to list the paths, of course prepended by -I
# for instance:
IMPORTS =-I /Users/myname/trees/myotherproject/modules/

# if you need some dylibs to build your module or your app,
# then use LD_FLAGS (always +=) and LIBS; for instance:
LDFLAGS += -L/Users/myname/trees/myotherproject/lib
LIBS = -lfooCore

# and finally always include $(TOPSRCDIR)/swiftbuild/rules.mk
include $(TOPSRCDIR)/swiftbuild/rules.mk

And that's it, you're now good to make build, make clean and make clobber. The first one will build everything, your dylibs and app being in $(OBJDIR) at the end of the build while your modules are in $(OBJDIR)/modules. The second one will delete all dylibs, *.o and build remains from your directories but will preserve $(OBJDIR). The last one performs a clean and deletes $(OBJDIR) too.

Let me know if it's useful please. And I'm of course accepting pull requests. Next steps: static linking and build of a complete foo.app OS X application...

Tuesday 6 October 2015

OS X El Capitan and USB

I upgraded my MacBookPro to El Capitan two days ago and this was a huge mistake: suddenly, all my external USB hard disks, including my TimeMachine backup (based on a huge Seagate disk), stopped completely working. Not only El Capitan does not show the disks in the Finder, but the Disk Utility does not see them any more. In the release notes of OS 10.11 beta, one could read:

  • USB Known Issues
    • USB storage devices, including internal SD card readers, may become unavailable after system sleep and require either re-plug or restart to recover.
    • USB input devices may become non-functional on some Macs after several days.
    • USB 1.0, 1.1 and older 2.0 devices may not function.

I have tried to reboot, reset the PRAM, reset the SMC, nothing works. Online fora are full of people experiencing blocking issues with USB since they upgraded to El Capitan. The issue was reported by many people during the beta program of OS 10.11 and nothing changed.

This is lame and not at the Apple « level ». Hurry up Apple, fix this.

Thursday 24 September 2015

Calendar on iOS

Dear Apple, I have a request for enhancement for the Calendar app on iOS: when you add a new entry in a calendar, there a possibility to set a travel time. That travel time is hard-defined: 5, 15, 30, 60, 90 or 120 minutes. But since there is also the possibility to set an address for the entry, the travel time should be computed from the preferred transport method (car, foot, public transports) and my current location, looking at traffic data. With your Maps app, that's feasible and that would be a superb addition to the Calendar. Best.

Update: so apparently, this exists when you set up yourself an entry in the calendar. But I received a meeting invitation by email, with the address provided and everything ok, and Calendar lets me only set a hard-defined travel time...

Thursday 25 December 2014

Wish... ou pas.

Mon fil Facebook sur mon iphone vient, comme trop régulièrement, de me montrer une pub. Jusque là, rien de nouveau sous le soleil de Noël me direz-vous... La pub était pour une appli iOS, dont le nom est Wish, permettant d'accèder à un site de vente avec - apparemment - des prix intéressants. Je sais, je sens, que c'est un pipeau. Je ne clique jamais sur ce genre de trucs. Mais pour une fois j'ai envie de voir  ce qui se passe quand on clique.

Wish dans l'AppStore

Donc je clique. Je me retrouve sur la page AppStore de l'appli en question. Il y a, excusez du peu, 487 avis déposés sur l'appli entre le 19 novembre 2014 et aujourd'hui. Wow. De plus la plupart sont incroyablement positifs mais... mais...

Wish commentaires dans AppStore
Avis dans l'AppStore

Mais si on cherche bien on trouve le commentaire d'un gars qui dit en gros voilà j'ai laissé mon avis sur votre appli super moi aussi je veux un cadeau. Ahem. Alors je regarde mieux et la plupart des commentaires n'ont jamais utilisé le site. Et je cherche encore mieux, cette fois en dehors de l'AppStore et cette fois-ci les commentaires sont majoritairement ultra-négatifs, tant sur l'appli que sur les produits vendus, les ventes ou le processus de livraison (quand les produits sont livrés...).

Sur Facebook, pas pareil...
Sur Facebook, pas pareil...

Dites Apple, vous emmerdez régulièrement des Apps que vous supprimez pour des raisons parfaitement stupides, vous ridiculisant par la même occasion. Là, on a une appli de l'AppStore dont les avis sont visiblement bidons et bétonnés, une appli d'e-commerce listant des centaines de clients mécontents et que votre AppStore présente comme une appli sûre et bien notée. Bref, vous induisez les utilisateurs des produits Apple en erreur. Vous pensez faire quelque chose avant la Saint-GlinGlin ?

Dites Facebook, vous acceptez de la publicité pour des sites qui sont au-delà de la limite basse de l'arnaque. Vous avez pourtant accès à tous les commentaires négatifs hein... Vous pensez faire quelque chose avant la fin des haricots ?

Wednesday 26 November 2014

Yosemite maximize/fullscreen button

The always remarkable Wladimir Palant has found a fix for the most annoying OS X "feature" ever, the change of behaviour of the window maximize button. In Yosemite, it now defaults to fullscreen and you have to press the Alt key to get the "classic" behaviour of window maximization. This is so painful all the people I know are currently asking how to reverse that. Given the very negative feedback, I'm pretty sure Apple will at some point in the future introduce a defaults allowing to reverse that from the command line, but for the time being we're all cursing in front of our Mac when we toggle an app fullscreen instead of maximizing it. Apple, read it well: One Does Not Change a 25 Years Old Behaviour; remember the Windows Start button. Oh, and the fullscreen standalone button on the right hand side of the titlebar was better than the current Yosemite blurby hack.

Soooo... Wladimir found that free piece of software called BetterTouchTool (BTT). Follow the steps below:

  1. Download BTT and install it.
  2. During installation, your mac may ask you to allow Preferences to control accessibility, that's normal
  3. In the main BTT window, click on the Other button in the main toolbar

    (image 1)

  4. Create a new trigger and select the "Leftclick Green Window Button"

    (image 2)

  5. Click on the Predefined Action dropdown button and type "zoom" in the search field

    (image 3)

    select "Zoom window below cursor"
  6. Create a new trigger again and select again "Leftclick Green Window Button" (see step 4 for the image)
  7. Check the "Opt" button

    (image 4)

  8. Click on the Predefined Action dropdown button and type "full" in the search field

    (image 5)

    select "Enter fullscreen"
  9. You can now close the window ; make sure BTT is running at all times.

Thanks Wladimir and thanks BTT! Not perfect but better than regular Yosemite's behaviour!

Wednesday 2 April 2014

Mac and rtl

After years of wait, Apple Keynote was just updated to v6.2 and includes a far better support for rtl scripts. For the first time, the cursor and the caret movements are reliable and it becomes possible to edit a rtl slideshow. Pages is still in v5.2 though.

On the Microsoft Word front though, still no rtl at all...

Tuesday 23 April 2013

Amazon vs. Apple Book Store

Dear Apple,

I wanted to read Nolan Bushnell last book "Finding the Next Steve Jobs" and I wanted to read it on my iPad, and in English. So I visited your Book Store. I can't buy that book, even if it is available in the US Book Store, because my account is a "french" one.

So I installed the Amazon Kindle app. Visited amazon.com. Bought the book there in 5 seconds.

I think I will buy more and more from there in the future.

Well done Apple.

Thursday 14 June 2012

Grrrrr un format iBooks

Wednesday 25 April 2012

Lame Apple

Excerpt from the WWDC 2012 FAQ:

Taking photographs, recording video and engaging in any form of live blogging during WWDC sessions is expressly prohibited.

Apple, sometimes you suck. Deeply.

Friday 20 January 2012

iBooks Author, a nice tool but..

Long, very long ago, in another galaxy further north on the US west coast, the Death Star Microsoft was not playing the standardization game and was submitting proposals to W3C the day it was shipping to the masses a browser implementing that proposal. Or ship without any proposal.

These days are over, and Microsoft finally embraced Web Standards and all rejoiced.

Yesterday, further south on the US west coast, the "All Your Documents Are Belong To Us" Mothership Apple started showing incompatible authoring environments and rendering engines based on proprietary extensions to html and CSS that will hit the wild. Yesterday, Apple released iBooks Author and I am not afraid to say that despite of being a great authoring tool, the solution it offers is a step backwards and it's not good news for users/customers.

I have downloaded iBooks Author (IBA) and played with it. I have in particular looked at the two formats it outputs, the iba format and the ibooks format.

But before that, since I do it with all software I load and launch on my Mac, I took a look at the About window... And from that About window, you can read the License. Dan Wineman has an excellent article about it, and article you must read before thinking IBA is the Holy Grail of publishing. I won't repeat here what he said but he missed something funny and potentially important: the french EULA, that is the only one valid in France if the customer is an individual since english is not an official language here and nobody can force a french citizen in France to have to read english, reads:

"tout livre ou tout autre travail réalisé à l’aide de ce logiciel (« travail »), ne peut être vendu ou distribué uniquement via Apple (par exemple sur l’iBookstore) et une telle distribution est sujette à un accord séparé conclu avec Apple"

The first part of that sentence is a bogus translation from english that means "any book or other work made with this software cannot be sold only via Apple"... The french prose misses one "que" to match the english one. Too bad, Apple... Too bad and too late. I am carefully keeping a copy of that document, of course. I suggest you do too, if you're based in France :-)

Let's go back to the formats now. The first IBA format, the iba format, is, as always with Apple, a zip archive pretending to be a single file. The iba file I created from my little demo was contained in a single XML file. Totally unreadable, based on proprietary Apple xml namespaces (sl, sf and sfa, all in http://developer.apple.com/namespaces/ space).

IBA format

It's not readable in a regular browser because browsers have no knowledge of those namespaces. It's completely closed, useless outside of the Apple world. Nothing more to say here.

The ibooks format is more interesting, but even more disappointing...

ibooks format

It looks like an EPUB3 format. It smells like an EPUB3 format. But it's not at all an EPUB3 format and here's why...

First the mimetype file. It's correctly placed in first position in the package, but the EPUB3 format states that its content must be application/epub+zip. And it's not. It's application/x-ibooks+zip and that is enough to make conformant EPUB3 readers choke on a *.ibooks package. Let's take a look now at the other files here, starting with content1.xhtml:

  • it uses a proprietary extension of CSS Media Queries, adding the keywords paginated and nonpaginated. Unprefixed. Not even -ibooks-paginated... Since this is not part of the official CSS Media Queries specification, this is not conformant EPUB3. As far as I know, this extension to the list of CSS media was only recently mentioned once during a chat but never seriously discussed or even proposed as a written proposal.
  • it uses the proprietary xml namespace xmlns:ibooks="http://www.apple.com/2011/iBooks" and nobody knows what that is or represents
  • it applies stylesheets to the html5 (xml serialization) documents through xml-stylesheet processing instructions. That's perfectly fine since it's an xml serialization but that's not the common way of linking stylesheets in the html world. A minor issue but still.
  • it contains a weird <link rel="stylesheet" type="text/xml+svg" href="assets/svg/content1.svg" /> where the target is really a SVG document. The behaviour of this link element is undefined from a standards' point of view. Conceptually, this is plain wrong. A SVG document instance is not a stylesheet. It could be used by a stylesheet to define exclusion paths for instance but it cannot be called a stylesheet.

Let's look now at the stylesheets, for instance content1.css:

  • again, a definition for a proprietary namespace @namespace ibooks "http://www.apple.com/2011/iBooks". The format clearly extends HTML5 and we have just no idea how.
  • proprietary prefixed properties. Examples:
    • -ibooks-layout-hint: anchor page shape;
    • -ibooks-list-text-indent: 0.0000pt;
    • -ibooks-strikethru-type: none;
    • -ibooks-strikethru-width: 1.0000px;
    • -ibooks-underline-type: none;
    • -ibooks-underline-width: 1.0000px;
    • -ibooks-slot: textShape-2;
    • -ibooks-stroke: none;
    • -ibooks-gutter-margin-left: 50.0pt;
    • -ibooks-positioned-slots: media-24, textShape-123, ... ;
    • -ibooks-box-wrap-exterior-path: directional contour both 12.0pt 0.500000 false;
    • @page ::nth-instance
              height: 748.0pt;
              width: 1024.0pt;
                      height: 748.000pt;
                      left: 0.000pt;
                      top: 0.000pt;
                      width: 1024.000pt;
                      z-index: 1;
    • -ibooks-column-width:  20% 30% 20%;
    • -ibooks-column-gap:  25px 30px;

The iba format clearly extends CSS (and therefore EPUB3) to offer the following features:

  1. Template-based layout including special areas (gutter)
  2. Extended underlining
  3. Ability to control the size of each column and column gap in a multi-column layout
  4. something equivalent to Adobe's Regions and Exclusions.

Template-based layouts based on slots were originally proposed by Jakob Refstrup 10-mar-2011 on behalf of Apple. Before that, Jakob worked for HP (how surprising he knows EPUB, pagination, printing and rendering engines; probably Gecko and/or WebKit well too) and regularly contributed to the CSS WG mailing-list on their behalf. His last contribution on behalf of HP was in february 2010 and his first contribution on behalf of Apple was the one mentioned above. He almost did not contribute again on this topic afterwards. His proposal is clearly based on Bert Bos's and Cesar Acebal's CSS Template Layout Module but is only based on it. According to Jacob's profile on LinkedIn, he joined Apple in june 2010. Then I suppose he started working in stealth mode on the iBooks rendering engine. Please note there are discussions in the Community about dropping the Template Layout module...

Extended underlining is based on an old draft of CSS 3 Text and some of these proposed properties were dropped by the CSS WG after discussion in www-style.

The ability to control the size of each column and column gap was recently discussed in the CSS WG. The Group decided that allowing setting of individual column width and column gap width is not a feature considered for the first REC of this document. So Apple is here extending the CSS Multi-Column Layout Module and never told us about it.

iBooks offers a mechanism for regions and exclusions. It's even one of their screenshots on the Mac App Store:

Mac App Store page for iBooks Author

It is a system vaguely similar to - but still different from - what Adobe proposed with CSS 3 Exclusions and Adobe's proposal is the document the whole CSS WG is working on.

Because of these extensions, editing or browsing the html documents with a regular wysiwyg editor (BlueGriffon or DreamWeaver for instance) or a browser (Firefox, Chrome or even Safari) shows a total mess on screen. It's not readable, it's not usable, it's not editable. Just forget it, Apple (re-)invented the Web totally incompatible with the Web.

All in all, Apple has worked entirely behind the curtains here. If someone tells you that iBooks format is EPUB3, don't believe it. It's not EPUB3, it's only based on EPUB3, and it raises a lot of issues that both publishers and customers should carefully look at:

  1. first, the english EULA of iBooks Author is just unacceptable. When I buy a computer, what I do with it is mine. When I buy a workbench, wood and a drill, what I do with them is mine. And when I buy or get a software license, what I do with it is mine and if I want to sell it through rabbits carrying CDs, that's my freedom. So if you're a publisher or a book author willing to use IBA, make sure your Legal Department carefully studies the IBA EULA.
  2. second, IBA is not EPUB3. A wysiwyg EPUB3 editor will not be able to edit correctly an IBA document because of the different mimetype and the proprietary CSS extensions. iBooks Author is not able to reopen a iBook it exported in their pseudo-EPUB3 format because there is no Import mechanism! That means that on one hand EPUB3 readers cannot reuse a document created by iBooks Author because of its HTML/CSS/Namespaces extensions, and on the other iBooks Author cannot create an iBook from an existing EPUB3 document because it cannot import it. But wait, can we open an EPUB3 or a regular HTML document into another app and copy/paste the content inside IBA? I tried from an HTML instance in Safari and from an EPUB reader based on Safari. It does not work, all markup is lost, it pastes text. Ugly result. Oh, and changing file extensions from ibooks to epub or vice-versa does not help either.

For the time being, iBooks on my iPad is anemic. Two days ago, I wanted to find a book by Asimov. Unavailable in french on the iBooks Store. Not a single Asimov... Wow. So I started browsing the Store to find things I could read on the iPad during my next trip. I discovered the iBooks Store is so tiny it just does not stand a single second the comparison with Amazon or even EPUB3-based bookstores. Reading a book on my iPad is cool. I just can't find in Apple's bookstore the books I want - and I am not looking for rare or hyper-intellectual stuff - so paper-based books are still my best choice.

With iBooks Author, Apple is trying even more to lock their formats and the market. But this is a bad strategy because publishers are fed up with formats. For one book, they have too many formats to export to. For each format, they have to use tools to convert (usually from MS Word) that are incomplete and all require manual reformatting or validation. Adding an extra format that is almost EPUB3 but is definitely not EPUB3 output by a software that is an isolated island and does not offer any extra help to reduce the publishing burden is representing a huge extra investment and is then, in my opinion, a mistake.

Apple has played here the game Microsoft was playing back in 1996/1997. Implementing behind the curtains up to that point, extending standards but not disclosing the extensions, using unstabilized Working Drafts into shipped products, making the shipped solution incompatible with the rest of the market and even incompatible with the other rendering engines of Apple, is a strategic error. It can only lead to a mess reaching the magnitude of the Outlook mess when it switched rendering engines and created a gigantic chaos for corporations sending newsletters that the recipients could not read any more.

iBooks Author is, as always with Apple, a very nice piece of software. Friendly user interface, simple to understand and manipulate even without Users' Manual. But from a Market point of view, my gut feeling is that it's one incompatibility too far. Apple is missing a huge opportunity here because it wants to lock the market, trying to offer the best editing environment to kill the other online bookstores. I don't think it will work that well:

  • MS Word remains the main format requested by Publishers all around the world, and it's not going to change any time soon,
  • not all authors have a Mac and iBooks Author is too close to a Page editor and less to a Document editor to be really usable to write a book from scratch,
  • Publishers will be reluctant to use yet another solution for publishing,
  • format incompatiblity is extremely expensive here, meaning it's impossible to use IBA as the pivot editor for creation. It's also impossible to use another tool to create an EPUB3 and only import it into IBA to enrich it since IBA has no Import feature. It's even impossible to browse a HTML document with Safari and copy/paste content into the HTML document handled by IBA!!! Pure crazyness.

When a piece of software is so well designed from a UI point of view and could become such an attractor in terms of usage, I feel this is a totally wrong strategy. Opening up everything and using only carefully chosen standards and matching the version of WebKit used by Safari would have given an immense and almost unbeatable competitive advantage to Apple, would have attracted even more people to the Mac platform and would have turned the iBooks Store into the primary online choice of publication for all new books. Starting with full conformance with EPUB3 and pushing for a fast update of EPUB3 or release of EPUB4 including all new CSS cool kids was a much better, and much more secure way of doing things.

That's like having a new hyper-cool appliance with a US power socket and traveling to Europe without adapter, and no possibility to buy such an adapter there. It's still a hyper-cool appliance but it will remain in the bag.

Monday 10 October 2011

Two words

I could tell you that I would not be where I am today without my first Apple ][ and all the software and hardware hacks I did in it, the Macs of my university or the other Apple products. I could talk about design, quality and innovation. I could also discuss the dark sides of the individual. But I don't really care about all of that. For me, only one thing really matters : "Think different".

Thursday 6 October 2011

Pomme pomme pomme...

Tout a été dit dans le format R.I.P. mais là c'est le format "je crache" qui m'intéresse. Évidemment, les commentaires de slashdot et cette immense fosse à purin qu'est les commentaires et les journaux de linuxfr ont fait ce qu'ils savent faire le mieux, c'est-à-dire écrire des ordures.

Ma surprise est venue d'Authueil, que j'ai connu mieux informé et moins insultant, surtout en politique française. Après tout, Coluche avait raison, on est les meilleurs du monde en politique française. Par contre, sur Apple et Jobs, ça ne frise pas le nervous breakdown altermondialiste voire carrément coco, c'est carrément dedans...

"On célèbre le chef d'entreprise, le patron qui a fait de sa boite une machine à produire du fric comme on en a rarement vu" Ouais, le fric, c'est mal... On célèbre aussi le type qui a transformé ça en ça. Le type qui a mis la typographie dans nos machines. Le gars qui a fait lâcher le commentaire suivant à mon père à 82 ans qui avait touché son premier ordinateur Windows 3 ans avant et venait de passer à Mac "je comprends maintenant pourquoi ça plait tellement ; c'est simple, intuitif et beau". Tout est dit.

"Steve Jobs n'était pas réputé pour être un patron compréhensif, humain et paternaliste" Warf... Cette tirade ne mérite même pas commentaire.

"une hypercentralisation de la décision et un culte du secret digne de la Corée du Nord" La Corée du Nord, rien que ça... Marrant que "pour vivre heureux vivons cachés" soit accepté pour l'individu et pas pour une entreprise dont la moindre miette de stratégie est guettée et copiée par le monde entier.

"il a tellement lessivé le cerveau de ses salariés qu'ils en redemandent" C'est très clair, Authueil ne connait aucun ingénieur chez Apple à Cupertino. Moi oui. Plein. Et j'affirme donc que son propos est juste ridicule. C'est à cause de cette seule phrase que j'écris le présent article. Quelle insulte lamentable et totalement déplacée à leur endroit...

"fait croire à des couillons mal dans leur peau qu'en achetant ses produits, ils font partie d'une élite" Mais oui, c'est le cas. Avant je travaillais sur des machines dont la finition était nettement inférieure aux attentes malgré leur prix équivalent à ceux d'Apple (je ne fais pas de la bureautique, j'achète du haut de gamme), un OS lent et merdouillant, des polices de caractères hideuses, des virus/rootkits/adware pénibles. Des machines qui ralentissaient mon efficacité d'ingénieur. Ce n'est plus le cas aujourd'hui. Quant au "mal dans leur peau", je ne sais pas ce que Authueil a mangé ce matin, mais son propos aurait tendance à me faire croire que celui qui dit celui qui est...

"j'ai beaucoup de mal à encenser les escrocs" Décédé, il va avoir du mal à porter plainte pour diffamation... Parce que c'est exactement de la diffamation.

"Mais de là à dire qu'il a tout fait, il ne faut pas pousser non plus." Mais personne ne dit qu'il a inventé l'ordinateur personnel, le lecteur MP3, la souris, l'interface graphique, la poubelle de l'OS, PostScript, l'écran tactile ou le dessin animé par ordinateur. Il a juste su identifier ces technologies avant la plupart des autres et les utiliser ou faire utiliser au mieux pour faire avancer la technologie et les usages. Il avait une vraie vision de ce qu'il voulait obtenir et c'est ça la rareté de la chose. Des Jobs ou des Gerstner sont des gens rares ; les autres sont des minus habens à côté.

"Je ne suis pas certain que son apport personnel ait été si impressionnant que cela" C'est bien ce que je disais, vous ne connaissez rien à l'histoire de la technologie. On peut être blogueur sans être geek, merci d'en apporter la preuve si brillamment.

"Une fois avec un produit Apple, il faut acheter chez Apple, faire réparer chez Apple" Non, clairement. Mes accessoires ne sont pas Apple. Mes écrans non plus. Mes cables non plus. Mon routeur non plus. Je fais réparer chez Apple parce que Apple Care c'est bien, et à un prix raisonnable pour la qualité, l'efficacité et l'étendue de la couverture. Ceci dit, je connais des tas d'ateliers capables de réparer un iPhone ou un iPod - voire un Mac - dans le monde, et les pièces détachées sont disponibles sur eBay pour les geeks.

"Je considère même que le modèle économique d'Apple relève de la prédation des concurrents et du pressurage des consommateurs" C'est tellement plus nuancé que cela que votre propos est un détournement de la vérité. L'AppStore a permis à des milliers de développeurs de passer de l'incapacité à faire connaître leur produit à la possibilité de vivre de leur art. Certes, Apple se sucre au passage et se sucre bien mais après tout c'est de bonne guerre. Certes, cela a tendance à faire baisser le prix du logiciel un peu trop ; mais notre modèle est peut-être aussi intenable à terme que celui des majors du disque. Quand à iTunes, il a mis une grande danse dans le modèle figé et passéiste des majors du disque et du cinéma, ce qui est clairement un bien vu leurs méthodes. Personnellement, acheter LE morceau qui me plait à 0.99€ au lieu d'un CD contenant ce morceau et 11 morceaux de merde comblant les 650 megas restant du disque à 20€, ça me va très bien. Basiquement. Oublier cela, c'est oublier beaucoup, beaucoup trop de choses pour présenter un tableau honnête de la situation.

"Célébrer ce modèle comme une grande réussite est très révélateur des valeurs que l'on célèbre" Personnellement je célèbre des matériels efficaces, bien, innovants, solides, beaux et poussant toujours aux limites de l'état de l'art. Je célèbre l'intuitif, l'accessible (je parle d'accessibilité pour les handicapés), le design des logiciels et des matériels. Je célèbre le seul produit technologique que j'ai jamais acheté en quarante ans et qui n'avait absolument pas besoin d'un manuel d'utilisation, il n'en avait d'ailleurs pas.

"Il n'y a juste que les gogos qui vont déposer des fleurs devant des magasins" C'est le seul point sur lequel je suis d'accord. Mais rien de nouveau sous le soleil. Des andouilles se sont suicidées sur la tombe d'Elvis. Cela n'autorise pas à déclarer que tous les acheteurs de produits Apple sont des couillons faibles mal dans leur peau et victimes d'un grand méchant loup. Les acheteurs d'Apple gogotent parce qu'ils aiment les produits que Steve Jobs a lancé. Ils ne sont pas sûrs qu'Apple sans lui soit capable de rester aussi innovante et visionnaire.

Voilà. Vous pouvez reprendre une activité normale et laissez Authueil se reposer, s'il-vous-plait.

Tuesday 13 September 2011

Une appli de l'AppStore d'Apple qui fait führer...

Quand je pense que l'AppStore d'Apple a censuré dans le passé un dictionnaire parce qu'il contenait "Kama-Sutra" et laisse aujourd'hui passer cette saloperie, j'en reste pantois. Mais que se passe-t-il chez Apple ?!?

Mise à jour:

@Maitre_Eolas Hey, Apple, tu risques 3 ans de prison ( http://bit.ly/rrHTbS ) pour avoir validé cette appli. Bisous. http://t.co/kaPOciI

- page 1 of 5