m_shige1979のささやかな抵抗と欲望の日々

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

golang

go言語の学習:websocketで画像を送信し、webで表示

できたの なにこれ? websocketサーバより1秒単位で画像をバイナリ形式で送信したもの ソース(サーバ側) package main import ( "log" "net/http" "golang.org/x/net/websocket" "time" "io/ioutil" "image" "gocv.io/x/gocv" "image/color" "bytes" "ima…

go言語の学習:画像を読み込み、文字を追加

日本語ができない 時間は気にしないでwww 前のソースを一部回収 package main import ( "gocv.io/x/gocv" "log" "os/user" "time" "io/ioutil" "image/color" "image" ) var ( // サイズ w = 640 h = 480 // 色定義 black = color.RGBA{0, 0, 0, 0} blue …

go言語の学習:gocvで画像を作成して出力

gocv Home :: GoCV - Golang Computer Vision Using OpenCV 3 opencvでなんかいろいろやってくれるライブラリ インストールするまでくっそ面倒 macの場合はbrew installで簡単そうですけど なんかいろいろエラーでて大変でした ・pythonいれたり、クリーンア…

go言語の学習:構造体よりタグ情報を取得

構造体にあるjsonなどのタグより取得 package main import ( "fmt" "reflect" ) type Sample struct { no int `sampletag:"aaaaa"` name string `sampletag:"bbbbb"` age int `sampletag:"ccccc"` } func main() { fmt.Println("start") // Sample1インター…

go言語の学習:ポリモーフィズムのパターン

Javaとかではクラスにinterfaceとか定義して使用する goの場合は構造体自体はメソッドを実装するが、定義されているインターフェースは定義しない サンプル package main import ( "fmt" ) // Sample1インターフェース、メソッドを定義 type Sample1 interfa…

go言語の学習:interface型の値設定について

interface型は基本的にはどんな値も設定できる package main import ( "fmt" ) func main() { fmt.Println("start") var a interface{} a = int(10) a = int64(10) a = string(65) fmt.Printf("%+v\n", a) fmt.Println("end") } 設定はできる…しかし、そのま…

go言語の学習:typeでインターフェースを定義

概要 interface自体はstructを利用してする感じと認識している 構造体とかとなんかごっちゃになっていてJavaのクラスとかと勝手が異なるので混乱している そもそもstringやintにメソッドは付与できるのか? type data1 string type data2 int こんな感じで定…

FaceApiを試す。(ローカルよりファイルをアップロードして結果を取得)

基本的にはURLを指定するサンプルしかない ので探していろいろやってみた。 実装 sample2.go package main import ( "log" "net/http" "bytes" "io/ioutil" ) func main() { key1 := "生成したキー" jpegData, _ := ioutil.ReadFile("face.jpg") // EndPoint…

AzureのFaceAPIをgo言語で試す

FaceAPIとは? Face API - 顔認識 | Microsoft Azure 画像より顔を認識してその情報を返すAPI 準備 AzureでFaceAPIのサービスを開始してキーを取得刷る必要があります。 手順 その他サービスより検索 Cognitiveサービスを開始する FaceAPIを検索して開始する…

go言語で画像を作成(編集)する【imagemagick】

ImageMagick 画像編集するライブラリで超優秀なやつ 文字列の設定なども可能 フォントは微妙 参考情報 https://qiita.com/arc279/items/5f277aa5cce3de5247e5 https://github.com/gographics/imagick インストール(Mac) brew install ruby brew install Im…

go言語で超シンプルな画像作成

画像を作成 短形の画像を作成する。 実装 sample1.go package main import ( "log" "image" "image/jpeg" "image/color" "os" ) var ( x = 0 y = 0 width = 400 height = 300 quality = 100 ) func main() { log.Println("start") // 短形を作成する img := …

go言語でflagを使用したパラメータ指定を行う

flagパッケージ ./sample1 -user hogehogeみたいな感じで項目名にあったパラメータを渡す処理 http://golang-jp.org/pkg/flag/ とにかく実装 sample1.go package main import ( "log" "flag" "os" ) // 引数取得エリア type ParamItem struct { Url string C…

go言語で設定ファイルを読み込み2(別パッケージにして扱う)

1つのファイルの場合 はメンテしづらいので分割する ファイル構成 . ├── config │ └── appconfig.go ├── config.json └── sample2.go こんな感じ 実装 config.json { "url": "http://hogehoge.com", "count": 100, "user": "hoge", "pass": "foo" } config/…

go言語でjson形式の設定ファイルを読み込む

実行する際の変数の外出 設定ファイルにして配置しておくとやりやすいので対応する。 前提 設定ファイルはjson 実装 config.json { "url": "http://hogehoge.com", "count": 100, "user": "hoge", "pass": "foo" } sample1.go package main import ( "log" "…

golangでajaxを使用してrssのデータを取得する

データベース処理考え中 ORMマッパーとかあれば簡単だけどSQLを書きたい欲求もあり、コードを冗長化させない点を… RSSのデータをjsonで取得 単純に記事のタイトルとリンクなどを取得するものを作成 構成 . ├── main.go ├── static │ ├── css │ │ ├── bootstr…

golangでjsonのデータを出力する

一気に気温が上がったり、下がったり大変 安定せんかな〜 jsonでデータを出力する まあ、今回は単純にjsonを出す 参考 Go: Simple, Easy, Fast – Building a Go (golang) REST Service with Gorilla | Giant Flying Saucer 実装1(シンプルな構造体) main1…

golangでRSS2のデータを取得して表示

XMLを取得してパースする RSSを取得して一覧を表示するサンプルを作成する 参考 [Golang] XML Parsing Example (7) - Parse RSS 2.0 ※Atomや両方対応のパターンもあります 静的ファイルも参照したい jsとかcssとか使用したいけどどうやって参照するか web ap…

golangでgorillaとかいうのを使ってみる(sessions)

セッションを使用してみる 値を入れること自体はそんなに難しく無い感じですけど取り出すときになんかいろいろ手間取る感じ 基本的には構造体などで管理したほうがいい感じです マニュアル sessions - Gorilla, the golang web toolkit インストール go get …

golangでgorillaとかいうのを使ってみる(mux)

ゴリラ? Gorilla, the golang web toolkit まあ、http関連のやつでルーティングとかセッションとかを"net/http"よりは柔軟に使える感じのもの なんか適当に調べたけど"net/http"ではセッションは使えないとかなんとかちょっと今回はルーティングの"gorilla/…

golangでtemplate(html)の確認

ページを表示する際はテンプレートを使用する 標準では"text/template"と"html/template"が存在する ※他にもあるかもしれないけどあとでやる 参考 Go言語でhttpサーバーを立ち上げてHello Worldをする - Qiita template - The Go Programming Language golan…

golangで超簡単なサーバ

フレームワークもあるけどまずはこちらから 単純なAPIなどが欲しかったりする場合などはこちらのほうがいいかもしれないので… 参考 Go言語でhttpサーバーを立ち上げてHello Worldをする - Qiita 実装 sample package main import ( "fmt" "net/http" ) func …

golangの学習(time)

日時に関する情報を制御する timeパッケージを使用する 参考 https://golang.org/pkg/time/#Now http://ashitani.jp/golangtips/tips_time.html http://tdoc.info/blog/2013/04/10/go_time.html 現在日時を取得する sample package main import ( "fmt" "tim…

golangでExcelのファイルへ書き込み

使用するパッケージ https://github.com/tealeg/xlsx サンプルコード package main import ( "fmt" "github.com/tealeg/xlsx" ) func main(){ // ファイル var file *xlsx.File // シート var sheet *xlsx.Sheet // var row *xlsx.Row var cell *xlsx.Cell v…

goでライブラリのテストを試す

” testing”パッケージがある これを使用してテストすることができるみたい テスト対象 $ tree $GOPATH/src/github.com/mshige1979/ $GOPATH/src/github.com/mshige1979/ ├── compute │ └── add.go └── hello └── hello.go 2 directories, 2 files $※compute…

GOPATHを使用してgo installとかする

実行環境? macです。ディスク容量がやばいのでもうそろそろ家のやつはminiに移行しようかと考え中 GOPATHってなん go言語で使用する際のworkディレクトリみたいなものパッケージを取得する場合などやフレームワークを使いたい場合は必須 どこに作成するのか…

go言語の学習メモ10(独自パッケージpp)

アドベントカレンダー Goのデバッグに便利なpretty printライブラリ「pp」を作った - Qiita にあったのでphpのvar_dumpみたいなことができると信じて試す インストール $ go get "github.com/k0kubun/pp" サンプルソース sample_dump1.go(map) package main;…

go言語の学習メモ10(標準入力)

paizaとかでサンプルプログラムを試す場合は基本使いそうなので 仕事とかでは標準入力はあまり実感がないけど基本的なことなので理解する bufio.Scannerがいいらしい 根拠はないけど ソース package main; import ( "bufio" "fmt" "os" ) func main(){ // 標…

go言語の学習メモ9(ファイルを分割)

includeとかrequireとか です。 外部に定義ファイルなどを持たせて分割して記載したいけどなんかあんまりなかったので調査 goでの外部のgoファイルをどのようにして読み込むかなどを packageとかimportとかを駆使して対応するようです packageという名前 1…

go言語の学習メモ8(配列とか)

配列 まあ、普通に考えてリスト配列のことでインデックスと値で構成するもの 長さなどを設定する必要が有る感じがする sample1.go package main import ( "fmt" ) func main(){ fmt.Println("--- start ---") // 配列を定義して設定 var names[3] string nam…

go言語の学習メモ7(クラスとして使用)

クラスは存在しない ので構造体をクラスのように使用するしかない 基本 sample1.go package main import ( "fmt" ) // 定義 type Car struct{ name string } // メソッド func (p *Car) msg(){ fmt.Println(p.name) } // 初期化 func (p *Car) init(){ p.nam…