转载《读《思旧赋》》

《思旧赋》是魏晋时期向秀所作，大家可以轻易在网上找到，就不抄了。大概是向秀到京城去做官的途中，专门到曾经和好友嵇康一起喝酒吹牛的地方去看了一看。嵇康在14年前已经被杀，而眼前的景色依旧，听到一个人在吹笛，仿佛是嵇康的琴声，不由思绪万千，就此写下这一名篇。

Writing Pix4D compatible tags into pictures

If you’re looking for a method to write camera pose information into JPG files so that it can be read by Pix4D, as shown in the below screenshot:

Here is how to do it with exiftool:

• First, you need a configuration file for exiftool. In the configuration file, you need the following content:
%Image::ExifTool::UserDefined = (
'Image::ExifTool::XMP::Main' => {
Camera=> {
SubDirectory => {
TagTable => 'Image::ExifTool::UserDefined::Camera',
},
},
},
);
%Image::ExifTool::UserDefined::Camera = (
GROUPS => { 0 => 'XMP', 1 => 'XMP-Camera', 2 => 'Other' },
NAMESPACE => { 'Camera' => 'http://ns.flyingfishtechs.com/Camera/1.0/' },
WRITABLE => 'string',
GPSXYAccuracy=> {},
GPSZAccuracy => {},
Pitch => {},
Roll=>{},
Yaw => {},
);
• Then you can using exiftool to add the information to any JPG file.
exiftool.exe -config config.min.cfg -Pitch="1.02" -Roll="2.03" -Pitch="3.04" original.jpg

If the command outputs: 1 image files updated. Then you’re done. Now the JPG file has the camera pose information encoded in. If you have more than 3 such pictures (only because Pix4D needs at least 3 pictures to work), you can see that Pix4D can get the data from the pictures.

The final twist, Pix4D displays Omega, Phi and Kappa instead of Pitch, Roll and Yaw. Basically, Pitch, Roll and Yaw are angles relative to the horizontal plane – orthogonal to the gravity while Omega, Phi and Kappa are related to earth. That means, with a fixed set of Pitch, Roll and Yaw, if you change your GPS location, you’ll get a different set Omega, Phi and Kappa. Personally I don’t see why should Pix4D use earth as the frame of reference instead of horizontal plane. Maybe just to hide the raw information in the pictures. Anyway, know you know how.

To My Dear Fellow Misfits

So I know TED is about a lot of things that are big, but I want to talk to you about something very small. So small, it’s a single word. The word is “misfit.” It’s one of my favorite words, because it’s so literal. I mean, it’s a person who sort of missed fitting in. Or a person who fits in badly. Or this: “a person who is poorly adapted to new situations and environments.” I’m a card-carrying misfit. And I’m here for the other misfits in the room, because I’m never the only one. I’m going to tell you a misfit story.

0:54 Somewhere in my early 30s, the dream of becoming a writer came right to my doorstep. Actually, it came to my mailbox in the form of a letter that said I’d won a giant literary prize for a short story I had written. The short story was about my life as a competitive swimmer and about my crappy home life, and a little bit about how grief and loss can make you insane. The prize was a trip to New York City to meet big-time editors and agents and other authors. So kind of it was the wannabe writer’s dream, right? You know what I did the day the letter came to my house? Because I’m me, I put the letter on my kitchen table, I poured myself a giant glass of vodka with ice and lime, and I sat there in my underwear for an entire day, just staring at the letter. I was thinking about all the ways I’d already screwed my life up. Who the hell was I to go to New York City and pretend to be a writer? Who was I?

2:06 I’ll tell you. I was a misfit. Like legions of other children, I came from an abusive household that I narrowly escaped with my life. I already had two epically failed marriages underneath my belt. I’d flunked out of college not once but twice and maybe even a third time that I’m not going to tell you about.

2:29 (Laughter)

2:31 And I’d done an episode of rehab for drug use. And I’d had two lovely staycations in jail. So I’m on the right stage.

2:44 (Laughter)

2:47 But the real reason, I think, I was a misfit, is that my daughter died the day she was born, and I hadn’t figured out how to live with that story yet. After my daughter died I also spent a long time homeless, living under an overpass in a kind of profound state of zombie grief and loss that some of us encounter along the way. Maybe all of us, if you live long enough. You know, homeless people are some of our most heroic misfits, because they start out as us. So you see, I’d missed fitting in to just about every category out there: daughter, wife, mother, scholar. And the dream of being a writer was really kind of like a small, sad stone in my throat.

3:45 It was pretty much in spite of myself that I got on that plane and flew to New York City, where the writers are. Fellow misfits, I can almost see your heads glowing. I can pick you out of a room. At first, you would’ve loved it. You got to choose the three famous writers you wanted to meet, and these guys went and found them for you. You got set up at the Gramercy Park Hotel, where you got to drink Scotch late in the night with cool, smart, swank people. And you got to pretend you were cool and smart and swank, too. And you got to meet a bunch of editors and authors and agents at very, very fancy lunches and dinners. Ask me how fancy.

4:30 Audience: How fancy?

4:33 Lidia Yuknavitch: I’m making a confession: I stole three linen napkins —

4:37 (Laughter)

（笑声）

4:39 from three different restaurants. And I shoved a menu down my pants.

4:43 (Laughter)

（笑声）

4:45 I just wanted some keepsakes so that when I got home, I could believe it had really happened to me. You know?

4:54 The three writers I wanted to meet were Carole Maso, Lynne Tillman and Peggy Phelan. These were not famous, best-selling authors, but to me, they were women-writer titans. Carole Maso wrote the book that later became my art bible. Lynne Tillman gave me permission to believe that there was a chance my stories could be part of the world. And Peggy Phelan reminded me that maybe my brains could be more important than my boobs. They weren’t mainstream women writers, but they were cutting a path through the mainstream with their body stories, I like to think, kind of the way water cut the Grand Canyon.

5:40 It nearly killed me with joy to hang out with these three over-50-year-old women writers. And the reason it nearly killed me with joy is that I’d never known a joy like that. I’d never been in a room like that. My mother never went to college. And my creative career to that point was a sort of small, sad, stillborn thing. So kind of in those first nights in New York I wanted to die there. I was just like, “Kill me now. I’m good. This is beautiful.” Some of you in the room will understand what happened next.

6:15 First, they took me to the offices of Farrar, Straus and Giroux. Farrar, Straus and Giroux was like my mega-dream press. I mean, T.S. Eliot and Flannery O’Connor were published there. The main editor guy sat me down and talked to me for a long time, trying to convince me I had a book in me about my life as a swimmer. You know, like a memoir. The whole time he was talking to me, I sat there smiling and nodding like a numb idiot, with my arms crossed over my chest, while nothing, nothing, nothing came out of my throat. So in the end, he patted me on the shoulder like a swim coach might. And he wished me luck and he gave me some free books and he showed me out the door.

7:08 Next, they took me to the offices of W.W. Norton, where I was pretty sure I’d be escorted from the building just for wearing Doc Martens. But that didn’t happen. Being at the Norton offices felt like reaching up into the night sky and touching the moon while the stars stitched your name across the cosmos. I mean, that’s how big a deal it was to me. You get it? Their lead editor, Carol Houck Smith, leaned over right in my face with these beady, bright, fierce eyes and said, “Well, send me something then, immediately!” See, now most people, especially TED people, would have run to the mailbox, right? It took me over a decade to even imagine putting something in an envelope and licking a stamp.

7:59 On the last night, I gave a big reading at the National Poetry Club. And at the end of the reading, Katharine Kidde of Kidde, Hoyt & Picard Literary Agency, walked straight up to me and shook my hand and offered me representation, like, on the spot. I stood there and I kind of went deaf. Has this ever happened to you? And I almost started crying because all the people in the room were dressed so beautifully, and all that came out of my mouth was: “I don’t know. I have to think about it.” And she said, “OK, then,” and walked away. All those open hands out to me, that small, sad stone in my throat …

8:50 You see, I’m trying to tell you something about people like me. Misfit people — we don’t always know how to hope or say yes or choose the big thing, even when it’s right in front of us. It’s a shame we carry. It’s the shame of wanting something good. It’s the shame of feeling something good. It’s the shame of not really believing we deserve to be in the room with the people we admire.

9:15 If I could, I’d go back and I’d coach myself. I’d be exactly like those over-50-year-old women who helped me. I’d teach myself how to want things, how to stand up, how to ask for them. I’d say, “You! Yeah, you! You belong in the room, too.” The radiance falls on all of us, and we are nothing without each other. Instead, I flew back to Oregon, and as I watched the evergreens and rain come back into view, I just drank many tiny bottles of airplane “feel sorry for yourself.” I thought about how, if I was a writer, I was some kind of misfit writer. What I’m saying is, I flew back to Oregon without a book deal, without an agent, and with only a headful and heart-ful of memories of having sat so near the beautiful writers. Memory was the only prize I allowed myself.

10:16 And yet, at home in the dark, back in my underwear, I could still hear their voices. They said, “Don’t listen to anyone who tries to get you to shut up or change your story.” They said, “Give voice to the story only you know how to tell.” They said, “Sometimes telling the story is the thing that saves your life.”

10:42 Now I am, as you can see, the woman over 50. And I’m a writer. And I’m a mother. And I became a teacher. Guess who my favorite students are. Although it didn’t happen the day that dream letter came through my mailbox, I did write a memoir, called “The Chronology of Water.” In it are the stories of how many times I’ve had to reinvent a self from the ruins of my choices, the stories of how my seeming failures were really just weird-ass portals to something beautiful. All I had to do was give voice to the story.

11:26 There’s a myth in most cultures about following your dreams. It’s called the hero’s journey. But I prefer a different myth, that’s slightly to the side of that or underneath it. It’s called the misfit’s myth. And it goes like this: even at the moment of your failure, right then, you are beautiful. You don’t know it yet, but you have the ability to reinvent yourself endlessly. That’s your beauty.

11:58 You can be a drunk, you can be a survivor of abuse, you can be an ex-con, you can be a homeless person, you can lose all your money or your job or your husband or your wife, or the worst thing of all, a child. You can even lose your marbles. You can be standing dead center in the middle of your failure and still, I’m only here to tell you, you are so beautiful. Your story deserves to be heard, because you, you rare and phenomenal misfit, you new species, are the only one in the room who can tell the story the way only you would. And I’d be listening.

12:43 Thank you.

12:45 (Applause)

AC-3 support gets back again in VLC for iOS

A year ago, VLC on iOS was forced to remove its support for AC3 codec. I found almost all my videos on iPad were muted.

Since then, I haven’t bothered to check other options. I don’t mind paying a few dollars but I’ve been using VLC since years on all of my computers and mobile phones. There’s simply no other comparable alternatives that works equally well on Windows, Linux, OS X as well as iOS.

Today, I opened VLC on my iPhone again and noticed that I can play my videos with sound again! I checked the official website for sure and got this:

The link on iTunes also confirmed this. However, nowhere did I find details how did the developers solved the patent issue. Let’s hope it’s fixed for good.

中国古诗文

• 在内容上，以原文为本。不要译文，基本没有注释。
• 在布局上，以内容为主，去除一切干扰因素。要求干净，大方。
• 各古诗文名家作者就是blog作者，既直观有趣，又方便组织。

1. 开发批量插入作者的功能——已完成；
2. 开发批量插入帖子的功能——已完成；
3. 建立分类目录：需要专业人员帮助。
4. 开发新的数据结构以存储传统计时方式：朝代，年号，年号纪年，公元纪年，季节，时令，时辰。
5. 扩展帖子属性，其中帖子发表时间采用新的数据结构。
6. 扩展作者属性，其中作者生卒时间采用新的数据结构。
7. 修改界面，使帖子能够显示传统计时（年号，天干地支）。

中国地图坐标(GCJ-02)偏移算法破解小史

2010年1月，网友wuyongzheng发现：

I accidentally found the Chinese version of Google Map ditu.google.com to be able to correlate satellite image with map, and it gives the amount of deviation for any location in China. This URL queries the deviation of 34.29273N,108.94695E (Xi’an): http://ditu.google.com/maps/vp?spn=0.001,0.001&t=h&z=18&vp=\$34.29273,108.94695 (seems it’ doesn’t work now)

2013年5月，Maxime Guilbot根据这个建议得到4-5米精度的逼近：

https://github.com/maxime/ChinaMapDeviation

2013年10月，wuyongzheng自己进行了回归，得到如下结果：

http://wuyongzheng.github.io/china-map-deviation/paper.html

Maxime Guibot和wuyongzheng的回归结果基本代表了在黑暗中摸索的最佳结果，因此得到了广泛的注意和应用。

2013年2月，这段代码被网友coolypf注意到，整理后用到了他自己的项目中：

https://on4wp7.codeplex.com/SourceControl/changeset/view/21483#353936

        const double pi = 3.14159265358979324;

//
// Krasovsky 1940
//
// a = 6378245.0, 1/f = 298.3
// b = a * (1 - f)
// ee = (a^2 - b^2) / a^2;
const double a = 6378245.0;
const double ee = 0.00669342162296594323;

//
// World Geodetic System ==> Mars Geodetic System
public static void transform(double wgLat, double wgLon, out double mgLat, out double mgLon)
{
if (outOfChina(wgLat, wgLon))
{
mgLat = wgLat;
mgLon = wgLon;
return;
}
double dLat = transformLat(wgLon - 105.0, wgLat - 35.0);
double dLon = transformLon(wgLon - 105.0, wgLat - 35.0);
double radLat = wgLat / 180.0 * pi;
magic = 1 - ee * magic * magic;
double sqrtMagic = Math.Sqrt(magic);
dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
dLon = (dLon * 180.0) / (a / sqrtMagic * Math.Cos(radLat) * pi);
mgLat = wgLat + dLat;
mgLon = wgLon + dLon;
}

2013年3月，coolypf在自己的博客中介绍了这一段代码：

http://blog.csdn.net/coolypf/article/details/8686588

2014年9月，wuyongzheng注意到了coolypf的项目。至此，两条路径合流，坐标偏移问题基本得到了完美解决。

笔记

Between 2009 and 2012, the recurrent neural networks and deep feedforward neural networks developed in the research group of Jürgen Schmidhuber at the Swiss AI Lab IDSIA have won eight international competitions in pattern recognition and machine learning.[12][13] For example, the bi-directional and multi-dimensional long short term memory (LSTM)[14][15][16][17] of Alex Graves et al. won three competitions in connected handwriting recognition at the 2009 International Conference on Document Analysis and Recognition (ICDAR), without any prior knowledge about the three different languages to be learned.

http://en.wikipedia.org/wiki/Artificial_neural_network#Improvements_since_2006

心肺停止的紧急救治

Consider a case report in The Annals of Thoracic Surgery of a three-year-old girl who fell into an icy fishpond in a small Austrian town in the Alps. She was lost beneath the surface for thirty minutes before her parents found her on the pond bottom and pulled her up. Following instructions from an emergency physician on the phone, they began cardiopulmonary resuscitation. A rescue team arrived eight minutes later. The girl had a body temperature of sixty-six degrees, and no pulse. Her pupils were dilated and did not react to light, indicating that her brain was no longer working.

But the emergency technicians continued CPR anyway. A helicopter took her to a nearby hospital, where she was wheeled directly to an operating room. A surgical team put her on a heart-lung bypass machine. Between the transport time and the time it took to plug the inflow and outflow lines into the femoral vessels of her right leg, she had been lifeless for an hour and a half. By the two-hour mark, however, her body temperature had risen almost ten degrees, and her heart began to beat. It was her first organ to come back.

After six hours, her core temperature reached 98.6 degrees. The team tried to put her on a breathing machine, but the pond water had damaged her lungs too severely for oxygen to reach her blood. So they switched her to an artificial-lung system known as ECMO—extracorporeal membrane oxygenation. The surgeons opened her chest down the middle with a power saw and sewed lines to and from the ECMO unit into her aorta and her beating heart. The team moved the girl into intensive care, with her chest still open and covered with plastic foil. A day later, her lungs had recovered sufficiently for the team to switch her from ECMO to a mechanical ventilator and close her chest. Over the next two days, all her organs recovered except her brain. A CT scan showed global brain swelling, which is a sign of diffuse damage, but no actual dead zones. So the team drilled a hole into the girl’s skull, threaded in a probe to monitor her cerebral pressure, and kept that pressure tightly controlled by constantly adjusting her fluids and medications. For more than a week, she lay comatose. Then, slowly, she came back to life.

First, her pupils started to react to light. Next, she began to breathe on her own. And, one day, she simply awoke. Two weeks after her accident, she went home. Her right leg and left arm were partially paralyzed. Her speech was thick and slurry. But by age five, after extensive outpatient therapy, she had recovered her faculties completely. She was like any little girl again.

http://en.wikipedia.org/wiki/Anna_B%C3%A5genholm

• 坚持CPR非常重要
• 体温低，这使得各脏器，尤其是大脑不必消耗太多氧气，这样即使呼吸停止，脏器和大脑也不会被破坏；
• 救治过程首先上体外循环机，逐步升高体温（体温升高太快会破坏红细胞）。心脏恢复搏动则循环系统恢复；
• 然后上人工肺和呼吸机，确保氧能够进入循环系统；
• 心肺都恢复之后可以恢复其他脏器；
• 大脑没有因为缺氧而坏死，恢复的希望也很大，只是需要时间。

CAN dissector available in Wireshark

Just noticed that Wireshark has a CAN dissector, as well as a CAN bus captor, though the captor is only available in Linux.

Back in 2011, I was asked to come up with a parser for data captured on CAN network but never really finished it. Now I can forget about it.