OmniAICreator/Qiita-1.07M huggingface dataset:
Word Pressでhttpsに変更したら403エラーがでたときの対処法【ロリポップ】

#起きた問題
Word Pressの設定で、サイトアドレスとWord Pressアドレスをhttpsに変更したら、403エラーで入れなくなってしまいました。よくよく見ると、ロリポップの公式HPにも以下のように書いてありました。
>（１） WordPressダッシュボードにログインします。　
（２）左側のメニューより『設定』＞『一般設定』を選択します。
（３）「WordPress アドレス (URL)」と「サイトアドレス (URL)」を「https://」から始まるURLに修正します。
（４）『変更を保存』をクリックして完了です。
***※ロリポップ！のドメインを使ったサイトの場合は、上記の方法で独自SSL化することはできません。***

[WordPressで作成したサイトを独自SSL化するには?-ロリポップ](https://lolipop.jp/support/faq/ssl/000696/)

#解決方法
###1.php MyAdminへログイン
**ロリポップのマイページ＞サーバーの管理・設定＞データベース**でphp MyAdminのユーザー名・パスワードが確認できます。**php MyAdminを開く**からphp MyAdminにアクセスします。

###2.Word Pressアドレスを編集
**wp_options＞option_name＞siteurl**に移動すると
```https://****************```
があるので
```http://****************```
に書き換えましょう。

そうするとWord Pressにログインできるはずです！

###3.サイトアドレスを編集
あとは、Word Pressの設定から、サイトアドレスも
```http://****************```
に変更しましょう。以上で作業は終了となります！

###なぜかまだサイトを開くと403になる時
ロリポップのマイページで**セキュリティ＞WAF設定**で対象のドメインを無効にしてみましょう。

###上記の方法でもダメな場合
Chromeの場合、**履歴＞全履歴を表示＞閲覧履歴データの削除＞キャッシュされた画像とファイル**でキャッシュを削除してみましょう。

---
読んでくださりありがとうございました！
まだまだ駆け出しなので、ご指摘等あれば是非お願いします！
[Javascript]IEで開けたshowModalDialogがChromeではダメだった件【自分用メモ】

<h1>概要</h1>
window.showmodalDialogとは、ブラウザでモーダルダイアログボックス(modal)を生成するメソッドです。

showModalDialogメソッドが他ブラウザには反応されない件で作成しました。
このメソッドは現在、他ブラウザやモバイルには全く動作できないメソッドなので、使用をお勧めしないです。

切り替えるけど、Javascriptしか使えない環境の場合は、
windows.openerで切り替えられます。

<h1>showModalDialogとは</h1>
IE 4.0で実装されたメソッドで、ブラウザでモーダルダイアログボックス(modal box)を生成するメソッドです。

<h1>ブラウザのShowModalDialogに対する互換性</h1>
①IE：最新バージョン(IE 11)も使えます。
②Chrome：Chrome43バージョン(2015年)から廃止されました。
③Firefox：Firefox56バージョン(2017年)から廃止されました。
④Safari：5.1(2011年の)で実装されましたが、セキュリティ上の問題が発見され、廃止されました。
⑤Microsoft Edge：サポートされていません。

<h1>このメソッドでIEと他ブラウザを同時対応したい時は</h1>
他ブラウザには実装されていないメソッドの為、メソッドをオーバーライドする必要があります。

```javascript:example.js
//ブラウザを判別する
function checkBrowser() {
    var agent = window.navigator.userAgent.toLowerCase();
    
    // Internet Explorer
    if(userAgent.indexOf('msie') != -1 || 
       userAgent.indexOf('trident') != -1) {
        ...
    // 他ブラウザ
    } else {
        ...
    }
}

//他ブラウザでshowmodalDialogをオーバーライドする
function showmodalDialog(first, second, third) {
    //ロジックなし
    //元のメソッドはshowmodalDialog(url, argument);
}

function test() {
    if(checkBrowser()) {
        ...
    } else {
        ...
    }
}
```

<h1>JavascriptでshowmodalDialogの切り替え</h1>
window.openで似せて作成できる。
<h1>参照先</h1>
<a href="https://developer.mozilla.org/ja/docs/Web/API/Window/showModalDialog">window.showmodalDialog</a>
C言語　構造体とポインタ　実践を意識rev3

[前記事](https://qiita.com/Banayad/items/c0b58a198c53992b9b30)で頂いた指摘をもとに改良。
次は入力時の例外処理なんかを調べようかな。。

```c:userinfo.c
#include <stdio.h>		//システムインクルードは < >を使う。自作ヘッダインクルードは""を使う。
#include <stdint.h>		//厳密には探しにいく順番が違ったりするらしいが、、
						//何よりも読み手を混乱させるのがよくないのでちゃんと覚えておこう。
#define NAME_SIZE		( 100 )   
#define AGE_SIZE		(  10 )   
#define ADDRESS_SIZE	( 100 )   
#define SEX_SIZE		(  10 )   
#define PHONE_SIZE		(  20 )   

typedef struct user_info {			
	uint8_t	 name[NAME_SIZE];
	uint8_t  age[AGE_SIZE];			
	uint8_t  address[ADDRESS_SIZE];
	uint8_t  sex[SEX_SIZE];			
	uint8_t  phoneNumber[PHONE_SIZE];
}UserInfo;

void UserInfo_input(UserInfo* user) {	//voidの書き忘れに注意。コンパイラによってはエラーでるものも？
	printf("名前を入力してください->");
	scanf_s("%s", user->name,sizeof(user->name));//本来は汎用的なscanfを使うところだがVC++の仕様？で仕方なく
												 //VC++でscanf使うとエラーに、、これは酷い気が。。
	printf("\n年齢を入力してください->");
	scanf_s("%s", user->age, sizeof(user->age));

	printf("\n住所を入力してください->");
	scanf_s("%s", user->address, sizeof(user->address));

	printf("\n性別を入力してください->");
	scanf_s("%s", user->sex, sizeof(user->sex));

	printf("\n電話番号を入力してください->");
	scanf_s("%s", user->phoneNumber, sizeof(user->phoneNumber));

}

void UserInfo_save(const UserInfo* user) { //ここではuserが指す領域は変更しない。
//こういうときはconstつけるべき。さもなくばCPUが非効率な処理？をしてしまうみたい。
	FILE* fp;
	
	if (fopen_s(&fp, "TBD.txt", "w")!= 0) { //ファイル名はuser.nameなどから持ってきたい！できない！眠い！
		printf("ファイルアクセス失敗！");
	}
	fprintf_s(fp, "【名前】\n%s\n", user->name);
	fprintf_s(fp, "【年齢】\n%s\n", user->age);
	fprintf_s(fp, "【住所】\n%s\n", user->address);
	fprintf_s(fp, "【性別】\n%s\n", user->sex);
	fprintf_s(fp, "【電話番号】\n%s\n", user->phoneNumber);
	fclose(fp);
}

int main(void) {

	UserInfo	user;
	UserInfo_input(&user);
	UserInfo_save(&user);

	return 0;
}
```
[Xcode11]StoryboardでSuperViewへのEqualWidth,EqualHeightができなくなった時の解決法


#はじめに
Xcode11でstoryboardを使っていて、ViewをSuperViewと同じ横幅にしようと思ったのですが、ViewをSuperViewへドラッグしたところEqualWidthsは見当たりませんでした、

#問題

Xcode11以前はStoryboardでViewなどをドラッグしてSuperViewに合わせると

![qii.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300780/cf21ecdf-54d0-ccdb-7d1b-39a4f6606de2.png)


このようなメニューが出てきて、EqualWidthsを選択するとEqual Widths Constraintをつけることができました

<img width="224" alt="スクリーンショット 2019-10-10 23.42.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300780/c6804f97-4d55-a72b-88eb-c3520ece087f.png">

しかし、Xcode11では同じ操作をするとこのような画面になり、メニューからEqualWidths,EqualHeights,Aspect Ratioが消えてしまいました。

<img width="230" alt="スクリーンショット 2019-10-10 23.45.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300780/31b6934b-f781-8c80-66c9-53f831bbab8f.png">

#回避策

先ほどSuperViewへドラッグした操作をSafeAreaに変更すると、EqualWidths,EqualHeights,Aspect Ratioが出現するので選択します。

<img width="264" alt="スクリーンショット 2019-10-10 23.46.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300780/c1143cd5-b5c0-e5f0-4a89-70f04c8f6e5f.png">

そうするとこのような感じになりますので、Second Itemの欄からSuperViewを選択してあげると

<img width="290" alt="スクリーンショット 2019-10-10 23.46.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300780/dfb403f0-6ff1-7880-47ac-e47dffe988dd.png">

SuperViewと同じ高さにしてあげることができました

<img width="264" alt="スクリーンショット 2019-10-10 23.46.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/300780/f86c91ea-abee-8e41-8781-6ddf755a49bd.png">

#参考リンク

[Xcode 11 Add "Equal Width to Superview" Constraint?](https://forums.developer.apple.com/thread/123284)

[Cannot equal height to Superview in Xcode 11
](https://stackoverflow.com/questions/58105491/cannot-equal-height-to-superview-in-xcode-11)
power-doctestでREADMEのjsをテストしよう

ライブラリを書いたら、READMEを書きますよね。
READMEにはライブラリのサンプルコードを書きますよね。
例えば、こんな感じ。

```md
# library
## how to use

'''js
lib.foo("foo"); // => "bar"
lib.bar("foo"); // => "bar"
lib.add(1, 2); // => 4
lib.sub(5, 2); // => 3
'''
```
※バッククオートが使えなかったので、シングルクオートで書いています。

このサンプルコードそのものをテストできると、安心できますね。

# power-doctestを使ってみる

[power-doctest](https://github.com/azu/power-doctest)は、そんな想いを実現してくれるライブラリです。
JavaScript, Markdown, AsciiDocに対応しているパーサーと、 `power-assert` のアサーションコードに変換した上で実行してくれるテスターの大きく二つのモジュールに別れています。

## 使い方

例として、Markdownのjsコードをテストしてみます。

### markdown

```md
# library
## how to use

'''js
lib.add(1, 2); // => 3
'''

'''js
lib.sub(3, 2); // => 1
'''
```

ここで重要なのは、結果を `lib.add(1, 2)// => 3` のようにコメントで直書きしているところです。
これにより、パーサーが、 `assert.strictEqual(lib.add(1, 2), 3)` と内部で変換してくれテストしてくれます。
しかも、上に書きましたが、 `power-assert` でアサーションしてくれます。みやすい。

### テストコード

テストコードはこのように書くとよいでしょう。

```js
const { test } = require("@power-doctest/tester");
const { parse } = require("@power-doctest/markdown");

// markdownの中身をまるっと変数に入れる。
const markdownContent = somethingLoadMethod();
// ファイルパスは、どのファイルのどの行でエラーあになったかを記録するために必要っぽい。
const parsedContent = parse({ content: markdownContent, filePath: "~/src/markdown.md" });

// parsedContentは配列になる。
// markdownに記載されたjsのコードスニペットの数だけ配列が生成されるので、forEachなどで一つずつテストする。
parsedContent.forEach(async (metadata) => {
  try {
    await test({
      ...metadata, 
      code: `const lib = require("lib"); ${metadata.code}`
    });
  } catch (e) {
    console.error(e);
  }
});
```

ちょっと注目して欲しいのが、テストを実行しているところです。
パースしたコードにはライブラリをロードする処理が書かれていないため、 `lib.add()` などを呼び出そうとしても、定義されておらず死んでしまいます。
しかし、markdownに `const lib = require("./lib")` などと書くのもイケてません。
そこで、テスト前にロード処理を挿入することにより、markdown上からは読み込みを排除しました。

# サンプル

[こちら](https://github.com/naoki-tomita/sql-builder)が、 `power-doctest` を試すために作ったライブラリです。
テストコードは[これ](https://github.com/naoki-tomita/sql-builder/blob/master/__tests__/README.spec.ts)です。

以上です。よろしくお願いいたします。
Vue.jsのv-if,v-show 要素の表示非表示

要素の表示非表示を切り替える

js

```js
var app = new Vue({
  el: '#app',
  data: {
    toggle: true
  }
})
```

html

```html
<div id='app'>
  <p v-if=toggle>
  Hello
  </p>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16"></script>
```

##表示結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199860/82bef769-b19f-9cff-b7f9-dee4d40af18a.png)

jsのtoggleをfalseにすると非表示になる。

```js
var app = new Vue({
  el: '#app',
  data: {
    toggle: false
  }
})
```

v-showでfalseの場合はcssでdisplay:noneとなる。
v-ifの場合はdomレベルで削除となる。
Microsoft Hyper-V Server 2016でPCI Expressに挿したSSDを読み込まなかったよ

#概要
Corsair Force MP510をAIF-08っていう「PCI Express接続のM.2 SSDスロットを1基搭載したPCI Expressカード」を装着し、それをM/Bに装着して起動した。
UEFI上ではssdを発見できたが、OS上では見つからなかった。
ドライバーを補充したら正常に読めた。


# 前提
firefoxと7-zipをインストールのこと

# 注意
要再起動、自己責任で。


Hyper-V Serverでデバイスマネージャーにあたるmsinfo32を使います。
サーバー側のcmd.exeで

```terminal:cmd.exe
msinfo32
```
と入力。
「コンポーネント」→「問題のあるデバイス」に
・pci シンプル通信コントローラー
とかpciなんとかっていうのがインストールされていないと思います。

「チップセット inf ユーティリティ」をダウンロードします。
https://downloadcenter.intel.com/ja/product/1145
zip形式ですので、

```terminal:cmd.exe
cd c:\"Program Files"\7-Zip
7zFM
```
で7zipで「チップセット inf ユーティリティ」zipを開きインストールしてください。

再起動を。

あとは、diskpartでフォーマットとassignすればおーけー。

#参考
https://yun-craft.com/software-crafts/hyper-v-server-2016-1#3
https://qiita.com/haniokasai/items/c509ff5bbf86347ee4b8
属性のデータバインド v-bind テキストボックスに値を表示する。


javascript

```js
var app = new Vue({
  el: '#app',
  data: {
    message: 'hello world'
  }
})
```

html

```html
<div id='app'>
  <input type="text" v-bind:value="message">
</div>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16"></script>
```

##表示結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/199860/78de4ed8-ac35-3ef2-0997-6dc4eb40d306.png)
定番の参照設定を追加するExcelマクロ

#### これは
ちょっとしたExcelマクロを新たに作成するときに、
大抵いつも追加する定番の参照設定があったりしませんか。
（Microsoft Scripting Runtime とか）

そんな時、いちいち参照設定のメニューでチェックを入れるのが煩わしいので
個人用マクロブックにこんな感じの処理を仕込んでいます。

自分の個人用マクロブックには定番の参照設定が既に設定してあるので、
それを参考に新しいブックにもそれらを追加するという仕組みです。

#### コード
```vb
Sub 定番の参照設定を追加()
    RefCopy ThisWorkbook, ActiveWorkbook
End Sub

Function RefCopy(org As Workbook, target As Workbook)
    Dim ref  'As Reference
    On Error Resume Next     '既に設定済みだとエラーになるので
    For Each ref In org.VBProject.References
        If Not ref.BuiltIn Then
            Debug.Print ref.Description
            target.VBProject.References.AddFromFile ref.FullPath
        End If
    Next
End Function
```



#### 別バージョン
最初に作った時には、こんなふうにコード上にフルパスをベタに羅列していて、
これでも十分に用は足していたのですが、
PC環境が変わったのをきっかけに、上のように作り直しました。

```vb

Sub AddNewBookWithRefs()
    Dim refs As New Collection, ref
    With refs
        .Add "C:\Windows\SysWOW64\scrrun.dll"
        .Add "C:\Windows\SysWOW64\shell32.dll"
         '
         '
         '
    End With
    With Workbooks.Add
        For Each ref In refs
            .VBProject.References.AddFromFile CStr(ref)
        Next
    End With
End Sub

```
自然言語処理の最新動向ウォッチでよくみるサイト（随時追加）

# はじめに
私が自然言語処理を勉強するときによくみるサイトをまとめておきたかったので書いたメモです。

# 最新論文

## arXivTimes/arXivTimes: repository to research &amp; share the machine learning articles
https://github.com/arXivTimes/arXivTimes
AI分野の論文の概要一覧。NLP以外もあり。日本語なのが非常にありがたい。

## GLUE Benchmark
https://gluebenchmark.com/leaderboard
言わずと知れたベンチマークのランキング。

## thunlp/PLMpapers: Must-read Papers on pre-trained language models.
https://github.com/thunlp/PLMpapers
BERT以降のNLPモデルの論文リンク一覧。BERTの改良の歴史をまとめた画像もある。

## AI-SCHOLAR
https://ai-scholar.tech/
新しいモデルや技術を日本語で解説してくれている。

## 事前学習言語モデルの動向 / Survey of Pretrained Language Models - Speaker Deck
https://speakerdeck.com/kyoun/survey-of-pretrained-language-models
BERT以降のモデルのまとめ。

# 実装・原理理解

## Out-of-the-box
https://yag-ays.github.io/
BERTでの文書ベクトル生成のコードなど、他にない情報あり。

## ディープラーニングブログ
http://deeplearning.hatenablog.com/
主に論文の解説記事。わかりやすい。

## lib-arts’s diary
https://lib-arts.hatenablog.com/
最新の自然言語処理の論文解説他。

## 星の本棚
http://yagami12.hatenablog.com/
自然言語処理（やディープラーニング）を一から解説。

## はじめての自然言語処理 | オブジェクトの広場
https://www.ogis-ri.co.jp/otc/hiroba/technical/similar-document-search/
BERTやGiNZAなどの概要から使ってみるとことまで。

# 日本語コーパス
調べてもそんなに出てこないものを中心に。

## 名大会話コーパス
https://mmsrv.ninjal.ac.jp/nucc/

## 雑談対話コーパス
https://sites.google.com/site/dialoguebreakdowndetection/chat-dialogue-corpus

## 大学入試サブタスク
http://www.cl.ecei.tohoku.ac.jp/rite2/doku.php?id=wiki:%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8

# 学習済みモデル
調べてもそんなに出てこないものを中心に。

## HR領域の単語ベクトル
https://github.com/bizreach/ai/tree/master/word2vec

# おわりに

随時追加していきます。
Debian 10にOpenJDK 13をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian10にOpenJDK13をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2023-03がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common gnupg
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-13
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "13" 2019-09-17
OpenJDK Runtime Environment Zulu13.27+9-CA (build 13+33)
OpenJDK 64-Bit Server VM Zulu13.27+9-CA (build 13+33, mixed mode, sharing)
```
AI導入できない理由と導入への進め方についてまとめてみた

#はじめに
2019/10/10に東京ビックサイトで以下のセミナーを受講した結果、
会社に対するAI導入について整理できたのでまとめてみました。
[日経クロストレンド EXPO 2019「ディープラーニング活用最前線～アワード受賞企業に学ぶ」]
(https://project.nikkeibp.co.jp/event/jdla191010/)

あくまで、個人の見解のため、間違っている認識があれば、
ご指摘ください。

上記参加のきっかけとしては、
[G検定合格](https://qiita.com/bossjerom/items/dd66f5f73a1e5eafc618)後のSlack上にて、
G検定 or E検定取得者は、先行登録できるとのことだったのでチャンスと思ったため。

#概要
以下2点について、まとめます。
①AI導入できない理由
②AI導入の進め方について

#詳細
##①AI導入できない理由
###AIって良くわからないから
AIの説明として「AI=知能」だが、学術的にも定義が割れている。
そもそも「知能」の定義は確立されてなく人によって解釈様々だから。

私なりの解釈は、
「あたかも人が思考しているような振る舞いを行うソフトウェア」
例えば、チャットボット、自動翻訳、車の自動運転等々

###AIで何ができるのか
まず、AIとロボットを混同している人がいるため、
整理すると。
・AI＝知力の領域
・ロボット＝体力の領域

例としては、
・ロボット＝ガンダム等
・AI＝スカイネット(ターミネーター)、マザーシステム等
・ロボット X AI＝どらえもん等

上記から、知の領域が「AI」が行えることである。
また、知の領域は大きく以下2点。
・子供の知(本能：喜怒哀楽、創作等、心の要素(ホスピタリティ))
・大人の知(学習：言語理解や数理的理解等)

現状AIが得意な領域は、「大人の知」である。
(どらえもんは心があるから凄い！)

なので、AIで奪われない職業として、
ミュージシャンやホスピタリティ関連の職業が良く上げられる。

###じゃあAIでどこから手をつければ良いのか
②へ続く。

##②AI導入の進め方について
###１．パイロットプロジェクトを実行
中核の事業でなく、且つ小さすぎないプロジェクトから始める。
ノーリスク、ローリターンぐらいなイメージ。
内製や協業などでトライ。

###２．インハウスのAIチームを作る
上記成功体験を元に、会社全体を支援できるチームを作成する。
この際、プロジェクト成功フローができ始める。

###３．AIのトレーニングを提供する
上記AIチーム作成後、AI人材を育成するための、教育を実施し、
AI人材を増加する。
需要過多のため、育成して人材を増やすという考え方。

###４．AI戦略を作る
上記で、AI人材の基盤ができので、
AIとビジネスを掛け合わせて、会社の売上、利益の戦略を作る。
一例としては、「会社の強み X AI」が差別化も図れる。
対象授与したキューピー様は「現場力の強み X AI」で戦略を作ったそう。

###５．内部・外部のコミュニケーションを作る
CDLE(JDLAのSlackコミュニティ)など異業種交流することで、
あたらしい創造や共通課題について、業界全体を発展させることに寄与する。


###Appendix
AI導入方法について、
より詳細な内容は以下を参照ください。
AI Transformation Playbook
https://qiita.com/sugulu/items/831b85384b79091f1ee3

#その他
SaaSやアプリ等でAIサービスを提供する際に、
顧客受けする4か条。(ファストフードみたい)
・早い
・使いやすい
・分かりやすい
・安い
Debian 10にOpenJDK 11をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian10にOpenJDK11をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2027-09がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common gnupg
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-11
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "11.0.4" 2019-07-16 LTS
OpenJDK Runtime Environment Zulu11.33+15-CA (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM Zulu11.33+15-CA (build 11.0.4+11-LTS, mixed mode)
```
Debian 10にOpenJDK 8をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian10にOpenJDK8をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2026-03がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common gnupg
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-8
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (Zulu 8.40.0.25-CA-linux64) (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (Zulu 8.40.0.25-CA-linux64) (build 25.222-b10, mixed mode)
```
Debian 10にOpenJDK 7をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian10にOpenJDK7をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2023-07がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common gnupg
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-7
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "1.7.0_232"
OpenJDK Runtime Environment (Zulu 7.31.0.5-CA-linux64) (build 1.7.0_232-b6)
OpenJDK 64-Bit Server VM (Zulu 7.31.0.5-CA-linux64) (build 24.232-b6, mixed mode)
```
Debian 9にOpenJDK 13をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian9にOpenJDK13をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2023-03がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common gnupg
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-13
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "13" 2019-09-17
OpenJDK Runtime Environment Zulu13.27+9-CA (build 13+33)
OpenJDK 64-Bit Server VM Zulu13.27+9-CA (build 13+33, mixed mode, sharing)
```
【jQuery】bodyに現在表示されているページのディレクトリ名を付与する

##開始タグ
静的なWebサイトをコーディングしている最中に、body要素にclassを付与してそのページにしか効かないようなCSSを書いたりする時があります。
このいちいちhtmlに書いていく作業が本当に面倒臭かったので、jQuery先生にお願いしました。

##方法
１、現在いるページのディレクトリ名を取得する。
２、ついでに現在いるページの１階層上のディレクトリ名も取得する。
３、その取得したディレクトリ名の文字列冒頭に`b_`をつける。
４、`b_`がついた状態の文字列をクラス名としてbody要素に付与する。

```javascript:sample.js
$(function() {
	var loc = location.pathname.split("/"); //パス名を/で分割して取得
	var dirName = loc[loc.length - 2]; // 文字列の後ろから２番目を取得
	var dirNamePar = loc[loc.length - 3]; //　文字列の後ろから３番目を取得

	// bodyに所属ディレクトリclass名付与
	$('body').addClass('b_' + dirName + ' ' + 'b_' + dirNamePar);
});
```
例：/hoge/hoge2/hoge3/
上から三行をコンソールで確認してみると・・・

`var loc = location.pathname.split("/");`

```javascript:コンソール
0: ""
1: "hoge"
2: "hoge2"
3: "hoge3"
4: ""
length: 5
```
`/`の前後も取得してしまうので、0,4には何も取得されていません。


`var dirName = loc[loc.length - 2];`

```javascript：コンソール
hoge3
```

`var dirNamePar = loc[loc.length - 3];`

```javascript：コンソール
hoge2
```

となります。
ですので、`/hoge/hoge2/hoge3/`であれば、そのページのbody要素には`b_hoge2` `b_hoge3`の2つのクラス名が付与されます。

##閉じタグ
１階層上のディレクトリも付与しているのは、ディレクトリ全体で効かせる場合もあるので用意しています。
とはいえ、このやり方は完璧ではないので今後自分なりに見つかれば改良していきたいと思います。
Debian 9にOpenJDK 11をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian9にOpenJDK11をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2027-09がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common gnupg
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-11
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "11.0.4" 2019-07-16 LTS
OpenJDK Runtime Environment Zulu11.33+15-CA (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM Zulu11.33+15-CA (build 11.0.4+11-LTS, mixed mode)
```
Debian 9にOpenJDK 8をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian9にOpenJDK8をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2026-03がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common gnupg
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-8
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (Zulu 8.40.0.25-CA-linux64) (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (Zulu 8.40.0.25-CA-linux64) (build 25.222-b10, mixed mode)
```
Debian 9にOpenJDK 7をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian9にOpenJDK7をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2023-07がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common gnupg
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-7
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "1.7.0_232"
OpenJDK Runtime Environment (Zulu 7.31.0.5-CA-linux64) (build 1.7.0_232-b6)
OpenJDK 64-Bit Server VM (Zulu 7.31.0.5-CA-linux64) (build 24.232-b6, mixed mode)
```
Markdownのdiff コードシンタックスを使いやすくする

## 背景

勉強会の資料をMarkdonwで作っていたが、diffのコピペがしづらいと不評だった。
diffの各行先頭にある +, -が邪魔らしい。

先頭の記号だけ選択範囲から除外したかったが、
いい方法が見つからなかったので出力ファイルに直接スクリプトを突っ込むことにした。

## 環境

- VSCode
- Markdown PDF(VSCodeプラグイン)

## 方法

1. Markdown PDFでVSCodeから`Export html`
2. 出力されたhtmlの `</body>` タグ直上に下記のスクリプトを配置

```html
<script>
const targets = document.querySelectorAll([
  '.hljs-deletion', // - の行
  '.hljs-addition'  // + の行
]);
targets.forEach(function(target){
  const t1 = target.textContent.substr(0,1);
  const t2 = target.textContent.substr(1) || ' ';
  let e1 = document.createElement('span');
  let e2 = e1.cloneNode();
  e1.style.userSelect = 'none';
  e1.textContent = t1;
  e2.textContent = t2;
  target.textContent = "";
  target.appendChild(e1);
  target.appendChild(e2);
});
</script>
```
---

これで複数行選択した時も、+, -を無視して選択できるようになる。
qiitaでも使いたい場合は、取得対象のセレクタを `.gd` `.gi` に変更すれば使えそう。

こんなめんどくさいことしなくてもできる方法があれば教えてください。
フルノードBitcoinをPCから消すまで

ぶっちゃけどうでもいい話です

##why
大学の実験で８０GBのソフトウェアを使うことになり各々のPCにインストールすることになりました
しかし、自分のPCだけ異常にメモリ食っててお入れられない。。。なぜ？！

##how
まずは使いそうなコマンドたちをご紹介しましょう
`du`メモリの大きさを表示してくれる
`rm -r`ディレクトリの中身をファイルごと消してくる
`cd`移動用
`ls`ディレクトリの中身をみる

この４つのコマンドを駆使してお掃除していく

##notice
それでもなかなかメモリが増えない
よっぽどでかいゴミがあるはず！！

...気付きました。
半年前に入れた***Bitcoinのフルノード(100GB)!!!!***

すっかり忘れてた笑

##where
そんなBitcoinは
`Users/hoge/Library/Application Support`に横たわっていました
##result
`rm -r　Bitcoin`のコマンド入力の後にメッセージが出るので全て`y`で応答したところ
無事に消去することができました。

##まとめ
100GBのメモリを確保することができ大きな成果を得ることができました。
また、コマンドの使い方も少し覚えることができました。

ちなみに、二コマ分の実験を犠牲にしたのでレポートがやばい
あと、学科長の先生にマイニングいじりされました
機械学習メモ

# 機械学習メモ
機械学習の勉強時の記録。自分用。

# Google Colab
## Google Colab の使い方
[こちら](https://cpp-learning.com/python_colaboratory/)



---
- kaggle本読みながらやってみる。
- このサイトはkaggleを丁寧に説明している。
https://qiita.com/upura/items/3c10ff6fed4e7c3d70f0
初心者殺しなTypeScriptのジェネリクス(<>←これ)攻略

## はじめに
社内向けの教育資料を転載。
以下本文。

## ジェネリクスの特徴

1.  三角カッコの不思議なやつ
1.  ライブラリとか覗くとよく生息してる 
1.  エラーのトレースバックでもよくいる
1.  初心者殺し！！！


##  ジェネリクスを一言で

型が違うが動作がほぼ同じ関数・オブジェクトを型の違いを気にせず定義する機能。

むずかしい...

## 具体例
いろんな型のデータに対して`+`操作する関数を考える。

```typescript
const addInt = (a: number, b: number) => a + b
addInt(1, 2) // 3

const addStr = (a: string, b: string) => a + b
addStr("a", "b") // "ab"

const addArr = (a: any[], b: any[]) => a + b
addArr([1, 2, 3], [4, 5]) // [1, 2, 3, 4, 5]
```
なんか型が違うだけでほとんど同じ操作してる気がする...
3回もほぼ同じこと書いてるし...
めんどくさい...

と昔の偉いエンジニアは考えた。
めんどくさいときは共通化してサボるのが鉄則。
では共通点とは？相違点は？

#### 共通点
２つのデータに対して`+`操作を行う

#### 相違点
入ってくる２つのデータの型が違う。

すなわち、`a`と`b`という両方型が同じで何らかの型を持つ、その型を仮に`T`と呼ぼう、が入ってくると戻り値の方も`T`になる。

### 共通点をくくりだしてまとめる
共通化するとき各ケースで異なるものはどう取り扱うだろう。
例えば何回も使用する共通の処理をまとめたものである関数では、入力値が毎回異なるので"引数"という概念で相違点に柔軟に対応する。

実はジェネリクスはこの引数みたいなもの。
違うのは普通の引数がデータに対しての変数であるのに対し、ジェネリクスは型に対しての引数であるということ。

実際に上の３つの関数をジェネリクスを用いて再定義してみよう。

```typescript
const add<T>(a: T, b: T) => a + b

add<number>(1, 2) // 3, number型を受け取ってnumberを返す
add<string>("a", "b") // "ab", string型を受け取ってstringを返す
add<any[]>([1, 2, 3], [4, 5]) // [1, 2, 3, 4, 5], any[]型を受け取ってany[]を返す
```

こうやって`<T>`を型引数として宣言し、使用時に型を代入する。
上で説明したように、addはまさに`T`型の変数`a`と`b`を受け取って`T`型の戻り値を返す関数に様変わりした。
こうして鬱陶しいaddの定義は一回ですみ、共通化の安寧がもたらされた。

## まとめ
ジェネリクスはライブラリ使用時など必ず出てくる概念。
ある程度は知らずにコードを書けるが、ある時点で必ず成長がとまる。
だから早めに習得して、みんなもTypeScriptで気持ちよくなろう！

### 挑戦問題
実は上でジェネリクスを用いて共通化した`add`関数はエラーを起こす。
何故かわかるかな？
Debian 8にOpenJDK 13をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian8にOpenJDK13をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2023-03がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-13
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "13" 2019-09-17
OpenJDK Runtime Environment Zulu13.27+9-CA (build 13+33)
OpenJDK 64-Bit Server VM Zulu13.27+9-CA (build 13+33, mixed mode, sharing)
```
macOS Catalinaのターミナルがzshに変えろと言ってこないようにする

macOSをCatalinaにアップデートするとデフォルトシェルがzshになるのは周知の通りですが、これまで使ってきた.bash_profileのしがらみもあり、いきなりzshを使い始めるのは待ってほしいところです。

しかしbashを使い続けるとターミナルを開くたびに下記のメッセージを主張してきます。

```sh
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
```

これを黙らせるには次の環境変数を設定すればOKです。

```sh
export BASH_SILENCE_DEPRECATION_WARNING=1
```

zshはそのうち時間を作って移行することにしましょう。
dbpediaの研究 その17

#概要

dbpediaが難解なので、手出してみる。
動くsparqlを、集めてみた。

#結果


```
select distinct *
where {
	?s  prop-ja:色 ?o .
}
limit 10
```

```
select distinct ?o
where {
	?s rdf:type ?o.
}
LIMIT 10
```

```
select *
where {
	?s ?p dbpedia-ja:凶器 .
}
```

```
select *
where {
	?s ?p ?o .
}
LIMIT 10
```

```
SELECT ?director, COUNT(?director) AS ?count
WHERE {
	?film dbpedia-owl:director ?director
}
GROUP BY ?director
ORDER BY DESC (?count)   
```

```
SELECT ?author, ?masterpiece
WHERE {
	dbpedia-ja:ドラえもん prop-ja:作者 ?author.
	?author prop-ja:代表作 ?masterpiece.
}
   
```

```
SELECT DISTINCT ?label ?depiction 
WHERE {
	?s prop-ja:genre <http://ja.dbpedia.org/resource/ロック_(音楽)> ;
	rdfs:label ?label .
	OPTIONAL { 
		?s foaf:depiction ?depiction .
	}
}
```

```
SELECT ?birth_date
WHERE {
	dbpedia-ja:ビートたけし dbpedia-owl:birthDate ?birth_date.
}
```

```
SELECT DISTINCT *
WHERE {
	dbpedia-ja:軽自動車 dbpedia-owl:abstract ?abstract .
}
```

```
SELECT DISTINCT *
WHERE {
	dbpedia-ja:赤湯 ?p ?o .
}
```

```
SELECT DISTINCT *
WHERE {
  <http://ja.dbpedia.org/resource/フクジュソウ> ?p ?o .
}
```

```
SELECT distinct ?name ?abstract ?url ?lat ?lon 
WHERE {
	?s rdfs:label ?name ;
	dbpedia-owl:abstract ?abstract ;
	foaf:isPrimaryTopicOf ?url ;
	geo:lat ?lat ;
	geo:long ?lon .
}
LIMIT 10
```

```
select * 
where {
	?link a dbpedia-owl:Station; 
	rdfs:label ?title;
	geo:lat ?lat;
	geo:long ?long.
}
limit 10
```

```
select ?movieName ?directorName ?runningTime
where {
	?movie rdf:type dbpedia-owl:Film;
	prop-ja:上映時間 ?runningTime;
	rdfs:label ?movieName;
	dbpedia-owl:director ?director.
	?director rdfs:label ?directorName.
	filter(?runningTime < 80)
}
order by desc(?runningTime) ?director
limit 5
```


```
SELECT DISTINCT ?person count(?war) AS ?c
WHERE {
	{
		?war dbpedia-owl:wikiPageWikiLink category-ja:日本の戦国時代の戦い
	}
	UNION {
		?war dbpedia-owl:wikiPageWikiLink category-ja:安土桃山時代の戦い
	}
	?war dbpedia-owl:opponents ?person .
}
GROUP BY ?person
ORDER BY DESC(?c)
```

```
select *
where {
	?uri dbpedia-owl:wikiPageWikiLink category-ja:日本百名山.
	?uri rdf:type schema:Mountain.
	?uri foaf:name ?name.
	?uri foaf:depiction ?image.
	?uri prop-ja:標高 ?altitude.
}
order by ?altitude
```

```
select distinct ?pref (count(?s) AS ?c)
where {
	?pref rdf:type dbpedia-owl:Place.
	?pref dbpedia-owl:wikiPageWikiLink category-ja:日本の都道府県.
	?s rdf:type dbpedia-owl:Person;
	dbpedia-owl:wikiPageWikiLink category-ja:日本のアイドル;
	dbpedia-owl:birthPlace ?pref.
}
GROUP BY ?pref
ORDER BY ?c
```

```
SELECT AVG(?countOfWorks) AS ?avgOfWorks
WHERE {
	SELECT ?author, (COUNT(?works) AS ?countOfWorks)
	WHERE {
		?author dbpedia-owl:notableWork ?works
	}
	GROUP BY ?author
}
```

```
SELECT ?director, COUNT(?director) AS ?count
WHERE {
	?film dbpedia-owl:director ?director
}
GROUP BY ?director
ORDER BY DESC(?count)
```

```
SELECT ?wikiLink
WHERE {
	dbpedia-ja:アメリカ合衆国 dbpedia-owl:wikiPageWikiLink ?wikiLink.
}
LIMIT 10 OFFSET 10
```

```
SELECT ?author, ?masterpiece
WHERE {
    dbpedia-ja:ドラえもん prop-ja:作者 ?author.
    ?author prop-ja:代表作 ?masterpiece.
}
```

```
SELECT ?o
WHERE {
	dbpedia-ja:日本 prop-ja:国歌 ?o.
}
```



以上。
Debian 8にOpenJDK 11をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian8にOpenJDK11をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2027-09がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-11
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "11.0.4" 2019-07-16 LTS
OpenJDK Runtime Environment Zulu11.33+15-CA (build 11.0.4+11-LTS)
OpenJDK 64-Bit Server VM Zulu11.33+15-CA (build 11.0.4+11-LTS, mixed mode)
```
Debian 8にOpenJDK 8をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian8にOpenJDK8をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2026-03がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-8
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (Zulu 8.40.0.25-CA-linux64) (build 1.8.0_222-b10)
OpenJDK 64-Bit Server VM (Zulu 8.40.0.25-CA-linux64) (build 25.222-b10, mixed mode)
```
【悲報】AutomationAnywhereのCommunityEdition、Credentials(資格情報)をお試しできないっぽい

# はじめに
AutomationAnywhereEnterprise(AAE)をすでに仕事場で使っているのですが、
[ログインのロジック記事をQiitaで簡単に書いた](https://qiita.com/hal220/items/127749ae56bd844700bd)ので、
他人が見てもちゃんとわかるようにリライトするために、自分のPC（私用）に
AutomationAnywhereのCommunityEdition（中小企業や開発者用の無償版）を入れてみたら
肝心かなめの「Credentials（資格情報）」や、それを格納するLockerのあたりが
使用できなさそう、という事が判明しました。
何という事でしょう…

# そもそもAAEだとどうやって使えるの？
* AAEだと、ControlRoomをサーバにインストールして、そのサーバにアクセスして使う。

1. ControlRoomのAdminでなく、LockerAdminというアカウントを作って、
そのLockerAdminがLocker（Credentialを格納する、そのまんまロッカー)を作成⇒
2. 作成したLockerの権限を、AdminやCreatorのアカウントに委譲(AdminやCreatorのアカウントは、Lockerを作れないが作ったLockerのオーナー権限をもらうことはできる）⇒
3. Credential情報を作って、CredentialをLockerに入れる（Credentialを作っただけでは、Creatorで使用することができない）⇒
4. Lockerに入ったCredentialは、F2で変数として呼び出して使える。

# AA CommunityEdition(AAC:あんまり呼ばんけど)だと、何がいかんのか
* 今のところ私が把握しているAAEとAACの違いは次の通り。

1. ControlRoomに、そもそもAdministrationがない
2. ControlRoomの、Bots⇒Credentialsの項目は存在しているが、Credentialは作れても格納するLockerがない(Lockerを作る権限もない）ので、実際にはCredentialを使えない
3. Settingsもないような気がする。SendMail使えなさそう。(BotStoreで、Outlookを操作するMetabotが存在しているから、それを入れれば何とかなりそう）
Bash で配列の集合演算をする


## 本記事を投稿する背景
集合演算のやり方自体はいろんな方がすでに書いていまして（下記リンク）、すでに本記事と同様のブログエントリもある ([Bashで配列の積集合・差集合を求める](https://matsu7874.hatenablog.com/entry/2018/09/16/230822)) のですが、もう少しエレガントにやれてるかなぁ、と思ったので投稿します。

[コマンドラインで集合演算](https://qiita.com/highfrontier/items/610cd285f0c0de480ac9)
[uniqコマンドを使って、論理和・論理積・排他的論理和・差集合を得る方法]
(https://kunst1080.hatenablog.com/entry/2015/01/25/011158)

## 方法

別に難しいことはなく、sort にパイプで渡す前の引数の出力を`printf`で行い、引数は位置パラメータ`$@`で展開する、というだけです。

```bash:set_operations.sh
#!/bin/bash

# 和集合
union() {
        printf '%s\n' $@ | sort | uniq
}

# 積集合
intersection() {
        printf '%s\n' $@ | sort | uniq -d
}

# 差集合 (1番目の引数 - 2番目の引数)
difference() {
        (printf '%s\n' $@ | sort -u; printf '%s\n' ${2}) | sort | uniq -u
}

##################################################################

array1=("1" "2" "3" "7")
array2=("1" "2" "4" "5" "6")

echo "array1: (${array1[@]})"
echo "array2: (${array2[@]})"

union_array=(`union "${array1[*]}" "${array2[*]}"`)
echo "union"
echo ${union_array[@]}

intersection_array=(`intersection "${array1[*]}" "${array2[*]}"`)
echo "intersection"
echo ${intersection_array[@]}

difference_array1=(`difference "${array1[*]}" "${array2[*]}"`)
echo "difference (array1 - array2)"
echo ${difference_array1[@]}

difference_array2=(`difference "${array2[*]}" "${array1[*]}"`)
echo "difference (array2 - array1)"
echo ${difference_array2[@]}
```

### 実行時出力

```
array1: (1 2 3 7)
array2: (1 2 4 5 6)
union
1 2 3 4 5 6 7
intersection
1 2
difference (array1 - array2)
3 7
difference (array2 - array1)
4 5 6
```

## この方法のメリット

書き方がスッキリしていて、コードの見通しが良いかと思います。
実行速度のベンチマークは行っていないので、処理速度の評価は不明です。
エクセルマクロの変数について

ExcelVBAを使っていていくつか気になった点があったので、メモ程度にまとめておきます。

以前マクロを見ることがあり、変数が利用されていました。
そこでは変数を宣言するのに[Dim]を使うものや[Set]を利用したもの、
あるいは何も使わずに宣言されているものが混じっていたので一通り確認しておきます。

まずはサンプルソースと実行結果から

    var1 = "いきなり変数名を書いて値を代入する"
    
    Dim var2 As String
    var2 = "先に「Dim」を利用して型を宣言する"
    
    Dim var3 As Range
    Set var3 = Range("A4")
    
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "hello world"
    Range("A2").Select
    ActiveCell.FormulaR1C1 = var1
    Range("A3").Select
    ActiveCell.FormulaR1C1 = var2
    var3.Select
    ActiveCell.FormulaR1C1 = "「set」でオブジェクト変数にオブジェクトを格納する"


実行結果
![キャプチャ19.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/429234/b3ca148f-973b-7e93-bdae-5ed4b6bfb814.png)


この通り簡単なvbaであればいきなり変数名の宣言・値の代入を行っても問題なく動作します。
[Dim]を利用することで任意の型を宣言することもできるので、
桁数の大きい数字や小数の計算を扱う場合は適切な型を宣言するようにしましょう。
そして疑問だった[Set]について。これはオブジェクト変数にオブジェクトを
代入するのに利用するものでした。オブジェクトを自然に扱うには少々慣れが必要ですが、
扱えればいろいろな処理がスムーズに記載できそうなので積極的に使っていきたいです。
Ruby ユーザ の 入力文字列 を 変数 に 格納する

# 目的

- Rubyにてユーザからの入力文字列を受け取り、変数に格納する方法をまとめる。

# 書き方の例

- 入力値を受け取るにはメソッド`gets`を使用する。
- 入力値の改行もなくして変数に格納したいためオプション`chomp`を付ける。
- 下記に処理を記載する。

```ruby
変数 = gets.chomp
```

# より具体的な例

- 入力された文字列をコンソールに出力する処理を考える。
- コンソールには「好きな文字列を入力してください。」 → 入力待ち → 「入力された文字列は○○です。」と表示されるようにする。
- 入力された文字列は変数`input`に格納する。
- 下記に処理を記載する。

```ruby
puts "好きな文字列を入力してください。"
input = gets.chomp
puts "入力された文字列は#{input}です。"
```
パソコン中古から復帰するための・・・記事

iOS 10.8 今のバージョン iOS 最新バージョンにあげたい！！

パソコンが壊れてハードディスクがいっちゃってる！ってなったのですよね!

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80600/dc6c0a07-d6c3-3789-34e4-724923997530.jpeg" width="50%">

だから新しく　パソコンを中古で購入して、、、今

iOS 10.8 だということがわかりました。

iOS 10.9 段階を減ると

iOS 10.14 以降はサポートしてるっぽいのだけども

iOS 10.8からだとサポートしてないので過去のダウンロードサイトを利用し鐵賦活するために一つ一つダウンロードしていくと決めた。

ダウンロードページ
https://developer.apple.com/download/more/

Xcode download でもよく使っているのだけども　ディベロッパーだとみれるのかな？

その奮闘と順番を書いていこうと思うです。


どうやらこちら
macos sierra をダウンロードする
https://support.apple.com/ja-jp/HT208202

これができれば、、、期待です。

そもそもバージョンを徐々にあげれていけばいけるはず、、、

そういうことなのですが、、、

ついにパソコンがぶっ壊れました。どうやらパソコンのデータなども壊れている可能性があるので、ハードから繋ぎ直さなくてはならないから大変です。

パソコン強い方と繋がりたいですね。



## 関連記事

【About】(http://qiita.com/sunstripe) - サンストライプ

---

## 制作チーム：サンストライプ

[![sunstripe_logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/80600/322f2d60-f19d-af9e-2b6f-7290ca546848.png)](http://sunstripe.main.jp/)
http://sunstripe.main.jp/

(月１WEBコンテンツをリリースして便利な世の中を作っていくぞ！！ボランティアプログラマー/デザイナー/イラストレーター/その他クリエイター声優募集中！!)

### 地域情報 THEメディア
THE メディア 地域活性化をテーマに様々なリリース情報も含め、記事をお届けしてます！！
https://the.themedia.jp/

### ゼロからはじめる演劇ワークショップ
多様化の時代に向けて他者理解を鍛える

https://workshop.themedia.jp/

### プログラミングワークショップ・ウェブ塾の開講！！！
様々なテーマでプログラミングに囚われずに取り組んでいきます。
詳しくはこちら　↓　↓　↓　↓　↓　↓　↓　↓
[プログラミングサロン 月１だけのプログラミング学習塾](https://workshop.themedia.jp/posts/7057553?fbclid=IwAR32CfRQ7RvDOhvuogoSwqxDLMOU7Jvuzljlnx-TMc27qBPX1BnWsfLcBR8
)

### 協力応援 / 支援者の集い
## チーム：サンストライプ
#### プログラミングラボ
https://twitter.com/sunstripe2011

一緒にポートフォリオを作りませんか？現場の体験やそれぞれの立場から年齢関係なく作品を作りたい方々と一緒にチームを作って、作品を作っています。現場に行きたい人には、職場紹介や職場の体験や悩み相談なども受けております。
様々な職種からプログラミングの知識を得たい、デザインの知識を得たい、データーベースの知識を得たいという人が集まっております。
週１のミーティングにそれぞれの近況と作業報告して、たまにリモート飲み会などをしております！！

興味がある方は、DMに話しかけてみてください。

## トラストヒューマン
http://trusthuman.co.jp/
私たちは何よりも信頼､人と考えてます｡

｢コンサルティング｣と｢クリエイティブ｣の両角度から｢人材戦略パートナー｣としてトータル的にサポートします！！

キャリア教育事業
広域学習支援プラットフォーム『のびのび日和』
https://slc-lab.amebaownd.com/

#スポンサー募集
Ubuntu19.04のapt-get updateで「File has unexpected size」が出る場合はrepositoryのurlを変更する

#エラー現象
```shell
E: http://jp.archive.ubuntu.com/ubuntu/dists/eoan/restricted/binary-amd64/Packages.xz の取得に失敗しました  File has unexpected size (14384 != 14788). Mirror sync in progress? [IP: 160.26.2.187 80]
   Hashes of expected file:
    - Filesize:14788 [weak]
    - SHA256:45b037255e8ddc9f6d51358ee530d541af69b66e12d63d6b845c0eab1d7b9545
    - SHA1:235e84e2c50323688701f81866dd933b0e22b57a [weak]
    - MD5Sum:dbc9c99af469464efa6670b8d4b8298b [weak]
   Release file created at: Thu, 10 Oct 2019 11:33:20 +0000
```

#解決策
http://jp.archiveをhttp://repos.archiveへ変更する
これでうまくいく
Debian 8にOpenJDK 7をインストール（Zulu Community）

# はじめに

Zulu Communityを利用してDebian8にOpenJDK7をインストール
親記事：[OpenJDKの各種インストール方法とEOLまとめ](https://qiita.com/witchcraze/items/b179202216aab50b7090)
参考：[Download OpenJDK Java Linux Windows macOS Alpine Java 11 Java 8](https://www.azul.com/downloads/zulu-community/)

## サポート

本手法で導入した場合、[Zulu Community Java OpenJDK free download TCK tested](https://www.azul.com/products/zulu-community/)より、2023-07がEOLになると思われる。
それ以降に報告された脆弱性や不具合への対応は実施されない可能性がある。

## LOG

### レポジトリ登録

```shell-session
# apt update; apt install -y software-properties-common
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
# apt-add-repository 'deb http://repos.azulsystems.com/debian stable main'
```

### インストール

```shell-session
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

# apt update; apt install -y zulu-7
... 略
```

### 各種確認

```shell-session
# which java
/usr/bin/java

# java -version
openjdk version "1.7.0_232"
OpenJDK Runtime Environment (Zulu 7.31.0.5-CA-linux64) (build 1.7.0_232-b6)
OpenJDK 64-Bit Server VM (Zulu 7.31.0.5-CA-linux64) (build 24.232-b6, mixed mode)
```
package.jsonの更新方法 2019年10月版

#ncuコマンド

package.jsonの更新は、npm-check-updatesを使うのが便利である。
まだ、npm-check-updatesのインストールが終わっていなかったら、

```
npm i -g npm-check-updates
```

でグローバルにインストールすることをおすすめする。


## package.jsonの更新

以下のコマンドでpackage.jsonを更新することができる。

```
ncu -u
```

もし、このコマンドが失敗したらncuのバージョンがが古い場合があるので、

```
npm update -g npm-check-updates
```

を実行して更新することをオススメする（何度かハマったことがある）


## node_modulesの更新

package.jsonを更新したあとは

```
npm install
```

を再度実行すれば良い。
これで一括更新することができる。
（本当は、npm updateするべきなんだろうけれど、npm updateはコケやすいイメージがあり、使っていない）

エラーが出たら、思い切って

```
rm -rf ./node_modules
```

して、再インストールしてしまえばいい。
「プロジェクト・マネジャーが知るべき97のこと」を読んだ感想

##読もうと思った背景

現場でPMやらせてもらえるのを目標に、マネジメントの勉強として[プロジェクト・マネジャーが知るべき97のこと](https://www.oreilly.co.jp/books/9784873115108/)という本を手に取りました。
内容としては先人たちによる97のアドバイスをまとめたもの。

無料版もあるのでお金節約したい人は[こちら](https://xn--97-273ae6a4irb6e2h2k6c0ec7tvc3h1e0dwi7lj952k.com/)からどうぞ。

個人的に面白いと思ったものは以下の7つ。

## モグラたたき開発を避けよう
技術を離れて管理職になった時にこそ実装スピードだけでなく品質面についても意識を持ちたいと思います。

## 負債を支払う
技術的負債との向き合い方についてPMとしてどう向き合うか？進捗に表れない品質管理方法について参考になりました。

## 見積もって見積もって見積もる
現場でも見積もり作業が苦手だったので、勉強になりました。
ただし今は見積もりの良書が出ていたり、「見積もりレビュー」といった手法が存在するため、それらと合わせて参考にしたほうが良いかもしれません

## 方法論を崇拝しない
私はアジャイルの勉強をしていると「やっぱりアジャイルが正しい！」と思いがちになってしまうので、これはとても参考になりました。
> 結局のところ、あなたの良識以上に重要で順守すべきだと思えるプロジェクトマ ネジメント本や方法論などは存在しないのです。 

## コミュニケーションが重要
私は普段仕事中無口になったり没頭してしまいがちなため、これは深く突き刺さりました。
仕事とは関係ない雑談ができるほど、実はより仕事の相談がしやすい環境だったりしますよね。

## 「メッセンジャー」に ならない
実際にメッセンジャーのようなPMに合ってきたからこそ勉強になりました。
> 顧客や他メンバーの重要な意見を伝えるPMはスクランブラーだが、有能なPMはメンバーのコミュニケーションを円滑にするスプリンクラーのような存在。

## 柔軟性がプロジェクトマネジメントをシンプルにする
顧客からの要求にどうやって実現していくかについて書かれていました。アーキテクチャの経験が無かったので、読んでおいて良かったです。
> ソフトウェア設計のための新しい道をいつでも受け入れられるようにしておくと、絶えず要求が変化しても、気持ちよくプロジェクトに取り組めます。 

## 感想
初めて手にとったマネジメント本としては良かったんではないかと思います。あまり難しくなくさっと読めました。
次は[エンジニアのためのマネジメントキャリアパス](https://www.oreilly.co.jp/books/9784873118482/)を読む予定。
CentOS7でMecabをyum installする時に「Check that the correct key URLs are configured for this repository.」と怒られて失敗する

# ネットの記事を参考にMecabをyum installしてみると…
ネットの記事を鵜呑みにして、以下のコマンドを順番に実行していく。

```sh:リポジトリ追加
sudo rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
```
```sh:パッケージ情報の更新
sudo yum makecache
```
```sh:MeCabと辞書データのインストール
sudo yum install mecab mecab-ipadic
```
すると…

```sh:
The GPG keys listed for the "Groonga for CentOS 7 - x86_64" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.


 Failing package is: mecab-0.996-2.el7.1.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-groonga
```
**えっ！？失敗！？**
エラーログを見てみると、どうやらインストール時に利用する公開鍵がリポジトリに合っていないらしい。
他の記事では普通に上手く行っているのに何故…。

# 原因と解決方法
追加しているリポジトリが最新ではなかった事が原因でした。
Groonaの公式手順に沿って最新のリポジトリを追加したら問題なくMecabをインストールすることができました。

```sh:最新(latest-release)リポジトリ追加
sudo yum install -y https://packages.groonga.org/centos/groonga-release-latest.noarch.rpm
```
結構色々な記事でVer.1.1.0-1決め打ちでリポジトリ追加している手順が多いので、ご注意ください。
#参考
[Groongav9.0.8ドキュメント](http://groonga.org/ja/docs/install/centos.html#centos-7)