Delphi 推出社群版本(Community Edition)


Delphi推出了全新的社群版本(Community Edition),不像先前的starter版本。而是專業版加上iOS/Android功能。如果寫開放源始碼/免費軟體都可以,商業版的話限制為
1年收入不超過5000美金(約15萬台幣)
2成員不超過5人

 

延伸閱讀:

Learn to Program with Community Edition

Introducing Delphi and C++Builder Community Edition

我要留言

留言

發表於 APP介紹, Delphi, Delphi mobile開發, 程式設計 | 已標籤 , , , , , , , | Delphi 推出社群版本(Community Edition) 已關閉迴響。

C# WebAPI呼叫方式


var client = new WebClient();
var method = "POST";
var parameters = new NameValueCollection
{
{ "NAME", "林壽山" },
};
var response_data = client.UploadValues("$$API網址$$", method, parameters);
var responseString = UnicodeEncoding.UTF8.GetString(response_data);

如果回傳是JSON

dynamic json = JToken.Parse(responseString) as dynamic;

我要留言

留言

發表於 生活雜感 | C# WebAPI呼叫方式 已關閉迴響。

C# AES加解密

最近常遇到需要使用AES加解密的需求,無論是網路傳輸/API相關的部份。
分享一下
Github原始碼下載
https://github.com/superlevin/CSharpAES

using System.Security.Cryptography;
public static string SHAEncrypt(string str)
{
var crypt = new System.Security.Cryptography.SHA256Managed();
var hash = new System.Text.StringBuilder();
byte[] crypto = crypt.ComputeHash(Encoding.UTF8.GetBytes(str));
foreach (byte theByte in crypto)
{
hash.Append(theByte.ToString("x2"));
// x小寫 X 大寫 x2 補0
}
return hash.ToString();
}
public static string AESEncrypt(string str, string strkey, string strivKey, bool isVasEncrypt = false)
{

var aesCipher = new AesManaged
{
KeySize = 128,
BlockSize = 128,
Mode = CipherMode.CBC,
Padding = PaddingMode.PKCS7
};

var keyStr = KeyGenerator(strkey);
var key = Convert.FromBase64String(keyStr);
var ivKey = Encoding.UTF8.GetBytes(strivKey);
var input = str;
var ivStr = Convert.ToBase64String(ivKey);

aesCipher.Key = key;
aesCipher.IV = ivKey;
byte[] b = System.Text.Encoding.UTF8.GetBytes(str); // plain text to be encrypted
ICryptoTransform encryptTransform = aesCipher.CreateEncryptor();
byte[] cipherText = encryptTransform.TransformFinalBlock(b, 0, b.Length);
return Convert.ToBase64String(cipherText);
}
public static string AESDecrypt(string encstring, string strkey, string strivKey)
{
var aesCipher = new AesManaged
{
KeySize = 128,
BlockSize = 128,
Mode = CipherMode.CBC,
Padding = PaddingMode.PKCS7
};
var keyStr = KeyGenerator(strkey);
var key = Convert.FromBase64String(keyStr);
aesCipher.Key = key;
aesCipher.IV = Encoding.UTF8.GetBytes(strivKey);

var encryptBytes = Convert.FromBase64String(encstring);
ICryptoTransform decryptTransform = aesCipher.CreateDecryptor();
byte[] plainText = decryptTransform.TransformFinalBlock(encryptBytes, 0, encryptBytes.Length);

return System.Text.Encoding.UTF8.GetString(plainText);
}

我要留言

留言

發表於 程式設計 | 已標籤 , , , , , , , | C# AES加解密 已關閉迴響。

Delphi 強迫將半型英數字轉換成全型英數字


var
Chr : array [0..255] of char;
begin
// use Windows
LCMapString(
GetUserDefaultLCID(),
LCMAP_FULLWIDTH, // 轉換全型 LCMAP_HALFWIDTH 半型
PChar(Edit2.Text), // 傳入文字
Length(Edit2.Text) + 1,
chr, // 轉換後字串
Sizeof(chr) // 轉換後字串
);
Edit1.Text := Chr;
end;

我要留言

留言

發表於 Delphi, 程式設計 | 已標籤 , , , | Delphi 強迫將半型英數字轉換成全型英數字 已關閉迴響。

使用raspberry樹莓派搭配homebridge接上你的ios homekit功能

2014年Apple在推出IOS8時就推了HomeKit(家庭)這個服務,簡單來說就是用ios/ipad搭配siri就可以操作物聯網。
不過要通過HomeKit認證需要費用,幸好後來有了Homebridge這個介接的服務,而Homebridge的技術是使用javascript/node.js達成。
於是在樹莓派上建置node.js環境,並安裝homebridge後,再搭配樹莓派的GPIO就可以做到跟手機整合的物聯網了。

相關資源:
2014 WWDC homekit介紹 https://developer.apple.com/videos/play/wwdc2014/213/
結合樹莓派的自動澆水系統 https://www.sharpoblunto.com/News/2016/01/31/it-gets-the-hose-again
樹莓派與homebridge的結合教學 https://github.com/nfarina/homebridge/wiki/Running-HomeBridge-on-a-Raspberry-Pi
打造Raspberry Pi 無線坦克車(PiTank) https://dotblogs.com.tw/bowwowxx/2015/06/10/151535
Node.js控制树莓派GPIO https://eliyar.biz/nodejs-raspberry-gpio/
樹莓派.使用Node.js控制GPIO https://hk.saowen.com/a/3bf3756deb7956495899f21631873f67ac9bdde4697effac203b0ff60a278aba
Blynk 物聯網平台: How to install Node.js library on Linux(control LED) http://agile.myds.me/2017/10/12/blynk-%E7%89%A9%E8%81%AF%E7%B6%B2%E5%B9%B3%E5%8F%B0%EF%BC%9A-install-node-js-library-linux%EF%BC%88control-led%EF%BC%89/
只管出一張嘴:用 Siri 控制家裡的老家電 http://benjenq.pixnet.net/blog/post/45202620-%E5%8F%AA%E7%AE%A1%E5%87%BA%E4%B8%80%E5%BC%B5%E5%98%B4%EF%BC%9A%E7%94%A8-siri-%E6%8E%A7%E5%88%B6%E5%AE%B6%E8%A3%A1%E7%9A%84%E8%80%81%E5%AE%B6%E9%9B%BB
Raspberry Pi 的應用 – Siri + HomeKit 讓我們的家電變自動也更智慧 http://blog.itist.tw/2017/11/how-to-building-apple-smart-home-solution-by-homebridge-on-raspberry-pi.html
玩转树莓派第一弹:HomeBridge控制LED灯 http://blog.mindcont.com/2018/01/03/raspberrypi-homebridge/

我要留言

留言

發表於 樹莓派 Raspberry | 已標籤 , , , , , , | 使用raspberry樹莓派搭配homebridge接上你的ios homekit功能 已關閉迴響。

終於完成了Delphi XE 10.2.3的升級 感謝embarcadero及台灣QCom


今年3月份embarcadero發佈10.2.3升級後,卻發生一直無法正常解除10.2.2的問題,後來求助台灣QCom捷康的幫忙後也無法解決,台灣捷康幫忙與總部聯繫。在連假第三天終於解決了!感謝台灣捷康Eddie Chang以及embarcadero support。

相關資源:
https://community.embarcadero.com/
www.qcomgroup.com.tw
https://community.embarcadero.com/article/articles-support/174-rad-studio/installation-registration/16501-manual-uninstall-of-rad-studio-delphi-c-builder-10-2

我要留言

留言

發表於 Delphi, 程式設計 | 已標籤 , , , , , , | 終於完成了Delphi XE 10.2.3的升級 感謝embarcadero及台灣QCom 已關閉迴響。

PHP管制檔案下載的方式

在許多時候,我們會不希望網友知道網址空間直接下載檔案,或是透過帳號密碼的管控才能下載時,該如何用程式做過濾及管制呢?

header("Content-type:application");
header("Content-Disposition: attachment; filename=file_name");
//file_name是預設下載時的檔名,可使用變數。
readfile("file");
//file是實際存放在你硬碟中要被下載的檔案,可使用變數。
exit(0);

header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
readfile('original.pdf');
//限制下載速度,使用 while 迴圈加上 sleep。

while (!feof($handle)) {
echo fread($handle, 8192);
sleep(1);
}

$content = "";
$fp = fopen("http://file-to-download.com/a-file.zip", "rb");

if (!$fp)
die("Error opening file.");
while (!feof($fp))
$content .= fread($fp, 2048);
fclose($fp);

$fp=fopen("local-file-name.zip", "w");
fwrite($fp, $content);
fclose($fp);

$OrgFileName = mb_convert_encoding($OrgFileName, 'BIG-5','UTF-8');

$real_path = dirname(__FILE__).'/upload/'.$FileName;

header('Pragma: public');

header('Expires: 0');

header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

header('Cache-Control: public', false);

header('Content-Description: File Transfer');

header('Accept-Ranges: bytes');

// application/force-download 為通用類型,亦可判斷檔案格式做改變

header('Content-Type: application/force-download');

header('Content-Length: '.filesize($real_path));

header('Content-Transfer-Encoding: binary');

// 注意「"」不可省略,否則FireFox會無法正確讀取

header('Content-Disposition:attachment;filename="'.$OrgFileName.'"');

// 讀取來源檔案資料

if ($stream = fopen($real_path, 'rb')){

while(!feof($stream) && connection_status() == 0){

echo(fread($stream,1024*8));

flush();

}

fclose($stream);

}

header('Content-type:application/force-download'); //告訴瀏覽器 為下載
header('Content-Transfer-Encoding: Binary'); //編碼方式
header('Content-Disposition:attachment;filename='.$filename); //檔名
@readfile($filename);

我要留言

留言

發表於 PHP, 程式設計 | 已標籤 , | PHP管制檔案下載的方式 已關閉迴響。

微軟Microsoft人工智慧AI運用範疇影片

http://superlevin.tw/%E5%BE%AE%E8%BB%9Fmicrosoft%E4%BA%BA%E5%B7%A5%E6%99%BA%E6%85%A7ai%E9%81%8B%E7%94%A8%E7%AF%84%E7%96%87%E5%BD%B1%E7%89%87/

 

eat River 醫療中心運用 Microsoft 的技術和裝置打造自動化的端對端藥物管理系統,大幅降低病患的等待時間、輸入資料的錯誤機率、藥物成本,讓病患更迅速地復原。

天全球有超過450億公升的水,因為水管漏水或破裂而流失,這相當2億人的每日用水。Grundfos 的智慧泵浦,透過Azure IoT 收集來自智慧感測器的據數,並利用Cortana Intelligence 的大數據分析,即時預測應對漏水問題,再搭配氣候數據,預估暴雨的發生地,提早策略性儲水。Grundfos 智慧泵浦在永續的水資源中扮演關鍵角色。

參考: https://gallery.azure.ai/experiments

平均每秒銷售一台印表機,每年銷售超過 5,000 萬台 PC,HP 每年需接觸超過 6 億個客戶,同為科技公司的 HP 很快地就發現,微軟的人工智慧可以協助他們處理客戶爆炸性的需求,AI 讓客戶解決問題的比例從 20-30%,提升至 70-80%,而後台儀表板更能提供關鍵指標,協助持續優化客服成果!

Microsoft Azure AI 技術 – 認知服務介紹 : https://azure.microsoft.com/zh-tw/services/cognitive-services/
不只看得懂數據,人工智慧也會分析影像!不論是城市中的監視器或是人手一支的行動電話,每天都有數量驚人的影像產生。而 Prism Skylabs 看準了藏在攝影鏡頭中的資訊,透過微軟認知服務的計算機視覺 API,幫助組織機構搜索閉路電視和安防攝像頭所拍攝的內容,讓企業一手掌握特定的事件、物品和人員!

Uber 正在使用 Microsoft Cognitive Services 提供即時身分識別確認。Uber 司機必須自拍自己的照片,並通過身分驗證才能載客。

有能力服務客戶的人,才能留下客戶,於是梅西百貨決心用人工智慧來擴增服務能量,消費者可以透過任何管道向梅西詢問,客服機器人會人性化的回答問題,帶領消費者找到答案,不必再翻找 FAQ,即使真人客服員,也可以藉由客服機器人的協助,快速上線工作,減少訓練的成本,在影片中您可以看到這是個有溫度的服務,它不僅滑潤了客戶關係,也為企業帶來更多的利潤!


日本電信大廠軟體銀行 (SoftBank) 的人形機器人 「Pepper」與微軟的雲端平台「Azure」利用線上大數據分析追蹤銷售品項,協助零售商更靈活調節庫存管理,同時記錄顧客的特性與需求,並搭載情感認知,客製化推薦顧客所需,創造零售購物新體驗。另外,Pepper 同時具備翻譯功能,可以服務更多來自不同地區旅客。

Great River 醫療中心運用 Microsoft 的技術和裝置打造自動化的端對端藥物管理系統,大幅降低病患的等待時間、輸入資料的錯誤機率、藥物成本,讓病患更迅速地復原。

全球有超過450億公升的水,因為水管漏水或破裂而流失,這相當2億人的每日用水。Grundfos 的智慧泵浦,透過Azure IoT 收集來自智慧感測器的據數,並利用Cortana Intelligence 的大數據分析,即時預測應對漏水問題,再搭配氣候數據,預估暴雨的發生地,提早策略性儲水。Grundfos 智慧泵浦在永續的水資源中扮演關鍵角色。

我要留言

留言

發表於 生活雜感 | 已標籤 , , , | 微軟Microsoft人工智慧AI運用範疇影片 已關閉迴響。

Windows Server 2016 安裝 PHP Laravel

一、開啟CGI功能
控制台→程式與功能→開啟或關閉Windows功能
開啟CGI

二、下載安裝PHP
http://windows.php.net/download/
三、修改php.ini
fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0
date.timezone = “Asia/Taipei”
extension_dir = “C:\PHP\ext”
四、安裝Visual C++ 可轉散發套件
五、IIS設定處理常式對應
六、IIS設定預設文件index.php
七、安裝URL Rewrite
https://www.iis.net/downloads/microsoft/url-rewrite

我要留言

留言

發表於 Laravel, PHP, 程式設計 | 已標籤 , , | Windows Server 2016 安裝 PHP Laravel 已關閉迴響。

RAD Studio Tokyo Release 3發佈(10.2.3)

RAD Studio 10.2.3發佈了
https://cc.embarcadero.com/item/30820

我要留言

留言

發表於 Delphi, 程式設計 | 已標籤 , , , | RAD Studio Tokyo Release 3發佈(10.2.3) 已關閉迴響。