give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

サンプルコード

【動画付き】Everyday RailsのサンプルアプリをRails 6で動かす際に必要なテストコードの変更点

はじめに 前々回のブログでは、2019年10月時点における「Everyday Rails - RSpecによるRailsテスト入門」(以下、Everyday Rails)のサンプルアプリケーションの環境セットアップ手順を紹介しました。 blog.jnito.com ただし、この手順に従ってもサンプルア…

ブログデザインをちょっとだけ変えてみました

致命的な問題では無いけど、以前からなんとなく「直したいなー」と思っていたブログデザインを少し修正してみました。 PC向け画面 画面幅の拡大 ベースにしているテーマはEpicです。 デフォルトのままだと本文の横幅が少し狭い気がしたので、50pxほど広くし…

Rubyでハッシュを別の形式のハッシュに変換する方法

2012.4.6 追記 えーっと、このエントリを公開したらコメントにて最強の変換方法を教えていただきました。 p Hash[initial_hash.map { |k,v| [@convert_table[k], v] }] わざわざメソッド化しなくても、これなら一撃必殺ですね。 keyesberryさん、どうもあり…

ラムダ(lambda)を使ったアキュムレータ(累積器)

今読んでる「ハッカーと画家」にこんなRubyのサンプルコードが載ってました。 def foo(n) lambda {|i| n += i} end 本の解説によるとこれは「数nを取り、『数iを取ってnをiだけ増加させ、その増加した値を返す関数』を返す関数」というアキュムレータ(累積器…

OracleやSQL Serverでテーブルやストアドの一覧を取得する

たまに仕事で使う時があるので、自分用の備忘録として書いておきます。 なお、これらのSQLを発行する際は特別な権限が必要な場合があります。 SQL Serverでテーブルやストアドの一覧を取得する 目的のデータベースにて以下のSQLを実行します。 typeが略称に…

CSVファイルのヘッダー行だけを置換するPerlワンライナー

はじめに CSVファイルのヘッダー行だけを置換するPerlワンライナーを作ってみました。 下の例では列名に含まれるスペースをアンダーバーで置き換えています。 2行目以降のデータは置換されません。 DBD::CSVモジュールでは列名にスペースが入るとダメみたい…

PerlとVBScriptでテキストファイルの文字コードを変換する

自分の作業メモです。 テキストファイルの文字コードを定期的に変更する必要があったので、スクリプトを書くことになりました。 変換元はUTF-8、変換先はShift_JISです。 最近Perlに慣れてきたので、最初はPerlで書いてみました。 use Encode; open my $r, '<:encoding(UTF-8)', 'utf8.txt'; open my $w, '></:encoding(utf-8)',>…

Splitっぽい処理をSQLで実現する

普通のプログラミング言語だと簡単に実装できるのに、SQLだとなんか作りにくいぞ?というこんな問題がありました。 特定の文字(今回はドット".")で、一つの文字列を3つのカラムに分割する ただし、文字列に含まれるドットの数は決まっていない。(0個〜無制限…

Lucene.NetをC#で使ってみた

とある案件でデータベースのLIKE検索よりも全文検索を使ってみたほうが良いのではないか思うものがあったので、全文検索について調べてみました。 .NET環境ではLucene.Netというツールがあるみたいです。 全文検索エンジン「Lucene.Net」を使う http://www.a…

アスキー文字をURLエンコードするJavaScript関数

JavaScriptには標準でいくつかURLエンコードをしてくれる関数がありますが、一部の文字はエンコードされずにそのまま残ったりします。 そこで四の五の言わずに全部エンコードしてくれ〜!という場合に使えそうな関数を作ってみました。 //すべてのアスキー文…

なんちゃってデザインパターンで条件分岐をなくす

昨日会社のメンバーからコーディングについて相談を受けました。 話を聞いていると、オブジェクト指向設計を利用してコードをリファクタリングしたい様子でした。 彼は頑張ってインターフェースやクラスを自分で定義していたんですが、ちょっとぎこちない設…

SharePointの入力フォームをJavaScriptで操作する方法

以下のページに説明があります。 http://arichterwork.blogspot.com/2008/07/customized-input-forms-javascript.html たとえばクエリ文字列で値を受け取って、それをデフォルト値としてテキストボックスに設定したりできます。 ポイントは入力フォームにCon…

Visual Studio 2003から2005への移行

今日はASP.NETアプリケーションをVisual Studio 2003から2005へ移行するための技術調査をやっていました。 ところどころでハマってしまったので、メモを残しておきます。 基本的には2003のslnファイルを2005で開き、ウイザードに従ってコンバートします。 た…

データベース内のストアドのソースコードを取得するSQL

SQL Server用のSQLです。 SELECT SPECIFIC_NAME AS NAME, ROUTINE_DEFINITION AS SRC FROM INFORMATION_SCHEMA.ROUTINES ORDER BY SPECIFIC_NAME

C#からAccess MDBのパススルークエリ情報を取得するサンプルコード

続いてAccess用のサンプルコードを紹介します。 事前にCOMの「Microsoft Access 11.0 Object Library」みたいなのを参照設定しておきます。 MS AccessがローカルPCにインストールされてある必要があります。 で、こんな感じのコードで情報が取得できます。 u…

C#からDTSの情報を取得するサンプルコード

事前にCOMの「Microsoft DTSPackage Object Library」みたいなのを参照設定しておきます。 たぶんEnterprise Managerかなんかがローカルにインストールされてある必要があるんじゃないかと思います。 で、こんな感じのコードで情報が取得できます。 using Sy…

ストアドの実行権限を調べるストアド

こんな方法でチェックできるようなのでメモメモ... EXEC sp_helprotect '(ストアド名)', @permissionarea='o' 実行結果 Owner Object Grantee Grantor ProtectType Action Column dbo (ストアド名) (権限が付与されているロール) dbo Grant Execute . dbo (…

DISTINCTされた結果の件数を求めるSQL

DISTINCTされた結果の件数、つまり種類の数を求めるSQLは以下のようになる。 ※サンプルコードはSQL Serverの場合 create table #temp( col1 int, col2 varchar(2) ) insert into #temp values (1, 'a') insert into #temp values (1, 'a') insert into #temp…

累積値を求めるSQL

SQL Server用のロジックとして書くとこんな感じ。 クエリの構造自体は他のRDBMSでも使えるはず。 SQL create table #a (key_col int, val int) insert into #a values (1, 10) insert into #a values (2, 10) insert into #a values (3, 30) insert into #a …

T-SQLで文字列をURLエンコードするロジック

This is test. !"#$%&''()-=^~\|@`[{;+:*]},/?\_ ↑こんなのが %54%68%69%73%20%69%73%20%74%65%73%74%2e%20%21%22%23%24%25%26%27%28%29%2d%3d%5e%7e%5c%7c%40%60%5b%7b%3b%2b%3a%2a%5d%7d%2c%3c%2e%3e%2f%3f%5c%5f ↑こんな感じに変換されます。 ただし制限…

SSISからExcelを読み込む方法

技術メモです。 SSIS(SQL Server Integration Services)でExcelを読み込む場合、クライアントではうまく動作してもサーバーにデプロイすると、エラーが出て動作しない場合があります。 そんなときは以下のような問題があるかも。 64bit版SQL Serverではうま…

型付DatasetのConnectionStringを実行時に変更する方法 - C# 2.0版

型付DatasetのConnectionStringを実行時に変更する方法 ↑のページのサンプルコードを利用させてもらおうと思ったら、C# 3.0用だったのでこちらの環境では使えませんでした。 なので、C# 2.0用に書き直してみたのがこれ↓ System.Reflection.PropertyInfo prop…