比較演算子に「#」を付けずに使用した場合は、ignorecaseの設定次第で動きが変わります。ignorecaseは、大文字小文字の区別を無視するオプションです。デフォルトでは無効になっているので、大文字小文字を区別して比較します。ignorecaseを有効にするには :set ignorecase を設定します。 ユーザの設定によって比較処理の動きが変わらないように、基本的に「#」で大文字小文字を区別するようにしておくと良いです。 バッファについて バッファはメモリ上にロードされたファイルのことです。バッファには名前と番号があり、名前はファイル名で、番号は作成された順で割り当てられます。バッファは:bwipeoutで明示的に削除するかVimを終了しない限り、メモリに残ります。 バッファの存在チェック bufexists({expr})で{expr}のバッファがあるかを確認できます。ある場
Kenneth Lane Thompson was the principal inventor of UNIX. Even today, more than 35 years later, UNIX and its descendants are still widely regarded as the best computer operating systems to have ever been developed.1 Thompson was born in 1943 in New Orleans, Louisiana and spent his childhood as what he called a navy brat. He received his Bachelor's and Master's degrees, both in electrical engineeri
競技やったりセキュリティ勉強したりといろいろな分野に手を出しすぎている感は否めませんが、とりあえず今回はセキュリティのことについて書きます。 脆弱性としてもっとも基本的なものとして「バッファオーバーフロー」が挙げられます。自分の書いたプログラムでちょっと実験してみます #include<stdio.h> #include<stdlib.h> #include<string.h> int check(char *pass){ int accept=0; char pass_buffer[16]; strcpy(pass_buffer,pass); if(strcmp(pass_buffer,"RKX1209")==0) accept=1; return accept; } int main(int argc,char *argv[]){ if(argc<2){ printf("使用方法:%s
コラム概要 ■こんな方におすすめ アプリのセキュリティについて少し踏み込んだ内容を知りたい アプリの脆弱性について知識をつけたい 開発/技術担当の方 ■難易度:★☆☆ ■ポイント: C /C++言語には想定以上の量の数値・文字列が入力されることで関数を上書きしてしまう バッファオーバーフローがある。 バッファオーバーフローを悪用した攻撃では、悪意あるコードの実行が可能である。 脆弱性を防ぐために、プログラム言語の問題について知り、適切に対策することが重要である。 1.はじめに プログラムを書く際、気を付けなければならないポイントはたくさんありますが、 その中の一つにプログラミング言語特有の問題というものがあります。 今回は時に誤動作や不正な動作を引き起こす、 C/C++言語に特有のバッファオーバーフローについて解説したいと思います。 2.バッファオーバーフローとは? バッファオーバーフロー
Google が開発したプログラミング言語です。「Go言語」や「Golang」と表記されます。 UNIX、B言語(C言語の元)、UTF-8の開発者ケン・トンプソンや、UNIX、Plan 9、UTF-8の開発者ロブ・パイクによって設計されました。 静的型付け、メモリ安全性、ガベージコレクションを備えるコンパイル言語です。 シンプル、高速、メモリ効率が良い、メモリ破壊が無い、並行処理が得意などの特徴を備えています。 メモリ破壊が無く、並行処理を得意とする、進化したC言語という側面があります。 Linux、Mac OS X、Windows、Android、iOS で動作します。 おおよそ半年に一度バージョンアップを行っているようです。このページは Go 1.14 をターゲットに記述しています。 Go 1.18 2022年3月15日 速度改善、ジェネリクス、ファジングテストツール、ワークスペースモ
はじめに go mod周辺を理解してないとGo言語使った開発辛いと思うんですが、ネットの日本語情報少なくないすか? 最近はGOPATH使わないと思うんですが、古い情報が引っかかってきて、検索するのが辛いです。GOPATH使う時とgo mod使うときの比較情報も、あたらしくGo言語やる人的にはいらないと思うし。変更点は良いから、最新版の体系的な情報をくれよ、ってなってました。 新しく環境作るとき、自信ないままやってるんで、調べながらすこしまとめてみました。自信ないのはあんまり変わってませんが。。。 ちなみに、僕は、Go言語に入門して半年くらいで、なんとなく、3冊くらいGo言語の本読んだ状態です。goroutineとかわからん。 基本的には、ここらをなんとなく読んだ知識を整理してます。 Tutorial: Get started with Go - The Go Programming Lan
テキストエディター「Vim」用のカラースキームギャラリー。お気に入りのカラースキームを見つけよう。 カラースキーム(テキストエディターの配色)が好きすぎて、「どうしたら自動的に最新情報が集まるだろうか?」と考えた末、リコメンド機能付きのギャラリーを制作することに。カラースキーム好きが厳選した配色のみを掲載し、情報提供者の集う場を作る。 サーバー側はSinatraで軽めのアプリを立ち上げつつ、クライアント側は「Googkit」経由でClosure Libraryを利用。自作のVimプラグイン群を駆使して独自の方法でカラースキームの色情報を収集することにより、非表示文字や行番号など細かな配色までしっかり確認できるようになっているのが特徴。 3年間に渡る安定運用を経て、後継となる「colorswat.ch」へ移行した。
Go 言語の IDE 機能を得る為に何か知る必要はありません。Java の IDE 機能を得る為に何か知る必要はありません。HTML の IDE 機能をインストールする為に npm コマンドの使い方を覚えたり、LaTeX の IDE 機能をインストールする為に、配置場所を考える必要もありません。もしインストールを実行しても動かなかったら、それは vim-lsp-settings のバグです。 以前まででれば vim-lsp を導入すると Language Server の登録が必要でした。 if executable('gopls') au User lsp_setup call lsp#register_server({ \ 'name': 'gopls', \ 'cmd': {server_info->['gopls']}, \ 'whitelist': ['go'], \ }) au
キーマップに使えるキー名の一覧 nmap や imap コマンドなどで特殊なキー(F1 キーや BackSpace キーなど)を使用したマッピング定義を行いたいときに、どのような名前で記述すべきかの一覧は、下記のヘルプページで参照することができます。 例えば、特殊キーを表すために次のような表記が使えることがわかります。 <BS>: Back Space キー <Bslash>: Back Slash キー <CR>: Enter キー(<Enter> でもOKだけど <CR> がよく使われている) <Esc>: Esc キー <Space>: スペースキー <Tab>: Tab キー <Del>: Delete キー <Up>/<Down>/<Left>/<Right>: 上下左右カーソルキー <F1>-<F12>: ファンクションキー(F1からF12) <Help>: Help キー <
はじめに 以下の記事では、僕の Vim の構成について記述しています。本来はこの記事で vim-lsp の導入方法と私的 Go 編集環境について書こうと思っていましたが、あまりにも長くなってしまったので別途書く事にしました。僕は Windows と Linux しか使わないので、皆さんの環境で使うとうまく動かない可能性があります。また僕は最新の Vim 8 しか使いません。古めの Vim を使いません。neovim も使いません。それらをお使いの方はうまく動かない可能性があります。ご了承下さい。なお設定ファイルの配置スタイルは完全に僕個人の趣味ですので必ずしも僕の構成が正しい訳ではありません。 ぼくのかんがえたさいきょうの Vim こうせい Vim の設定は vimrc に記述するのですが、その設定方法には「汚くさせない」ための工夫が必要だと思っています。以下は僕が行っている「vimrc
筆者は普段ターミナルで単語を削除するのにCTRL-wを使用することが多いので、Vim上でターミナルで単語を削除するのにCTRL-w .はとても不便と感じています。そこで、:set termwinkey=<C-g>でプレフィックスキーをCTRL-gに割り当てることで、Vim上のターミナルでもCTRL-wで単語を削除することができるようにしています。termwinkeyの設定も永続化するにはvimrcに記載する必要があります。次の動画ではtermwinkey変更前のと後の差異を確認する例になります。 Terminal-Normalモード Vimのターミナルの強みの一つはTerminal-Normalモードです。このモードはターミナルの出力を一時的に保留し、Vimの制御下に置きます。Vimの制御下に置くことでウィンドウ内の内容をヤンクしたり、検索することができます。例えばコマンドの実行ログをメモ
こんにちは、AWS事業本部コンサルティング部に所属している今泉(@bun76235104)です。 皆さんはアルゴリズムと数学に強くなりたいですか? 私はなりたいです。 時間を見つけては、ちょこまかとAtCoderという競技プログラミングのサイトの過去問を解いたり、実際にコンテストに参加したりしています。 今回も2022/8/27に開催された AtCoder Beginner Contest 266 というコンテストに参加してみたので、その時の記録や自分がどう考えてどのようなコードを出したのかなどをご紹介させていただきます。 前置き・事前知識 AtCoderとは何か・どのようにして問題を解くのかといったことに関しては、以下の記事をご参照ください。 ※ 本記事はあくまで私がAtCoderに参加した結果を記載しており、会社全体が私と同じレベルということではありませんことご承知おきください。 想定
autocmd(自動コマンド)の機能を使用すると、様々なイベントの発生を監視し、そのタイミングで自動的に任意の処理を実行することができます。例えば、ファイルを開くときに、拡張子の種類に応じた設定を行うといったことが実現できます。 はじめに(autocmd の概要) autocmd コマンドを使って自動コマンドを登録しておくと、ファイルオープン時、ファイル保存時、フォーカス取得時、カーソル移動時など、様々なタイミングで任意の処理を行えるようになります。 例えば、下記のようなことが行えます。 プログラミング言語のソースファイルを開いたときに、その言語に適したインデントモードを設定する 圧縮されたテキストファイルを開いたときに、自動的に解凍してテキストを編集できるようにする(保存するときに再び自動で圧縮する) ノーマルモードに戻った時に、IME(日本語入力モード)をオフにする 日記ファイルを開い
はじめに 機械学習で登場する確率分布について色々な角度から理解したいシリーズです。 この記事では、ベータ分布の正規化項を導出します。 【他の記事一覧】 www.anarchive-beta.com 【この記事の内容】 はじめに ベータ分布の正規化項の導出 定義式の確認 ベータ関数の積分計算 ベータ関数の性質 離散値の場合 連続値の場合 ベータ分布の積分計算 参考文献 おわりに ベータ分布の正規化項の導出 ベータ分布(Beta Distribution)の正規化項を導出します。正規化項は、正規化係数や規格化定数(normalization constant)などとも呼ばれます。ベータ分布については「ベータ分布の定義式 - からっぽのしょこ」を参照してください。 定義式の確認 まずは、ベータ分布の定義式を確認します。 ベータ分布は、ベータ関数を用いて、次の式で定義されます。 $$ \mathr
はじめに 今更ですが、word2vecの高速化の計算手法である「Negative Sampling」について復習しました。 世は完全に「Transfomer」の趨勢ですが、勉強のために復習しました。 前に「階層的ソフトマックス」を説明している論文を読んでいて、これってどう実装すれば良いのかと思い、せっかくなので「Negative Sampling」も実装してみようと思ったのが、モチベーションです。 今回はnumpyを使用して、簡単な実装だけを行いました。 ※簡単のため、正確ではない部分もあります。 後、word2vec、Negative Samplingの解説自体は既にたくさんの良記事があるので、詳しくは述べません。 全単語の出現確率の計算 ある単語が与えられた時、ターゲットとなる単語が出現する確率を求めます。 などは隠れ層の出力であり、(は隠れ層の次元数)のベクトルとなります。 この辺に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く