Articles

  • このエントリーをはてなブックマークに追加

    久しぶりに GAS ( Google Apps Script ) の話題です。

    ひょんなことから、Google Drive 内の数百以上のファイルのオーナー権限を
    他者に変更する必要が出てきました。

    自分がオーナー のファイルを一括で 特定の誰かひとり にオーナー権限を移譲することができるようですが、例えば「議事録フォルダ内のファイルを A さんに移譲」、
    「ほげほげプロジェクトフォルダ内のファイルは B さんに移譲」みたいなことができません。

    というわけで、そんな痒いところに手が届くスクリプトを書いちゃいました。

    続きを読む

  • <2017/12/09 13:38>
  • ツール
  • Google Apps ScriptGASJava ScriptJSスクリプトGoogle Driveドライブ権限移譲
  • このエントリーをはてなブックマークに追加

    シェルスクリプト、 Google Apps Script を使って「全角を 2 文字、半角を 1文字とカウントし、指定文字数ごとに区切り文字を挿入するスクリプト」を実装しました。

    経緯

    とあるマスタデータのフィールドに、指定文字数ごとに "\n" を挿入していく事案が発生しました。笑
    ここで言う「文字数」とは、 JavaScript でよくある、「全角だろうが半角だろうが 1 文字は 1 文字!」ではなく、
    「全角は 2 文字、半角は 1 文字」とした文字数です。(そのテキストは等幅フォントで表示しており改行位置が揃うようになるため)

    依頼を受けた時点では少なくとも過去分だけ対応すればよかったので、その時点で入力済みデータをぼく(開発側)のほうでシェルスクリプトで対応してしまっていました。さらに、未来のデータ入力については、「担当者がよしなに頑張ってくれるだろう」と
    ぼくは何も考えていませんでした。笑

    結局のところ、入力ミスを防ぐため、「データ入力時にも改行コードを自動的に挿入してあげてほしい」という話になったので、
    あとから Google Apps Script で同様の処理をするツールを作ることになってしまったわけです。(;´Д`)
    こんなことなら最初から GAS で対応しておけばよかった。笑

    前段が長くなりましたが、本題です!(短い)

    続きを読む

  • <2017/09/23 13:23>
  • ツール
  • Java ScriptShell ScriptJSシェルスクリプトスクリプト便利ツールTool
  • このエントリーをはてなブックマークに追加

    なにかの要素が追加されたのをトリガーにして処理をしたいときに、 jQuery の on を使えば便利です。
    hulu の Chrome 拡張を作ったときに on を使って要素を監視したので、少しだけまとめます。

    マウスオーバーでサムネイルをポップアップさせない

    僕の場合、↑の記事でも紹介していますが、
    hulu はサムネイルにマウスを乗せると、詳細がポップアップで表示されます。
    これが大変なストレスになったので、いっその事なくしてしまおう、という機能ですね。笑

    サムネイル、つまり動画リストの要素をまずは見つけます。
    vod-mod-tray__content, 或いは vod-mod-series-area__tray っていう class 以下にいるようでした。(これは js で動的に追加されている)
    article タグを div に変更してポップアップ要素を表示しているようでした。

    <div class="vod-mod-tray__content">
    ...
    ...
        <div class="vod-mod-tray__item vod-utl-panel-opener">
            <a><img src=""></a>  <!-- ここにサムネイル画像 -->
            <article>....ここにポップアップ時に表示するHTML</article>
        </div>
    </div>
    

    続きを読む

  • <2017/06/13 09:00>
  • WEBフロントエンド
  • JavaScriptイベントハンドラ要素監視hulujQueryonmouseover
  • このエントリーをはてなブックマークに追加

    ping 送信とは?

    おさらいっぽくなりますが、 ping を各サービスに通知すると、
    「私のサイトを更新したから見に来てね!」っていう連絡をサービス(ランキングサイトなど)側に
    教えてあげられるわけです。そうすると、早くインデックス登録されたりするわけですね。

    ランキング系サイトの場合は、更新してからそれほどタイムラグなく最新記事を一覧に表示させることが
    できるようになります。

    有名ブログサービスの場合

    Ameblo, livedoor blog, JUGEM などの有名サービスの場合は
    各ランキングサイトに自動で ping が送れるようになる設定箇所があったりしますよね。
    WordPress なんかのCMSを使っている場合もプラグインがあったりして便利ですよね。

    これは、ブログ更新のたびに自動で各サービスに「更新したよ」通知を飛ばしてくれるようにするものです。
    ところが当サイトのように Django で自前で実装したり、
    まあ他のフレームワークを使ってたりしていて、いずれにせよ ping 送信の仕組みなんて導入してない!
    って場合は ping 送信するのが手作業だったり不便極まりないです。(´・ω・`)

    ランキング系のサイトには、 ping の代理申請っていうのがあって、ワンポチするだけなんですが、
    それでも自分から何かアクションを起こさないといけないっていうのはやや面倒なものです。

    そこで、以下のようなスクリプトを組んで、みんな大好き crontab に登録することで自動化しちゃいました。笑

    ping 送信なんてどうせ curl で一撃でしょ?

    そう、きっと curl で何も考えずにリクエスト投げればいいだけだ!
    ってことで

    続きを読む

  • <2017/05/21 13:00>
  • ツール
  • shellscriptツールping送信ブログ更新通知自動化ワンライナーcurlxml
  • このエントリーをはてなブックマークに追加

    自動化に至った経緯

    いきなりですが、ミーティングのアジェンダ作成って結構面倒な作業だったりしますよね。

    雛形から作成しようにも、「前回結論をペンディングした議題を反映しておきたい」など、前回の議事録からコピーしてくるケースも多いかもしれません。
    ぼくの職場では少なくともそうでした。

    毎週何も考えずに前回の議事録をコピーして、日付等必要な部分だけ書き換えたあとに
    メンバーに共有するという作業を行っていました。
    さすがに面倒になったので、Google Apps Scriptを使って自動化することにしました。

    続きを読む

  • <2017/05/12 12:17>
  • ツール
  • Google Apps ScriptSlack自動通知自動生成ミーティングMTGアジェンダ議事録GAS

Tag List

pythondjangoプログラミング個人サイトredmineスプレッドシートチームマネジメントチームビルディングJenkinsスケジュールCentOS6PythonPyenvmod_wsgiDjangopyjamatemplate所感ブログサイドバーpillowlibjpegImageFieldApache本番環境CentOS日常Sitemap.xmlサイトマップ自動生成管理画面一覧Object名前WEBフロントエンドsyntaxhighlightシンタックスハイライトjavascriptcsshtml画像テストVagrantVMVirtualBOXサーバーローカル環境エラーrestframeworkoauth-toolkitinvalid_clientログインリダイレクト元のページ認証テンプレートエンジンpyjadedate日付フォーマットmailformFormViewお問い合わせフォームgit自己紹介複数リポジトリメールアドレス設定追加FormCSSタグオプションフィールド名変更さくらのVPSさくらのSSLRapidSSLWHOIS代行opensslhttps証明書csrpem中間証明書MySQLINSERTUPDATEDUPLICATE KEY UPDATEレコードの有無シェルスクリプトシェルスクリプトshellscriptone linerワンライナー数字出力アイキャッチeyecatchfacebooktwitterwebfrontendフルスタックAngularAureliareactJSJavascriptRSSfeedatomblogrankingランキングリーダーreader写真日記photoイタリアVeniceベネチアベニスベネツィアAtomフィードブログランキングpubdateupdateddatesiteウェブサイト高速化mod_deflateapachegooglepagespeedinsights静的コンテンツ圧縮HTMLloadingindicatorブラウザキャッシュコンテンツ静的cachecontentcache-controlJavaScriptmax-age縮小scsscompasssasscompressdjango-htmlminPNGJPGprogressivebaselineオンラインサービスAndroidアンドロイドアプリスライドショーフォトフレームGoogle Apps ScriptSlack自動通知ミーティングMTGアジェンダ議事録GASGoogleSearchConsoleGoogle Search Consoleウェブマスターツール所有権確認Analyticsアナリティクスドキュメントルート直下静的ファイルHTMLファイル2.2apache2.2restartgraceful再起動SIM格安SIMOCNモバイルONE無線LANWi-Fi公衆無料アクセスポイントGmailSMTPメール送信者mail_fromSSHKeyChainキーチェーンmacOS SierraYosemiteSierraターミナルパスフレーズ病院整形外科整体痛み膝痛恥ずかしいレントゲン生活習慣病楽天カード楽天カードスーパーポイントアッププログラム期間限定ポイント賢い使い方ポイント利用crontablinuxcronMTAメール送信sendmailさくらVPSSitemap自動通知manage.pyping_google楽天カフェカフェ渋谷ブロガー超高速インターネットツールping送信更新通知自動化curlxmltagタグクラウドJadeSSLhttpdmod_rewritepipパッケージ2.7homebrewbrew形態素解析英語tree-tagger翻訳品詞インストールchrome拡張huluhappen動画東京竹林風景スナップ写真新宿御苑非日常森林都会はてなはてブブックマークブログ一覧登録ボタンslackextensionsSlack View Optimizer表示最適化ポップアップ非表示容量シェアOCN モバイル ONEMNP予約番号HuluHulu Auto Account SelectorChromehappyonプロフィール選択イベントハンドラ要素監視jQueryonmouseoverMacZIPコマンド削除__MACOSX.DS_StoreSQLiteWindowsRaspberryPiRaspbianCIfirefoxaddonschatworkfinderファインダーLibraryIntelliJIDEAAndroid StudioIDEプリインストールPHPWordPressワードプレスやりたいことadd-onVVVVirtualBox環境構築ローカルWordCamp Tokyo 2017WordCampTokyo2017WPワードキャンプセッションコントリビューターコミッター貢献公開鍵秘密鍵リモートアドオンFirefoxJava ScriptShell Script便利ツールToolXcodeiOSライセンスlicenseGenericView前後の記事次の記事前の記事新しい記事古い記事WP-CLIクライアントコマンドラインCLIper-site cacheframeworkサイトキャッシュパスワード解析ハックWindows7OphcrackPHP5.6yumepelremiLet's Encrypt認証局CAHTTPScerbot-autophpunit10月2017年githubGnuPGgpg署名コミットカスタムフィルタマークダウン記法バッククォート11月OSSフレームワークHulu View Modifier画面調整Chrome ExtensionアップデートGoogle Driveドライブ権限移譲Proxyプロキシ踏み台Dynamic ForwardポートフォワードPortポートIdentitiesOnlyconfigログインできないauthenticationlocateupdatedbファイル検索高速aliaslsカラー表示エイリアスscreenbgdisownjobsLinuxプロセスバックグラウンドフォアグラウンドサクラソメイヨシノ染井吉野バラ科バラ目練馬石神井川プログラマフリーランス初日入場環境構築質問コツトラブルシューティングQuerySetクエリSQLデバッグ3ヶ月気づいたことスキルセットマインド契約コミュニケーション常駐エンジニアプロパー2018年ふるさと納税返礼品カツオタタキ高知県室戸市サイト内検索検索フォームAND検索クエリセットGoogle Analytics検索クエリシェル芸commandxargsfindunzipzip解凍オープンソースコントリビューションOsaka海外仲間振り返り展望勉強会もくもく会GolangGo 言語Apache 2.0ふわラボfuwalabCONCATIFNULLNULL空文字列文字列結合連結登壇コントリビュート写真日記軽井沢紅葉避暑地長野旅行ぶらり旅PECLモジュールmodulePIXTAイラストPowerShellアーカイブクリエイターEPSAdobeStock障害起動できないServerInnoDBmy.cnfバックアップibdfrmインポート復元データファイルdaemon自動起動centoschkconfigrun levelランレベルFTPSFTPdirect所有者ownerchownレンタルサーバーさくらのレンタルサーバー文字コードUTF8utf8mb42018仕事業務委託勉強イベント2019謹賀新年正月抱負utf8絵文字スクレイピング自然言語処理機械学習mecabバージョンアップ2.1upgradePyJadePugpypugjsXCodeSwifterrorStory BoardストーリーボードFLEXISPOT電動昇降デスクレビューリモートワーク在宅ワーク
profile picture

自己紹介的な何か

@wkmettyでついったーやってます。時々。 6年間勤めたゲーム会社を2018年2月に退職しフリーランスのプログラマに。 WordPress Core, WP-CLI コントリビューター。 お仕事募集中です。