Git Commit Logの文字化け対応 - Jenkins May 18th, 2012 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 $ vi ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>homebrew.mxcl.jenkins</string> <key>ProgramArguments</key> <array> <string>/usr/bin/java</string> <string>-Xmx512m</string> <string>-Dfile.encoding=UTF-8</string> <string>-jar</string> <string>/usr/local/lib/jenkins.war</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> </dict> </plist>
Display Http Header Using Tshark May 15th, 2012 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 32 33 34 35 $ sudo tshark -V -R "http.request" -i lo0 port 80 >> [Calculated window size: 81660] [Window size scaling factor: 2] Checksum: 0xfe28 [validation disabled] [Good Checksum: False] [Bad Checksum: False] Options: (12 bytes) No-Operation (NOP) No-Operation (NOP) Timestamps: TSval 664148220, TSecr 664148220 Kind: Timestamp (8) Length: 10 Timestamp value: 664148220 Timestamp echo reply: 664148220 [2 Reassembled TCP Segments (132 bytes): #16(132), #20(0)] [Frame: 16, payload: 0-131 (132 bytes)] [Frame: 20 (no data)] [Segment count: 2] [Reassembled TCP length: 132] Hypertext Transfer Protocol POST /data/post HTTP/1.1\r\n [Expert Info (Chat/Sequence): POST /data/post HTTP/1.1\r\n] [Message: POST /data/post HTTP/1.1\r\n] [Severity level: Chat] [Group: Sequence] Request Method: POST Request URI: /data/post Request Version: HTTP/1.1 Accept: */*\r\n User-Agent: Ruby\r\n Content-Type: multipart/form-data; boundary=myboundary\r\n Host: localhost\r\n \r\n [Full request URI: http://localhost/data/post]
Ranking in Redis Sorted Set May 14th, 2012 Precondition Rows : 1,000,000 Score: rand(1..100) RedisのSorted Setを使用し、Top10と自分を含む前後5人のランキングを表示する #!/usr/bin/env ruby require 'redis' class UserNotFoundException < Exception; end class UserRanking KEY="ranking" def initialize(user_id) @redis= Redis.new @user_id= user_id @myscore= (@redis.zscore KEY, user_id).to_i if @myscore > 0 @myindex= @redis.zrevrank KEY, user_id @myrank= get_rank(@myscore) puts <<"EOS" UserID: #{@user_id} Score : #{@myscore} Rank : #{@myrank} EOS else raise UserNotFoundException, "User not found" end end def get_rank(score) score= score.to_i (@redis.zcount KEY, score+1, Float::INFINITY) + 1 end def display(ranking, scores={}) if ranking ranking.each_slice(2).with_index do |(uid, score), i| rank= scores[score] || 0 if rank < 1 rank= get_rank(score) scores[score]= rank end str= "%7d %11s: %3d" % [rank, uid, score] str << " <--- " if uid == @user_id puts str end end end def top10() puts "[Top10]" ranking= @redis.zrevrange( KEY, 0, 9, {withscores: true}) display ranking, {ranking[1] => 1} end def near10() puts "[Near10]" scores= {@myscore => @myrank} range= 5 first= (@myindex - range > 0) ? @myindex-range : 0 ranking= @redis.zrevrange(KEY, first, @myindex + range, {withscores: true}) display ranking, scores end end if $0 == __FILE__ # write this user_id= ARGV[0] || "User0234567" ranking = UserRanking.new(user_id) ranking.top10() ranking.near10() end
Jenkins-Unity Build Execute Shell for iPhone May 11th, 2012 Unity3D Plugin, Xcode Plugin, TestFlight Pluginも試したけど、結局shell scriptに落ち着いた。 UNITY_APP_PATH=/Applications/Unity3.4/Unity.app/Contents/MacOS/Unity UNITY_PROJECT_PATH=$WORKSPACE/Unity UNITY_EDITOR_LOG_PATH=~/Library/Logs/Unity/Editor.log XCODE_PROJECT_PATH=$WORKSPACE/Unity-iPhone KEYCHAIN_LOCATION=~/Library/Keychains/login.keychain XCODE_PROJECT_CONFIG_PATH=$XCODE_PROJECT_PATH/Unity-iPhone.xcodeproj ### EDIT AREA START UNITY_BATCH_EXECUTE_METHOD=XXXXX IOS_PROVISIONING_FILE_PATH=XXXXX IOS_P12_FILE_PATH=XXXXX iOS_P12_PASSWORD=XXXXX OSX_ADMIN_PASSWORD=XXXXX CONFIGURATION=Debug # Debug, Release IDENTITY=XXXXX PRODUCT_NAME=XXXXX API_TOKEN=XXXXX TEAM_TOKEN=XXXXX DISTRIBUTION_LISTS=XXXXX ### EDIT AREA END PROFILE_UUID=`grep "UUID" ${IOS_PROVISIONING_FILE_PATH} -A 1 --binary-files=text 2>/dev/null |grep string|sed -e 's/^[[:blank:]]<string>//' -e 's/<\/string>//'` $UNITY_APP_PATH -batchmode -quit -projectPath "${UNITY_PROJECT_PATH}" -executeMethod $UNITY_BATCH_EXECUTE_METHOD if [ $? -eq 1 ]; then cat $UNITY_EDITOR_LOG_PATH exit 1 fi ### xcodebuild # unlock keychain security unlock-keychain -p $OSX_ADMIN_PASSWORD "${KEYCHAIN_LOCATION}" # import security import "${IOS_P12_FILE_PATH}" -f pkcs12 -P "${iOS_P12_PASSWORD}" -k "${KEYCHAIN_LOCATION}" -T /usr/bin/codesign cp $IOS_PROVISIONING_FILE_PATH ~/Library/MobileDevice/Provisioning\ Profiles/$PROFILE_UUID.mobileprovision # .dSYM BUILD_OPT_MAKE_DSYM="GCC_GENERATE_DEBUGGING_SYMBOLS=YES DEBUG_INFORMATION_FORMAT=dwarf-with-dsym DEPLOYMENT_POSTPROCESSING=YES STRIP_INSTALLED_PRODUCT=YES SEPARATE_STRIP=YES COPY_PHASE_STRIP=NO" # clean (optional) xcodebuild clean -configuration $CONFIGURATION -project "${XCODE_PROJECT_CONFIG_PATH}" # build xcodebuild \ -project "${XCODE_PROJECT_CONFIG_PATH}" \ -configuration "${CONFIGURATION}" \ -target "Unity-iPhone" \ CODE_SIGN_IDENTITY="${IDENTITY}" \ OTHER_CODE_SIGN_FLAGS="--keychain ${KEYCHAIN_LOCATION}" \ $BUILD_OPT_MAKE_DSYM ### create ipa TARGET_APP_PATH=$XCODE_PROJECT_PATH/build/$PRODUCT_NAME.app IPA_FILE_PATH=$XCODE_PROJECT_PATH/build/$PRODUCT_NAME-$BUILD_NUMBER.ipa /usr/bin/xcrun \ -sdk iphoneos \ PackageApplication \ -v "${TARGET_APP_PATH}" \ -o "${IPA_FILE_PATH}" \ --sign "${IDENTITY}" \ --embed "${IOS_PROVISIONING_FILE_PATH}" TARGET_DSYM=$PRODUCT_NAME.app.dSYM DSYM_ZIP_PATH=$XCODE_PROJECT_PATH/build/$PRODUCT_NAME.app.dSYM-$BUILD_NUMBER.zip cd $XCODE_PROJECT_PATH/build/ zip -r $DSYM_ZIP_PATH $TARGET_DSYM ### post testflight curl http://testflightapp.com/api/builds.json \ -F file=@$IPA_FILE_PATH \ -F dsym=@DSYM_ZIP_PATH \ -F api_token=$API_TOKEN \ -F team_token=$TEAM_TOKEN \ -F notes="env:development" \ -F notify=True \ -F distribution_lists=$DISTRIBUTION_LISTS referrel 【研究課題レポート抜粋】Jenkins+Unityで構築するスマフォアプリビルドサーバー
Reinstall Rvm Mar 7th, 2012 reinstall rvm mv ~/.rvm ~/.rvm_org bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) rvm reload rvm pkg install readline rvm pkg install openssl rvm pkg install zlib rvm pkg install iconv rvm install ruby-1.9.3 --with-openssl-dir=~$HOME/.rvm/usr --with-iconv-dir=$HOME/.rvm/usr rvm install macruby-head # this may take a while rvm --default use 1.9.3 fsevent/fsevent_watch.c:1:10: fatal error: ‘stdio.h’ file not found 1 2 3 4 $ vi Gemfile >> - gem 'rb-fsevent', + gem 'rb-fsevent', :git => 'git://github.com/ttilley/rb-fsevent.git', :branch => 'pre-compiled-gem-one-off' referrel https://github.com/thibaudgg/rb-fsevent/issues/20#issuecomment-1814363
Insert DateTime in UTC Time Mar 4th, 2012 xxx.el (defun insert-datetime () (interactive) (insert (format-time-string "%Y-%m-%d %H:%M:%SZ" nil "Z")))
Xcode-4.3 Mismatched Ubiquitykvstore Identifier Value in TestFlight Feb 29th, 2012 1 Mismatched ubiquity.kvstore-identifier value
Upgrade to XCode 4.3 Feb 28th, 2012 1 2 3 4 5 6 7 8 9 10 // Install OSX 10.7.3 // Install Xcode4.3 // open Xcode4.3 to remove /Developper $ sudo /Developer/Library/uninstall-devtools --mode=all $ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer $ xcode-select -print-path /Applications/Xcode.app/Contents/Developer $ xcodebuild -version Xcode 4.3 Build version 4E109