Meet us every second Tuesday of the month!
Text Size
   

Great to meet you in GNOME.Asia 2013 in Seoul

I might be the latest one to write report after attend the GNOME.Asia, but that does not mean I do not taken it sincerely. To attend GNOME.Asia always give me opportunity to meet many GNOMERS and participants and have a very wonderful experience. My buckets are full of spiritual rewards. Some by the generous spirite of sharing from others, some learned, some my humble creation.

I’d like especially to thank Eric Sun, Which I missed his topic “The soul’s code of Taiwan campus” in the conference, and he gladly showed his presentation with me alone after his speech:) I like Eric Sun’s creativity design for the Ezgo, and like his passion in Ezgo.

I also want to thank Max and Karen, Max always encouraging me on my speech. Karen, she actually came to listened my speech “Web design done in GNOME and how I did my last GOPW”, despite my poor delivery:) I also enjoyed the talk with her.

In my speech “Web design done in GNOME” I started with my own story to show how I getting in touched with Opensource, and introduced my paraphernalia of my web design work: GIMP, Inkscape, jEdit, fileZilla.

Also, I was glad to see my design elements in GOPW have been used in GNOME.Asia :)

BTW: I found, especially in Adacamp, women geeks tends dress alike. A typical ensemble include a T-shirt, jean, sports shoes, a pair of glasses. That is, they dress like male geeks. This time, I thought since my naive existence is an unavoidable reduction to the entropy of geeky heat, I might as well be hanged for a sheep as a lamb, so I dressed a red dress with flowery ribbon, my usual ensemble. It isn’t exaggerated dressing at all, nevertheless sparked curiosity. Some tried to verify that I am not a programmer, and succeeded;) perhaps before getting his wager. Should I bash the bias of perceiving women geeks, mostly also feminists, as unfeminine, or did it backfire, having myself tagged as a naive non-programmer? In other words, should I fight by dressing like not fighting at all? [Yes, my husband tightened this paragraph for me. It had been much longer.]

Thanks GNOME Foundation sponsored me to attend the GNOME.Asia in Seoul, thanks the Taiwan and local organizers who have held such a great event for us.


SFD 2013 Registration is now LIVE!

SFD 2013 Registration is LIVE

It is with a great pleasure that we are opening registration for SFD 2013. The deadline for registered teams to get the free goodies is July 21st which should give us enough time to ship everything everywhere. For registration, simply create your team page under http://wiki.softwarefreedomday.org/2013 (/country/city/team for most) and complete this registration form.

We are available for support through email on sfd-discuss or on IRC (#SFD on freenode). SFD artworks are available under http://wiki.softwarefreedomday.org/Artwork and CC-BY licensed. Feel free to use, enhanced and eventually localize them.

We want to particularly thank our sponsors who are making this possible, namely Canonical, Google, and Linode for the time being. We would also like to thank our media sponsors who offer us magazine ads, they are Linux Magazine, Ubuntu user, Admin, Smart developer and Linux Journal. Should your organization be interested to sponsor and support DFF please get in touch with us.

Happy SFD preparations!

Celebrate SFD with us on September 15!

 

GPG key transition: 7BD22F74 → D28DA8DC

I should have transitioned my old GPG key to a stronger one for long time, it’s finally done today, with the help of here and here. You can find my signed letter at http://ubuntuone.com/6O2OCf1rg9ulw1eWi13zc2. I am also copying the letter below for your convenience.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256,SHA1

Due to rapid advancement of computing, my old 1024-bit DSA GPG key,
which was created 14 years ago in 1999, has long been deemed insecure.
Therefore, I am transitioning to a much stronger 8192-bit RSA key, by
using a slightly modified gnupg in [1], as the default gnupg does
not allow creation of keys greater than 4096-bit. Hopefully this new
key can survive much longer.

The old key will continue to be valid for some time, but I prefer all
future correspondence to come to the new one. I would also like this
new key to be re-integrated into the web of trust.  This message is
signed by both keys to certify the transition.

If you have signed my old key, I would appreciate signatures on my new
key as well, provided that your signing policy permits that without
reauthenticating me.

The old key, which I am transitioning away from, is:

pub   1024D/7BD22F74 1999-09-12
      Key fingerprint = CD09 4F7B BBEE 93CD 7966  6299 34B3 A9A0 7BD2 2F74
uid          Anthony Y. P. Wong (Personal) <ypwong@ypwong.org>

And the new key is:

pub   8192R/D28DA8DC 2013-06-01
      Key fingerprint = 8DF0 9030 F103 F760 C18C  BA06 605A A53D D28D A8DC
uid          Anthony Y. P. Wong (黃彥邦) <ypwong@ypwong.org>

To fetch the new key from a public key server using GnuPG, run:

  gpg --keyserver pgp.mit.edu --recv-key D28DA8DC

If you have already validated my old key, you can then validate that the
new key is signed by my old key:

  gpg --check-sigs D28DA8DC

If you are satisfied that you've got the right key, and the UIDs match
what you expect, I'd appreciate if you would sign my new key.

A simple and safe way to do that is by using caff (shipped in
Debian/Ubuntu as part of the "signing-party" package) as follows:

  caff D28DA8DC

Alternatively, you can sign the key by using gpg and send it to me (if
you have a functional MTA configured on your system) or upload the
signatures to a public keyserver directly:

  gpg --sign-key D28DA8DC
  gpg --armor --export D28DA8DC | mail -s 'OpenPGP Signatures' \
    ypwong@ypwong.org
  gpg --keyserver pgp.mit.edu --send-key D28DA8DC

Please let me know if there is any trouble, and sorry for the
inconvenience.

[1] https://launchpad.net/~anthonywong/+archive/ppa

Thanks,
Anthony Wong

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQQcBAEBCAAGBQJRqdnMAAoJEGBapT3SjajciuYf/isb8jX/+SXxnxr6veAS4VTL
rKG2Up6cGjAPsfNX4AmKUojiiGzWyqXOa3qTfRReXf2Xl+NroI6jMdN2zBEe4D7J
UZYDzvEVWDhhATbWIqL2mcxZYbInX4sd18UW5cw58Tx+uBATAIHSJdHiLMjLDbvc
uKpbIqwZDC1zgJIV1+vosgtR3KQFO0bJyeqEBMpjvzJ2Zy60ZFgBycNOZL2aIdav
HnbCBSttqdfUE+TuXMgHSSTgx0WUromRa9d4X/OaT+1veX2CRD/K9X+Qt4ac6dop
Tze43U4ns2Ijz8Mwb603rlkh5e+FFfI7VxehCpIPv2oYlpNHYt5BoJbNj5Hl8LYn
6DMmbJSugz5Ov94Q5/QLFPRprnwXRVmHuvm1sbxznQGrCDgJhxVLJuTTTSNjuUiL
5VVwqKJ8RrG8gFcqmcZhG1+U2tQvBfJU/NR7BF6LMqB9FrJNyBTvg0w460XnUiOc
2ZKubdDn7qj7iEhUru4Mmu1yz9tANjYP7ObCxsvWvMOt8basOn1EobgUywIVsQsz
QdCR5SYNvWT7fgKjbpMM6RwTOa7mqOvk+IF9SCgZcSy4KVkLr6PrB0VSNueMy7bz
iJqF+j06ur79/0IHK33iFj02OqXIXG99g6hGm86NgSIlBM0EZwX52O7XmfSfTcg0
DlKuAy/ZBZOltxujkTaUSECWmfRzT2FtGgDsNj9PGZ+RbSTIT0J3/P46Umg55IBq
ptNFg5e0VNSewVT5sQVGxZDesPmrcVH6KjmFI0HYihZp2SUjshoT9TmyeKIdZcGa
PtLKSlhuwVAgEEsMPKQb4x/8xwZa2D5ZuiSOWP0NWptzdE2g2qAMGVttgu19B1+X
Iv9FUts5BYI5xiocbBq0t/MSioEwQG4Q4fBjMltMKu062lXnHNj8bP2W0Z1lBOTy
/GxHRrRnvfdmsWjn5DTfY3Cg5LlOHWMxd0JnCYMrEMrdQb78+1sc/qpbhfW3cKeR
vL8nGw7GZthOLOTVHUMtMthVSvWcymWfuJ4pfwP+Im6PqHmV+aC8GfwsSBDoLjPn
6AkdoinofPTh7RziNK/bJ36qS5QVL4bITeIw5qBYG9cXGSyuX15clK8CiuMG6RqG
1ztp3rQbLp1a0/1fW4xuhZUfUo4kXPYwR5Tm8Emx9dnS1IDk6avbUYMw+30JUqPO
KLCSGQnsjXyBPD6Z+qxENUgk1046JNxUFZLoc9mbbU9CXWKlGDDAoF+moLcWmR4D
BX9JbQAkmTQkuvPuH9x7aYoFSJKcmJ7Zz6PTdD8PHAT0vm92Kg3viIu/2BhoyvyD
oKLf/yQ1d8y1/iZYuyOrnM7eT56BtcvSHlSXQSmyACiB4bR3YYz6SNS2KDjmWWCI
RgQBEQIABgUCUanZzAAKCRA0s6mge9IvdMFJAKDlnUHGERTnlUGTZTB5SH4IREKb
qwCeJy3k6qi6uxBlZqds/4AG6vDmtfE=
=UVhj
-----END PGP SIGNATURE-----

Currencies are everywhere, why the bitcoin obsession?

Running QQ on Ubuntu Phone

Courtesy to an open source project called uqq on Github, it is now possible to not only run QQ on Linux, but also on Ubuntu Phone! As Ubuntu phone is still under heavy development, and the current SDK is limited for QML-only apps, it is not an easy task to deploy uqq onto the phone, as it uses C++ for its backend. If you are adventurous, you can follow my steps below.

2013-05-19-03-02-38_photo 2013-05-19-03-31-17_photo 2013-05-19-03-32-01_photo 2013-05-19-03-32-35_photo

1. Get uqq

  1. git clone https://github.com/ginuerzh/uqq

2. Cross-compile uqq C++ plugin

  1. Create an armhf build environment: # pbuilder-dist raring armhf create
  2. Login to the armhf environment: # pbuilder-dist raring armhf login
  3. You are now in a chroot in /var/cache/pbuilder/build/<PID>, where <PID> is the process ID of the command in the last step.
  4. Copy uqq source code to /tmp in the chroot, something like “sudo cp -a uqq /var/cache/pbuilder/build/<PID>/tmp“.
  5. Add QT5 and Ubuntu SDK apt sources:

    # cat << EOF > /etc/apt/sources.list.d/qt5-and-ubuntu-sdk.list
    deb http://ppa.launchpad.net/canonical-qt5-edgers/qt5-proper/ubuntu precise main
    deb http://ppa.launchpad.net/ubuntu-sdk-team/ppa/ubuntu precise main
    EOF


    (apt-add-repository core dumped for me so I had to add the sources manually.)
  6. Install Ubuntu SDK: # apt-get update && apt-get install ubuntu-sdk
  7. Compile the uqq backend plugin: # cd /tmp/uqq/plugin && qmake && make
  8. libuqq.so will be compiled in /tmp/uqq/plugin/UQQ if everything works well.
  9. Copy libuqq.so back to your uqq directory, e.g. # cp /var/cache/pbuilder/build/<PID>/tmp/uqq/plugin/UQQ/libuqq.so uqq/plugin/UQQ/

3. Copy the app to the phone

  1. Connect your phone to the computer via USB.
  2. # adb root
  3. Copy the uqq source code and our compiled plugin to the phone: # adb push uqq /data/ubuntu/home/phablet/uqq
  4. Login to the phone: # adb shell
  5. Type "ubuntu_chroot".
  6. Type "su - phablet" to change to the phablet user.
  7. Now we are ready to run QQ, type "/usr/bin/qmlscene -I plugin /home/phablet/uqq/uqq.qml --desktop_file_hint=/home/phablet/uqq/uqq.desktop".
  8. uqq window should now appear on your phone!
  9. Since ubuntu phone does not ship with any Chinese font, all Chinese characters will be shown as squares. It can be easily fixed by copying /usr/share/fonts/truetype/droid/DroidSansFallback.ttf from any Ubuntu system to the phone's /usr/share/fonts/truetype.

    I still haven't figured out how to add an icon to the launcher for the app, I tried modifying /usr/share/qml-phone-shell/Applications/applications.js, but no luck.

    Hope you find this useful!

The dark side of memes

Nehal Patel might be one of the most important people in the history of the Internet without a Wikipedia page.

I guess I shouldn’t be surprised: Wikipedia devotes a total of 184 words to Jim Ellis and Tom Truscott, the creators of Usenet.

But unlike Usenet, Patel’s creation is relevant today. Patel is the father of the Internet meme.

Lolcats, Advice Dog, Courage Wolf, Trollface and every god awful meme in some way owes its lineage to Patel, who during his freshman year at the University of Illinois dedicated his university Web space to telling the world about how Mr. T ate his balls.

The awful page spawned countless copycats, several webrings and an entire branch in Yahoo!’s old directory format.

But most importantly, Ate-My-Balls managed to grab mainstream attention via an incredibly rambling article on Salon.com and coverage by the Miami Herald’s Dave Barry.

While I never made an Ate-My-Balls site, I did end up hosting one: Faelan Ate My Balls.

In 1999, TCI came to the northern Detroit area with promises of the first dedicated, always-on Internet connection that cost less than $10,000 per month. At $49.99 per month, it was a steal. You just had to hide your Unix box from the installation crew.

When they left, my friend Justin and I got together to cannibalize what was left of the family’s broken Packard Bell Legend 100. The box hosted several friends’ sites, and held up well given the limitations of cable modems.

But this post is not about my short-lived server. This post is about Faelan.

Faelan Peregrin Aragorn first appeared on the Internet with the Faelan’s Sweetheart Contest. Or rather, his parents Jonathan and Sarah Aragorn did.

The page was made to look as though it as prepared by an innocent little boy who was looking for a girl who was “fun, slender, gentle and nice, smart, romantic and loyal.”

What can I say, back in 1999, the mainstream Internet was not as specialized as it is today: no one was seeking a “cancer-stricken cocaine whore who loves rough plushie sex and bondage.”

“Hi! I am a cute (people say) young (eleven) boy (for sure) and I’m going to have a CONTEST to see which GIRL in the whole world will be the best SWEETHEART and GIRLFRIEND for me!”

All Faelan’s site was missing were blink tags.

While the Web mocked and giggled at the Faelan contest and made Ate-My-Balls pages about the little monkey man, more serious people were asking serious questions.

Joab Jackson, a Baltimore City Paper Online columnist, wrote:

Could an 11-year-old really have designed a Web page as elaborate as this one? Could his parents really have approved of him looking for a girlfriend over the Internet? Could any parents be stupid enough to let their daughter participate in such a thing?

Today, Jackson branded a lulz-killer. At the time, we simply never heard of his article because Google didn’t exist and Webcrawler was a piece of shit.

Faelan updated his site to clarify his quest. He wanted a girl with “nice parents who believe that love and touching are good, and think that you should have the freedom to do all these things.”

I’m sorry, I missed that, is he talking about fucking?

In sprite of complaints lobbed at the Web host, the page could not be removed because it was not technically engaged in illegal activity. Solicitation of sexual contact with a minor is actually legal in Oregon.

In October 1999, the contest ended and 11-year-old Faelan vanished into the darkness of the Web.

Where did he go? I don’t know. Neither did Jackson, but he being a professional journalist did then what I do now: he investigated.

Jonathan Aragorn, 44, father and alleged holder of degrees in clinical psychology, education and computer science, was convicted on multiple counts of solicitation to commit sexual abuse and criminal conspiracy to commit sexual abuse. He was sentenced on February 22, 2000, my 18th birthday, to 19 months in prison and a five-year probation.

His wife was found guilty of conspiracy and joined the three-year probation club.

If you are interested in learning more about the Faelan case since Jackson’s original report, you can read the State of Oregon v. Jonathan and Sarah Aragorn.

Reading this, the crux of the parents’ defense was that Oregon Statute 163.345 provides “In any prosecution… in which the victim’s lack of consent is due solely to incapacity to consent by reason of being less than a specified age, it is a defense that the actor was less than three years older than the victim at the time of the alleged offense.”

Since this statute kept Faelan out of jail, Mr. and Mrs. Aragorn said it should apply to them as well.

The appeals court slammed the Aragorns and gave Jonathan a “Go Back to Jail Free” card. Apparently that statute is only good if you are an accomplice to underage sex.

Looking back on this curious case with eight years of new knowledge, I have learned a very important lesson: if I one day have a son, I should not open a cyber-harem for him in Oregon.

For those seeking a happy ending to this sordid story, Faelan finally found a legal sweetheart and married her on Christmas Day 2011 in St. Lucie County, Florida.

Speaking at OpenSym + WikiSym 2013

opensym2013

During my last visit in Hong Kong I met a few of my usual friends and about 2 weeks later received an invitation to speak at the OpenSym + WikiSym 2013 which will be hosted in Hong Kong from 5 to 8 August 2013. Of course I’d thank Haggen for passing the message and the team behind the conference for the invitation.

I have decided to present my work with Open Education which happens to match the conference rather well (I was told), and will therefore summarize what has been done around Beijing since about 2006. The interesting part is that this project (named greenboard) covers a lot of different pieces ranging from hardware donation, curriculum design, using Free Software and customizing or translating the possible solution. It will of course talk about GNU/Linux, some of the GNOME and KDE educational applications we are using as well as putting it all together and allowing teachers to control the classroom. Since there will be researchers and communities flying from all over the world to participate for the event, I look forward to receiving good insights, get further ideas to improve what we have done so far and why not, expand to new territories.

As a side note the conference call for talks is still open, the submission deadline being on May 17, 2013. So feel free to either come and talk about something interesting or just drop by and say hi in early August if you are in town!

Celebrate CFD on May 18

cfd-banner 336x280

Culture Freedom Day is just around the corner and it’s not too late to decide to join the movement! Meant as an international day for Free Culture artists around the world to make themselves heard and known to the public we expect plenty of street concerts, gallery exhibitions and other local demonstrations of Free Culture work. Just as Satabdi Das from Kolkata, India you can join a local team, or create your own team in your area. whether you know free culture artists who can come and help you or just decide to broadcast a few free culture movies. Free culture is big enough and need your help to be famous!

For more information please visit the CFD dedicated website and don’t forget to spread the word. Note that we’ve also made a countdown and some banners which code and source file can be retrieved from our CFD wiki.

Celebrate Free Culture with us on May 19!

Hackerspace Hong Kong

dimsumlabs1

In order to promote Hardware Freedom Day that was hosted on April 20, I went to visit the only hackerspace in Hong Kong, the DimSumLabs. We met some new geeky friends including Graham, a professor at PolyU and Manolis, web admin at DimSumLabs among other many things… We had a lot of great discussions and talked from 8pm until 2am. We ended up agreeing to host some events in PolyU together in the near future.

The following Saturday, we went to do site visit and talked more. Of course we also met with our old friend, Mathieu who just started a hacking group in Hong Kong and had a very great first event. His main occupation these days apart from his job, is to work on an improved input method for Hong Kongese. We also invited him to join Digital Freedom Foundation as a director as he is helping us coordinating and running some local activities in Hong Kong, which happen to be a requirement now. All in all it was a great week, not really a HFD event but definitely big steps forwards for us.

Hackerspace in Hong Kong

She is currently the Director and Secretary of Digital Freedom Foundation. She is also co-founder and VP of Greenboard, a NGO deploying open education solution in poor schools in China. Previously she was President of Beijing Linux User Group, co-founder and lead organizer of GNOME.Asia, as well as VP Marketing for Gdium Foundation striving to allow everybody to access knowledge for free.

In order to spend all these time volunteering and making a better world, Pockey works as a consultant in dao² Inc. Before that she was the CEO of Compario China and the Vice General Manager of Willsee, one of the largest manufacturer of corporate and business gifts in South China. In her early career stage, she focused in the marketing and advertising field working in international advertising agencies in Hong Kong and Beijing.

Sexual miseducation

When to start sex education is an oft-debated topics for schools and parents. We debate it because, as humans, we pretend our intervention can halt the inevitable.

A few years ago, a local school revived the great debate when it instructed its third grade boys to play sperm and crawl through a series of holes to unite with a girl and make a baby.

While I certainly give the program points for its imagination…

Third grade? Are you kidding me?

Sex ed, the American way!

I grew up in the United States during the Ronald Reagan years.

I remember the weekly Legend of Zelda slot of the Super Mario Bros. Super Show being canceled so they could run footage of cranes busting apart the Berlin Wall on Friday, December 22, 1989: Day Two of the demolition, so let there be no question of my ’80s street cred.

In the two decades since, I have learned that humans will fuck regardless of the age at which they begin sex education.

In Michigan, “sex education” began at age nine. For us, sex education was a video and nothing more.

When the day came, our four fourth grade class was split up. The girls were led across the brown carpet and out through the white-brick hallway by three female teachers.

The door slammed shut.

We boys were left behind with the male teacher — you know, the lone male educator in the entire school.

A glance at the elementary education system could easily leave one with the impression that American schools are required to pack their staff with neurotic women — ones who insist the cure for the Y-chromosome is a double-dose of methylphenidate — but that’s another topic.

And so we sat confused, staring ahead at the screen that was supposed to answer all our sexual questions — oh, and to explain what the fuck sex was.

As a nine-year-old, the closest I had come to sex was seeing a Madonna video and watching the kid was on his fourth run through the fourth grade doodle penises on my homework.

Nevertheless, the lights dimmed and they rolled-in media center television that was always seatbelted to its cart.

The cathode rays crackled to life to reveal blue static.

Life: it begins and ends in piss and shit

As the blue of the dead signal gave way to images, we were greeted with a field of flowers waving in the breeze.

The scene changed to a lone bee buzzing about a flower and digging around inside it, coating its hairs with rich pollen before taking off. The voice-over spoke brief words of pollination, carpels and stamen before switching to a cartoon that, to use the vernacular of our times, was full of epic fail!

The scene began with blue, which at first made me think the VCR had failed. I soon realized that this was intentional when the bottom of the screen turned brown.

Suddenly and without warning, a female fish swam by. I could tell she was female because she had a Ms. Pac-Man bow in her scales. As she swam by, what appeared to be her asshole opened and a pile of black bubbles fell out all over the floor of the pond.

Moments later, an excited fish without a ribbon swam by and casually pissed all over these bubbles.

What happened next was terrifying. In stunning three-second-per-frame animation, the bubbles developed into baby fish, which then broke out and swam away for reasons left unexplained. The video then made a hard cut to a 30-second clip of a baby suckling at a woman’s breast.

The tape ended and the blue signal returned. The fever dream of sexual education was at an end.

Our obviously bored teacher asked the last thing you should ask a fourth grader after such a video.

“Any questions?”

If I had the vocabulary of an adult, I might have asked, “Just one. What the fuck was that?”

The lasting damage of early education

That fish video, and apparently all similar early attempts at sex education, fucked with an entire generation.

It doesn’t take a degree in psychiatry to recognize that the surging in interest in water sports and cornholing began in a post–fish-video world.

I’m willing to bet that in twenty years, Japan will again rise to the task and provide the eight-year-olds of today with the “unbirth” fetish porn they are sure to crave.

While I’m sure these new classes are far less traumatizing than the video we saw, I can’t help but wonder if they are really needed. Aside from some basic clues about the life cycle, we were left knowing nothing about sex. Condoms had to wait for the eighth grade.

While I have no evidence to back this up, it is my hunch that polls about sexual activity among elementary and middle school students fail to take into account that virtually every student lies about being a virgin to avoid being laughed at — even if they don’t know what a virgin is.

Now, to be fair, the video was not our only sexual education experience.

Four years later, we were again sent home with permission slips so we could sit in a room with the history teacher and ask any questions we had thought of during the last four years. We wrote our questions on slips of paper and dropped them into a sealed box “to avoid embarrassment.”

That turned out to be a good move given the stunning number of boys asking things like, “What is a dildo and how do I use it?” Today, such a question would probably require a discussion about safe practices in urethral sounding.

Our third and final bout of sex education came another four years later, this time as an entire semester on love and marriage taught during my senior year at a Catholic high school. For one week of this semester-long course, we were once again allowed to ask questions about sex.

One girl immediately raised her hand to pose a question.

“Is it possible for my boyfriend to pee in my vagina?”

Clearly, the fish video was not unique to my school.

Show current GIT branch in TCC

I'm getting more and more familiar with the GIT workflow, which goes kinda like this:
git checkout -b topicbranchX
git add somefile
git commit -m"commit message"
git pull
git rebase master
git push

Unfortunately this means that you'll end up with a bunch of branches (which you can delete once they get pulled into origin/master) but I keep forgetting what branch I currently have checked out. I've seen bash prompts that show the current branch and I decided to do something similar for TCC/LE.
/*
@cl "/Tp%~f0" /nologo /GS- /link /SUBSYSTEM:console /nodefaultlib /entry:_main kernel32.lib
@goto :EOF
*/
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
const WCHAR root[] = L"..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\.git\\HEAD";
int __stdcall _main() {
  int offset = sizeof(root)/2 - 10;
  while (offset >= 0) {
    HANDLE h = CreateFileW(root + offset, GENERIC_READ, FILE_SHARE_READ, NULL, 
      OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    if (h != INVALID_HANDLE_VALUE) {
      char buf[64];
      DWORD read = 0;
      if (ReadFile(h, buf, sizeof(buf), &read, NULL) && read > 16) {
        DWORD off = 0;
        DWORD len = 7;            // show 7 hex digits
        if ((int&)buf[0] == ':fer') {
          off = 16;               // skip ref: refs/heads/
          len = read - off ;     // keep LF
        }
        WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), buf + off, len, NULL, NULL);
      }
      return 13 - offset / 3;
    }
    offset -= 3;
  }
  return 0;
}

What's fun about this file is that you can save it as "gb.cmd". When you then enter "gb" on the command line, it will actually invoke the C compiler (remember to run vcvars32) to generate the gb.exe. Next time, the exe will be invoked instead.

This is the final prompt:
prompt %%@exec[@gb.exe]$e[1m$P$e[0m$_$+$g

The great adventure

No matter what language we use, death is a sticky topic for us humans: especially in common speech. Reporters can use that sterile, icy word to describe the passing of a celebrity, but we mostly avoid it in polite conversation.

Your cat can die. Your phone’s battery can die. Your computer’s network connection can die.

But grandma? Grandma doesn’t die: she passes away or passes on.

Many cultures are uncomfortable with death. The ancient Egyptians simply said said someone journeyed west. That might not seem so bad in China, where the journey west was great fun for the Monkey King. Chinese people prefer head off to a whole new world! It’s more exciting than Japan, where dear grandma simply ends up lost.

World-over, you would be hard-pressed to find a culture more terrified of death and dying than modern America. Every doctor’s office in the US has a wall of pamphlets ready to introduce the odd new idea.

When an American’s number is up, he just takes the big sleep. If he’s not ready to move on up, he will go out kicking.

Americans like to kick a lot of things, especially buckets and cans. The less aggressive prefer to kiss the dust before they’ve left the building for a little slumber.

If they’re hungry, they can bite the big one or bite the dust. Queen fans seem to be the biggest on biting. I’m guessing the Eagles’ listeners prefer gambling: they cash in their chips before checking out to go climb the Golden Staircase – or, if I may nod to Led Zepplin, pay the piper and climb the Stairway to Heaven.

And what does an American do once he’s up there?

Well, after it’s curtains, he’ll be cooking for the Kennedys — if he’s a good enough cook, he might get a chance to join the angels in the sweet hereafter. Regardless of his culinary skills, he can rest assured that he will be joining the majority.

And we don’t like to think about this, but not everyone gets to climbs the staircase. Some people have to walk the downward path and spend eternity in the dread abode.

Every now and then, one unlucky guy simply fades away and ends up on the road to nowhere. If you one day find yourself stuck with nowhere to go, I suggest you roll over and give Byron’s dreamless sleep a try — it sounds like a good chance to get in a few eternal yawns.

If sleeping and staircases aren’t for you, the gangsters say you can give up the ghost and go sleep with the fishes — usually this one requires some assistance to pull off. If there’s no time to get a pair of cement shoes, you may just end up six feet under — but that’s a great place to be if you’re going into the fertilizer business!

However you choose to fade out, it seems a great chance for one last party. I’ve never been a fan of formal-wear, but traitors don’t seem to mind. They go to a necktie party when they die. Serial killers get ride the lightning – I saw that one while it was under construction at Cedar Point and it looked like a coaster fan’s wet dream.

When they’re not kidnapping Korean fishermen for ransom, pirates cover a lot of ground both here and in the hereafter. Sometimes they take a long rest on the Fiddler’s Green, but if they haven’t had enough briny sea-air, they can flag down the Flying Dutchman for eternal adventure.

The unlucky ones get dragged down to Davy Jones’s Locker.

In this modern age of science, computer geeks have one of the most creative ways to get exported to a flat file — they’re formatted. I suppose it works because, these days, most of them are Hindus.

Writers are less lucky. We tend to end up lost in translation after moving into upper-management. After that, we just go permanently out of print.

Almost every one of these adventures sounds preferable to plain vanilla death.

Yet in spite of how gaily they jest about the next great adventure, Americans squirm when someone casually mentions the “D” word.

When you get down to it, death is just a part of life, and it’s one most aren’t prepared to face. But we have to face it eventually. George Carlin said death is the one thing that’s truly democratic: everyone gets it once.

But I think I have a solution to our departing dilemma: a word so when it’s time for each of us to express-mail our soul to the god of our choice, none needs bat an eye. It’s perfect, because despite that last god reference, it works for atheists too.

“Recalled.”

Doesn’t that sound nice? “Grandpa was recalled while he was on the table. He won’t be joining us for Christmas.”

Imagine the dialogue between a nurse and a man who’s wife died in labor. “Mr. Smith, I’m sorry to inform you your wife’s labor had complications. She was recalled.”

Factories can recall bad products: some even recall old products. Car companies do it all the time — especially Firestone, famous for its tires that explode after 500 miles.

Let’s face it, products deteriorate with age, and some are way too dangerous to be allowed on the road: look no further than any 60-year-old granny behind the wheel of her Cadillac STS Child Shredder if you need an example.

So lets all try to bring this word into common use. It’s sterile enough for the politically correct, and it’s accurate.

Matt at work on Worker Wednesday Project. Solar Powered Laoban Sound system.

Its a portable battery and solar powered sound system.

Keffiyeh’s for FREEBASSEL



Jon Phillips, originally uploaded by christopheradams.

Don’t forget to wear your keffiyeh for FREEBASSEL.

An Aside Post

Phasellus leo ante, posuere in fringilla vitae, pretium at dui. Fusce et neque quis odio gravida auctor vel non mauris. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis. Sed sollicitudin aliquam scelerisque. Phasellus elit diam, scelerisque at lobortis vitae, commodo et neque. Sed lobortis porta metus nec bibendum. Nunc tristique placerat elementum.

Maecenas est lorem, imperdiet sed adipiscing et, fringilla eget justo. Etiam accumsan, elit ac tempus tincidunt, neque diam egestas nibh, a laoreet libero ante sed magna. Sed dictum, dui sed ultricies sollicitudin, arcu dui gravida velit, eu egestas nunc eros sed massa.

“Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor.”

Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis.

One Last Link

Phasellus leo ante, posuere in fringilla vitae, pretium at dui. Fusce et neque quis odio gravida auctor vel non mauris. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis. Sed sollicitudin aliquam scelerisque. Phasellus elit diam, scelerisque at lobortis vitae, commodo et neque. Sed lobortis porta metus nec bibendum. Nunc tristique placerat elementum.

Maecenas est lorem, imperdiet sed adipiscing et, fringilla eget justo. Etiam accumsan, elit ac tempus tincidunt, neque diam egestas nibh, a laoreet libero ante sed magna. Sed dictum, dui sed ultricies sollicitudin, arcu dui gravida velit, eu egestas nunc eros sed massa.

“Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor.”

Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis.

Share some design works for GNOME.Asia

Poster: Training session in the GNOME.Asia Summit 2013
Training session in the GNOME.Asia Summit 2013

T-Shirt: Let us to meet GNOMERS
Let us to meet GNOMERS

T-Shirt: GNOME IS MOBILE
GNOME IS MOBILE

Certificate of Training -Template
Certificate of Training


We Appreciate any kind of feedback

Phasellus leo ante, posuere in fringilla vitae, pretium at dui. Fusce et neque quis odio gravida auctor vel non mauris. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis. Sed sollicitudin aliquam scelerisque. Phasellus elit diam, scelerisque at lobortis vitae, commodo et neque. Sed lobortis porta metus nec bibendum. Nunc tristique placerat elementum.

Maecenas est lorem, imperdiet sed adipiscing et, fringilla eget justo. Etiam accumsan, elit ac tempus tincidunt, neque diam egestas nibh, a laoreet libero ante sed magna. Sed dictum, dui sed ultricies sollicitudin, arcu dui gravida velit, eu egestas nunc eros sed massa.

“Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor.”

Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis.

HTML Ipsum Presents

Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.

Header Level 2

  1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  2. Aliquam tincidunt mauris eu risus.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.

Header Level 3

  • Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  • Aliquam tincidunt mauris eu risus.

#header h1 a { 
	display: block; 
	width: 300px; 
	height: 80px; 
}

Post with a Quote

Phasellus leo ante, posuere in fringilla vitae, pretium at dui. Fusce et neque quis odio gravida auctor vel non mauris. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis. Sed sollicitudin aliquam scelerisque. Phasellus elit diam, scelerisque at lobortis vitae, commodo et neque. Sed lobortis porta metus nec bibendum. Nunc tristique placerat elementum.

Maecenas est lorem, imperdiet sed adipiscing et, fringilla eget justo. Etiam accumsan, elit ac tempus tincidunt, neque diam egestas nibh, a laoreet libero ante sed magna. Sed dictum, dui sed ultricies sollicitudin, arcu dui gravida velit, eu egestas nunc eros sed massa.

“Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor.”

Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis.

Post With a Slideshow

Phasellus leo ante, posuere in fringilla vitae, pretium at dui. Fusce et neque quis odio gravida auctor vel non mauris. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis. Sed sollicitudin aliquam scelerisque. Phasellus elit diam, scelerisque at lobortis vitae, commodo et neque. Sed lobortis porta metus nec bibendum. Nunc tristique placerat elementum.

Maecenas est lorem, imperdiet sed adipiscing et, fringilla eget justo. Etiam accumsan, elit ac tempus tincidunt, neque diam egestas nibh, a laoreet libero ante sed magna. Sed dictum, dui sed ultricies sollicitudin, arcu dui gravida velit, eu egestas nunc eros sed massa.

“Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor.”

Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis.

We Boost Sales

Phasellus leo ante, posuere in fringilla vitae, pretium at dui. Fusce et neque quis odio gravida auctor vel non mauris. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis. Sed sollicitudin aliquam scelerisque. Phasellus elit diam, scelerisque at lobortis vitae, commodo et neque. Sed lobortis porta metus nec bibendum. Nunc tristique placerat elementum.

Maecenas est lorem, imperdiet sed adipiscing et, fringilla eget justo. Etiam accumsan, elit ac tempus tincidunt, neque diam egestas nibh, a laoreet libero ante sed magna. Sed dictum, dui sed ultricies sollicitudin, arcu dui gravida velit, eu egestas nunc eros sed massa.

“Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor.”

Mauris pellentesque, elit at interdum adipiscing, sapien urna sagittis nisi, in placerat orci quam varius sapien. Suspendisse auctor nulla id augue mollis tempor. Morbi auctor, sem ac tristique mollis, enim sapien molestie velit, in dignissim diam tellus ac turpis.

Openclipart is the home of Quality Clipart.

Over at Fabricatorz, we have been working hard on updates to our baby, Openclipart. Its the place for quality clipart. Check out some this image I made of Dolores Park in San Francisco.

Dolores Park Poster San Francisco

And, there are some artists making #FREEBASSEL graphics.

Click here to edit

Share your clipart at Openclipart.

Fwd: your restaurant?



Fwd: your restaurant?, originally uploaded by rejon.

Thanks to Jason @Wishnow for the photo @fabricatorz inspiration :) It
is our restaurant ;)

FREEBASSEL #indexawards



FREEBASSEL #indexawards, originally uploaded by rejon.

I come here to London to represent for you my friend. Love and miss you my
homie! We are working hard to get you out of that Syrian Jail Hell! Be
strong, we fighting hard out here for you!

Jon

HFD swag posted despite LibreOffice…

A year without blogging… I thought I would never succeed! Don’t get me wrong I do write quite a lot online, I have too, and my blog really gets some thing once everything else is written.

So without further ado I will show you a beautiful photo of the balloons we are sending for HFD (taken by Pockey and licensed under CC-BY to HFD):
HFD Balloons

Now why did the HFD swag leave only today (instead of Saturday as they should have)? Well I think I suck at LibreOffice: once a year I am used to take my “latest” copy of LibreOffice and remember how to print labels for all the teams in the world. SFD is of course a lot bigger than HFD but it’s been going on since 2004. Either way it kind of used to work, with a lot of glitches, but it was working. The last time I used LibreOffice I felt I had to complain to one of the main developer and so I found out that I was running a two year old release. This time after trying the latest available version under the latest Fedora and not being successful I went for an upgrade and am now running release 4.0.1! Yes, 4.0.1! Well let me tell you that not only the “optional” address line that some teams have and some don’t always print and there is no way to automatically do without it, but worth, even after selecting “database” as source (the other modes didn’t find the sheet whether under 3.6 or 4.0.1) I ended up with 11 pages of 8 labels for 53 teams. Yes you read me right… that is somewhere between 81 and 88 mailing addresses. What happens is that LibreOffice simply duplicates some of the addresses it takes from the database, and not next to one another, just randomly. So while the first 5 pages printed ok (oh yeah, they print only odd page numbers. So page 2 becomes 3, 3 becomes 5 and so on. I have no idea why but that’s the standard way) I started to find a second team from Japan. We only had one team in Japan, so I checked: same name, same address. Then next to it was the same team from India, then a new team, then a redundant team and so on, without any logic. After trying different “technique” to get only 53 teams in my labels, I had for only choice to finish the printing under a non-free office software running under a non-free operating system. This was a lot easier in many ways and I really pity the people who have no other choices. In fact I truly wonder how they manage.

Let me show you a beautiful second photo bearing the same license as the previous one, so you’ll be even more happy to have registered early:
HFD Swag
All is not lost and I will join the few people who have complained about the feature being less than usable for office workers. Hopefully the new bug miscalculating the number of recipient will be easy to correct and the whole clarity of the function will start to take shape. I sometimes really wonder how people use free office software, not being a user myself. And often the five minutes a year I dive in end up taking me the whole week and not wanting to go back. Hopefully those five minutes will be more valuable this year!

#FREEBASSELDAY = #FREEINTERNET



#FREEBASSELDAY = #FREEINTERNET, originally uploaded by rejon.

Bassel is one of my best friends. Please #FREEBASSEL anyway you can,
creatively, with remixing, or simply retweeting. He has been locked up
unjustifiably for one year today. We need him out!

freebasselday.org

vim tips: capitalize the first word of every sentence

To solve this problem i found this useful solution, but discovered that it didn't cover all cases i had.

s/\v(\U)([^\.]*\.)/\u\1\L\2/g

To start with, \U does not mean every not-uppercase letter, but every character from the whole set that is not uppercase. So it includes spaces and everything else. This causes the expression to match " hello world!" if the sentence doesn't start at the beginning of the line, which is not quite what we want. To get every non-uppercase (that is lowercase) letter use \l. But even that does not really work, because it means that now it matches "Hello world." as "ello world.", and we get a transformation as "HEllo world!". Again, not what we are looking for. Unfortunately, until someone can suggest a method to skip already capitalized sentences we have to stick to \w.

Next, the expression only excludes periods, but not question-marks, exclamations or other sentence ending characters. We can extend this by simply including the respective characters: [^\.?!:;]. We also do not need to enforce the terminating character, we can simply drop that. What we really want to match is the beginning of the sentence, we don't care about the end.

Also, unless the text is in all uppercase, lower-casing the second group could be counter productive as it would affect upper-cased acronyms etc. that are already there.

Lastly, we want to capture sentences spanning multiple lines, lest every line gets matched as a separate sentence. This is achieved using \_.

(And inside a character set the . doesn't need to be escaped.)

Putting it all together we get s/\v(\w)(\_[^.?!:;]*)/\u\1\2/g

Instead of matching a whole sentence we can also try searching for the end of the previous sentence: s/\v(%^|[.?!:;]\_s+)(\a)/\1\u\2/g

Outside of @masha_ma #pfw show. #aw13-14.

I’ve been training for this month for a lil bit of time. Fabricatorz launched http://masha-ma.com at Paris Fashion Week and handled her social media live for the event.

Now I’m in Paris, will cut thru Burrrlin (gucci time), and make doing some big planning and moving on #freebassel.

(moved) vim tips: capitalize the first word of every sentence

this article moved

Hardware Freedom Day is launched!

blog-hfd

Digital Freedom Foundation is launching a new celebration around Open Hardware called Hardware Freedom Day (www.hfday.org) and which will be celebrated on April 20 2013 (one month before Culture Freedom Day). Please help us to promote the event by using our HFD countdown and banners.

Now if you’re involved in some ways with either your local hackerspace or some open hardware projects you should rush to the HFD wiki, create your event page, register your event and get a pack of cool stuff for your HFD event!

Please ask any question on the HFD mailing list.

Celebrate Hardware Freedom Day with us on April 20!

Interview with Shanghai TV

A few weeks ago I got interviewed by Shanghai TV about the Shanghai hackerspace 新车间 (XinCheJian) that I'm part of. In the interview I demonstrate one of the hacks I did, using a TP-Link router to open the machine room.

(No, that's not actually the password for our machine room.)

@GBlock also has a video on the hack on his Vimeo page.

Fabricatorz chop for @globsterlitter to make shirts

Fabricatorz chop for @globsterlitter to make shirts

I chill for a bit CNY



Jon Phillips, originally uploaded by christopheradams.

I’m still here, just powered by, not projected at…

Fwd: two-dimension code



Fwd: two-dimension code, originally uploaded by rejon.

Thanks to Elan! blue is for @rejon, red is for @fabricatorz

Fwd: two-dimension code



Fwd: two-dimension code, originally uploaded by rejon.

Thanks to Elan! blue is for @rejon, red is for @fabricatorz

#FREEBASSEL Vinyl in Cali

Amazing work by hypermodern :) We have to get our boy out!

Website under maintenance / Online shop still accessible

The website back-office is experiencing some issues and we currently cannot add content on the website. We are working on it and hope to be able to offer a new version soon.

The good news is that the online shop is still working. In addition, the prices have even dropped further and we received a new excitiing new product: the Sporsta mask with Techno filter.

Thank you for your understanding.

Lorem ipsum dolor sit amet

Consectetur adipiscing elit. Etiam a commodo sapien. Vivamus laoreet, nulla eu consectetur fringilla, nisi arcu ornare nisi, ut convallis quam tortor id risus. Praesent vel venenatis dui. Aliquam ut odio nisi, iaculis feugiat risus. Suspendisse rutrum pellentesque vestibulum. Aliquam convallis tortor et leo facilisis vitae laoreet tortor molestie. Fusce eget risus neque. Vivamus interdum convallis enim a tempor. Cras tortor nisl, pellentesque in vestibulum eu, tincidunt in neque. Pellentesque nec neque lorem. Vestibulum nec facilisis libero. Duis venenatis porta sapien, in hendrerit tellus venenatis vel. In et metus vitae nisi lobortis vehicula ac sit amet eros. Aenean blandit interdum pellentesque.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed sem mi, convallis eu dapibus a, laoreet ut felis. In et dui tellus, ac tempus ante. Pellentesque pellentesque mauris ut sem feugiat pellentesque. Duis ut purus sapien. Nullam fermentum scelerisque elit, et dictum ligula semper nec. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Duis elementum, felis et dictum iaculis, dui velit sodales purus, nec congue massa ligula ut velit. Nunc semper suscipit leo ut congue. In eu tellus nec augue varius hendrerit. Proin in lacus purus.

Sed felis ipsum, molestie vel lobortis id, lobortis id lectus. Maecenas et urna non ipsum congue imperdiet. Donec nisi enim, convallis vitae sollicitudin id, faucibus non velit. Aliquam erat volutpat. Integer euismod convallis justo, ac mollis lacus lacinia vitae. Vivamus placerat, odio sit amet porttitor auctor, justo metus viverra arcu, nec suscipit mi elit ac massa. Mauris bibendum, risus at malesuada congue, odio diam vehicula odio, ut aliquet enim velit id nulla. Phasellus sagittis elementum pellentesque. Proin adipiscing sodales fringilla. Nulla tincidunt turpis quis nisi rutrum vitae pretium neque accumsan. Maecenas molestie, odio a tempor luctus, nulla sapien ultrices elit, a vestibulum nisi lorem id nisi. Vivamus eu nisl diam, quis tempor velit. Nam eu diam risus.

Phasellus facilisis odio id mauris suscipit ultricies. Donec eget magna sed eros adipiscing dapibus sit amet eu ante. Mauris tincidunt blandit metus, sit amet congue enim venenatis ut. Nunc quis eros justo. Phasellus tincidunt tempor tortor. Etiam magna ipsum, ullamcorper at lobortis vitae, dapibus ullamcorper nibh. Morbi sed metus eu justo interdum molestie.

Maecenas vulputate lacus sit amet tortor dignissim at bibendum est consectetur. Fusce pretium metus non mauris elementum auctor. Maecenas blandit urna fringilla lectus tempor dapibus. Mauris cursus, leo sed fringilla imperdiet, dolor est adipiscing mi, eu blandit libero dui sit amet nunc. Etiam mi ipsum, pulvinar sit amet luctus sit amet, egestas a tortor. Suspendisse varius, ante sit amet luctus suscipit, lorem elit dictum felis, in ornare arcu purus nec dui. Sed convallis diam eget quam fermentum sed egestas ante pharetra. Nulla facilisi. Sed facilisis imperdiet mattis. Praesent non eros eu arcu dapibus viverra vel eget sem. Duis scelerisque dignissim ligula eu pretium. In viverra sollicitudin tellus et lobortis. Curabitur venenatis, mauris in commodo iaculis, erat risus pellentesque odio, id egestas lorem tellus gravida neque. Suspendisse lectus arcu, rutrum eget porta sit amet, consectetur in mi. Nullam diam eros, lobortis sed laoreet non, pellentesque sit amet mi.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed vitae arcu velit. Nullam dapibus mi ut mauris faucibus eu ultricies nulla scelerisque. Proin ultrices fermentum justo. Pellentesque est velit, porttitor sed fringilla a, imperdiet at nunc. Donec sagittis sem ac est vulputate vitae imperdiet magna tristique. Sed vitae lectus dui. Nullam eu est lectus. Nulla augue odio, rutrum vitae sodales sit amet, semper dictum turpis. Pellentesque pretium imperdiet adipiscing. Suspendisse potenti.

Etiam luctus felis eget libero tempus sit amet luctus risus rhoncus. Aliquam aliquam rhoncus felis at accumsan. Morbi facilisis sollicitudin posuere. Curabitur varius semper tempor. Cras consequat, sem id ultricies sodales, est nunc rhoncus mi, et sodales ligula orci vehicula felis. Vestibulum bibendum, leo ac iaculis ullamcorper, neque dolor scelerisque lacus, in cursus nunc risus ornare nunc. Suspendisse pellentesque suscipit orci, at feugiat eros accumsan tristique. Suspendisse ut massa et est eleifend sodales. Vestibulum porttitor laoreet elit, non dignissim ipsum pulvinar sit amet. In sit amet quam id tortor molestie ornare. Etiam euismod posuere sapien, ac feugiat augue rhoncus sit amet. Curabitur a quam non eros pharetra sollicitudin. Aenean condimentum eros non nunc accumsan aliquam. Sed et tellus dui, non condimentum dolor. Donec ligula turpis, sollicitudin non tempus id, pulvinar accumsan dolor.

Keep Going. Drink More Water.



Jon Phillips, originally uploaded by christopheradams.

Set IE10 InPrivate as default

Do this by adding "-private" to the shortcut in the taskbar. Right-click on the IE logo in the taskbar. Then, right-click on "Internet Explorer" and click "Properties". In the properties dialog, add a space and then -private to the end of the Target. OK.

If IE is not currently running, right-clicking the IE logo in the task bar and selecting "Open new tab" opens a new, non-InPrivate, tab.

Set IE10 InPrivate as default

IE10 properties

Google sabotaging Windows Phone clients?

(Disclaimer: I'm a Software Engineer for Microsoft China. In this blog I express my personal opinion and none of this constitutes the official nor unofficial opinion of Microsoft.)

UPDATE: this issue also hit The Verge. The information in this thread also confirms that Google tests for "Windows Phone", as opposed to testing for specific browser capabilities. Gizmodo also posted the story.

I make no secret of the fact that, while I like my (Microsoft sponsored) Windows Phone, I miss Google Maps. For me, Google Maps was the killer app for Android. And the experience is great, even in China, with vector maps, buildings, public transport, subway exits, real-time traffic, latitude.

But Google Maps wasn't enough to keep me on Android. I thought the Windows Phone experience was better overall and I ended up using by Nokia Lumia 800 over my HTC Desire S. For maps, I keep switching between Nokia Maps and GMaps Pro, an unofficial Google Maps client for WP. And occasionally I'd simply go to maps.google.com with IE. Well, I used to, anyway.

Lately (as of a few months ago) opening maps.google.com on my WinPhone simply redirects me to Google Search. Even the Chinese site, ditu.google.com, no longer opens on my WinPhone. Switching IE from Mobile to Desktop mode also doesn't fix the issue, and I keep getting redirected to a regular search page (under the maps.google.com domain, but it's still regular search, without maps.)

My first thought was that the IE browser on WP7.5 "Mango" was simply not supported by Google. So I fired up the WP8 emulator to check whether Google Maps would open on the mobile version of IE10. Sure enough, it didn't. However, this time switching IE to Desktop mode did solve the problem and I got the regular desktop experience, albeit on a small screen.

That's suspicious, I thought, since the browser is exactly the same, whether I use mobile mode or desktop mode. I figure I'd manually try the different User-Agents to see what would happen:
  • WP7 - Mobile Version
    Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; NOKIA; Nokia 800)
    HTTP/1.1 302 Found
    Location: http://maps.google.com/m/local

  • WP7 - Desktop Version
    Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; XBLWP7; ZuneWP7)
    HTTP/1.1 302 Found
    Location: http://maps.google.com/m/local

  • WP8 - Mobile Version
    Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; Microsoft; Virtual)
    HTTP/1.1 302 Found
    Location: http://maps.google.com/m/local

  • WP8 - Desktop Version
    Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; ARM; Touch; WPDesktop)
    HTTP/1.1 200 OK

  • Win8 - Desktop Browser
    Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
    HTTP/1.1 200 OK

  • Win8 - "Metro" Modern Browser
    Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)
    HTTP/1.1 200 OK


Interestingly, as soon as a device identifies itself as a Windows Phone (or WP7) it gets redirected. In other cases it gets the actual Google Maps page. As a test I wanted to replace the User-Agent from my WP7 device with the one from an Android device. Here's how:
sudo apt-get privoxy
sudo vi /etc/privoxy/default.actions
Add this to the end:
{+hide-user-agent{Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus One Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1)}}
.google.
Change listen-address to listen on a public IP:
sudo vi /etc/privoxy/config
sudo /etc/init.d/privoxy restart
On the WP device, change the proxy for your current WLAN profile to point to your instance of Privoxy.

Et voilà, you got Google Maps on WP7, albeit a little flaky. It might be that Google preferred WP user to have no experience to them having a flaky one, but that still doesn't explain why it's redirecting WP8 IE when in Mobile mode.

Now here's what's interesting. As soon as I add "Windows Phone" to the User-Agent, the page no longer loads and I get redirected again. Clearly there's some regex magic at work on Google's end.

As much as I agree with Hanlon's razor "Never attribute to malice that which is adequately explained by stupidity," this does reek of Google being disingenuous and blocking the competition from their platform's killing app.

And it's not as-if they haven't done shit like this before.

Oh, and Happy New Year!

Found picture of old #MattHope mediabar with that ol pre @fabricatorz MESH logo ;)

Happy Holladaze. I am on my way momma!

@freebassel still from french motion graphics on the news

We shared our Bassel avatarz and many news outlets are using them. Please do share the things you create about #freebassel, and let us know by broadcasting publicly loudly!

That new #matthope showroom with weak soundsystem

That is all. Remember: Laoban Soundsystem

Another screencap from @lessig helping @freebassel on #ajstream @aljazeera

Another screencap from @lessig helping @freebassel on #ajstream @aljazeera

Thanks to @lessig for helping to @freebassel on @aljazeera #ajstream using my instagram @fabricatorz remix

I have a higher calling tonite. @freebassel

We need our brother and friend back!

Fwd: Free Bassel



Fwd: Free Bassal, originally uploaded by rejon.

Great to see supporters letters out about @freebassel Thanks *LIN Hsin-Yi !
*

We need your help to @freebassel.

Help us by sharing http://freebassel.org

Life is but a dream… (I Miss Charis)

Is life but a dream? Was complaining to myself about something, and looked at clock and remembered 9 year ago today my sister passed away from cancer. far too young, far too much problems. I try harder :) miss u much charis!

pidgin merged windows

For people who are using tiling Window manager like me (awesome) there is a great plugin for pidgin, this merges the buddy list with the tabbed chat window.

 

 

The Steve jobs shrine keeps improving…

You must worship at the temple of Apple :)

Hong Kong bike acquired!



Hong Kong bike acquired!, originally uploaded by rejon.

I got the hookup now here and will help move thru time here when here.
That’s a @Fabricatorz inverse special for 1/3 price of its inverse
counterpart.

Thinking of Which OS to Run? Human or Computer OS?

A Ramble is coming…you’ve been warned!

I currently run Fedora, but thinking of which system software I should run next. I tried to use Mac OS X, and I must admit, I do not feel happy when I use it. Sooo, thinking of going to the most stable OS next, debian. My rationale against Ubuntu before is that its a rich dudes pet project, and not a real business providing focused product value to people. My rationale for using Fedora was and is that Red Hat *is* a real business that provides value to its customers through products, albeit more indirect to the mass consumer, so Fedora should have more updates consistently. But to be honest, I don’t care now about breaking my work computer, so I think hey, what computer can get me on a commandline fastest to access all of the Fabricatorz servers and be snappy. Maybe a chromebook or a macbook air running debian…still thinking about what to run, and also which laptop will remove the discussion from client previews of work or expectations about quality. That brings me back yet again to moving beyond the Apple discussion towards just using a Mac (but I still don’t like OS X).

More customers means more fixes ideally, and better software, since software is now integrated into a product. So, I want my main computer to just work, and have a commandline.

Still thinking, but that is part of this exercise :)

Structure and order, with style



Structure and order, with style, originally uploaded by rejon.

sipping on some sizzurp



sipping on some sizzurp, originally uploaded by rejon.

Planet BLUG

Planet BLUG is a window into the world, work and lives of Beijing LUG members and contributors.

Updated on June 19, 2013 - 08:08 UTC.
Entries are normalised to UTC time.

Subscribe

Atom 0.3
RSS 1.0
RSS 2.0
OPML
FOAF

Credits

Brought to you by the Planet aggregator, cron, Python, CANDIS Group (who kindly host the BLUG server). Beautiful template adapted from an early design by Steven Garrity, concept by Seth Nickell and Diana Fong.

Planet BLUG is edited by Fred. Please contact him if you have a question or would like your blog added to the feed.