タグ

ブックマーク / zenn.dev (846)

  • Stable Diffusionでkawaiiを出力しようと奮闘したまとめ

    852話さんには遠く及ばない... Gallery a samurai girl with japanese school uniform, japanese anime style A girl with wolf ear on silver hair, combat toon graphic, arknights, dolls frontline, pixiv girl's frontlineのつもりがdollsになってた...。その影響か人形っぽい雰囲気になっている。 concept idea of a kawaii girl with animal ear on her head, fantasy idle costume, equlip magic wand, beautiful face, thick coating painting, flower blooming, bir

    Stable Diffusionでkawaiiを出力しようと奮闘したまとめ
    yk5656
    yk5656 2022/08/25
  • M1 MacBook ProでStable Diffusionを動かすまでのメモ

    画像生成AIのStable Diffusionがオープンソースとして公開されましたね。さっそく動かしてみたいなと思って触ってみることにしましたが、手元にあるのはMacBookだけなので、なかなか大変でした。 ありがたいことに、先人がたくさんいるので参考にして環境構築ができました! たぶんそれなりにすぐにすんなり動かせるようになると思いますけど、今すぐやってみたくてトラブってる人の参考になればと、わりとなぐり書きで恐縮ですが書いておきます。 動作速度とか ちなみに気になる実行速度ですが、自分が使っているのはMacBookPro 14インチモデルの一番スペックが低いやつでして 8コアCPU、14コアGPU、16コアNeural Engine搭載Apple M1 Pro メモリ32GB です。 画像生成中は15〜20GBほどメモリを消費し、5分ほどで画像が6枚生成できます。 学習モデルを取得する

    M1 MacBook ProでStable Diffusionを動かすまでのメモ
    yk5656
    yk5656 2022/08/24
  • 話題のStable Diffusionがオープンソース化されたのでローカルで動かしてみる

    話題のStableDiffusionがオープンソースで8/23に公開されたので、手元のマシンで動かすまで試したいと思います🖼 (下記に記載していますが、自分の環境だとVRAMが不足しているエラーが出てしまったのでイレギュラーな対応をしています🙏) ※ ↑追記 コメント欄にて、 @kn1chtさんが紹介してくださっているように、マシンのVRAMが10GB未満の環境では半精度(float16)のモデルがオススメされています。 記事では、別の最適化されたものを紹介していますが、こちらの利用も検討してみると良さそうです👉 https://zenn.dev/link/comments/7a470dc767d8c8 StableDiffusionがどんなものかは、深津さんの記事が参考になります。 1. 環境 Razer Blade (RTX 2070, VRAM 8GB) CUDA Toolk

    話題のStable Diffusionがオープンソース化されたのでローカルで動かしてみる
    yk5656
    yk5656 2022/08/23
  • 正規表現の先読み・後読み

    正規表現の「先読み(lookahead)」「後読み(lookbehind)」について紹介します。 正規表現の「位置へのマッチ」 正規表現は、文字列のパターンマッチに使われます。たとえば [0-9]{4} は数字4つが並ぶ文字列にマッチする表現です。 多くの正規表現は「文字列」にマッチしますが、「文字列」ではなく「位置」にマッチする表現があります。これは、アンカーと呼ばれます。また、長さ0の文字列にマッチすると考えて、ゼロ幅アサーションとも呼ばれます。 アンカーの例として、^(先頭)$(末尾)\b(単語の境界)などがあります。 この例では、cat にはマッチします。一方、category や concat は cat を含みますが前後が単語の境界になっていないためマッチしません。 先読み 先読み(lookahead)は、位置にマッチする記法の一種です。位置の指定に正規表現を使います。(?=

    正規表現の先読み・後読み
    yk5656
    yk5656 2022/08/23
  • Rustでファミコンとスーパーファミコンのエミュレーターを書いた

    ゲームボーイエミュレーター、ゲームボーイアドバンスエミュレーターに続いて、Rustでファミコンエミュレーター"Sabicom"とスーパーファミコンエミュレーター"Super Sabicom"を書きました。 名前にRustっぽさを出してみました。 前回作ったマルチエミュレーターMERUのコアとして実装したので、ステートセーブや巻き戻しなどの機能も使えます。MERUの対応コアはこれで4つになりました。 こちらからWindowsLinuxのプリコンパイルバイナリがダウンロードできるようになっています。 他のプラットフォームおよびソースコードからコンパイルする場合は ファミコンとスーパーファミコンどちらも一通り体の機能は実装してあるつもりです。スーパーファミコンは割と細かいところまでちゃんと動くようにしてあるはずなので、動かなかったり表示がおかしかったりするソフトがあればバグですので、ぜひご報

    Rustでファミコンとスーパーファミコンのエミュレーターを書いた
    yk5656
    yk5656 2022/08/22
  • 高齢者向けサービスにおけるUIデザイン|『高齢者のためのユーザインタフェースデザイン』の書評

    現在、業・副業ともにWEBデザイナーとしてデザイン・コーディングをしているゆるけーです。 業で携わっているWEBサービスが割と高齢者向けのサービスで、ITリテラシーやUIが今の自分と考え方が異なるよなーと思っているなか、『高齢者のためのユーザインタフェースデザイン』という書籍に出会いました。 高齢者関係なく普通にアクセシビリティの観点でも重要な視点がたくさんあり、とてもいい書籍だったので、ざっくり大事だと思った箇所を抜粋しつつ自分で探した事例等をざっと記事にまとめていきますー。 視覚 高齢者になると視力が低下する傾向があります。ただ、視力の低下=フォントを大きくするだけではありません。 視力の低下は老眼や光覚の減少などより複雑です。 主な視力の低下の具体例は以下のような点。 老眼:近く・遠くのものの焦点が合わない 周辺視野のぼやけ:画面の端に気づきにくい 中心視野の損失:画面の中央が暗

    高齢者向けサービスにおけるUIデザイン|『高齢者のためのユーザインタフェースデザイン』の書評
    yk5656
    yk5656 2022/08/22
  • 100名以上のメンターをやって見えた「めちゃくちゃ伸びる人」の共通点

    どうも、株式会社プラハCEOエンジニアの松原です。 弊社では中級エンジニアを育成するプログラミングブートキャンプ「PrAha Challenge」を2年近く運営しています。累計100名近くの方々が参加して、日々実践的な技術課題に取り組みながら、メンターと技術的な質疑応答を繰り返しています。 実はプラハチャレンジの第1期から第5期までのメンターセッションは全て私が担当しているため、累計100名近くのエンジニアの成長を間近に見てきた経験から「めちゃくちゃ伸びるエンジニアの共通点」を見つけた気がしたので、何かの役に立てばと思い、Zennにも書き残そうと考えた次第です。 ちなみに弊社が運営しているpodcastでも同じテーマについて話しているので、耳で聞く方がお好みの方がいたらぜひ以下のpodcastへ! TL;DR めっちゃ伸びる人は 分からないことを言葉にするのが上手 情報を鵜呑みにしない

    100名以上のメンターをやって見えた「めちゃくちゃ伸びる人」の共通点
    yk5656
    yk5656 2022/08/22
  • Go な Web Server を Systemd で良い感じに動かすメモ

    Go で Web Server 書く 動作確認するだけのコードなのでなるだけシンプルに書く。んで、 Port 80 を Listen したいけどプロセスは root で走らせたくないので、 systemd でポート開いてそれをプログラム側で使うようにする。 ディスクリプタごにょる部分は coreos/go-systemd がドンピシャなのでこれを使う。 package main import ( "errors" "fmt" "log" "net" "net/http" "github.com/coreos/go-systemd/activation" ) func main() { // Mux を設定する m := http.NewServeMux() m.HandleFunc("/", handler) // Server を設定する s := &http.Server{ Handl

    Go な Web Server を Systemd で良い感じに動かすメモ
    yk5656
    yk5656 2022/08/22
  • Reactにおける状態管理の動向を追ってみた

    こんにちは、@nerusanです。 皆さんは、状態管理ツールなどは使っておられますでしょうか。 例えば、有名なところでは、Redux, Recoilなどがあります。 今回は、Reactにおける状態管理についての動向を知ることで、なぜ、Reduxが使われるようになったのか?何をReduxなどのグローバルな状態管理ライブラリで扱えばいいのか?現状どうなっているのか?を調べたので、記事にしたいと思います! 自身の解釈なので、もしかしたら、誤ったことを言っている可能性もあるので、その際はご指摘いただければと思います m(- -)m SPAの流行り SPAとはSingle Page Applicationの略であり、新しいページに移動する際、サーバからページを再読み込みするのではなく、JavaScriptを使って、クライアント側のブラウザで動的にページを書き換えるアプリケーションを指します。ページご

    Reactにおける状態管理の動向を追ってみた
    yk5656
    yk5656 2022/08/22
  • 構文のことは忘れて、JSON, S式, XMLのデータモデルを比較する

    データをシリアライズするには、独自のフォーマットを定めるよりも、基的な定義済みの構造を組み合わせてフォーマットを作るほうが望ましい場合が多いです。 そのような仕組みとしてJSON, S式, XMLなどが存在しますが、これらは 「基的な構造」として何を選ぶか、という観点からそれぞれに個性を持っています。 記事では、具体的な構文のことは基的に忘れて、各フォーマットが採用するデータモデルの違いに焦点を絞って比較します。 JSON data JSON = Value data Value = -- Compounds Array [Value] | Object (Map String Value) -- Scalars | Null | Boolean Boolean | String String -- UCS-2 | Number IntegerOrFloat -- no NaNs

    構文のことは忘れて、JSON, S式, XMLのデータモデルを比較する
    yk5656
    yk5656 2022/08/21
  • React/Next.jsでの俺的ベストプラクティスを見てくれ

    木瓜丸です。 最近になって、やっとNext.jsを上手く使いこなせてるんじゃないか?!と思えるようなコンポーネントの設計手法を見つけたので、Zennにまとめてみたいなと思います。 この記事で触れること この記事では、主にページ単位でどのように状態管理を行うのかに焦点を当てることにします。 コンポーネントの管理の仕方などは特に着目しませんがご了承下さい。 hooksの導入 React初心者の方は最初に疑問に思うと思いますので、hooksについて触れておきます。 hooksというのは、Reactによって提供されているuseState, useEffectといったやつや、それらを組み合わせて作ったオレオレ状態管理基盤の総称です。 この記事で用いる基的なhooksをいくつか紹介します。 useState その名の通り、状態を持つ変数を作ってくれます。 const Hoge = () => { c

    React/Next.jsでの俺的ベストプラクティスを見てくれ
    yk5656
    yk5656 2022/08/21
  • こわくない関数型プログラミング

    関数型プログラミングは全部理解しようとすると難しいですが、簡単な部分の中にも有用な知見がたくさんあります。 関数型プログラミングにまだ親しんでいない人向けに、明日からのプログラミングにすぐ役に立つ考え方をできるだけわかりやすく伝えます。

    こわくない関数型プログラミング
  • 個人開発で「Excel専用のWebAPI」を作りました

    どういうもの? このように関数を使ってデータを取り込めます。 背景 元々は「インターネット上のWebAPIのデータをExcelに取り込みたい」と思ったのがきっかけです。 VBAマクロを使えば簡単ではありますが、マクロは使いたくないという方も多いのではないでしょうか。かくいう私も勤務先が属人化を防ぐためにマクロの使用を推奨していません。 そこで、関数を使用する方法を選択しました。 ExcelにはWEBSERVICE 関数という指定したURLの応答データを取り込む関数があります。 しかし、この関数は大変便利な関数ですが、ExcelHTMLやJSONのパーサーを用意していません。結局取り込んだHTMLやJSONの処理にはVBAマクロが必要になります。 また、欲しいWebAPIが存在しない問題もありました。 そこで、Excelでデータを編集するのではなく、元々のWebAPIExcel用に作れば

    個人開発で「Excel専用のWebAPI」を作りました
    yk5656
    yk5656 2022/08/16
  • Moby(Docker)をビルドしてruncとcontainerdを単体で動かしてコンテナの基礎を理解する

    この記事を読んだらできること Mobyをビルドしてruncとcontainerdを動かせます。 runcとcontainerdを使ってコンテナを動かすことでなんとなくコンテナの理解が深まります。 夏休みの自由研究にコンテナを動かす仕組みを自分で深く調べたくなります(たぶん)。 記事の背景 Dockerを使い、なるべく小さい薄いコンテナを作っていく中でDockerの中身を詳細に知りたいと思ったので、DockerのソースコードであるMobyをビルドしてコンテナ実行のコアの基盤ソフトであるrunc、containerdを動かしてみました。 1. コンテナのアーキテクチャと用語解説 まずMobyを動かす前にコンテナのアーキテクチャと用語を理解しておく必要があります Docker Desktop(mac版)を俯瞰した図が上記となります。実際はDocker DesktopKubernetes(k8s

    Moby(Docker)をビルドしてruncとcontainerdを単体で動かしてコンテナの基礎を理解する
  • インフラもバックエンドもフロントエンドも Go で書いてみた

    先日 CDK for Terraform が GA になりました。 CDK for Terraform を使うことにより、 TypeScriptGo などといったプログラミング言語を使って Terraform エコシステムを利用したインフラの定義やプロビジョニングを行うことができます。 「Go でインフラが書ける」と聞き、ふと思ったことがこちらです。 というわけで書きました。 (2022/10/27 追記) CI/CD も Go で書いた記事を公開しました。 作ったもの GoGoGo の画像をランダムで表示するサンプルアプリです。 主な利用技術について簡単に紹介します。 利用技術 Go 説明不要ですね。 Google 様が作ったプログラミング言語です。 Gin Go の軽量な Web フレームワークです。 公式の紹介に「パフォーマンスは Martini の最大 40 倍です」と書か

    インフラもバックエンドもフロントエンドも Go で書いてみた
    yk5656
    yk5656 2022/08/14
  • React コンポーネントの「制御・非制御」を意識しない方法

    React でフォームを作るとき「制御・非制御」コンポーネントに関する知識は必須です。デザインシステムを作成するにあたり、どちらを採用するか検討されたこともあるかと思います。 「制御・非制御」コンポーネントの差分を一言でまとめると、次のとおりです。 制御コンポーネントはライブラリ(React)が「入力要素の状態」を管理 非制御コンポーネントは「入力要素の状態」を DOM 自身が保持 「制御・非制御」コンポーネントと Form ライブラリ React Hook Form は、非制御コンポーネントを使うことで、少ないコード量で高パフォーマンスの Form 実装が実現できる人気のライブラリです。「非制御コンポーネント」として作成された<Checkbox>コンポーネントの例を見てみましょう。次の方法で<input type="checkbox" name="test" />がレンダリングされ、Fo

    React コンポーネントの「制御・非制御」を意識しない方法
    yk5656
    yk5656 2022/08/13
  • Python互換の静的型付け言語「Erg」

    承前 Ergは私が数年前から開発を始め、つい一昨日公開したばかりのプログラミング言語です。 のはずですが、 早速、qnighyさんに捕捉していただきました。ありがとうございます。 この記事ではそのErgがどのような言語なのかざっくりと解説していきたいと思います。なお、紹介した機能の一部は未実装です。実装途中の機能を含むコードには*を、完全に未実装の機能を含むコードには**をつけておきます。 はじめに Pythonは概ね素晴らしい言語です。 オフサイドルールを世に知らしめた(?)、その可読性の高い文法。Numpy, SciPyを始めとする機械学習、科学技術計算用の膨大なライブラリ。 しかしPythonにもいくつかの弱点が存在します。 まず、動的型付け であること。それ自体は弱点というより良し悪しなのですが、明らかに動的型付けでは手に余るPythonプロジェクトが世に溢れています。 次に、一貫

    Python互換の静的型付け言語「Erg」
  • Goにおける型によってSQLインジェクションを防ぐ方法

    はじめに 2022年のセキュリティ・キャンプ全国大会に講師として参加しました。その際に、Goにおける脆弱性への対策はどうなっているのか調べました。この記事では、github.com/google/go-safeweb/safesqlがどのようにSQLインジェクションを防いでるのかについて解説します。 なお、@rungさんの文書を多いに参考にしております。また、セキュリティ・キャンプで用いた資料はこちらから閲覧できます。 SQLインジェクションとは? 独立行政法人情報処理推進機構(IPA)が公開している安全なウェブサイトの作り方を見ると、SQLインジェクションは以下のように説明されています。 データベースと連携したウェブアプリケーションの多くは、利用者からの入力情報を基にSQL文(データベースへの命令文)を組み立てています。ここで、SQL文の組み立て方法に問題がある場合、攻撃によってデータベ

    Goにおける型によってSQLインジェクションを防ぐ方法
    yk5656
    yk5656 2022/08/12
  • 【保存版】「そのuseEffectの使い方あってる?」と言われる前に

    参考 目的 プロジェクトで使用されている不適切なuseEffectを減らす Reactの公式ドキュメントにuseEffectは必要ないかもしれない,というようなページがありとても勉強になったので記事にしようと思いました. データフェッチング アプリのデータフェッチングをuseEffect内で行うのはよく知られている方法です. Bad 💣 function SearchResults({ query }) { const [results, setResults] = useState([]); const [page, setPage] = useState(1); useEffect(() => { // 🔴 Avoid: クリーンアップなしでのフェッチング fetchResults(query, page).then(json => { setResults(json); }

    【保存版】「そのuseEffectの使い方あってる?」と言われる前に
    yk5656
    yk5656 2022/08/12
  • ZigはCMakeの代替となるか

    既存のプロジェクトで使用しているコンパイラを置き換えるだけで、Zigに付属しているCコンパイラを利用できる。 クロスビルドが標準で可能 上でも述べた通り、Zigは標準でクロスコンパイルが可能である。 Zig libcのTaget一覧 ❯ zig targets | jq ".libc" [ "aarch64_be-linux-gnu", "aarch64_be-linux-musl", "aarch64_be-windows-gnu", "aarch64-linux-gnu", "aarch64-linux-musl", "aarch64-windows-gnu", "aarch64-macos-none", "aarch64-macos-none", "armeb-linux-gnueabi", "armeb-linux-gnueabihf", "armeb-linux-musleabi

    ZigはCMakeの代替となるか
    yk5656
    yk5656 2022/08/09