2021年 の投稿一覧

【募集】Webサービスのデザイン&コーディングをお願いできる方

ゲームに関係したCGMサービスを立ち上げる話が持ち上がっておりまして、デザインとコーディングを担当いただける方を絶賛募集しております。ご興味のある方がいらっしゃいましたらぜひ!

内容
ゲーム関係のCGMサイトのロゴ、UI設計書を元に主要ページのデザイン(最大10ページ)、コーディング。基本的なUI部品を作成いただき他のページはこちらで適用していきます
納期
ご相談(現実的なスケジュールをご提案ください)
予算
30万円前後(相談可)
クライアント
東証一部上場企業のグループ会社です
その他
個人/法人問いません。案件の大小問わず何かしらの実績があり、また未公開のサービスになりますので守秘義務を遵守いただける方

実際の契約は直接クライアントと結んでいただく予定です。特に自分の方でマージンなどはいただきません。

もしご興味のある方がいらっしゃいましたら、以下のツイートにリプライやDM等でご連絡いただけると助かります🙏 ご質問などもお気軽におよせください。


続きを読む

[Node.js] ClamAVでウイルスチェック

Node.jsでウイルスチェックを行います。ユーザーがアップロードしたファイルを公開するようなサービスでは事前にチェックを行わないと、簡単にウイルスを撒き散らすスーパースプレッダーと化してしまいます。

今回は無料で使えるオープンソースのアンチウイルスソフト「ClamAV」を利用します。

続きを読む

[HTML5] リンク先のファイルを超簡単にダウンロード指定する – download属性

なんとa要素にdownload属性を追加するだけで、ページ(ファイル)を表示するのではなく、Webブラウザにファイルを保存するかダイアログを表示させダウンロードを促すことが可能です。

<a href="foo.txt" download>foo</a>

download属性にファイル名を指定すれば、デフォルトのファイル名として利用できます。

<a href="foo.txt" download="bar.txt">foo</a>

以下から実際にお試しいただけます。

続きを読む

Clam AntiVirusをAmazon Linux2へ導入する

無料で使えるオープンソースのアンチウイルスソフト「ClamAV」をAWSのAmazon Linux2へインストールして動かすところまでをまとめます。

ウイルスはWindowsをターゲットとしたものが多く、限られたユーザーしか利用しないLinux環境だと入れないことが多かったりしますが、今回は専門学校の実習で50名前後の生徒にWebサーバーとして開放する関係で導入することにしました。さすがに意図的にウイルスをアップすることは無いと思いますがw 万全を期するに越したことはないですからね。
続きを読む

FFmpegで実際使うと便利だが脳みそに焼き付いてくれないオプションメモ

コマンドラインで利用できる動画編集ツールFFmpegですが、十数年来の付き合いだというのに、たまにしか使わないもんだからオプションが脳みそに定着してくれませんw いざ使うとめっちゃ便利なんですよ。でもそこまでたどり着けないw

今回は年貢の納め時と思ってオプションの一覧を自分用にまとめることにします。

ちなみに構成を考えながら動画編集する場合には、素直にAdobe PremiereやFinalCutなどのGUIの編集ソフトを使った方が早いです。FFmpegはあくまで定形処理を行う場合に活躍してくれるものと言えます。
続きを読む

[JavaScript] オンライン・オフラインを判定する

小ネタです。
スマホを使いながら電車などで移動していると通信がプツプツ切れます。家でPCを使う場合と違って通信状況が安定しません。そんな時に活躍するのがブラウザがオンラインかどうかがわかる navigator.onLine です。

このプロパティを参照するだけでブラウザがネットワークに接続しているかチェックすることができるというわけです。

if( navigator.onLine ){
  console.log('オンライン')
}
else {
  console.log('オフライン')
}

WebStorageなどと組み合わせ、オフラインであればローカルにデータを一時的に保存し、オンラインになったら同期をするといった処理が実現できます。

続きを読む

Let’s EncryptでワイルドカードなSSL証明書を入れる – Amazon Linux2編

WebサーバにSSL対応した約40件のサブドメインを追加する必要に迫られたのですが、さすがに1個ずつSSL証明書を発行するのは地獄なのでワイルドカード証明書を導入した際のメモになります。

無料のSSL証明書としておなじみのLet’s Encryptでは2018年からワイルドカード証明書に対応しているためこちらを利用します。

今回の環境は以下の通り。

【募集終了】個人でゲーム開発をされている方(インタビューのお願い)

【追記
無事に何人かの方からご協力をいただけました。ご協力いただいたみなさま、誠にありがとうございます!これを持って締め切りとさせていただきたいと思います。また改めて募集する可能性がありますのでその際はなにとぞ。

お仕事で簡単なインタビューにご協力いただける方を募集しています(内部資料なので一般公開はされません)。

対象
個人でゲーム開発を行い、実際に公開されている方(ブラウザゲーム、PCゲーム、スマホアプリなど)
お聞きする内容
開発動機や今後プラットフォームに期待すること
時間と場所
30分〜1時間程度、Zoomなどオンラインを予定。ビデオ通話が難しい場合はメールやチャットなどでもOKです。
その他
薄謝あり。最大で10名程度。

ゲーム会社さんからのご依頼で新サービスの開発に向けてのリサーチになります。

薄謝は3,000円程度(Amazonギフト券 or 銀行振込)を予定してます。薄くてほんますみませんw(私のマージンはゼロです)また難しいことは聞きませんので、開発を始めて間もない方や技術的に自信が無い方ももちろん問題ありません。ツクールでRPGを作られている方も大歓迎です。個人の趣味レベルでOKでして、大ヒットを飛ばしていなくても大丈夫ですw

今回ご協力いただいた方は今後も優先的にお声がけしますので未知の物に興味がある方もぜひ!(・∀・)

もしご興味がある方いらっしゃいましたら、以下のツイートにリプをいただくかDMなどでご連絡いただけると大変助かります!

またはこのブログのお問い合わせフォームからも受け付けております。

[Node.js] 指定した時間sleepする – Promise版

小ネタです。
多くのスクリプト言語やシェルなどで実装されているsleep機能がNode.jsには存在しないため、使いたくなったら自分で用意する必要があります。いくつか方法がありますがお手軽なのはPromiseとsetTimeoutを利用した物です。

あっちこっちで使う場合は以下のように適当なモジュールを用意します。

/**
 * sleep.js
 */
const sleep = (time) => {
  return new Promise((resolve, reject) => {
      setTimeout(() => {
          resolve()
      }, time)
  })
}

module.exports = sleep

続きを読む

[Linux] 連番付きで出力する – nl

nlコマンドを利用すると、出力結果の各行の先頭に連番を付けることができます。

$ nl -w 1 -n ln file.txt
1   Apple
2   Orange
3   Banana

要は行番号ですね。デフォルトでは連番の後ろにはタブが挿入されます。
続きを読む

[Linux] Terminalを閉じてもバックグラウンドの処理を実行し続ける – nohup

Linuxでシステム運用をしていると、数時間〜数日間に及ぶバッチ処理を実行することがあります。手動でプログラムを起動する場合にディスプレイの前にずっと付きっきりでは過労死まっしぐらです。またうっかりTerminalを閉じてしまうと大惨事になってしまうため通常はバックグラウンドで実行します。

その際の具体的なコマンドは以下の通り。

$ nohup (コマンド) & 

コマンドの最後に&を付けるだけでバックグラウンドで実行してくれます。ただこれだけだとTerminalを閉じてしばらくすると自動的にプログラムも終了してしまいます。そこでコマンドの冒頭に nohup を付けることで強制終了を防ぐことができます。

標準出力に表示されるはずだった内容はカレントディレクトリに nohup.out というファイル名で記録されます。

またコマンドの実行が終了すると以下のような通知が来ます。

$ nohup sleep 10 & 
[1]+  終了                  sleep 10

続きを読む

[Linux] 一定間隔でコマンドを実行する – watch

小ネタです。
特定のコマンドを一定間隔で自動的に実行したい場合は watch コマンドを使用します。

例えば以下のコマンドでwc -l foo.txtが10秒置きに実行されます。

$ watch -n 10 wc -l foo.txt

画面がwatchコマンド専用モードに切り替わります。終了したい場合はCtrl+cなどを入力します。
続きを読む

[JavaScript] 連想配列に forEach を使用する

小ネタです。
forEachは配列用のため、連想配列(ハッシュ)には通常使うことができません。そんなときにはObject.keys()を介すことで利用が可能になります。

const hash = {
  apple: 100,
  banana: 130,
  orange: 98
}
const result = [ ]

Object.keys(hash)
      .forEach(key => { result.push(`${key}: ${hash[key]}` )})

// [ 'apple: 100', 'banana: 130', 'orange: 98' ]
console.log(result)

参考ページ

[JavaScript] 配列の値が条件を満たすか検証する – some(), every()

every()some()は配列内の要素をテストし、条件を満たしていれば最終的にtrue、満たしていなければfalseを返します。

/**
 * 偶数チェック
 */
const list = [1, 2, 3, 4, 5]
const check = value => ((value % 2) === 0)

// テストを行う
const check1 = list.every(check)  // すべて偶数か (AND)
const check2 = list.some(check)   // 一つでも偶数か (OR)

// 結果表示
console.log(check1)  // false
console.log(check2)  // true

every()はすべての要素が条件を満たしているかどうか、some()は一つでも満たしているかの違いになります。要はeveryがANDで、someがORですね。
続きを読む