Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |
2018 | 02 | 03 | 04 | 05 |

2016-01-31(Sun)

Go言語 - ファイルの存在確認

Packagesドキュメントに、そのものの機能が見つからなかったのでメモ

package main

import (
	"fmt"
	"os"
)

func Exists(filename string) bool {
	_, err := os.Stat(filename)
	return err == nil
}

func main() {
	if b := Exists("sample.txt"); b {
		fmt.Println("file exist!!")
	} else {
		fmt.Println("file not exist!!")
	}
}

Go言語 - データベースを使用する - sqlite3

go言語でsqlite3を使用してみる。

Windows 64bitで下記の方法だと、コンパイル時に何故かgcc要求されますコンパイルに通常よりも時間がかかるのでgccを利用した何かを行っている? なお作成されたexeファイルの実行はgcc環境がなくてもOKでした。

入手先


続きを読む

2016-01-29(Fri)

東芝製ノートパソコンに搭載のバッテリーパックの交換・回収について


2011年6月以降に製造販売された当社製ノートパソコンに搭載されたバッテリーパック【パナソニック株式会社にて製造】の一部ロットにおいて不具合があり、最悪の場合、発火等の安全上の問題に至る可能性があることが判明いたしました。当社は、当該ロットのバッテリーパックの交換・回収プログラム実施いたします。

https://batterycheck.toshiba.com/BatteryUpdate/InformationJapan?region=TJPN&country=JP&lang=ja

幸いなことに自分がいまメインで使用しているPC対象外だった。

もし対象だったら、物凄く困っていたところでした。



2016-01-18(Mon)

Rubyで形態素解析

最初MeCab+nattoで試したのですが、MeCabサイトで公開されているライブラリは64bit Rubyでは動作しませんでした。他はないのかと検索したところ、こちらRubyによる形態要素エンジンokura(注:ocraではない)が公開されていましたので早速インストール

公開サイトでは、ruby1.9専用と書かれていますが、こちらの動作環境Windows 10 64bit / ruby 2.2.3p173 (2015-08-18 revision 51636) [x64-mingw32])でも問題は無い様です。



公開サイトおよび入手先


導入

gem install okura
okura compile mecab-naist-jdic-0.6.3b-20111013/ okura-dic

公開サイトのサンプルプログラムの実行

okuraは文字コードutf-8使用するので、入出力でcp932(Windows-31J)とのエンコード必要

#coding: cp932
require 'okura/serializer'

dict_dir='./okura-dic' # コンパイルした辞書フォルダの置き場所
tagger=Okura::Serializer::FormatInfo.create_tagger dict_dir

str='すもももももももものうち'.encode('utf-8')

# 文字列から単語候補を計算
nodes=tagger.parse(str)

# 単語候補の中で、一番最もらしい組み合わせを選択
nodes.mincost_path.each{|node|
  word=node.word
  s = ('     ' + word.surface.encode('cp932'))[-5..-1] # 空白は全角スペース
  s << ' '
  s << word.left.text.encode('cp932')
  puts s

# word.surface        # : 単語の表記
# puts word.left.text # : 品詞
# 品詞はword.leftとword.rightがありますが、一般的に使われる辞書(IPA辞書やNAIST辞書)では
# 両方同じデータが入ってます
}

実行結果

C:\okura>ruby test.rb
1589586
S/EOS BOS/EOS
  すもも 名詞,一般,*,*,*,*,*
    も 助詞,係助詞,*,*,*,*,も
   もも 名詞,一般,*,*,*,*,*
    も 助詞,係助詞,*,*,*,*,も
   もも 名詞,一般,*,*,*,*,*
    の 助詞,連体化,*,*,*,*,の
   うち 名詞,非自立,副詞可能,*,*,*,*
S/EOS BOS/EOS

2016-01-06(Wed)

Excel - 配列数式

配列数式というのを知ったのでメモ

対象範囲の演算結果を内部的に配列に格納して計算を行う? で良いのかな?

下記はA1:A10範囲の値のうち偶数をB列に表示する例。

f:id:hake:20160106182008j:image


B1からB5には以下の式が入力されている。Ctrl+Shift+Enterで入力し、式の両側に{ }が追加される。

{=SMALL(IF(MOD(A$1:A$10,2)=0,A$1:A$10),ROW(A1))}              両端の{ }は自動で追加される。
  …
{=SMALL(IF(MOD(A$1:A$10,2)=0,A$1:A$10),ROW(A5))}

式の解釈セルB1の場合)

     IF(MOD(A$1:A$10,2)=0,A$1:A$10)  =>  内部配列{2, 4, 6 ,8, 10}

     SMALL( 内部配列, ROW(A1) )      =>  SMALL({2, 4, 6, 8, 10}, 1} => 2 

  1. A1〜A10の各セルの値について、2で割り切れる(=偶数)値であれば、その値を内部配列に格納する。
  2. 内部配列に格納した値のうち小さい方からROW(An)番目(=n番目)の要素をセル(=Bn)の値とする。

2016-01-05(Tue)

MSYS2環境のgccで作成したexeでの日本語表示

忘れそうなのでメモ環境は、MSYS2Win64 Shell(MSYS2 Shellではない)上のgcc場合

  • 予め.bashrcに環境変数LC_ALLを設定しておく。
export LC_ALL=ja_JP
#include <stdio.h>
#include <locale.h>
#include <wchar.h>

int main(int argc, char *argv[]){

	setlocale(LC_ALL, "");
	wchar_t c[] = L"あaい";
	wprintf(L"%4lx  %lc\n", c[0],c[0]); // 3042  あ
	wprintf(L"%4lx  %lc\n", c[1],c[1]); //   61  a
	wprintf(L"%4lx  %lc\n", c[2],c[2]); // 3044  い
	wprintf(L"%4lx\n", c[3]);           //    0

	return 0;
}

出力される文字コードは、何故かデフォルトcp932になる。

コンパイルオプション --exec-charset=utf-8 を付けてコンパイルしてもWin64 Shellの文字コードである utf-8出力に変えられないのは謎。