プログラミング言語の色

GitHub社が指定している各プログラミング言語の色をまとめました。

リポジトリ
https://github.com/abouthiroppy/github-language-color-themes

ABAP

#E8274B

AGS Script

#B9D9FF

AMPL

#E6EFBB

ANTLR

#9DC3FF

API Blueprint

#2ACCA8

APL

#5A8164

ASP

#6a40fd

ATS

#1ac620

ActionScript

#882B0F

Ada

#02f88c

Agda

#315665

Alloy

#cc5c24

Arc

#aa2afe

Arduino

#bd79d1

AspectJ

#a957b0

Assembly

#6E4C13

AutoHotkey

#6594b9

AutoIt

#1C3552

BlitzMax

#cd6400

Boo

#d4bec1

Brainfuck

#2F2530

C

#555555

C#

#178600

C++

#f34b7d

CSS

#563d7c

Chapel

#8dc63f

Cirru

#ccccff

Clarion

#db901e

Clean

#3F85AF

Clojure

#db5855

CoffeeScript

#244776

ColdFusion

#ed2cd6

ColdFusion CFC

#ed2cd6

Common Lisp

#3fb68b

Component Pascal

#b0ce4e

Crystal

#776791

D

#fcd46d

DM

#447265

Dart

#00B4AB

Diff

#88dddd

Dogescript

#cca760

Dylan

#6c616e

E

#ccce35

ECL

#8a1267

Eagle

#814C05

Eiffel

#946d57

Elixir

#6e4a7e

Elm

#60B5CC

Emacs Lisp

#c065db

EmberScript

#FFF4F3

Erlang

#B83998

F#

#b845fc

FLUX

#88ccff

FORTRAN

#4d41b1

Factor

#636746

Fancy

#7b9db4

Fantom

#dbded5

Forth

#341708

Frege

#00cafe

Game Maker Language

#8fb200

Glyph

#e4cc98

Gnuplot

#f0a9f0

Go

#375eab

Golo

#88562A

Gosu

#82937f

Grammatical Framework

#79aa7a

Groovy

#e69f56

HTML

#e44b23

Handlebars

#01a9d6

Harbour

#0e60e3

Haskell

#29b544

Haxe

#f7941e

Hy

#7790B2

IDL

#a3522f

Io

#a9188d

Ioke

#078193

Isabelle

#FEFE00

J

#9EEDFF

JFlex

#DBCA00

Java

#b07219

JavaScript

#f1e05a

Julia

#a270ba

KRL

#28431f

Kotlin

#EA4DFA

LFE

#004200

LOLCODE

#cc9900

LSL

#3d9970

Lasso

#999999

Latte

#A8FF97

LiveScript

#499886

LookML

#652B81

Lua

#000080

MTML

#b7e1f4

Makefile

#427819

Mask

#f97732

Matlab

#bb92ac

Max

#c4a79c

Mercury

#ff2b2b

Mirah

#c7a938

Nemerle

#3d3c6e

NetLinx

#0aa0ff

NetLinx+ERB

#747faa

NetLogo

#ff6375

NewLisp

#87AED7

Nimrod

#37775b

Nit

#009917

Nix

#7e7eff

Nu

#c9df40

OCaml

#3be133

Objective-C

#438eff

Objective-C++

#6866fb

Objective-J

#ff0c5a

Omgrofl

#cabbff

Opal

#f7ede0

Oxygene

#cdd0e3

Oz

#fab738

PAWN

#dbb284

PHP

#4F5D95

Pan

#cc0000

Papyrus

#6600cc

Parrot

#f3ca0a

Pascal

#b0ce4e

Perl

#0298c3

Perl6

#0000fb

PigLatin

#fcd7de

Pike

#005390

PogoScript

#d80074

Processing

#0096D8

Prolog

#74283c

Propeller Spin

#7fa2a7

Puppet

#332A77

Pure Data

#91de79

PureBasic

#5a6986

PureScript

#1D222D

Python

#3572A5

QML

#44a51c

R

#198ce7

RAML

#77d9fb

Racket

#22228f

Ragel in Ruby Host

#e17600

Rebol

#358a5b

Red

#ee0000

Rouge

#cc0088

Ruby

#701516

Rust

#dea584

SAS

#B34936

SQF

#3F3F3F

SaltStack

#646464

Scala

#7dd3b0

Scheme

#1e4aec

Self

#0579aa

Shell

#89e051

Shen

#120F14

Slash

#007eff

Slim

#ff8f77

Smalltalk

#596706

SourcePawn

#5c7611

Squirrel

#800000

Standard ML

#dc566d

SuperCollider

#46390b

Swift

#ffac45

SystemVerilog

#DAE1C2

Tcl

#e4cc98

TeX

#3D6117

Turing

#45f715

TypeScript

#2b7489

Unified Parallel C

#4e3617

UnrealScript

#a54c4d

VHDL

#adb2cb

Vala

#fbe5cd

Verilog

#b2b7f8

VimL

#199f4b

Visual Basic

#945db7

Volt

#1F1F1F

Web Ontology Language

#9cc9dd

XC

#99DA07

XQuery

#5232e7

Zephir

#118f9e

eC

#913960

edn

#db5855

nesC

#94B0C7

ooc

#b0b77e

wisp

#7582D1

xBase

#403a40


no color

Ant Build System
ApacheConf
Apex
AppleScript
AsciiDoc
Augeas
Awk
Batchfile
Befunge
Bison
BitBake
BlitzBasic
Bluespec
Brightscript
Bro
C-ObjDump
C2hs Haskell
CLIPS
CMake
COBOL
Cap'n Proto
CartoCSS
Ceylon
ChucK
Cool
Coq
Cpp-ObjDump
Creole
Cucumber
Cuda
Cycript
Cython
D-ObjDump
DIGITAL Command Language
DTrace
Darcs Patch
Dockerfile
Ecere Projects
Filterscript
Formatted
G-code
GAMS
GAP
GAS
GDScript
GLSL
Genshi
Gentoo Ebuild
Gentoo Eclass
Gettext Catalog
Grace
Gradle
Graph Modeling Language
Graphviz (DOT)
Groff
Groovy Server Pages
HTML+Django
HTML+ERB
HTML+PHP
HTTP
Hack
Haml
HyPhy
IGOR Pro
INI
IRC log
Idris
Inform 7
Inno Setup
JSON
JSON5
JSONLD
JSONiq
Jade
Jasmin
Java Server Pages
KiCad
Kit
LLVM
LabVIEW
Lean
Less
LilyPond
Limbo
Linker Script
Liquid
Literate Agda
Literate CoffeeScript
Literate Haskell
Logos
Logtalk
LoomScript
M
MUF
Mako
Markdown
Mathematica
Maven POM
MediaWiki
MiniD
Modelica
Module Management System
Monkey
Moocode
MoonScript
Myghty
NL
NSIS
Nginx
Ninja
NumPy
ObjDump
Opa
OpenCL
OpenEdge ABL
OpenSCAD
Org
Ox
PLSQL
PLpgSQL
Parrot Assembly
Parrot Internal Representation
Pod
PostScript
PowerShell
Protocol Buffer
Public Key
Python traceback
QMake
RDoc
REALbasic
RHTML
RMarkdown
Raw token data
Redcode
RenderScript
RobotFramework
SCSS
SPARQL
SQL
SQLPL
STON
SVG
Sage
Sass
Scaml
Scilab
ShellSession
Smarty
Stata
Stylus
TOML
TXL
Tcsh
Tea
Text
Textile
Thrift
Turtle
Twig
VCL
WebIDL
XML
XProc
XS
XSLT
Xojo
Xtend
YAML
Zimpl
desktop
fish
mupad
reStructuredText

アルバイトをやめました。

昨日(1/8)、会津で働いていた Eyes,JAPANを辞めました。
理由としては今、自分が4年生で来年から東京で就職するっていう理由と卒論に打ち込むっていう理由です。

振り返ってみて
2014年の5月ぐらいに急に「働かせてください」と押しかけて働かせていただきました。
あの頃は就活も終わり今までの仕事が自分ひとりの開発ばかりで共同開発がしたいっていう理由だけでした。

社員、上司、アルバイトの方々にとても恵まれており(技術レベルも特に)とても有意義な時間を過ごせました。
技術力の向上はもちろんありましたが、それよりも社会性を多く学ばせてもらった気がします。

社員、先輩、後輩の方々にとっても迷惑をかけてばかりで本当に申し訳なかったです><
社長の山寺さんには最後まで迷惑をかけてしまいましたが、自分の至らないところを多く教えてもらいました。
最後の胴上げはとても嬉しかったです。
もっと早くからこの会社で働いていればもっと自分は成長していたんだなぁーっていう後悔が唯一の心残りです。

最後に
まだ卒業するまでちょくちょく顔を出すのでその時は優しくしてください!
この時期に辞めたという決断があるので、もちろん卒論がんばります。

(以下、卒業できたらの仮定の話です)
会津に戻ってきた時はまた顔を出せたらと思います!

Githubでずっと草を生やすためにSlackで動かすbotを作った

GithubのContributionsというのをご存知ですか?

自分は今まで全く気にしてなかったのですが、最近とても気になり始めました。
@Linda_ppさんのスライドを読んでContributionsの楽しさに気付きました。

Contributions
これは毎日Githubにpushするとカレンダーに色が付き可視化できる機能です。
また最長継続記録なども書いてあります。
例えば@Linda_ppさんのContributions

自分のはこちら です。

全くpushしていないことがわかります。。。
しかし、実際はしっかりpushしています。

なぜ記録されてなかったのか?

  • gitで設定したemail(user.email)とGithubでの登録アドレスが一致でなければならない
  • branchはデフォルトブランチではないといけない(リポジトリ作成時はmasterで設定で変更可能)

      
以上を満たさないとContributionsに色がつかないということを最近知りました。

なぜ気にするようになったのか

  • 継続することはいいことだと思うしモチベーションの維持もできそう
  • 一目見て緑で埋まってたらヤバイ人だと感じた(個人の意見)

Slack
Slackとは最近流行りのチャットツールである。
自分の場合、会社のと自分用の2つを使っている。

Slackにはbotを流すことが可能なので、もしGithubにpushしてなかったら警告を送るbotを作ることにした。

slack-garden
ソースコードこちら

目的
15,21,23時(自分の場合)にもしGithubへpushしていなかったらSlackに通知を流しpushを促す。
促すことによりpushし忘れということがなくなり草の育成とCurrent streakとLong streakの維持をする。

機能

  • 定期通知
  • カレンダーの表示

http://about-hiroppy.com/screenshot/slack-garden/calendar.png

  • 基本的な情報表示

まだ機能は少ないですので今後増やしていく予定です。(案が思いつかない><)
リファクタリングもままならない状態なのでそちらもやりたいと思っています。

まとめ
思った以上に草を生やすのが楽しくてある程度のモチベーションが保てることがわかった。
もし今まで気にしていなかった方は是非気にすると案外ハマるかもしれません!

顔文字のnode moduleを作った

新しいサイト http://about-hiroppy.org を作ったのはいいが、βをデプロイしてモチベの低下が激しかった。(本当はバグもとらないといけないのに。。。)

自分は必要だと思ったものは作ることができるが新しい発想というのはできない。
そして今これないと不便だなーって思うことが特になかったのだ。
なので何もやることがなく、仕事しかやっていなかった。

さすがに自分の勉強ができてないと思って考えたのだやはり何も案が出ない。

そこで思い出したのが、ここの顔文字のサイト( TLで集めた顔文字とか2275個1/12ページ目。 ) にAPIがあったことを。。。
そして今のところnode-moduleに存在していないので作るかと。。。
正直API自体が簡単なものなので、たたくだけであるが、とりあえず何かしようと思って作った。


丁度コーディングを始めた時にテレビで「怖いテレビ」っていう霊的な怖い番組がやってたので友達の家に行き、見ながらのコーディングであったが怖くて効率が悪かった。
見終わったら友達が寝てしまい自分も寝てしまう。。。

とりあえず動くところまで持っていったので公開するとする。
GitHub - hiroppy/kaomozi: kaomozi

結論的に特に何も学んだことはなかったものの、物をコミットするということによってモチベがあがることを確認できた。
これを機会にHPのバグ取りのモチベがあがってくれれば幸いである。

このAPIを使うことにより、新しい何かのアプリ開発につながればいいと思う。
何かおもしろい開発案(この顔文字の話題以外でも)があれば是非教えてほしい。

6月の自分のproject進捗(新しいサイト作った)

今までのリポジトリをGitBucketに移行させたりしていました。

本題
ふと最近、物忘れが多く自分が今までどこに行っていたのかを記録とっておきたいと思い6/2から始めました。
今月は緊急な仕事が入って全く進まなかったり何回もデザインをやり直したりとかしていましたがなんとかデプロイできました。
(まだ未完成な部分あるのは後々訂正していきます)

サイトはhttp://about-hiroppy.org
コード汚いし設計ガバガバです。
あとデザインも未完成です。

なぜorgなのか?

gTLDの中で選びたくて自分のメインサイトPage Not Found :(だったためどうせCompanyでもないのになぜかcomだしならこっちもorgにしちゃえっていうよくわからない理由です。
ドメインはお名前.com、vpsはさくらです。

今回はgenerator-angular-fullstack - npmを使って実装しました。
つまりフロント、バックエンドをすべてJSでやりました。
バックエンドの実装自体は一週間かかったかかからなかったかぐらいですがデザインで二週間近く取られてしまいました><

使ったライブラリやフレームワーク

  • Express(MVC)
  • Angularjs(MVW)
  • mongoDB(DB)
  • SASS(CSS Template Engine)
  • Compass(CSS Authoring Framework)
  • Jade(HTML Template Engine)
  • Underscore(神)
  • Grunt(task runner)
  • Yo(雛形作成ツール)
  • Bower(frontend package manager)
  • Livereload(ファイル監視)
  • Karma(test)
  • Bootstrap
  • 多すぎるので以下省略...

デザイン面

  • レスポンシブデザインに対応させた。
  • いつもよりもカッコイイデザインにしてみた。

形式

1. 開始ツイート

指定ワードの場合

Foursquareにも対応している。

2. それに対するreturn

これはMongoDBに保存している各ドキュメント(object)のprimary keyである。

3. さらに情報の追加をしたい場合は返ってきたリプライに対してさらにリプライをする。
写真(複数枚可)、コメント、場所などの追加情報が可能である。

4. そうすると追加したかのリプライが帰ってくる。

以降3->4の流れである。


構造

画像作り終わって思ったがJadeとScssはgrunt buildでやるからそこには入らないです。(ごめんなさい)
将来的な拡張を考えてuserstreamを自分の鯖で流すことにした。
デーモン化させるためにpm2を使用した。


API(return json)

  • GET
    • calender
    • ranking
    • photo
    • info
    • countMonthAndAll
    • users.me
    • users.show
  • POST
    • place(各場所に対して発行しているAPI)
    • users.create(使ってない)
  • PUT
    • users.changePassword


Place APIについて

新しい場所が登録された場合のIDの振り分けを8桁のIDとして生成させることにした。
生成方法として4+4で('0000' + (Math.floor(Math.random() * 999) + 1)).slice(-4) + ('0000' + (Math.floor(Math.random() * 999) + 1)).slice(-4)とした。
これで重複したら運が悪かったのだと思います(´・ω・`)
今更思ったが普通に初回のprimary keyでいいと思えてきた。

テストについて

クライアント、サーバー、両方 karmaに任せた。

既存のバグ(時間作って直します)

一回visitedのページにまた戻るとanimationやphoto libraryがバグる(確定)
あとバグではないがPlaceの右2つの円ぐらいどうにかしたいけど案がない

難しかった点

とくにレスポンシブデザインが難しかった。
たとえBootstrapのgridシステムを使っているといえどもwidth:320px までの対応は本当に難しいし自分で実装し直しの部分もあった。
あと320pxまでくるとtableに対してoverflow-xがつくのはどうしようもない。。

結論

このような大規模(?)な開発は久しぶりだったのでとても楽しかったです。
デザインはかなり難しいし一回創りだすと自分の気に入らない点が大量に出てきて終わりが見えなかった(なので期間を設定した)。
自分のセンスのなさを再び思い出した。

最後に

7月は自分はiOS developerでもあるのでSwiftの勉強をします(リリースしているアプリの書き換えの予定)
ただ仕事と研究が忙しくなるころだと思うので時間の効率を良くしないとキツイ感じします。
完成度は70%ぐらいだと思っているので追々更新することになりそうです。

追記

今月の給料(6万over yeah!)がたくさんはいるのでWiiUとマリカ8買いました!
しかし今週の勉強会自分担当なので全くゲームできない。。。!

おまけ

没UI


なぜかすべて消されてしまってこの二枚しか残ってなかった。。。

yeomanを利用してangularjsのひな形を作って陥った罠

生成するとディレクトリ構成は以下のようになる。

一つ目に陥ったのがmodule名が長い場合、ひな形に自動で埋め込む時全て一致しない場合がある。
今回自分が陥ったのが、recordWhereAmInowAppという名前とrecordWhereAmINowAppの両方が生成されたのである。
index.htmlはrecordWhereAmINowAppだったが、app.jsとmain.jsはrecordWhereAmInowAppだった。
なのでgrunt serveするとページが白紙になる。
通常はこのとおり。

つまりNとnの違いで読み込みがされなくなる。
index.htmlがエントリーポイントみたいな感じなので基本は編集しないです。

次にyeomanが作るディレクトリに app/scripts/controllersの中にmain.jsとmain.coffeeが存在する。
自分はcoffeeはそんなにかけないのでmain.jsを編集するがどうもmain.htmlに反映されなくて悩んだ。

main.html

<div class="jumbotron">
  <h1>Hello {{world}}</h1>
  <h1>'Allo, 'Allo!</h1>
  <p>{{users.name}} {{users.score}}</p>

  <p class="lead">
    <img src="images/yeoman.png" alt="I'm Yeoman"><br>
    Always a pleasure scaffolding your apps.
  </p>
  <p><a class="btn btn-lg btn-success" ng-href="#">Splendid!<span class="glyphicon glyphicon-ok"></span></a></p>
</div>

main.js

'use strict';

angular.module('recordWhereAmInowApp')
  .controller('MainCtrl', function ($scope) {
    $scope.awesomeThings = [
      'HTML5 Boilerplate',
      'AngularJS',
      'Karma'
    ];
    $scope.world = 'test'
    $scope.users = {name: "about_hiroppy", score: 10000}
  });

と書いても変数部分はhtmlから消えてるだけである。(つまり空の状態)

これに数時間悩んだが、どうも .tmpの中身が変更されてない。
.tmpはコンパイルしたコードが置かれている場所だが、そこに自分の追加した

    $scope.world = 'test'
    $scope.users = {name: "about_hiroppy", score: 10000}

が存在しない。

つまりコンパイル先のコードに追加されていないことになる。

結果としてgruntはどうもmain.coffeeをコンパイルするらしく、main.coffeeに書いたら普通にうまくいった。
なぜmain.jsが生成されているのか実に疑問である。

以上が自分が陥った箇所である。