続・CodeJP 2013にて出題されたコードゴルフを頑張ってみた #codejp

CodeJP 2013にて出題されたコードゴルフを頑張ってみた #codejp - tututenの備忘録の続き
いろんな人のコードを参考に、自分の脳みそこねこねした集大成。
まだ短くなるかもだけど、また時間かかりそうなのでとりあえず載せるよ!

続きを読む

CodeJP 2013にて出題されたコードゴルフを頑張ってみた #codejp

イベントに参加したことよりまずこっちの話題をまとめとこうと思う。

2013/8/3(土),4(日)の2日間にて参加したイベントで、
3日に問題が出題されて、4日に3人1チームで組みコードをチューニングして提出するというもの。
いろんな人の考え方、切り崩し方(?)を垣間見ることが出来てとても楽しかったです。
てことで、以下コード話をつらつら

続きを読む

ダイヤ表示をするための考察

前回Ohotech 特盛#4 にて、島田さんによるプログラム公開大会が行われた。
その中で最終問題でダイアモンドを表示させるってことで、
いくつか解答を考えてみた。

続きを読む

擬似乱数から「hello world」表示できるのをLINQで探してみた

まずはじめに。
元ネタ様→java - Why does this code print "hello world"? - Stack Overflow
先駆者様→ランダム関数による hello world | 札幌ワークス


を踏まえた上でLINQでやってみた。

続きを読む

FizzBuzzを1ライナーしてみよう

以前Python札幌勉強会の時に、

for i in ( 'fizzbuzz' if x % 15 == 0 else 'buzz' if x % 5 == 0 else 'fizz' if x % 3 == 0 else x for x in range(1, 101) ) : print i 


とあったのをふとしたきっかけで短くしてみた。
まず、利用したのが短絡評価による「文字("fizz","buzz","fizzbuzz")」と「数字」を分ける

>> a = '' or 2
>> a
2
>> a = 'fizz' or 2
>> a
'fizz'
>> x = 3
>> a = ['','fizz'][not x%3] or x
'fizz'
>> x = 4
>> a = ['','fizz'][not x%3] or x
4


これにより、以下のソースが組み上がる

>> [['','fizz'][not x%3]+['','buzz'][not x%5]or x for x in range(1,31)]
[1,
 2,
 'fizz',
 4,
 'buzz',
 'fizz',
 7,
 8,
 'fizz',
 'buzz',
 11,
 'fizz',
 13,
 14,
 'fizzbuzz',
 16,
 17,
 'fizz',
 19,
 'buzz',
 'fizz',
 22,
 23,
 'fizz',
 'buzz',
 26,
 'fizz',
 28,
 29,
 'fizzbuzz']


更に「not 」>「>0」のほうが短いので

>> [['fizz',''][x%3>0]+['buzz',''][x%5>0]or x for x in range(1,31)]
[1,
 2,
 'fizz',
 4,
 'buzz',
 'fizz',
 7,
 8,
 'fizz',
 'buzz',
 11,
 'fizz',
 13,
 14,
 'fizzbuzz',
 16,
 17,
 'fizz',
 19,
 'buzz',
 'fizz',
 22,
 23,
 'fizz',
 'buzz',
 26,
 'fizz',
 28,
 29,
 'fizzbuzz']

CLR/H #79 に参加して来ました #clrh79

こっちのほうが新しいよ!

CLR/H #79 勉強会 雪祭りフェスティバル 2013

2013/02/09開催
togetter
いつものマイクロソフト北海道支社の会議室。
毎回、毎回思うのですがここから望む町並みが壮観、
機会があればJRオフィスタワーの最上階の喫煙室付近に来るといいよ(ぇ

続きを読む

CLR/H #78 に参加して来ました #clrh78

あんまりにも書かなすぎて開催2回分溜まってしまった。
情けない話である。

CLR/H #78 テストデイ

2013/01/19開催
togetter
初のインフィニット・ループさんの会議室に入りました。
職場のほうも気になったりしましたがすりガラス越しで残念。
うまい棒があるとは聞いてましたがまさかほんとうにあるとは。




テストデイってことでした

続きを読む

LDD13isに参加して来ました #ldd13is

1/26(土)に宮の沢ちえりあにて、
Local Developer Day '13 Infra & Securityに参加して来ました。
長丁場でしたが、懇親会含め楽しく参加させてもらいました。
ネットエージェントのカレンダーがゲット出来たことが一番の収穫とか言えない(ぉぃ

続きを読む

第13回北海道情報セキュリティ勉強会 に参加してきました #secpolo

11/10(土)に第13回北海道情報セキュリティ勉強会に参加してきました。
北海道大学札幌キャンパスの人文・社会科学総合教育研究棟(W棟)2階 W201に行って来ました・・・が、
北大構内迷いますね!(札幌駅から、銀杏並木を北12条まで歩いていた)

続きを読む

mtraceを使ってみた

しっくハック: メモリリーク検出:mtrace編
↑を参考に使ってみた

ソース: malloc_test.c

#include<stdio.h>
#include<stdlib.h>
#include<mcheck.h>

int malloc_test()
{
  char *c, *d;
  c = (char *)malloc(100);
  d = (char *)malloc(100);
  free(c);
  return 1;
}

int main()
{
  mtrace();
  malloc_test();
  muntrace();
}


コンパイルからmtrace実行まで

$ pwd
/home/user/mtrace
$ ls
mallc_test.c
$ export MALLOC_TRACE="./mtrace.log"
$ gcc malloc_test.c -g -o a.out
$ ls
a.out  mallc_test.c  mtrace.log
$ mtrace a.out mtrace.log

Memory not freed:
-----------------
   Address     Size     Caller
0x08a563e0     0x64  at /home/user/mtrace/malloc_test.c:9
$ awk 'NR == 9 { print }' malloc_test.c
  d = (char *)malloc(100);


のような感じ、しっかり検出してくれるっぽい。

CLR/H #75 に参加してきました

10/27にCLR/H #75に参加・LT発表してきました。
結局3部作(30分発表枠1個、LT2回)になってしまった。LINQ(りんきゅー)の発表。ついに完結!

本編はWindows 8の発売に伴い(?)ASP.NETに関わる発表でした。

続きを読む

JIS配列のApple Wireless KeyboardをUS配列からJIS配列に認識させる方法

BootCampでWindows 7を起動した時にJIS配列の「Apple Wireless Keyboard」を使用した際、
US配列になってしまうのを修正するための方法。


調べたら、ほとんどが「JIS配列→US配列」にする手順ばかりだったのでメモ。
・・・技術者はUS配列使う人多いのかなぁ。

続きを読む

Xcode 4.3以降になってソースコンパイルがうまく行かなくなった

Xcode 4.3 から autotools が削除されている件 - Null.ly
ってあった。
これによって、Mountain Lion でのGNU Screenのコンパイルがうまくできなかったので、
Homebrewにて

brew install autoconf automake


をやると良い。