星期日, 7月 05, 2015

Swift 入門

學Swift 的目的是為了寫iOS App。
       
最近花了些時間讀Swift,發覺Swift 很好入門卻也很難精通,因為腦中只有少年C語言的記憶,容不下太多東西,也跨不過一直再學新語言的困惑,這些年來知識是爆炸了,但卻多是換個包裝,套句術語就是表示(presentation)的改變,平台(Platform) 增加。倒是多學些電腦Keyword,多讀點原文的東西以免看不懂中文翻譯,又可與國際接軌。

Swift 讓我最困擾的是 Generic 與 Closure,這些有點像讀書時看不懂的C pointer。

廢話少說,立而行,直接讀書、跑程式是最佳的學習路徑。

1. 先讀 Swift 入門 蘋果的書店有原文書,也可以網路找找中文書, 或買本簡體書 "瘋狂swift講義" 還 OK, 花個時間好好讀懂它, 語言本身與iOS 是分開學習的。

2. 有一台Mac, OS 10.10 裝xcode 7-beta, 裝最新的 xcode 可以讓你以後學iOS App直接在蘋果設備 (iDevice) 上運行,之前的版本是要花99美金的。若暫時沒有蘋果設備也可以下穩定版xcode 6。
此外Swift 2.0 與之前的版本在編譯(Compiler)上也有差異。

3. 用xcode  的playground 學Swift, 一行馬上跑出結果 , (之前xcode 6 是println)

  print("hello world")


星期日, 3月 16, 2014

iPad寫iPhone App程式免費工具安裝


iPad或iPhone必須越獄
   筆者的iPad 為三代,iPhone4都是iOS7.0.4版。


2014/3/17 更新
舊版移除篇(若沒裝可跳過) iPad/iPhone 裝置端:
因為THEOS 升級version 0.9.523, 支援原生的SDK 套件及arm64, 若有升級, SDK的由原先的/var/sdk 路徑改為 $THEOS/sdks 並以 類似iPhoneOS3.0.sdk, iPhone7.0.sdk. 的命名方式擺放。
也可以砍掉舊的重裝, 移除方法
1. 將目錄 $THEOS 移除
2. 將目錄 /var/sdk 移除
3. Cydia裡舊版的Compiler Darwin CC Tools 要移除
4. Cydia裡舊版的perl 要移除
5. Cydia加入 軟體源 repo.coolstart.org
6. Cydia 裝 iOS toolchain
再進行安裝THEOS 及 SDK 動作
   
應用App工具安裝
iPad/iPhone 端(工具)
1.mobileTrerminal (Cydia)
   在http://cydia.xsellize.com 的軟體源可以找到MobileTerminal (iOS7),可以在iOS7使用。
2. WebSSH iTuneApp
  ssh 連線免費軟體,鍵盤比mobileTerminal 優,稍後用來替代mobilTerminal。
  ituneApp要用前一篇的解沙盒限制才能拜訪本地ip,或不解直接拜訪另一部iphone也可
3. FTPmanagerFree iTuneApp
   可以用sftp訪問內存的檔案系統,並自帶一文字編輯器,可用來編寫程式。
4. APT 0.7(Cydia)
5. OpenSSH(Cydia)
6. BigBoss Recommended Tools(Cydia)
會裝一堆工具,進終端機(MobileTerminal)可用的指令集。
7. 安裝 Cydia Erica UtilitySyslogd 除錯NSLOG

iPad/iPhone 端(開發工具)
http://iphonedevwiki.net/index.php/Theos/Getting_Started
1. Cydia加入 軟體源 repo.coolstart.org2. Cydia 裝下列工具
    apt 6.0. curl, subversion or git, curl ,  iOS toolchain
3. 在/etc/apt/sources.list.d/ 目錄下 生個檔叫coredev.nl.list 內容為下列一行
  
  deb http://coredev.nl/cydia iphone main
 
4. 在/etc/apt/sources.list.d/ 目錄下 生個檔叫howett.net.list 內容為下列一行
  
  deb http://nix.howett.net/theos ./
 
5.以mobileTerminal 連入, 以root 使用者下指令
  apt-get update

6. 再下指令, 若有問(y/N) 一律回y
   apt-get install perl net.howett.theos
 
7. 裝完後, /var/sdks 下要有 iPhoneOSx.x.sdk 的目錄, 若沒有要去下載sdk 來裝.
   這樣就可以寫程式了 
 
8. 關於arm64部份由於筆者沒有i5 等裝置, 無法試, 請依官網說明。 
  
去喝杯咖啡,裝完後便可寫C,C++,iphone App...等。

PC  端
若覺得用iPad 在編輯上很麻煩,可以在找順手的App 或用藍芽鍵盤,懶得花錢,也可用一台舊電腦裝下列程式
1. putty.exe 用SSH 登入iPad,可以開兩個一個編譯執行指令如下

登入 mobile
cd hello-project
su root
密碼

make package install

開另一個putty (iPad 要安裝 Cydia Erica Utility與Syslogd)除錯LOG指令如下
登入 root
syslogon    // 開啟Log 可顯示程式中的NSLog
tail -f /var/syslog  // 進入顯示狀態 Control-C 跳出

2. 裝WinSCP  同步程式碼,將 pc 端修改的程式傳入 Iphone 裡的專案目錄, 也可將Iphone裡的專案資料夾備份出來

3. 找一個文字編輯軟體,來修改程式代碼,這選RJ TextEd

動作程序為
1.putty 開專案 -->2. WinSCP 將目錄拷出 --> 3. 用編輯軟體修改代碼
-->4.WinSCP 將代碼傳回iPhone-->5. 用Putty 編譯程式並安裝 --> 6. 在Phone 執行程式  
--> 7.  看Putty  的Log除錯 再重覆回步驟3直到完成專案

iOS7 第一次安裝deb 要重開機才會出現



 

如何寫程式,參考原網址英文寫得非常好,



星期三, 2月 19, 2014

iOS 7.0.4 越獄崎嶇之路(Unsandbox)

越獄前 
症狀一:越獄  2/2 停止後... Failed,永遠無法成功。
解法 :(PC端, XP筆者系統) 對,不用懷疑,是改PC端,進控制台→開啟地區及語言選項→地區及語言都改成美國。這樣便越獄成功了。

越獄後
症狀二:WebSSH app 無法訪問127.0.0.1:22,由於iOS 將App 的運行關在沙盒(sandbox)內,連帶小於1000的本地埠口 (port)都被禁止訪問
解法 : 將app從沙盒中解放出來,依下列方法
1. 移除App,重新安裝
2. 以MobileTerminal 訪問mobile
3. cd Applications
4. mkdir unsandbox
5. cd ./*/WebSSH.app // 進入 WebSSH.app 目錄

6. cd ..
7. mv WebSSH.app ~/Applications/unsandbox
8. ln -s  ~/Applications/unsandbox/WebSSH.app WebSSH.app // 建立Symbolic Link
這樣便OK了,試試看

星期五, 6月 07, 2013

如何使用iPad做文書處理 by spuggy 2013/06/07


文書處理

使用Sky drive 的web app

這段落是用Sky drive 的web app來體驗的,整體輸入比CloudOn順暢,也不會有半角的亂碼,鍵盤上沒有cloudon的熱鍵及游標鍵,但優點是字型的處理較為正確,也可以直屏處理,進入Sky drive live.com,右邊選繁體中文,查看說明。註冊sky drive會有免費的7G容量。在利用safrai 加入主畫面,就像裝了office 軟件,很有質感差要有網路連線,可以放棄CloudOn了


 下圖是word 的web app 操作狀況

下圖是excel 的web app 操作狀況



使用CloudOn 的web app

 

一般電腦常用的文書檔案就屬Microsoft office 的檔XLS/DOC/PPT三種,我們可以利用Cloudon 款免費的雲端軟件來達成初部的圖文編輯草稿,此文便是以此作成,中文的支援還不是很完整有半角亂碼若出現此狀況,先將游標定址在亂碼前用DEL刪除切勿使用backspace來刪,防止更亂 ,另外只能橫屏空間利用不好

https://itunes.apple.com/tw/app/cloudon/id474025452?mt=8

 


不用再坐在桌前了,可躺可臥,喜歡 的話還可以倒立。

文書閱讀

裝Documents by readdle

https://itunes.apple.com/tw/app/documents-by-readdle/id364901807?mt=8

裝了document 可閲讀各種格式的檔可讀XLS/DOC/PPT/MP3/MP4 ...多種格式,還可以聽mp3mp4,除了 office檔案支援還可看pdf,有強大的網路硬碟連接功能。

 

PC可利用下列方式完成,有Sftp,網路方鄰:Documents by Readdle捉PC 要在同一個網段 例如PC/iPAD都在 192.168.0.xx 可用adhoc 靜態IP 指定NB 與 IPad

 

SFTP方式

pc裝core sftpd mini 可以用document 建立sftp連到pc 的ip 存取pc硬碟的資料,把pc當個人雲端

http://www.terminally-incoherent.com/blog/2007/02/14/mini-sftp-server-for-windows/

Document 加core sftp min非常好用 for iPad,    建立 sftp Client 連PC core sftpd, 可捉筆電硬碟的檔案,捉PC檔案SFTP 檔名編碼要選DOS Chinese Trad, FTP 選UTF8。

 

網路芳鄰

利用pc網路芳鄰設定連接iPad IP位址,再利用ipad按左上齒輪,進行WebDav的設定, 記得設使用密碼,便可再由pc端網路鄰來連結ipad交換的動作,交換完檔案後掉此WebDav功能,以防洩密,pc/Mac 設定看WebDAV help透过網路芳鄰,可直拷pc,mp3/mp4在iPad中播放。

網路硬碟

ftp方式Dropbox、Google Drive利用雲端的免費空間儲存檔案與交換資料,但建議存個人較無私密的文件,切勿存取公司機密的檔案。

ftp的存取

在iPad Document by readdle, 建立ftp client 可登入到任一 ftp server,進入Network按+Storage,ftp設好ip及帳密便可。

 

Dropbox

進入Network按+Storage,DropBox 及登入的帳號密碼便可。Google Drive 也都是類似的方式

 

網路瀏灠郵件

Documents by Readdle 也支援web browser功能,可以利用此功能來作webmail 的連接,這樣便可以辦公了。 

pdf

推下列App ,免費的,只要把要轉的檔利用open in 的方式轉過去再傳回來,很容易。這App有個bug,同檔名轉一次第二次就不轉了,必須換檔再重轉,有麻煩,下回再找個好用的。

https://itunes.apple.com/tw/app/pdf-provider+/id642860474?mt=8

PDF 產生器,可以和document by readdle 相輔相成

 

星期一, 7月 09, 2012

iPad2 利用3Proxy 分享 3G網路的 Shell Script(進階)

使用此腳本(script) 看不懂,請必須先了解前一篇(如下) ,並有Shell 的經驗方可學習。
手把手設定iPad 3G當無線網點代理伺服器 (PC -->iPad 3G -->外部網路)

要越獄 ,裝Cydia的套件
1) 3proxy
2) adv-cmds
若以上仍不夠,可能要再加Unix指令集的套件,因筆者裝了很多不知是否有少。

利用把iPad2當代理伺服器的方式,PC透過代理伺服器設定連網,並做一簡單的選單腳本。
Proxy port:3128
Socks port:1080
將下列腳存入p.sh並放在  /var/mobile 路徑,並利用root 改權限0755 及擁有者 mobile
./p.sh 執行
選單 有1)掛起代理 2)停止代理 3) 顯示狀態 0)離開。
筆者偷懶不想下太多指令給iPad壓力,所以寫個腳本省的老是一再掛了又殺。也可能畫蛇添足了,順便學學Shell Script,也學了好用的 Online 的 源碼轉Html的應用。



#!/bin/bash
while :
do
clear 
echo "3Proxy Running Shell Script"
echo "1. Start Proxy/socks"
echo "2. Stop Proxy/socks"
echo "3. Show Process Task is Proxy/socks"
#!echo "4. Testing"
echo "0. Exit"
echo -n "Please enter command? [0..3]"
read opt
case $opt in
1 ) var1=$(ps -A | grep "none..." | cut -b -5 | head -n 1)
echo $var1"PID"
var=$(ps -A | grep "proxy -d" | cut -b -5 | head -n 1)
if [ $var  -gt $var1 ]; then
    echo $var
    var="proxy -d"
    $var
    var=$(ps -A | grep "proxy -d" | cut -b -5 | head -n 1)
    echo "Proxy process is starting!"$var
else
    echo "Proxy process is running!"$var
fi
var=$(ps -A | grep "socks -d" | cut -b -5 | head -n 1)
if [ $var  -gt $var1 ]; then
    var="socks -d"
    $var
    var=$(ps -A | grep "socks -d" | cut -b -5 | head -n 1)
    echo "Socks process is starting!"$var
else
    echo "Socks Process is running!"$var
fi
read enterkey;;
2 )var1=$(ps -A | grep "none..." | cut -b -5 | head -n 1)
echo $var1"PID"
var=$(ps -A | grep "proxy -d" | cut -b -5 | head -n 1)
if [ $var1 -gt $var ]; then
    echo "proxy Process is killed!"$var
    var="kill "$var 
    $var
else
    echo "proxy process not Found!"$var
fi
var=$(ps -A | grep "socks -d" | cut -b -5 | head -n 1)
if [ $var1 -gt $var ]; then
    echo " socks Process is killed!"$var
    var="kill "$var 
    $var
else
    echo "socks Process not Found!"$var
fi
read enterkey;;
3 )var1=$(ps -A | grep "none..." | cut -b -5 | head -n 1)
echo $var1
var=$(ps -A | grep "proxy -d" | cut -b -5 | head -n 1)
echo "proxy"$var
if [ $var1  -gt $var ]; then
    echo "Proxy Process is running!"$var
else
    echo "Proxy Process not Found!"
fi
var=$(ps -A | grep "socks -d" | cut -b -5 | head -n 1)
echo "socks"$var
if [ $var1 -gt $var ]; then
    echo "Socks Process is running!"$var
else
    echo "Socks Process not Found!"
fi
read enterkey;;
0 ) exit;;
* ) echo "Please enter an option, [1..3]"
read enterkey;;
esac
done

星期一, 7月 02, 2012

簡單利用C程式試作100年度最低錄取分數作101年度指考免費落點分析



又來了,將去年的EXCEL用 C語言改善一下。稍稍自動化一點8P.
下載前請發誓同意、詳讀履行下面紅字注意事項

(請志願還是從自己的夢幻往下填到最穩當100個滿滿)。
選填志願務必與招生簡章再對一次  
1. 權重是否改  
2. 選的校有否漏系未填  
3. 學群裡有沒有漏系未填  
4. 順序仍應以興趣為主 分數機率為輔(排序因無標準,不論平均或各科表現排名都只是假設僅供參考)
5. 對一下差異表內新增有無自己興趣的學校與科系(金門大學等)

 score 101 version 1.0 2012.07.21
下載一:MF 下載二:DROPBOX
修改學測五標過濾BUG
MD5: 52d7b774431d4deed734e906946ca5e8 score.exe
.928之前沒修正完整有學測五標過濾BUG會關掉一些採計的學系score 101 version 0.921
**有問題請反應讓怍者改的更完整明年繼續服務**
**有需要SOURCE 也可來信,不過PROJECT很亂沒時間整理**
2012.07.18
更新101年指考五標
Bug:學測15級分會判斷錯,請先以14取代,隨後再更新
如更改學群學類後要還原所有可將 複製 -StudentIn.txt拷回。(v92的StudentIn.txt只有文史哲 可自行以此方法回復)

#    更新選學群/學類
# score 101 version 0.9 2012.07.02
# 在執行本程式前請先做完下列修改(#1,#2) 後,
# 關於輸出StudentOut.txt請以右鍵->開啟檔案->Microsoft EXCEL 打開->記得另存新檔才能再產生新的
# 本程式的結果僅供參考,概不負責因此而導致的任何風險或損失
#  沒時間寫WINDOW gui程式先將就以此DOS版使用,別怕還是很簡單雙擊電一下就OK
#  相關資料參考自大考中心,一切仍須以簡章為主
#

首先要更新101年指考五標(Database\101Five.txt)。可自改或等待新的五標公告會再更新。
本程式採用今年與去年的指考五標內插法,系的低分也以簡單的平均權法回推。排序僅供參考

步驟一、請修改 StudentIn.txt
    #1. 輸入成績沒考請寫零 如範例一樣對齊排好
    #2. (非必要) 輸入學校/學群/學類 有留著就會挑選 刪除就不會選入,學校沒選該學校的系都不會出現(學校全刪等於全選),這個部份如果去年有玩過可以利用Excel 的篩選來選學校與系,學群/學類沒有輸出所以要透果此項設定選擇。

步驟二、雙擊score.exe 便會產生一個StudentOut.txt

步驟三、關於StudentOut.txt請以右鍵->開啟檔案->Microsoft EXCEL 打開利用EXCEL 可以篩選過濾,解讀主要看差異:負太多表是該系是夢幻,正太多是桌上拿柑;希望大。
    (100低分參考為零,可能該系為新增,詳見筆者比對的 "101比對差異_v1.xls")

步驟四、要重新執行,請將Excel 另存新檔或關閉,才可以重新寫入StduentOut.txt,不然會發生寫入錯誤。


http://spuggy0919.blogspot.com


星期六, 6月 30, 2012

iPhone/iPad iOS 4.3.1, 5.1.1 完美越獄之路崎嶇(奇怪的一堆症狀)

2012/07/25iPad 3G /Cydia 執行後 ICON等消失
iPad 3G一代沒插SIM卡 用更新的也有同樣狀況,可能不能用更新升級,要回復才可以。

2012/06/30

Phone/Contact ICON等消失
把從小孩交接的iPhone 3GS整裡並越獄,
1. 由5.0.1(已JB) 更新 5.1.1
2. 下載Absinthe 來JB
3. (沒差SIM卡) JB 完發現Cydia在Folder 裡, 可能當初就在Folder
4. Run Cydia, 跑完後 一堆系統APP 都不見了 (可能沒作完Apple 驗證)

只好插好SIM卡再回復一次成新手機再越獄一次便OK。



1303error
iPad 也用Window Vista 升級5.1.1,竟產生1303Error無法更新,查了谷哥後發覺,被把C碟備份轉移到USB 外接硬碟影響,取消Junction 路徑連結後便正常了。


2011/04/5
實在搞不懂那裡錯了,能碰的問題都碰到了,卡錯誤1013卡鳳梨activate,無電信訊號卡無法寫入電腦。千心萬苦耗了三小時。可能是hosts因為小雨傘用的Host gs.apple.com 有關吧。總之,是出來了,還好工具齊備。

4/13果然各大聊天室陸續有災情發生了,可能Apple 改了 Recovery Mode 的跳出機制,就是卡1013重開的那個畫面,原想用小雨傘跳出但失敗了,希望有新版的Fixrecovery可以用,那再越獄就不會有下列紅燈擋路,暫時將\windows\system32\drivers\etc\hosts 裡的 gs.apple.com 那行先殺了試試。若還不行有可能是網路塞車了,多試幾次吧,一定要先更新成功官版4.3.1再談越獄才對。不幸的話就從第一個灰燈一步步往前衝,千萬別在碰到第一個紅燈又回到iTune 那是過不了紅燈的。

小雨傘官網 
去Download Link 下載,試試看,若不行先殺了gs.apple.com(雞屎彭垢)。從第一個綠燈先試,JB時可用小雨傘確定進DFU,祝一路綠燈。

PC 環境 Window Vista.