新米エンジニアの失敗再発防止メモ

自分そしてこの世界の皆が、同じ失敗をしないためのメモ

Twitterやってます!@rakuton_t
欲しいものリストのブタメンを送ってくれた方、ありがとうございます!

プログラミング

優秀なシステムエンジニアである条件(開発メンバー編)

年商がほぼ1000万円になったので記念に書きます。 私の現在の現場でのロールは開発メンバーです。 私が優秀なエンジニアであるという前提です。というか私のやってることを書き殴ってるだけの記事です。 まぁ、私は優秀なので問題はないでしょう。 ただしこ…

【Angular】ページリロードや直リンクされたときに強制的にトップページに戻す方法

方法 app.component.ts のコンストラクターでトップページのURLに遷移する処理を書いてあげれば良いです。 実際のコードは下記になります。app.component.ts import { Component } from '@angular/core'; import { Router } from '@angular/router'; @Compon…

VSCodeで閉じタグ(終了タグ)の自動補完を無効(有効)にしたいとき(ファイルの種類別の設定も可能)

VSCode閉じタグ(終了タグ)の自動補完を無効または有効にしたい時の対処方法について解説します。 特定の種類のファイル 目次 閉じタグ(終了タグ)の補完についての設定方法 setting.jsonの開き方 閉じタグ(終了タグ)の補完についての設定方法 setting.jsonに…

【Angular】セレクトボックスでoptionのvalueにオブジェクトを指定したい場合

言い換えれば、select要素(選択要素)のvalueにプリミティブ型以外を指定したい場合。 または、セレクトボックスに値をセットしているのに値が変わらない場合などに見ると良い記事です。 オブジェクトを指定している場合、ngValueを使わないと値が正常に切り…

Angular(に限らない)のhtmlファイルで不要な警告が出てしまう件

問題の事象 VSCodeでAngularプロジェクトを作成すると、htmlファイルで下記のような警告が出てしまって、邪魔だと思います。こんなのや Doctype must be declared first.(doctype-first)こんなの The attribute name of [ *ngIf ] must be in lowercase. 解…

【python】BeautifulSoupでタグの中身の文字列を取得するときにtag.stringよりも使用すべきメソッド

BeautifulSoupでタグの中身の文字列を取得するときに使用すべきメソッド tag.string よりも tag.get_text() を使用すべきです。 tag.string よりも tag.get_text() を使用すべき理由 例えばこんな感じのソースコードがあるとする。 import urllib.request, u…

SyntaxError: can't assign to operator (変数宣言時)

変数宣言時に下記のエラーが発生しました。 SyntaxError: can't assign to operatorこのエラーメッセージ日本人にはちょっと意味がわかりにくいと思います。 注目すべきは「operator」ですね。 プログラミングにおいて、このキーワードが出てきた時は大抵の…

Chromeの拡張機能を開発して詰まったところ

昨日、初めてChrome拡張機能を公開申請しました。 現在は審査中です。 審査が通ったら改めて公開した拡張機能について記事を書きます。審査が通りました。 【Chrome拡張機能】「Black List Site」を公開しました。 - 新米エンジニアの失敗再発防止メモ コン…

【TypeScript】小数点以下の四捨五入・切り上げ・切り捨て(小数点じゃなくても出来る)

ずばりこうする javascriptでのやり方がそのまま使えます。 Math.round(x: number) // 四捨五入 Math.ceil(x: number); // 切り上げ Math.floor(x: number); // 切り捨てを使いましょう。特にモジュールをimportする必要はありません。 蛇足 typescript 小数…

スマホだとbootstrapのモーダルが出ない時の対処

bootstrap4を前提に話しますが、3でも同じだと思います。 ダメな例 Aタグを使うとスマホだと無理みたいですね。 <a class="btn btn-primary" data-toggle="modal" data-target="#myModal"> ココを押すと表示...のはずだがこれだと出ない。 </a> <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> </div>

Angular7でscriptタグを使う方法。Stripeのタグを例に解説

Angularで、scriptタグを普通にHTMLに書いても、描画時にscriptタグの部分が消えてしまって処理が実行されません。 それでもscriptタグを埋め込みたい場合の方法を解説します。Angular6でも多分大丈夫な方法です。 今回は、Stripeのタグを例に解説します。 s…

【Angular】Uncaught (in promise): Error: StaticInjectorError[e] の原因と解決方法について

エラー出力内容(抜粋) ERROR Error: Uncaught (in promise): Error: StaticInjectorError[e] 「uncaught (in promise) error」の原因と対応方法 app.module.ts で、必要なモジュールがimportされていない時に発生します。 私の場合は、Httpを使おうとした…

【Python】AWS Lambdaで標準以外のモジュールを使用する。

【Python】AWS Lambdaで標準以外の外部モジュールを使用する。 以下は、python3が前提です。python2でもほとんど変わらないと思いますが。 ずばりこうする AWS Lambdaでインストールするコマンドは打てないので、ビルド済みパッケージをアップロードすれば使…

【python3】time.strptimeでエラーdoes not match formatの原因と対処法

問題の起きたコード Twitter API でツイートの投稿時間(created_at)を日本時間(△年〇月×日)に変換しようとした時のコードです。 import time, locale, calendar def getTimeFormat(twitterTime, format): formatTime = "" try: time_utc = time.strptime(twi…

【HTML+CSS+Javascript+JQuery】要素の幅に合わせて高さを変える方法

JQueryは必須じゃありませんが、JQuery使った場合は以下のようになります。 ずばり、こうやる <script type="text/javascript"> // 初期サイズ var w = $("#要素ID").width(); // 要素の横幅を取得 $("#要素ID").height(w * (縦横比)) // 要素の高さを計算して設定 // 画面サイズの変更検知…

【python3+tweepy】TweepyではDM(ダイレクトメッセージ)を操作できない

TweepyではDirect Messageの送信・取得などの操作ができない python3のライブラリ、TweepyはTwitter APIのバージョンアップに対応しきれていないからだ。DMを送信する古いエンドポイント POST https://api.twitter.com/1.1/direct_messages/new.json新しいエ…

【python】TypeError: 'encoding' is an invalid keyword argument for this function

Linux、ubuntuでの話です。 python3を使うつもりの人が対象です。 ファイル入出力でエラー with open(filename, encoding='utf-8') as f: TypeError: 'encoding' is an invalid keyword argument for this function python2を使っていないか? open関数でこ…

【Angular】subscribeの処理はコンポーネント側で定義しなければならない

subscribeの処理はサービスクラス側で定義できないようです サービスクラス側で定義しても動きません。例えばFirebaseのリアルタイムデータベースからユーザー情報を取得する処理を実装するとします。 UserServiceクラスを作成するとします。[UserService.ts…

Angularの勉強会に参加してきます!【Angular で始めるモダン Web 開発セミナー】

こちらのセミナーに参加してきます。 connpass.com主催は Satoru Yamaguchi さん Neri78 さん です。開催日時 2018年12月06日 (木) 14:00 - 17:00 参加費は無料。参加すれば私と会えますよ(笑) 参加する理由 私、最近Angular勉強し始めてまして、ちょっと…

【ASP.NET】UpdatePanelのポストバック時にもJavascriptを実行する方法

ASP.NETでJavasScriptを使うときの話です。 これだとUpdatePanelのポストバック時に実行されない。 非同期通信なので <script type="text/javascript"> (function () { //処理 }()); </script>ページを開いたときは動くけど、ポストバックしたときは動かない。 ポストバック時に実行したいなら、pageL…

DBにInsert(挿入)した順番にソートして参照する簡単な方法

前提 これからInsertするデータが前提です。 既にInsertしたデータについては、どうやるか知らないです。 ずばりこれ オートインクリメントの属性を持つ列を追加する!sql serverでやる場合はこちらが分かりやすいです。 テーブルの列を自動インクリメント列…

TypeScriptでHtmlElement型が認識されない場合の対処

Angularやってて、詰まったのでメモ 問題 コード var content: HTMLElementビルドエラー Cannot find name 'HtmlElement'. 解決策 domをインストール $ npm install domそしてimport import { HtmlElement } from 'dom';はいちゃんちゃーん それでもダメな時…

【C#】【ASP.NET】大なり「>」小なり「<」記号を表示するスマートな方法

例えばこれをページに表示したいとする <tag attr=\"hoge\" /> スマートじゃない例 &lt;tag attr="hoge" /&gt;パッと見、タグを表現していることが分からないですね。 スマートな例 <%: "<tag attr=\"hoge\" />" %>こちらは一目見てタグをテキストで表示しようとしているのが分かりますね。 さいごに 結</tag></tag>…

【SQL Server】SELECTやUPDATEが極端に重いときの対処

ずばりこれをやれば良い EXEC sp_updatestats; --DB単位で実行OR UPDATE STATISTICS <テーブル名 or インデックス付きビュー名>; 統計情報を更新 上記のクエリを流すことで、「統計情報」というものが更新されます。 これは、SQL Serverで内部的に保持してい…

C#のバージョンが低くてTupleが使えないときの対処

C#7.0より前のバージョンではTupleが使えません!そんな時は自分で実装してしまいましょう! C#2.0以降ならばジェネリクスが使えるので可能です! public class Tuple<T1,T2> { public Tuple(T1 v1, T2 v2) { this.Item1 = v1; this.Item2 = v2; } public T1 Item1 </t1,t2>…

エクセルのマクロは「VB」ではなく「Excel VBA」

特定のセルの中に特定の文字が含まれているかを判別したくて、 「VB 文字列 含む」とかで検索して出てきたページを参考に、以下のようなコードを書いてしまいました。 Dim str As String str = Cells(1,1).Value If str.IndexOf("u") >= 0 then Cells(1,2).V…

【JavaScript + JQuery】DOMの変更を監視するリスナー「domsubtreemodified」について

特定のページで面倒な操作を自動でやりたいときなど、拡張機能を作成すると思います。 リンクやボタンをクリックした時に、ページ遷移じゃなくてDOM全体がふわっと変わるような洒落乙なサイトも時々あって、そういうときって DOMが変更された時に反応して処…

WebClientでWebページの取得方法

ずばり、こう まずusingするもの using System; using System.Collections; using System.IO; using System.Net; using System.Net.Security; using System.Text; GETメソッドを使う場合 var html = ""; using (var wc = new WebClient()) { // SSL/TLSに対…

Repeaterコントロールの中で分岐処理(データーソースのデータを用いる)

やりたいこと <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> // ここでデータソースのデータを用いて分岐処理する </ItemTemplate> </asp:Repeater> 上記のように、Repeaterコントロールの中で、 データバインディング式を用いて分岐し、表示内容を制御したいとする。 問題点 普通にできそうだが、普通にできない。 hoge" ) {%> これだ…

LINE専用ブラウザからスマホのデフォルトブラウザに自動で遷移させる方法

LINEから遷移した場合にスマホのデフォルトブラウザで開く URLのGETパラメーターにこれを付けてあげれば良いです。 openExternalBrowser=1Webサイトの管理者が、 ブラウザを判定してLINE専用ブラウザだったらこのパラメータを付与してリダイレクトさせてあげ…

私の記事が役に立ったら、どうぞ何か買ってください!→ Amazon欲しいものリスト