カテゴリー : プログラミング

SOY CMSマニュアルページ作成中
SOY CMS、SOY ShopとSOY Appの操作に関する質問を下記のページで受け付けています。

SOY CMS/Shopで標準機能だけでは実装が難しい時はお気軽にご相談下さい。

SOY CMSの開発秘話を投稿しました。→ SOY CMSの開発秘話
ブログ内検索
 

Go言語でKVSのRedisを使ってみる

Go言語で構築したサーバで複数台の構成にして、 ロードバランサで負荷分散しなければならない状況になりそうだ。 複数台にした時に問題になるのが、 複数サーバ間でセッションのような値を共有したいという問題が発生する。 どうにかできないかと検討してみたところ、 https://redis.io/ KVS(Key-Valueストア)のRedisであればできそうだ ということを思い出し、 NoSQL - Wikipedia Go言語でRedisの使い方を調べること...

Read More…

 

Go言語を使ってJSONから複数のデータを取得してみる

Go言語でJSON 前回JSONから、秘密鍵などが入ったデータファイルをmain.goで読み込んだ。 今回は、複数のデータの場合、どう呼び出すか試してみる。 まず、sample.jsonに下記のコードを入力する。 [ { "id" : 1, "name" : "usako", "reading" : "usano" }, { "id" : 2, "name" : "kumata", "reading" : "k...

Read More…

 

Go言語でJSON

JSONとは、JavaScript Object Notationの略で、テキストベースのデータフォーマットだ。 ***.jsonという形でデータファイルになる。秘密鍵などのデータを保存しておきたい時の設定ファイルとして使うことが多い。 今回は、~/workspace/json/sample.jsonを作成し、下記の情報を入力する。 { "id":1, "name":"usako", "reading":"usano" } lsonファイルは、{ “項目”:値.....

Read More…

 

Go言語でGoogle Analyticsのデータをチャットワークに送ってみる

「植物のミカタ」のGoogle Analytics(以後GAと略す)から取得したpageviewsをチャットワークに送ってみる。 今回は、前日のpageviewsと日付けを取得してみる。 ※pageviewsとは、閲覧されたページの合計数として定義される指標 実際のコードを書く前に今回のコードで必要なライブラリを取得しておく。 $ go get golang.org/x/oauth2 $ go get google.golang.org/api/analytics/v3 pa...

Read More…

 

妻がプログラミングをはじめてGo言語とQtでアプリを公開するまで

Go言語とQtで給与明細の計算機を作ってみたで記載した通り、 今年の四月からプログラミングの勉強をはじめ、 ちょうど半年が経過したところで、 Go言語とQtでGUIアプリケーションの税金計算のアプリを公開した。 実際に書いたコードはGitHubで管理して、 下記のURLから開発したコードを確認することができる。 https://github.com/ryoko-saito/payslip_on_restaurant_biz https://github.com/ryok...

Read More…

 

Go言語でsyncパッケージを使ってみる

O'Reilly Japan - Go言語による並行処理 Go言語で並行処理についての本が出版されたので購入して読んでいる。 この本よりも前に Lambda Note Goならわかるシステムプログラミング Goでシステムプログラミングに触れる本でも並行処理について記載されていて、 syncパッケージのWaitGroupやMutexが大事だという記載があり、 説明文からもこれらが大事だということはわかるんだけれども、 普段並行処理を書かない私にとってしっくりこなかった...

Read More…

 

Go言語で関数の練習問題③

r := generate()とする数字をランダムに出力するgenerate関数を作成する。 package main import ( "fmt" ) func main() { r:=generate() fmt.Println(r) } func generate() int { rand.Seed(time.Now().UnixNano()) r := rand.Intn(10) return r } 今回は、お題にr := gen...

Read More…

 

Go言語で関数の練習問題②

今回は、greet(name) にname := "うさこさん"と入力すれば、こんにちはうさこさんと出力する関数を作成してみる。 package main import "fmt" func main() { name:="うさこさん” greet(name) } func greet(a string) { fmt.Println("こんにちはうさこさん”) } ここで作成する関数は、greet関数で、今回は、name := "うさこさん"と...

Read More…

 

Go言語で関数の練習問題①

関数を自分で作成する際、引数や返り値をどう設定すればよいのかわからなかったので、例題でどう書けばよいのか考えることにした。 Go言語で関数 Go言語でf(x) = x 2という関数を作ってみる。そこにx=3を代入して結果を表示してみる。 package main import "fmt" func main() { x := 3 y := f(x) fmt.Println(y) } // f(x) = x + 2という式を意味する関数 func f(...

Read More…

 

Go言語でQtのQComboBoxを使ってみる

Go言語でQtのQComboBoxを作ってみる。 QComboBox Class | Qt Widgets 5.11 package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { app := widgets.NewQApplication(len(os.Args), os.Args) window := widgets.NewQMainWindow(nil,...

Read More…

 

Go言語とQtで計算フォームを作成してみる

Go言語とQtを使って、下記のような計算フォームを作成してみる。 package main import ( "os" "strconv" "github.com/therecipe/qt/widgets" ) //packageスコープ内に変数を定義しておくと、mainの中、外でも変数を使うことができる var jikyuuInput *widgets.QLineEdit var jikanInput *widgets.QLineEdit var ...

Read More…

 

Go言語でQtのQGroupBoxとQGridLayoutを組み合わせたサンプル

QtのQGroupBoxとQtのQGridLayoutを使って、下記のような画面を作成してみる。 Go言語でQtのQGroupBoxを使ってみる Go言語でQtでQGridLayoutを使ってみる package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { app := widgets.NewQApplication(len(os.Args), os.Ar...

Read More…

 

Go言語でQtのQLineEditを使ってみる

Go言語でQtのQLabelを使ってみるに引き続き、 QtのQLineEditを使って、入力フォームを作成してみる。 QLineEdit Class | Qt Widgets 5.11 package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { app := widgets.NewQApplication(len(os.Args), os.Args) wi...

Read More…

 

Go言語の構造体2

前回のパッケージの関数とメソッド周りに引き続き、Go言語の構造体周りを見ていく。 Go言語のパッケージの関数とメソッドについて Qtのコードを見ていると、NewQMAinWIndowやらSetLayoutといったNew~、Set~という記述をよく見かける。これを理解するためには、構造体の仕組みをおさらいした方がよさそうなので、もう一度構造体について詳しくみていくことにする。 Go言語でQtのQGroupBoxを使ってみる 構造体は、一つの変数にどのような値のセットをもつか厳格に決...

Read More…

 

Go言語のパッケージの関数とメソッドについて

Go言語のパッケージについてもう一度みていく。 Go言語でpackage Go言語で構造体のメソッド dir ├── main.go └── pac └── pac.go 上記のようにpacパッケージを作成し、nameとreadingフィールドを持ったPerson構造体を作成する。 この構造体に関連した関数を作成してみる。 pac/pac.go package pac//Person構造体を定義する type Person struct { name...

Read More…

 

Go言語でQtのQBoxLayoutを使ってみる

Go言語でQtのQMainWindowを使ってみるに引き続き、 今回はGo言語でQtのQBoxLayoutを使ってみる。 QBoxLayout Class | Qt Widgets 5.11 Qtのレイアウトについては下記の記事に記載してある。 Qtのレイアウトについて package main import ( "os" "github.com/therecipe/qt/widgets" ) func main() { app := widget...

Read More…

 

Qtのレイアウトについて

Qtのレイアウトは、主に3つある。 QBOXLayout、QGridLayout、QFormLayoutである。 QBOXLayoutには、QHBOXLayoutとQVBOXLayoutの2つがある。 QHBOXLayoutは、下記の図のようにウィジェットを水平に整列させる。 Layout Management | Qt Widgets 5.11より抜粋 QVBOXLayoutは、下記の図のようにウィジェットを垂直に整列させる。 QGridLayoutは、グリッド...

Read More…

 

Go言語でQtのQMainWindowを使ってみる

Qtには、様々なクラス(部品のようなイメージ)がある。 今回はメインウィンドウ(QMainWindow)のフレームワークを作成してみる。 Qtのメインウィンドウのフレームワークは、下記のような構造になっている。 QMainWindow Class | Qt Widgets 5.11より抜粋 今回は、赤枠の部分(枠の内側は空)を作成してみる。 実際のコードを書く前にGo言語で開発環境の構築の記事を載せておく。 Go言語でQtを扱ってみる on Ubuntu Go言語で...

Read More…

 

Go言語でQtを扱ってみる on Windows

Go言語でQtを扱ってみる on UbuntuでUbuntuでGo言語とQtの開発環境を用意した。 続いて、Windows10でもGo言語とQtの開発環境を用意してみる。 環境 ASUS TransBook T304U OS : Windows10 64bit Go言語:1.11 linux/amd64 Qt:5.11.1 端末はgit bashを利用しているので、新規でMSYS2をインストールせず、git bashを使用する方向で話を進めます。 git bashは下記の記事...

Read More…

 

Go言語でQtを扱ってみる on Ubuntu

Go言語はC言語のようなコンパイルとPython等のLL言語の両方の実行方法を持ちつつ、 言語の仕様を削ぎ落として学習コストを下げつつ実行の高速化を保ち、 更にはクロスコンパイルで一つのコードで様々なOSをサポートする。 シンプルな故に開発の支援ツールも充実している という特徴を持つ言語だが、 デスクトップアプリ(GUI)の開発に弱いというイメージがある。 敢えて弱くしているように見えるので以後は弱点とは言わないが、 洗礼された言語を使っっているとやはりGUIアプリのコードを書...

Read More…