Quantcast
Channel: Modegramming Style
Browsing all 149 articles
Browse latest View live

Scala Tips / Emacs

ScalaプログラミングはなんといってもEmacs+Ensimeですね!先週サブノート目的でMacBook Air...

View Article


Scala Tips / Seq, Function1, PartialFunction, Option

MapがFunction1かつPartialFunctionというのが案外盲点になりますが、SeqすなわちList, Stream, VectorもFunction1かつPartialFunctionというのも見過ごしがちです。以下の関数fを考えます。「Intを引数に取りStringを返す関数」を第一引数に、Int値を第二引数に取り、Int値に対応するStringを返します。def f(a: Int...

View Article


Image may be NSFW.
Clik here to view.

MindmapModeling「1回のメール配信で売り上げ数千万アップの驚異」

11月17日(土)に横浜モデリング勉強会(facebook...

View Article

Image may be NSFW.
Clik here to view.

SimpleModeler 0.4.0-RC4

モデルコンパイラSimpleModeler 0.4.0-RC4をリリースしました。これは、11月17日に開催した横浜モデリング勉強会の前後に拡張した機能をまとめたものです。マインドマップ(XMind)、SmartDox...

View Article

MindmapModeling/SimpleModeler - 要約

「MindmapModeling「1回のメール配信で売り上げ数千万アップの驚異」」で、MindmapModelingの文法を拡張中であることを説明しました。正確にはSimpleModelingのメタモデルの拡張を行い、MindmapModelingの文法への反映と、SimpleModelerでの実装を行いました。その文法拡張の一つが「要約(summary)」です。summaryテーブルという考え方自...

View Article


Image may be NSFW.
Clik here to view.

MindmapModeling/SimpleModeler - 要約の文法

「MindmapModeling/SimpleModeler - 要約」で導入した「要約(summary)」のMindmapModelingの文法は以下になります。以下のようにしてクラス図を生成することができます。$ sm -diagram summary.xmindこのマインドマップから生成されるクラス図です。要約クラスが一つ定義されています。SmartDox...

View Article

Image may be NSFW.
Clik here to view.

MindmapModeling/SimpleModeler - トレイト

「トレイト・モデリング」でも取り上げたトレイトは、プログラミングのみならずモデリングでも非常に有効です。このトレイトをSimpleModelerに組み込んでみました。これに関連して、MindmapModelingではあまり使う機会はありませんが一応文法としても定義しています。トレイト(trait)はマインドマップ的には「特色」という用語を当てています。以下のようにしてクラス図を生成することができます...

View Article

Image may be NSFW.
Clik here to view.

MindmapModeling/SimpleModeler - トレイトの使用方法

昨日「MindmapModeling/SimpleModeler - トレイト」のトレイトを実際に使う場合の文法について説明します。MindmapModelingの使い方は以下になります。このモデルでは「特色」(トレイト)として以下のものを定義しています。タグ付け可能画像貼付け可能そして、この2つのトレイトをミックスインした道具(resouce...

View Article


Image may be NSFW.
Clik here to view.

MindmapModeling/SimpleModeler - 関連クラス

SimpleModelerで扱うメタモデルを設計する上での懸案事項の一つが多対多の関連と関連クラス(association...

View Article


Image may be NSFW.
Clik here to view.

MindmapModeling/SimpleModeler - 状態機械

オブジェクト指向モデリングでは、状態機械(state machine)が動的モデルの核となるモデル要素です。状態機械はネスト状態をサポートした本格的なものをScala DSLとして組み込み済みです。しかし、Mindmap DSLとSmartDox DSLで定義できるようにはなっていないので、文法の拡張を行ない定義可能にする予定です。まず、最初のターゲットとしてScala...

View Article

ゆるふわScalaプログラミング・振り返り

11月30日に開催されたBPStudy#63で「Scalaプログラミング・マニアックス」と題してお話させていただきました。Scalaプログラミング・マニアックス from Tomoharu ASAMI「ゆるふわScalaプログラミング」...

View Article

ゆるふわScalaプログラミング・振り返り(2)

11月30日に開催されたBPStudy#63で「Scalaプログラミング・マニアックス」の振り返り第2弾です。後から気づいた書き忘れの項目として...

View Article

ゆるふわScalaプログラミング・振り返り(3)

メニーコアのプログラミングを考える上で重要なのは:並行(concurrent)プログラミング並列(parallel)プログラミングの違いです。この点をセッションでも触れようと思っていたのですが、結局スライドを作りそこねてしまいました。この2つの用語はいろいろな意味で使われていて、場合によっては同じ意味で用いられるケースもあると思いますが、セッション内では以下の用法を想定しています。並行プログラミング...

View Article


Image may be NSFW.
Clik here to view.

SimpleModeler 0.4.0-RC5

モデルコンパイラSimpleModeler 0.4.0-RC5をリリースしました。マインドマップ(XMind)、SmartDox DSL、CSVからクラス図とJavaプログラムを生成する機能が実用フェーズとなっています。最近拡張した文法が動作します。要約要約の文法トレイトトレイトの使用方法関連クラス状態機械次ぐらいに0.4.0正式版になる予定です。機能Simplemodeler...

View Article

SmartDox 0.3.0

SmartDox 0.3.0をリリースしました。本バージョンでは細かい機能拡張を行なっています。内容についてはブログで紹介していく予定です。機能SmartDox...

View Article


ゆるふわScalaプログラミング・振り返り(4)

振り返り(3)では並行(concurrent)プログラミングと並列(parallel)プログラミングの用語を導入しました。続けて、並列/分散処理を記述するためのプログラミング技法を議論するためにもう一つの軸を導入します。もう一つの軸もう一つの軸とは以下の3つです。可変共用(shared mutability)可変分離(isolated...

View Article

ゆるふわScalaプログラミング・振り返り(5)

振り返り(4)では、並行プログラミング/並列プログラミングの軸と、可変共用、可変分離、不変の軸を導入し、この2つの軸の相性の良い組合せと考えられる:可変分離⇔並行プログラミング不変⇔並列プログラミングについて簡単に考えてみました。可変分離⇔並行プログラミングアクター・プログラミングでは、「可変分離」戦略によって、アクター内に閉じたリソースに関しては競合を気にすることなく自由に更新することができます。...

View Article


ゆるふわScalaプログラミング・振り返り(6)

振り返り(5)では:可変分離⇔並行プログラミング不変⇔並列プログラミングの組合せの中で「可変分離⇔並行プログラミング」について考えてみました。不変⇔並列プログラミング並列プログラミングの場合、リソースの更新は必須ではありませんから、可能な限り「不変」戦略を取りたいところです。「不変」戦略による並列プログラミングの手法として以下のものが考えられます。並列コレクションフューチャー・モナド使い方が簡単なの...

View Article

Scala Tips / Streamで採番

名前に連番で番号を採番して関連付ける処理を考えます。採番する番号は、10から始めて10の間隔の昇順の数値とします。名前と番号の対応を記述するケース・クラスNumberedNameを用意します。case class NumberedName(name: String, number:...

View Article

Scala Tips / Streamで採番(2)

Streamで採番では、Streamのfromメソッドを使って数値の連番による番号の採番を行いました。場合によっては、採番する番号として「A00001」というような英数字と数字の組合せを取りたい場合があります。このような場合は、カスタムでStreamを作ることになります。といっても、これは簡単で以下のような再帰関数のイディオムを使います。def nums(i: Int):...

View Article
Browsing all 149 articles
Browse latest View live