Well, that's what you get for putting up a completely unprotected wiki that anyone can edit anonymously.
Installed a simple CAPTCHA plugin as an anti-spam measure, will see how that works.
Well, that's what you get for putting up a completely unprotected wiki that anyone can edit anonymously.
Installed a simple CAPTCHA plugin as an anti-spam measure, will see how that works.
Mozilla is working on a prototype for a next-generation web browser engine, and in order to make it easier to write complex, high-performance (but still maintainable and bug-free) software like that, they are working on a new programming language to go along with it.
A few decades down the road, it seems that the hope of hardware improvements making the performance costs of automatic memory management as offered by high-level languages like Java, C#, Perl, Python, Ruby, Javascript acceptable for everyone is not going to pan out. At the same time, having to manually manage your pointers in C or C++ remains a constant source of bugs and security problems. So what we get in Rust is "memory-management as a first-class language construct": You have to decide where and when you want to allocate memory for your objects, you have to work with pointers, and you have to understand how those pointers work. But the compiler understands them, too, and makes sure that you only handle them in safe ways.
I had a taste of this concept with Objective-C's Automatic Reference Counting, which follows a similar approach, but Rust is much more thorough. It is, after all, a whole new language designed for this, not something bolted on to an existing system.
The simplest way to allocate an object (a struct) is to allocate it on the stack.
let x = Point { x: 1, y: 1 };
If you assign this to something or pass it to a function, you would be making a copy of the whole thing every time.
let y = x; // makes a copy foo(y); // makes another copy
One way to get a cheaper way of passing the data around is to make a pointer.
let y = &x; // pointer into the stack foo(y); // pass the pointer around
This is called a borrowed pointer, and Rust imposes a number of limitations on what you can do with the pointer, and what you can do with the variable it points to. This makes sure that you won't get into a situation where pointers have become invalid.
Another way to pass data around is to put it into a box in heap memory. That obviously becomes necessary if you want that data to survive the current stack frame (i.e. function invocation). But it is also necessary if you want to create recursive data structures like trees, which, lacking a fixed size cannot be allocated on the stack.
There are two types of boxes, owned boxes and managed boxes. An owned box exists as long as its owner exists. Ownership can be transfered, but there can never be more than a single owner at the same time.
let x = ~Point { x: 1, y: 1 }; // owned box allocated on the heap
let y = x; // now y is the owner, and x cannot be used anymore
Managed boxes are also created on the heap, but they enjoy garbage collection and can have multiple owners. Rust's memory model is tightly integrated with its concurrency model, which is built on lightweight "tasks". Each task gets its own stack, and garbage collection also happens task-locally. As a result, managed boxes cannot be used to share data with other tasks (neither can borrowed pointers, communication always necessitates ownership transfer).
let x = @Point { x: 1, y: 1 }; // managed box allocated on the heap
let y = x; // now both x and y point to the same thing
Cissy returned from her business trip to Singapore with two white iPad mini, one for herself and one for her parents. In the process of helping them set it up, I noticed that they had a bit of a hard time making out the smaller on-screen elements. So we took a look at the built-in accessibility features. The two most promising options in the Vision department are "Zoom" and "Large Text". Large Text increases the font size, but it only works for text (and not for other elements like buttons), and only in applications that support this feature. Zoom on the other hand works everywhere: Double-tap with three figures to get a 200% magnification of anything. This is handy, but it requires some getting used to, because you cannot see the whole screen at once anymore and have to zoom in and out (or pan around) all the time.
But what works really well is running iPhone apps in "2x" mode.
iPad has a compatibility mode that allows it to run iPhone apps, either centered in their original size (i.e. taking up only about 20% of the screen), or blown up at 200% to fill most of the display. This feature almost certainly only exists to give iPad a head-start back in the day when there were no native apps for it, and has not received much attention from Apple ever since. For example, it looks more pixelated than it really has to. But on the other hand, whereas very few apps are designed with accessibility support in mind, a lot of energy goes into making apps work well on the iPhone, and most of those are quite usable if you just increase them in size, especially on the iPad mini (it does look unwieldy on the full-size iPad).
Of course, this only works for iPhone-only apps. Apps with iPad support will show the version optimised for the tablet (which may be sub-optimal if your vision is poor). So I think it would make for a good addition to the Accessibility settings to have an option to run apps in iPhone mode, essentially turning the iPad into a big iPod touch.
Speaking of Accessibility settings, a lot of people in China (maybe even the majority) have enabled AssistiveTouch on their phones. This gives you a software home button that you can dock to any side of the screen and tap to get a popup menu with common commands.
Patrick Rothfuss: The Name of the Wind
It was night again. The Waystone Inn lay in silence, and it was a silence of three parts.
The most obvious part was a hollow, echoing quiet, made by things that were lacking. If there had been a wind it would have sighed through the trees, set the inn's sign creaking on its hooks, and brushed the silence down the road like trailing autumn leaves. If there had been a crowd, even a handful of men inside the inn, they would have filled the silence with conversation and laughter, the clatter and clamor one expects from a drinking house during the dark hours of night. If there had been music ... but no, of course there was no music. In fact there were none of these things, and so the silence remained.
Inside the Waystone Inn a pair of men huddled at one corner of the bar. They drank with quiet determination, avoiding serious discussions of troubling news. In doing this they added a small, sullen silence to the larger, hollow one. It made an alloy of sorts, a counterpoint.
The third silence was not an easy thing to notice.
The Chronicler has heard rumours that the fabled hero Kvothe is hiding from the world in a small and remote countryside inn. And indeed, when he is attacked by mysterious spider-demons on his way there, it turns out to be the innkeeper who carries him off to safety. Kvothe agrees to share his story with the Chronicler, an undertaking expected to take three days, Day One of which comprises this book, in which Kvothe details his childhood as a travelling performer, his days as a street orphan in the big city, and his youth at the University.
As it turns out, Kvothe is quite the (super-) hero: he can fight and do magic, he can sing, dance and play music, he speaks, reads and writes a great many languages, he has a deep understanding of mathematics, chemistry and history, he is famous and infamous throughout the land, he has killed kings and dragons, he plays a mean hand at poker, and I would not be surprised if he can fly, too. But for some reason (that we don't get to hear about on Day One) he has had enough of a hero's life, or even life itself.
The third silence was the patient, cut-flower sound of a man who is waiting to die.
George R. R. Martin: A Feast for Crows
"Dragons," said Mollander. He snatched a withered apple off the ground and tossed it hand to hand.
"Throw the apple," urged Alleras the Sphinx. He slipped an arrow from his quiver and nocked it to his bowstring.
"I should like to see a dragon." Roone was the youngest of them, a chunky boy still two years shy of manhood. "I should like that very much."
And I should like to sleep with Rosey's arms around me, Pate thought. He shifted restlessly on the bench. By the morrow the girl could well be his. I will take her far from Oldtown, across the narrow sea to one of the Free Cities. There were no maesters there, no one to accuse him. He could hear Emma's laughter coming through a shuttered window overhead, mingled with the deeper voice of the man she was entertaining. She was the oldest of the serving wenches at the Quill and Tankard, forty if she was a day, but still pretty in a fleshy sort of way. Rosey was her daughter, fifteen and freshly flowered. Emma had decreed that Rosey's maidenhead would cost a golden dragon. Pate had saved nine silver stags and a pot of copper stars and pennies, for all the good that would do him. He would have stood a better chance of hatching a real dragon than saving up enough coin to make a golden one.
"You were born too late for dragons, lad," Armen the Acolyte told Roone. Armen wore a leather thong about his neck, strung with links of pewter, tin, lead, and copper, and like most acolytes he seemed to believe that novices had turnips growing from their shoulders in place of heads. "The last one perished during the reign of King Aegon the Third."
"The last dragon in Westeros," insisted Mollander.
More about live (and death) in Westeros from the perspectives of Cersei Lannister, Jaime Lannister, Brienne of Tarth, Sansa Stark, Arya Stark, Samwell Tarly, Aeron Greyjoy, Asha Greyjoy, Victarion Greyjoy, Areo Hotah, Arys Oakheart, and Arianne Martell. But nothing at all about Daenerys Targaryen, Tyrion Lannister, Jon Snow, Bran Stark, Rickon Stark, Stannis Baratheon, Davos Seaworth, Theon Greyjoy, Lady Melisandre, Barristan Selmy, or Jorah Mormont. In a word, a Song devoid of Ice or Fire.
The book has a prologue, in which the author explains how
five years into writing the book it dawned on him that he would have to split it
into two parts, but he would not do it chronologically like everyone else does, but instead have
Feast of Crows
and Dance with Dragons
(which would still take another
five years to complete) cover the same timespan, from the viewpoints
of different characters.
This bring me to the end of my
four-book Kindle set. I could get Dance with Dragons
now, to find out
what happened with Daenerys, Tyrion, Jon and friends, but then I'd just need to
wait again for the last two volumes to get written. Another option I am toying
with is to start Wheel of Time all over
again from the beginning, now that it is nearing completion.
Tor Books announced a DRM-free ebook store last year, and that is something I definitely
want to support, but the project is being delayed without explanation.
So I'll embark on a new adventure now with Patrick Rothfuss and his Name of the Wind
,
of which the Kindle store for some reason offers two
separate editions,
the pricing of which is in constant flux (I got the Gollancz one for 2.99 yesterday).
Yesterday was Barcamp day. Very nice venue this time, the campus of some MBA school right at People's Square. I attended the sessions listed below, and met a former co-worker from Tokyo (who also lives in Shanghai now).
After almost ten years of hosting the T-Files on my own server (initially a real, later a virtual one), I have simultaneously grown tired of the hassle involved in maintaining it (or rather, the fear of the consequences of not properly maintaining it), and gotten ready to embrace the world of cloud computing, where you just don't need to operate your own infrastructure anymore to host a simple web site.
Basically, the only thing you still need to maintain control of is your domain registration, and herein lies the rub: Thilosophy came with my hosting plan, and now I am having trouble divorcing the two. To make the transition easier for everyone, I am going to move the T-Files to another plan (for static web hosting) offered by the same company. I would have thought that should have made for smooth sailing, and only to this end did I keep the domain linked to the provider, but two weeks in and a couple of email exchanges with customer support later the domain is now in a state of limbo. As I am writing this, it can no longer be controlled from my old server, but it still points there. At one point in the next few days, I believe it will stop doing that, probably breaking the site for a while. I should be able to set it up again for the new plan after that. It already shows up in the control panel there, but it claims to be in migration and cannot be configured yet.
I am also using this transition to change the way the blog is rendered. It has always been powered by blosxom, creating static HTML files from a directory of text files with the articles. None of this is going to change. But thus far, those master files have been hosted on my server. Last week, I switched over to keeping the master data on my laptop (where it is being properly backed up for one thing, and accessible offline for another), pushing updates via rsync. This essentially makes the actual hosting system a disposable piece of commodity infrastructure, which is exactly how it should be.
Looking forward to seeing you at the other side.
Kai playing in foreign Galaxies
Kai has perfected a passive-aggressive move on the subway: If he sees someone playing with their mobile phones, he stands right next to them, and leans over very close to take a good look at their screens. Often they hand it over to him. Here's a picture of him setting new highscores in Angry Birds on someone's Galaxy-class Samsung. He even dressed up for the occasion.
Someone dumped six thousand dead pigs in Shanghai's Huangpu river.
Apple's evolution is driven by disrupting industries with the introduction of revolutionary products, and then either letting them languish long enough to lose their lead over the competition, as happened with the PC industry with the Macintosh in the pre-Steve-Jobs era, or iteratively refining them to keep the competition at bay long enough to leverage their dominant position into disrupting the next industry, as happened in the Steve Jobs era with the music industry (iTunes/iPod), the phone handset business (iPhone) and the entry-level consumer PC market (iPad), and is hopefully still happening under Tim Cook.
This means that the interesting thing to watch are not the yearly upgrades to iPhone or iPad, or how they compare with the competition. These products are done. It does not matter much that they lose market share or technological leadership. Both are bound to happen as revolutionary products turn into mature or even commodity products. The only thing an Apple aficionado should concern himself with are indications that the company is already preparing to take on the next big thing.
You read a lot about that next thing being wearable computing or the TV business, both attractive candidates, but if I had three wishes I'd also like Apple to turn their attention to payment processing, communication services, and a comprehensive WiFi network infrastructure. All three markets suffer from huge inefficiencies, are fragmented into local fiefdoms, and could stand some user experience improvements. And in all three, with its huge base of paying customers and installed devices all over the world Apple is in a good position to muscle its way in. I do appreciate, though, that those are services, as opposed to software or hardware, an area were Apple has not shown much competence in the past (and present).
Communication services are a bit tricky, because Apple currently
has to work hand-in-hand with the companies it would be disrupting
in order to keep selling iPhones. But I think they should
slowly roll out a few things that they must already have prepared
and are just holding back in order not to damage these partnerships.
So a full-fledged VoiceTime
to go along with FaceTime to replace
phone calls is probably not in the cards for now, but since we already
have iMessage (which must have been hard to swallow for companies selling overpriced
SMS plans), and it already has a somewhat hidden feature to send
voice memos, why not make that more visible? Then my wife and her
friend did not have to use a third-party chat app to let our four-year
olds exchange recorded messages.
Remember Steve Jobs' promise
that FaceTime would be an open standard? Why not partner up at least
with Microsoft to allow calls between FaceTime and Skype? Then I could
video-chat with my parents from my iPod to their TV (which has Skype built-in).
Mountain Lion USB trouble ate my homework
So ever since upgrading from Snow Leopard to Mountain Lion, I have some trouble with USB. A mouse that I was using does not work anymore. No big deal, cheap Chinese USB stuff is cheap. More annoyingly, sometimes, a key on the MacBook Pro internal keyboard gets stuck for a while, typing away at quite a high rate until I find a way to stop it (usually by clicking or typing something else). Yesterday, it was backspace. Ate half my sentence before I switched away to another app. No big deal, I have undo. Unfortunately that app was my mail client. Deleted a few days worth of email, including the map to my meeting appointment today. No undo here.
After three and a half years of freelancing (mostly for my former employer and for other people I have met in Japan, with a dash of projects from sites like Elance throws into the mix), I joined a local startup here in Shanghai this month. The plan was to ease into it with half-time work, but this is not how startups work, so I'll be doing this pretty much exclusively from now on.
We provide software-as-a-service for the Chinese transportation market, hoping to move everyone from unconnected proprietary transport management systems, manual order tracking in spreadsheets and information exchange by phone, fax and email to a common platform for the core transport process.
My last involvement with logistics have been lectures and seminars about operations research (route optimisation, warehouse allocation and such) at university. That was more than ten years ago, and also firmly oriented in the mathematical area as opposed to the business end. But the two founders are transportation industry veterans, so they have this covered and I can be mainly concerned with the IT part of this endeavour.
My first big challenge is to get a grip on how to run web services in China. Since all our clients are in China, and we also don't want to live at the mercy of the Great Firewall, we'll be operating from within the country. This means that the world of cloud computing as provided by Amazon and friends is not an option. Unfortunately, what little expertise I have, what I can read about on English-language discussion forums, and what my foreign friends in the field know about, is mostly limited to exactly that. I am sure there is a whole world of services and knowledge about them available locally, but tapping into those without a proper command of the language is difficult. I have started to reach out to some people and will document my findings on yet another wiki I was egged on to start.
German Democratic Game of Thrones
If the Song of Ice and Fire was set in communist East Germany, I think Aegon Grenth and Errik Honagaryen would make good character names.
Enjoying the Australian tradition of barbecue, biting down on a hard piece of French bread while distracted by an incoming mosquito. Terrible crunching sound, obviously not just from the bread. No pain, but tooth filling (right upper jaw, second to last in the back) appears dislodged. Dentist takes a look and immediately comes to a different conclusion: Tooth itself fractured. Takes a second look and an x-ray, declares it tricky, probably not salvageable. Calls in his colleague, the extraction specialist, who agrees and schedules a session later the same day. Plans to remove the loose piece and take a look at the remains, extracting those as well unless it turns out to be too tricky for a single session the day before an intercontinental flight. Discovers the cause of the whole incident in the process: External resorption had made the tooth brittle, it would have had to go sooner or later anyway. Good news is that the problem appears to be contained to just the one. Decides that removing the remaining parts (including all three roots) is beyond the powers of a regular dentist and requires a dental surgeon. Patches things up to buy me time to find one in Shanghai within a couple of weeks. Also gives me a brochure about titanium implants as tooth replacements. Contains pictures of happy smiling patients, all with heads of completely white hair. Don't want to be grouped with that demographic just yet.
Terra Australis Nondum Cognita
We are leaving for Australia tonight, for a change of air (quite literally, actually, I won't bring my mask) over Chinese New Year. None of us has ever been there. Sydney and Adelaide. Two weeks.
We are a bit worried about Kai, who has been a little sick these last three days. Could not go to the kindergarten (where apparently right now quite a few kids are ill), fever at night, stuffy nose, pink eyes. Not sick enough to cancel the flight, but probably also not healthy enough to properly enjoy it.
The Pacific Journal of Adam Ewing
Thursday, 7th November
Beyond the Indian hamlet, upon a forlorn strand, I happened on a trail of recent footprints. Through rotting kelp, sea cocoa-nuts & bamboo, the tracks led me to their maker, a White man, his trowzers & Pea-jacket rolled up, sporting a kempt beard & an outsized Beaver, shoveling & sifting the cindery sand with a teaspoon so intently that he noticed me only after I had hailed him from ten yards away. Thus it was, I made the acquaintance of Dr. Henry Goose, surgeon to the London nobility. His nationality was no surprise. If there be any eyrie so desolate, or isle so remote, that one may there resort unchallenged by an Englishman, ’tis not down on any map I ever saw.
Had the doctor misplaced anything on that dismal shore? Could I render assistance? Dr. Goose shook his head, knotted loose his ’kerchief & displayed its contents with clear pride. “Teeth, sir, are the enameled grails of the quest in hand. In days gone by this Arcadian strand was a cannibals’ banqueting hall, yes, where the strong engorged themselves on the weak. The teeth, they spat out, as you or I would expel cherry stones. But these base molars, sir, shall be transmuted to gold & how? An artisan of Piccadilly who fashions denture sets for the nobility pays handsomely for human gnashers. Do you know the price a quarter pound will earn, sir?”
I confessed I did not.
Letters from Zedelghem
Château Zedelghem,
Sixsmith,
Neerbeke,
West Vlaanderen.
29th - vi - 1931.
Dreamt I stood in a china shop so crowded from floor to far-off ceiling with shelves of procelain antiquities etc. that moving a muscle would cause several to fall and smash to bits. Exactly what happened, but instead of a crashing noise, an august chord rang out, half-cello, half-celeste, D-major(?), held for four beats. My wrist knocked a Ming vase affair off its pedestal -- E-flat, whole string section, glorious, transcendent, angels wept. Deliberately now, smashed a figurine of an ox for the next note, then a milkmaid, then Saturday's Child -- orgy of shrapnel filled the air, divine harmonies my head. Ah, such music! Glimpsed my father totting up the smashed items' value, nib flashing, but had to keep the music coming. Knew I'd become the greatest composer of the century if I could only make this music mine. A monstrous Laughing Cavalier flung against the wall set off a thumping battery of percussion.
Half-Lives: The First Luisa Rey Mystery
Rufus Sixsmith leans over the balcony and estimates his body's velocity when it hits the sidewalk and lays his dilemmas to rest. A telephone rings in the unlit room. Sixsmith dares not answer. Disco music booms from the next apartment, where a party is in full swing, and Sixsmith feels older than his sixty-six years. Smog obscures the stars, but north and south along the coastal strip, Buenas Yerbas's billion lights simmer. West, the Pacific eternity. East, our denuded, heroic, pernicious, enshrined, thirsty, berserking American continent.
A young woman emerges from the next-door party and leans over the neighbouring balcony. Her hair is shorn, her violet dress is elegant, but she looks incurably sad and alone. Propose a suicide pact, why don't you? Sixsmith isn't serious, and he isn't going to jump either, not if an ember of humour still glows. Besides, a quiet accident is precisely what Grimaldi, Napier and those sharp-suited hoodlums are praying for. An ambulance siren slices through the traffic's incessant rumble. Sixsmith shuffles inside, where the telephone abruptly dies.
The Ghastly Ordeal of Timothy Cavendish
One bright dusk, four, five, no, my God, six summers ago, I strolled along a Greenwich avenue of mature chestnuts and mock-oranges in a state of grace. Those Regency residences number among London's costlier properties, but should you ever inherit one, dear reader, sell it, don't live in it. Houses like these secrete some dark sorcery that transforms their owners into fruitcakes. One such victim, an ex-chief of Rhodesian police, had, on the evening in question, written me a cheque as rotund as himself to edit and print his autobiography. My state of grace was thanks in part to this cheque, and in part to a 1983 Chablis from the Duruzoi vineyard, a magic potion that dissolves our myriad tragedies into mere misunderstandings.
A trio of teenettes, dressed like Prostitute Barbie, approached, drift-netting the width of the pavement. I stepped into the road to avoid collision. But as we drew level they tore wrappers off their lurid ice-lollies and dropped them. My sense of well-being was utterly V-2'd. I mean, we were level with a bin! Tim Cavendish the Disgusted Citizen exclaimed to the offenders: "You know, you should pick those up."
An Orison of Sonmi~451
Historians still unborn will appreciate your cooperation in the future, Sonmi~451. We archivists thank you in the present. Our gratitude may not mean much, but I'll endeavour to grant any last request you may have, if it lies within my ministry's influence. Now, this silver egg-shaped device is called an orison. It records both an image of your face and your words. Once we're finished, the orison will be archived at the Ministry of Testaments. This isn't an interrogation, remember, or a trial. Your version of the truth is what matters.
No other version of the truth has ever mattered to me.
Let's begin. Usually, I start by asking interviewees to recall their very earliest memories. You look uncertain.
I have no earliest memories, Archivist. Every day of my life in Papa Song's was as uniform as the fries we vended.
Sloosha's Crossin' an' Ev'rythin' After
Old Georgie's path an' mine crossed more times'n I'm comfy mem'ryin', an' after I'm died, no sayin' what that fangy devil won't try an' do to me ... so gimme some mutton an' I'll tell you 'bout our first meetin'. A fat joocesome slice, nay, none o'your burnt wafery off'rin's ...
Adam, my bro, an' Pa'n'me was trekkin' back from Honokaa Market on miry roads with a busted cart-axle in draggly clothesies. Evenin' catched us up early so we tented on the southly bank o' Sloosha's Crossin', 'cos Waipio river was furyin' with days o' hard rain an' swollen by a spring tide. Sloosha's was friendsome ground tho' marshy, no'un lived in the Waipio Valley 'cept for a mil'yun birds, that's why we din't camo our tent or pull-cart or nothin'. Pa sent me huntin' for tinder'n'firewood while he'n'Adam tented up.
Now, I'd got diresome hole-spew that day 'cos I'd ate a gammy dog-leg in Honokaa, an' I was squattin' in a thicket o'ironwood trees upgulch when sudd'nwise eyes on me, I felt 'em. "Who's there?" I called, an' the mufflin' ferny swallowed my voice.
Oh, a darky spot you're in, boy, murmured the mufflin' ferny. "Name y'self!" shouted I, tho' not so loud. "I got my blade, I have!"
Right 'bove my head some'un whisped, Name y'self, boy, is it Zachry the Brave or Zachry the Cowardy? Up I looked an' sure 'nuff there was Old Georgie crossleggin' on a rottin' ironwood tree, a slywise grinnin' in his hungry eyes.
Six stories nested into each-other like Russian dolls. Adam Ewing's Pacific journal from the mid-1800's is found by a young British composer on a trip to Belgium in 1931, who writes letters about it to his lover, who by 1975 has become a nuclear physicist and tries to expose a possible disaster to a journalist, whose adventures end up in the form of a novel on the desk of a present-day London publisher, whose ghastly ordeal at a nursing home in Scotland is later turned into a movie that gets locked away in the archives of a dystopian future Korea, only to be spotted by a rebellious cloned waitress, whose pre-execution interview recording is finally found by a goat herder in post-Apocalyptic Hawaii.