2015年6月16日 (火)

[Programming] Bootstrap 3 で input タグのボタンの glyphicon 追加

すぐには例が見つからなかったので、メモ。 .has-feedback クラスを持つ div で囲って、input と glyphicon をその中に書く(とよさそう)。

<div class="form-group">
<div class="input-group has-feedback">
  <input type="button" class="btn btn-primary form-control" value="ダウンロード">
  <span class="glyphicon glyphicon-download form-control-feedback"></span>
</div>
</div>

| | コメント (0) | トラックバック (0)

2015年3月21日 (土)

[プログラミング] ** 演算子 in Scala

Int のメンバーとして ** を定義してあげればいいみたいなので、調べてみたら implicit conversion を使えばいいらしい。 こんな感じ。

import scala.language.implicitConversions

class DoubleWithPow(d: Double) {
  def **(n: Double):Double = Math.pow(d, n)
}

object Pow {
  implicit def toDoubleWithPow(d: Int) = new DoubleWithPow(d)

  def main(args: Array[String]) {
    var i = 3
    var n = i ** 2;
    println(n);
  }
}

| | コメント (0) | トラックバック (0)

[プログラミング] ** 演算子 in Java and Scala

あれっ。そうか。**演算子は Java には、なかったのか。

$ cat pow.java
class Pow {
    public static void main(String... args) {
        int i = 3;
        int n = i ** 2;
        System.out.println(n);
    }
}
$ javac pow.java
pow.java:4: error: illegal start of expression
    int n = i ** 2;
               ^
1 error

てことは、Scala にもないかな。

$ cat pow.scala
object Pow {
  def main(args: Array[String]) {
    var i = 3;
    var n = i ** 2;
    println(n);
  }
}
$ scala pow.scala
/mnt/usbhd/xvd/t/pow.scala:4: error: value ** is not a member of Int
    var n = i ** 2;
              ^
one error found

やっぱり。でも、エラーメッセージは違うね。

| | コメント (0) | トラックバック (0)

[プログラミング] volatile in Java

Java にも volatile なんてあったのか。知らなかった。

| | コメント (0) | トラックバック (0)

2015年3月13日 (金)

[プログラミング] 今さらScala

今さらかも知れないけれど、Scalaをちょっと触ってみた。

Scala は「スカラ」と読むらしい。 Scalability から取っているらしいので、「スケイラ」と読むのかと思った。

実行するには、Javaの実行環境が必要。

確かにJavaよりは生産性が高そう。

Scalaっぽい書き方は、良くわからないけれど、ちょっとRubyっぽいところもあって Ruby使っていれば、そんなに抵抗なくScalaに入っていける気がした。

| | コメント (0) | トラックバック (0)

2012年10月 7日 (日)

[Program] 今さらながら『体系的に学ぶ 安全なWebアプリケーションの作り方』を読むために準備をした

体系的に学ぶ 安全なWebアプリケーションの作り方』には実習用の仮想マシンがあるのだけど VMWareの仮想環境で、ホスト環境はWindowsを想定している。

自分の環境は、Ubuntu 10.04 で VirtualBoxを使っているので、それに合わせて環境を準備してみた。

まずは仮想マシン。

『体系的に学ぶ 安全なWebアプリケーションの作り方』の仮想マシンを VirtualBox で使うが非常に参考になった。 基本的には、同じ手順で仮想マシンを作って /etc/udev/rules.d/70-persistent-net.rules の eth0 と eth1を入れ替えれば良いのだけど ちょっとだけ違うのは、

vboxmanage clonehd -format VDI wasbook.vmdk wasbook.vdi 

で、vdiに変換したこととネットワークはホストオンリーにしたこと。どうせ、ホストサーバ以外とは接続させるつもりはないし。

次にFiddler。

Googleで調べるとWireSharkで代用するという意見があったので、

$ aptitude install wireshark

でWireSharkをインストール。他にもJavaで動くツールがいくつかあるみたいだけどパス。

wiresharkは一般ユーザでは実行できないようなので、 Wiresharkのインストールと設定 を参考にして

$ sudo addgropu wireshark
$ sudo chgrp wireshark /usr/bin/dumpcap                         
$ sudo chmod 754 /usr/bin/dumpcap                               
$ sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
$ sudo adduser myusername wireshark                                   

としてログインし直して実行できることを確認。

HTTPリクエストの書き替えは、Firefoxの Tamper Dataで。

もしかして、Tamper Data があれば、Wireshark は不要?

URIのデコードとかBase64のデコードは、Rubyを使って

$ pry
[1] pry(main)> require 'uri'
[2] pry(main)> require 'base64'
  ...
[5] pry(main)> URI.decode(uri_string) [6] pry(main)> Base64.decode64(base64_string)

なんかで。 Fiddler1本という訳にはいかないけど、これで何とか自分の環境でも読み進めることができそう。

| | コメント (0) | トラックバック (0)

2012年10月 1日 (月)

[Program] Perl 4

とある事情により、Perl4 を触っている。 なんか触れば触るほど、自分がPerl嫌いであったことを改めて思い出してきた。 今まで嫌いであることすら忘れていたというのに。

配列を連想配列(ハッシュ)の値に設定して、その連想配列(ハッシュ)の配列を扱うには、どうすればいいんだろう。 Perl5だと何とかできたんだけど、同じスクリプトをPerl4 で実行するとシンタックスエラーで終了した。 もう、$ とか @ とか % とか \ とか * とか、{} とか [] とかどれをどこで使えば良いのやら、さっぱりわからない状態。

あと、

if (/^\s+(\S+)/ =~ $_ ) {
   ....
}

とか

$array = split($_, /\s+/);

みたいな書き方をしてハマった。(2番目の例は、右辺も左辺も自分の意図したものとは違っている。)

あと文字列の比較は、eq を使って、数値は、 == を使うとか、そんなこともすっかり忘れていた。

| | コメント (0) | トラックバック (0)

2011年6月29日 (水)

[Program] VB.Net で VBScript の Eval

VB.Net でVBScriptのEval(Ruby の eval)みたいなものは無いのかと思ってちょっと調べてみたが 関数一発でできるというものではないらしい。 ライブラリみたいなのは公開されているっぽい。

結局、今回は、FindControlを使えることがわかったので、それを使うことにした。

FindControl って、ObjectDataSource のIDを渡せばちゃんとObjectDataSourceでも見つけてくれるのね。 知らなかった。 てっきり、見つけてくれるのは、Webのコントロール(GUI部品)だけだと思っていた。

| | コメント (0) | トラックバック (0)

2009年12月 2日 (水)

[Program] DataRowView と DataView (ADO.NET)

foreach でループするとき直接やればよかったのか。

DataView dv;
...
foreach(DataRowView drv in dv)
{
    ...
}

DataView.Rows や DataView.Items みたいなのがなくて途方に暮れてしまった。

| | コメント (0) | トラックバック (0)

2009年10月 2日 (金)

[Program] 日付の入力項目

日付の入力項目をデータベースに保存する場合、Date型 とか Datetime型 みたいないわゆる日付型でスキーマを定義しておくのと varchar(8) (YYYYMMDDを想定) とか varchar(10) (YYYY/MM/DD、YYYY/M/D などを想定) で定義しておくのとどちらが一般的なんだろう。

私は日付が入力される(べき項目)であれば、日付型を採用しているのだけどな。

| | コメント (0)