2013/10/30

何時「觸控螢幕」才能跟「智慧型」的概念在產品上分開? 不是有「觸控螢幕」就一定是「智慧型」的好嗎? 觸控螢幕上的界面設計的很爛一樣是「智障型」產品! 馬桶裝上「觸控螢幕」能比原本的實體按鍵有多幾趴智慧?...

何時「觸控螢幕」才能跟「智慧型」的概念在產品上分開?


不是有「觸控螢幕」就一定是「智慧型」的好嗎?


觸控螢幕上的界面設計的很爛一樣是「智障型」產品!


馬桶裝上「觸控螢幕」能比原本的實體按鍵有多幾趴智慧?






via Tumblr http://cyberrob.tumblr.com/post/65486684645

Who the hell are these guys? I want their name in English!





Who the hell are these guys? I want their name in English!






via Tumblr http://cyberrob.tumblr.com/post/65480529863

2013/10/29

Finally see the sky like it forecasted





Finally see the sky like it forecasted






via Tumblr http://cyberrob.tumblr.com/post/65390396575

2013/10/28

Raspberry Pi web server - Home

Raspberry Pi web server - Home:

Here’s some basic ways of playing around with RPi.






via Tumblr http://cyberrob.tumblr.com/post/65299525279

2013/10/27

#Taiwanese #Halloween (在 鷺江國小)





#Taiwanese #Halloween (在 鷺江國小)






via Tumblr http://cyberrob.tumblr.com/post/65230270553

2013/10/24

I like the way she dress up. Better photo if head’s up.





I like the way she dress up.

Better photo if head’s up.






via Tumblr http://cyberrob.tumblr.com/post/64920249792

2013/10/23

Ready? Go!





Ready? Go!






via Tumblr http://cyberrob.tumblr.com/post/64851248365

2013/10/21

昨天大老遠開車載著妻小到八里左岸,本想搭渡船到對岸淡水逛逛,看到碼頭入口的那條街我就反悔了! 加上毛毛細雨,從對岸山上下來的冷風,我們來回大概只走了一公里,一邊躲腳踏車,一邊欣賞沿線被搞砸的人工堤岸,每...

昨天大老遠開車載著妻小到八里左岸,本想搭渡船到對岸淡水逛逛,看到碼頭入口的那條街我就反悔了!


加上毛毛細雨,從對岸山上下來的冷風,我們來回大概只走了一公里,一邊躲腳踏車,一邊欣賞沿線被搞砸的人工堤岸,每幾步都可見岸邊堆滿疑似廢棄的石材碎片,壓蓋住水筆仔賴以為生的潮水間地,這…我可沒興緻拍照留念。


趙少康在他節目講的,美國公園就是公園,都是自然景觀,沒有多餘人工設施,因為公園的目的是要讓人去享受遠離已久的大自然,並不需要多做裝飾!而這就是臺灣悲哀的地方,到處都是工程、到處都是設施,似乎這樣才能證明單位有在做事,包商才貪得到錢。


何處可見自然景觀?大概要遠離捷運,遠離人群塵囂才可得!






via Tumblr http://cyberrob.tumblr.com/post/64644777452

I thought I lost the capability of verbal conversation. Since my wife got her iPhone, she always...

I thought I lost the capability of verbal conversation. Since my wife got her iPhone, she always spent her free time on iPhone reading comics, on Facebook playing game with her friends.


As for me, I spend my time on lots of things on my nexus. Games, news, blogs. They all keep my busy even when I’m nothing to do. it’s not nothing to do, it is sometime feel to do nothing at all. Before smart phone, maybe I could just go to sleep, or settle down myself to read a simple book, our just drink a cup of coffee wondering around. Without the phone. It’s the problem I think.






via Tumblr http://cyberrob.tumblr.com/post/64638233690

2013/10/19

#slipper #bear





#slipper #bear






via Tumblr http://cyberrob.tumblr.com/post/64453804881

#baby #slipper





#baby #slipper






via Tumblr http://cyberrob.tumblr.com/post/64453382494

2013/10/18

Flashing LED with Node.js on RPi

Compiling Nodejs for…before I went to sleep it took around 2 hours on my rpi. I think it’s quite stupid but the installation from apt-get didn’t work. Even I 'which node' there still nothing…so you know the story. If you want to compile it just follow this script from github.


So assume you have nodejs and npm installed, then we could start mess around with some modules. Lots of node modules for operating gpio like rpi-gpio, pi-gpio. For more you can check out here. Or search it with npm:



$ -> npm search gpio

image


I simply followed the instructions first install pi-gpio. With little js script:



var gpio = require("pi-gpio");

var intervalId;
var durationId;
var gpioPin = 22; // header pin 22 = GPIO port 25

// open pin 16 for output

gpio.open(gpioPin, "output", function(err) {
var on = 1;
console.log('GPIO pin '+gpioPin+' is open. toggling LED every 100 mS for 10s');
intervalId = setInterval( function() {
gpio.write(gpioPin, on, function() {
// toggle pin between high (1) and low (0)
on = (on + 1) % 2; }); }, 100
);

durationId = setTimeout( function(){
clearInterval(intervalId);
clearTimeout(durationId);
console.log('10 seconds blinking completed');
gpio.write(gpioPin, 0, function() {
// turn off pin 16
gpio.close(gpioPin); // then Close pin 16
process.exit(0); // and terminate the program
});
}, 10000); // duration in mS
});


And run it with sudo:



$ -> sudo node dev/gpio_test.js

Note that the var gpioPin isn’t the gpio pin, it should the header pin number. In my case I want to play with the LED connected on GPIO #25, then the gpioPin is 22. Check out this reference image.


image


Check out the self-content show-off video


http://cyberrob.tumblr.com/post/64373662871/clip-of-that-little-script-playing-with-led






via Tumblr http://cyberrob.tumblr.com/post/64373791101

Clip of that little script playing with LED





Clip of that little script playing with LED






via Tumblr http://cyberrob.tumblr.com/post/64373662871

2013/10/17

RPi-GPIO Cmd try out

Finally I’ve successfully TURN On & Off 3 LED lights on the breadboard.


Major road blocks are:



  1. Have no idea of which pin is which, say which is 25 pin.

  2. Don’t know if the LED is connected the right way.

  3. Strangely the echo command somehow not permitted by RPi.


Answer for Q1, we need multimeter to make sure which pin connect to which line. I’m using a bus to connect all pins to breadboard so this must be checked.


Answer for Q2, with help from Levy I realize the current should be set to flow from pin 25 to GND , not from pin 25 to the negative on the board.


Answer for Q3, it seems the cmd should be entered while you’re at root directory, like:



root@rpi:/# echo "1" > /sys/class/gpio/gpio25/value

So, the whole steps are as followed:



  1. Say you want to play with pin #25, then enter this, which will create corresponding files & directories needed in the export/:

    root@rpi:/sys/class/gpio# echo 25 > export

  2. Enter this line (don’t know what it means but without this cmd you won’t succeed)

    root@rpi:/sys/class/gpio# echo out > /sys/class/gpio/direction

  3. Then you could start turn on or off that LED installed:

    //Turn LED On @ pin #25
    root@rpi:/sys/class/gpio# echo 1 > /sys/class/gpio/gpio25/value
    //Turn LED Off @ pin #25
    root@rpi:/sys/class/gpio# echo 0 > /sys/class/gpio/gpio25/value



I’m referencing the book of Get Started with Raspberry Pi and this Instrctable tutorial. Big difference is the book didn’t mention the step 2 above, which I think it’s a setback for me. Now I could move on to more fun! Hope you also did it!



blue LED on pin #9 and green LED #17



red LED off on pin # 25






via Tumblr http://cyberrob.tumblr.com/post/64285566830

CM10.2 Nightlies Changelog - Mako

CM10.2 Nightlies Changelog - Mako:

如果依照10.1的進度,也許10月底11月就可以有10.2RC可以用了!


裡面究竟BLE支援程度如何呢?






via Tumblr http://cyberrob.tumblr.com/post/64279789446

2013/10/16

有規格就照規格,沒規格就找老闆的。 哪有專業發揮餘地? 也許我們一直在尋找的就是能讓專業發揮的地方!

有規格就照規格,沒規格就找老闆的。


哪有專業發揮餘地?


也許我們一直在尋找的就是能讓專業發揮的地方!






via Tumblr http://cyberrob.tumblr.com/post/64195821338

在 遠東世界中心園區





在 遠東世界中心園區






via Tumblr http://cyberrob.tumblr.com/post/64181396910

discoverynews: theatlantic: What It’s Like to Plummet to Earth...





discoverynews:



theatlantic:



What It’s Like to Plummet to Earth at 834 Miles Per Hour



New footage shows Felix Baumgartner’s record-breaking freefall from the stuntman’s point of view.


Read more.




Wow, my heart stops still, a year later…



So Cool to jump off from that heights!!! 高空彈跳算什麼!






via Tumblr http://cyberrob.tumblr.com/post/64169533849

2013/10/15

弟弟討厭文旦





弟弟討厭文旦






via Tumblr http://cyberrob.tumblr.com/post/64106864773

Migrate a android project from IntelliJ to Gradle build system

I’ve been wondering how to migrate my android project to the SO-CALLED gradle build system. Afraid of messing up with my project, I always auto-skip myself to those tutorials about how wonderful to use gradle. Saying so I’m also very frustrated configing those dependencies. Just drive me crazy every time starting a freshing new project.


So, let’s see how to make a android project to a gradle project (Not transferred by Android Studio, just a plain gradle project). Referencing this post of migrating from intellij,



  1. make a copy of original project

  2. delete .git directory & other unnecessary files

  3. touch a build.gradle and settings.gradle in the project parent directory

  4. Fill in your build.gradle with these code, just copy & paste from that post:image

  5. If you have many projects need to be imported as dependencies, then you need to modify settings.gradle like this:




    // Here I declard 2 of my local libraries, pointing to your actionbarsherlock library project from local instead of downlong from maven repo
    include 'ActionBarSherlock'
    project(':ActionBarSherlock').projectDir = new File('./ext-libs/actionbarsherlock')
    include 'FaceBook'
    project(':FaceBook').projectDir = new File('./ext-libs/facebook')


  6. Then you could use these 2 library in the build.gradle like this:


    dependencies {
    // Google Play Services
    //compile 'com.google.android.gms:play-services:3.2.65'
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':ActionBarSherlock')
    compile project(':FaceBook')
    //compile project(':GPlayServcie')
    //compile 'com.android.support:support-v4:18.0.0'
    //compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    //compile 'com.googlecode.android-query:android-query:0.25.9'
    //compile 'com.google.code.gson:gson:2.2.4'
    //compile 'net.liftmodules:google-analytics_2.5_2.9.1:1.0'
    }


  7. Most importantly for each library projects also need a build.gradle in their own project directory. It seems that gradle will build them as well to be used in “root" project. If there’s no special config you could just copy this as the build.gradle into your library project:

    buildscript {
    repositories {
    mavenCentral()
    }
    dependencies {
    classpath 'com.android.tools.build:gradle:0.5.6'
    }
    }

    apply plugin: 'android-library'

    dependencies {
    compile 'com.android.support:support-v4:13.0.0'
    }

    android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
    minSdkVersion 7
    targetSdkVersion 16
    }

    sourceSets {
    main {
    manifest.srcFile 'AndroidManifest.xml'
    java.srcDirs = ['src']
    res.srcDirs = ['res']
    assets.srcDirs = ['assets']
    }
    }
    }


  8. Finally and hopefully you can run this without any warning or error:


    -> $ gradle assembleDebug --info


If success, you’ll find a apk in the /bin directory of root project, which its name isn’t what I thought it is. Install it but still FC…not sure why the class is missing:



E/AndroidRuntime( 4902): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.bono.project/com.bono.project.activity.FragmentTabs}: java.lang.ClassNotFoundException: Didn't find class "com.bono.project.activity.FragmentTabs" on path: /data/app/com.bono.project-1.apk
E/AndroidRuntime( 4902): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2224)
E/AndroidRuntime( 4902): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
E/AndroidRuntime( 4902): at android.app.ActivityThread.access$600(ActivityThread.java:153)
E/AndroidRuntime( 4902): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
E/AndroidRuntime( 4902): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 4902): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 4902): at android.app.ActivityThread.main(ActivityThread.java:5227)
E/AndroidRuntime( 4902): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 4902): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 4902): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
E/AndroidRuntime( 4902): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
E/AndroidRuntime( 4902): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 4902): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.bono.project.activity.FragmentTabs" on path: /data/app/com.bono.project-1.apk
E/AndroidRuntime( 4902): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
E/AndroidRuntime( 4902): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
E/AndroidRuntime( 4902): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
E/AndroidRuntime( 4902): at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
E/AndroidRuntime( 4902): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2215)
E/AndroidRuntime( 4902): ... 11 more


Anyway, according to that post, Android Dev Tool team will relese a migration tool for devlopers like me to do the tedious job. However the IntelliJ also support gradle, which make me wondering what’s difference between Android Studio and IntelliJ, since AndroidStudio is branching from IntelliJ. Hope we’ll find out soon and this article helps.






via Tumblr http://cyberrob.tumblr.com/post/64102567332

一個使用ActionBarSherlock,Facebook SDK, GooglePlayService,...





一個使用ActionBarSherlock,Facebook SDK, GooglePlayService, GoogleAnalytics的Android Project。


竟然可以成功跑一次 gradle assembleDebug —info


好感動啊!


請服用官方使用說明:http://tools.android.com/tech-docs/new-build-system/migrating-from-intellij-projects






via Tumblr http://cyberrob.tumblr.com/post/64099278073

2013/10/14

李宗盛...





李宗盛


山丘


作詞:李宗盛

作曲:李宗盛


想說卻還沒說的 還很多

攢著是因為想寫成歌

讓人輕輕地唱著 淡淡地記著

就算終於忘了 也值了


說不定我一生涓滴意念

僥倖匯成河 然後我倆各自一端

望著大河彎彎 終於敢放膽

嘻皮笑臉 面對 人生的難


也許我們從未成熟

還沒能曉得 就快要老了

儘管心裡活著的還是那個年輕人


因為不安而頻頻回首

無知地索求 羞恥於求救

不知疲倦地翻越 每一個山丘


越過山丘 雖然已白了頭

喋喋不休 時不我予的哀愁

還未如願見著不朽

就把自己先搞丟


越過山丘 才發現無人等候

喋喋不休 再也喚不回溫柔

為何記不得上一次是誰給的擁抱

在什麼時候


我沒有刻意隱藏 也無意讓你感傷

多少次我們無醉不歡

咒罵人生太短 唏噓相見恨晚

讓女人把妝哭花了 也不管


遺憾我們從未成熟

還沒能曉得 就已經老了

盡力卻仍不明白

身邊的年輕人


給自己隨便找個理由

向情愛的挑逗 命運的左右

不自量力地還手 直至死方休


越過山丘 雖然已白了頭

喋喋不休 時不我予的哀愁

還未如願見著不朽

就把自己先搞丟


越過山丘 才發現無人等候

喋喋不休 再也喚不回了溫柔

為何記不得上一次是誰給的擁抱

在什麼時候


喋喋不休 時不我予的哀愁

向情愛的挑逗 命運的左右

不自量力地還手 直至死方休


為何記不得上一次是誰給的擁抱

在什麼時候






via Tumblr http://cyberrob.tumblr.com/post/63980684022

即使在iPhone問世之後,經過了幾年的簡化又在複雜化,我們的設計跟觀念並沒有跟著一起提升,以至於我們依然活在Software...





即使在iPhone問世之後,經過了幾年的簡化又在複雜化,我們的設計跟觀念並沒有跟著一起提升,以至於我們依然活在Software Rage的時代中。


而這,並不單是微軟或蘋果、或任何一家科技公司的錯!而是我們其他開發者沒有做到應盡的責任!






via Tumblr http://cyberrob.tumblr.com/post/63980172746

2013/10/13

集點換獎品的app服務一直前仆後繼出現,不管是聯合多間店訴求「多卡合一消滅厚皮夾」,或是單一店家訴求「本店唯一個人專屬」,我認為都跳脫不了一個宿命。 這個宿命就是 一個使用者要多喜歡,或多常去某一件店,...

集點換獎品的app服務一直前仆後繼出現,不管是聯合多間店訴求「多卡合一消滅厚皮夾」,或是單一店家訴求「本店唯一個人專屬」,我認為都跳脫不了一個宿命。


這個宿命就是


一個使用者要多喜歡,或多常去某一件店,他/她才會想下載這個app? 甚至”偶爾想到”要去用那些”不定時出現”又”很快過期”的優惠?


沒有使用geo fence加上時間提醒的話,就算使用者安裝了,這個app下場就是躺在螢幕角落無人聞問了。






via Tumblr http://cyberrob.tumblr.com/post/63927195649

2013/10/12

老皮與我





老皮與我






via Tumblr http://cyberrob.tumblr.com/post/63820279027

昨天手滑買了一副粗框眼鏡,希望不會後悔。 我好像都學不會買便宜東西到付出更多代價的下場。

昨天手滑買了一副粗框眼鏡,希望不會後悔。


我好像都學不會買便宜東西到付出更多代價的下場。






via Tumblr http://cyberrob.tumblr.com/post/63809812406

我打電話去預約剪頭髮的時候,被小姐說:「這個人講話很頓ㄉㄟ,你要不要來跟他講」 不好意思哦!我還真的不知道要怎麼跟你們預約,講設計師的名字還聽不懂嗎?

我打電話去預約剪頭髮的時候,被小姐說:「這個人講話很頓ㄉㄟ,你要不要來跟他講」


不好意思哦!我還真的不知道要怎麼跟你們預約,講設計師的名字還聽不懂嗎?






via Tumblr http://cyberrob.tumblr.com/post/63809672881

2013/10/11

"我是個很健忘,又懶惰的人。 所以我得每天寫文章。 就像記憶不超過一天的病患一樣, 我們的記憶又比他們好到哪去? 我的程度大概是「一週記憶能力者」。"


我是個很健忘,又懶惰的人。

所以我得每天寫文章。


就像記憶不超過一天的病患一樣,

我們的記憶又比他們好到哪去?


我的程度大概是「一週記憶能力者」。






via Tumblr http://cyberrob.tumblr.com/post/63706873001

2013/10/10

最近工作內容跟方式,讓我越來越無言。我也很討厭在一個鬼打牆的迴圈裡打轉,一會遵照手上殘缺不全的規格硬搞,一會而兒又說要做我們自己的東西。 兩種東西硬要搞在一起能有什麼好東西? 目前我覺得最怪異的點就是:...

最近工作內容跟方式,讓我越來越無言。我也很討厭在一個鬼打牆的迴圈裡打轉,一會遵照手上殘缺不全的規格硬搞,一會而兒又說要做我們自己的東西。


兩種東西硬要搞在一起能有什麼好東西?


目前我覺得最怪異的點就是:


為何我們要先入為主的認為自己不行怕別人知道?


我猜測是美國這位老闆極力要在臺灣設點,要說服其他人所以得先裝得很行吧!


搞個自我感覺良好,可以執行的程式就想要讓別人覺得你不錯,覺得我們能力夠?究竟為何我們要先入為主的認為自己不行?某種程式沒碰過不會寫就是能力不夠?這是什麼病態的心理?


一個沒有目標,沒有節奏的團隊能走多遠?


就讓我們看下去。







via Tumblr http://cyberrob.tumblr.com/post/63638246073

2013/10/09

"一個政府內馬王政争搞的像兩岸戒嚴後要破冰一樣,還得什麼能釋出善意,任何舉動都要做。"


一個政府內馬王政争搞的像兩岸戒嚴後要破冰一樣,還得什麼能釋出善意,任何舉動都要做。






via Tumblr http://cyberrob.tumblr.com/post/63516072588