乙Py先生のプログラミング教室
初学者のためのプログラミング学習サイト

プログラミング

今回はアプリをリリースしたので
そちらのご報告です。

解説動画はこちら



アプリについて


今回作成したアプリはこちらです

・チャンクde英会話

iOS
AppStore


Android
Googleplay

良かったら使ってみてください


アプリの作成方法

Flutterを用いて作成しました

Flutterにした理由は
 1.iOSとAndroid両対応であること
 2.学習コストが低い
 3.文献が豊富で有る

以上の理由からFlutterにしてみました。

それ以外にもアプリを作る方法は
いくらでもありますが、今回は
Flutterを使ってみました。

開発言語がDartになるので
1から勉強することになります。

また、コードやデータなどの大半は
ChatGPTを用いて作成していますので
実質ChatGPTに頼れば
アプリの開発は容易かと思います。

学習開発の期間で2ヶ月くらいでした。



リリースについて

コードを実装しシミュレータや
実機でのテストが終わったら
ビルドを行なってアプリを作り
リリース準備ができます。


その前にアプリストアのアカウントがないと
そもそもリリース出来ないので
アプリストアのアカウント取得が必要です。

これもそこそこ手間と時間が掛かります。

リリース登録をしたら審査が行われますが
審査に通らなければビルドからやり直し
審査に通るまでの繰り返しです。

審査に通ったらようやく
リリース、アプリ配信ができる様になります。

リリース作業を始めてから
アカウント登録とアプリリリースまでで
大体1ヶ月くらい掛かっています。



Flutterについて

動画の方では少しだけ解説していますが
FlutterはiOSとAndroidの両方のアプリを
作成する事ができる開発フレームワークです。

Flutterをインストールしたら
VSCodeなどでコードを書き進める事が
できる様になります。

テストやビルドなども
Flutterコマンドを用いて行う形になります。

この辺りも
VSCodeと合わせておくと
開発が楽になるかなと思います。

どんな感じなのかは
動画の方で解説していますので
参考にしていただければと思います。


最後に

これからアプリ開発を行いたい方にとっては
色々な選択肢があると思いますが
Flutterを使ってアプリを開発したい方が
増えていただけたら幸いです。

Python言語の解説と共に
アプリ開発の方も進めていきますので
要望などあれば是非コメントいただければと思います。

それでは。

プログラミング未経験の方のための
プログラミング学習講座を作成しました

その名も
「1時間で学べるPythonプログラミング」


講義動画はこちら




この講座は初学者の方が
短時間でPython言語を学ぶことのできる
プログラミング学習用の講座です

プログラミングが分からないない方は
Python言語を通じて
プログラミングの基礎を学習できます

講座は動画に加えてGoogle Colabを用いて
手元でコードを動かすことのできます
コードがどう動くのかを確認をしながら
進めていってください

資料はここ:
Google Colabの資料


00:00 1.はじめに
02:13 2.導入方法
02:55 3.GoogleColaboratoryの操作方法
06:19 4.Pythonの計算の基礎
27:27 5.Pythonの制御文
42:14 6.Pythonのクラス
49:11 7.Pythonのその他構文
64:30 8.まとめ

なおPythonチートシートを作成しています。

コーディングに迷った際に役に立ち

WEB検索する時間を無くして

作業時間を効率化できます。

note
Pythonチートシート


 

今回は意外と穴場な職業である
データエンジニアについてお伝えします。

解説動画はこちら


 
データエンジニアについて

現在自分はデータエンジニア
という括りに近いお仕事しています。

平たくいうと
「企業のデータを整備するお仕事」ですが
なかなか成り手がいないのか
穴場な職業だと感じました。

最近はDX、AIブームにつき
データエンジニアの需要も高まりつつあります。


業界


業界としてはこのような業界の案件が
多くなってきている印象です。

リテール(EC、小売)
広告
ゲーム
AI関連
物流
製造業


用語説明

データ業界でよく使われる単語を
ピックアップしました。

・データレイク
データを一元管理できる保管庫のことです。
AWS S3やGCPのGCSなんかが
これに当てはまります。


・データベース
データを保管し、抽出を簡単にできるようにした
ソフトウェアのことです。

RDB、MySQLなんかがこれに当たります。


・データウェアハウス
データを統合的に管理し、より使いやすくした
システムのことです。

最近だとSnowflakeなんかがこれに当たるサービスです。





仕事内容

データエンジニアのお仕事は
だいたいこんな感じの内容を行なっています。

・データ基盤整備
 DB、DWH設計と構築
 ETLツール設計と構築
 データ処理パイプラインの設計と構築
 データ分析基盤のアーキテクチャ設計と運用
 バッチ処理設計、運用

・データ移行支援
 大規模データ収集ツールの構築
 データクレンジング、データ検証
 業務効率化ツールの作成




どうすればなれるか


もしデータエンジニアを目指す場合は
こんな感じの経験、スキルが必要です。

・必須経験
 RDB設計、運用経験
 バッチ処理設計、運用経験
 ETLツール等の設計、開発経験
 AWSやGCP等のクラウド開発経験
 プログラム実装経験

・歓迎経験
 Apache Hadoop Sparkなどの
 分散データ処理の開発経験
 コンテナ関連技術を用いたシステム開発経験



いくら稼げるの?

毎月が中企業のボーナス
くらいは稼げると思います。



こんな感じのお仕事が
データエンジニアになります。

これからなりたい人
ステップアップしたい人は
参考にしていただけたらなーと思います。

それでは。

最近引っ越ししてて久々の更新です。

リモート環境を新しく整えたので
紹介したいと思います


解説動画はこちら

 


昇降デスクを中心としたリモート環境

動画の中で紹介している機材群は
以下の通りです。

昇降デスク
flexispot E7Q(Odin)

椅子
Ergohuman エルゴヒューマンプロ

ノートPC
Apple MacBook Air M2(2022)

マウス
Apple Magic Mouse

ドッキングステーション
CalDigit TS4(Thunderbolt Station 4)

オーディオインターフェイス
MOTU m4

DSPアクセラレーター
UNIVERSAL AUDIO
UAD2 SATELLITE TB3 OCTO CORE

スピーカー
YAMAHA MSP5

モニター
EIZO FlexScan EV3240X

モニターアーム
エルゴトロン LX

マイク
Logicool Blue Yeti

マイクアーム
Elgato Wave Mic Arm

ヘッドホン
SONY MDR-M1ST

キーボード
ROLAND RD-500

キーボードスタンド
ROLAND KS-G8B



機材の兼ね合いがあって
昇降デスクはE7Qになりました。

普通のリモートワークであれば
もっと小さいサイズでも
全然足りますが、一部機材の都合
このサイズにせざるを得ませんでした。

大人3人乗っても
びくともしない重量感

ひろーーーい作業スペースが欲しい方には
オススメです。

ただし、一人では組み立て不能なほど
超重量なので、お気をつけをつけください。

80kgほどを軽々持てる人でないと
組み立ても移動もできないです。
そこだけ要注意

オフィス用には最高にハマると思います。

参考になる方がいるか分かりませんが
いたら嬉しいです。

それでは。



今回は現在の成績から
大谷選手の2024シーズン結果を
予測してみました。

解説動画はこちら




はじめに

メジャーリーグ2024年シーズン
大谷選手の現在までの成績(05/25まで)
こちらを使って今シーズンの成績を予測します。



今シーズンの全打席結果が
掲載されているサイトが有ったため
そちらからデータを取得します。

掲載先

こちらによると現時点では
203打数69安打 打率.340
13本塁打 35打点 39得点 13盗塁
という成績でした。


現時点の成績

こちらの結果から分析すると
本塁打:0.05652173913043478
三塁打:0.008695652173913044 
二塁打:0.0782608695652174 
 安打:0.1565217391304348
 三振:0.1826086956521739
 四球:0.10869565217391304
アウト:0.40869565217391307
という確率になりました。

この確率を用いて
シミュレーションを行います。

メジャーリーグの年間平均打席数が650打席
これを1000シーズン行ったという設定です。

import random
import pandas as pd

# バッティング結果の確率を設定
batting_results = {
    "homerun": 0.05652173913043478, # 本塁打
    "triple": 0.008695652173913044, # 三塁打
    "double": 0.0782608695652174,  # 二塁打
    "single": 0.1565217391304348,  # 安打
    "strike": 0.1826086956521739, # 三振
    "walk": 0.10869565217391304, # 四球
    "out":  0.40869565217391307 # その他のアウト
}

def simulate_batting():
    rand = random.random()
    cumulative_probability = 0.0
    for result, probability in batting_results.items():
        cumulative_probability += probability
        if rand < cumulative_probability:
            return result
    return "out"

base = []
for i in range(1000):
    tmp = {k:0 for k in batting_results.keys()}
    n = 650
    for i in range(n):
        s = simulate_batting()
        if s in tmp:
            tmp[s]+=1
        else:
            tmp[s]=1
    base.append(tmp)

df = pd.DataFrame(base)
df["hits"] = df["homerun"] + df["triple"] + df["double"] + df["single"]
df.describe()

ここからホームランと
ヒット数を予測します。
mport pandas as pd
import matplotlib.pyplot as plt
import numpy as np

# homerunの平均値と標準偏差を計算
mean = df['homerun'].mean()
std = df['homerun'].std()
print(f"{int(mean-std)}, {int(mean)}, {int(mean+std)}")

# ヒストグラムを表示
df['homerun'].hist(bins=20, alpha=0.7)

# 平均値、標準偏差±1のラインを描画
plt.axvline(x=mean, color='red', linestyle='--', label='mean')
plt.axvline(x=mean+std, color='green', linestyle='--', label='std+1')
plt.axvline(x=mean-std, color='blue', linestyle='--', label='std-1')

# 凡例を表示
plt.legend()
plt.show()
download-1

# hitsの平均値と標準偏差を計算
mean = df['hits'].mean()
std = df['hits'].std()
print(f"{int(mean-std)}, {int(mean)}, {int(mean+std)}")

# ヒストグラムを表示
df['hits'].hist(bins=20, alpha=0.7)

# 平均値、標準偏差±1のラインを描画
plt.axvline(x=mean, color='red', linestyle='--', label='mean')
plt.axvline(x=mean+std, color='green', linestyle='--', label='std+1')
plt.axvline(x=mean-std, color='blue', linestyle='--', label='std-1')

# 凡例を表示
plt.legend()
plt.show()
download


まとめ
05/25日までのペースだと
ホームラン数 : 36本(±6)
ヒット数 : 195本(±12)
あたりに落ち着く可能性が高いです。

年間40本塁打
200安打は少し、厳しいかもしれませんが
これからの活躍に期待したいですね


きょうはここまでです
それでは。

このページのトップヘ