この板はプログラムを作る人のための板です。
あらゆる質問はまず
スレ立てるまでもない質問はここで
スレにしてください。
【前スレ】
スレ立てるまでもない質問はここで 158匹目
https://mevius.5ch.net/test/read.cgi/tech/1635193843/
次スレは>>980が立てること
探検
スレ立てるまでもない質問はここで 159匹目
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2022/02/12(土) 22:44:40.76ID:AqYcq6TN168デフォルトの名無しさん
2022/02/24(木) 05:18:58.15ID:jcAfJg3X 新卒2年目のプログラマです
ループ処理を行う場合、基本的にforeachを使っているのですが、カウントが必要な単純なループでforを使った所
先輩からカウント用の変数を用意するかselectメソッド(c#です)を使って全部foreachで統一してと言われました
(コーディング規約にあるわけではないです)
わざわざカウント用の変数を用意するのも、速度的にfor使用時より遅くなるselectメソッドを使用するのもなんだかスッキリしないなあと思っています
他の現場を知らないのですが、これは開発の現場では当たり前の事なのでしょうか?
ちなみに皆さんはどうされていますか?
ループ処理を行う場合、基本的にforeachを使っているのですが、カウントが必要な単純なループでforを使った所
先輩からカウント用の変数を用意するかselectメソッド(c#です)を使って全部foreachで統一してと言われました
(コーディング規約にあるわけではないです)
わざわざカウント用の変数を用意するのも、速度的にfor使用時より遅くなるselectメソッドを使用するのもなんだかスッキリしないなあと思っています
他の現場を知らないのですが、これは開発の現場では当たり前の事なのでしょうか?
ちなみに皆さんはどうされていますか?
169デフォルトの名無しさん
2022/02/24(木) 09:31:43.11ID:ycqMJ20y 理不尽なことを押し付けられるのは当たり前によくあること
いちいちなぜなのかとか逆らったりするのは労力の無駄
いちいちなぜなのかとか逆らったりするのは労力の無駄
170デフォルトの名無しさん
2022/02/24(木) 09:43:15.52ID:pVKiKajR ケチ付けられたらコードを晒してくれなくちゃパイセンの擁護は出来ないな
171デフォルトの名無しさん
2022/02/24(木) 09:57:04.10ID:5EPKB3Xk 思ったならその場で言えば良かったじゃん
何も言えず掲示板で愚痴った時点でこの勝負はお前の負けや
何も言えず掲示板で愚痴った時点でこの勝負はお前の負けや
172デフォルトの名無しさん
2022/02/24(木) 12:04:16.87ID:82W7j8jp Ruby では、繰り返しにindex や、蓄積変数を付けたものがある。
または、each に付ける事もできる
つまり、書き方が決まっている
ary = [ "a", "b" ]
ary.each_with_index do |element, index|
p "#{ index }:#{ element }"
end
出力
"0:a"
"1:b"
ary = [ "a", "b" ]
# 初期値は1
ary.each.with_index( 1 ) do |element, index|
p "#{ index }:#{ element }"
end
出力
"1:a"
"2:b"
同様に、蓄積変数を付けたものもある。
each_with_object( obj ), with_object( obj )
または、each に付ける事もできる
つまり、書き方が決まっている
ary = [ "a", "b" ]
ary.each_with_index do |element, index|
p "#{ index }:#{ element }"
end
出力
"0:a"
"1:b"
ary = [ "a", "b" ]
# 初期値は1
ary.each.with_index( 1 ) do |element, index|
p "#{ index }:#{ element }"
end
出力
"1:a"
"2:b"
同様に、蓄積変数を付けたものもある。
each_with_object( obj ), with_object( obj )
173デフォルトの名無しさん
2022/02/24(木) 12:31:55.94ID:D9/QhxEj >>168
ここは技術板だから「先輩にどう対応したらいいか。プログラマ業界の他の職場ではどうなのか」って話は板違い。プログラマ板へどうぞ
ここは技術板だから「先輩にどう対応したらいいか。プログラマ業界の他の職場ではどうなのか」って話は板違い。プログラマ板へどうぞ
174デフォルトの名無しさん
2022/02/24(木) 12:33:04.26ID:2qhRGcQ8 >>168
頻出パターンだから拡張メソッドで一般化しておくのがいいと思う
foreachでカウント用の変数を都度用意してたらcontinueとかでバグる可能性もある
forの場合は将来的に要素へのindexアクセスが変な形で拡張されたりリファクタリングの妨げになる可能性がある
(メンテする技術者のレベル次第)
public static IEnumerable<KeyValuePair<int, T>> Enumerate<T>(this IEnumerable<T> collection){
int index=0;
foreach (var item in collection) {
yield return new KeyValuePair<int, T>(index++, item);
}
}
foreach (var (i, v) in foo.Enumerate()){
…
}
↑この拡張メソッドの場合はTがintの場合に(i, v)を(v, i)と勘違いしてバグる可能性はある
頻出パターンだから拡張メソッドで一般化しておくのがいいと思う
foreachでカウント用の変数を都度用意してたらcontinueとかでバグる可能性もある
forの場合は将来的に要素へのindexアクセスが変な形で拡張されたりリファクタリングの妨げになる可能性がある
(メンテする技術者のレベル次第)
public static IEnumerable<KeyValuePair<int, T>> Enumerate<T>(this IEnumerable<T> collection){
int index=0;
foreach (var item in collection) {
yield return new KeyValuePair<int, T>(index++, item);
}
}
foreach (var (i, v) in foo.Enumerate()){
…
}
↑この拡張メソッドの場合はTがintの場合に(i, v)を(v, i)と勘違いしてバグる可能性はある
175デフォルトの名無しさん
2022/02/24(木) 12:35:41.36ID:6X2WQPLr SQLに文字列投げる前のバリデーションに使う正規表現で鉄板なの教えてください
英数字記号で、クォーテーションとかSQLだと危ないやつは弾く感じの
英数字記号で、クォーテーションとかSQLだと危ないやつは弾く感じの
176デフォルトの名無しさん
2022/02/24(木) 12:43:46.72ID:ycqMJ20y sql命令を文字列として作らずパラーメーターとして渡す
177デフォルトの名無しさん
2022/02/24(木) 12:48:01.07ID:jcAfJg3X178デフォルトの名無しさん
2022/02/24(木) 13:03:32.01ID:5we6KcaS プログラミングは全てケースバイケース
そんな細かい所を統一する意味は全くないからその時に書きやすい方を使うのが正解だよ
そんな細かい所を統一する意味は全くないからその時に書きやすい方を使うのが正解だよ
179デフォルトの名無しさん
2022/02/24(木) 13:47:22.35ID:7WoYZRJz 自分はforeachではないforが出てくるのは最終手段だと思ってるのでSelectさせる
インデックスを得る手段がもう少しマシな方法ほしいのだが
インデックスを得る手段がもう少しマシな方法ほしいのだが
180デフォルトの名無しさん
2022/02/24(木) 15:38:45.00ID:1DMGsg19 転職の言語要件に
@vb.netとc#ならわかるんですが
Ac#とjavaって書いてある所があり
括りとしてはどっちが正解なんですかね?
個人的には@かと思うんですが
Aの所は避けた方が良いですね?
@vb.netとc#ならわかるんですが
Ac#とjavaって書いてある所があり
括りとしてはどっちが正解なんですかね?
個人的には@かと思うんですが
Aの所は避けた方が良いですね?
181デフォルトの名無しさん
2022/02/24(木) 15:46:25.40ID:5we6KcaS せっかくだから俺はAを選ぶぜ
182デフォルトの名無しさん
2022/02/24(木) 15:51:20.71ID:ycqMJ20y javaはスマホ開発もするってのが多い
vb.net入ってる方が地雷だと思うぞ
vb.net入ってる方が地雷だと思うぞ
183デフォルトの名無しさん
2022/02/24(木) 17:03:20.09ID:+aDYy71x foreachの中心的価値の一つはコレクションの最初から最後までもれなく処理対象としていることをアッピルする効果だと思う
forでは先頭の要素や末尾の要素だけ処理していないとき、バグなのか意図的なのか即座に判断できないことがある
foreachで統一的に書く方針には一定の合理性があると思う
俺はIDEの支援込みでfor文使ってた
カウンタの初期化とインクリメント文を書くのだるいなと思ったけど、for文でもカッコ内に同じことが書いてあるのでまあいい気もする
でもブロック末尾のインクリメントは書き忘れるんだよな
-1で始めてすぐインクリメントしてもいいけど微妙
forでは先頭の要素や末尾の要素だけ処理していないとき、バグなのか意図的なのか即座に判断できないことがある
foreachで統一的に書く方針には一定の合理性があると思う
俺はIDEの支援込みでfor文使ってた
カウンタの初期化とインクリメント文を書くのだるいなと思ったけど、for文でもカッコ内に同じことが書いてあるのでまあいい気もする
でもブロック末尾のインクリメントは書き忘れるんだよな
-1で始めてすぐインクリメントしてもいいけど微妙
184デフォルトの名無しさん
2022/02/24(木) 17:10:25.79ID:ycqMJ20y そんなあなたにfinally
185デフォルトの名無しさん
2022/02/24(木) 18:33:43.52ID:+aDYy71x really?
186デフォルトの名無しさん
2022/02/24(木) 20:18:19.15ID:MZJU+q2v ジョブ運用管理のOSSって何が有名?
cronが多いのかな
cronが多いのかな
187デフォルトの名無しさん
2022/02/24(木) 20:27:03.32ID:5we6KcaS sidekiqとか?
188デフォルトの名無しさん
2022/02/24(木) 20:51:05.92ID:NBv0zeLR 命名スレないっぽいのでここで聞きたいんだけど
デスクトップアプリケーション作ってて、ボタンは一箇所にまとめてある
入出力、テストや表示、操作など
app.___.load_btnとかapp.___.test_btnとかいう構造のとき、ボタンウィジェットの親の名前ってなんてつけるのです?
app.console.load_btn? cmdpanel? btns?
デスクトップアプリケーション作ってて、ボタンは一箇所にまとめてある
入出力、テストや表示、操作など
app.___.load_btnとかapp.___.test_btnとかいう構造のとき、ボタンウィジェットの親の名前ってなんてつけるのです?
app.console.load_btn? cmdpanel? btns?
189デフォルトの名無しさん
2022/02/24(木) 20:52:39.24ID:NBv0zeLR あ、ボタンは複数個あって親フレームにひとまとめに配置してある
この親フレーム名 は? という質問です
この親フレーム名 は? という質問です
190デフォルトの名無しさん
2022/02/24(木) 21:02:40.71ID:iDpw9I/7 >>188
> 命名スレないっぽいのでここで聞きたいんだけど
検索能力なさすぎだろ…
クラス名・変数名に迷ったら書き込むスレ。Part29
https://mevius.5ch.net/test/read.cgi/tech/1619427133/
> 命名スレないっぽいのでここで聞きたいんだけど
検索能力なさすぎだろ…
クラス名・変数名に迷ったら書き込むスレ。Part29
https://mevius.5ch.net/test/read.cgi/tech/1619427133/
191デフォルトの名無しさん
2022/02/24(木) 21:16:15.58ID:NBv0zeLR192デフォルトの名無しさん
2022/02/24(木) 21:36:16.86ID:sqPOmgLf >>134です。
皆さん、回答ありがとうございます。
動的なサイトというのは、具体的に言うと、巨大画像掲示板群サイトを作ろうとしているのですが、
それを作るために必要な言語などは以下のものだけで良いでしょうか?
HTML、CSS、PHP、JavaScript、MySQL、データベースについて
これ以外にも必要な言語などがあれば教えてください。
あと、やっぱり巨大画像掲示板群サイトを作るとなると、
JavaScriptは避けては通れないですよね?
JavaScript無しで作る事は不可能ですか?
そもそもプログラミングを始める順番は、HTML→CSS・・・の順で良かったのでしょうか?
自分は元々あまりコンピュータとかソフトウェアとかネットワークなどというものに対して
あまり詳しくないので、プログラミングをしたかったらもっと根源的なところから始めるべきなのでしょうか?
そこらへんについてもいろいろ教えてほしいです。
回答よろしくお願いします。
皆さん、回答ありがとうございます。
動的なサイトというのは、具体的に言うと、巨大画像掲示板群サイトを作ろうとしているのですが、
それを作るために必要な言語などは以下のものだけで良いでしょうか?
HTML、CSS、PHP、JavaScript、MySQL、データベースについて
これ以外にも必要な言語などがあれば教えてください。
あと、やっぱり巨大画像掲示板群サイトを作るとなると、
JavaScriptは避けては通れないですよね?
JavaScript無しで作る事は不可能ですか?
そもそもプログラミングを始める順番は、HTML→CSS・・・の順で良かったのでしょうか?
自分は元々あまりコンピュータとかソフトウェアとかネットワークなどというものに対して
あまり詳しくないので、プログラミングをしたかったらもっと根源的なところから始めるべきなのでしょうか?
そこらへんについてもいろいろ教えてほしいです。
回答よろしくお願いします。
193デフォルトの名無しさん
2022/02/24(木) 21:48:59.13ID:ydRUnLFS html、PHP
(phpじゃなくてほかのでもいいけど)この二つがあれば作れる。その他は必須じゃない
「php 掲示板 作り方」なんかでぐぐって意味わからなくていいからコピペでまずは文字の掲示板を適当に作るところからかな
(phpじゃなくてほかのでもいいけど)この二つがあれば作れる。その他は必須じゃない
「php 掲示板 作り方」なんかでぐぐって意味わからなくていいからコピペでまずは文字の掲示板を適当に作るところからかな
194デフォルトの名無しさん
2022/02/24(木) 21:49:45.68ID:JxtsCxtE 巨大画像掲示板は転送量代で月に何十万、何百万もかかるからそのつもりで
195デフォルトの名無しさん
2022/02/24(木) 21:55:35.90ID:82W7j8jp 前スレの、>928
Ruby で作ってみた。
Rubyスクリプト内で、7-zip を実行すると、
7-zipでは解凍する際、同名のフォルダが存在すると、
上書きするかどうかを聞いてくるので、そこで実行が止まる
それを避けるため一旦、現在日時から、
新しいフォルダ・dest_dir を作って、その中に解凍する
7-zipでは、同名のフォルダが存在しても、エラーにすることも出来ない。
そのフォルダ内に解凍しようとするから。
また事前に、アーカイブ内のフォルダ名を取得することも出来ない
dest_dir は、現在日時から作った、新しいフォルダ。
dest_dir内には、アーカイブを解凍した、decomp_root_dir と、
decomp_root_dirの末尾に、_out を加えた、out_dir の2つを作る。
out_dir内には、フォルダ階層を作りながら、処理した画像ファイルを入れていく
デスクトップには、ショートカットを作る。
リンク先には、Rubyの実行パスと、Rubyスクリプトファイルのパスを書く
リンク先
C:\Ruby25-x64\bin\ruby.exe C:/Users/Owner/Documents/Ruby/script.rb
作業フォルダ
C:\Users\Owner\Desktop
そのショートカットに、解凍したいアーカイブ、
C:/Users/Owner/Documents/data/z.zip を、Drag & Drop する
次へ続く
Ruby で作ってみた。
Rubyスクリプト内で、7-zip を実行すると、
7-zipでは解凍する際、同名のフォルダが存在すると、
上書きするかどうかを聞いてくるので、そこで実行が止まる
それを避けるため一旦、現在日時から、
新しいフォルダ・dest_dir を作って、その中に解凍する
7-zipでは、同名のフォルダが存在しても、エラーにすることも出来ない。
そのフォルダ内に解凍しようとするから。
また事前に、アーカイブ内のフォルダ名を取得することも出来ない
dest_dir は、現在日時から作った、新しいフォルダ。
dest_dir内には、アーカイブを解凍した、decomp_root_dir と、
decomp_root_dirの末尾に、_out を加えた、out_dir の2つを作る。
out_dir内には、フォルダ階層を作りながら、処理した画像ファイルを入れていく
デスクトップには、ショートカットを作る。
リンク先には、Rubyの実行パスと、Rubyスクリプトファイルのパスを書く
リンク先
C:\Ruby25-x64\bin\ruby.exe C:/Users/Owner/Documents/Ruby/script.rb
作業フォルダ
C:\Users\Owner\Desktop
そのショートカットに、解凍したいアーカイブ、
C:/Users/Owner/Documents/data/z.zip を、Drag & Drop する
次へ続く
196195
2022/02/24(木) 21:56:18.77ID:82W7j8jp require 'pathname'
# 7-Zipの実行パス。Program Files には半角空白があるので、要注意!
ZIP7_EXE_PATH = "C:/Program Files/7-Zip/7z.exe"
# expand_path で、Windows のパス区切り \ を、/ に変換する
src_arch_path = Pathname( ARGV[ 0 ] ).expand_path
#=> C:/Users/Owner/Documents/data/z.zip
# 現在時刻からディレクトリ名を作る際、名前が衝突しないように、念のため、1秒進める
sleep 1
# DateTime は非推奨なので、Time を使う
dest_dir = src_arch_path.parent + Time.now.strftime( "%Y%m%d_%H%M%S" )
#=> <Pathname: C:/Users/Owner/Documents/data/20220224_211030>
dest_dir.mkdir( ) # ディレクトリを作る
print "#{ dest_dir.to_s } フォルダを作りました\n\n"
# 7z x -o(解凍先パス) (アーカイブパス)
# 解凍する。Program Files には半角空白があるので、"〜" で囲む
puts %x("#{ ZIP7_EXE_PATH }" x -o#{ dest_dir } #{ src_arch_path })
次へ続く
# 7-Zipの実行パス。Program Files には半角空白があるので、要注意!
ZIP7_EXE_PATH = "C:/Program Files/7-Zip/7z.exe"
# expand_path で、Windows のパス区切り \ を、/ に変換する
src_arch_path = Pathname( ARGV[ 0 ] ).expand_path
#=> C:/Users/Owner/Documents/data/z.zip
# 現在時刻からディレクトリ名を作る際、名前が衝突しないように、念のため、1秒進める
sleep 1
# DateTime は非推奨なので、Time を使う
dest_dir = src_arch_path.parent + Time.now.strftime( "%Y%m%d_%H%M%S" )
#=> <Pathname: C:/Users/Owner/Documents/data/20220224_211030>
dest_dir.mkdir( ) # ディレクトリを作る
print "#{ dest_dir.to_s } フォルダを作りました\n\n"
# 7z x -o(解凍先パス) (アーカイブパス)
# 解凍する。Program Files には半角空白があるので、"〜" で囲む
puts %x("#{ ZIP7_EXE_PATH }" x -o#{ dest_dir } #{ src_arch_path })
次へ続く
197195
2022/02/24(木) 21:57:06.88ID:82W7j8jp # dest_dir の直下には、1つだけ解凍されたディレクトリがあると想定する
decomp_root_path = dest_dir.children[0]
#=> <Pathname: C:/Users/Owner/Documents/data/20220224_211030/z>
decomp_root_dir = decomp_root_path.basename.to_s # ディレクトリ名。z
# 末尾に、_out を加えた、ディレクトリ名。z_out
out_dir = decomp_root_dir + "_out"
# decomp_root_path の末尾に、_out を加えたパス
out_root_path = dest_dir + out_dir
#=> <Pathname: C:/Users/Owner/Documents/data/20220224_211030/z_out>
out_root_path.mkdir( ) # ディレクトリを作る
print "\n#{ out_root_path.to_s } フォルダを作りました\n\n"
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
decomp_root_path.glob( "**/*.{png,jpg,jpeg,gif,bmp,webp}" ) do |full_path|
# decomp_root_dirの部分だけを、_out を加えて、out_dir に変えたもの
out_full_path = out_root_path + full_path.relative_path_from( decomp_root_path )
dir = out_full_path.parent # ディレクトリ
# ディレクトリが存在しなければ、親ディレクトリも含めて作る。mkdir_p
dir.mkpath unless dir.directory?
# ここに、各画像ファイルの変換処理を書く!
end
次へ続く
decomp_root_path = dest_dir.children[0]
#=> <Pathname: C:/Users/Owner/Documents/data/20220224_211030/z>
decomp_root_dir = decomp_root_path.basename.to_s # ディレクトリ名。z
# 末尾に、_out を加えた、ディレクトリ名。z_out
out_dir = decomp_root_dir + "_out"
# decomp_root_path の末尾に、_out を加えたパス
out_root_path = dest_dir + out_dir
#=> <Pathname: C:/Users/Owner/Documents/data/20220224_211030/z_out>
out_root_path.mkdir( ) # ディレクトリを作る
print "\n#{ out_root_path.to_s } フォルダを作りました\n\n"
# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
decomp_root_path.glob( "**/*.{png,jpg,jpeg,gif,bmp,webp}" ) do |full_path|
# decomp_root_dirの部分だけを、_out を加えて、out_dir に変えたもの
out_full_path = out_root_path + full_path.relative_path_from( decomp_root_path )
dir = out_full_path.parent # ディレクトリ
# ディレクトリが存在しなければ、親ディレクトリも含めて作る。mkdir_p
dir.mkpath unless dir.directory?
# ここに、各画像ファイルの変換処理を書く!
end
次へ続く
198195
2022/02/24(木) 21:58:12.15ID:82W7j8jp # つまり、z フォルダの部分だけを、z_out に変えたものになる
#<Pathname:C:/Users/Owner/Documents/data/20220224_211030/z/zz/a.jpg>
#<Pathname:C:/Users/Owner/Documents/data/20220224_211030/z_out/zz/a.jpg>
# ZIP 形式のアーカイブを作る。-tzip
# 7z a -tzip (アーカイブパス).zip (アーカイブしたいフォルダ)
# 圧縮する。Program Files には半角空白があるので、"〜" で囲む
puts %x("#{ ZIP7_EXE_PATH }" a -tzip #{ out_root_path } #{ out_root_path })
puts "\n#{ out_root_path.to_s }.zip アーカイブを作りました。\n" +
"処理が終了したので、この画面を閉じて下さい"
sleep # 出力したコマンドプロンプト画面を閉じないようにする
以上です!
#<Pathname:C:/Users/Owner/Documents/data/20220224_211030/z/zz/a.jpg>
#<Pathname:C:/Users/Owner/Documents/data/20220224_211030/z_out/zz/a.jpg>
# ZIP 形式のアーカイブを作る。-tzip
# 7z a -tzip (アーカイブパス).zip (アーカイブしたいフォルダ)
# 圧縮する。Program Files には半角空白があるので、"〜" で囲む
puts %x("#{ ZIP7_EXE_PATH }" a -tzip #{ out_root_path } #{ out_root_path })
puts "\n#{ out_root_path.to_s }.zip アーカイブを作りました。\n" +
"処理が終了したので、この画面を閉じて下さい"
sleep # 出力したコマンドプロンプト画面を閉じないようにする
以上です!
199デフォルトの名無しさん
2022/02/24(木) 22:03:05.14ID:82W7j8jp >>175
文字列を連結して、SQL 文を作ると、SQL injection される
だから、Ruby on Rails では、O/R マッパーを使う。
place holder を使って、? の所に、変数を埋め込む
文字列を連結して、SQL 文を作ると、SQL injection される
だから、Ruby on Rails では、O/R マッパーを使う。
place holder を使って、? の所に、変数を埋め込む
200デフォルトの名無しさん
2022/02/24(木) 22:05:37.73ID:WpNQdEVr これって触っちゃいけないやつ?
201デフォルトの名無しさん
2022/02/24(木) 22:36:56.77ID:iDpw9I/7 >>200
Ruby を NG
Ruby を NG
202デフォルトの名無しさん
2022/02/25(金) 01:02:54.98ID:Eg3DloqN >>192
YouTube で有名な、雑食系エンジニア・KENTA のサロンのRuby on Rails 初心者用コースでは、
基本情報技術者資格、Rails, Linux, Docker, Node.js, Bootstrap,
VSCode, Heroku, CircleCI, Github Actions、データベース
今までは、Dockerまでが初心者用コースだったが、
最近は誰でも、Docker出来るから、
AWS Fargate, Terraform, React, Vue.js, TypeScript も
だから、AWSのくろかわこうへいのサロンにも、入る必要がある。
今では、1年の未経験者が、10年以上のプロよりも技術力が上になってる!
KENTA、2021/4
2021年のWeb系エンジニア転職を成功させる3つの技術要素
https://www.youtube.com/watch?v=70VrB7LTe9g
2021/2
Web系エンジニアを目指す人のためのプログラミング学習ロードマップ
https://www.youtube.com/watch?v=0TABrlhci5M
YouTube で有名な、雑食系エンジニア・KENTA のサロンのRuby on Rails 初心者用コースでは、
基本情報技術者資格、Rails, Linux, Docker, Node.js, Bootstrap,
VSCode, Heroku, CircleCI, Github Actions、データベース
今までは、Dockerまでが初心者用コースだったが、
最近は誰でも、Docker出来るから、
AWS Fargate, Terraform, React, Vue.js, TypeScript も
だから、AWSのくろかわこうへいのサロンにも、入る必要がある。
今では、1年の未経験者が、10年以上のプロよりも技術力が上になってる!
KENTA、2021/4
2021年のWeb系エンジニア転職を成功させる3つの技術要素
https://www.youtube.com/watch?v=70VrB7LTe9g
2021/2
Web系エンジニアを目指す人のためのプログラミング学習ロードマップ
https://www.youtube.com/watch?v=0TABrlhci5M
203デフォルトの名無しさん
2022/02/25(金) 01:13:59.96ID:kML1EznR 句読点の付け方が全く同じだ
204デフォルトの名無しさん
2022/02/25(金) 07:45:38.34ID:nHsHzaxy >>202
これだけ一生懸命宣伝して見返りはないって笑うなw
これだけ一生懸命宣伝して見返りはないって笑うなw
205デフォルトの名無しさん
2022/02/25(金) 08:37:45.79ID:nHsHzaxy206175
2022/02/25(金) 10:56:25.38ID:cHKC+7di >>175
ワイ175やけど結局みんな手探りなのね
プレースホルダは当然やるけど、予約語のバリデーションは独自でやってるんやね
(出来ればDBにアクセスする前、バインド(prepare)する前に、アプリで弾きたい)
ワイ175やけど結局みんな手探りなのね
プレースホルダは当然やるけど、予約語のバリデーションは独自でやってるんやね
(出来ればDBにアクセスする前、バインド(prepare)する前に、アプリで弾きたい)
207デフォルトの名無しさん
2022/02/25(金) 11:08:11.28ID:gEwvZxtg SQLに投げる前にバリデーションなんてしない
バリデーションはプレゼンテーション層〜ドメイン層のどこかでやること
バリデーションはプレゼンテーション層〜ドメイン層のどこかでやること
208デフォルトの名無しさん
2022/02/25(金) 11:43:57.59ID:SuduBg90 >>206
どんなGUIか知らないけどフリーキーワードをちまちま入れないといけない時点でもう使いづらい。
動的にチェックボックスや候補ワードが先回りして出るくらいでないと。
キーワードを投げたはいいがヒット0とか、今どきはダサいよ。
どんなGUIか知らないけどフリーキーワードをちまちま入れないといけない時点でもう使いづらい。
動的にチェックボックスや候補ワードが先回りして出るくらいでないと。
キーワードを投げたはいいがヒット0とか、今どきはダサいよ。
209デフォルトの名無しさん
2022/02/25(金) 11:44:18.05ID:Ttq2k6xT210175
2022/02/25(金) 11:59:13.95ID:cHKC+7di211デフォルトの名無しさん
2022/02/25(金) 12:08:01.02ID:GobJHqAk インジェクションできるかチェックされてるか、どこか文字列で直にやってる
212デフォルトの名無しさん
2022/02/25(金) 12:51:38.11ID:0LOdeZPu 問い合わせの内容としてSQL文が必要ならサニタイズして入れとけばいいよね?
prepared statement使ってるのにユーザー入力を保存するカラム以外に
ユーザー入力が保存されてたんならなんか使い方間違ってると思う
prepared statement使ってるのにユーザー入力を保存するカラム以外に
ユーザー入力が保存されてたんならなんか使い方間違ってると思う
213デフォルトの名無しさん
2022/02/25(金) 12:53:33.76ID:gEwvZxtg >>210
そういうのはWAFの仕事
そういうのはWAFの仕事
214202
2022/02/25(金) 12:58:38.12ID:Eg3DloqN MVC のRuby on Rails では、
Controller のstrong parameter で、更新される列・必須列をチェックする
モデルでも、バリデする。
valid_email2 で、正しい形式のメールアドレスかどうかとか
日本6位の初心者が3千人入っている、KENTA のサロンとか行かないと、ウェブ開発を学べない
Rails以外のフレームワークを選ぶと、勉強の教材がないから、
プロになるのは、まず無理
Controller のstrong parameter で、更新される列・必須列をチェックする
モデルでも、バリデする。
valid_email2 で、正しい形式のメールアドレスかどうかとか
日本6位の初心者が3千人入っている、KENTA のサロンとか行かないと、ウェブ開発を学べない
Rails以外のフレームワークを選ぶと、勉強の教材がないから、
プロになるのは、まず無理
215デフォルトの名無しさん
2022/02/25(金) 13:59:36.28ID:isep1BZs >>213
WAF使ったことないでしょw
WAF使ったことないでしょw
216デフォルトの名無しさん
2022/02/25(金) 14:21:18.61ID:gEwvZxtg >>215
あるよ
あるよ
217デフォルトの名無しさん
2022/02/25(金) 16:15:30.34ID:xc5sID1o SQSやKinesisはどういう場合に使うのでしょうか?
あと、これを使う場合って送信用サーバと受信用サーバの2つが必要になりますよね?
あと、これを使う場合って送信用サーバと受信用サーバの2つが必要になりますよね?
218デフォルトの名無しさん
2022/02/25(金) 16:30:52.94ID:VyHl6qUM >>210
これってSQLに値を渡したい場合、文字列結合ではなくプレースホルダだけ書いておいてパラメータとして与えましょうという初歩の話じゃないの?
これってSQLに値を渡したい場合、文字列結合ではなくプレースホルダだけ書いておいてパラメータとして与えましょうという初歩の話じゃないの?
219175
2022/02/25(金) 16:50:08.00ID:ilyzPMTz >>218
いやその後のハナシで
バリデーションとかエスケープとかサニタイズしても、
結局文字列としてInsertされるから、それを防ぎたいってハナシ
氏名:selectさんとかそういうデータが出来るのを防ぐのどうしてるのかなて
まあDBに限るハナシでもないけど
いやその後のハナシで
バリデーションとかエスケープとかサニタイズしても、
結局文字列としてInsertされるから、それを防ぎたいってハナシ
氏名:selectさんとかそういうデータが出来るのを防ぐのどうしてるのかなて
まあDBに限るハナシでもないけど
220デフォルトの名無しさん
2022/02/25(金) 17:25:32.08ID:GobJHqAk 175が言う通りの実装してるなら、必要なのは「SQLインジェクション対策」じゃなくて
「不正な名前入力対策」=氏名チェック用の正規表現
日本人限定で組むなら常用漢字な人名用漢字、ひらがな、カタカナだけだから
単純に半角英数字記号が含まれてたら弾くようにすればいい。外国人含むならシラン
「不正な名前入力対策」=氏名チェック用の正規表現
日本人限定で組むなら常用漢字な人名用漢字、ひらがな、カタカナだけだから
単純に半角英数字記号が含まれてたら弾くようにすればいい。外国人含むならシラン
221デフォルトの名無しさん
2022/02/25(金) 17:42:11.20ID:qQXuMGT2 selectさんとかを防ぐことで得たいと思っているビジネス的な価値が何なのか知りたい
クオーテーションとか危ない感じのを弾きたいと言うからSQLインジェクション対策かと思ったけど、そういうわけでもないってこと?
でもそれならクオーテーションを弾くのはデメリットしかないし、何か混同しているんだろうか
クオーテーションとか危ない感じのを弾きたいと言うからSQLインジェクション対策かと思ったけど、そういうわけでもないってこと?
でもそれならクオーテーションを弾くのはデメリットしかないし、何か混同しているんだろうか
222デフォルトの名無しさん
2022/02/25(金) 17:44:59.19ID:qQXuMGT2 認証不要のフォームでアタックの痕跡によってゴミが大量に溜まるのが迷惑だから事前にフィルタリングしておきたいってことかな
223デフォルトの名無しさん
2022/02/25(金) 17:54:52.96ID:+PfgW030224デフォルトの名無しさん
2022/02/25(金) 18:17:54.50ID:qbQTiRzp GoogleスプレッドシートやGoogleMeetの検索ってあの膨大なデータからどうやって検索してるんだ?
とくにMeetのほうは曖昧検索っぽい
GCPでビッグデータの検索関連サービスってあるの?
とくにMeetのほうは曖昧検索っぽい
GCPでビッグデータの検索関連サービスってあるの?
225デフォルトの名無しさん
2022/02/25(金) 18:26:10.37ID:Eg3DloqN Ruby on Rails の文字列検索は、Elasticsearch
226デフォルトの名無しさん
2022/02/25(金) 18:33:34.96ID:Eg3DloqN >>217
Queue は一番昔からある、基本的なサービス
その時に同期処理をすると時間が掛かるので、
一旦、キューに入れて、後から処理する。非同期処理
月3千円ぐらいのくろかわこへいのAWS サロンへ入れば?
Amazon なら、3日で21万円とか高い
Queue は一番昔からある、基本的なサービス
その時に同期処理をすると時間が掛かるので、
一旦、キューに入れて、後から処理する。非同期処理
月3千円ぐらいのくろかわこへいのAWS サロンへ入れば?
Amazon なら、3日で21万円とか高い
227デフォルトの名無しさん
2022/02/25(金) 21:21:26.02ID:CV/dWopv >>224
inverted index
inverted index
228デフォルトの名無しさん
2022/02/26(土) 08:12:42.19ID:vbSsEIAE >>227
それだとものすごい数のレコードを作成してるんだね
例えば、GoogleMeetの1メッセージが300文字あったとして、形態素解析しつつ名詞を分割してそれぞれを行として格納
しかし部分一致とあいまい検索は完璧ではない
と思ったらスプレッドシートはCloud Search使ってると書いてあった
膨大なデータを分解して格納ってすごい技術だ
それだとものすごい数のレコードを作成してるんだね
例えば、GoogleMeetの1メッセージが300文字あったとして、形態素解析しつつ名詞を分割してそれぞれを行として格納
しかし部分一致とあいまい検索は完璧ではない
と思ったらスプレッドシートはCloud Search使ってると書いてあった
膨大なデータを分解して格納ってすごい技術だ
229デフォルトの名無しさん
2022/02/26(土) 08:23:05.81ID:wWFTGeHR kakasiの頃よくインデクサを使っていたけど、しょせんテキスト情報なんで大したことないよ
230デフォルトの名無しさん
2022/02/26(土) 08:45:38.69ID:R1ubXlLS プログラムが何故動くのか?についてわかりやすく解説しているサイトってないですか?
ググっても「プログラムを機械語に翻訳して、機械がわかるように翻訳しているから動く」
的な説明ばかりなんですが、知りたいのはそういうことではなくて、
じゃあ最初から機械語で完璧に書いたとして、なぜそれで動くのかがわからないんです。
別の表現すると、異世界転生で電卓のない世界に行ったとして、
そこで電卓を開発して一儲けしようとしたときに、
どうやって電卓内部で「1+1」の処理をさせるかのイメージがつかないんです。
結局「プログラム」と言う概念が先にないと無理なんじゃないのか?みたいな・・・
鶏と卵の話みたいに感じてしまいます
ググっても「プログラムを機械語に翻訳して、機械がわかるように翻訳しているから動く」
的な説明ばかりなんですが、知りたいのはそういうことではなくて、
じゃあ最初から機械語で完璧に書いたとして、なぜそれで動くのかがわからないんです。
別の表現すると、異世界転生で電卓のない世界に行ったとして、
そこで電卓を開発して一儲けしようとしたときに、
どうやって電卓内部で「1+1」の処理をさせるかのイメージがつかないんです。
結局「プログラム」と言う概念が先にないと無理なんじゃないのか?みたいな・・・
鶏と卵の話みたいに感じてしまいます
231デフォルトの名無しさん
2022/02/26(土) 09:09:24.95ID:e5W/1zqv サイトじゃなくてCPUについて技術解説してる書籍でも漁っとけ
232デフォルトの名無しさん
2022/02/26(土) 09:10:39.17ID:wWFTGeHR233デフォルトの名無しさん
2022/02/26(土) 09:12:33.77ID:sjesp9D9 >>230
コンピュータはなぜ動くのか、読めば?
コンピュータはなぜ動くのか、読めば?
234デフォルトの名無しさん
2022/02/26(土) 09:33:18.46ID:GBHX3kX2 「1+1」だけなら半加算器あたりが分かればなんとか
235デフォルトの名無しさん
2022/02/26(土) 09:42:33.04ID:wWFTGeHR >>230
フリップフロップはソロバンの珠と思えばよい。
ソロバンは珠が元の位置か、動いたかをメモリーする装置である。
動いている珠を1、元の位置なら0とみなして、動かすルールによって複雑な計算をする。
フリップフロップの場合は電気によって、今のON/OFFをメモリーできる。
そのON/OFFを1と0にみなして、機械的なルールで計算を行う。
例えばいちばんわかりやすいのがビットシフトである。
二進数01011を左に一桁ずらす「機械的操作」をすると10110となり、これは元の数を二倍する「計算」をしたことになる
逆に右に一桁ずらすと2で割るという「計算」をしたことになる
01011 → 0101(余り1)
フリップフロップはソロバンの珠と思えばよい。
ソロバンは珠が元の位置か、動いたかをメモリーする装置である。
動いている珠を1、元の位置なら0とみなして、動かすルールによって複雑な計算をする。
フリップフロップの場合は電気によって、今のON/OFFをメモリーできる。
そのON/OFFを1と0にみなして、機械的なルールで計算を行う。
例えばいちばんわかりやすいのがビットシフトである。
二進数01011を左に一桁ずらす「機械的操作」をすると10110となり、これは元の数を二倍する「計算」をしたことになる
逆に右に一桁ずらすと2で割るという「計算」をしたことになる
01011 → 0101(余り1)
236デフォルトの名無しさん
2022/02/26(土) 10:30:44.32ID:FEw16ZgO マインクラフトでコンピュータ作ってみた みたいな動画見りゃ理解できるべ
237デフォルトの名無しさん
2022/02/26(土) 13:40:22.88ID:/yaZQ1xu Ruby on Rails, Amazon は、Elasticsearch。
Railsの形態素解析は、kuromoji
Google は、Chrome の翻訳もひどかったけど、
ここ2か月ぐらいで、かなりDeepL に近づいた
DeepLを、パクったのかも
Railsの形態素解析は、kuromoji
Google は、Chrome の翻訳もひどかったけど、
ここ2か月ぐらいで、かなりDeepL に近づいた
DeepLを、パクったのかも
238デフォルトの名無しさん
2022/02/26(土) 14:14:47.64ID:1jHkYGS8 CPU/GPU作ってみたみたいな動画面白いよ
239デフォルトの名無しさん
2022/02/26(土) 14:26:16.75ID:R/0GMSS/ 普通にコンピュータアーキテクチャの教科書を読めばいい
240デフォルトの名無しさん
2022/02/26(土) 15:17:19.82ID:xS/SyeLk トランジスタがあって
フリップフロップがあって
論理回路、順序回路があって
リングカウンタあたりがあって
機械語がある
この辺を順番にググると
上から下までわかるようになるのでは?
大学のシラバスが外から見えるので
その辺からキーワードを取り出して
ググれば独学も可能
フリップフロップがあって
論理回路、順序回路があって
リングカウンタあたりがあって
機械語がある
この辺を順番にググると
上から下までわかるようになるのでは?
大学のシラバスが外から見えるので
その辺からキーワードを取り出して
ググれば独学も可能
241デフォルトの名無しさん
2022/02/26(土) 15:21:10.00ID:ZdFqztpZ >>240
COMET/CASL アーキを自力で実装する系の、きちんとした教科書があったことを記憶しています…
COMET/CASL アーキを自力で実装する系の、きちんとした教科書があったことを記憶しています…
242デフォルトの名無しさん
2022/02/26(土) 15:51:20.85ID:/yaZQ1xu 電験三種、組み込みの資格のテキスト
電気電子回路、交流の複素数の複素平面。
ネイピアe(2.72)のiπ乗 = -1
3D では、虚数のquaternion とか結構、虚数が出てくる
電気電子回路、交流の複素数の複素平面。
ネイピアe(2.72)のiπ乗 = -1
3D では、虚数のquaternion とか結構、虚数が出てくる
243デフォルトの名無しさん
2022/02/26(土) 16:26:27.41ID:ZdFqztpZ >>242
厳しいことをいいますが、交流=正弦波が複素数により代数的に処理できるのはなぜか?
本来受動素子の作用は解析的=微分積分、で定義されるのですが、そういう世界が代数的=足したり引いたり掛けたり割ったりで処理していい理由、というのをはっきりさせないまま安直に使うのは知的誠実さにかける、と私は非難します…
厳しいことをいいますが、交流=正弦波が複素数により代数的に処理できるのはなぜか?
本来受動素子の作用は解析的=微分積分、で定義されるのですが、そういう世界が代数的=足したり引いたり掛けたり割ったりで処理していい理由、というのをはっきりさせないまま安直に使うのは知的誠実さにかける、と私は非難します…
244デフォルトの名無しさん
2022/02/26(土) 16:56:03.31ID:1vnMKgVV >>230
トランジスタとダイオードの組み合わせでAND/OR/NOT回路を作るとこからから勉強かな
加算器とかフリップフロップがAND/OR/NOTの組み合わせでできるから
そいつらを組み合わせれば2進数入出力の電卓ぐらいは作れる
使ってるものはトランジスタとダイオードと抵抗(と装置外部の入出力にスイッチとLED)だけ
現代のCPUのトランジスタ数は60億とかなので無制限だと思っていい
トランジスタとダイオードの組み合わせでAND/OR/NOT回路を作るとこからから勉強かな
加算器とかフリップフロップがAND/OR/NOTの組み合わせでできるから
そいつらを組み合わせれば2進数入出力の電卓ぐらいは作れる
使ってるものはトランジスタとダイオードと抵抗(と装置外部の入出力にスイッチとLED)だけ
現代のCPUのトランジスタ数は60億とかなので無制限だと思っていい
245デフォルトの名無しさん
2022/02/26(土) 17:37:16.16ID:g1NcYQAb >>230
どこまで知りたいか?によるかな
「便利な性質を持った小さなモジュール達」は既にある前提で、それを組み合わせると足し算ができます、程度の薄い理解でいいならこのスレで出てるキーワードでググればいい
でもじゃあ「便利な性質を持った小さなモジュール達」をどうやって作るの?って疑問を解きたいなら物理学をある程度、学ぶ必要がある
俺は半導体の基礎を大学三年生で学んだけど、それぐらいやる気があるなら好きに勉強すればいいんじゃないかな
異世界転生してゼロから作るにはどうすればいいの?って疑問なら
科学知識だけでなく歴史や経済、ありとあらゆる知識が必要だろうな
なんたって異世界はたぶん、産業革命より前の世界だろ?
ならまずはそこからだな
どこまで知りたいか?によるかな
「便利な性質を持った小さなモジュール達」は既にある前提で、それを組み合わせると足し算ができます、程度の薄い理解でいいならこのスレで出てるキーワードでググればいい
でもじゃあ「便利な性質を持った小さなモジュール達」をどうやって作るの?って疑問を解きたいなら物理学をある程度、学ぶ必要がある
俺は半導体の基礎を大学三年生で学んだけど、それぐらいやる気があるなら好きに勉強すればいいんじゃないかな
異世界転生してゼロから作るにはどうすればいいの?って疑問なら
科学知識だけでなく歴史や経済、ありとあらゆる知識が必要だろうな
なんたって異世界はたぶん、産業革命より前の世界だろ?
ならまずはそこからだな
246デフォルトの名無しさん
2022/02/26(土) 17:52:39.86ID:wWFTGeHR この動画(白い巨塔)の6分目くらいだけど
https://youtu.be/j4TdXIxmBtU
里見先生が機械式の計算器を使っている
考えてみると50年前はまだ普通にソロバンや計算尺が一般的だった
50年後はどうなるんだろうね
https://youtu.be/j4TdXIxmBtU
里見先生が機械式の計算器を使っている
考えてみると50年前はまだ普通にソロバンや計算尺が一般的だった
50年後はどうなるんだろうね
247ハノン ◆QZaw55cn4c
2022/02/26(土) 17:57:15.21ID:ZdFqztpZ >>242
厳しいことをいいますが、交流=正弦波が複素数により代数的に処理できるのはなぜか?
本来受動素子の作用は解析的=微分積分、で定義されるのですが、そういう世界が代数的=足したり引いたり掛けたり割ったりで処理していい理由、というのをはっきりさせないまま安直に使うのは知的誠実さに欠ける、と私は非難します…
厳しいことをいいますが、交流=正弦波が複素数により代数的に処理できるのはなぜか?
本来受動素子の作用は解析的=微分積分、で定義されるのですが、そういう世界が代数的=足したり引いたり掛けたり割ったりで処理していい理由、というのをはっきりさせないまま安直に使うのは知的誠実さに欠ける、と私は非難します…
248デフォルトの名無しさん
2022/02/26(土) 18:25:10.25ID:joT9B4PU249242
2022/02/26(土) 19:17:41.93ID:/yaZQ1xu 電験三種の積分回路・微分回路・時定数ぐらいから始めないといけない
250デフォルトの名無しさん
2022/02/26(土) 19:38:34.77ID:1vnMKgVV251デフォルトの名無しさん
2022/02/26(土) 23:23:55.13ID:wmCNPHUF すみません…
pythonでtkinterというのでstartとstopボタンを作って
それぞれからdef start():などを作ってコマンド=startみたいに呼び出しています。
startの中でマルチスレッドを使ってスレッドをつくりスタートさせたいと思っています。
そのスレッドが使う関数の中でwhile flag==true:としてflagがfalseまでは無限にスクリーンショットを撮り続けたいと思っています。
このような作りですと、startのボタンで固まってしまってstopが押せません。うまくいかない原因についてアドバイス頂けたら嬉しいです。
よろしくお願いします。
pythonでtkinterというのでstartとstopボタンを作って
それぞれからdef start():などを作ってコマンド=startみたいに呼び出しています。
startの中でマルチスレッドを使ってスレッドをつくりスタートさせたいと思っています。
そのスレッドが使う関数の中でwhile flag==true:としてflagがfalseまでは無限にスクリーンショットを撮り続けたいと思っています。
このような作りですと、startのボタンで固まってしまってstopが押せません。うまくいかない原因についてアドバイス頂けたら嬉しいです。
よろしくお願いします。
252デフォルトの名無しさん
2022/02/26(土) 23:51:56.70ID:wj1ibNBr スレッドの中はwhile flag==true:でスクショ撮影
startボタンの中はスレッド作ってスレッド実行するだけで終わり
ってすりゃ固まらないはず。固まるということはそうなっていない
スレッドでなくボタンの中でwhileしてるとか、ボタンの中でスレッドが終わるのを待ってたりしてる
startボタンの中はスレッド作ってスレッド実行するだけで終わり
ってすりゃ固まらないはず。固まるということはそうなっていない
スレッドでなくボタンの中でwhileしてるとか、ボタンの中でスレッドが終わるのを待ってたりしてる
253デフォルトの名無しさん
2022/02/27(日) 00:28:06.43ID:EPp3U+v4 スクショやったことないけど
一回あたりの撮影・保存にsleepとか挟んでないせいで
わずかなハングが連打されて固まってみえるんじゃないか
一回あたりの撮影・保存にsleepとか挟んでないせいで
わずかなハングが連打されて固まってみえるんじゃないか
254デフォルトの名無しさん
2022/02/27(日) 02:20:57.99ID:JWOh4lwS このスレよりも、Python スレで聞いてください!
255デフォルトの名無しさん
2022/02/27(日) 06:23:12.98ID:3CMfh7zd 1と0だけで音を表現出来るってのがイマイチ理解できません
一瞬を切り取ったらそこには人の声、風の音、カラスの鳴き声、車の音などが入ってると思うのですがそれらを全部1と0で表現するって魔法じゃないですか?
一瞬を切り取ったらそこには人の声、風の音、カラスの鳴き声、車の音などが入ってると思うのですがそれらを全部1と0で表現するって魔法じゃないですか?
256蟻人間 ◆T6xkBnTXz7B0
2022/02/27(日) 07:46:15.41ID:I53qp4JM 1600年代マイクロホンが考案され、音声を電圧に変換できた。また、スピーカーは電圧を音声に変換できた。1877年、エジソンは音声をレコードのみぞの深さで記録した。
人間の聴覚には可聴域(20Hzから20,000Hz)というものがあって聞こえる音域と音量には限界がある。
だから可聴域以外の情報は無視できる。レコードのみぞの深さや電圧の変化というのはアナログ値の変化であり、
これを単位時間で区切って離散化してデジタル信号に近似することは可能である。よくわからないのであればPCM音声を研究してみるといい。
人間の聴覚には可聴域(20Hzから20,000Hz)というものがあって聞こえる音域と音量には限界がある。
だから可聴域以外の情報は無視できる。レコードのみぞの深さや電圧の変化というのはアナログ値の変化であり、
これを単位時間で区切って離散化してデジタル信号に近似することは可能である。よくわからないのであればPCM音声を研究してみるといい。
257蟻人間 ◆T6xkBnTXz7B0
2022/02/27(日) 07:57:15.03ID:I53qp4JM 音声の波形というのは足し算・引き算ができる。しかし全体を見るとアナログ値の変化でしかない。
音声には指向性というものがあるが、聴覚には無関係である。
音声には指向性というものがあるが、聴覚には無関係である。
258デフォルトの名無しさん
2022/02/27(日) 08:02:04.17ID:uWHjNeVw >>255
フーリエ級数を勉強しなければ理屈はわからないので、理系の大学に行くのが早道
フーリエ級数を勉強しなければ理屈はわからないので、理系の大学に行くのが早道
259デフォルトの名無しさん
2022/02/27(日) 09:09:16.90ID:yPfzj2SQ ある音をカラスの声だと認識するのは、周波数ごとの音の強さと、声の長さやビブラートなどの時間的変化のパターンによる
和音のメロディの楽譜のように近似的に表現できる
ただし自然音はドレミのような一定の階調ではなく、ドとレの間には無数の段階があるし、和音の音符数も楽器なら3や4だけどこれも無数にある
この無段階・無数の楽譜をアナログからデジタルに変換する方法は、ざっくり言うと写真をドット絵で表現することと同じアイデアでいい
ドット絵ならドット単位に絵を分割して65536階調などの近似色を求めてあげれば、その集合が絵に見える
楽譜なら縦軸は周波数成分、横軸は時間経過として、ドットごとに音の強さを示してあげればいい
音は波なので互いに重なり合い、いろんな音があっても足し引きできるという話は、多数の物体が同じ絵の中に置いてある状況と似ている
実際にはこれだけだとデータ量が多くなるのでいろいろ数学を使って工夫する
和音のメロディの楽譜のように近似的に表現できる
ただし自然音はドレミのような一定の階調ではなく、ドとレの間には無数の段階があるし、和音の音符数も楽器なら3や4だけどこれも無数にある
この無段階・無数の楽譜をアナログからデジタルに変換する方法は、ざっくり言うと写真をドット絵で表現することと同じアイデアでいい
ドット絵ならドット単位に絵を分割して65536階調などの近似色を求めてあげれば、その集合が絵に見える
楽譜なら縦軸は周波数成分、横軸は時間経過として、ドットごとに音の強さを示してあげればいい
音は波なので互いに重なり合い、いろんな音があっても足し引きできるという話は、多数の物体が同じ絵の中に置いてある状況と似ている
実際にはこれだけだとデータ量が多くなるのでいろいろ数学を使って工夫する
260デフォルトの名無しさん
2022/02/27(日) 09:53:12.54ID:6fl1teDT261デフォルトの名無しさん
2022/02/27(日) 15:44:32.52ID:1y5GAeJx >>252
>>253
ありがとうございます。
スタートボタンを押したら実行される関数で、テキストボックスから値をとってきたりもNGなんでしょうか?
下記ではstart後にstopが押せず5秒ごとに永遠にスクショを取り続けてしまいます。。
スレッドで実行する関数
def getSSActiveWindow(Groupname, INTERVAL_SS):
global ON_LOOP
while ON_LOOP:
hdwd = win32gui.GetForegroundWindow()
rect = win32gui.GetWindowRect(hdwd)
SS_JPG = ImageGrab.grab()
croped_screenshot = SS_JPG.crop(rect)
mkdir_SS(Groupname)
croped_screenshot.save("./" + Groupname + "/" + str(fname(Groupname)))
time.sleep(INTERVAL_SS)
スタートボタンを押したら実行される関数
def Start():
global ON_LOOP
ON_LOOP = True
Group_name = text.get()
Interval_time = float(text2.get())
thread_main = threading.Thread(target=getSSActiveWindow(Group_name, Interval_time))
thread_main.start()
スタートボタン生成とStart()の呼び出し
start_button = tkinter.Button(app, text="start", command=Start)
>>253
ありがとうございます。
スタートボタンを押したら実行される関数で、テキストボックスから値をとってきたりもNGなんでしょうか?
下記ではstart後にstopが押せず5秒ごとに永遠にスクショを取り続けてしまいます。。
スレッドで実行する関数
def getSSActiveWindow(Groupname, INTERVAL_SS):
global ON_LOOP
while ON_LOOP:
hdwd = win32gui.GetForegroundWindow()
rect = win32gui.GetWindowRect(hdwd)
SS_JPG = ImageGrab.grab()
croped_screenshot = SS_JPG.crop(rect)
mkdir_SS(Groupname)
croped_screenshot.save("./" + Groupname + "/" + str(fname(Groupname)))
time.sleep(INTERVAL_SS)
スタートボタンを押したら実行される関数
def Start():
global ON_LOOP
ON_LOOP = True
Group_name = text.get()
Interval_time = float(text2.get())
thread_main = threading.Thread(target=getSSActiveWindow(Group_name, Interval_time))
thread_main.start()
スタートボタン生成とStart()の呼び出し
start_button = tkinter.Button(app, text="start", command=Start)
262デフォルトの名無しさん
2022/02/27(日) 16:14:19.43ID:aJU8qXKh フーリエ級数よりもサンプリング定理だな
人間が聞こえる周波数は有限
有限の周波数は計算の結果
一定以下の時間間隔で測定すると
完全に元の音を再現できる
私も最初に知った時はびっくりした
人間が聞こえる周波数は有限
有限の周波数は計算の結果
一定以下の時間間隔で測定すると
完全に元の音を再現できる
私も最初に知った時はびっくりした
263デフォルトの名無しさん
2022/02/27(日) 16:25:00.03ID:1y5GAeJx afterというものでスタートでスクショをとる関数を呼び出し、
その中で自分自身を数秒後に呼び出す というやり方をしたら上手くいきました。
ただ、スレッドの方がかっこいいですよね。。。
その中で自分自身を数秒後に呼び出す というやり方をしたら上手くいきました。
ただ、スレッドの方がかっこいいですよね。。。
264デフォルトの名無しさん
2022/02/27(日) 16:27:31.85ID:Um/y+g9Y 率直な疑問だけどそこまで再現出来るならもっと流暢に話せるソフトとか生まれないのかな
最新のボイスロイドとかだとめちゃくちゃ流暢になってたりする?
最新のボイスロイドとかだとめちゃくちゃ流暢になってたりする?
265デフォルトの名無しさん
2022/02/27(日) 16:30:27.57ID:Um/y+g9Y まぁイントネーションとかは関係ないかこの件とは
266デフォルトの名無しさん
2022/02/27(日) 16:45:20.50ID:6fl1teDT 流暢にしゃべってる音声を記録して再生するのは簡単でも
それを参考に似たようなものを作って再生するのは難しいからな
それを参考に似たようなものを作って再生するのは難しいからな
267デフォルトの名無しさん
2022/02/27(日) 16:58:48.49ID:aA44qZEv >>194
初心者の疑問なのですが、JavaScriptはクライアントサイドスクリプトなので、
ブラウザ側で処理が実行されるのでサーバーへの負荷があまりかからない。
それに対して、PHPはサーバーサイドスクリプトなのでサーバーへの負荷が
クライアントスクリプト以上にかかるということは、
PHPよりやっぱりJavaScriptで画像掲示板を作った方が、
相当サーバー代を軽減することができると思ったのですが、違いますか?
もしそうならやっぱりJavaScriptで画像掲示板を作るべきなのでしょうか?
初心者の疑問なのですが、JavaScriptはクライアントサイドスクリプトなので、
ブラウザ側で処理が実行されるのでサーバーへの負荷があまりかからない。
それに対して、PHPはサーバーサイドスクリプトなのでサーバーへの負荷が
クライアントスクリプト以上にかかるということは、
PHPよりやっぱりJavaScriptで画像掲示板を作った方が、
相当サーバー代を軽減することができると思ったのですが、違いますか?
もしそうならやっぱりJavaScriptで画像掲示板を作るべきなのでしょうか?
268デフォルトの名無しさん
2022/02/27(日) 17:01:40.18ID:aA44qZEv PHPかJavaScript、どっちで画像掲示板を作るか迷います・・・・・・・
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【卓球】早田ひな、「総額100万スられた」「ずっと憧れていたスペインとイタリア…」ヨーロッパ旅行で悲劇 スリ被害を告白 [muffin★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 日経平均の下落率3%超す、財政懸念で長期金利上昇 ★2 [お断り★]
- 【実況】博衣こよりのえちえち歌枠🧪★2
- 【画像】外務省局長「この度はうちの🦎がすみません…」中国「……」 [165981677]
- 産経新聞「高市早苗の答弁さぁ……思慮が足りてなくね?官僚と詰めずに思いつきで話しているでしょ」 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【雑談】暇人集会所part18
- 外務省局長、よくわからないまま帰国へ [834922174]
