2022年8月24日水曜日
2022年8月20日土曜日
ITパスポート勉強方法メモ
概要
せっかく合格したので勉強方法をメモ
前提
基本情報も応用情報も合格済み
勉強方法
過去問だけやりました
参考書などは購入していません
アプリはこちら
Webはこちら
これをひたすらやり続けました
とりあえず正答率を100%にして不安な部分はキーワードをネットで調べてより理解を深めました
勉強期間
2週間くらいです
感想
実際に出題された問題のうち 30% くらいは完全初見の問題でした
それでも問題をよく読み回答欄から消去法などで回答を絞れば回答できました
参考書まで読んで補足レベルまでカバーできているほうが初見率も下がったかなと思います
100問あるのでとりあえずどんどん回答しました
計算問題など時間がかかるやつは見直しにチェックして余った時間でじっくり回答しまいした
が、よく考えないと解けなさそうな問題は1問くらいしかなかったかなと思います
とにかく100問が長く感じました
疲れるので集中力を保てるようにしましょう
最終的には10分前くらいに退室しました
点数
全体で 825/1000 でした
分野別だと以下のとおりです
- ストラテジ・・・790/1000
- マネジメント・・・745/1000
- テクノロジ・・・850/1000
不安なところがなかったので満点もあるかなーとか思ったんですが全然届きませんでした
最後に
FEとAPがあってもさすがにノー勉強だと合格できなかったかなと思います
点数は最後に確認できるのですが合格かどうかはなぜかあとから大臣が判断するみたいなのでおとなしく合格証を待ちましょう
2022年8月18日木曜日
Google Play Console からアプリを削除する方法
概要
申請するしかないので申請します
環境
- Google Play Console 2022/08/24 時点
申請する
https://support.google.com/googleplay/android-developer/contact/publishing
ここにアプリの情報を記載して申請するだけです
「デベロッパー アカウント ID *」は Google Play Console にログインして確認します
「以下の一般的な問題やリクエストから選択してください。」は「アプリの削除をリクエストしたい」にします
「どのようなことでお困りですか? *」には「別アプリとして公開したのでこのアプリの削除をお願いします。」としました
なぜかスクリーンショットも必須なのでスクリーンショットを添付しましょう
アプリの一覧画面でも添付しておけば大丈夫です
削除できる条件
- アプリが良好な状態である(Google によって削除、停止されていない)
- アプリのインストール数が全期間を通じて 0 である
- アプリが 24 時間公開停止状態である(インストール数が 0 になるようにしてください)
たぶんこれをクリアするのが指南の技です
2022年8月17日水曜日
alembic でテーブル作成時にデータを insert する方法
概要
bulk_insert を使うと簡単です
環境
- Ubuntu 18.04
- Python 3.10.2
- alembic 1.8.1
サンプルコード
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
version_table = op.create_table('version',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('version', sa.String(length=10), nullable=True),
sa.PrimaryKeyConstraint('id'))
op.bulk_insert(version_table,
[{'id': None, 'version': "1.1.1"},
{'id': None, 'version': "2.2.2"}])
# ### end Alembic commands ###
2022年8月16日火曜日
Python で class の中に class を定義する方法とメリット
概要
Python では内部クラスを定義することができます
簡単な使い方の紹介とメリットを紹介します
環境
- macOS 11.6.8
- Python 3.10.2
内部クラスを使わない場合
-
vim team.py
class Team():
def __init__(self, team_name: str):
self.team_name = team_name
class Coach():
def __init__(self, name: str):
self.name = name
class Player():
def __init__(self, name: str):
self.name = name
-
vim team1.py
from team import Team, Player, Coach
class Team1(Team):
def __init__(self, team_name: str):
super().__init__(team_name)
self.player = Player("p1")
self.coach = Coach("c1")
def show_name(self):
print(self.team_name)
print(self.player.name)
print(self.coach.name)
if __name__ == '__main__':
team1 = Team1("team1")
team1.show_name()
-
python team1.py
team1
p1
c1
内部クラスを使う場合
-
vim team.py
class Team():
def __init__(self, team_name: str):
self.team_name = team_name
class Coach():
def __init__(self, name: str):
self.name = name
class Player():
def __init__(self, name: str):
self.name = name
-
vim team1.py
from team import Team
class Team1(Team):
def __init__(self, team_name: str):
super().__init__(team_name)
self.player = self.Player("p1")
self.coach = self.Coach("c1")
def show_name(self):
print(self.team_name)
print(self.player.name)
print(self.coach.name)
if __name__ == '__main__':
team1 = Team1("team1")
team1.show_name()
結果は同じです
考察
内部クラスを使った場合 Player と Coach クラスを import する必要がなくなります
これが一番のメリットで例えば Player と Coach クラスをいろいろな場所で使う場合にはいろいろな場所に import 文を書かなくてはいけません
しかし内部クラスにすることで親クラスを継承するだけで使えるようになるので毎回 import を書かなくて済みます
親クラスを継承していれば内部クラスは使えるので単純に self で参照することで使えます
デメリットとしては内部クラスとして定義したクラスを他のモジュールから import することができない点です
必ず親クラスである Team クラスを継承することが前提になるので例えば Coach クラスだけを使いのにわざわざ Team クラスを継承するように書かなければいけないのは面倒になります
個人的には必ず継承するような共通クラスを作るような場合には内部クラスをガンガン使っていいかなと思っています
ただ内部クラスの全部を使うわけではなく一部を使いたいというケースでは微妙で内部クラスとして定義したクラスは使っていてもいなくてもメモリ展開はされてしまうので余計なリソースを使いたくない場合には使用しないほうがいい場合もあります
内部クラスから親クラスのメソッドなどを self を介してアクセスすることはできないのでそこも注意が必要です
もし親クラスにアクセスしたい場合には親クラスをDIする必要があります
2022年8月14日日曜日
Quasar 超入門
概要
Quasar は Vue3 用のユーザインタフェースです
今回はどんな感じで使えるのか試してみました
環境
- macOS 11.6.8
- nodejs 18.4.0
- yarn 1.22.19
- quasar 2.7.7
CLI インストール
専用の CLI があるのでこれをインストールします
- yarn global add @quasar/cli
Quasar アプリの作成
プロジェクト的なのを作成します
今回は Web アプリを作成しますがどうやら spa/pwa/ssr/bex/electron/capacitor/cordova といろいろ選択できるようです
- yarn create quasar
以下のように選択画面になるので「App with Quasar」を選択します
? What would you like to build? › - Use arrow-keys. Return to submit.
❯ App with Quasar CLI, let's go! - spa/pwa/ssr/bex/electron/capacitor/cordova
AppExtension (AE) for Quasar CLI
Quasar UI kit
するとプロジェクト名や TypeScript を使うのかとか Lint をどうするのかとか CSS どうするのかとかいろいろと聞かれます
とりあえず今回は全部デフォルトを使うので続けてエンターしていれば OK です
プロジェクトが作成できるまで待ちましょう
とりあえず動かす
プロジェクトが作成できたら動かしてみます
- cd quasar-project
- quasar dev
これで http://localhost:8080/#/ にアクセスするとデモ画面が表示されます
何か書き換えてみる
コンポーネントがいろいろとあるので使ってみましょう
とりあえずボタンアイコンを使ってみます
- vim src/pages/IndexPage.vue
<template>
<q-page class="flex flex-center">
<q-icon name="today" class="text-orange" size="2em" />
</q-page>
</template>
<script>
import { defineComponent } from 'vue'
export default defineComponent({
name: 'IndexPage'
})
</script>
これで再度ページを確認すると以下のようにアイコンに変わっているのが確認できると思います
最後に
Quasar をインストールして簡単なアプリを作成するところまでやってみました
vuetify と同じようにあいろいろなコンポーネントが用意されているので簡単に UI を作ることができます
タグは <q-xxx> という感じで定義されているので q から始まるコンポーネントを追加していくことになりそうです
参考サイト
2022年8月13日土曜日
Ubuntu18.04 に nodejs 16 と yarn をインストールする方法
概要
nvm を使った方法はこちらを御覧ください
今回は apt を使ってインストールする方法を紹介します
環境
- Ubuntu18.04
- nodejs 16.16.0
- yarn 1.22.15
nodejs のインストール
-
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
- sudo apt-get install -y nodejs
yarn のインストール
- sudo corepack enable
最後に
nodejs をした際に yarn を apt でインストールするための手順が表示されるのですが今回は corepack を使ってインストールしました
yarn の公式手順としては corepack を使うのが合ってそうだが実際どれが正しいのかは不明です

