タグ

ブックマーク / qiita.com (151)

  • OAuth 1.0a 認証の実装 (Twitter API 用) - Qiita

    以前、Twitter API の認証処理を自前で実装して記事にしたのですが、説明をもう少し上手くまとめたいと思ったため、別記事にしました。 Twitter API 以外でも同様に実装できると思いますが、Twitter API 以外向けにも書こうとすると説明をより抽象化しないといけないため、ここでは Twitter API 向けとして書きます。他向けに OAuth 認証を実装する場合は上手く読み替えて下さい。 参考「Creating a signature — Twitter Developers」 1. 認証の流れ 通常の HTTP リクエストに Authorization ヘッダーを加えることで認証します。 Authorization: OAuth oauth_consumer_key="xvz1evFS4wEEPTGEFPHBog", oauth_nonce="6eb24361e725

    OAuth 1.0a 認証の実装 (Twitter API 用) - Qiita
  • 脆弱性を攻撃してみよう (2) オープンリダイレクト - Qiita

    起動したら、http://localhost:8080にアクセスして下さい。以下のような画面の真ん中に「脆弱性」と書かれたセクションがあります。 この中の上から10番目に「オープンリダイレクト可能なログイン画面」のリンクがあります。クリックすると、次のような画面が表示されます。 ユーザーIDに「admin」、パスワードに「password」を入力し、ログインボタンをクリックすると、次のような画面が表示されます。 これだけの機能ですが、オープンリダイレクトの脆弱性があります。注目するのはURLです。最初にアクセスしたログイン画面のURLはhttp://localhost:8080/openredirect/login?goto=/uid/serverinfo.jspで、ログイン後のURLはhttp://localhost:8080/uid/serverinfo.jspとなっています。goto

    脆弱性を攻撃してみよう (2) オープンリダイレクト - Qiita
    pmint
    pmint 2021/07/20
    "この時、再入力した"…してないな。セキュリティ記事で承認欲求満たそうとする人は、読者を騙す。マナー講師と同様、セキュリティクラスターも人の不安を煽ってなんぼ。この手の記事に騙されないのもセキュリティ。
  • なぜかエンジニアをイラっとさせてしまう人の質問 - Qiita

    はじめに 先日、新入社員の方から次のような相談を受けました。 「エンジニアの方に質問をすると、いつもイライラされてしまって辛いです」 ・・・・・・・・・ 確かに、エンジニアに限らず、質問をすることは非常に難しい… 質問の仕方を間違えたために相手を怒らせてしまった、なんてこともしばしばあることでしょう。 彼らは「教えるプロ」ではなく、ただの技術者です。 そのため、問題の解決には、質問力(コミュニケーション能力)が欠かせません。 そこで、新入社員の子には質問の仕方を教えようと思ったのですが… 僕「質問の内容・構成は悪くないぞ」 ※ここでは、あえて「良い質問」、「悪い質問」の違いには触れないようにします。 ※その手の話題はみんなすでに飽き飽きしているからです。 そう、質問の仕方は問題なかったのです。 しかし… 要所に気になる文言がいくつかありました。 -- 記事ではうちの新入社員に限らず、プロ

    なぜかエンジニアをイラっとさせてしまう人の質問 - Qiita
    pmint
    pmint 2021/07/19
    またエンジニアの募集条件に「コミュニケーション能力のある人」が追加されてしまうな。しばらく見てなかったのに。時代は繰り返すか。こんなこと募集条件に書かれるのはITエンジニアくらい。
  • 形式手法はなぜ流行っていないのか - Qiita

    はじめに みなさん形式手法をご存知でしょうか? 名前くらいは聞いたことあるけどいまいち何かわからないという方が多いのではないでしょうか。 その通りです。形式手法はアカデミアではそれなりに研究されているものの、 一般の(特にWeb系)ソフトウェア開発者が携わることはなかなかないのではないかと思います。 この記事ではソフトウェア開発に形式手法が導入されないのはなぜなのかを考察します。 この記事ではアジャイルソフトウェア開発において形式手法を導入する際のハードルについて考察します。 追記 記事について、「形式手法は流行っていない」というのは正確ではないのではないかという指摘をいただきました。組み込み系や社会インフラ系等バグを絶対に出せないシステム開発では形式手法がよく使われているそうです。 ちょっと古いデータですが活用事例です。 誤解を招く紹介となっていたことをお詫びします。 さらに追記 ku

    形式手法はなぜ流行っていないのか - Qiita
    pmint
    pmint 2021/03/25
    そう、型は形式手法。でも何でもstring型にして、インジェクションに気をつけてる現状では無意味。/ お詫びするほど間違ってないだろう。流行ってるのは無意味な型や図式だけ。盛んなのはEU方面。日本はアメリカ式。
  • 「正直9年経ったいまでもfor文ググってる」 - Qiita

    「正直9年経ったいまでもfor文ググってる」 という議論記事があった。正直なところ私もググる方の人だ。私の感想: ポンとテキストエディタだけ渡された時に書けるか自信ないぞ...IDEがあればまあ大丈夫かなあ。 JavaScriptだけじゃない。言語色々扱うしという言い訳。正規表現とか毎度調べる。 だから世の中にチートシートというものがあるのだ。お気に入りチートシート多数。 実戦でどうしているか?結局周りのソースを見て馴染む書き方にしていますよ多分。 暗記するかしないかは受験勉強みたいなもので、コーディング面接に受かるなら必要。暗記そのものには意味はないとは思う。 競技プログラミングが使えないとかいう論もあったな。 ググり力も大事。 でも「最低限」もできないのはやはり恥ずかしい気持ちはある。 なんかこれ英語できるできないと似てるな。英語なんてGoogle翻訳、DeepL翻訳あればいいけど、実

    「正直9年経ったいまでもfor文ググってる」 - Qiita
    pmint
    pmint 2021/03/25
    コーディング規約と同じ話。逆に、いろいろな言語・フレームワークに触れているんだから、コーディング規約なんてちゃちなものを決めても、面倒を増やすだけで何ら生産性は向上しないということ。
  • 【PHP8.0】PHP8.0の新機能 - Qiita

    PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2020/11/26に リリースされました 。 2020/08/04にPHP8.0がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2020/11/26にPHP8.0がリリースされる予定です。 というわけでPHP8.0で対応することが決まったRFCを見てみましょう。 RFC JIT 賛成50反対2で受理。 PHP8の目玉、JITです。 PHPをネイティブコードにコンパイルし、さらにコンパイルした結果を次のリクエストに使い回すことができます。 速度はOpcacheがオンの状態から平均的に1.3-1.5倍程度、さらにCPUバウンドな処理なら3倍以上という劇的な高速化が見込めます。 Opcache無しからだと、1分かかっていた

    【PHP8.0】PHP8.0の新機能 - Qiita
    pmint
    pmint 2021/01/30
    すごいと言われることほどどうでもよくて。でもWordPressに見限られなければ大丈夫なんじゃないの。intやstringといった曖昧な型を明示したところで、コードの厳密さには寄与しない。まだWebが無かった時代に退行している。
  • in_arrayを使うときは黙って第三引数を付けること - Qiita

    はじめに phpでin_array使ってますか? その時、第3引数って使ってますか? 使ってない?いつ事故ってもおかしくないですよ? まずは普通に使ってみる <?php $students = ['山', '山下', '山田']; var_dump(in_array('山田', $students)); // trueを返すはず var_dump(in_array('山原', $students)); // falseを返すはず

    in_arrayを使うときは黙って第三引数を付けること - Qiita
    pmint
    pmint 2020/02/21
    「黙って〇〇」はコピペプログラミングと同じ。
  • メール等の日本語テキスト文章の記法をMarkdown記法に変換する秀丸マクロを作成してみた - Qiita

    考えたこと。気づいたこと。思ったこと 日語記法は「■◆●▲★□◇〇△☆・:」の記号と罫線を多用している。 ■◆●▲★等が使われる要因は、コントラストが強くて目印になるから? 日語記法は全角や半角スペース、改行を多用して、間隔(間)で強調して目立たせて読みやすさを確保している。もともと日語は単語ごとにスペースを使わない記法なので利用されてるのでしょう。 日語記法は矢印記号「→」も多用されている。英語記号はもちろん「->」 「・」は一発で打てて楽。やはり一発で打てる文字は使い易い。 一方でMarkdownの「# 」等は一発では打てない。 半角文字は、最初は一発で検索項目の一番上に来ない。繰り返せば出るけど。 Markdownが世界中で普及した要因は 「HTMLの様な構造体テキストでありながら、HTMLよりも読みやすい」+「英文で助長ではない」+「打ちやすい」+「markdownと言う絶

    メール等の日本語テキスト文章の記法をMarkdown記法に変換する秀丸マクロを作成してみた - Qiita
    pmint
    pmint 2019/12/19
    表の作り方が的確。
  • 新規Webサービスを独りで開発・運用する際に立ちはだかった壁とそれを乗り越えた方法まとめ【個人開発】 - Qiita

    その1. そもそもアイデアが思い浮かばない 遭遇確率 :★★★★☆ どんな壁?:いざWebサービスを作ろうとしても何もアイデアが思い浮かばない 解決策:身近な課題をひたすら探す サービスを作る上では何かを解決する系のアイデアであり、かつ自分が当事者であるとモチベーションも続きやすいです。 自分が普段ネットを使っていて不便だと思うこと、今使っているサービスの不満点、などなんでも良いのでとりあえず書き出してみましょう。 大体この中に自分の技術力でも解決できるような課題が存在します。 もし自分の中での課題が見つからないという場合は、日々Twitterのタイムラインで流れてくる身近な人が抱えている課題をピックアップしてアイデア化するのもありです。 回避策:しょぼいアイデアでも日々書き残していく いざサービスを作るというときにアイデアも出ないし身近な課題すら見つからない場合は、普段からアイデアを無理

    新規Webサービスを独りで開発・運用する際に立ちはだかった壁とそれを乗り越えた方法まとめ【個人開発】 - Qiita
    pmint
    pmint 2019/12/15
    この記事だけでも一人アドベントカレンダー
  • 実装クリーンアーキテクチャ

    最近何かと騒がしいクリーンアーキテクチャですが、丁度プロダクトで採用したところだったので折角なので情報共有ということで Qiita の初記事にしてみようと思います。 こちらの記事は GUI や CUI のアプリケーションを対象にしています。 Java コードの記事リンク:https://nrslib.com/clean-architecture-with-java/?preview_id=1263&preview_nonce=542ba7b70f&_thumbnail_id=1293&preview=true その他解説もしています。もしよろしければチャンネル登録をお願いいたします。 より実践的なコード(WEBアプリケーション): https://github.com/nrslib/itddd/tree/master/CleanLike YouTube での解説(WEBアプリケーション):

    実装クリーンアーキテクチャ
    pmint
    pmint 2019/09/03
    実装してみると、結局1つのクラスが他のすべてを制御することになるクリーンアーキテクチャ。UseCases層のクラスは中心にある層も外側にある層も全部呼ぶ。ついにはDBまで呼んでしまう。嘘の図が流行ってるだけ。
  • クリーンアーキテクチャーでスマホアプリ開発した感想(勉強会用) - Qiita

    はじめに 昨年からの大きな案件でClean Architectureを使った Platforms: Android/iOS Languages: Kotlin/Swift はじめに 勉強会向け資料なので、クリーンアーキテクチャー自体の解説もある程度含まれます。 逆に、時間の都合上、歴史背景や細かい部分までは行き届いていません。 もし間違いがあればご指摘ください。 オススメ書籍 アーキテクチャーを選定する目的 求められるシステムを構築・保守するために必要な人材を最小限に抑えるため 「アーキテクチャーは上位レベル、設計は下位レベル」のように区別されることがあるが、両者の間に明確な境界はなく、上位から下位に至るまで、決定の連続である スマホアプリ開発で代表的なアーキテクチャー AndroidはMVVM(Googleが推奨) iOSはMVC(AppleCocoa applicationに採用)

    クリーンアーキテクチャーでスマホアプリ開発した感想(勉強会用) - Qiita
    pmint
    pmint 2019/07/06
    「ビジネスルールは変わらない」…それは要求次第。要求を聞かずに設計しても無駄なので、適切にやりましょう。依存関係の逆転については既に抽象レイヤー(フレームワーク)があるので、考えなくても実現済み。
  • 6日で作ったRailsアプリを譲渡するまで - Qiita

    はじめに 6日で開発したRailsアプリを譲渡しました。結論から言うと、譲渡額は40,000円です。アプリの内容は、誰でも簡単にランキングを作って、投票をしたり、候補を追加したりできるミニアプリ。Twitterカードを自動生成できるので、最近流行りのTwitterバイラルも狙えるかなと思って、作ってみました。 実際にリリースしたのは、先月ですがマーケティングの糸口が見つからず放置していました。それから一ヶ月くらいして、「個人開発のフリマ」に出品しました。3日ほどで、「興味がある」と言ってくれる方が見つかり譲渡することになりました。 購入していただける理由は、アフィリエイトが得意なのでうまくやればサービスを育てられそう、とのことでした。今回は譲渡が決まってから、実際に完全に権利を移行するまでを書いていきたいと思います。 個人開発のフリマとは 個人開発のフリマは、個人開発者やスタートアップのサ

    6日で作ったRailsアプリを譲渡するまで - Qiita
    pmint
    pmint 2019/06/06
    この「個人開発のフリマ」のほうの記事は https://qiita.com/svfreerider/items/a5b7ffed53f2a1b2b1ef 「個人開発のフリマ」自体を最初の出品にするのも面白かったかも。
  • [初心者]オブジェクト指向でなぜつくるのか - Qiita

    はじめに オブジェクト指向はなんとなく理解しているつもりだったが、人に明確に説明できるほどではなかったため、オブジェクト指向でなぜつくるのかを読んで、まとめた。非常に分かりやすい書籍なのでQiitaをご覧いただき、いいねをつけていただいた上でご一読ください。 1. オブジェクト指向はソフトウェア開発を楽にする技術 オブジェクト指向とは、業務分析から要求定義、設計、プログラミング、開発プロセスまでをカバーするソフトウェア開発の総合的な技術である。 オブジェクト指向が難しいと思われるのは、技術そのものの複雑さに起因するのではなく、状況が混乱しているためである。そして分からないがゆえ、一般人には手の届かない神秘的な魔法だと思われてしまう。 混乱①用語の洪水 対象分野が広いゆえ、特殊用語のオンパレードになってしまい混乱してしまう。 現実世界やシステムは、データと手続きをまとめた「オブジェクト」から

    [初心者]オブジェクト指向でなぜつくるのか - Qiita
    pmint
    pmint 2019/06/03
    型システムの説明一切なし。参考文献にも無いんだろうか。オブジェクト指向は型システムの拡張なのに。
  • [翻訳]あなたがプログラミングに向いていない10のサイン - Qiita

    ※この記事はJonathan Bluks氏の「10 Signs You Will Suck at Programming」を翻訳したものです。Mediumのコメント欄より翻訳の許可を頂きました。ありがとうございます。 より多くのステッカーは、より多くの成長にはなりません。 最近、RedditやQuoraで「自分がプログラマとして成功できるか、どうすれば分かりますか?」という質問をよく見かけます。キャリアチェンジを検討したり、あるいはソフトウェア開発に興味があったりするのであれば、それはごく自然な疑問です。 コンピュータに関する正式なトレーニングを受けていない場合、人々はプログラマになることに大きな心理的障壁があると思います。プログラミングが苦手であれば、あなたは自分がプログラマとして才能が無い人だと思うのは自然な考えです。もしあなたが俳優になりたいと思っていて、自分は演技が得意かどうかを疑

    [翻訳]あなたがプログラミングに向いていない10のサイン - Qiita
    pmint
    pmint 2019/03/16
    といったことが不要になるように技術は進化してきた。将来ますます不要になっていくはず。/ プログラマー向きでない人は、ビジネス向き…つまり細かいことにこだわるのは、仕事としてはうまくいかないっていう落ち。
  • Contentful+Nuxtでブログ作成 オリジナル記事投稿画面に苦労 - Qiita

    あらまし 結構長くはてなブログにお世話になっていたが、 適当に運営していたのでタグやカテゴリ管理ができていない scrapbox.ioのUI, UXに魅力を感じ、パク…インスパイアされた 自身で開発したい気分になった などの理由でブログを作ろうと思い立った。 なお、完成品はこちら 投稿画面 HashMikiri 欲しかった仕様 scrapboxに影響を受けたハードルの低い投稿画面 入力欄は文のみで、一行目をタイトルと認識、#に続く文字をハッシュタグと認識 その他はMarkdownに準ずる ハッシュタグによる検索機能 タグで検索し、引っかかった記事がズラッと並ぶ ハッシュタグ自動リンク機能 欲しかった仕様から逆算した仕様 サーバーサイドの機能はContentfulにお任せ Headless CMSと呼ばれる、CMSから見た目部分を取っ払いデータ部分に特化した仕様 最初はFirebaseでや

    Contentful+Nuxtでブログ作成 オリジナル記事投稿画面に苦労 - Qiita
    pmint
    pmint 2019/03/10
    "scrapbox.ioのUI, UXに魅力を感じ、パク…インスパイアされた"
  • マジかよ、session_start そんな理由でページ遷移でセッションデータ飛ぶんかい(-_-;) - Qiita

    玄人の方から正しい修正が入りましたので要コメント参照です (※ 人はいたってマジめなシェアのつもりでしたが…) session を使用する中で気をつけるべき点 前述の stackoverflow に書かれていた気をつけるべきポイント(要点) sessin_start() は<?php の直後になくてはならない。空白やタブもあってはならない。 header リダイレクト後のスクリプト終了は exit(); で行うべし。session_write_close(); などもあるけど自分は exit(); で動いている。 php.ini の register_globals が off になっていること。phpinfo() を呼んでも設定を確認できる。 session を明示的に消したり空白にしていないこと。 $_SESSION グローバル変数をどこかで上書きしていないこと リダイレクト先が同じ

    マジかよ、session_start そんな理由でページ遷移でセッションデータ飛ぶんかい(-_-;) - Qiita
    pmint
    pmint 2018/12/23
    「www.aaa.comとaaa.comはCookieを共用できるのは当たり前過ぎる話」…そうだったんだ?
  • Chromeを使うなら、必ずServiceWorkersを無効化しよう - Qiita

    2022/01/17追記:この方法では無効化できません。【Chrome】ServiceWorkerを今度こそ決定的かつ完全に消去するを参照してください。 ServiceWorkersというAPIが存在します。 ブラウザをフルスクリーン表示したり、デスクトップにアイコンを作成したり、PUSH通知を行ったり、バックグラウンドでJavaScriptを動作させたりといった機能を提供します。1 見てのとおりユーザには何一つ利のない機能なので、必ず無効化しましょう。 なに、動かなくなるサイトがあって困る? 大丈夫。 ServiceWorkersがないと動かないサイトは、存在そのものが不要なサイトです。 手順 PCChrome URLにchrome://flags/と入力すると、全面英語の設定画面のようなものが出てきます。 最上部の検索欄に「Worker」および「PWA」「Progressive」と入

    Chromeを使うなら、必ずServiceWorkersを無効化しよう - Qiita
    pmint
    pmint 2018/11/06
    Windows全盛期(11年前まで)はこういう人が普通にいたので、まだ残っていても不思議ではないよ。別の言い方だと、Androidでいまだにタスクキラーを愛用してるような人。
  • 侍エンジニア塾の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言語のサンプルがヤバすぎる。
    pmint
    pmint 2018/10/26
    コードを丸ごとコピペしてる割に、指摘が1点だけだったりしてヽ(・ω・)/ズコーってなる。なんでここに書こうと思ったんだろう。/ ちなみにこれはクラウドワークスで発注されてる。 https://crowdworks.jp/public/employers/1805629
  • まだMVC,MVP,MVVMで消耗してるの? iOS Clean Architectureについて - Qiita

    <この記事は「Money Forward Advent Calendar 2015」の22日目の記事です> この記事は、iOS Clean Architectureと実際にコードへ適用した内容について紹介します。 コードについては、改善の余地があるため随時修正していくと思います。 → github: https://github.com/koutalou/iOS-CleanArchitecture iOS開発においてよくある問題点 「ビジネスロジックはModelに置くべき」と言うが、開発者によって理解や意見がバラバラで統一的な実装ができない 度重なる仕様変更や複雑な仕様に対応するためにViewControllerや特定のModelが肥大化し、ビジネスロジックの質を見失う MVC,MVP,MVVMだけで考えると、どこかのレイヤが複数の責務を持つことになり依存度の高い複雑なコードが生まれてし

    まだMVC,MVP,MVVMで消耗してるの? iOS Clean Architectureについて - Qiita
    pmint
    pmint 2018/09/29
    図のやっつけ感がすごい。双方向依存しないのが売りのはずなのに、双方向矢印書いてるし…と思ったら、その売りさえ書かれてない!
  • 持続可能な開発を目指す ~ ドメイン・ユースケース駆動(クリーンアーキテクチャ) + 単方向に制限した処理 + FRP

    この記事は、開発を持続可能にできるようなアーキテクチャとその適用方法を考察するものです。 骨子はできていますが、実装経験をフィードバックして詳細を若干変更するかもしれません。 勉強不足な点もあるので、意見を歓迎します。 開発においてよくある問題点 ビジネスロジックの質が何だったか見失う。ソースコードのどこまでが業務上の関心で、どこからがそれを実現するための技術上の関心か分からなくなる。 入出力双方向の処理が散在して処理が追い切れなくなる。特にイベント処理でどこに飛ぶかわからないコールバック地獄になる。 初期化・つなぎ込み・統合者的オブジェクトが小さな機能単位で生まれて統一感が無くなる。 状態を持つ値が大量に散在して副作用を起こしバグを生む。 これらの問題の結果、小さな単位ごとに個人のノウハウで"良い"設計がされ、機能を追加しようとしたときにどういう方針で行えばよいか分からなくなる。 解決

    持続可能な開発を目指す ~ ドメイン・ユースケース駆動(クリーンアーキテクチャ) + 単方向に制限した処理 + FRP
    pmint
    pmint 2018/09/29
    嘘くさい図が有名なクリーンアーキテクチャー。2クラス間の双方向依存は、間に別のクラスを挟んで単方向化(!)。この"Usecase"は"God"にしたほうがいいかと。結局「モデルは他の層に依存しない」としか言ってない。