タグ

ネタとQiitaに関するmohnoのブックマーク (50)

  • インターホンをスマホに通知する方法をものすごく丁寧に説明する【Raspberry Pi Zero WH 】 - Qiita

    在宅勤務している人、多いですよね。 いつでも配達を受け取れてとても助かります。 しかし...2階で仕事をしていると、 インターホンの音が聞こえにくい! 他のことに集中していると気づかない!!!! せっかく配達に来てくれたのだから、一発で受け取りたいものです。 エンジニアらしく仕組みで解決しましょう! 忙しい人のための超要約 インターホンの室内モニタのA接点を使用します(鳴ると接点が閉じる) RaspberryPi Zero WH を用いて、A接点のオンオフによりGPIOの出力3.3VをGPIO17に印加する回路を組みます GPIO17に印加されたことをPythonスクリプトで検知します 検知したらLINE Messaging APIを使用してpush通知を送信します この説明で理解できる人は、記事全体を読む必要ないと思います。 電子工作初心者でも理解しやすいよう丁寧に書き上げたので、ぜひご

    インターホンをスマホに通知する方法をものすごく丁寧に説明する【Raspberry Pi Zero WH 】 - Qiita
    mohno
    mohno 2024/04/12
    最近、スマホ通知機能のあるドアホンに換えた……と思ったら、その「VL-MWD501」も子機があるし、増設できるじゃないか。「音が聞こえにくい」ならラズパイいじるより、子機を増設する方が楽そう(←やめてあげなさい)
  • 【ネタ】コメントだけしか書いていないのに「Hello, world!」と表示されるJavaプログラム - Qiita

    これはJavaでポインタで使えるというネタから着想を得たプログラミングネタです。 厳密には 「コメントだけ書いてあるようにしか見えない」 です。 コメントだけしか書いていないのに「Hello, world!」と表示されるJavaプログラム % java --version openjdk 16.0.2 2021-07-20 OpenJDK Runtime Environment Microsoft-25298 (build 16.0.2+7) OpenJDK 64-Bit Server VM Microsoft-25298 (build 16.0.2+7, mixed mode) import java.util.*; public class Main { public static void main(String[] args) throws Exception { //\u000a

    【ネタ】コメントだけしか書いていないのに「Hello, world!」と表示されるJavaプログラム - Qiita
    mohno
    mohno 2023/06/04
    ↓これをエディタのバグと言われるのはキツいというか、やるなら読み込むときに「Unicodeエスケープシーケンスをテキストへ変換」するしかない。それともエスケープシーケンスのままシンタックスハイライトさせるの?
  • エープリルフールなのでJavaScriptの信じがたい話をします - Qiita

    今日はエープリルフールなので、JavaScriptに関する、にわかに信じがたい話(実話)をしたいと思います。実用的な話ではないので、息抜きがてらお読みいただき、「嘘だろ!?」とツッコミながらJavaScriptへの関心を少しでも深めていただければと思います。 思いつきでゆるめにとりとめもなく書いたため、内容がざっくりしているところがあります。詳しい方はコメントなどで補足いただけると助かります🙇🏻‍♂️ できるだけ十分に調査したつもりですが誤りなどあればご指摘いただければ幸いです。 JavaScriptは10日で作られました JavaScriptは最も利用される言語のひとつで、JetBrainsの統計によれば70%近くの開発者が使ったことがあるほど、広く普及している言語です。 ここまで普及したとなると、JavaScriptはどれほど練りに練って、じっくり作り込まれた言語だったのでしょうか

    エープリルフールなのでJavaScriptの信じがたい話をします - Qiita
    mohno
    mohno 2022/04/06
    面白かった。「.js」ドメインの話は知らなかったなあ。「「ならば国を作ろう」という提案がありました」←そう簡単にはいかんからなー。
  • Cの旧関数宣言 - Qiita

    #define FLOAT_TYPE /* old declaration */ #if defined (FLOAT_TYPE) float #else int #endif add(); /* old definition */ #if defined (FLOAT_TYPE) float #else int #endif add(a, b) #if defined (FLOAT_TYPE) float a; float b; #else int a; int b; #endif { return a + b; }

    Cの旧関数宣言 - Qiita
    mohno
    mohno 2020/10/29
    要するに、この記事が悪い。「古いソースコードではANSI C標準以前の関数宣言がある」←“以前”はvoidがなかったので「旧関数宣言」の例として不適切だし、浮動小数はdouble型で渡されるのでわざわざfloat型で受けるなと。
  • 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita

    はじめに 先日ツイッターで見かけた呟き pic.twitter.com/33Yk02hu1U — TOMO (@tomozh) October 14, 2020 そういうこともあるのか的な反応もあるようなので具体例を挙げてみることにする。 例1 所謂FizzBuzz問題。 #include <stdio.h> void fizzbuzz(int n) { int next; int i = 1; do { printf(i % 15 ? i % 5 ? i % 3 ? "%d\n" : "Fizz\n" : "Buzz\n" : "FizzBuzz\n", i); if (i++ >= n) next = 0; } while (next); } int main(void) { printf((char[]){""}); // この位置にprintfが無いとなぜか動かない fizzbuz

    「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
    mohno
    mohno 2020/10/19
    「printf() が呼ばれると動作している風なのは偶々の結果でありプログラムが正しい訳ではない」だけだよね。C言語は「問題が起きやすい」だけで、直接関係なさそうな部分が動作に影響するのはC言語に限らないと思うぞ。
  • Bashの邪悪なコマンド9選 - Qiita

    rm -rf /やったことある人。 私はないです。 以下はAndreas Müller( Twitter / GitHub / LinkedIn / Medium )による記事、9 Evil Bash Commands Explainedの日語訳です。 9 Evil Bash Commands Explained 初めてターミナルを使って、そしてそれを理解したときのことを覚えています。 あらゆるファイルにアクセスし、全てのプログラムを実行し、黒い画面に何かを入力するだけでシステムの全てを完全に掌握できることに気がついた、あの感覚。 そしてもちろん、致命的ミスを犯して全てを失った、あのときの恐怖も。 私は当はシステム管理者ではありませんが、長年にわたってLinux/UNIXベースのシステムで作業してきたので、コマンドを実行しようとしてEnterキーを打つことを躊躇う状況に何度も遭遇しまし

    Bashの邪悪なコマンド9選 - Qiita
    mohno
    mohno 2020/01/09
    bashはともかく、何でもできるのが壊しやすさをあらわしてる。昔、Windowsでもエクスプローラーでフォルダごとドラッグ&ドロップできるのをシステムフォルダでやってて死なせてた人がいた。
  • crontab database ~君がしでかしてくれたもの~ - Qiita

    この記事は番環境でやらかしちゃった人のアドベントカレンダー2日目の記事です。 内容的にそろそろ時効だと思うので供養のために書きました。 追記。そういえば時期をちゃんと書いてなかったけど事件が起きたのは去年2018年、つまり仕込み(ヲイ)は2017年の話です ぶっちゃけネタ記事ですw (たまたま見つけて参加してみただけなのに昨日の記事の伸びっぷりを見て戦々恐々としてる TL;DR DB移行作業において、テスト期間中は常に最新のデータで処理できるように書いておいたプログラムをcrontabで実行していた。最終的に番に合わせて日時を調整していたが、そのことを失念し1年後に再実行されてしまい、番データが1年前に巻き戻る事故発生。 crontab は分、時、日、月、曜日を指定できるが、1年後に帰ってくるから気をつけてね。という話。 惨劇はなぜおこってしまったのか 結論から言えばcrontabの

    crontab database ~君がしでかしてくれたもの~ - Qiita
    mohno
    mohno 2019/12/02
    「crontab database ~君がしでかしてくれたもの~」←分かりにくい、分かりにくい、ムリすんな、と思ったら、分かりやすかったみたいだ。 #あの花
  • JavaScriptの配列操作に役立つ13のヒントとトリック - Qiita

    以下はDuomly ( Webサイト / Twitter )による記事、13 useful JavaScript array tips and tricks you should knowの日語訳です。 Duomlyはプログラミング学習コースを提供しているWebサイトです。 ただランディングページにたいしたことが書いてないので、詳細はよくわかりません。 ここはもう少し書いておいてほしいところ。 13 useful JavaScript array tips and tricks you should know 配列はJavaScriptで最も一般的な概念のひとつであり、内部に格納されたデータを操作する手段は多数存在します。 配列はJavaScriptの最も基的なトピックであり、プログラミング学習パスの最初に学習するものだという前提のうえで、この記事ではあなたが知らないかもしれない、しか

    JavaScriptの配列操作に役立つ13のヒントとトリック - Qiita
    mohno
    mohno 2019/10/30
    好きなように拡張されてるんだなあ、と思うけれど、こういうのは、どこでも使えるもんだと思っていいものなの?(IEは別だろうけど)
  • Python で大量のファイルを並列で速く読み込む - Qiita

    from glob import glob files = glob('data/*.csv') len(files) # 10000 この 1万件の CSV ファイルを Pandas DataFrame として読み込みたい。 ちなみに検証用のデータは以下のようにして生成した。 (3列 x 10,000行 の CSV ファイル 10,000 個) import numpy as np import pandas as pd row_n = 10000 col_n = 3 columns = [f'col{i}' for i in range(col_n)] for i in range(10000): df = pd.DataFrame(np.random.randn(row_n, col_n), columns=columns) df.to_csv(f'data/{i:04}.csv',

    Python で大量のファイルを並列で速く読み込む - Qiita
    mohno
    mohno 2019/06/03
    マルチプロセスで高速化するなんて、ファイルシステム最強ってこと?と思ったけど、コメントによればファイルI/OじゃなくCSVのパースで時間がかかっているだけなのか。ふーん。
  • Delphi で最少のソースコードを書いてみる - Qiita

    はじめに Delphi で最少のソースコードってどれだけ短くなるのかを調べてみました。 ここで言う最少のソースコードとはバイト数が最も少なくなるソースコードファイルの事です。 実行ファイルを作れる最小限のソースコードであり、生成される実行ファイルサイズの事ではありません。 やってみよう では始めます。検証に使う環境は Delphi 10.3.1 Rio です。 コンソールアプリケーション フォームのあるアプリケーションはそれだけでコード量がありますので、コンソールアプリケーションを選択します。 [ファイル | 新規作成 | その他...] から コンソールアプリケーション を選択します。 この時点のソースコードは以下の通りです。 program Project1; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; begin try {

    Delphi で最少のソースコードを書いてみる - Qiita
    mohno
    mohno 2019/03/04
    「Delphi で最少のソースコード」←「begin end.」だろ、と思ったら「Delphi だと begin も削れます」←いつからそうなったんだ?:-O
  • なんでもかんでも「バグ」ってひとくくりにしないで - Qiita

    はじめに プログラマがソフトウェアを作るとユーザがつきます。ユーザがそのソフトウェアを使っていて何らかの問題が発生すると「このソフトはバグってる、直して!」と言われることがままあります。それに対して「いや、仕様だから」と突っぱねられることがあります。その後お互いの意見が「バグだ!」「いいや仕様だ!」と平行線になってお互いモヤモヤのまま終わるというのはよくある話です。 なぜこういうことが起きるかというと、原因の一つは「問題」イコール「バグ」という短絡的な考え方です。とくにソフトウェアを作ったり使ったりした経験が浅い人がこうなる傾向があると推測しています。このようない違いは「要件」「仕様」と「実装」という言葉の意味を理解していればある程度解決できます。書はこれらの用語について実例を挙げて簡単に紹介します。 注意点 記事では要件や仕様を定義することが前提となっていますが、とくにユーザと開発

    なんでもかんでも「バグ」ってひとくくりにしないで - Qiita
    mohno
    mohno 2019/02/25
    「int sort(struct *person[] a, int len)」←これって言語は何?
  • 【新元号】改元のシステム改修で慌てるシステム屋は「無能」とのこと - Qiita

    という記事を見ての職業プログラマ歴3年程度の若造の過剰反応です。 まとまっていないポエムのようなものなので、 こんなことあるんだなっていう程度に思っていただいたら幸いです。 作ったプログラムを保守しているとは限らない まずはこれが大前提。 「作ったやつが無能」だとか「あらかじめ予想していなかった人が問題」だとか、 いろいろ思うことは当然私にもないとはいいませんが、 そういうことは後続の人が云ってはいけないと思っています。 なぜそうなったかの原因究明は必要ですが、悪口を言うための究明なら時間の無駄でしかない。 考慮ができていない「おかしなプログラム」を直すのが我々保守の一端、おざなりにしてはいけない。 1か月でリリースは難しい そもそもプログラムに直接書き込まれていて、 なおかつオフラインで運用されているシステムが、全国各地にある場合にある場合、 たった1か月で「調査→修正→テスト→納品」で

    【新元号】改元のシステム改修で慌てるシステム屋は「無能」とのこと - Qiita
    mohno
    mohno 2019/01/15
    んー、「そういうことを一カ所で対応できるようになってないシステムを無能って言ってるんだよ」って言われそうな予感。
  • 罵声を浴びて疲れた...入社3日目 - Qiita

    はじめまして、PHPプログラマーのアリスです。私はこう見えて日人ですが、母親はイタリア人です。さて、今回は入社3日目の初心者PHPプログラマー仕事でどんなことをしているか書きます。 1日目 1日目は、最初に自己紹介を行いました。 「山田アリスと申します。専門学校でプログラミングを学びました。バックエンドプログラマーとして配属されましたが、最初はわからないことが多いと思いますが、よろしくおねがいします。」 と言いました。歓迎ムードではなく、みんな無表情で手をぱちぱちしていました。 その後、「新人は入社後の手続きをしてください」と言われ、そのとおりにしました。その日の記憶は、それしかありません。 2日目 配属先で何をするかと思ったら、上司から「自分のPCの環境を完璧に設定しろ。後からバカみてぇにコロコロといらねーもん入れたら承知しねーから、今のうちに必要なものは入れておけ」と言われ、Ema

    罵声を浴びて疲れた...入社3日目 - Qiita
    mohno
    mohno 2018/11/14
    特定情報多すぎと思ったが、画像反転は気づかなかった^_^; この手の話は盛ってる可能性が高いけど、ホントにそういう状況なら逃げる一択だと思う。
  • 侍エンジニア塾のC言語のサンプルがヤバすぎる。

    C言語はもうかれこれ10年くらい書いていないけど、流石にこれはヤバい。 正直な感想として、ブランド毀損するくらいの危険性をはらんでいると思う。 当該記事からコピーしてきた。 #include <stdio.h> #include <stdlib.h> // 構造体の宣言 typedef struct { int num; char *str; } strct; int main(void) { // 実体を生成 strct *entity; // 動的メモリの確保。確保したメモリをstrct型ポインタにキャスト。 entity = (strct*)malloc(sizeof(strct)); // メンバの初期化 entity->num = 0; entity->str = (char*)malloc(sizeof(32)); // メモリに文字列を代入 sprintf(entity->s

    侍エンジニア塾のC言語のサンプルがヤバすぎる。
    mohno
    mohno 2018/10/17
    マジレスすると“指導者”側でもC言語を正しく理解してない人のコードはホントに酷い。Java屋さんが片手間で作ってfreeしてない、closeしてない、みたいなのもあった。
  • なぜビンゴゲームで同じ数字を書いてはいけないのか

    先日、結婚式の二次会に招待していただきました。新郎・新婦ともに大学時代からの友人です。 歓談中にビンゴゲームが開催されました。私はビンゴゲームに完全に勝利にしたにも関わらず、景品をもらうことができませんでした。 あまりに理不尽な経験だったので、泣き寝入りしてたまるものかと思い、Qiita に初投稿してみようと思います。 ビンゴゲームとは ビンゴはビンゴですよね。「ビンゴ!」って叫ぶやつです。 今回のビンゴゲームは $3 \times 3 = 9$ マスのカードを利用しました。縦・横・ナナメに一直線に 3 マス穴を開ければ「ビンゴ!」になります。 実は、各参加者には白紙のビンゴカードが配られ、各テーブルにはビンゴゲームのルールが書かれた紙が配られていました。下記がその内容です。 真ん中のマスに "free" と書いてください。(i.e. 真ん中のマスはゲーム開始時に穴を開けて良い) それ以外

    なぜビンゴゲームで同じ数字を書いてはいけないのか
    mohno
    mohno 2018/10/03
    え、二次会の話ってネタじゃなかったの?
  • 音響処理の基礎 with CNN 〜機械学習で「太鼓の達人」の自動作譜をしてみた〜 - Qiita

    この記事の対象者 音響処理の基礎を概観したい ディープラーニングを用いた音響処理に興味がある 太鼓の達人が好きだ つまり初心者向けってことです。プロの方のツッコミもお待ちしています。 結果 見て(聴いて?)もらうと早いと思います。これは今回作ったモデルで生成した譜面を太鼓さん次郎2で演奏したものです。 米津玄師さんの「ピースサイン」: 「音楽から全自動で太鼓の達人の譜面を作るAI」を作りました またいつか解説記事書きます pic.twitter.com/IW6qrd9knS — うっでぃ (@woodyOutOfABase) July 16, 2018 UndertaleよりToby Foxさんの"Your Best Nightmare" @no_TL pic.twitter.com/UW5ntQg0KC — うっでぃ (@woodyOutOfABase) July 20, 2018 ki

    音響処理の基礎 with CNN 〜機械学習で「太鼓の達人」の自動作譜をしてみた〜 - Qiita
    mohno
    mohno 2018/07/22
    そろそろ自動採譜が出てこないかな(定期)
  • 相対的なネーミングはよせ、やめるんだ! - Qiita

    たぶん1000回くらいは言われてきているがいまだに絶滅しないので、もう1回言う。ファイル名でもソースコード上の変数でもCSSのセレクタでもなんでもいいけど、相対的なネーミングはやめよう。 Safe Harbor Statement この投稿は個人の(中略)であり、所属する組織とは関係ありません。 なぜ相対的なネーミングをしてはいけないか 名前をつけた人の主観が入り込むため 時間が経つにつれ名前が実態と乖離し混乱を招くため 実装に無駄な制約をかけるため なぜ相対的なネーミングがなくならないか なにが相対的なネーミングなのか理解していないため じゃないかな多分。 避けるべき語 というわけで相対的なネーミングを回避するための禁止ワードのうち代表的なものをあげておきます。 new, 新, latest, 最新, old, 旧 など これらの時系列を表す語は、比較対象がないと新なのか旧なのかわかりま

    相対的なネーミングはよせ、やめるんだ! - Qiita
    mohno
    mohno 2018/05/06
    引越しの時に段ボール箱に「すぐ開ける」と書いたものとは別に、「割とすぐ開ける」と書いておいたら引越し屋さんが笑ってたのを思い出したw
  • トップレベルのコンピュータエンジニアなら普段からチェックして当然の技術系メディアN選 - kuenishi's blog

    〜〜が知っておくべきサイト20選とか、エンジニアなら今すぐフォローすべき有名人とか、いつも釣られてみにいくと全く興味なかったり拍子抜けしたりするわけだが、こういうのが並んでいたらあまりの格の違いに絶望してしまうだろうというものを適当に並べてみた。私が見ているわけではなくて、こうありたいと思っている私の願望である。どちらかというとインフラ系とか基盤系のものに偏っているが、あくまで私が興味ある一連の例だと思ってください。「これが入ってない!」というクレームは受け付けますので、是非教えてください。一緒に成層圏まで意識を高めましょう。 情報サイト、有名ブログ Software Engineering Radio : IEEEが主催しているソフトウェアエンジニア向けのPodCast。データベースからフロントエンド、暗号、ハードウェア、マイクロサービス、などなどとにかく多様なジャンルの最新のトピックの

    トップレベルのコンピュータエンジニアなら普段からチェックして当然の技術系メディアN選 - kuenishi's blog
    mohno
    mohno 2018/04/14
    トップレベルじゃないので遠慮なくスルー(←ボカッ)
  • 工数見積もりのコツ - Qiita

    はじめに 稿では、仕事をする上での作業工数の見積もり方法について説明します。 工数とは何か 工数(こうすう1)というのは、仕事において、あるひとつの作業を完了するまでにかかる総累計時間のことです。情報処理技術者試験に出てくるTAT(ターンアラウンドタイム)とは意味合いが異なります2。 例えば、ある作業に40時間(40H3)かかるとした場合、工数は40時間であるといえます。1日8時間勤務だとした場合、40時間は5人日(にんにち)と表現することができます。さらに、1ヶ月20日勤務だとした場合、0.25人月(にんげつ)と表現することもできます。 一般的に工数の単位は「人日」および「人月」で扱います。 学生時代は工数を気にすることはないですが、ITエンジニアとして会社で働くようになると、かならず工数を意識する必要があります。 なぜ工数を意識する必要があるのか なぜ工数を意識する必要があるのかとい

    工数見積もりのコツ - Qiita
    mohno
    mohno 2018/04/05
    一般的な製造物と違って「作るものが毎回既存のものと違う」から“正確な見積もり”って難しいんだよね。「作業を細分化して個々に数字を出す」←そうやって正確に見積もろうとする時間がもったいなかったりするし:-)
  • 新卒がSIerとして1年働いた結果見えた、深い深い闇の話 - Qiita

    4/1で社会人生活1年目なので、そのまとめとしてなんか書こうと思いました。 とあるそこそこ大手の常駐先でSEをしています。最初に配属された時はJavaの研修を受ける程のド素人でした。 大手あるあるですが、その常駐先では殆どの人がホストコンピュータを日々アセンブラやPL/I、COBOLでプログラミングして運用保守しています。 対して僕は分散と呼ばれる世界に居ます。業務用Webアプリやデスクトップアプリを作り客先に納品したり既存の資産をメンテナンスする事でお賃金を頂いておるわけですが、当然そこにあるのはむかーしむかしにVBや生のJavaで書かれた、錆びついたシステムです。酷い所は未だにWindows2000サーバーが動いてます。一番新しくてStrutsかな。 しかし人間関係に関しては神だったのでなんとか1年働けました。当にいい人しかいない、素晴らしい職場だと思います。なのでブラックとは思いま

    新卒がSIerとして1年働いた結果見えた、深い深い闇の話 - Qiita
    mohno
    mohno 2018/04/01
    こういう現場があるからロートルでも呼んでもらえるんだけど;-) という話はさておき、少人数で開発できないような規模のシステムって、技術の良し悪しだけじゃなく現場開発者のスキルも考えないといけないからね。