工研院推出AWS Like服務-IronYun

螢幕快照 2013-10-30 上午11.50.27

工研院也推出類似AWS的服務IronYun,價格看起來真的是比AWS優許多。如果您的服務市場主要是台灣的話,或許可以參考看看。目前有提供30天免費試用!

螢幕快照 2013-10-30 上午11.52.11

比較

相關連結:

IronYun 網址: http://www.ironyun.com

Amazon Web Services(AWS):http://aws.amazon.com

Amazon EC2價格:http://aws.amazon.com/ec2/pricing/

 

Delphi XE5 Update1釋出

delphi_xe5_update1_release
早上打開XE5發現有新的update了
http://docwiki.embarcadero.com/RADStudio/XE5/en/Release_Notes_for_XE5_Update_1

修正的bug如網頁連結:http://edn.embarcadero.com/article/43468

 

下載連結

  •  Update 1 installer (patches an existing install of RAD Studio, Delphi or C++Builder XE5)
  •  ISO with Update 1 (full set of install files for Delphi and C++Builder XE5, including Update 1)

Delphi XE3 簡訊發送問題

把手上的Delphi7自動發送簡訊系統轉到XE3,發現一直出現亂碼。
後來找到原因是IdHTTP.URL.ParamsEncode的問題,在Delphi7跟Delphi XE3處理出來的結果是不同的,於是在網路上找到一段改編自Delphi 7的版本。果然就行了!

[pascal]
function EnCode(ACode: string): string;
var
I: Integer;
Hex: string;
Code: AnsiString;
begin
Code := AnsiString(ACode);
for I := 1 to Length(Code) do
case Code[i] of
‘ ‘: Result := Result + ‘+’;
‘A’..’Z’, ‘a’..’z’, ‘*’, ‘@’, ‘.’, ‘_’, ‘-‘,
‘0’..’9′, ‘$’, ‘!’, ””, ‘(‘, ‘)’:
Result := Result + Code[i];
else
begin
Hex := IntToHex(ord(Code[i]), 2);
if Length(Hex) = 2 then
Result := Result + ‘%’ + Hex
else
Result := Result + ‘%0’ + hex;
end;
end;
end;
[/pascal]

舊Apple機器免費取得iWork/iLife方式

Apple這次除了作業系統是免費之外,iWork/iLife也免費下載(不過殘念的一點是新機才可以)。

昨天開始就有人找到了bug(應該是)

1要先有(或安裝零售版、光碟版)的舊版iWork/iLife,試用版的也行。

2接著到語言與地區,把偏好的語言的English用拖拉的方式拉到繁體中文上面去(如圖)

螢幕快照 2013-10-24 10.25.07 AM

3接著重新開機,進入Apple Store就發現神奇的事情

Screen Shot 2013-10-24 at 10.27.19 AM

要下載要快 🙂

Delphi 歷史~ 1995年Delphi 1- 2013年Delphi XE5

Delphi已經邁向18年的歷史了,幾乎每一年都出了新的版本,而每個版本也幾乎都有令人驚艷的功能存在。

如果您是老Delphi 開發者,不妨可以回鍋體驗Delphi XE5開發 iOS、Android的樂趣。

如果您是新Delphi 開發者,也許可以嘗試使用Delphi XE5開發 iOS、Android的評估。

 

1995-Delphi1(windows3.1)

1996-Delphi2(windows95)

1997-Delphi3

1998-Delphi4(windows98)

1999-Delphi5

2001-Delphi6(dbexpress)

2002-Delphi7

2003-Delphi8(支援.net)

2004-Delphi2005

2005-Delphi2006

2006-Delphi2007

2008-Delphi2009

2009-Delphi2010

2010-Delphi XE

2011-Delphi XE2

2012-Delphi XE3

2013(April)-Delphi XE4 (iOS)

2013(Septemper)-Delphi XE5 (Android)

Click to see full-sized image


Click to see full-sized image

Apple宣佈新版OS X系統Mavericks免費取得~作業系統免費時代來臨

螢幕快照 2013-10-23 上午10.13.24

今天凌晨Apple發表會中,除了新版的iPad Air、iPad Mini外,最讓人關切的莫過於新版本的OS X Mavericks是免費取得,雖然不會是跨世代的創舉(因為原本Linux及其他OpenSource系統原本就免費),不過對一向以作業系統做為很大獲利來源的微軟無非是重重的打擊,免費作業系統時代只是迎合行動裝置時代來臨的另一種方式。

對於Apple來說,也選擇了主要的獲利點~畢竟它原本就不是軟體公司,所以”免費系統”還是得安裝在它的硬體上倒是成了不錯的策略。

從行動裝置時代來臨就一直失利的微軟來說,接下來要走的路將會更加嚴刻。但對於消費者來說也算是不錯的福音!

 

 

CodeIgniter安裝

一直習慣使用純PHP寫程式,不過最近看到許多徵才網站都寫著會使用CodeIgniter框架更佳。於是就來學習使用看看,沒想到還真的簡單易用,分享給大家。

 

1. 到CodeIgniter官方網站下載(http://ellislab.com/codeigniter),或是目前台灣也有繁體中文網站(http://www.codeigniter.org.tw/)。

2.下載後解壓縮,只要上傳application、system二個目錄及index.php到主機即可。

3.確認上傳後,就可以看到Welcome to CodeIgniter!

CodeIgniter

4.恭禧您!已經踏入CodeIgniter了XDDD

Firefox網路安全測試必裝的幾個插件

FoxyProxy Standard https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/

Firebug https://addons.mozilla.org/en-US/firefox/addon/firebug/

Web Developer https://addons.mozilla.org/de/firefox/addon/web-developer/

User Agent Switcher https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/

Live HTTP Headers https://addons.mozilla.org/en-US/firefox/addon/live-http-headers/

Tamper Data https://addons.mozilla.org/en-US/firefox/addon/tamper-data/

Hackbar https://addons.mozilla.org/en-US/firefox/addon/hackbar/

WebSecurity https://addons.mozilla.org/en-us/firefox/addon/websecurify/

xAdd N Edit Cookies https://addons.mozilla.org/en-US/firefox/addon/add-n-edit-cookies-13793/

XSS Me https://addons.mozilla.org/en-us/firefox/addon/xss-me/

SQL Inject Me https://addons.mozilla.org/en-us/firefox/addon/sql-inject-me/

FlagFox https://addons.mozilla.org/en-us/firefox/addon/flagfox/

CrytoFox https://addons.mozilla.org/en-US/firefox/addon/cryptofox/

xAccess Me https://addons.mozilla.org/en-US/firefox/addon/access-me/

 

 

Delphi XE5如何透過URL呼叫Android或iOS上的其他程式?

之前曾經分享過,手機版的Line可以透過 line://msg/<CONTENT TYPE>/<CONTENT KEY> 這樣的語法呼叫Line 的程式分享。

當然Delphi XE5也可以透過程式呼叫程式才對,在 的「Sending a URL to Another App on Android and iOS with Delphi XE5」文章有教您如何呼叫

  • http, tel, sms, fb, mailto, twitter, geo…..
  • 作者也分類成三種:
  • 1. iOS跟Android都可以使用的URLs
  • http://superlevin.ifengyuan.tw/
  • tel://0921789779
  • sms://hello_world
  • http://twitter.com/superlevin (這個語法會直接打開Android上的Twitter Client程式)
  • mailto://superlevin@gmail.com
  • twitter://user?screen_name=superlevin
  • fb://profile/705666540
    (可以透過 http://graph.facebook.com/(帳號)superlevin取得UID)

iOS特殊語法

  • http://maps.apple.com?q=5617 Scotts Valley Drive, Scotts Valley, CA 95066 (需要URL encode)

Android特殊語法

  • content://contacts/people/
  • content://contacts/people/1
  • geo://0,0?q=5617 Scotts Valley Drive, Scotts Valley, CA 95066
  • geo://46.191200, -122.194400 (I think this one doesn’t like the URLEncode)

作者在文中有提到使用TidURL.URLEncode 。

[pascal]
unit OpenViewUrl;

interface

// URLEncode is performed on the URL
// so you need to format it protocol://path
function OpenURL(const URL: string; const DisplayError: Boolean = False): Boolean;

implementation

uses
IdURI, SysUtils, Classes, FMX.Dialogs,
{$IFDEF ANDROID}
FMX.Helpers.Android, Androidapi.JNI.GraphicsContentViewText,
Androidapi.JNI.Net, Androidapi.JNI.JavaTypes;
{$ELSE}
{$IFDEF IOS}
iOSapi.Foundation, FMX.Helpers.iOS;
{$ENDIF IOS}
{$ENDIF ANDROID}

function OpenURL(const URL: string; const DisplayError: Boolean = False): Boolean;
{$IFDEF ANDROID}
var
Intent: JIntent;
begin
// There may be an issue with the geo: prefix and URLEncode.
// will need to research
Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,
TJnet_Uri.JavaClass.parse(StringToJString(TIdURI.URLEncode(URL))));
try
SharedActivity.startActivity(Intent);
exit(true);
except
on e: Exception do
begin
if DisplayError then ShowMessage(‘Error: ‘ + e.Message);
exit(false);
end;
end;
end;
{$ELSE}
{$IFDEF IOS}
var
NSU: NSUrl;
begin
// iOS doesn’t like spaces, so URL encode is important.
NSU := StrToNSUrl(TIdURI.URLEncode(URL));
if SharedApplication.canOpenURL(NSU) then
exit(SharedApplication.openUrl(NSU))
else
begin
if DisplayError then
ShowMessage(‘Error: Opening "’ + URL + ‘" not supported.’);
exit(false);
end;
end;
{$ELSE}
begin
raise Exception.Create(‘Not supported!’);
end;
{$ENDIF IOS}
{$ENDIF ANDROID}

end.
[/pascal]