My IoT Hardware Notes – 我的IoT筆記

2015 年十分幸運得到了幾塊 IoT
Intel Edison / Intel Galileo Board
其實之前都很有興趣去學習這些東西

但是因為時間關係..太多野想學..
亦都沒有找到什麼 像Workshop 一樣的 Event 或找到高人指點..
所以學習起上來會比較吃力

上週未去了FabLab London IntelIBM 舉辦的 Urban Data Science Event

在這個Hackathon 上雖然沒有贏到獎項..
但是識了些新朋友和學會了很多Hardware的知識

最近開始接觸 IoT 一些 E.g. Intel Edison / Intel Galileo / Raspberry Pi

所以想寫下一些筆記..和像我一樣的朋友Get Started 和 方便將來使用..

E.G. 怎樣設定和怎麼 Program這些版
當看到我的筆記有錯也是有更好的 Best Practices時..
請留言教教我

大家一起學習吧

Crystal Report Assign Variable – 如何在Crystal Report上 設定變數

由於太耐沒有使用crystal report的關係
所以忘了怎樣 Assign variable/設定變數
通常Developer都會使用”=“去 Assign variable/設定變數
今天也嘗試使用 “=” 來 Assign Variable 可惜得到不到想要的結果

最後發現原來是syntax上用錯了
以下是正確的方法 “:=
assign variable我們耐要使用 “:=“的

E.G.
錯誤示範

// Define Variable
StringVar s = "abc";
// Show Variable
s

Crystal Report - Formula Workshop - Formula Editor Failed to assign Variable Sample
結果是沒有任何寫出現的

Crystal ReportAssign Variable的正確方法是使用 “:=

// Define Variable
StringVar s := "abc";
// Show Variable
s

Crystal Report - Formula Workshop - Formula Editor Success to assign Variable Sample

這個Demo Designer ViewPreview
Crystal Report Designer Mode Preview - How to assign Variable

這個DemoPreview
Crystal Report - Preview Mode - How to assign Variable

Hope you find it useful

Time to learn new stuff Package Manager – Bower / Composer / Nuget/ Gradle – 係時候學下新的東西了 Package Manager -Bower / Composer / Nuget/ Gradle

在數個月前每聽到Package Manger
E.G. Bower /  Composer / Nuget/ Gradle

我都會避免使用的..
因為不太明白他們的概念和使用方法..
所以還是使用一些十分傳統的方法..把LibraryInternetdownload下來
之後放在 相關的資料夾 後再在網頁上或者Visual Studio相加入適當的參考便算數
但當你用耐了和多了Teammate 一起開發時便會發現原來有 dependency的問題

所以一年多前我變得開始使用Visual Studio 中NuGet package manager
他幫我解決了很多的問題從些之後我便是用它來幫助我處理以visual studio開發的方案..
那時還沒有想過原來用其他Command LinePackage Manager
NuGet Package Manager

再對上一次Hackathon比賽中需要使用Android Studio 來開啟一些Sample Code
我嘗試使用那些傳統的方法..Download source code 之後開啟..
但是不成功..
最後其中一個sponsor的開發人員便教我如何使用gradle 便學會了
因為當我一看見這個gradle這個東西是便不懂得應該怎樣辦
因為通常我是在網上下載了程式碼後使用android studio open便可以這次發現我的方法錯了經過他的詳細解釋便學成好了一個新的技術

從此開始便發現雖然我是一個backend developer
但是都需要學習一下怎樣使用package manager
幸好有很多朋友的工作地方是用這些Best Practices
所以他們一早便學會了
現在有什麼不明白也可以向他們請教一下

所以便在這裏想和大家分享怎樣開始使用package manager希望將來有時間整理我的筆記在和大家分享
一起以更有效率..用更好的方法來寫更好更穩定的程式

Have a good day

ASP.Net MVC 5 Membership.GetUser() Issue

今天公司發佈了新的網站

由于沒有好好的做QA / 測試..
所以今天發現了很多的問題…
[如果他們一早聽我之前建議的做法..應該不用那麼失策的]

今天的其中一個問題是和 Asp.Net MembershipAsp.Net Identity有關的
自從Asp.Net MVC 5開始 Asp.netMembership 便用了 ASP.Net Identity 來取代
之前的 ASP.NET MembershipSimple Membership systems
ASP.NET MembershipSimple Membership systems便不能在ASP.Net MVC 5的網站上使用
ASP.Net Identity vs ASP.Net Membership system

所以公司的其中一位同事便將公司另一個網站的asp.net mvc3轉乘mvc5在他的電腦上測試是完全沒有問題的
當我們要把所有系統更新的時候把網站發放到伺服器上變出現了一個登入的問題在登入期間需要花一分半鐘才能進入主頁
公司的其中一個網絡顧問說是我們程式碼的問題..

但是我的同事卻說在他電腦上運行沒有問題
所以應該是網絡的問題
[作一些沒有意思的Argue]
最後因為覺得沒有意思浪費時間說誰對誰錯
所以我變進行了一個小小的除錯個步驟
發現應該是這個程式碼的問題

之後發現原來同事升級網頁的時候真的直接把Asp.Net MVC3 升級到 Asp.Net MVC5
但是沒有把所有和membership有相關的程式碼轉換成使用identity
所以當我在除錯模式是執行這個網頁是在membership這個功能花了很久才能執行下一段程式碼
解決方法十分簡單我們只需要把所有和membership相關的程式碼轉換成identity便可

解決方法
我們只需要把之前使用的 Membership.GetUser()
轉成 User.Identity 便可以了

E.G.
<pre>
string Username = Membership.GetUser().UserName;
</pre>
轉成
<pre>
string Username = HttpContext.Current.User.Identity.GetUserName();
</pre>

Hope you find it useful

Free Google Earth Pro License Key – 免費的谷歌地球專業版許可證密鑰

今日無意中看到一篇文章..他介 Google 最近取消了 Google Earth 專業版 的訂閱費
現在只需要填表格登記資料 便可以

你可能會問… 點解個網址是寫上 “Free Trial / 試用版”?
會唔會用30日便要比錢?
我都做了些功課… 是這樣的:

您必須取得有效的授權碼,才能使用 Google 地球專業版。自 2015 年 1 月 20 日起,我們免費提供 Google 地球專業版授權。取得 Google 地球專業版授權後,您就可以註冊、下載、安裝並登入 Google 地球專業版,開始使用其中的進階功能。

開始使用 GOOGLE 地球專業版 取得 Google 地球專業版授權
詳情可以參考
https://support.google.com/earth/answer/176160?hl=zh-Hant

有興趣電腦又有空位的朋友可以到以下網扯填寫表格
https://geoauth.google.com/gev0/free_trial.html
填上個人資料..[是但寫都應該沒有問題]
Google Earth Pro License Key Application Form
最重要是填寫正確Email..
Google Earth Pro Account Registered

因為他會EmailGoogle Earth Pro License Key
*當你Submit Form 時他可能會話登記唔到..
只要按上一頁.之後試多幾次便可以了
Google Earth Pro License Email

系統需求
https://support.google.com/earth/answer/20701?hl=zh-Hant

建議使用:
作業系統:Windows 7 及 8
CPU:Pentium 4 2.4GHz+ 或 AMD 2400xp+
系統記憶體 (RAM):1GB+
硬碟:2GB 以上的可用空間
網路速度:768 Kbit/秒
顯示卡:DirectX9 和 3D 功能加 256MB VRAM
解析度:1280×1024/顯色能力:32 位元全彩

Linux 和 Mac 都可以用的

Google Earth Pro 下載

http://www.google.co.uk/earth/download/gep/agree.html

安裝 Google Earth Pro
Installing Google Earth Pro

安裝Google Earth Pro 之後.. 第一次開啟會問你 License Key的資料的…
Google Earth Pro - First Launch

填上License Key的資料後便可以用了
Time to start to try out Google Earth Pro

Hope you find it useful

Have fun

Codeigniter get user IP address – 如何使用Codeigniter 取得使用者的IP地址

之前的網誌和大家介紹了怎樣用PHP 取得 Client IP Address
PHP Get Client IP Address on OpenShift

今天想和大家分享當你使用 Codeigniter Framework時怎樣取得 Client IP Address

解決方法十分簡單..
我們可以直接使用Codeigniter 上的 功能 便可以了

input->ip_address()

E.g.

$ip = $this->input->ip_address();

Hope you find it useful

Ionic Publish Android application – 在Ionic 上如何發佈 Android 程式

回到英國之後.. 開始專注使用Ionic Framework來開發程式

因為常常想到新的功能..所以便常常要再發佈更新到 Google PlayStore

為了方便自己.還是寫一個筆記方便自己將來發佈 Android 程式

我相信大家還是在你的 Ionic Project Directory
你可以使用以下指令 去建立 一個”Release Build

cordova build --release android

Ionic Release Build
之後我們便需要去到輸出 apk 檔的 資料夾 以方便之前的動作
通常在Ionic Project上的 platforms\android\ant-build 資料夾上
Ionic Build directory

e.g.

cd platforms\android\ant-build

之後我們便會看到 ionic generateunsigned release apk檔案
CordovaApp-release-unsigned.apk on Ionic Build Folder

之後我們便可以 Sign 這個 unsigned releaseapk
Ionic defaultunsigned release apk名是這樣的 “CordovaApp-release-unsigned.apk

我們可以用以下指令到簽署unsigned apk

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [Full filename and path.keystore / 你的keystore的 路徑和檔案名] CordovaApp-release-unsigned.apk [alias name / 別名] 

e.g.

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore D:\Ionic\SampleProject\keystores\SharechiwaiDemoReleaseKey.keystore CordovaApp-release-unsigned.apk ShareChiWaiDemoReleaseKey 

之後他們叫你輸入之前在這個keystore上設定的 密碼
use jarsinger to sign unsigned apk
* keystore 是在之前的網誌上有介紹給大家如何建立自己的sign key

詳情可以參考以下網誌

Useful command for Android Development 1 – 一些有用的在開發Android程式時幾有用的指令筆記

Ionic Android Signed Apk
完成後便可以使用 “zipalign” 功具來 優化 Android 程式.. 主要用來壓縮apk內的 圖/資料檔等等..
以便減輕記憶體/RAM 的使用量

zipalign -v 4 CordovaApp-release-unsigned.apk [Your APK name / 你想出現的檔案名].apk

e.g.

zipalign -v 4 CordovaApp-release-unsigned.apk sharechiwai_demo.apk

zipalign - compress apk
可以準備 Upload 你的 APK 了
Signed APK with zipalign

Hope you find it useful