忍者ブログ
  ちゃんとカテゴリ分けされておりませんので、 記事をお探しならブログ内検索が便利です。 ご活用くださいませー+.(≧∀≦)゚+.゚
Admin*Write*Comment
[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8

これまたすぐに忘れてしまう、ポスグレでのカラム追加です。

ALTER
TABLE [table] ADD COLUMN [column_name] [data_type];

ex.)
ALTER TABLE table_a ADD COLUMN new_field varchar(255);

データ型を変えたい場合はこちら

検証)
PostgreSQL 9.3.5

拍手

PR




「ウンコ 言語」と検索すると多くはPHPが上位独占状態…
はたしてPHPはウンコな言語なのでしょうか?

どこをウンコと感じるのでしょうか。
記事を読んでみると。。。
なんだか、クレーマーに近い感じ…

例えば、参照について。
http://ameblo.jp/nikko-inma/entry-11122429825.html
えーと、全くその仕様だったとして、困るような場面が思いつきません。。。
そんなにみなさんこんな使い方をするのでしょうか?

他にも関数が長すぎるとか。。。
子供なの?(苦笑)
オブジェクト指向ではないんですから、機能を関数だけで増やそうとした長くなってしまうのは仕方がないのでは?
無理に短縮して意味不明な記号になっても困りますし。。。

三項演算子についても苦言が多いですね。
なぜ、PHPという1言語として成り立っているのにほかの言語とわざわざ仕様を合わせないといけないのでしょうか?
「普通こういう結果が返ると思うだろ」とか言っている人はきっと上流工程とかできない人だと思う。

あと
・(new ClassName())->method()
・配列の作成がarray()
・finnaly
は最近のPHPでは実装されつつあるので、問題ないでしょう。
そもそもfinnalyってそんなに重要かしら?
Exceptionのない(いいすぎ?)言語なのに(笑)
最近はPDOとかオブジェクト指向なものも出てきているけどね。


って、ところを踏まえて私がウンコだなぁ、って感じた点
※ 結局私もそれなりに汚臭の言語だと思ってます(笑)

・php.iniがある
これのせいで、私の環境では動くけど、他では動かない、みたいなのを生む。
よく、「言語は動くようにかけ」っていうけど、、、
正直つらい(笑)
ini_set()で逃げられるものも多いけど、ini_set()に渡せるものを把握しておかなきゃならない。
でもそれをしていたら比較的敷居の低い言語ってイメージが崩れちゃう。
簡単にコーディングできる代物なのか、そうじゃないのか。
そういうあいまいさ加減が気持ち悪い=ウンコなんでしょうね。

・エラーハンドリングがしにくい
何でもかんでもfalseが返る点。
全部戻りを取って確認しなきゃいけない。
if()の嵐。
コードも増えるし、可読性もさがっちゃう。
しかもものによってはthrowだというのだから切ない。
し・か・も、なぜ失敗したのかがわからない。
falseの一言でですべて空気読んでって感じ。
そんなことされたらリアルで「ふぇ~」って言っちゃいますよ(笑)

・そして最大のウンコ
後輩が書いたスクリプトの抜粋です。
$id = $_GET["id"];
var_dump($id["id"]);
WEBアプリケーションのGETパラメータでidがわたってくるのだけど、一桁の時は正常に動作し、
10以降になると1固定になるという報告を受けました。
※後輩は一桁でしかテストをせずリリースしてから障害報告で発覚しましたTT

10分くらい考えてたどり着いた答えがこれ
GETパラメータはすべてstringでわたるので$idにはstring(numeric)が入る。
$id["id"]のキー"id"はタイポなので本来ここでwarningが出てほしいけど、PHPは出ない(int型なら出る)。
結果はすべて1になる。。。
と、いうことは2ケタの数字の左側しかとられていないかも?
現にGETパラメータに20とか渡すと仮説通りに。
と、いうことは文字列のスライスが発生している(PHPにスライスがあるとは知りませんでした…)。
左の値がとられるということはINDEXは0が指定されている。
文字列"id"は0なるののでしょうか?
var_dump((int)"id"); //0
0になった (;゚Д゚)エエー.

と、いうことでPHPは初心者に優しいようで、厳しいです。
エラーが出にくい(見えにくい)アプリケーション作成を少しでも早く開発するならうってつけだと思いますが。
ですが、その分バグは多めかもしれません(~_~;)

と、さいきんかんじましたとさ♪

拍手




postgresqlにはdescがないので、informationスキーマにあるテーブルを逐一確認しなければなりません。
仕方ないことなんだけど…

-- テーブル一覧
SELECT
  table_catalog
  , table_schema
  , table_name
  , table_type 
FROM
  information_schema.tables 
WHERE
  table_schema = '[schema_name]'; 

-- カラム一覧
SELECT
  * 
FROM
  information_schema.columns 
WHERE
  table_schema = '[schema_name]' 
ORDER BY
  table_name
  , ordinal_position; 






拍手




pythonのseleniumでWEBのテストを行う方法です。
Firefoxに関する記事はいっぱいあるし、特にseleniumさえ導入できればすぐに使えるので問題ないのですが、Chromeになると情報が少ないので載せておきます。

大前提としてChromeさんをインストールしておいてね。

次に、ドライバをインストール。
zipを解凍して出てくる「chromedriver.exe」を任意のディレクトリに配置します。

前支度はこれくらい。
意外と簡単でした。

ユーザエージェントとプロキシを変更して、ハンドリングする場合のサンプルを掲載しておきます。

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--user-agent=Mozilla/5.0 (Linux; Android 4.2.2; SHL24 Build/S2040) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36")
options.add_argument("--proxy-server=localhost:8080")
options.add_argument("--disable-prompt-on-repost")
driver = webdriver.Chrome(r'C:\chromedriver.exe', chrome_options=options) 
driver.get("https://www.google.co.jp/")

add_argument()はおそらくみたとおり、chrome.exeの起動オプションがそのまま使えそうです。


参考文献
http://www.ericdlarson.com/misc/chrome_command_line_flags.html
http://www.mazn.net/blog/2014/07/08/1371.html
http://yuichi.tea-nifty.com/blog/2008/12/googlechrome-c0.html
http://www.yoheim.net/blog.php?q=20130402

拍手




Host 'hostname' is blocked because of many connection errors.
Unblock with 'mysqladmin flush-hosts'
MySQL :: MySQL 4.1 リファレンスマニュアル :: A.2.5 Host '...' is blocked エラー

MySQLでよく見るエラーです^^
私はバッチ系の人なので、並列処理をうまくできなかったり、サーバのスペックを見誤ると大量に出たりします。

いつもはまってしまうことが2店あります++。

このエラーはクライアント側で見ることができます。
ですのでmysqladminコマンドはクライアント側でやってしまいがちですが、サーバ側で実施しましょう^^

も一つ、マニュアル通り'mysqladmin flush-hosts'をじっしするとたいていエラーになります。
これは'mysql'と同じくログインを必要とするため、たいていは下記のようになります。
mysqladmin flush-hosts -uroot -p

拍手




5.5.15リリースの記事を書いている間に5.4.31もリリースなんてことになっていました。。。
http://php.net/archive/2014.php#id2014-07-24-2

なんとなく、悔しいのでこちらもコンパイルしてみます。
http://notebook.mor-maid.info/server/language/php/5.4.31.html

まったく同じようにコンパイルが通りました^^

拍手




PHP 5.5.15がリリースされたみたいですemoji
http://php.net/archive/2014.php#id2014-07-24-1

ということで早速コンパイルしてみましたーemoji
http://notebook.mor-maid.info/server/language/php/5.5.15.html

例によってそれだけの話です
リリース概要とか日本語訳してみたかったけど、それほど誤訳力あるわけじゃないし、
このあたりが限界なのです…emoji

拍手




アクセスが10,000超えたようです。
ありがとうございます。

と、いってもコメントからするに、botさんたちばかりでしょうけどね(苦笑)

拍手




これもすぐ忘れてしまうのでメモするのです。。。
手が空いたらCookieとか、もうちょっと武装します。
# -*- coding: utf-8 -*-
import pycurl
import StringIO

body = StringIO.StringIO()
header = StringIO.StringIO()
url = "http://localhost/"


ch = pycurl.Curl()
ch.setopt(curl.URL, url)
ch.setopt(pycurl.USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0")
ch.setopt(ch.PROXY, "http://localhost:8080/")
ch.setopt(ch.CONNECTTIMEOUT, 5)
ch.setopt(ch.TIMEOUT, 10)

ch.setopt(curl.WRITEFUNCTION, body.write)
ch.setopt(curl.HEADERFUNCTION, header.write)
ch.perform()

html = body.getvalue()
header = header.getvalue()

ch.close()

拍手




あと少しでリリースかしら?

http://distrowatch.com/?newsid=08514

CentOS7もRC番だし、ほぼ同時に解禁になるかもー

拍手



ブログ内検索
カレンダー
06 2018/07 08
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
カウンター
最新コメント
最新トラックバック
プロフィール
+ハンドル+
y_ayamori(purple)
+職業+
IT系エンジニア
+すまい+
さいたま
バーコード
ブログパーツ
アバター
Copyright © アナログを愛するデジタル生活館 All Rights Reserved.
photo by Kun material by Atelier Black/White Template by Kaie
忍者ブログ [PR]