「main」を含む日記 RSS

はてなキーワード: mainとは

2017-11-01

anond:20171029161516

FizzBuzz問題を読み替える

具体的に1から15までの例で考えてみる。

集合で考えるとして、集合Aを3の倍数、集合Bを5の倍数とする。

U = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }

A = { 3, 6, 9, 12, 15 }

B = { 5, 10, 15 }

A∩B = { 15 }

¬(A∪B) = { 1, 2, 4, 7, 8, 11, 13, 14 }

ベン図は次のようになる。

+-----------U----------+
|                      |
| +---A------+         |
| | 3 6      |         |
| |  9 12 +--+---B---+ |
| |       |15|       | |
| +-------+--+ 5 10  | |
|         |          | |
|         +----------+ |
|                      |
| 1 2 4 7 8 11 13 14   |
+----------------------+

ド・モルガン定理より

¬(A∪B) = ¬A∩¬B

よって、FizzBuzz問題は次のように読み替えられる。

  • (A∩¬B)3の倍数、かつ、5の倍数でなければ "Fizz"を出力
  • (¬A∩B)3の倍数でなく、かつ、5の倍数ならば "Buzz"を出力
  • (A∩B)3の倍数、かつ、5の倍数ならば "FizzBuzz"を出力
  • (¬A∩¬B)3の倍数でなく、かつ、5の倍数でもなければ元の数字を出力

表にしてみる。

5の倍数5の倍数ではない
3の倍数"FizzBuzz""Fizz"
3の倍数ではない"Buzz"元の数字

コード検討

よくあるコードスタイルWikipediaから借りることにして、使用する言語をCとする。

https://ja.wikipedia.org/wiki/Fizz_Buzz

さて、元の論理を愚直に実装するとどうなるだろうか。

#include <stdio.h>

int main(void) {
    int i;
    for (i = 1; i <= 100; i++) {
        if (i % 3 == 0 && i % 5 == 0) {
            printf("FizzBuzz\n");
        }
        if (i % 3 == 0 && i % 5 != 0) {
            printf("Fizz\n");
        }
        if (i % 3 != 0 && i % 5 == 0) {
            printf("Buzz\n");
        }
        if (i % 3 != 0 && i % 5 != 0) {
            printf("%d\n", i);
        }
    }
    return 0;
}

ここで、元増田が発想したような「3の倍数の後に5の倍数を判定させて"Fizz"と"Buzz"を連続出力すれば"FizzBuzz"の段は要らないんじゃね?」作戦を発動する。

"FizzBuzz"の判定をごっそり削り、"Fizz"と"Buzz"の条件が同時に起こることを考慮する。

forの終わりに改行するようにする。

コードを追って、元の論理と合ってるかを確認しておく。

#include <stdio.h>

int main(void) {
    int i;
    for (i = 1; i <= 100; i++) {
        if (i % 3 == 0) {
            printf("Fizz");
        }
        if (i % 5 == 0) {
            printf("Buzz");
        }
        if (i % 3 != 0 && i % 5 != 0) {
            printf("%d", i);
        }
        printf("\n");
    }
    return 0;
}

2017-10-29

[]主力戦車

重戦車火砲を持ち、重戦車のアーマーを備え、軽戦車の機動性を中戦車の車重でまとめた戦車

第二次世界大戦後に作られた戦車はだいたい主力戦車

Main Battle Tank、略してMBT訳語であり、車両数や用途的にその軍の主力でなくなったとしても主力戦車主力戦車である

自衛隊場合74式は元主力の主力戦車であり、90式は現在主力の主力戦車であり、10式は今後主力になる主力戦車である

2017-10-28

anond:20171027101309

タデプログラミングやってみた

実行環境は、Windows 10はてなAPIは知らない

1)URL規則性を見つける

増田場合

https://anond.hatelabo.jp/?mode=top&page=1

page=1、page=1001、・・・

2)各ページの日記規則性を見つけて、投稿時刻の取得方法検討する

増田で、先頭の日記場合

<div class="section">
<h3>
<a href="/20171010162108"> ← (雑だが)ここらへんを取ればよさそう
<span class="sanchor">■</span>
</a>
<a href="/20171010161641">anond:20171010161641</a>
</h3>
~~~
</div>

3)定数、関数の雛形、ループURLを生成・出力するだけのソースをとりあえず作成・実行

実行すると、↓が出力されるだけ

https://anond.hatelabo.jp/?mode=top&page=1

https://anond.hatelabo.jp/?mode=top&page=1001

https://anond.hatelabo.jp/?mode=top&page=2001

・・・

4)「ruby web 取得(スクレイピング)」あたりでネット検索、内容を理解せずにコピペする

4-1) 標準のopen-uriを使うと取得できるよ等見つかる

open-uriを実行すると、謎のエラー発生

C:/Ruby23-x64/lib/ruby/2.3.0/net/http.rb:933:in `connect_nonblock': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

4-2)エラーメッセージ検索、内容を理解せずにコピペする

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

 

ここまでで、任意URLWebページ取得ができるようになる

5)Webページの内容を解析(パース)し、ページの先頭の日記のYYYY/MM/DD HH:MM:SSを取得

5-1)

HTMLはある程度構造化されているので、今回の場合だと、↓のようなとり方がいいと思う

「divタグ sectionセクション」直下の「最初のh3タグ直下の「最初のaタグhref

5-2)

思うけど、今回は、構造検索じゃなくて、単純に文字列検索だけで済ます

5-3)※

取得対象構造が変化する場合も多々あるが、構造が変化した場合でも、

構造的な取得方法を作っておけば、変化にもある程度対応やすい(パラメータの「1」を「2」にするとか)

文字列を解析的なやり方だと、取得対象の書式が変化した場合に、対処しにくいことが多い

ここらへんを、TODO:あとでやる、なんてするんだけど、もちろんあとでやらなくて不具合の温床になる

これ豆な

6)結果を出力

printコマンドプロンプトへ出力

 

例えばだが出力には、ファイルへ保存、メール送信クラウドへアップ、増田投稿 とかもある

 

ここまでで、page=1の処理ができた

7)繰り返しに注意

page=1ができればあとは繰り返すだけ

繰り返すだけなんだが、取得ごとに10秒待つことにする

あんまが~~ってやると、怒られるので

 

愚直なまでの単純な繰り返しは、PCプログラム) > 人の操作 の最たるものだと思う

 

はいえ、ほんとうに愚直で、

タイムアウトしたらどうなるのか?

・古いページは構造が異なるかもしれないのでは?

・最終ページはどこ?

・・・などなど。これらの忖度AIでも解決しにくい・・・と思う。

8)余談1 プログラム関係ネット検索すると、はてな結構ひっかかる

なにかうれしいセロry

9)余談2 スクレイピングってなんだよ

的な英単語IT用語解説よりも、英和辞典を引くとスって理解できることがある

scraping ・・・ こすること、削ること、削り落としたもの、かきくず

・・・

rubyソース

require 'open-uri'
require 'openssl'

# なんかエラーが出る暫定対処
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

BASE_URL = 'https://anond.hatelabo.jp/?mode=top&page='
PAGE_INCR = 1000

# 4) 指定URLのページを取得
def get_page(url)
    open(url).read
end

# 5) 年月日時分秒を取得
#012345678901234567890123456789012345678901234567890
#<div class="section"><h3><a href="/20171010162108">
def get_ymdhms(page)
    pos = page.index("<div class=\"section\"><h3><a href=")
    #p pos
    #p page[(pos+35)..(pos+35+13)] # YYYYMMDDHHMMSS 14
    aa = page[(pos+35)..(pos+35+13)]
    sprintf("%s/%s/%s %s:%s:%s", aa[0..3], aa[4..5], aa[6..7], aa[8..9], aa[10..11], aa[12..13])
end

# 6) 結果を出力
def print_dat(inc, ymdhms)
    puts sprintf("%06d, %s", inc, ymdhms)
end


# メイン
def main
    inc = 1
    for i in 1..10
        sleep 10 unless i == 1 # 7)初回以外は10秒待つ
        url = BASE_URL + inc.to_s
        page = get_page(url)   # 4)webページ取得
        ymdhms = get_ymdhms(page) # 5)投稿年月日取得
        print_dat(inc, ymdhms) # 6)結果出力
        inc += PAGE_INCR
    end
end

# 実行
main

 

ソース記法で書くと文字化けするので、スーパーpreで)

実行結果

ano_his.rb:67: warning: already initialized constant OpenSSL::SSL::VERIFY_PEER
000001, 2017/10/28 15:04:51
001001, 2017/10/10 17:08:08
002001, 2017/09/19 17:22:26
003001, 2017/08/24 10:23:53
004001, 2017/07/27 11:57:49
005001, 2017/06/27 17:42:17
006001, 2017/05/28 22:57:26
007001, 2017/04/28 10:26:18
008001, 2017/03/21 10:10:38
009001, 2017/02/10 15:01:32

2017-10-13

anond:20171013044943

ruby

# 曜日定数定義
module YOUBI
    Sun = 0, Mon = 1, Tue = 2, Wed = 3, Thu = 4, Fri = 5, Sat = 6
end

# 指定年月日の曜日取得
# https://en.wikipedia.org/wiki/Determination_of_the_day_of_the_week#Implementation-dependent_methods
def get_youbi(year, month, day)
    day += if month < 3 then year-=1;year+1 else year-2 end # <
    (23 * month / 9 + day + 4 + year / 4 - year / 100 + year / 400) % 7
end

# 13日の金曜日判定
def super_friday(year, month)
    get_youbi(year, month, 13) == YOUBI::Fri
end

# メイン関数
def main
    for year in 2000..2100
        msg = "#{year}年:"
        for month in 1..12
            if super_friday(year, month)
                msg += "#{month}月13日 "
            end
        end

        #print msg + "\n" # back-slash
        puts msg
    end
end

# 実行
main

出力

2000年10月13日 
2001年4月13日 7月13日 
2002年9月13日 12月13日 
2003年6月13日 
2004年2月13日 8月13日 
2005年5月13日 
2006年1月13日 10月13日 
2007年4月13日 7月13日 
2008年6月13日 
2009年2月13日 3月13日 11月13日 
2010年8月13日 
2011年5月13日 
2012年1月13日 4月13日 7月13日 
2013年9月13日 12月13日 
2014年6月13日 
2015年2月13日 3月13日 11月13日 
2016年5月13日 
2017年1月13日 10月13日 
2018年4月13日 7月13日 
2019年9月13日 12月13日 
2020年3月13日 11月13日 
2021年8月13日 
2022年5月13日 
2023年1月13日 10月13日 
2024年9月13日 12月13日 
2025年6月13日 
2026年2月13日 3月13日 11月13日 
2027年8月13日 
2028年10月13日 
2029年4月13日 7月13日 
2030年9月13日 12月13日 
2031年6月13日 
2032年2月13日 8月13日 
2033年5月13日 
2034年1月13日 10月13日 
2035年4月13日 7月13日 
2036年6月13日 
2037年2月13日 3月13日 11月13日 
2038年8月13日 
2039年5月13日 
2040年1月13日 4月13日 7月13日 
2041年9月13日 12月13日 
2042年6月13日 
2043年2月13日 3月13日 11月13日 
2044年5月13日 
2045年1月13日 10月13日 
2046年4月13日 7月13日 
2047年9月13日 12月13日 
2048年3月13日 11月13日 
2049年8月13日 
2050年5月13日 
2051年:1月13日 10月13日 
2052年:9月13日 12月13日 
2053年:6月13日 
2054年:2月13日 3月13日 11月13日 
2055年:8月13日 
2056年:10月13日 
2057年:4月13日 7月13日 
2058年9月13日 12月13日 
2059年:6月13日 
2060年:2月13日 8月13日 
2061年:5月13日 
2062年:1月13日 10月13日 
2063年:4月13日 7月13日 
2064年:6月13日 
2065年:2月13日 3月13日 11月13日 
2066年:8月13日 
2067年:5月13日 
2068年:1月13日 4月13日 7月13日 
2069年:9月13日 12月13日 
2070年:6月13日 
2071年:2月13日 3月13日 11月13日 
2072年:5月13日 
2073年:1月13日 10月13日 
2074年:4月13日 7月13日 
2075年:9月13日 12月13日 
2076年:3月13日 11月13日 
2077年8月13日 
2078年:5月13日 
2079年:1月13日 10月13日 
2080年:9月13日 12月13日 
2081年:6月13日 
2082年:2月13日 3月13日 11月13日 
2083年:8月13日 
2084年:10月13日 
2085年:4月13日 7月13日 
2086年:9月13日 12月13日 
2087年:6月13日 
2088年:2月13日 8月13日 
2089年:5月13日 
2090年:1月13日 10月13日 
2091年:4月13日 7月13日 
2092年:6月13日 
2093年:2月13日 3月13日 11月13日 
2094年:8月13日 
2095年:5月13日 
2096年:1月13日 4月13日 7月13日 
2097年:9月13日 12月13日 
2098年:6月13日 
2099年:2月13日 3月13日 11月13日 
2100年:8月13日 

28年周期なの?

wikiのSakamotoメソッドソースwiki記法不具合じゃないの?

と思いましたが、、。

 ↓

https://groups.google.com/forum/#!msg/comp.lang.c/GPA5wwrVnVw/hi2wB0TXGkAJ

 ↓

"-bed=pen+mad."[m] 文字列の添字なんだな・・。

2017-08-27

[]Android 8のソース、27GB

追記

ローカルaospミラーからのcheck out(repo sync)に3時間かかった

(Core2Duo w)

 

追記

tar.gzに40分かかった

追記

 

追記

解凍に1時間40分w

 

追記

にんにん中now。途中でディスク容量が足りなくなる予定

 

追記

80分後にエラー終了

[  4% 2919/61548] yacc out/soong/.intermediates/frameworks...cc/frameworks/compile/mclinker/lib/Script/ScriptParser.cpp
FAILED: out/soong/.intermediates/frameworks/compile/mclinker/lib/Script/libmcldScript/android_arm_armv7-a_static_core/gen/yacc/frameworks/compile/mclinker/lib/Script/ScriptParser.cpp out/soong/.intermediates/frameworks/compile/mclinker/lib/Script/libmcldScript/android_arm_armv7-a_static_core/gen/yacc/frameworks/compile/mclinker/lib/Script/ScriptParser.h
BISON_PKGDATADIR=external/bison/data prebuilts/misc/linux-x86/bison/bison -d  --defines=out/soong/.intermediates/frameworks/compile/mclinker/lib/Script/libmcldScript/android_arm_armv7-a_static_core/gen/yacc/frameworks/compile/mclinker/lib/Script/ScriptParser.h -o out/soong/.intermediates/frameworks/compile/mclinker/lib/Script/libmcldScript/android_arm_armv7-a_static_core/gen/yacc/frameworks/compile/mclinker/lib/Script/ScriptParser.cpp frameworks/compile/mclinker/lib/Script/ScriptParser.yy
prebuilts/misc/linux-x86/bison/bison: 1: prebuilts/misc/linux-x86/bison/bison: Syntax error: "(" unexpected
ninja: build stopped: subcommand failed.
15:45:20 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1

 

 

今日はここまで

ちょっとアレしないと

 

 

追記

WSL(Windows Subsystem for Linux

bisonネットでひろったバイナリへ変更 → エラー対処できた可能性あり。時間切れで中断。ただ、ビルド継続するとディスクの空き容量が・・・

https://github.com/Microsoft/BashOnWindows/issues/1771

https://github.com/kxzxxx/android_build

 

UM(Ubuntu on Mac

make -j4でjavaメモリ不足?エラー。j4なしで → エラー対処できた可能性あり。時間切れで中断。こっちはディスク空きは大丈夫なはず

にしても、ネイティブメモリ16GBで厳しいのか・・ → 追記 8GBって認識されてる。

$ ldhw -c memory
     *-bank:0
          詳細: SODIMM DDR3 同期 1333 MHz (0.8 ns)
          ベンダー: 0x0383
          物理ID: 0
          シリアル: 0x00000000
          スロット: DIMM0
          サイズ: 8GiB
          クロック: 1333MHz (0.8ns)
     *-bank:1
          詳細: SODIMMProject-Id-Version: lshwReport-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>POT-Creation-Date: 2009-10-08 14:02+0200PO-Revision-Date: 2014-10-12 06:22+0000Last-Translator: Shushi Kurose <md81bird@hitaki.net>Language-Team: Japanese <ja@li.org>MIME-Version: 1.0Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bitX-Launchpad-Export-Date: 2016-06-27 17:08+0000X-Generator: Launchpad (build 18115) [空]
          物理ID: 1
          スロット: DIMM0

壊れたか!!!???

 

 

 

予断は許さないが、WSLでAndroidロムのビルドができる可能性あり

っていうか、AOSPじゃなくて、カスロムだとビルド成功報告があるしな

ただし、ディスク容量がたんまり必要

たぶんビルドで30GB以上でてくるはず

 

ソース 約30GB

.repo 約20GB

ビルド 約30GB

雑に計 約80GB

 

追記

WSL(Windows Subsystem for Linux

進捗10%でディスク空きが3GBwになったので、泣く泣く中断

UMでの出力ファイルサイズを見て、やるやらないきめましょう

 

UM(Ubuntu on Mac

時間で30%ぐらい。ってことは、10時間ってことか??

寝て起きても終わってないな。

 → さらに、前回中断してるので、それを加味すると10時間じゃきかないな。

追記

UM(Ubuntu on Mac

[ 57% 30322/52868] Building with Jack:...k_intermediates/with-local/classes.dex
FAILED: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex 
/bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rsp
Out of memory error (version 1.3-rc6 'Douarn' (441800 22a11d4b264ae70e366aed3025ef47362d1522bb by android-jack-team@google.com)).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx<size>'.
Warning: This may have produced partial or corrupted output.
ninja: build stopped: subcommand failed.
01:27:14 ninja failed with: exit status 1
build/core/main.mk:21: ターゲット 'run_soong_ui' のレシピで失敗しました
make: *** [run_soong_ui] エラー 1

#### make failed to build some targets (07:31:51 (hh:mm:ss)) ####


real	451m51.293s
user	418m48.588s
sys	13m8.276s

 

おおぅ・・

再起動してみるか

 

 

追記

mac再起動したけど、片方のメモリ認識せず

蓋開けて、刺し込み位置取り換えして、再起動・・・、16GB認識OK

よかった・・・

Galaxy S3が壊れて泣きそうなので、ほんとうによかった・・

 

 

追記

UM(Ubuntu on Mac

ビルド成功トータルで何時間だろう?10時間未満だとは思うけど・・

んで、outが44GB

ふざけんなwww

$ du -hs android-8.0.0_r4/
93G	android-8.0.0_r4/

これってなんかおかしくね?

WSL(Windows Subsystem for Linux)でもやりたかったけど、無理だな

外付けもあまってないしな〜〜

SSD調達しようかねえ?

 

追記

SSD500GB 20,000円付近か~~

KKOだからな~~~

どうしようかな~~~~

しぃなぁ~~~~~

 

外付けデータディスクとして使う予定だから、3.5HDDでもいいか???

いっつも悩むんだよなあああああ

 

内蔵の確かSSD128GBだったような気がするけど、この際に交換か???

 

追記

Core2DuoメモリGBの廃スペックノートPCUbuntu)でビルド

[  3% 2191/61548] Building with Jack: ...l_intermediates/with-local/classes.dex
FAILED: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex 
/bin/bash out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex.rsp
Out of memory error (version 1.3-rc6 'Douarn' (441800 22a11d4b264ae70e366aed3025ef47362d1522bb by android-jack-team@google.com)).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx<size>'.
Warning: This may have produced partial or corrupted output.
ninja: build stopped: subcommand failed.
11:39:11 ninja failed with: exit status 1
make: *** [run_soong_ui] エラー 1

#### make failed to build some targets (49:35 (mm:ss)) ####


real	49m34.775s

予想通りではあるが、メモリ不足で終了。オプションで調整できる?調整したところで無理か?

どうも、HDDの肥やしをみると、Android 6はビルドできたっぽいんだが。7でもメモリ不足で失敗してたか

 

追記

WSL(Windows Subsystem for Linux

USB2.0wの外付けHDDでやりなおし。なんか出てるな~~

[ 27% 17003/61548] Generating TOC: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc
FAILED: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc
/bin/bash -c "(prebuilts/build-tools/linux-x86/bin/ijar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp ) && (if cmp -s out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc ; then rm out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp ; else mv out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc ; fi )"
ftruncate(fd_out, GetSize()): Invalid argument
/bin/bash: line 1: 30384 Aborted                 (core dumped) ( prebuilts/build-tools/linux-x86/bin/ijar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/classes.jar.toc.tmp )
ninja: build stopped: subcommand failed.
10:26:21 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1

#### make failed to build some targets (08:44:50 (hh:mm:ss)) ####


real    524m50.540s
user    332m5.844s
sys     170m18.359s

https://forum.xda-developers.com/android/general/guide-build-rom-source-windows-10-t3469420/page2

 

追記

あの~~、ninja差分ビルド?部分ビルドってどうやんの・・・

 

まとめ

Core2DuoメモリGBの廃スペックノートPCUbuntu) → メモリ不足

Ubuntu on Mac miniメモリ16GB → 10時間ぐらい?でビルド完了

WSL(Windows Subsystem for Linux)・メモリ16GB・USB2.0外付けHDD → 検証なう・・

 bisonの入れ替えが必要

 ijarエラーが出ている

2017-08-19

host C++: validatekeymaps <= frameworks/base/tools/validatekeymaps/Main.cpp

prebuilts/tools/gcc-sdk/g++: line 40: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-g++: cannot execute binary file: Exec format error

make: *** [out/host/linux-x86/obj/EXECUTABLES/validatekeymaps_intermediates/Main.o] Error 126

2017-06-23

typescript-simple動作が何か妙だ

調査

環境は以下の通り

$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.12.5
BuildVersion:	16F73

$ node --version
v8.1.2

$ npm --version
5.0.3

$ cat package.json
{
  "name": "strange-tss",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@types/lodash": "^4.14.66",
    "typescript": "^2.3.4",
    "typescript-simple": "^8.0.1"
  }
}

以下をトランスパイルする

import * as _ from 'lodash'; console.log(_)`

まずはtsc

$ cat test.ts
import * as _ from 'lodash'; console.log(_)

$ ./node_modules/.bin/tsc test.ts

$ cat test.js
"use strict";
exports.__esModule = true;
var _ = require("lodash");
console.log(_);

OK

$ cat compile_by_tss.js
require('typescript-simple')("import * as _ from 'lodash'; console.log(_)")

$ node compile_by_tss.js
/Users/zzzzz/Documents/strange-tss/node_modules/typescript-simple/index.js:168
                throw new Error(this.formatDiagnostics(allDiagnostics));
                ^

Error: L0: File '/Users/zzzzz/Documents/strange-tss/lodash.ts' is not a module.
L0: Cannot use imports, exports, or module augmentations when '--module' is 'none'.
    at TypeScriptSimple.toJavaScript (/Users/zzzzz/Documents/strange-tss/node_modules/typescript-simple/index.js:168:23)
    at TypeScriptSimple.compile (/Users/zzzzz/Documents/strange-tss/node_modules/typescript-simple/index.js:69:25)
    at strange-tss (/Users/zzzzz/Documents/strange-tss/node_modules/typescript-simple/index.js:13:27)
    at Object.<anonymous> (/Users/zzzzz/Documents/strange-tss/compile_by_tss.js:1:91)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
    at Function.Module.runMain (module.js:605:10)

う〜ん

$ ./node_modules/.bin/tsc --help | grep module
 -m KIND, --module KIND Specify module code generation: 'commonjs', 'amd', 'system', 'umd' or 'es2015'.

2017-06-06

ジェネリック医薬品.java

interface 頭痛薬 {}

class バファリン implements 頭痛薬 {}

class バッサニン implements 頭痛薬 {}

class 薬瓶<T> { /* 中略 */ }

public class Test {

  public static void main(String[] args) {

    薬瓶 頭痛薬入れ = new 薬瓶<頭痛薬>();

    頭痛薬入れ.add(new バファリン());

    頭痛薬入れ.add(new バッサニン()); // バファリンとバッサニンは成分が同じなので、同じ薬瓶に入れて混ぜて服用しても問題ない

    System.out.println(頭痛薬入れ.size()); // 2

  }

}

2017-06-02

http://anond.hatelabo.jp/20170602170355

Javaは、オブジェクト指向を盲信し、すべてにおいてオブジェクト指向強制したのが間違いだった。

Java で、hello worldプログラムすると

public class Hajimete {

public static void main(String[] args){

System.out.println("Hello, world.");

}

}

こんなに長く書く必要があるのが一番嫌われた理由

他の言語なら

print("Hello, world.");

ぐらいの1行で済むんだ。

2017-05-25

[]ノルウェー刑法共謀罪規定を調べてみたけど外務省滅んで欲しい

国会ウォッチャーです。

 まず一言桜井充さんの質疑の中での松本洋平副大臣答弁の中で、11月9日より以前に加計学園プレゼンテーションをする機会が無かったことが明らかになりましたが、今日小池晃さんが出されていた、「加計学園への伝達事項」文書の中でも、加計学園提案内容に、前日までに文部科学省松野文部科学大臣ともに不足があると認識していたという可能性が示されましたね。状況証拠は揃ってきました。政府いくら確認できない」、といっても、辞職した責任者が、自身提供者であれ、省内に残っている前川氏のシンパ奇兵隊といわれているらしいですが)が提供者であれ、裁判実務だと当然ブツを出してる方の意見採用されるところですよ。いっそのこと「そんな文書存在しない。前川氏の虚偽、捏造だ」とおっしゃってしまえばどうですか。これを言ったらおしまいなのは流石にネトサポほどアホではない官邸はわかっているはずですが。

北欧諸国での共謀罪

 ブコメで、ノルウェーの話が出ていたので、そういえば、ノルウェーTOC条約に向けて共謀罪を導入したんだったな、どういう内容だろうと興味がわいてまいりました。ニュージーランドも見てみるかもしれないけど、とりあえずノルウェーから調べてみようと思った。

 参考文献は Fighting Terrorism through Multilevel Crimninal Legislationという本。タイトルダイレクトすぎるだろ。著者はノルウェー刑法学者の人のよう。つかこの本全部読みたい。一応電子書籍で300US$ほどで買える模様。なお買ってはいない。民進党共産党は買って読んだほうがいいのでは。とりあえずめちゃくちゃ参考になった。ノルウェーオランダスウェーデンフィンランドなどのテロ対策立法が書かれている。

とりあえずノルウェーについてメモだし。

ノルウェー共謀罪は、ノルウェー刑法の147条aにリストされている、基本的犯罪行為(European Convention on preventing terrorism規定されたテロ行為のこと)の多数に対して適用される。Ss159、223(3)、225(3)と233aを参照のこと。しか共謀罪は、162条のcに定められた組織的犯罪集団活動の一部として行われた場合、152条a、152条b、153条a、224条にも適用される。

となっているんで、ノルウェー刑法の14章、公共に対する重大な犯罪を読む

*注意

この本で上記の記述があったので、162cは組織的犯罪集団定義が書いてあるんだと思って詳しく読んでなかったけど、162cを見ると、三人以上からなる組織で、三年以上の自由刑が科される犯罪行為の実行を主たる目的とした組織的犯罪集団が、当該犯罪行為共謀し、組織活動の一部として実行されよう(to be committed)とした時、3年以内の自由刑が科されうる、となっていた。to be committedが差すものを調べるので、評価ちょっとまって。ごめんなさい。これが準備行為なのか、attemptなのかどうかで大分話が変わる。未遂なら未遂罪共謀共同正犯同義だろうけど、準備行為なら日本並みに広くなる。ただ未遂ちょっと考えづらいかな。attemptとは書いてないし。ただこの162cの適用例は極めて少ない(約10年で20件以下 Lars Korsell and Paul Larsson Organized Crime the Nordic Way, 2011 )模様なので、準備行為ってことはないだろうと思うが判例を見てみないとわからんか。

 

追記:調べた。タームの定義に丁寧に書いてあった。

第7条

1.この法律における公共の場、とは公に利用されることを目的とした、あるいは頻繁に公に利用される場を言う。

2.この法律における「実行されようとしているto be committedと考えられる」は、犯罪の実行を印刷物としてpublication(まさか出版ではないと思うがわからない。予告みたいな意味か)した場合、多人数が存在する公共の場で現に実行されようとしている、または公共の場から容易に観察可能状態が持続し、その場にいる人、または近くにいる人が現に観察した場合を言う。

 コレめっちゃ賢い。びびるわ。既遂未遂とは違う形で、と条約指定されてるから未遂とも予備、準備行為とも違う形式指定したんやな!to be committedは162cにしか出てこない表現(id:bareloさん、to be committed in publicとto be committedが区別されている可能性はちょっと考えましたが、が、他にto be committed が登場しないので、このように判断しました。いま再度 in publicも検索かけてみたけど、in public affairs(公務)以外の用例が見つからなかった。in と publicが改行で切れている可能性があるからわかんないんで、見つけたら教えてください。)。この要件が異常に広い162cの摘発範囲を強力に制限してるからほとんど適用例がないんだろう。(正直ここはわからんくなってきた)

と思ったけど、やっぱりこれはbareloさんが言うように、is to be ではなくて、 is considered toなだけな気がしてきた。commit全体の意味の方が確かに自然な気がするけど、is to be committedはやっぱり準備行為(prepareが使われちょる)でも未遂(attempt)でもないとは思うんだけど。もうちょっと調べます

とりあえず147aが2001-2002年に導入されて、並行する形でTOC条約国内法整備議論されながら2002-2003に162cが成立したところまで把握。当時の法務省見解では162cはノルウェ-刑法例外と書かれている。ドイツとは違って、main purpassである以外に、substantialでんでんパートがあるため、組織的犯罪集団認定自体はかなり広範になされそうだけど。

Ministry sightとして、犯罪の実行に向けての行為は明確に要件にはなっていないが、そのようなものなしに、合意形成されたことを証明することは不可能だ、としていますね。ただほとんどの情報がNorskなのがつらすぎる。Ingvaldsen and Vanja Lundgren Sørli によると、900件余りの薬物事件のうち、162cが適用されたのは5件とのこと。何かで要件が縛られてるんだろうけど、それがなんなのかわからにゃい。

147条a

 148、151a、151bの第一パラグラフ、152の第二パラグラフ、153の第一から第三パラグラフ、153a、154、223の第二パラグラフ、224、225の第一または第二パラグラフ、231(232または233と比較せよ)、以上に挙げられた犯罪行為は、当該行為故意に、

a)社会にとって重要機能、たとえば立法政府司法当局、電力供給、食料・水の安全供給銀行金融システムまたは緊急医療システム災害管理などに重篤な影響を与える、

b)市民を深刻に脅迫する、あるいは、

c)公共機関政府活動に対する無法な強要行為、国や組織国際機関にとって本質的重要活動侵害、または抑制する行為

目的として行われた場合に、テロリスト活動である判断され、21年未満の自由刑さを負う責任を認めるものとする。前述された、第一文で記載されている刑事規定自由刑の最低期間よりも短いものに関しては刑罰は科されない場合もある。

 第一段落記載された意図で、第一段落記載された犯罪行為を行うことを、その脅威が深刻な恐怖を引き起こす蓋然性が高い状況下で、脅迫して行わせた場合、12年未満の自由刑責任を有するものとする。また前段のa),b),c)のいずれかに該当する結果が起こった場合、21年未満の自由刑が課される可能性がある。またこのような犯罪行為を援助、幇助した場合には、同じ刑罰を科されなければならない(これは共謀共同正犯の明文だね)。また第一段落で述べたテロ行為を実行する目的で、他の誰かと共謀した者は、12年未満の自由刑責任を負う(これが共謀罪)。

147条aが対象とする犯罪

148条

 人命の喪失または他人財産の大規模な破壊を招きかねない、火災、倒壊、爆発、洪水海上災害鉄道事故航空機事故引き起こした者は2年以上、21年以下の自由刑責任を負う。ただし、当該犯罪行為の結果として、人が死亡した場合、または身体健康が深刻に傷つけられた場合、その自由刑は5年以上とする。当該犯罪行為未遂既遂行為と同程度の刑罰を与えることができる。

151条a

 船舶または航空機暴力脅迫強要その他の不法行為によって搭乗した者が、船舶または航空機などを、強制的コントロールし、その航海・飛行を妨害する行為を行った場合、2年以上21年以下の自由刑責任を負う。また大陸棚での設置・建設行為油田のようなものかな)に対して、同様の方法で、強制的にそのコントロールを行った者も同じ刑罰を科される。ただし、その情実が特に過激ではないと判断された場合は、規定の最低期間を下回る刑罰を課すこともできる。(151条は148の不作為規定だった。間違えた。以下勘違い、失礼、id:allezvousさんほかありがとう。これって重要な点だよね。要は共謀者の中の誰かが既遂しないと適用されないってことだからわが国の法案のたてつけと全然違う。)

152条の第二パラグラフ

 (除外されている第一パラグラフ:人や家畜飲料水用の貯水池水道に対して、不法有害物質を添加した者、あるいは援助・幇助したものは5年以内の自由刑責任を負う)

 人の生命健康に対する一般的危険性が引き起こされた場合、また人が死亡した場合、あるいは身体健康を顕著な障害を与える結果を与えた場合は3年以上21年以下の自由刑責任を負う。

(注:これもそうだけど、完全に未然に防ぐことを目的としていないことがわかる。共謀したら捕まえるのではなく、深刻な事態が発生した場合共謀者もしょっ引くのが目的から、それが起きなかった場合には共謀罪適用されていない)

153条の第1-3パラグラフ

 意図した目的使用できないようにする目的で、一般的使用または販売目的とした製品に毒またはその他の物質を加えた者、あるいは、その他の一般的な人の生命健康を損なう毒物を混入したもの、その援助・幇助をしたものは21年以内の自由刑責任を負う。 

 同様に、毒物その他の危険物質が添加された製品を、その本質を隠匿しながら販売販売の申し出、頒布を申し出た者、その援助・幇助をした者は同じ刑罰が科される。

 それによって、人が死亡した場合、人の生命健康に対する一般的危険性が引き起こされた場合、あるいは身体健康を顕著な障害を与える結果を与えた場合は1年以上21年以下の自由刑責任を負う。

(以降の段落家畜に対する同様の行為業者による不作為共謀罪対象になっていない)

153条a

以下に記載する製品を開発、生産、保管、または取得または所有する者

1.その作成方法に関わらず、細菌学的、またはその他の生物学的な物質遺伝子組換え生物毒物であって、予防的、保護的あるいはその他の平和利用のためとしては正当化されえない種類及び量のもの、または

2.敵対的目的または武力紛争のために、前号1に記載されている類の物質生物または毒物使用するために開発された兵器、装備またはその普及活動

は、10年以下の自由刑責任を負う。援助・幇助を行った者も同様の刑罰を科されうる。

154条

 人、家畜、または植物に対して危険な伝染性疾患を導入した、あるいは一般的拡散引き起こした者、またはその援助・幇助をしたものは10年以下の自由刑責任を負う。特定の情実が認められる場合には、罰金刑が科される場合もある。

 前段の行為により、人の死、あるいは身体健康に対する顕著な障害を与えた場合、5年以上21年以下の自由刑責任を負う。

223条

 (除外されている第一段落不法他人自由を奪った者、あるいはその援助。幇助を行った者は、5年未満の自由刑責任を負う。)

 自由剥奪1月以上続いた場合、または死亡させた場合は、1年以上の自由刑が科される。

 第二段落記載された行為他人共謀した者は、10年未満の自由刑責任を負う。(組織的行為が結果の重大性を高める意味共謀罪単独犯を上回っている)

224条

 強要脅迫、ゆすり、またはその他の不適切他人への行為に基づいた手段で以下の行為を行わせた場合

a)売春、またはその他の性的目的

b)強制労働

c)外国での戦争への参加または

d)前述の人の何らかの器官の除去

または前述の行為他人が行うように教唆した者は、人身売買罪とし、5年未満の自由刑責任を負う。

a) 関係者調達輸送、または受領など、前述ような、搾取教唆の手配をした者

b)その他全ての当該搾取行為に対する援助・幇助を行ったもの

c)被害者保護者から当該搾取行為同意を得るための支払いその他の利益供与した者、その幇助をした者

も同様の刑罰が科される。

 第一、第二パラグラフで述べられた行為を18歳未満のものに対して行うことに関与したものは、その使用強要脅迫、ゆすり、その他の不適切行為に関してそれぞれ独立刑罰を科される(加重される)。

 直接の人身売買は、10年未満の自由刑が科される。その犯罪が、直接の例に該当するかどうかに関しては、その犯罪被害者が、18歳未満であるかどうかが特に重要である

225条の第一または第二パラグラフ

 他人を隷属させたもの、その援助・幇助をしたものは5年以上、21年未満の自由刑責任を負う。

 奴隷取引契約をした者、奴隷、あるいはその契約をした人を輸送をした者、またはその援助・幇助をした者は、同様の刑罰を科される。

 前述の行為を行うことに関して、その援助・幇助を含めて、他者共謀した者は、10年未満の自由刑責任を負う。

231条

 他者身体健康に対して、顕著な障害を与えた者、またその援助・幇助を行ったものは、重大過失致傷罪として2年未満の自由刑責任を負う。この行為が、計画されたものであって、人の死をもたらした場合、21年以内の自由刑責任を負う。

基本的にこれだけ。

ノルウェー共謀罪テロ行為関連にめちゃくちゃ限定されてる

 タイトルどおりだけど、調べてみてびっくりするぐらい限定されてるけど、TOC条約は締結できてる。外務省ノルウェーの事例とかを真剣検討してるなら当然これぐらい調べただろうけど、ほんとにあの組織は何を考えているわけ?滅んで欲しい。つか国際法学者は何をやってるの?

 スウェーデンオランダも気が向けば同様に調べる。

ノルウェー刑法

http://www.un.org/depts/los/LEGISLATIONANDTREATIES/PDFFILES/NOR_penal_code.pdf

2017-05-20

コメントを読まない人ほど書けという

お疲れ様。本当にお疲れだよねー、休日のこんな時間まで仕事してきたのだから

// 設定値の取得の呼び出しを行う

setting = getSetting();

こんなアホみたいなコメント、本当に必要なのか?わかるんじゃねーの?

コメントがない!ってキチガイみたいに騒ぎやがった行く末に、コメントつけておいたから!と胸を張った結果がこれか。

そのくせ、テンプレの頭に書いてあるような大事コメントはまったく読まないのな。

たとえば、httpd.conf

#

# This is the main Apache HTTP server configuration file. It contains the

# configuration directives that give the server its instructions.

# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.

# In particular, see

# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>

# for a discussion of each configuration directive.

#

# Do NOT simply read the instructions in here without understanding

# what they do. They're here only as hints or reminders. If you are unsure

# consult the online docs. You have been warned.

#

# Configuration and logfile names: If the filenames you specify for many

# of the server's control files begin with "/" (or "drive:/" for Win32), the

# server will use that explicit path. If the filenames do *not* begin

# with "/", the value of ServerRoot is prepended -- so "logs/access_log"

# with ServerRoot set to "/usr/local/apache2" will be interpreted by the

# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log"

# will be interpreted as '/logs/access_log'.

#

# NOTE: Where filenames are specified, you must use forward slashes

# instead of backslashes (e.g., "c:/apache" instead of "c:\apache").

# If a drive letter is omitted, the drive on which httpd.exe is located

# will be used by default. It is recommended that you always supply

# an explicit drive letter in absolute paths to avoid confusion.

懇切丁寧に書いてあるよ?

コメント書けっていうくせに、コメント読まねーの?

なにそれ、アホじゃねーの

2017-02-20

[]補足)はてなブックマークホットエントリ入りしたドメイン2005年2008年

http://anond.hatelabo.jp/20170220005414 の1年間隔のデータ

エントリの5年毎のデータじゃ思い出を振り返るには分解能が足りない気がしたので1年間隔で補足します。興味ない人にはスパムエントリ並にうざいのだろうから申し訳ないけど、その当時を見てたらただの数字の羅列には見えないのですよ。近々はてブシステムに大幅な改修が入るらしいから今やっとかないと来月も同じように見られるとは限らないしね。

はてなブックマークホットエントリ入りしたドメイン 2005年2008年

2005年3月2006年3月2007年3月2008年3月
386ドメイン439ドメイン312ドメイン280ドメイン
www.itmedia.co.jp(165)d.hatena.ne.jp(175)d.hatena.ne.jp(114)d.hatena.ne.jp(191)
japan.cnet.com(66)japan.cnet.com(49)blog.livedoor.jp(63)blog.livedoor.jp(78)
d.hatena.ne.jp(36)www.itmedia.co.jp(38)www.popxpop.com(59)www.itmedia.co.jp(50)
internet.watch.impress.co.jp(34)blog.livedoor.jp(30)www.itmedia.co.jp(50)www.asahi.com(40)
hotwired.goo.ne.jp(32)internet.watch.impress.co.jp(21)gigazine.net(43)gigazine.net(31)
headlines.yahoo.co.jp(28)phpspot.org(20)phpspot.org(29)coliss.com(28)
www.asahi.com(28)plusd.itmedia.co.jp(18)anond.hatelabo.jp(23)anond.hatelabo.jp(26)
itpro.nikkeibp.co.jp(26)japanese.engadget.com(17)www.youtube.com(19)www.ideaxidea.com(23)
pc.watch.impress.co.jp(21)www.asahi.com(17)www.atmarkit.co.jp(16)alfalfa.livedoor.biz(18)
pcweb.mycom.co.jp(21)itpro.nikkeibp.co.jp(15)www.designwalker.com(16)japan.cnet.com(18)
blog.livedoor.jp(20)www.atmarkit.co.jp(15)japan.cnet.com(15)phpspot.org(17)
www.watch.impress.co.jp(17)www.ringolab.com(13)journal.mycom.co.jp(15)e0166.blog89.fc2.com(13)
www.ringolab.com(15)www.mainichi-msn.co.jp(12)portal.nifty.com(15)sankei.jp.msn.com(13)
nikkeibp.jp(14)jkondo.hatenablog.com(10)netafull.net(13)wiredvision.jp(13)
www.atmarkit.co.jp(13)www.excite.co.jp(9)itpro.nikkeibp.co.jp(12)itpro.nikkeibp.co.jp(12)
www.forest.impress.co.jp(13)www.forest.impress.co.jp(9)blog.goo.ne.jp(10)www.atmarkit.co.jp(11)
shinta.tea-nifty.com(12)www.nyasoku.com(9)guideline.livedoor.biz(10)blog.goo.ne.jp(10)
www.geocities.jp(11)q.hatena.ne.jp(8)www.ideaxidea.com(10)www.designwalker.com(10)
www.hatena.ne.jp(10)hotwired.goo.ne.jp(7)labs.unoh.net(8)japanese.engadget.com(9)
slashdot.jp(9)pcweb.mycom.co.jp(7)q.hatena.ne.jp(8)ascii.jp(8)
finalvent.cocolog-nifty.com(8)takagi-hiromitsu.jp(7)www.100shiki.com(8)urasoku.blog106.fc2.com(8)
japan.internet.com(8)www.future-planning.net(7)www.watch.impress.co.jp(8)www.moongift.jp(8)
www.mainichi-msn.co.jp(8)www.hatena.ne.jp(7)zapanet.info(8)www.nicovideo.jp(8)
allabout.co.jp(7)bb.watch.impress.co.jp(6)2log.blog9.fc2.com(7)business.nikkeibp.co.jp(7)
bb.watch.impress.co.jp(7)caramel-tea.com(6)business.nikkeibp.co.jp(7)web-tan.forum.impressrd.jp(7)
blog.bulknews.net(7)fragments.g.hatena.ne.jp(6)www.forest.impress.co.jp(7)www.yomiuri.co.jp(7)
blog.japan.cnet.com(7)gigazine.net(6)www.j-cast.com(7)guideline.livedoor.biz(6)
kiri.jblog.org(7)headlines.yahoo.co.jp(6)ameblo.jp(6)jkondo.hatenablog.com(6)
naoya.dyndns.org(7)kengo.preston-net.com(6)e0166.blog89.fc2.com(6)labaq.com(6)
www.excite.co.jp(7)naoya.g.hatena.ne.jp(6)internet.watch.impress.co.jp(6)www.j-cast.com(6)
www.future-planning.net(7)neta.ywcafe.net(6)web-tan.forum.impressrd.jp(6)www.kajisoku.org(6)
www.nikkansports.com(6)pc.watch.impress.co.jp(6)codezine.jp(5)dain.cocolog-nifty.com(5)
www.yomiuri.co.jp(6)portal.nifty.com(6)www.aoky.net(5)finalvent.cocolog-nifty.com(5)
antipop.zapto.org(5)satoshi.blogs.com(6)www.asahi.com(5)news23vip.blog109.fc2.com(5)
blog.goo.ne.jp(5)shinta.tea-nifty.com(6)www.simplexsimple.com(5)plusd.itmedia.co.jp(5)
blog.tatsuru.com(5)www.geocities.jp(6)blogpal.seesaa.net(4)portal.nifty.com(5)
k-tai.impress.co.jp(5)www.youtube.com(6)css-happylife.com(4)satoshi.blogs.com(5)
www.cnn.co.jp(5)ameblo.jp(5)cyblog.jp(4)takagi-hiromitsu.jp(5)
www.nikkei.co.jp(5)blog.goo.ne.jp(5)dain.cocolog-nifty.com(4)wsoku.blog44.fc2.com(5)
artifact-jp.com(4)jibun.atmarkit.co.jp(5)loconet.web2.jp(4)www.afpbb.com(5)
hail2u.net(4)nikkeibp.jp(5)plusd.itmedia.co.jp(4)bb.watch.impress.co.jp(4)
homepage.mac.com(4)www.geocities.co.jp(5)satoshi.blogs.com(4)blog.creamu.com(4)
kengo.preston-net.com(4)www.yomiuri.co.jp(5)tech.nitoyon.com(4)builder.japan.zdnet.com(4)
takekuma.cocolog-nifty.com(4)beta.g.hatena.ne.jp(4)www.geekpage.jp(4)fujipon.hatenadiary.com(4)
www.100shiki.com(4)blog.japan.cnet.com(4)www.heiwaboke.com(4)headlines.yahoo.co.jp(4)
www.geocities.co.jp(4)column.chbox.jp(4)www.kajisoku.com(4)journal.mycom.co.jp(4)
www.sem-research.jp(4)dogfood.g.hatena.ne.jp(4)www.kitami.tv(4)lifehacking.jp(4)
dain.cocolog-nifty.com(3)ekken.blog1.fc2.com(4)www.sankei.co.jp(4)netanabe.blog78.fc2.com(4)
homepage1.nifty.com(3)hatena.g.hatena.ne.jp(4)www.tatamilab.jp(4)www.4gamer.net(4)
japanese.chosun.com(3)plaza.rakuten.co.jp(4)www.tez.com(4)ameblo.jp(3)
kotonoha.main.jp(3)web.archive.org(4)coliss.com(3)jp.techcrunch.com(3)
my.casty.jp(3)akihitok.typepad.jp(3)hatena.g.hatena.ne.jp(3)koerarenaikabe.livedoor.biz(3)
nais.to(3)arena.nikkeibp.co.jp(3)headlines.yahoo.co.jp(3)ktdisk.hatenablog.com(3)
sagittarius.dip.jp(3)blog.tatsuru.com(3)jp.techcrunch.com(3)labs.unoh.net(3)
sasapanda.com(3)blogpal.seesaa.net(3)la.ma.la(3)mainichi.jp(3)
www.sankei.co.jp(3)bogusnews.seesaa.net(3)medt00lz.s59.xrea.com(3)mereco.hatenadiary.com(3)
www.tokyo-np.co.jp(3)dain.cocolog-nifty.com(3)mellowmoon.blog93.fc2.com(3)netafull.net(3)
www.zakzak.co.jp(3)fujipon.hatenadiary.com(3)tangerine.hateblo.jp(3)pc.watch.impress.co.jp(3)
x51.org(3)nb.nikkeibp.co.jp(3)www.akiyan.com(3)waranote.blog76.fc2.com(3)
 news4vip.livedoor.biz(3)www.future-planning.net(3)workingnews.blog117.fc2.com(3)
 takekuma.cocolog-nifty.com(3)www.gizmodo.jp(3)www.excite.co.jp(3)
 ttchopper.blog.ocn.ne.jp(3)www.virtual-pop.com(3)www.forest.impress.co.jp(3)
 ultrabigban.cocolog-nifty.com(3)www.yomiuri.co.jp(3)www.gizmodo.jp(3)
 www.100shiki.com(3) www.watch.impress.co.jp(3)
 www.fmmc.or.jp(3)  
 www.h-yamaguchi.net(3)  
 www.hyuki.com(3)  
 www.ideaxidea.com(3)  
 www.lucky-bag.com(3)  
 www.sv15.com(3)  
 yukawasa.hatenablog.com(3)  
 zerobase.jp(3)  

(※カッコ内は回数)

毎年3月の全ホットエントリhttp://b.hatena.ne.jp/hotentry/20050215 から取得。タイルレイアウトで取得したので1日49件×31日で月間合計1519件弱のデータを基にしている。重複はuniqで取り除いてある。

http://anond.hatelabo.jp/20170220005414

順位はてブ割合ドメイン備考
12528.48%anond.hatelabo.jpごみ
22107.07%blog.livedoor.jpごみ
32046.87%togetter.comごみ
41936.5%www.itmedia.co.jp
51565.25%d.hatena.ne.jp
61294.34%www.asahi.com
7923.1%headlines.yahoo.co.jp
8802.69%gigazine.net
9762.56%www3.nhk.or.jp
10722.42%japan.cnet.com
11591.99%qiita.com
12501.68%www.lifehacker.jp
13391.31%www.slideshare.net
14351.18%alfalfalfa.com
15341.14%business.nikkeibp.co.jp
16341.14%internet.watch.impress.co.jp
17321.08%hatenanews.com
18321.08%hotwired.goo.ne.jp
19311.04%bylines.news.yahoo.co.jp
20290.98%nlab.itmedia.co.jp
21270.91%www.buzzfeed.com
22260.88%itpro.nikkeibp.co.jp
23240.81%hamusoku.com
24240.81%jp.techcrunch.com
25240.81%www.publickey1.jp
26240.81%www.yomiuri.co.jp
27230.77%japanese.engadget.com
28230.77%speakerdeck.com
29230.77%www.nikkei.com
30230.77%www.sankei.com
31230.77%www.welluneednt.com
32210.71%pc.watch.impress.co.jp
33210.71%pcweb.mycom.co.jp
34210.71%twitter.com
35190.64%kabumatome.doorblog.jp
36180.61%mainichi.jp
37180.61%www.atmarkit.co.jp
38170.57%himasoku.com
39170.57%news.livedoor.com
40170.57%www.huffingtonpost.jp
41170.57%www.watch.impress.co.jp
42160.54%toyokeizai.net
43160.54%www.47news.jp
44150.51%allabout.co.jp
45150.51%sankei.jp.msn.com
46150.51%www.ringolab.com
47140.47%nikkeibp.jp
48130.44%karapaia.livedoor.biz
49130.44%portal.nifty.com
50130.44%www.forest.impress.co.jp
51130.44%www.gizmodo.jp
52120.4%paiza.hatenablog.com
53120.4%shinta.tea-nifty.com
54110.37%news4vip.livedoor.biz
55110.37%weekly.ascii.jp
56110.37%www.geocities.jp
57110.37%www.youtube.com
58100.34%blog.goo.ne.jp
59100.34%kirik.tea-nifty.com
60100.34%phpspot.org
61100.34%r.nanapi.jp
62100.34%tabi-labo.com
63100.34%wired.jp
64100.34%www.afpbb.com
65100.34%www.cnn.co.jp
66100.34%www.hatena.ne.jp
67100.34%www.ideaxidea.com
6890.3%matome.naver.jp
6990.3%readingmonkey.blog45.fc2.com
7090.3%slashdot.jp
7180.27%coliss.com
7280.27%finalvent.cocolog-nifty.com
7380.27%japan.internet.com
7480.27%lineblog.me
7580.27%medium.com
7680.27%note.mu
7780.27%pipipipipi-www.hatenablog.com
7880.27%r.gnavi.co.jp
7980.27%www.mainichi-msn.co.jp
8070.24%bb.watch.impress.co.jp
8170.24%blog.bulknews.net
8270.24%blog.japan.cnet.com
8370.24%blog.tinect.jp
8470.24%diamond.jp
8570.24%e0166.blog89.fc2.com
8670.24%kachibito.net
8770.24%kiri.jblog.org
8870.24%naoya.dyndns.org
8970.24%photoshopvip.net
9070.24%workingnews.blog117.fc2.com
9170.24%www.appbank.net
9270.24%www.excite.co.jp
9370.24%www.future-planning.net
9460.2%blogos.com
9560.2%cards.hateblo.jp
9660.2%journal.mycom.co.jp
9760.2%macaro-ni.jp
9860.2%mudainodqnment.blog35.fc2.com
9960.2%satoshi.blogs.com
10060.2%www.j-cast.com
10160.2%www.nikkansports.com
10260.2%www.oshiete-kun.net
10360.2%www.yutorism.jp
10460.2%zasshi.news.yahoo.co.jp
10550.17%antipop.zapto.org
10650.17%blog.tatsuru.com
10750.17%blogs.itmedia.co.jp
10850.17%burusoku-vip.com
10950.17%gendai.ismedia.jp
11050.17%k-tai.impress.co.jp
11150.17%mantan-web.jp
11250.17%natalie.mu
11350.17%orecipe.hatenablog.com
11450.17%takagi-hiromitsu.jp
11550.17%techlife.cookpad.com
11650.17%this.kiji.is
11750.17%waranote.blog76.fc2.com
11850.17%www.newsweekjapan.jp
11950.17%www.nikkei.co.jp
12040.13%artifact-jp.com
12140.13%hail2u.net
12240.13%homepage.mac.com
12340.13%kengo.preston-net.com
12440.13%takekuma.cocolog-nifty.com
12540.13%www.100shiki.com
12640.13%www.geocities.co.jp
12740.13%www.sem-research.jp

そーす
#www.itmedia.co.jp(165)
#blog.livedoor.jp(103)

def main

    hatebu = {}
    total = 0

    open('hatebu.dat').each do |line|
        domain = line.split('(')[0]
        bukuma = line.split('(')[1].chomp[0..-2].to_i
        total += bukuma

        if hatebu.has_key?(domain)
            hatebu[domain] += bukuma
        else
            hatebu[domain] = bukuma
        end
    end

    index = 1
    hatebu.sort {|(k1, v1), (k2, v2)| v1 == v2 ? k1 <=> k2 : v2 <=> v1}.each do |kv|
        per = (kv[1].to_f / total * 100).round(2)
        print "|#{index}|#{kv[1]}|#{per}%|#{kv[0]}|\n"
        index += 1
    end

end

main

2017-01-14

http://anond.hatelabo.jp/20170114155348

明確な目標があるのに、もったいない

ネットだと、情報が多すぎるのかな

javascriptかな?と思ったけど、ruby

ifもforもでてこなくてスマ

eachが形を変えたforです

いろんなとこからコピペ量産して、2時間近くかかりました^^

api取得はすぐだったけど、json、hash、arrayでごにゃごにゃ)

rubyソース

# ライブラリ
require 'net/http';
require 'uri'
require 'json'

# 検索文字
$q = 'http://ci.nii.ac.jp/books/opensearch/search?q=%E7%B3%9E&format=json'

# web-apiから取得
# https://support.nii.ac.jp/ja/cib/api/b_opensearch
def search(q)
    uri = URI.parse(q)
    json = Net::HTTP.get(uri)
    result = JSON.parse(json)
end

=begin
取得データ1件サンプル
{"title":"糞土",
"link":{"@id":"http://ci.nii.ac.jp/ncid/AN00094249"},
"@id":"http://ci.nii.ac.jp/ncid/AN00094249",
"@type":"item",
"rdfs:seeAlso":{"@id":"http://ci.nii.ac.jp/ncid/AN00094249.json"},
"dc:date":"1953",
"dc:creator":"糞土会",
"dc:publisher":["糞土会"],
"prism:publicationDate":"1953",
"cinii:ownerCount":"8"},
=end

# データ整形
#
# 入力データ構造
# {"@id":"http://ci.nii.ac.jp/books/opensearch/search?q=%E7%B3%9E&format=json",
#  "@graph":[ { "items":[ ,,,
#
# 出力(ハッシュ)
# {title => dc:date ,,, }
def format(hash)
    title_date = Hash.new

    # ハッシュキー"@graph"の値の配列の先頭のハッシュキー"items"のハッシュ配列を取得
    items = hash['@graph'][0]['items']

    # タイトル出版年を取得して、戻り値ハッシュへ追加していく
    items.each do |item|
        title = item['title'].chomp
        date  = item['dc:date']
        title_date.store(title, date)
    end

    return title_date
end

# 並び替え
def sort(hash)
    hash.sort_by do |key, value|
        value
    end
end

# 出力
def print(hash)
    hash.each do |key, value|
        puts "#{value}年 #{key}"
    end
end

# メイン関数
def main
    # web-api検索して、
    result1 = search($q)
    # データを整形して、
    result2 = format(result1)
    # 出版年で並び替えて、
    result3 = sort(result2)
    # 出力する
    print(result3)
end

# 実行
main

rubyスクリプトの実行結果

C:\Users\unko\Desktop\prog>ruby webapi.rb
1848年 人欲辨 (じんよくべん)
1870年 雀糞論説
1920年 青瓷説
1933年 管内ニ於ケル鶏糞ノ利用状況
1947年 糞尿譚 : 小説1953年 糞土
1955年 黒い裾
1955年 形成
1959年 石糞
1972年 糞 : 海田真生個人文芸誌
1972年 乳幼児糞便図譜
1987年 糞尿と生活文化
1991年 皇居と糞尿と大嘗祭 : 皇居「糞尿」裁判を支える会ニュース
1995年 糞袋
2000年 糞尿史 : 遷都は糞尿汚染からの逃避だった
2005年 「糞尿」大全
2007年 糞虫たちの博物誌
2008年 うんちのはなし : う~んとげんきになる
2009年 糞神

2016-09-19

http://anond.hatelabo.jp/20160919121645

最近の若者ワンライナーなのか、3項演算子使わないと馬鹿にされるのか知らないけれど、

賢そうな構文は使わなくていい。

boolean check(int param, int param2, int param3)
{
    if ( param == 0 && 判定(param2) )
    {
        return true;
    }
    else if ( param3 == false )
    {
        return true;
    }
    else
    {
        returnn false;
    }
}


void main()
{
    if ( check(param, param2, param3) )
    {
        //したいこと
    }
}

2016-07-30

http://anond.hatelabo.jp/20160730155428

悪い、昼間っからビール飲みだしたから、もうよくわからん

それをそのままってのが意味がよくわからんけど、

newしてから渡せば良いと思うよ。

いちいちクラスに分ける理由は、こういう感じで、クラス内の変数アクセスすれば、画面事の表示とかが簡単に出来る的な?

EventHogeクラスクリックした時のイベント定義するクラス

      // Javaの書き方しらん、インターフェース実装することを定義したい

      public class EventHoge : View.OnClickListener {

        

        //画面事の名称

        public string ViewName = "";

        // Javaの書き方しらん、インターフェースメソッド実装することを定義したい

        public void View.OnClickListener.onClick(View v) {

            // 元増田サンプルそのまま ーー>

            AlertDialog.Builder dlg;

            dlg = new AlertDialog.Builder(MainActivity.this);

            dlg.setTitle("画面の名前:" + ViewName); // 画面名称が表示されるイメージ

            dlg.setMessage("Hello, サンプル!");

            dlg.show();

            //<ーー

       }

     }

MainHogeクラス(画面の初期化を行い、どのボタンにどのイベントを仕込むかを決めるクラス

    // Androidなにも知らんけど、元増田ボタンイベントを書く処理が書いてあるクラスのことが言いたい

    public class MainHoge {

        // そのメソッド

        public void Main() {

            //ボタン実装サンプル

            final Button button = new Button(this);

            button.setText("ダイアログの表示");

            View.OnClickListener ocl = new EventHoge();

            ocl.ViewName = "画面その一";

            button.setOnClickListener(ocl);

        }

    }


こんな感じにすれば、画面が二つあって、

その画面の名称を表示するようなボタンを、二つメソッドコピペして作らなくていい的な?

もうぶっちゃけ元増田が何を悩んでるのか、ようわからんわ。

サンプルは、出来るだけとっちらかさないよう、匿名クラスとか使って、サンプルで紹介したいところ「だけ」を書くんだよね。

から、そのサンプルがどういう意味かをちゃんと読み取って、自分ならこう書くとか、こう書けるか? とかを考えてこそ勉強だと思うよ?

今回のレイだと「View.OnClickListener」っていうインターフェイス実装したクラスを、setOnClickListenerすればいいってことさえわかれば、

匿名クラス?(っていうのかな? ちょっと用語はよくしらん、クラス定義を使い回さず、その場だけのクラス定義を書く書き方)とかを使わずに、

どういうふうに応用ができるか? とか頑張れ!

頑張れ!

頑張れ!

はああああああ。

おれはビールを飲む!

http://anond.hatelabo.jp/20160730125112

うーん?

いや、なんか、通じてないな。

もうちょいサンプル詳しく書くからサンプルのどこがわからいか言ってくれ。

EventHogeクラスクリックした時のイベント定義するクラス

      // Javaの書き方しらん、インターフェース実装することを定義したい

      public class EventHoge : View.OnClickListener {

        // Javaの書き方しらん、インターフェースメソッド実装することを定義したい

        public void View.OnClickListener.onClick(View v) {

            // 元増田サンプルそのまま ーー>

            AlertDialog.Builder dlg;

            dlg = new AlertDialog.Builder(MainActivity.this);

            dlg.setTitle("サンプル");

            dlg.setMessage("Hello, サンプル!");

            dlg.show();

            //<ーー

       }

     }

MainHogeクラス(画面の初期化を行い、どのボタンにどのイベントを仕込むかを決めるクラス

    // Androidなにも知らんけど、元増田ボタンイベントを書く処理が書いてあるクラスのことが言いたい

    public class MainHoge {

        // そのメソッド

        public void Main() {

            //ボタン実装サンプル

            final Button button = new Button(this);

            button.setText("ダイアログの表示");

            button.setOnClickListener(new EventHoge());

        }

    }


こうやって、クラス分けて書けば、外とか中とか、全く関係なくなるじゃん。

元増田サンプルだと、メインの中でインターフェース実装したクラス実装を書いてるから、中とか外とかがあるんじゃないのか?

自分クラスとして定義して、そっちで実装すれば、メインは紐づけるだけでよくなって、仮引数?の中で実装しなくてもすむじゃん。

2016-07-25

gitにおけるコミットログ/メッセージ例文集100

私はコミットログの書き方に悩む英語の苦手な人間である。実際、似たような人は世の中に結構いるようで、頻出単語を集計したりまとめたものは既にあって役に立つのだけれど、これらはあくま単語の話であり、具体的な文を構成する過程でやっぱり困る部分がかなりあった。

要するに、どういう時にどういう文が使われているのか、ということを示した例文集が欲しいのであるググると他にも「例文集があればいいのに」みたいな声はあるくせして、しかし誰も作ろうとしない。何なんだお前ら。それじゃ私が楽できないじゃないか

仕方なく自分でまとめたので、増田に垂れ流しておく。

はじめに

ここで挙げているコミットログは全て実際のコミットログから転載である。当然ながら各コミットログ著作権はそれぞれの書き手にある。いずれも各英文でググれば出てくるし、フェアユース範囲なら許してくれるだろうと考え名前プロジェクト名は割愛したが、ここにお詫びと感謝を述べておきたい。

抽出条件だが、参考にできそうなコミットログを多く含んでいそうなリポジトリGitHubSTARの多い方からざっと目で見て適当に選び、それぞれ最新コミットから5000件抽出した(あわせて前処理として、コミットログ冒頭のタグ情報は消去した)。

結果として対象としたリポジトリは以下の通り。

atomのみ5400件抽出していたため、計25400件のコミットログベースである。このうち、以下の条件に合致するものは参考例にすべきでないとして一律排除した。

こうして残った8540件を眺めながら、適当に切り出したのがこの用例集である個人的に「うーんこの」と思った表現も、散見される場合は載せた。

ということで、以下用例を羅列していく。

用例集

オプションフラグメニューを追加した
ファイルを追加した
メソッド機能を追加した
実装を別のものへ切り替えた
  • Use args.resourcePath instead of args.devResourcePath
  • Use arrays instead of while loops
  • Use auto instead of repeating explicit class names
  • Use weak pointer instead of manual bookkeeping
  • Change all uses of 'CInt' to 'Int32' in the SDK overlay
  • Change Integer#year to return a Fixnum instead of a Float to improve consistency
新しく何かに対応した/機能上の制約を取り払った
何かを使うようにした
より好ましい実装に改良した
何かを出来ない/しないようにした
  • Don't bail reading a metadata instance if swift_isaMask isn't available
  • Don't exit until the parent asks for an instance
  • Don't include Parent pointer in Nominal/BoundGeneric TypeRef uniquing
  • Don't use MatchesExtension for matching filters
  • Don't use ES6 class for AutoUpdater windows class
  • Don't use MatchesExtension for matching filters
  • Avoid `distinct` if a subquery has already materialized
  • Avoid infinite recursion when bad values are passed to tz aware fields
オブジェクトの内容や挙動確認やすくした
Assertを追加した
不要コードを除去した
コードを移動した
名前修正した
さなバグタイポ修正した, 警告を潰した
バグや好ましくない挙動修正した
テストコメントドキュメントを追加した
テストを削除した
テストコメント修正した
ドキュメント修正した

表現傾向とまとめ

以上の用例をふまえ、今回の参考ログ8540件から先頭の単語を出現回数で並べると次のようになった。

Add1149
Fix1014
Update584
Remove566
Use382
Don't260
Make228
Move178
Change103
Rename85
Improve76
Avoid68
Allow65
Implement60
Handle58

コミットログの基本形はもちろん動詞 + 名詞である名詞固有名詞複数形、不可算名詞が多いが、単数形場合冠詞は a が使われるか、あるいは省略される。the はまず使われない。

何かを追加した、という表現では非常に広く Add が使われる。メソッドからテストドキュメントに至るまで大概これでまかなえる。

一方、何かを修正した、という表現では広く Fix が使われる。「何か」は typocrash といった単語からメソッド名まで幅広い名詞を取るが、動名詞はあまり取らないのと、that節は取らないのでその点は注意が必要である

Fix は「何かが正しく動くようにした」ことを示し、正しい動作内容が何かを説明しない。そこで正しい動作内容に言及したい場合Make sure が使われる(こちらはthat節が取れる)。ただし Fix よりもニュアンス的に重い表現と思われ、Fix を使わず Make sure ばかり使うのはちょっとキモいのではないかと思う(Ensure はさらに重い表現っぽい)。

また、Fixtypo 以外でのドキュメント修正に対して使われることは稀である。対して Update はドキュメントコメントテストに使われ、本体コード修正に対しては使われない。本体コード修正にあわせてテスト更新したなら Update が使われる。ただ、テスト機構それ自体バグ修正したなら Fix である

無駄な何かを単純に除去したなら Remove を使う。これまでのもの(A)からのもの(B)に切り替えたのであれば Use B instead of A か Change A to B が使われる。新たに何かを利用するようにしたのであれば Use を、利用を取りやめた場合Don't use を使うことが多い。

何かをしないようにしたなら Don't を、内部実装効率化なら Make A + 比較級/形容詞Improve が使われる。

中身の変更を伴わない単なる名前の変更なら Rename A to B、コード機能論理上の場所を移動させたなら Move A to B である

この辺はリファクタリングと呼ばれる行為と思うが、Refactor というぼんやりした動詞はあまり使われず、このように変更内容の種類に応じて動詞が使い分けられている。

余談

コミットログにはWhyを書くべきだ、というのを何かで見かけたので because とか since を使ったログがどの程度あるかを調べたが、8540件のうち22件だった。基本的に短く、シンプルに、一目で意味が取れるログが好まれる傾向がある。例えば get rid of とか2件しか使われておらず、圧倒的に remove である

一方で、シンプル単語だけど開始単語としては使われないものもある。例えば次のような単語である。Expand(9)、Extend(8)、Print(5)、Optimize(5)、Publish(4)、Append(4)、Modify(3)、Manage(2)、Revise(2)、Dump(2)、Insert(2)、Migrate(2)、Enhance(1)、Edit(1) 。いずれもカッコ内は8540件に対する冒頭での登場回数である。結局、より一般的平易な単語で表せたり、Refactor同様に抽象度が高すぎると使われないのだろう。

おわりに

8000件もログを見たおかげで、迷いなくコミットメッセージが思いつくようになったのが個人的には今回書いてて最大の収穫だった。たぶんカンニングペーパーを作る行為それ自体効率のいい学習になるという話と同じだと思う。

このまとめも100以上用例を転載してあるので、それを読むだけでも多少は効果があるんじゃないかと思う。同じようにコミットログ書きたくねぇなぁ英語わっかんねぇなぁと思っている人にとって、何か役に立つところがあれば幸いである。

2016-07-13

xc8

// コンフィギュレーション1の設定

#pragma config FOSC = INTOSC // 内部クロック使用する(INTOSC)

#pragma config WDTE = OFF // ウオッチドッグタイマー無し(OFF)

#pragma config PWRTE = ON // 電源ONから64ms後にプログラムを開始する(ON)

#pragma config MCLRE = OFF // 外部リセット信号使用せずにデジタル入力(RA3)ピンとする(OFF)

#pragma config CP = OFF // プログラムメモリーを保護しない(OFF)

#pragma config CPD = OFF // データメモリーを保護しない(OFF)

#pragma config BOREN = ON // 電源電圧降下常時監視機能ON(ON)

#pragma config CLKOUTEN = OFF // CLKOUTピンをRA4ピンで使用する(OFF)

#pragma config IESO = OFF // 外部・内部クロックの切替えでの起動はなし(OFF)

#pragma config FCMEN = OFF // 外部クロック監視しない(OFF)

// コンフィギュレーション2の設定

#pragma config WRT = OFF // Flashメモリーを保護しない(OFF)

#pragma config PLLEN = OFF // 動作クロックを32MHzでは動作させない(OFF)

#pragma config STVREN = ON // スタックオーバフローやアンダーフローしたらリセットをする(ON)

#pragma config BORV = HI // 電源電圧降下常時監視電圧(2.5V)設定(HI)

#pragma config LVP = OFF // 低電圧プログラミング機能使用しない(OFF)

// メインの処理

void main()

{

char s[8] ;

unsigned int cap ;

OSCCON = 0b01110010 ; // 内部クロックは8MHzとする

ANSELA = 0b00000100 ; // アナログはAN2を使用し、残りをすべてデジタルI/Oに割当

TRISA = 0b00000100 ; // AN2(RA2/CPS2)だけ入力その他のピンは出力に割当てる(RA3は入力専用)

PORTA = 0b00000000 ; // 出力ピンの初期化(全てLOWにする)

// 容量検知モジュール(CPSM)の設定

CPSCON0 = 0b00001000 ; // オシレータは中範囲(中速の発信周波数)で利用する

CPSCON1 = 0b00000010 ; // CPS2から入力する

// タイマー1の設定

T1CON = 0b11000001 ; // 容量検知オシレータでTIMER1をカウントする、プリスケーラカウント値 1:1

TMR1H = 0 ; // タイマー1の初期化

TMR1L = 0 ;

PEIE = 1 ; // 周辺装置割り込み許可する

GIE = 1 ; // 全割り込み処理を許可する

CPSON = 1 ; // 容量検知モジュール開始

MonitorInit() ; // LCDモニター送信出来る様に初期化する

while(1) {

// 容量検知モジュールの値を読み込む

CPSON = 0 ; // 容量検知モジュール停止

cap = (TMR1H*256) + TMR1L ; // カウント値を読み込む

TMR1H = 0 ; // タイマー1の初期化

TMR1L = 0 ;

CPSON = 1 ; // 容量検知モジュール開始

// 読んだ値をLCDモニターに表示する

utoa(s,cap,10) ; // カウント値を文字列に変換する

MonitorPutc(0x11) ; // モニターの表示位置を設定する

MonitorPuts(" ") ; // 表示を消す

MonitorPutc(0x11) ; // モニターの表示位置を設定する

MonitorPuts(s) ; // 表示する

// 400ms後に繰り返す

__delay_ms(400) ;

}

2016-07-05

Skip to main content

简体中文 English Français Русский Español العربية Portuguese

ICANN WHOIS

ABOUT WHOIS POLICIES GET INVOLVED WHOIS COMPLAINTS KNOWLEDGE CENTER

gole.tech

Lookup

Showing results for: GOLE.TECH

Original Query: gole.tech

Contact Information

Registrant Contact

Name: guoyusheng

Organization: guoyusheng

Mailing Address: nantou, nanshanqu guangdongsheng 518052 CN

Phone: +086.075586334158

Ext:

Fax: +086.075586334158

Fax Ext:

Email: gys2008@vip.qq.com

Admin Contact

Name: guo yusheng

Organization: guoyusheng

Mailing Address: nantou, nanshanqu guangdongsheng 518052 CN

Phone: +086.075586334158

Ext:

Fax: +086.075586334158

Fax Ext:

Email: gys2008@vip.qq.com

Tech Contact

Name: guo yusheng

Organization: guoyusheng

Mailing Address: nantou, nanshanqu guangdongsheng 518052 CN

Phone: +086.075586334158

Ext:

Fax: +086.075586334158

Fax Ext:

Email: gys2008@vip.qq.com

Registrar

WHOIS Server: whois.paycenter.com.cn

URL: http://www.xinnet.com

Registrar: Xin Net Technology Corp.

IANA ID: 120

Abuse Contact Email:

Abuse Contact Phone:

Status

Domain Status: ok https://icann.org/epp#ok

Important Dates

Updated Date: 2016-04-25

Created Date: 2016-04-07

Registration Expiration Date: 2017-04-08

Name Servers

NS11.XINCACHE.COM

NS12.XINCACHE.COM

Raw WHOIS Record

Domain Name: GOLE.TECH

Domain ID: D19530286-CNIC

WHOIS Server: whois.paycenter.com.cn

Referral URL: http://www.xinnet.com

Updated Date: 2016-04-25T22:05:26.0Z

Creation Date: 2016-04-08T01:37:36.0Z

Registry Expiry Date: 2017-04-08T23:59:59.0Z

Sponsoring Registrar: Xin Net Technology Corp.

Sponsoring Registrar IANA ID: 120

Domain Status: ok https://icann.org/epp#ok

Registrant ID: C47347230-CNIC

Registrant Name: guoyusheng

Registrant Organization: guoyusheng

Registrant Street: nantou

Registrant City: nanshanqu

Registrant State/Province: guangdongsheng

Registrant Postal Code: 518052

Registrant Country: CN

Registrant Phone: +086.075586334158

Registrant Phone Ext:

Registrant Fax: +086.075586334158

Registrant Fax Ext:

Registrant Email: gys2008@vip.qq.com

Admin ID: C46402288-CNIC

Admin Name: guo yusheng

Admin Organization: guoyusheng

Admin Street: nantou

Admin City: nanshanqu

Admin State/Province: guangdongsheng

Admin Postal Code: 518052

Admin Country: CN

Admin Phone: +086.075586334158

Admin Phone Ext:

Admin Fax: +086.075586334158

Admin Fax Ext:

Admin Email: gys2008@vip.qq.com

Tech ID: C46402288-CNIC

Tech Name: guo yusheng

Tech Organization: guoyusheng

Tech Street: nantou

Tech City: nanshanqu

Tech State/Province: guangdongsheng

Tech Postal Code: 518052

Tech Country: CN

Tech Phone: +086.075586334158

Tech Phone Ext:

Tech Fax: +086.075586334158

Tech Fax Ext:

Tech Email: gys2008@vip.qq.com

Name Server: NS11.XINCACHE.COM

Name Server: NS12.XINCACHE.COM

DNSSEC: unsigned

Billing ID: C46402288-CNIC

Billing Name: guo yusheng

Billing Organization: guoyusheng

Billing Street: nantou

Billing City: nanshanqu

Billing State/Province: guangdongsheng

Billing Postal Code: 518052

Billing Country: CN

Billing Phone: +086.075586334158

Billing Phone Ext:

Billing Fax: +086.075586334158

Billing Fax Ext:

Billing Email: gys2008@vip.qq.com

>>> Last update of WHOIS database: 2016-07-04T17:33:49.0Z <<<

For more information on Whois status codes, please visit https://icann.org/epp

This whois service is provided by CentralNic Ltd and only contains

information pertaining to Internet domain names registered by our

our customers. By using this service you are agreeing (1) not to use any

information presented here for any purpose other than determining

ownership of domain names, (2) not to store or reproduce this data in

any way, (3) not to use any high-volume, automated, electronic processes

to obtain data from this service. Abuse of this service is monitored and

actions in contravention of these terms will result in being permanently

blacklisted. All data is (c) CentralNic Ltd https://www.centralnic.com/

Access to the whois service is rate limited. For more information, please

see https://registrar-console.centralnic.com/pub/whois_guidance.

Submit a Complaint for WHOIS

WHOIS Inaccuracy Complaint Form

WHOIS Service Complaint Form

WHOIS Compliance FAQs

NOTICE, DISCLAIMERS AND TERMS OF USE:

All results shown are captured from registries and/or registrars and are framed in real-time. ICANN does not generate, collect, retain or store the results shown other than for the transitory duration necessary to show these results in response to real-time queries.* These results are shown for the sole purpose of assisting you in obtaining information about domain name registration records and for no other purpose. You agree to use this data only for lawful purposes and further agree not to use this data (i) to allow, enable, or otherwise support the transmission by email, telephone, or facsimile of mass unsolicited, commercial advertising, or (ii) to enable high volume, automated, electronic processes to collect or compile this data for any purpose, including without limitation mining this data for your own personal or commercial purposes. ICANN reserves the right to restrict or terminate your access to the data if you fail to abide by these terms of use. ICANN reserves the right to modify these terms at any time. By submitting a query, you agree to abide by these terms.

There is one exception: ICANN acts as the registry operator for the .int TLD, and in that capacity it does collect, generate, retain and store information regarding registrations in the .int TLD.

© 2016 Internet Corporation for Assigned Names and Numbers Privacy Policy

2016-06-23

なんだかんだで諦める、教えを乞う、仕切りなおすのは3時間過ぎてからだと悟った

#include <stdio.h>

main(){

int i=0;

int j,k ;

int data[10]={1,1,1,1,1,1,1,1,1,1};

int data2[10];

//j = data[4] ; 左辺に右の値が与えられる常識を忘れた男現る

while(i <= 10){

j = data[i] ;

data2[j-1] = j;

k=data2[j-1];

printf("%d",k*2);

i++;

}

}

2016-05-18

http://anond.hatelabo.jp/20160517172131

http://qiita.com/nonstarter/items/2763f5d85f2b8df3b18b

main = playBanana disp colour freq gen

https://hackage.haskell.org/package/gloss-banana-0.1.0.4/docs/src/Graphics-Gloss-Interface-FRP-ReactiveBanana.html

  playIO display colour frequency ()
    (\      _ → readIORef pictureref)
    (\ ev   _ → () <$ event ev)
    (\ time _ → () <$ tick time)

https://hackage.haskell.org/package/gloss-1.10.1.1/docs/src/Graphics-Gloss-Interface-IO-Game.html

playIO  display backColor simResolution
        worldStart worldToPicture worldHandleEvent worldAdvance

 = playWithBackendIO defaultBackendState
        display backColor simResolution
        worldStart worldToPicture worldHandleEvent worldAdvance
        False

https://hackage.haskell.org/package/gloss-1.10.1.1/docs/src/Graphics-Gloss-Internals-Interface-Game.html

                , Callback.Idle         (callback_simulate_idle 
                                                stateSR animateSR (readIORef viewSR)
                                                worldSR (\_ -> worldAdvance)
                                                singleStepTime)

これ以上は説明も回答もしない。

2016-05-02

C言語


Gnu pack

Develop版 インストール

C直下gnu pack のユーザーガイドHTML

ダウンロードする gnu pack devel-11.0 exe

三万から五万に素数がいくつあるか

gccmeadowを使う

ホームディレクトリにCというのを作る

mkdir と打つ

その後Prog1 というのを作る

CD で移動

Prog1をカレントディレクトリに。

home/c/plog1/01

emacs & と打つ

#include <stdio.h>

main() {

Printif("hello.");

}

と打つ

実行画面に $ gcc -o hello hello.c. ドルマークは一つだけ。

$ ./hello

hello

演習1

学籍番号と氏名を表示させるプログラムensyu1をつくる。

実行形式→Ensyu1cをつくる 文字化けがあるので シフトJIS

エスケープシーケンスに注意 使う文字の前に入れるらしい

プログラム

演習2

プログラムensyu2c.を作成

Ensyu2という実行形式ファイルコンパイルせよ

エスケープシーケンス. ¥n を利用して

アスキーアートを作れ

-----------

中間テストまではメイン関数のみ その後は自分関数をつくる

2016-04-18

出る杭を打つ技術

若者の成長曲線は半端なく、おじさんエンジニアは日々恐怖を覚えます

出る杭はちゃんと打っておきましょう。

環境の弄りがいのあるツールを教える

Emacs, VIM, zsh, tmuxなど…設定のいじりがいのあるツール理想環境を追い求めても終わりはなく、コンフィグはどんどん膨れ上がるばかりです。

それらを「一流のプログラマは、一つの道具にこだわりとことん使い尽くすもんだぜ」とでも言って、ずっとDotfilesのリポジトリばかりいじるようになってくれれば、彼らがプログラミングに費やす時間は減るはずです。

バイナリアンにさせる

いくらアプリケーションが作れても、低レイヤのことが分からないとダメだと刷り込みます

プログラムがどうやって起動するか分かってる? えっ、mainを書けばそれが呼ばれる? あのなぁ、_startというのがあってだな…」

無駄に低レイヤに詳しいおじさん力を活かして、あたか高水言語でオレすげーしてるのは、お釈迦さまの手のひらの孫悟空みたいなものだと、思わせていくのです。

そうこうして、若者たちバイナリエディタを眺めて、「ふむふむこのファイルは〇〇だなっ」などと口にするようになったら儲けものです。高機能IDEを使うよりも、バイナリエディタを愛用しそこに時間を使うようになるでしょう。

安定しないものに飛びつかせる

安定したプロダクトは、あっという間に習得してしまい、我々おじさんたちが安定するまで四苦八苦して身につけたノウハウは、「あっ、いまはそんなことしなくても大丈夫っすよ。昔は大変だったんすねw」と一笑に付される恐れがあります

Javascript界隈など、安定しないプロダクトを積極的に使わせるように導きましょう。そこでGitHubにIssuesを上げまくるようになれば、時間を費やさせることができるでしょうし、さらには「このプロダクトはいつまでたってもクソだから、オレがもっとイケてるやつを作ることにしましたよー」なんて方向に向かわせることができれば、しめたものです。

作業でやればすぐ済むことをツール化させる

若者作業スピードの向上はかなりのものです。おじさんたちの体力と作業スピードでは到底かないません。

そこで、「若いんだからそんなこと手作業でやるんじゃない。ツール作っておけば、次からは一瞬で済むようになるだろうっ」と言ってやりましょう。若者ツールを作っている間に着々と作業すませてやるのです。

イベントに登壇させる

プレゼンというのは慣れてないと、激しく時間を使います若者にはイベントの登壇機会を積極的にあたえ、そこで時間を使わせてやりましょう。

「ここで、〇〇って質問きたらどうする? えっ、考えてなかった? いやー、じゃあこれも調べておかないとねぇ」

なんて、いいながらレビューしてあげて、どんどん深みにはめてやりましょう。

2016-04-01

月刊Vim 3月号 - ゼロ除算編

:echo 1 / 0
:echo 0 / 0
2147483647
-2147483648

きっしょwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

他の言語もチェックしてみるか

golang

package main

import "fmt"

func main() {
	fmt.Println(1 / 0)
	fmt.Println(0 / 0)
}

division by zero

php

echo 1 / 0;
echo 0 / 0;

PHP Warning: Division by zero

python 2

print 1 / 0
print 0 / 0

ZeroDivisionError: integer division or modulo by zero

python 3

print(1 / 0)
print(0 / 0)

ZeroDivisionError: division by zero

nodejs

nodejsだと1/0と0/0で異なるメッセージが表示された。

console.log(1 / 0);

Infinity

console.log(0 / 0);

NaN

luajit

luajitだとnodejsで表示されたメッセージの短縮形で表示された

print(1 / 0)

inf

print(0 / 0)

nan

haskell

修正しました thx @anekos

main = do
    print(1 / 0)

Infinity

main = do
    print(0 / 0)

NaN

java

public class Test {
    public static void main(String[] args) {
        System.out.println(1 / 0);
    }
}
public class Test {
    public static void main(String[] args) {
        System.out.println(0 / 0);
    }
}
Exception in thread "main" java.lang.ArithmeticException: / by zero
        at Test.main(Test.java:3)

bash

#!/bin/bash

echo $((1 / 0))
echo $((0 / 0))
test.bash: 行 4: 1 / 0: 0 による除算です (エラーのあるトークンは "0")
test.bash: 行 5: 0 / 0: 0 による除算です (エラーのあるトークンは "0")



haskellnodejsとluajitはエラーにならないけどまあいい。

Vimはやべえよ。


結論言語わずゼロ除算はするな









しまった、4月だった。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん