kinopyo blog

Learning through Writing

My Early Days in China - The Horror Sky Bridge

There was one bridge frequently appeared in my dream, uninvited. Whenever I tried to cross it, I always dropped off it and got myself killed. Sometimes the bridge was cut off in two, people on the other side were cheering me up, and I jumped following the run-up, and I fell and died. Sometimes I walked on the bridge and next step my foot sensed nothing but gravity, and I fell and died.

I was surprised how creative my subconscious was. There were so many ways to get myself killed with the bridge. It was like living inside the movie Final Destination, full of surprise to kill you. It was a constant nightmare.

The bridge was real, you can't Google it, but local people called it the Sky Bridge.

Continue reading...

The Sky Bridge (天桥, pronounced as "Tian qiao" in Chinese), located in Laodaokou (老道口), Shenyang, Northeast China, was one road that we must pass everyday to work, school and basically anywhere to the city. I spent my early life there, from 2 to 9. For a kid magically everything scaled bigger than it was supposed to be, the Sky Bridge was like it really meant to connect to the sky, so giant that it was the symbol of my whole childhood.

The bridge, opened in 1912, consisted of a 5 meters wide main road and two 2 meters wide sidewalks, overall about 200 meters long. Below the bridge were a dozen railways, connecting the city to Beijing and other parts of China.

My mom used to put me onto the backseat of her bicycle and rode across the bridge to drop off me to school. "I couldn't ride my bicycle on the bridge at first, I was so scared", my mom recalled, "I could only hold the handle of the bridge, and pushed myself forward one step at a time." I forgot how tall it was, but I guess it was high enough to make an adult shake his/her legs. And apparently I was too small to fear the height, I wish I could possess that ability till today.

My mom overcame that fear soon. "Everybody was no problem, and they looked at me as if I was an alien. I knew I need to get used to it." When life pushes you to the edge, you acquire whatever ability to survive.

By the year I went to elementary school, the bridge was already too old like an ancient tree, I started to notice the twisted scars. The wood covered in the surface started to fall apart, more and more holes were revealed that you could literally see trains traveling beneath your feet - least thing you would expect from peeking through a hole. When a car drove through, the entire bridge vibrated. I can't stop thinking that why the thought never occurred to me at that time - if I fall from the bridge, I'm not just gonna die because of the height, I could also be hit by a fast running train, die twice in a single try, not as fun as "buy one get one free" Domino Pizza.

One day after school, several of my friends and I were heading my home to play console games. They were supposed to be "tough guys" in the school, at least that was how they wanted to be pictured. One or two of them already started to show some of the "bully" traits, but anyway, we were good friends. So we arrived at the bridge, only to notice there were no one following me after I took several steps on it. "Do... do you cross this bridge everyday?", one friend asked in his shaking voice, another was kneeling down and nearly bursting into tears, mumbling "I can't do this... I can't do this..."

That was a shocking moment to me. You know, I had been walking across the bridge for 4 years then, if not counting the year I was still in a baby car. No matter how old or how broken that bridge was, I was so used to it, so were my family and other local people. It was just one thing on our way to lives. To others, however, that was a utterly shattered bridge that no one would take it as bravery to walk across it.

A few years later, my family had moved to another place, I decided to revisit the Sky Bridge in a summer vacation of junior high school or high school I forgot, and guess what? I couldn't even move a single step onto the bridge, as if that one step would take my life eternally. By the time the sidewalks were shutdown completely because of the unfixable damage, and no cars were allowed on the bridge either. Trains running below filled in the sights of increased scar-holes, as if they were part of the textures of it, and yet people were still there, still walking across it, some were even selling a range of merchandise, completely at ease. In the end, I took another route like my "tough" friends did, who I mocked as "pussy" back in the day. It was that experience triggered my nightmare of falling down the bridge, and had haunted me my entire 20s.

Time passed. I had already left the city for more than 10 years, one day I went back to my hometown and wanted to give it another try, or just to confirm if my horrified experience was real or a mere fantasy. Yet I couldn't find a single piece of metal or wood, the Sky Bridge was completely gone, and people started to refer to it as the "Old Bridge".

December 12, 2016 memoir

Book: On Writing Well

I like to peek into people's workflow and tool kit. It can be watching how a person drips a cup of coffee, from grinding the beans to pouring into a pre-heated mug; It can be observing how a chef cooks a dish, from choosing the ingredients to presenting it on the plate; It can also be, exactly what I'm gonna write about - reading a book about how a writer thinks and writes, from mastering basic principles to adjusting the attitudes.

Continue reading...

Ever since I turned into 30, I've noticed an emerging needs to pin down who I once was, to ponder on who I really am and where I'm heading, to seek the meanings of life from all sorts of unexpectedness. My two great companions on this quest have been reading and writing. This book is perfect: it kills two birds with one stone. (Not like I got my 2 companions killed.)

I am a writer and I'm not. I am a writer because I write stuff regularly, but before that I love to think about stuff. Whenever I'm not talking - my majority life has been like that - I'm thinking about something inside. Meaningless or not, it doesn't matter. That something keeps me alive, and only through writing I can put those thoughts in a logical order and make sense out of it.

I'm not a writer in terms of professionals who publish some books and make a living with it. But I won't stop day dreaming that one day I might reach more readers not with better stories but with stories that are written better.

Nevertheless, I enjoyed the book. No matter what type of writers you are, this book give you some guidance:

On writing skills (principles and methods)

  • How to choose and tweak words, lead and end
  • How to organize long pieces of information and where to stop
  • How to put your style, your symbols into your writing?
  • Should or should not indulge a humor that you're worried about whether the reader will "get it"
  • How to tweak rhythm and alliteration
  • Why rewrite is so critical
  • ...

On different formats of writings

  • How to write about people, place and yourself (memoir)
  • How to write subjects out of your specialty
  • How to write reviews and critics
  • ...

On attitudes

  • Who are you writing for ultimately?
  • How to fight fear, find confidence and have fun
  • ...

I especially enjoyed the technique of using thesaurus dictionary to choose words, not just to find more precise ones but also to make it sound good. Readers not just read your words, they also hear them. I think that's one of the secret ingredients why good articles read instinctively good - it's fine tuned for our palate.

And I loved the attitudes part the most. Even though the author is targeting non-fiction writers, the fundamental about writing or perfection can be applied to any fields that requires hard work and craftsmanship.

He also showed me writing well is not about talents but constant efforts:

"What do you do on days when it isn't going well?"

The professional writer must establish a daily schedule and stick to it. Writing is a craft, not an art, and that the man who runs away from his craft because he lacks inspirations is fooling himself. He is also going broke.

"What if you're feeling depressed or unhappy? Won't that affect your writing?"

If you job is to write ever day, you have to learn to do it like any other job.

"Ultimately the product that any writer has to sell is not the subject being written about, but who he or she is. What holds me is the enthusiasm of the writer for his field." As a person who has never lived in any English-speaking countries, learned it as 3rd language and only holds limited vocabularies in hands (can't blame anyone for this), I'm never confident enough to write with it. But language is a beautiful thing - with simple words and sentences I can still be myself and further find some missing fragments of myself within it, which can't be found in my native language.

I'm gonna continue this journey with 4 core lessons learned from the book: clarity, simplicity, brevity and humanity. Now I've doubled my dual weapons, I hope and I can go out hunt for 2 birds, or 3.

November 27, 2016 Book

4 Thoughtful Quotes That Saved My Day

I had a bad day, I'm having bad days. I'm writing journals everyday, which is supposed to be a place for self realizations but instead nowadays I'm more like dumping my stress, depressions or even angers there.

With all that, today was different, some "magic" happened.

I picked up a book in a bookstore, I opened it, just one single phrase in the first page, and it goes:

Always look at the bright side of life - Monty Python

I don't know why it strikes me like a thunder. I'm sure I'll just skip it in any of my "ordinary" days but, it has the power to turn me to look at literally the bright side of things I've been going through. Indeed it's bright, more than bright, those are great things, it just comes equally with a price. Don't forget the vision, don't forget the bright side that brings you here in the first place, that's the message, don't know how much I appreciate it and the book.

Then, a second one kicks in later. I heard it a while ago from an evangelist at a local church, I don't believe in god but it still resonates with me.

All the things you've been going through, they're all under god's plan, you just haven't understood the reason yet.

(Originally it was in Japanese: "今までの全てはきっと神様のご計画通りで、我々はただまだそれを理解していないだけ"

Let me show you the 3rd quote now, it's very similar to the 2nd one:

Things don't happen to you, they happen for you

Yes, they happen for me, it's ultimately relying on how I interpret it, react to it, it's up to me to find the reasons, the meanings behind. Those are just events, itself can be bright or dark, light or heavy, but it's me who lead it form there, towards the goals I'm been dreaming about. I have the control, I have a choice, just like another great quote says:

Pain is inevitable, but suffering is optional.

October 06, 2016

iPad Pro 9.7 + Smart Keyboard weights

Here are the specs:

  • iPad Pro 9.7 Wifi model: 437g
  • Smart Keyboard: 230g
  • Smart Cover: 110g
  • 3rd Party Cases: 100~300g

And for comparison, here are the laptop specs:

  • MacBook Air 11 inch: 1.08kg
  • MacBook Air 13 inch: 1.35kg
  • MacBook Pro with Retina 13-inch: 1.58kg
  • MacBook Pro with Retina 15-inch: 2.04kg

Cited from from Apple official website with latest model.

That means iPad Pro 9.7 + Smart Keyboard is 667g, about 62% of lightest MacBook Air 11 inch(1.08kg), 413g lighter.

I considered about Apple's Smart Keyboard as the first option, I also got the chance to try my friend's Smart Keyboard, but at that time I felt it's a bit heavy. Maybe because I was using a iPad mini so when upgraded to iPad Pro 9.7, the tablet itself already felt heavier. I've looked for some 3rd party cases but a lot of them weight more than the Smart Keyboard(more than 230g). There are some "light-weight" 100g-ish cases but all feel not attractive...

So I ended up going back to Smart Keyboard. If it's almost the same weight, a portable and comfortable keyboard could help me in various ways I couldn't imagine(and it did!), the overall weight of the combination is 437g + 230g = 667g, almost half of MacBook Air 13-inch.

Note that there's no official data from Apple about the Smart Keyboard, I found it on some blogs, and some says it's 225g some says 230g.

July 31, 2016 ipad

Always There, Like A Mountain

Some people strike me as mountains, always there when you look upon, no matter how the environment changes.


Some of them are my close friends. Whenever I visit their blogs I know there're new contents waiting for me. Or I login to the game I've been AFK for such a long time, they're there inviting me to the party.

Some of them are connected on Internet, they don't know me but I've been following them for years. Michael Hyatt's "This Is Your Life" podcast is the central place for my mental nutrition and self improvement, Miyagawa's for trending tech news and Japanese anime/books/culture, Sensus WoW Rogue whenever I want to catch up my World of Warcraft rogue skills, and Blizzard Entertainment for high quality games all these years.

I'm not here to promote any of those things, what I want to say is, it's not hard to start anything nowadays, and if you get lucky you may even grab some spotlights on the stage, but it's always hard to keep going, even for games!

In this fast paced noisy world, those "mountains" give me a sense of order, calm me down when everything is in chaos. It shows me a way where to find the spiritual connection and emotional support, just like same old friends. No matter if you're a blogger, a youtuber, a gamer, a writer or any content provider, as long as you keep the persistency and frequency, you create a reliability.

I don't want to be a sky - too unstable and unpredictable, suddenly shout out with rain and thunderstorm. I want to be a humble stone, that shares certain similarites to a mountain. Nothing lasts forever - sun, stars, diamonds, but I hope the next time you pick up the stone of me, it's still the same old stone, and gives you a sense of calm and safety.

July 27, 2016

Organize Your Apple Notes with Folders - Nesting and Ordering

In the last post I wrote about migrating from Evernote to Apple Notes, here I want to show you how to organize your notes with similar features of Evernote.

Here is a screenshot of my Apple Notes notebooks.

Apple Notes folders - ordering and nesting

Create Nesting Folders

In Evernote you can create a Stack Notebook, you can do it too with Apple Notes, but seems like it can only be done in Mac, not iPad/iPhone.

  1. Create a new folder(Cmd + Shift + N)
  2. Drag this folder to the parent folder

Apple Notes create nesting folders

Tip: Hit "Enter" key to rename the folder, it's easier than single click the folder and wait for one second.

Difference Between Evernote Notebooks Stack

In Evernote you can't move any notes into a Stack Notebook itself, it's like a pseudo folder. But in Apple Notes a parent(stack) notebook is just like normal notebooks that can hold any notes. You may find it handy.

Ordering Folders

By default folders are in alphabet order, you can not move around notebooks to change its order. A common practice here is to assign some index numbers to the notebooks, like a notebook with name "00 Important" shows higher than "10 ABC".

Note that the default folder "Notes" is fixed, you cannot rename it nor reorder it, it always sit under "All iCloud", so you can use it as the inbox of all your notes.

Inbox Zero?

Inbox Zero is a technique to keep the inbox empty -- or almost empty -- at all times, and in the context of notes taking, it means you set a "Inbox", all notes go to that folder first, then at the end of the day you move the notes to respective folders.

I've heard it long time ago, and I'm applying same technique to Google Inbox. But for notes taking it feels overwhelming, at least for me.

Right now I'm only putting certain notes -- blog ideas, inspirational quotes, receipts etc, that I know exactly where it belongs to, and have a good chance to review them later -- to folders, for others they just remain in the default "Notes" folder. I don't want to waste brain energy on each note thinking "hmm.. which folder should I put it", most of the time I can find it through search so that's enough for me.

I find myself with the nesting folders and good orders, I had no difficulties transfer from Evernote, and the overall experience with Apple Notes has been great.

July 09, 2016 evernote, Apple Notes

Migrate Evernote to Apple Notes 2016

Evernote recently changed their price plans, free account can only sync across 2 devices.

Evernote free account sync limitation

The change itself is okay, you can't blame the company trying to make some money and make better products for their core users, but after using it for 7 years, and all the "improvements" the company has made during the time, I realized it's not the right tool for me. I don't need presentation mode, nor chat, or any other collaboration/business features, I just want to take notes. I did upgrade to Pro user before but I found I was never using any of those features heh. This change of prices gives me a perfect chance to look for alternatives.

Apple Notes, on the other hand, is getting better and better. Some of the benefits are:

  • Free: No more Evernote "Upgrade" noise, nor limitation of sync devices. Yes it's limited to Apple devices, but if you're an Apple user then this is not a problem, plus you can access for the web version too.
  • Clean UI and minimum features: In its core it's just a simple notes taking app, with right enough features to make it powerful. You can create folders to organize your notes, and even nesting them. There is no tag system but I can always find my notes with search.
  • Better integration with Apple products: probably just a personal preference, but when I browse websites or reading on iPad, I really love the split view to open Apple Notes, lightening fast and easy to use, and after dropping the notes I can easily get back.

Import Notes from Evernote to Apple Notes

  1. Cmd + A to select the notes you want to export to Apple Notes, click "File -> Export Notes..." and save as a .enex file.
    Export from Evernote

  2. Open Apple Notes, click "File -> Import Notes..." and choose the previous .enex file
    Import to Apple Notes

  3. Notes will be imported into a folder called "Imported Notes"

Further reading

Organize Your Apple Notes with Folders - Nesting and Ordering

Fun reading

Recently I tweeted about another article about this change.

This isn’t really about Evernote in particular. It’s about how we all use services today without really owning anything. Downloading an app and paying a subscription fee doesn’t entitle you to much, ultimately. Evernote, like so many apps we love, is really just granting you a license to use its service when you sign up for an account.

It raises a reasonable concern. The web and tech industry is changing rapidly, 10 years later which service can still be there, and what happens when it hit and end, or an action-required kind of change, what options do we have then? What do we really own?

July 09, 2016 evernote, Apple Notes

Check Alert Message with Poltergeist or Capybara Webkit

Use accept_alert to get the alert message.

  • Poltergeist ignores alerts/confirms by default(source)
  • Poltergeist has had support for Capybaras modal api since September 2015( source)

That means you can same syntax for Poltergeist or capybara-webkit.

expect(accept_alert).to eq("Javascript alert message")

# or with block syntax

# will fail if alert message doesn't match
accept_alert("Javascript alert message") do 
  # next expectation

The first one expect(accept_alert).to reads a bit weird, but that's the return value of accept_alert.

June 28, 2016 capybara, Testing, poltergeist

CSS: Highly Customizable Text Underline

If you’re not happy with the default text-decoration: underline, want to tweak the thickness of the underline or vertical space between the text and the underline, then you may want to the background trick introduced in this post. Medium is also using this kind of technique.

// use background image to draw the underline
// this way we can tweak the vertical space between text and underline
a {
  text-decoration: none;

  background-image: linear-gradient(to bottom, rgba(0,0,0,0) 50%, rgba(0,0,0,.6) 50%);
  background-repeat: repeat-x;
  background-size: 2x 2x;
  background-position: 0 22px;

A quick demo of how it looks like:

text underline with background image demo

One caveat of this approach is, the position and thickness of the underline is depending on the font size. So if you’re using a different font-size as I do in the demo, you may need to change the background-position to fit your design.

Also if you want to apply it to different part of your page which all have different font-size, you will need to figure out the exact size for each part.

In my blog I’m using SCSS variables to document this behavior.

$post-font-size: 20px;
$underline-size: 2px;

background-size: $underline-size $underline-size;
background-position: 0 ($post-font-size + $underline-size);
June 06, 2016 css

Add binding.pry breakpoint dynamically with pry-byebug

When debugging if you want to check at some lines where you forget to put the binding.pry, you could use some help from pry-byebug's break points feature.

You can set and adjust breakpoints directly from a Pry session using the break command:

break SomeClass#run            # Break at the start of `SomeClass#run`.
break app/models/user.rb:15    # Break at line 15 in user.rb.

Please bear with me with this example as a showcase.

scenario "Guest can't view draft post" do
  post = create(:post, title: 'Vim', published_at: nil)
  visit post_path(post)
  expect(page).not_to have_content('Vim')

Suppose you put the first binding.pry there to check the creation of post, then somehow you also want to check what's going on in the controller, normally you would stop/finish the spec and drop the binding.pry to controller and rerun the spec. With pry-byebug you could set the breakpoint in the runtime: when the execution is stopped before the visit post_path(post)

[1] pry(#<RSpec::ExampleGroups::Posts>)> break PostsController#show

  Breakpoint 1: PostsController#show (Enabled)

  10: def show
  11: end

Now the breakpoint is set, if you continue the spec then it'll stop at the posts#show action.

This is also very useful when you check some codebase you're not familiar with like gems, during the debugging you also want to check some local variables inside a block or so, with the break command now you don't need to make changes to the library and restart your rails server.

June 06, 2016 Testing