原材料の空間

チョコの原材料が語ってます

初心者による初心者のためのWindows10でのUbuntuデュアルブート やり方

お久しぶりの豆です。ふと思い立ってUbuntuをWindows10にぶち込んだのでそれについてまとめてみました。

私が行った時の環境は

 Windows 10 Pro 

ThinkPad 13

SSD 250GB

Intel core i5 7200U

 

です

 

高速スタートアップの無効化

UEFIがサポートされてる場合、高速スタートアップを無効化する必要があります。

こちらなどを参考に。

121ware.com > サービス&サポート > Q&A > Q&A番号 018214

一時的な無効化も書かれてますがそれではなくずっと無効化してください。

USBメモリにISOファイルの書き込み

 

1.USBメモリからUbuntuをブートして起動

2.起動後その環境からPC本体にインストールを行う

 

という作業をするためまずはUSBを用意しましょう。容量は最低でも3GBは用意してください。

 

USBメモリのフォーマット

ファイルエクスプローラーを開き[pc]にアクセスしてください。

USBの上で右クリックをし[フォーマット]を選択。

f:id:kakao1839:20181025122510p:plain

写真のように設定して[開始]を押してください。

f:id:kakao1839:20181025122513p:plain

少しまつとフォーマットが完了すると思います。

 

USBメモリへ書き込み

次にUbuntuのisoファイルをpc本体にダウンロードします。

Ubuntu18.04 LTS

USBへUbuntuをインストールするためのソフトも入れましょう

UNetbootin

このUNetbootinを使いUSBに書き込みます。

画像のようにダウンロードしたISOファイルを指定してください。

[ディスクイメージ]にチェックをつけ、[ ... ]となってるところをクリックすると指定できます。

f:id:kakao1839:20181025123653p:plain

したら、OKをクリック。3~5分ほどかかります。

 

Ubuntuインストールする領域の確保

UbuntuをインストールするHDD/SSDの領域の確保をします。パーティション分割ってやつですね。

タスクバーにあるWindowsボタンを右クリックして[ディスクの管理]を選択してください。

f:id:kakao1839:20181025124250p:plain

Windows(C:)を右クリックしてボリューム縮小を実行してください

f:id:kakao1839:20181025124621p:plain

縮小をクリック

f:id:kakao1839:20181025124625p:plain

すると未割り当ての領域ができると思います。

 

BIOSの設定

USBのを刺した状態でpcを再起動してください。再起動中にF4だかDelキーだかを押してるとBIOSが起動します。

BIOSはpcによって違うのでこの項は参考程度にしかなりません。

Startup >> Boot Priority Order

Windows Boot ManagerよりもUSBメモリの優先度を高くしてください

f:id:kakao1839:20181025125237j:plain

次にCSMをYes(Enabled)にします。

f:id:kakao1839:20181025125552j:plain

 BIOSの設定は以上です保存して再起動しましょう。

 

Ubuntuのインストール

USBをpcに刺した状態でWindowsを起動するとこのような画面になるので一番上の[Ubuntu]にカーソルをあわせエンターを押すか10秒ほど待ってください。

f:id:kakao1839:20181025130703j:plain

Ubuntuが起動したと思うので[Install Ubuntu 18.04.1 LTS]をダブルクリックしましょう

f:id:kakao1839:20181025130822j:plain

インストーラーが起動しインストーラーが起動し、言語設定などの画面が出てくると思います。[続ける]をクリックしていくと

[インストールの種類]という項目が出ると思います。Windowsを消し飛ばしてUbuntuを入れるかなどの恐ろしい設定項目なのでそのまま[続ける]を押さないよう気をつけましょう。

[インストールの種類]へ来たら一番下の[それ以外]にチェックをつけて次へ進みます。

「空き容量」が確認できると思います。そこが先程パーティション分割した容量です。(念の為分割した時の[縮小する領域のサイズ」と容量が同じか確かめてください。)

 

私は38443MB空き容量があったので30.442GBをext4に、7.998GBをswapに割り当てました。

この設定は[空き容量]の上で右クリックをし、[追加]を押せばできます。容量割当をミスらないように気をつけてください。

f:id:kakao1839:20181025131525j:plain

このまま進みたいところですが[続ける]を押してもrootがないみたいなことを書かれたエラーが出ると思います。

そこで ext4を右クリックし、[編集]を押してください。

マウスポイントの [ / ] を選択してOK。これで進めます。

f:id:kakao1839:20181025132031j:plain

あとはタイムゾーン設定とかです。どんどん進みましょう

 

f:id:kakao1839:20181025132223j:plain

このようにでたらインストール完了です。

f:id:kakao1839:20181025132226j:plain

お疲れ様でした。一応pcを再起動し、ここで [Windows Boot Manager]を選択してWindowsが起動することを確認してください

f:id:kakao1839:20181025130703j:plain

 

 

久しぶりの投稿でどう書いたらいいかいまいちわかりませんでしたw

参考になれば嬉しいです。

また、失敗しても私は責任を負いません。強く生きてください。

【Discord】5分でTwitterの対象のツイートが更新されたら通知するbotを一行もコードを書かずに作る

僕はよくRainbow Six SiegeというFPSゲームをやるんですがそれのアプデ情報とかをDiscordに通知してくれたら便利だなと思って作りました。

今回はTwitterにやYoutubeにR6Sの最新情報をいち早く載せてくださっている

R6S海外ニュース様のツイートを通知するようにしました。

twitter.com

f:id:kakao1839:20180907203223p:plain

こういうのをプログラムを一行も書かずに作りたいと思います

 

作っていこう

botを招待したいチャンネルの歯車マークをクリック

f:id:kakao1839:20180907204033p:plain

 

②Webhooksを作成

f:id:kakao1839:20180907204358p:plain

 

③名前とかアイコンとか設定・WEBHOOK URLをコピーして[保存]をクリック

f:id:kakao1839:20180907204548p:plain

 

IFTTTにログインして[New Applet]をクリック

f:id:kakao1839:20180907204906p:plain

 

⑤真ん中に大きくでてる[if +this then that]のthisをクリックするとこんな画面に。

Twitterをクリック

 

f:id:kakao1839:20180907205859p:plain

⑥下の方に行くとNew tweet by a specific userというのがあるのでクリック

こんな画面になると思う。今回は□の中に私のTwitterIDである@e183xを入れてみる。

@はいらない。

f:id:kakao1839:20180907205419p:plain

 

⑦Create triggerをクリックするとこのような画面になるのでここも +that をクリック

f:id:kakao1839:20180907205910p:plain

 

⑧Wevhooksを選択

f:id:kakao1839:20180907210009p:plain

 

⑨Make a web requestをクリックすると以下の画面になる。

URLにDiscordで取得したWEBHOOK  URLをコピペ。それぞれこのように設定する

 

f:id:kakao1839:20181110170158p:plain

f:id:kakao1839:20180907210329p:plain

 

{
  "content":"@{{UserName}} {{CreatedAt}}: {{LinkToTweet}}"
}

 

⑩Finishを押して完成

f:id:kakao1839:20180907210746p:plain

動作画面

f:id:kakao1839:20180907211038p:plain

Pythonで通話時間と今までのトーク数を出してくれる簡単なDiscordbotを作った ~初期設定から導入まで全部~

Pythonの勉強がてらDiscordのbotでも作ろうと思ってやってみた時の備忘録です。

Discordはbotの開発環境がとても整備されていてとても作りやすいので初心者におすすめです。

VCチャンネルでの通話時間と今までのトーク数を出すbotを作りました。

ここではbotの登録からプログラムまでしっかり説明してます。

環境は

 ・python3.6
・Windows10

です。python3.7はDiscordbotでは使えないと聞きました。

準備としてpython3の環境構築とテキストエディタを用意しておいてください。

discord.pyのダウンロード

pipを使ってdiscord.pyをインストールします

py -3 -m pip install -U discord.py 

Botトークンを取得する

DiscordのDEVELOPER PORTALへ行きbotを登録します。

 

Create an applicationをクリックしてください。

右にいるJKは僕が作ったbotですので表示されてません。

f:id:kakao1839:20180907165410p:plain

 

名前とかアイコンとかの設定です。好きに入力してください。

できたら左欄の[bot]をクリックします。

f:id:kakao1839:20180907165600p:plain

 

AddBotをクリックしてYes,do it!

注)名前が最初のMy Applicationだと「その名前多すぎだから無理」という旨のエラーがでます。名前を変更しましょう

f:id:kakao1839:20180907170034p:plain

 

 TOKENのところにある[Copy]をクリックしてトークンをコピーします。

メモ帳とかにペーストして保存しましょう。トークンは誰にも教えないように。乗っ取られます。

TOKENを取得できたら左欄の[OAuth2]をクリックましょう。

f:id:kakao1839:20180907170325p:plain

 

[bot]にチェックをつけるとBOT PERMISSIONSというのが現れます。ここでbotにできることを設定します

とりあえず[Administrator]にチェックを入れましょう。「管理者」ってことですね。これでこのbotには何の柵もありません。

次に[SCOPES]にある[COPY]をクリックして認証URLを取得します。

f:id:kakao1839:20180907171137p:plain

 

さっきの認証URLにアクセスましょう。

追加したいサーバーを選択肢[認証]をクリックします。自分が管理者になっているサーバーにのみ追加できます。

f:id:kakao1839:20180907171619p:plain

 

以下のように表示されると成功です。

f:id:kakao1839:20180907171755p:plain

f:id:kakao1839:20180907171802p:plain

 

 

プログラムを書いていく

 

メッセージ数を数える

いよいよですね。まずはコメント数を数えるのでも書きましょうか。

こんなふうに「!talk」と送ると送信者の今までのトーク数を出してくれます。

f:id:kakao1839:20180907172119p:plain

 

import discord

client = discord.Client()

@client.event
async def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')

@client.event
async def on_message(message):
    if message.content.startswith('!talk'): 
        counter = 0
        tmp = await client.send_message(message.channel, 'Calculating messages...')
        async for log in client.logs_from(message.channel, limit=100):
            if log.author == message.author:
                counter += 1

        await client.edit_message(tmp, 'You have {} messages.'.format(counter))
    elif message.content.startswith('!sleep'):
        await asyncio.sleep(5)
        await client.send_message(message.channel, 'Done sleeping')

client.run('token') #tokenにはbotのトークンを貼り付け

これだけです。動かしてみましょう。

cmdからなら $ python ファイル名.py とかで行けると思います。cmd起動は試してないので行けなかったらごめんなさい。

 解説
if message.content.startswith('!talk'):

受け取ったメッセージが!talkで始まってるかどうか判別します

ということは「!talk aiueo」でも反応します。

tmp = await client.send_message(message.channel, 'Calculating messages...')

メッセージ数の統計中、送信元のチャンネルに「Calculating messages...」と送信します。

統計は

async for log in client.logs_from(message.channel, limit=100):
            if log.author == message.author:
                counter += 1

とfor文を用いてログを辿りmessageの送信者によるメッセージの個数を数えてます。

統計が終わると先程の「Calculating messages...」を書き換え計算結果を送信します。

 

通話時間を測定する

先程のコードに付け足す形で行きたいと思います。

こんな感じです

f:id:kakao1839:20180907200025p:plain

とりあえず時間取得のためのモジュールをimportしましょう。

一番上の

import discord

の下に

import datetime

を追記してください。

また、client = discord.Client() の下に pretime_dict = {} を追記します。

 

次に、先程書いた

    elif message.content.startswith('!sleep'):
        await asyncio.sleep(5)
        await client.send_message(message.channel, 'Done sleeping')

の下に以下のコードを追記します。

@client.event
async def on_voice_state_update(before, after):
  print("ボイスチャンネルで変化がありました")
  if ((before.voice.self_mute is not after.voice.self_mute) or (before.voice.self_deaf is not after.voice.self_deaf)):
      print("ボイスチャンネルでミュート設定の変更がありました")
      return

  if (before.voice_channel is None):  # 入室時
      pretime_dict[after.name] = datetime.datetime.now()
  elif (after.voice_channel is None):  # 退出時
      duration_time = pretime_dict[before.name] - datetime.datetime.now()
      duration_time_adjust = int(duration_time.total_seconds()) * -1
      # メッセージを送りたいテキストチャンネルの名前
      reply_channel_name = "general"
      reply_channel = [channel for channel in before.server.channels if channel.name == reply_channel_name][0]
      # 送りたいメッセージ
      reply_text = after.name + "さんが[" + before.voice_channel.name + "]から抜けました。 通話時間は" + str(duration_time_adjust) + "秒でした。"

      await client.send_message(reply_channel, reply_text)
 解説
async def on_voice_state_update(before, after):
  print("ボイスチャンネルで変化がありました")

ボイスチャンネルで入退出、マイク、スピーカーミュート等の変化があった際に

 on_voice_state_update(before, after)

が呼び出されます。

if((before.voice.self_mute is notafter.voice.self_mute)or(before.voice.self_deaf is not after.voice.self_deaf)):
  print("ボイスチャンネルでミュート設定の変更がありました")
  return

今回はボイスチャットへの入退出だけなのでマイク・スピーカーのミュート字の呼び出しも消します。 .voice.self_mute でマイクミュートかどうかを確認し同様にスピーカーも.voice.self_defで行います。前後に変化があればreturnで弾きます。

  if (before.voice_channel is None):  # 入室時
      pretime_dict[after.name] = datetime.datetime.now()
  elif (after.voice_channel is None):  # 退出時
      duration_time = pretime_dict[before.name] - datetime.datetime.now()
      duration_time_adjust = int(duration_time.total_seconds()) * -1

入退出を判定しチャンネル退出時に退出時の時刻から入室時の時刻を引きます。

計算すると通話時間の結果は負の数字が出てきてしまうため最後に-1を掛けています。

      reply_channel_name = "general" # メッセージを送りたいテキストチャンネルの名前
      reply_channel = [channel for channel in before.server.channels if channel.name == reply_channel_name][0]
      # 送りたいメッセージ
      reply_text = after.name + "さんが[" + before.voice_channel.name + "]から抜けました。 通話時間は" + str(duration_time_adjust) + "秒でした。"

      await client.send_message(reply_channel, reply_text)

 で最後にDiscord上にメッセージを送信しています。

ソース全体像

import discord
import datetime

client = discord.Client()
pretime_dict = {}

@client.event
async def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')

@client.event
async def on_message(message):
    if message.content.startswith('!talk'):
        counter = 0
        tmp = await client.send_message(message.channel, 'Calculating messages...')
        async for log in client.logs_from(message.channel, limit=100):
            if log.author == message.author:
                counter += 1

        await client.edit_message(tmp, 'You have {} messages.'.format(counter))
    elif message.content.startswith('!sleep'):
        await asyncio.sleep(5)
        await client.send_message(message.channel, 'Done sleeping')

@client.event
async def on_voice_state_update(before, after):
  print("ボイスチャンネルで変化がありました")
  if ((before.voice.self_mute is not after.voice.self_mute) or (before.voice.self_deaf is not after.voice.self_deaf)):
      print("ボイスチャンネルでミュート設定の変更がありました")
      return

  if (before.voice_channel is None):  # 入室時
      pretime_dict[after.name] = datetime.datetime.now()
  elif (after.voice_channel is None):  # 退出時
      duration_time = pretime_dict[before.name] - datetime.datetime.now()
      duration_time_adjust = int(duration_time.total_seconds()) * -1
      reply_channel_name = "general" # メッセージを送りたいテキストチャンネルの名前
      reply_channel = [channel for channel in before.server.channels if channel.name == reply_channel_name][0]
      # 送りたいメッセージ
      reply_text = after.name + "さんが[" + before.voice_channel.name + "]から抜けました。 通話時間は" + str(duration_time_adjust) + "秒でした。"

      await client.send_message(reply_channel, reply_text)

client.run('token') #tokenにはbotのトークンを貼り付け

 

これで終わりです。pythonに勉強がてら作ってみました。

botはなかなかおもしろいのでこれからも続けていきたいです。

 

参考

qiita.com

kantarow.hatenablog.com

qiita.com

Cortanaさんを完全に無効化する/消す

まず、管理者権限でコマンドプロンプトを開いてください。

Windows10なら[Windowsマーク]→[cmdと入力]→Ctrl+Shift→Enter

で開けると思います。

開いたら

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Windows Search" /v AllowCortana /t REG_DWORD /d 0 /f

と入力してください。

>>この操作を正しく終了しました

とのコメントが出たら成功です。

f:id:kakao1839:20180817225048p:plain

再起動するとタスクバーがこのようになってると思います

f:id:kakao1839:20180817225130p:plain

Cortanaの丸い何かが消えて代わりに検索マークだけがあります。

以上が邪魔なCortanaを消し去る方法でした。

Slackの背景を好きな画像にしてみる

1ヶ月2つ投稿とはなんだったのか。

こんにちは。かかお豆です。

いきなり有言実行しないスタイル。

テスト期間で更新できませんでした。ごめんなさい。

どうせ勉強しないのにね(´・ω・`)

 

はい。今回はSlackの背景を好きな画像に変更してみたのでその備忘録という事で。

まずは完成図をどうぞ

f:id:kakao1839:20180816174732p:plain

画像の切り抜きが下手くそですがこんな感じにできます。

では方法を見ていきましょう~

 

 \AppData\Local\slack\app3.2.0\resources\app.asar.unpacked\src\static/ssb-interop.js

を適当なエディターで開きます。appの後の数字はSlackのバージョンによって変わります。

開いたら

document.addEventListener('DOMContentLoaded', function() {
  var css = `\
    #messages_container {\
        background-image: url(data:image/png;base64,base64に変換したpngの文字列);\
        background-repeat: no-repeat;\
        background-position: bottom right;\
    }\
    .c-scrollbar__hider {\
        background-color: rgba(255,255,255,0) !important;\
    }\
    .c-message--hover {\
        background-color: rgba(240, 240, 240, 0.3) !important;\
    }\
    .c-message--focus {\
        background-color: rgba(240, 240, 240, 0.3) !important;\
    }\
    ts-message:hover {\
        background-color: rgba(240, 240, 240, 0.3) !important;\
    }`
  $("<style></style>").appendTo('head').html(css);
});

を追記します。もともと書かれてるコードを消さないように注意。

画像指定ですが、

 background-image: url(data:image/png;base64,base64に変換したpngの文字列);

に設定します。

①まず、Href Toolsにアクセスします。ここはpngbase64に変換してくれるサイトです。
②中央付近の[Click to Upload]をクリックし、保存フォルダ内の好きな画像を選択してください。
③しばらくすると右の[Base 64 String]と[Base64 in HTML]に文字がワーって出てきます。
④[Base64 String]に表示されてる文字を適当にクリックしCtrll+Aで全選択、Ctrl+Cでコピーしましょう。あとは"base64に変換したpngの文字列"という文を消してそこに先程コピーしたBase64コードを貼り付けるだけです。
⑤Slackを起動し、反映されてるか確かめてください。既に起動してたらCtrl+Qで終了した後再起動を。
ちなみにbase64とは64進数を意味する言葉で全てのデータを64文字で表すってものです。16進数の進化版的な。詳しくはQiitaに載ってました。

qiita.com

 

今回はこれくらいで。これからもこんな感じでプログラミングやハードなどのIT系を載せていく予定ですので宜しくお願いします<(_ _)>

 

-参考-

qiita.com

どうも皆さん始めまして。かかお豆と言います。

今回は初めてのブログ投稿ということでとりあえずブログを始めた経緯と理由を話していきたいと思います。

と、まあその前に簡単な自己紹介を

 簡単な自己紹介 
 ・名前 : かかお豆
 ・好きなの : 緑、FPS、プログラミング
 ・なう : JK

こんなものですかね。

。。。あ、JKは「情報系高専生」[JyouhoukeiKousensei]ということです。

。。。。。。男子高専生です。はい。

 

うん。本題に入りましょう。

少し長くなりますができるだけ面白く書いたつもりですので許してください。

 1.ブログを開設した経緯

 

第一章 ブログを作った(早い)

・まずブログをしようと思ったのは中学2年生の時です。

はい。中2病だったんですね。お疲れ様です。

内容は別に載せれる内容なんですがブログ名がぁ。。。

 ブログ名↓

f:id:kakao1839:20180709235906p:plain

なんだよ「official」って。お前は有名人ですか。イキらないでください。

まあ、探したら有ると思いますが。恥ずかしいのはタイトルだけなので(多分)

そんなわけでこれが僕の最初のブログです。

飽きたので3週間で辞めました。

 

第二章 お金がホスィ...

・突然ですが僕はお金が欲しいです。自作pcを組みたいのです。

そこで思いついたのがアフィリエイト。ブログをやればええやん!

これ思いついたのが中3の冬。受験期ですね。バカですね。

勉強もあるし面倒だったのでこのときはアフィの本だけ買いました。

 

第三章 高専合格

・自己紹介でも触れましたが僕は高専生です。そして実は1年生です。

普通高校への一般入試組より早く高専に合格し暇な時間が増えました。

かかお豆.。oO(ブログやろうかなぁ。。。)

思っただけです、次。

 

第四章 異世界転生と異世界生活

・「は?」ってなった貴方。あなたの感性はとてつもなく正しいです。

異世界高専 の図式です。

僕が入学した高専は 

制服なし・髪型自由・寮生活・14:30までの学校

と、中学とは大きく様子が異なり、若かりしかかお豆少年にとっては最早異世界でした。

「あ、ここなら家と比べて自由時間も多いしブログできるかも。。。」

その予想はこうしてブログ書いてることからも当たってたことがわかります。

さて、そんな異世界生活3ヶ月目。すっかり高専に馴染んできたかかお豆少年は

あることに気が付きました。

「部活の先輩たちにブロガーが多い。。。だとッ!!」

そう、所属している部活の先輩にブログをしてる方が何名か居たんです。

しかも同じ部活の同級生達も影響されてブログを始めようとしている。。。

これがなかなかブログ開設に踏み切れないでいる僕の背中を押しました。

こうしてブログ開設に至ったわけです。めでたしめでたし。

 

2.ブログを始めた本音

上でいろいろ経緯を説明したわけですが、チラッと触れたように、

" 私ハ、オ金ガ、欲シイ "

自作pcを組みたいんです。そのためにはお金が必要。そこで、僕が求めた事は3つ。

 ・室内
・パソコン使う
・楽しい 

仕事を舐めてますね。

しかし僕は見つけました。これら全てに当てはまる物を。

そう、ブログです。これなら室内、パソコンと2つ揃ってます。

そして僕はブログを構成するプログラムである「HTML」と「CSS」の勉強をしようと思ってました。

いきなりページを全部プログラミングするのは難しいので、はてなブログのようなところで本文を書いて後で弄りたいところにだけHTMLやCSSを入力したら良いわけです。

なんて簡単なんだ!!と僕は思いました。

そして僕はプログラミングも文を書くことも好きなのでこれで

”楽しんで”ブログを書けます。

。。。。飽きない限りは

そんなわけで僕はブログを始めてしまったのでした。

 

・〆

最後に。今回ほぼ稼ぎ目的と言ってしまったようなものですが、

純粋にプログラムコードを書けるようになりたいという気持ちも同じくらい大きいです。

また、お金にするのはそんなに簡単では無いことは理解しているつもりです。

なので地道に頑張ろうと思っているのですが、

「ブログを書くのが大変、苦痛になってきた」

となるのが一番怖いです。

なので最初は慣れるまで「1ヶ月で2件」を目標にやっていきたいと思います。

慣れてきたら段階的に増やしていくつもりです。

また、最初はアフィの申請の問題もあるのでアフィリエイト広告はつけません。

ついてる広告は、はてなブログが勝手につけてるものです。

投稿間隔を短くする時やアフィを始める時は連絡します。

拙い文章でしたがここまで読んでくださってありがとうございました。

 

おしまい。