Skip to content

Instantly share code, notes, and snippets.

View ochilab's full-sized avatar

おちラボ ochilab

View GitHub Profile
@ochilab
ochilab / playSoundSkill.js
Created March 19, 2024 11:48
サウンドを鳴らすだけのAlexaSkill
const playlist_title = '授業チャイム'; // ファイル名・スキル名とは別に表示させたいテキスト(アーティストなど)
const playlist_track = 'SchoolChime2.mp3'; // 再生する音楽ファイル名
const token_prefix = 'mymusic001'; // 画像などを変更したとき、この識別子を変更するとすぐに反映される
const Util = require('util.js');
const Alexa = require('ask-sdk-core');
exports.handler = Alexa.SkillBuilders.custom().addRequestHandlers({
canHandle(input) {
@ochilab
ochilab / UDPSample.cs
Created May 30, 2014 11:54
C#でのUDP通信サンプル
System.Text.Encoding enc = System.Text.Encoding.UTF8;
//サーバ側
System.Net.Sockets.UdpClient udp = new System.Net.Sockets.UdpClient(11000);
byte[] sendBytes = enc.GetBytes(str);
////リモートホストを指定してデータを送信する
udp.Send(sendBytes, sendBytes.Length,"192.168.1.25", 11000);
//以下クライアント側
@ochilab
ochilab / generateUniqueRandomIntegers.gs
Created October 25, 2023 00:28
GAS:ランダムな6桁の整数を200個生成する
function generateUniqueRandomIntegers() {
var generatedNumbers = {};
var uniqueNumbers = [];
while (uniqueNumbers.length < 200) {
// 6桁の整数を生成: 100000 から 999999 の範囲
var randomNumber = Math.floor(Math.random() * (999999 - 100000 + 1)) + 100000;
if (!generatedNumbers[randomNumber]) { // この数値がまだリストに含まれていないか確認
generatedNumbers[randomNumber] = true;
uniqueNumbers.push(randomNumber);
@ochilab
ochilab / getUserEmailsInCourse.gs
Created October 24, 2023 08:05
GAS: Google Classroomの受講生のメールアドレスを取得する
function getUserEmailsInCourse(courseId) {
var emailList = [];
var nextPageToken;
do {
var response = Classroom.Courses.Students.list(courseId, {
pageToken: nextPageToken
});
var students = response.students;
@ochilab
ochilab / googleAuthSample.py
Created October 16, 2023 06:18
GoogleのAuth認証のサンプル
from __future__ import print_function
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
@ochilab
ochilab / createQuizForm.gs
Created October 1, 2023 01:46
GoogleシートのデータからGoogleフォーム(選択肢問題)を生成する
function createQuizForm() {
var row=10; //問題数
var col=7; //シートの列数
var form = FormApp.create('クイズフォーム(自動生成)'); // フォームのタイトルを設定
form.setIsQuiz(true);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
//シートのデータを全部取得
var data = sheet.getDataRange().getValues();
@ochilab
ochilab / installMecabToColab.sh
Created September 30, 2023 07:01
ColaboratoryにMecabを入れる初期設定
### MeCabと辞書をインストール
!sudo apt install mecab
!sudo apt install libmecab-dev
!sudo apt install mecab-ipadic-utf8
### 辞書を使える場所に移す
!mv /etc/mecabrc /usr/local/etc/
### Mecabライブラリのインストール
!pip3 install mecab-python3
@ochilab
ochilab / setMatPixelColor.cs
Last active August 8, 2023 05:17
OpenCVSharpにてMatを利用してピクセルのRGB値を変更する
Mat m = new Mat(@"C:\Users\Public\Pictures\Sample Pictures\tu.jpg");
Cv2.ImShow("before", m);
Mat m2 = new Mat(m.Height, m.Width, MatType.CV_8UC3);
for (int i = 0; i < m2.Height; i++){
for (int j = 0; j < m2.Width; j++){
byte by = 255;
Vec3b pix = m2.At<Vec3b>(i, j);
pix[0]=0; //B
pix[1] = by; //G
@ochilab
ochilab / moveGCalEvent.gs
Created June 26, 2023 05:15
GAS:Google Calendarの終日イベントを別のカレンダーに移動する
function moveGCalEvent(event,targetCalendarId) {
var targetCalendar = CalendarApp.getCalendarById(targetCalendarId);
// イベントの詳細を取得
var eventTitle= event.getTitle();
var date =event.getAllDayStartDate(); //終日イベントが対象
// 新しいカレンダーに同じイベントを作成
var newEvent = targetCalendar.createAllDayEvent(eventTitle,date);
// 元のカレンダーから旧イベントを削除
event.deleteEvent();
@ochilab
ochilab / todoistGetCompleteItems.gs
Created June 26, 2023 05:04
GAS: Todoistから完了したタスクを取ってくる
/**
sinceから現在まですべてのタスクをとってくる
since: 取得開始する日時 (2023-06-26 というフォーマットの文字列)
**/
function todoistGetCompleteItems(since) {
const token = PropertiesService.getScriptProperties().getProperty('TODOIST_TOKEN');
const url = 'https://api.todoist.com/sync/v9/completed/get_all?since='+since+'T00:00:00';
const params = {
headers: { 'Authorization': `Bearer ${token}` }
};