最新のバージョンを確認する
http://services.gradle.org/distributions
4.7が最新のようです。
gradle-4.7-src.zip 18-Apr-2018 09:22 +0000 28.28M
随机应变 ABCD: Always Be Coding and … : хороший
最新のバージョンを確認する
http://services.gradle.org/distributions
4.7が最新のようです。
gradle-4.7-src.zip 18-Apr-2018 09:22 +0000 28.28M
studioアップロードしてここまでに1日かかった。。

iOS・Androidの開発の完成・納品の流れまでがいまいちイメージわかないので、Cacooでワイヤーを書いて、up workで依頼して流れをつかむことにした。

ああああ、なるほど!
API, frameworks, dependency injection libraries, databaseなどが項目としてあるのね!
Frame workはAGL、Angular、Appcelerator Titanium、Corona SDK、Framework7、Intel XDK
DBはCouchbase, LevelDB, Realm, SQLiteか。SQLite以外は使ったことない。やばいな、これ。

Android版もpostします。

うわ、android・iOS開発している人たちって、フルスタック+インフラも当然+なんでもできます系ばっかりだな。しかも、大量に。
しかも、皆さんストアーのアプリのリンクがポートフォリオなんだ。
それがスタンダードか、完全にマーケットのモノサシ誤ってた。。カスじゃん、俺。
しかし、5年以上のexperienceの人の作品中心にインストールしたけど、クオリティ高いし凄いっすわ。
完全に自分のレベルの低さ加減がわかりました。終わってる。
つくっていくしかないけど、これ追いつく・近づくのに1年くらいかかるかもしれんな~。。。GW終わりってのに、きっついな~
shift + shiftでsearch
show line number on or off で行番号の表示非表示を設定

app -> manifests -> androidManifest.xml
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
基本的には
layout activity_main.xml -> MainActivity 必要に応じてAndroidManifest.xml
azure CLIにてplanをつくって、webappをcreate
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name boj-zh --runtime "PHP|7.0" --deployment-local-git
local
[vagrant@localhost azure]$ git init [vagrant@localhost azure]$ git add * [vagrant@localhost azure]$ git commit -m "initial commit" [vagrant@localhost azure]$ git remote add azure https://name@boj-zh.scm.azurewebsites.net/boj-zh.git [vagrant@localhost azure]$ git push azure master Password for 'https://name@boj-zh.scm.azurewebsites.net':
azureに載りました。わーいわーい
若干気になるのは、ローカル(vagrant)と、azure(上)だと翻訳のされ方が違う。。何故?気になるな。

もうちょっとやりたいところだが、、、さーアプリやろう!!
Let’s Go!

iOSもやりますが、まずはandroidから。
welcome back!
最新バージョンだけなら、難なくいけますね。
$text = $titles[0]."<br><br>";
foreach(glob("file/".$y."/{*.txt}",GLOB_BRACE) as $file){
if(is_file($file)){
$files[] = htmlspecialchars($file);
}
}
// var_dump($files);
$file = fopen($files[0], "r");
if($file){
while ($line = fgets($file)){
$text .= $line;
}
}
fclose($file);
$key = '';
$host = "https://api.cognitive.microsofttranslator.com";
$path = "/translate?api-version=3.0";
$params = "&to=zh";
if(!function_exists('com_create_guid')){
function com_create_guid(){
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
mt_rand(0, 0xffff), mt_rand(0, 0xffff),
mt_rand(0, 0xffff),
mt_rand(0, 0x0fff) | 0x4000,
mt_rand(0, 0x3fff) | 0x8000,
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff));
}
}
function Translate ($host, $path, $key, $params, $content) {
$headers = "Content-type: application/json\r\n" .
"Content-length: " . strlen($content) . "\r\n" .
"Ocp-Apim-Subscription-Key: $key\r\n" .
"X-ClientTraceId: " . com_create_guid() . "\r\n";
$options = array (
'http' => array (
'header' => $headers,
'method' => 'POST',
'content' => $content
)
);
$context = stream_context_create($options);
$result = file_get_contents ($host . $path . $params, false, $context);
return $result;
}
$requestBody = array (
array (
'Text' => $text,
),
);
$content = json_encode($requestBody);
$result = Translate($host, $path, $key, $params, $content);
$json = json_decode($result);
$newtext = $json[0]->translations[0]->text;
echo $newtext;
ガンガンいきたいところだが、アプリ(android・iOS)のタスクがかなり重いので、translatorはひとまずこれをazureに載せるところまでとしたい。

.*を使います。
$text = "当面の金融政策運営について [PDF 195KB]";
echo preg_replace("/\[PDF.*\]/","", $text);
[PDF 195KB]が非表示となりました。

前)

後)

ディレクトリ配下のファイル名を取得
$y = "2017";
foreach(glob("file/".$y."/{*.txt}",GLOB_BRACE) as $file){
if(is_file($file)){
$files[] = htmlspecialchars($file);
}
}
var_dump($files);
array(8) { [0]=> string(19) “file/2017/boj.0.txt” [1]=> string(19) “file/2017/boj.1.txt” [2]=> string(19) “file/2017/boj.2.txt” [3]=> string(19) “file/2017/boj.3.txt” [4]=> string(19) “file/2017/boj.4.txt” [5]=> string(19) “file/2017/boj.5.txt” [6]=> string(19) “file/2017/boj.6.txt” [7]=> string(19) “file/2017/boj.7.txt” }
しかしforeachでfunction Translateを回すと、 Cannot redeclareとなる。
Cannot redeclare Translate() (previously declared in /home/vagrant/translator/test.php:40) in /home/vagrant/translator/test.php on line 40
これは困った。
exec('ls', $out, $ret);
print_r($out);

pdftotextの場合は、これでOK
exec('pdftotext boj.pdf boj2.txt');
ではこうするとどうでしょう?
コードがやや冗長になってしまいましたが、file_put_contentsしたpdfをpdftotextしてpdfだけunlinkします。
$i=0;
foreach($urls as $value){
$pass = "file/".$y."/".$i.".pdf";
$data = file_get_contents($value);
file_put_contents($pass, $data);
exec("pdftotext ".$pass." file/".$y."/boj.".$i.".txt");
unlink($pass);
$i++;
}
テキストファイルだけになってますね。

viewをどうするか?
タイトルを取得して、listで表示したい。
boj mpmdeci url lists

file_put_contensを回す。
$i=0;
foreach($urls as $value){
$pass = "file/".$y."/".$i.".pdf";
$data = file_get_contents($value);
file_put_contents($pass, $data);
$i++;
}

これをpdftotextしたい。
まず、xpdfでつくったテキストファイルを1行ずつ読み込みます。
$file = fopen("boj.txt", "r");
if($file){
while ($line = fgets($file)){
echo $line;
}
}
fclose($file);
good job!

while文で$txt .= $line; として、変数に入れていき、
これをazureで中国語に翻訳します。
<?php
$file = fopen("boj.txt", "r");
if($file){
while ($line = fgets($file)){
$text .= $line;
}
}
fclose($file);
$key = 'hogehoge';
$host = "https://api.cognitive.microsofttranslator.com";
$path = "/translate?api-version=3.0";
$params = "&to=zh";
if(!function_exists('com_create_guid')){
function com_create_guid(){
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
mt_rand(0, 0xffff), mt_rand(0, 0xffff),
mt_rand(0, 0xffff),
mt_rand(0, 0x0fff) | 0x4000,
mt_rand(0, 0x3fff) | 0x8000,
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff));
}
}
function Translate ($host, $path, $key, $params, $content) {
$headers = "Content-type: application/json\r\n" .
"Content-length: " . strlen($content) . "\r\n" .
"Ocp-Apim-Subscription-Key: $key\r\n" .
"X-ClientTraceId: " . com_create_guid() . "\r\n";
$options = array (
'http' => array (
'header' => $headers,
'method' => 'POST',
'content' => $content
)
);
$context = stream_context_create($options);
$result = file_get_contents ($host . $path . $params, false, $context);
return $result;
}
$requestBody = array (
array (
'Text' => $text,
),
);
$content = json_encode($requestBody);
$result = Translate($host, $path, $key, $params, $content);
$json = json_decode($result);
$newtext = $json[0]->translations[0]->text;
?>
<div id="text1">
<?php echo $newtext; ?>
</div>
あれ、これなんかヤベーことになってないか?大丈夫か?

2018年4月27日日本货币政策银行近期1。 日本银行今日决定在政策委员会货币政策会议上作出以下决定。 [1] (1) 短和长率操作 (屈服曲线控制) (倾向于 8) 金融市场调整政策, 直到下个货币政策会议如下。 短期利率: 0.1% 的负利率适用于日本银行支票账户的政策利率平衡。 长期利率: 购买长期的日本国债, 以确保10年期的日本国债将保持在零的百分比。 采购金额应管理, 以实现利率经营政策, 以近似目前的购买速度 (约80兆日元每年)。 (2) 资产购买政策 (一致) 购买非长期政府债券的资产如下。 对于① etf 和 J-房地产投资基金, 该行购买其持有量以相当于每年约6日元和大约900亿日元的速度增长。 ② CP 等, 以及债券等, 分别为2.2 日元左右, 以维持约3.2 日元的平衡。 2。 日本央行将继续 “以短期业务进行定量和定性的货币宽松政策”, 以实现2% 的 “价格稳定目标”, 并稳定地维持它。 货币基础的扩张政策应继续下去, 直到 CPI (不包括新鲜食品) 的实际价值以稳定的方式增加到2%。 今后, 我们将对必要的政策作出调整, 以便根据经济、价格和财政状况保持 “价格稳定目标” 的势头 (注 2)。 1以上 (注 1): 黑田、Amemiya、尚志 Wakatabe、原田、Funo、樱井、马赛、铃木等会员。 相反: 片冈。 片冈考虑到2020财年的风险因素, 如消费税上调和美国经济衰退, 最好是进一步加强货币宽松政策, 并适当购买长期国债, 以进一步降低10年来的广泛的政府债券利率。 非常。 (2) 片冈委员会须指明 “价格稳定指标” 的时间, 并从加强超调型承诺的角度出发, 在因国内因素而延迟完成时, 采取额外的纾缓措施是适当的。 这是不必要的, 写在文本中。 2 (参考) 时间–4月26日 (星期四) 14:00-15:21 4月27日 (星期五) 9:00 ~ 11:56 出席委员会-主席黑田东彦 (总督) 正义 Amemiya (副省长) 尚志 Wakatabe 昌原田 Yukitoshi, 马赛孝子, 正诚铃木 (副总裁) 片冈, 4月27日, 财政部内阁办公室出席。 (Funo) 除上述外, 4月26日, 财政部和武务部 (让凯布), 押川内阁办公室主任 (14:00 ~ 15:21) (14:00 ~ 15:22), Kihara Shingai 财政部副部长 (9:00 ~ 11:32, 11:39 ~ 11:56) 内阁办公室副部长 (9:00 ~ 11:32, 11:39-11:56), 货币政策的日期和时间 -4月27日 (星期五) 12:03 经济活动和价格展望 (全文包括背景说明)–4月28日 (星期六) 14:00–主要意见–5月10日 (星期四) 8:50 预定分钟
yumコマンドで入れます。
[pre]
yum install xpdf
[/pre]
依存性関連をインストールしました:
desktop-file-utils.x86_64 0:0.15-9.el6
lcms-libs.x86_64 0:1.19-1.el6
libXmu.x86_64 0:1.1.1-2.el6
libXp.x86_64 0:1.0.2-2.1.el6
libpaper.x86_64 0:1.1.23-6.1.el6
openjpeg-libs.x86_64 0:1.3-16.el6_8
openmotif.x86_64 0:2.3.3-9.el6
poppler.x86_64 0:0.12.4-12.el6_9
poppler-data.noarch 0:0.4.0-1.el6
poppler-utils.x86_64 0:0.12.4-12.el6_9
urw-fonts.noarch 0:2.4-11.el6
xdg-utils.noarch 0:1.0.2-17.20091016cvs.el6
xorg-x11-fonts-ISO8859-1-100dpi.noarch 0:7.2-11.el6
xorg-x11-fonts-ISO8859-1-75dpi.noarch 0:7.2-11.el6
完了しました!
etcのディレクトリの xpdfrcを編集します。

# Choose a text encoding for copy-and-paste and for pdftotext output.
# The Latin1, ASCII7, and UTF-8 encodings are built into Xpdf. Other
# encodings are available in the language support packages.
textEncoding UTF-8

コマンドラインから、pdftotext origin.pdf create.txt でtxtファイルを作成する。
[vagrant@localhost translator]$ pdftotext boj.pdf boj.txt

うおおおおおおおおおおおおおおおおおお
テキストファイルになってる!!!!!!!!!!!
ヘッダーの「日本銀行」とフッターの「以上」が改行されているが、他は問題なさそう。すげー

xpdfをazureのvmに入れられるのかわからんが、まずはvagrantで構築していきましょう。
pdftotextはcrontabでやるにしても、コマンドラインではなく、phpファイルから実行できるんだろうか?