Skip to content

Instantly share code, notes, and snippets.

View niusounds's full-sized avatar
🤘

Yuya Matsuo niusounds

🤘
View GitHub Profile
@niusounds
niusounds / keygen.js
Last active August 29, 2015 13:55
ランダム文字列を生成するモジュール
const LETTERS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
const IDX_0 = LETTERS.indexOf('0');
const IDX_9 = LETTERS.indexOf('9');
const IDX_a = LETTERS.indexOf('a');
const IDX_z = LETTERS.indexOf('z');
const IDX_A = LETTERS.indexOf('A');
const IDX_Z = LETTERS.indexOf('Z');
function keysGen(len, min, max, count) {
if (Math.pow(max - min + 1, len) < count) {
@niusounds
niusounds / sync.js
Created January 30, 2014 09:09
Node.jsでの処理同期化いろいろ
function each(arr, iterator, onEnd) {
var endIdx = arr.length - 1;
arr.forEach(function(i, idx) {
iterator.apply(this, [i, idx,
function() {
if (idx === endIdx) {
if ( typeof onEnd === 'function') {
setImmediate(onEnd);
}
}
@niusounds
niusounds / How to use.java
Last active August 29, 2015 13:56
Twitter4jとAndroidAnnotationsによるTwitter認証ダイアログの実装
TwitterAuthDialogFragment dialog = TwitterAuthDialogFragment_.builder()
.consumerKey("xxxxx")
.consumerSecret("yyyyy")
.callbackUrl("http://xxxxx/yyyy")
.build();
dialog.setCallbacks(new TwitterAuthDialogFragment.Callbacks() {
@Override
public void onAccessTokenAvailable(String accessToken, String accessTokenSecret) {
// save accessToken & accessTokenSecret or do something
}
@niusounds
niusounds / LayeredImageView.java
Last active August 29, 2015 13:57
https://gist.github.com/niusounds/7905659 の後にまた作った。複数レイヤーを重ねて表示するView。Layerごとに色相・明るさ・コントラスト・透明度の指定が可能。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Matrix;
@niusounds
niusounds / TwitterLoginDialogFragment.java
Created March 24, 2014 10:35
AndroidAnnotationsとTwitter4jでラクラクTwitter連携
import org.androidannotations.annotations.Background;
import org.androidannotations.annotations.EFragment;
import org.androidannotations.annotations.FragmentArg;
import org.androidannotations.annotations.UiThread;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;
import twitter4j.auth.RequestToken;
@niusounds
niusounds / GLToolbox.java
Last active August 29, 2015 13:59
Hello OpenGL ES Texture
/*
* Copyright (C) 2012 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
@niusounds
niusounds / HomographyActivity.java
Last active August 29, 2015 14:00
Homography sample
package com.eje_c.matrixtest;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.os.Bundle;
@niusounds
niusounds / isMobile.js
Created May 28, 2014 12:49
simple mobile detection
function isMobile() {
return !!navigator.userAgent.match(/(android|iphone|ipad)/i);
};
@niusounds
niusounds / MidiChannel.js
Last active August 29, 2015 14:05
JavaのMidiChannelを参考にしたWebMIDIのラッパー
function MidiChannel(midiOutput, channel) {
this.output = midiOutput;
this.channel = channel;
}
MidiChannel.prototype = {
/*
* Channel voice messages
*/
noteOff: function(noteNumber, velocity, timestamp) {
@niusounds
niusounds / index.html
Created August 27, 2014 09:16
WebAudio + WebRTC (getUserMedia) + AngularJS sample
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>HelloAudio</title>
</head>
<body ng-controller="Main">
<input type="range" min="20" max="4000" ng-model="hz.value" step="0.01">
<input type="range" min="0" max="1" ng-model="gain.value" step="0.01">
<script src="angular.min.js"></script>