It’s now or never

IT系の技術ブログです。気になったこと、勉強したことを備忘録的にまとめて行きます。

【Swift】【SwiftUI】Property wrappers に入門してみた

概要 Swift 5.1から「Property Wrappers」という機能が導入されました。 これはプロパティの読み込み/書き込みをカプセル化するためのデータ構造です。 SwiftUIの導入により、Swiftには様々な機能が追加されましたが、このProperty Wrappersはその中でも特に…

【SwifUI】Sign In With Appleの機能をSwiftUIで実装する

概要 アップル独自の認証方法「Sign in with Apple」について、SwiftUIを使って実装してみます。 環境 XCode: Version 11.3.1 Swift: Version 5.1 Sign in with appleのボタンの作成 まず、はじめにボタンコンポーネントの作成から実装します。 Sign in with…

【WebRTC学習】③ シグナリングサーバを使ってP2Pを接続する

概要 inon29.hateblo.jp 前回は、WebRTCのAPIをつかったP2P接続の導入として、1台のPC上(1画面上)で擬似的にRTCPeerConnectionによる接続を試してみました。 今回は、同じローカルネットワークで、別々の端末でP2Pの接続ができるような実装を試してみます。 …

【WebRTC学習】② ローカルPCだけでP2Pの接続を実装する

概要 inon29.hateblo.jp 前回は、WebRTCの導入してブラウザからPCのカメラとマイクを起動するサンプルを実装してみました。 今回は、1台のローカルPCでP2Pの通信をつなげるサンプルを実装してみます。 この記事の目標 1つの画面上で、P2Pのコネクションを繋…

【WebRTC学習】① ブラウザから動画/音声を取得する

概要 WebRTCについて調べることがあり、面白そうだなぁと思ったので勉強することにしました。 段階的に少しずつ理解を深めていきたいと思います。 この記事の目標 ブラウザからPCのカメラとマイクを起動して、htmlの <video> タグに表示する WebRTCとは(超ざっくり)</video>…

【雑記】【メモ】ARCore(google)のCloudAnchorについて調べてみた

はじめに 最近ARについて、軽く調べることがあり Googleが提供する CloudAnchorというARの位置情報を他端末と同期する機能についてサンプルコードをつくって動かしたときのメモです。 基本、公式ページに記載してある内容であり、実装コードなども特に載せて…

【ReactNative】【参考】ReactNativeのバージョンアップ手順

ReactNativeのライブラリのバージョンアップはなかなかつらい作業です。 現在のプロダクトは、0.54.3を使用していて、0.59.0まで上げることを目標に作業しています。 その時のバージョンアップ作業を行うにあたり参考にした資料や手順を記載しています。 前…

【ReactNative】React Nativeで開発を始めるにあたって

最近趣味でReactNativeを触っていましたが、タイミングよく業務でもReactNativeのアプリに関わることになりました。 趣味の範囲では、適当に触って入ればよかったのですが、流石に業務で使うとなると少し真面目に勉強しなくてはいけないなと思い始めています…

【React】【メモ】Reactのアプリをgithub-pagesにデプロイする

Reactで作成したアプリを手軽な環境にデプロイする方法のメモ。 環境 % node -v v10.1.0 % yarn -v 1.6.0 公式ドキュメント https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#github-pages 基本的に公…

【gRPC】gRPCを触ってみた

gRPCについて興味があったため触ってみました。 記載内容については誤りがあるかもしれません。ご指摘ありましたらいただけると幸いです。 gRPCとは Googleによって開発されたRPCフレームワークです。 そもそもRPCとは(remote procedure call)の略で、なかな…

【Go】メソッドとレシーバ

※ この記事時点のGoのバージョンは「1.10.2」です Goでは、特定の型に関連づけられた関数を「メソッド」と呼びます。 また、メソッドを呼び出される対象(型)のことを「レシーバ」と呼びます。 inon29.hateblo.jp ポインタレシーバと変数レシーバ(値レシーバ)…

【Go】関数とメソッド

最近Goを勉強し始めました。 関数とメソッドの違い 基本的には次のように考えています。 関数は、一般的な関数(funcから始まる) メソッドは「型」に関連付けられた関数 関数 package main import "fmt" // これは関数 func Bark() { fmt.Println("Bow wow. W…

【ReDash】AWSのAMIでRedashインスタンスを立ち上げる

EC2インスタンスのセットアップ AMIが提供されているので対象のインスタンスのリンクをクリック クリックすると通常のEC2セットアップ画面に遷移するので環境に合わせた設定でインスタンスを作成する 一応上記リンクではt2.smallが最低として推奨されている…

【Ethereum】【Solidity】low-level callを使ってコントラクトの関数を実行する

Solidityには、アカウント(アドレス)に対して直接バイトコードを実行する為に、address型の変数に対してcallという関数が用意されています。(low-level callと呼ばれるようです。) http://solidity.readthedocs.io/en/develop/types.html#members-of-address…

【Ethereum】【Solidity0.4.16】viewとpure修飾子

Solidity 0.4.16からviewとpureという関数の修飾子が新たに追加されました。 view 修飾子 pragma solidity ^0.4.16; contract C { function f(uint a, uint b) view returns (uint) { return a * (b + 42) + now; } } 内部で状態を変更しないことを宣言しま…

【Ethereum】コントラクトから外部のコントラクトの関数を実行する

EthereumのContractにおいて、 Contract内部から他のContractの関数を呼び出したいケースがあります。 その時に考えられる方法としては主に以下の2つかと思います。 ①Contract内で別のContractをnewする ②既にデプロイされている外部のContractを使う 今回は…

【Ethereum】【Solidity】OpenZeppelinのDayLimitのソースを読んでみる

OpenZeppelinというフレームワークのソースコードを引き続き読んでいます。 過去はこちら inon29.hateblo.jp 今回は、DayLimitというContractのソースを読んでみました。 DayLimitコントラクトは、関数に日付の実行制限を付与するためのコントラクトです。 …

【Ethereum】【Solidity】OpenZeppelinのShareableのソースを読んでみる

Solidity言語を使って実装された、 基本的なContractをフォーマット化したOpenZeppelinというフレームワークが開発されています。 このフレームワークに含まれるShareableというContractのソースを読んでみたので、メモを記載します。 Shareableコントラクト…

【Ethereum】Contractをネットワークにデプロイする

Ethereumの勉強を引き続きしています。 Contractをネットワークへデプロイする場合、 今までは、Ethereum WalletやRemix経由で行っていたのですが、ソースをコンパイルしていデプロイする方法がよくわからなかったので調べてまとめてみました。 古いバージョ…

【Ethereum】Ethereumで独自のトークンの作成してみる

Ethereumのトークンとは Ethereum上でトークンとよばれるコントラクトを作成することで独自の暗号通貨を作成することが可能です。 トークンを使うことで、コイン、ポイントなど様々な仮想的な価値をEthereumの仕組みの上で利用することができます。 トークン…

【Ethereum】Solidityを使ってSmartContractの作成してみる

引き続き、Ethereumを勉強中です。 前回はEthereumのプライベートネットワークを構築する方法について調べました。 inon29.hateblo.jp 今回は、Ethereumのコアな機能であるSmartContractについて実際に動かしてみたいと思います。 実行環境 Ubuntu14.04 on d…

【Ethereum】EthereumでPrivateNetworkを作ってみる

仕事の関係でブロックチェーンのプラットフォームであるEthereumを調べることになり、 簡単な動作確認を行うためにプライベートのEthereumのネットワークを作成してみました。 ※ 調べながらのものなのでところどころ間違っているかもしれません。 ※ ブロック…

Kerasのサンプルソースが何をやっているか読んでみる

前回は、Kerasのインストールを行い機械学習を行うための環境を構築しました。 inon29.hateblo.jp しかし、今の状態だと何をどうすればどう使えるのかも全く分からないため、とりあえずKerasのサンプルソースを読んで理解を深めていこうと思います。 その前…

Kerasの環境をMacに構築する

最近、今更ながら機械学習の勉強をしてみようと思い、色々調べていました。 僕は行列計算などの高校数学もほとんどわからないのですが、最近はPythonでのエコシステムがかなり充実してきているようで、頑張れば簡単なもの位は作れるようになるかなと思い、1…

独自のDockerImageを作成する

Dockerでは、自分で独自のimageを作成することが可能です。 独自のdocker imageを作成する方法は主に2つあります。 ① docker container commitコマンドを使う ② Dockerfileからビルドする 今回は、①の起動中のDockerコンテナから新しいイメージを作成する方…

Docker for Macを使ってみる

現状は、Vagrantを使って開発環境を構築することが多いのですが、最近はDockerを使って開発しているという話をよく聞きます。 DockerだとマシンスペックをVMほど使用しないというのがメリットの一つらしく、素早く軽量に開発環境を整えるため役立つのかな?…

CentOS7にJavaをインストール

jdkをオラクルページからをダウンロード ダウンロードページ rpm経由でインストールするため Linux x64のrpmファイルをダウンロード インストール sudo rpm -ivh jdk-8u121-linux-x64.rpm 確認 java -version

Oracle Database ExpressをCentOSにインストールする

Oracle Databaseは、基本的には商用(有償)のDBMSですが無償で使えるパッケージが有るみたいなので試してみます。 環境 CentOS 7.1 (Vagrant) パッケージのダウンロード ダウンロードページから Oracle Database Express Edition 11g Release 2 for Linux x64…

さくらVPSにOSをインストールしてroot以外のUserを作成する

さくらVPSで新規に環境をインストールしたときにroot以外の作業ユーザーを構築する方法をメモ 環境構築には、Chef zero(Knife zero)を使用する 1.さくらVPSにOSをインストール 各種設定 > OSのインストール > 標準OSインストール 今回は、CentOS7を選択 root…

【iOS, swift】swiftコーディング規約

※ Swift 2.3をベースに記載 自分がswiftを書くときのコーディング規約を記載します。 クラス Pascal記法 (大文字で始まる) で記述する // ◯ class ViewController: UIViewController { } // ☓ snake case class view_controller: UIViewController { ・・・ …