Skip to content

Instantly share code, notes, and snippets.

View hidesakai's full-sized avatar

hidenobu sakai hidesakai

View GitHub Profile
@hidesakai
hidesakai / attendance_output.py
Created August 3, 2017 14:42
Macの起動・終了時間を勤怠管理に利用したいpythonスクリプト ref: http://qiita.com/hidesakai/items/da7fca1919ed7e32975c
import sys
import re
import subprocess
import dateutil.parser
def attendanceDate(month):
output = {}
checkMonth = [0]
def assignDate(matchDate, func):
parseDate = dateutil.parser.parse(matchDate)
@hidesakai
hidesakai / app.py
Created July 29, 2017 09:47
[Python]AWS Lambdaでのリトライ処理(Exponential Backoff)のメモ ref: http://qiita.com/hidesakai/items/bb529c4c29952c41c218
from chalice import Chalice
from datetime import datetime
from retrying import retry
import boto3
from botocore.exceptions import ClientError
app = Chalice(app_name='exponential-backoff')
def retryIfClientError(exception):
print(datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
@hidesakai
hidesakai / app.py
Last active May 9, 2017 05:57
Pythonサーバーレスフレームワーク Chalice と Twilio で簡易的な受付システムを作ってみる ref: http://qiita.com/hidesakai/items/5bd86240ee042b13139f
import os, json
from urlparse import parse_qs
from chalice import Chalice, Response
from twilio.jwt.client import ClientCapabilityToken
from twilio.twiml.voice_response import VoiceResponse
app = Chalice(app_name='EmployeeCaller')
# 音声通話のEndpoint、TwiMLを生成する
@app.route('/voice', methods=['POST'], content_types=['application/x-www-form-urlencoded'], cors=True)
@hidesakai
hidesakai / lambda_function.py
Created April 19, 2017 12:32
AWS Lambda + Twilio Googleカレンダーのリマインダーを音声通知にして電話させる ref: http://qiita.com/hidesakai/items/20873fa354cb49911608
# -*- coding: utf-8 -*-
import os
import re
import json
import email
import base64
import urllib
import boto3
from twilio.rest import Client
@hidesakai
hidesakai / es-mapping.py
Created April 6, 2017 09:32
[Python] AWSのサーバーレスアーキテクチャを使って、イベントドリブンなWebクローラーを作ってみる ref: http://qiita.com/hidesakai/items/963bfebeed7230650dc2
# -*- coding: utf-8 -*-
import elasticsearch
from requests_aws4auth import AWS4Auth
import json
if __name__ == '__main__':
# ESのエンドポイントを指定
host='search-***************.ap-northeast-1.es.amazonaws.com'
awsauth = AWS4Auth(
# AWSユーザーのアクセスキーIDとシークレットアクセスキー
@hidesakai
hidesakai / pdf.blade.php
Created March 23, 2017 10:14
Laravel5+laravel-snappyでPDF出力する際のヘッダー・フッター設定とか改ページしたい時のあれこれ ref: http://qiita.com/hidesakai/items/03d755d5da6c7bca0cd5
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<title>PDF出力テスト</title>
<style>
.page {
page-break-after: always;
page-break-inside: avoid;
}
.page:last-child{
page-break-after: auto;
@hidesakai
hidesakai / convert-excel-to-json.php
Created January 12, 2017 09:56
PHPExcelですべてのシートデータをJSONに変換する ref: http://qiita.com/hidesakai/items/32b5e7ca1659782b99bc
<?php
// composer require phpoffice/phpexcel
require "vendor/autoload.php";
// Memory CacheだとFatal Errorが発生するため、"/tmp"にFile Cacheとして保存する
$cacheSettings = array("dir" => "/tmp");
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
// Excelファイル読み込み
@hidesakai
hidesakai / jquery.feed2node.js
Created October 19, 2012 04:54
MTのRSS FeedからGoogle Feed API経由でエントリの一覧表示
/*
* このライブラリを呼び出す前に、Google API呼び出しが必要になる
* <script type="text/javascript" src="https://www.google.com/jsapi"></script>
* <script>google.load("feeds", "1");</script>
*
* 実装例:
* $(function(){
* $('rss').feed2node({
* 'uri':'http://***.com/rss.xml',
* 'limit':'5',
@hidesakai
hidesakai / jquery.gaformanalysis.js
Created October 3, 2012 14:43
フォーム内容をGAトラックイベントへPush
var gaForm = gaForm || {};
jQuery(function($) {
var defaults = {
Forms:"#form",
Category:"analysisForm",
Action:"id",
inputRadio: true,
inputSelect: true,
inputCheckBox: true
};
@hidesakai
hidesakai / ec2-snapshot-rotation-backup.py
Created October 3, 2012 14:34
EC2Snapshot ローテーションバックアップのスクリプト
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from boto.ec2.connection import EC2Connection
from boto.ec2 import connect_to_region
AWS_ACCESS_KEY = ""
AWS_SECRET_ACCESS_KEY = ""
if(len(sys.argv) != 5):