mike-neckのブログ

Java or Groovy or Swift or Golang

2018-01-01から1年間の記事一覧

合同勉強会 in 大都会岡山 にて 『Vim 入門』というタイトルで LT してきました #gbdaitokai

Vim 入門 2018/12/22 開催された 合同勉強会 in 大都会岡山 にて『Vim 入門』というタイトルで LT をしてきました。 gbdaitokai.connpass.com どうやら評判がよかったのか、 LT 枠での表彰は当初予定になかったようでしたが、審査員特別賞なるものをいただき…

Swift 用の正規表現ライブラリー

これは Qiita のアドベントカレンダー2018 の19日目のエントリーです。 qiita.com Swift の勉強を始めたのが今年の5月末からで、約半年程度 Swift をやってきました。ただ、僕は仕事では一切 Swift を書いていないので、知見に溢れた他の方のエントリーを楽…

JJUG CCC 2018 (Winterでなく)Fall に参加してきた

表記の通り、 JJUG CCC 2018 (もう 12 月だけど) Fall に参加してきた www.java-users.jp で、恒例のそのメモ Pivotal認定講師によるSpring Framework 5.1ハンズオン! 日本で唯一の Pivotal 認定講師カサレアルの 多田さん とカサレアルのスタッフによる Sp…

Vim でも AWS lambda 関数

普段 vim は h/j/k/l/d/x/0/$/:wq くらいしか使わないのですが、ひょんなことから Vim で Web サーバーがたてられると聞いたので、サーバーが建てられるなら、 http クライアントも動くのだろうと考えて、 ラムダで動くかどうか試してみることにしました。 …

JEP-330 Single-FIle Source-Code Programs って何? Java ファイルが java コマンドで実行できるってホント?! shebang でどう指定するの?調べてみた!

Java11 で取り込まれている JEP-330 すでにきしださんがブログにしている古い機能ですが、自分用のメモ。 (『古い機能』という表現はその手の界隈に人達への忖度表現) TL;DR ってなんだ??? Java 11 にとりこまれた JEP-330 は 1つの java ファイルを java…

AWS Lambda のカスタムランタイムにて Java のカスタムランタイムで関数を動かす

これは Java Advent Calendar 2018 の 7 日目のエントリーです。 Java をラムダで動かす Lambda SDK を使って、チュートリアルどおりに作成します。以上。 そうではないですね。 今回やりたいのは AWS Lambda のカスタムランタイムで Java のカスタムランタ…

Swift Package Manager プロジェクト にて CPP(C++) の関数を Swift から呼び出す

一つ前のエントリーの続き。 C++ で作られた関数を Swift から呼び出す方法。 巷には C++ の関数を Swift から呼び出す方法に関する記事が溢れているが、 XCode 前提で Swift Package Manager プロジェクトについて触れてない SPM 使っててもちょっと古い Br…

CPP(C++) の関数を C 言語から呼び出す方法

C 言語を業務でやったことがほとんどない + CPP は完全に触ったことがないので、いろいろググりつつやってみた。 最終的に Swift から C++ で定義されているオブジェクトの関数を呼び出すところまでが目標。 まず、次のような C++ の関数が定義されているも…

Amazon 製 Server-side Swift フレームワーク smoke-framework について

これは Qiita のアドベントカレンダー 2018 の初日のエントリーです。 特に Swift コミュニティに何の貢献もしていないのですが、空いてたのでついポチッと登録してしまいました。 qiita.com 2018 年の 10 月 4 日に Prime Video のエンジニアの Simon さん…

Azure 上の Ubuntu で Swift 4.2.1 を動かす

この3連休で試したのでメモ。 Azure で立てた Linux VM(Ubuntu16.04) にて、 swift の docker イメージにある通りの手順で Swift4.2.1 をインストールしたところ、エラーが出てしまって Swift アプリケーションを動かせなかった。 具体的には libdispatch-de…

Golang で XML をパースするために xsd から struct を作り出す

Go言語で XML をパースするメモ とあるxmlをgolangでパースしてデータを操作したいので、golangでxsdからstruct のコードを生成するツールを探したところ、次のようなのがあった github.com ところが、 リポジトリーの冒頭にも書いてあるように Stale since …

Stream の実行順

今更なテーマだが、たまに忘れてしまうのでメモ 次のようなインターフェースとクラスがあるものとする。 RequestValidation ある要求 T を受け付けるか拒否するか判定するインターフェース。判定した結果リクエストを受け付けられない場合は R を返す。リク…

RSocket の request-stream のサーバー/クライアントを作る

RSocket で request-stream のサーバーおよびクライアントを組み立てるときのコード例 サーバー サーバーの構築 final Disposable server = RSocketFactory.receive() .acceptor(new MySocketAcceptor()) .transport(TcpServerTransport.create("localhost",…

RSocket の Channel のクライアントとサーバーを書く

RSocket のクライアントとサーバーを書くポイント。 サーバー サーバーは requestChannel(Publisher<Payload>) を実装する。戻り値は Flux<Payload> @Override public Flux<Payload> requestChannel(Publisher<Payload> payloads) { return Flux.from(payloads) .map( payload -> DefaultPayload.</payload></payload></payload></payload>…

RSocket をちょっとだけ試してみた

Spring Fest で Spring の今後の話題としてあげられていたアイテムに RSocket というのがありました。 公式ページ (https://rsocket.io/) によると、 RSocket はTCP、WebSocket、Aeron(UDPのプロトコル)のようなバイトストリームによる伝送するためのバイナ…

CLion で以前は通っていたコードが真っ赤になってしまったときの対処

CLion で以前は問題なくコードを書けていたのが、突然ヘッダーファイルが見つからなくなった場合の対処。

Swift から regex.h を呼び出してみる

Swift の正規表現はどうなっているのか以前気になって調べたところ、 Foundation には正規表現がないため、 NSRegularExpression を使うとのことで、実際に試しに使ってみたところ、使い勝手がかなり悪くて使うのを諦めました。そこで、 C 言語に regex.h と…

Swift から C の関数を呼び出す(Swift Package Manager 使ってる)

Swift から C の関数を呼び出す方法を Swift-NIO のコードを読みながら試した。

Swift で byte の配列を標準出力に書き出す

わからんから調べた

Swift-NIO で http クライアントの書き方

Swift-NIO で http クライアントの書き方。 以前失敗してたけど、リベンジしたのでその記録。

DispatchQueue の多重度

DispatchQueue の多重度を調べてみたところ、64個であることがわかった。 【2018/08/31 0:00 訂正】以前50と書いていたが、数え間違えていた…(´・ω・`)

az コマンドあんちょこ

あんちょこは誰かが作っているものだし、それを見ればだいたい分かることがおおいのだが、自分でやってみるのとそうでないのとで天と地ほどの経験の差ができるので、az コマンドのあんちょこを作ることにした。なお、内容は随時更新予定。

libcurl の curl_multi_socket_action のメモ

Swift の URLSession の中で呼び出されている curl_multi_socket_action の動作を調べていたので、そのメモ。

Gradle で BOM を扱う

Spring の dependencyManagementPlugin は使わないで、これをやる方法。

Reactor の Flux を flatten する3つのパターン

ここ最近 Reactor をいじって一定間隔の無限ストリームを生成するなどしていたこともあって、まとめることにした。タイトルに数字が入っていると読まれやすいっぽいので、タイトルには「3つのパターン」と書いたが、実際に flatMap 、 flatMapSequential 、 …

Swift で Foundation を import するとヘッダーまわりでエラーが発生する場合の対処

以前書いたエントリー mike-neck.hatenadiary.com の対処法が間違えていて、ビルドもなにもできなくなった上に、 REPL で import Foundation をやっても同じエラーが出てしまう割と深刻な状況の対処法。 (巷にある ~/Library/Developer/Xcode を消すやつが何…

Spring WebFlux の Router Function のテスト

久々に Spring WebFlux を書いてたのだが、いまいちルーティングがうまくできず、 Routing Function に対してテストを書いてみることにした。 で、テストの書き方を調べてみたのだが、とりあえず何も見つからなかった(サーバーを起動するパターンは見つかっ…

Swift Package Manager が Objectiv-C module 'Darwin' をビルドできなかったときの対策

Swift Package Manager が不調(?)で、 swift package generate-xcodeproj すると、コケる 【2018/08/05 22:27 追記】この方法は正しくない。正しい対処の仕方は不明。 $ swift --version Apple Swift version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2) T…

Netty で HTTP クライアントを記述する

Netty で HTTP クライアントの書き方を調べてみたら、意外なことにほとんど見つからなかったので、ブログに書くことにしました。 ChannelInitializer Pipeline に加えるハンドラーと順番は次のとおり SslHandler HttpClientCodec HttpContentDecompressor Ht…

Swift-NIO で HTTP Client を書いてみる

この前の土日に Swift-NIO を使って HTTP Client を書いてみたが、うまく動かなかった。 Bootstrap 基本的には Netty と同じ。 ClientBootstrap のイニシャライザーを呼び出して、 EventLoopGroup と ChannelOption と ChannelInitializer(Channel -> EventL…