Matheus Saldanhaのホームページ

私の拙宅ページへようこそ!

Photo of Myself

こんにちは。 私のホームページへようこそ!

元々このページはウェブ開発の能力を鍛えるために作られたけど、現在自分自身と私の研究に関する情報を公開することにもしています。

私は今計算機科学の大学生で、ハードウェアレベルに近いそのコンピュータの低レベルの側面に興味を持っています。  しかし、一般的には、コンピュータの様々な方面にいろいろな知識を集めることが多く行います。  その理由は無知に感じることなく、多くの問題を直面する能力が欲しいことです。

現在、カオティック時系列(chaotic time series)に統計的学習理論を適用することについて研究しています。  私は科学を行うことをすごく楽しんでいるので、いまずっと研究することができるようにしようとしています。

lab beaker

研究

lab beaker

私はまだあまり研究していませんが、このページの一つの目的は現在と将来の研究の成果を公開することにしたいと思います。

各研究プロジェクトがウェブページがあります。  それら全ては「マッピング」ページで配置されています。  皆様がこの周囲にあるリンクをクリックすることによってアクセス出来ます。

ページの上にあるナビゲーションバーによってもアクセス可能です :)。

学的な情報
graduation hat

所属施設
Institute of Mathematics and Computer Sciences - University of São Paulo
専攻 計算機科学
役目 大学生
連絡 Enable javascript to see.
興味
Statistical Learning Theory
Time Series Forecasting
Applied Statistics & Mathematics
Machine Learning & Deep Learning
High-Performance Computing
Web Development
Lattes 履歴書 lattes.cnpq.br/2301154612725391

興味
(計算機科学)
graph

Elfプロジェクト
circuit board

コード名「Elf」のもとで(Elfは何?)、 複数なライブラリとプログラムを開発してあります。
それらのいくつかは下に見せられて、宜しければご覧ください:

Elfは何?
question mark

コードネームを持つ必要性を感じることが、「Elf C Library」というライブラリを作っていた時で行った。  そこで割と一般的である一つのプログラミング的の問題に直面しました: 名前衝突 (英:namespace conflict)。  私のライブラリのユーザーはおそらく他のライブラリを含むでしょう、そして私のライブラリの関数や変数の名前が他のものと衝突しないようにしなければなりませんでした。  例えばcreate_graph()関数を定義する場合は、多くの文脈で意味を成しますので他のライブラリもその名前を使用する可能性が高くて問題になります。  Gnomeがそのライブラリを設計する方法とそのプログラミングガイドラインに啓発されて、私もプログラミングで使用できる接頭名前を採用することに決めました。  つまり、create_graph()を定義する代わりに、NAMESPACE_create_graph()を使用します。  接頭名前としてだけでなく、私のプロジェクトのコード名としても「Elf」を選択しました。  以下では、そのような選択の理由について詳しく述べます。

私の十代のころ、ある程度「Runescape」というゲームにはまっていました。  Runescapeは中世的な冒険のMMORPGゲームで、プレイヤーの操った冒険者がクエストを完了すると壮大な物語を進行させます。  クエストを完了する以外には、25以上のスキルを磨くことも、ボスと戦うことも、ミニゲームをプレイすることなどできます。  しかし、10年以上ゲームをプレイし続けた理由のは、おそらく劇的なストーリー背景歌でした。  それで私のプレイする方法が珍しかったです。  ガイドを調べてクエストを駆け抜けるのではなく、ストーリーに注意を払ってそれらを完了するのが好きでした。  一方で、ずっとボスやPvP(プレイヤー対プレイヤー)の戦闘などに苦手でした。  以下では、このストーリーについて少しお話しますので、ネタバレ警報を出すことを義務付けています。

プレイヤーがクエストを完了すると、より深くストーリーを知ることができます、特にプレイヤーの住んでいる「Gielinor」(音: ギーリノアー)という惑星にいる多くの生き物について。  ドワーフや、ノーム、ゴブリン、トロール、アヴィアンシー(知性持ちの強大な鳥)などは各種についてクエストを通して詳しく教えらることになります。  ずいぶんストーリーに進行した時、他の惑星も知るようになります。  私は3年ぐらいRunescapeをプレイして、私のスペックを十分に進行しましたので、非常に強力な武装であるクリスタル武器を使えるようになるためのクエストの資格を満たしてきました。  それでそのクエストを遂げる私の冒険が始まりました。

Underground Pass(和:地下通行)の入口を示している画像。
Tirannwnへ導くUnderground Pass(和:地下通行)の入口 (クリックで広がります)。

最も困難なクエストの結末に、ダンジョン内の道をブロックしていた強い魔術師をついに倒しました。  そのダンジョンはArdougneとまだ未知である場所を繋ぎましたので、魔術師を倒してからその向かい側に行けるようになりました。  やっとダンジョンの暗闇を出て、光がどんどん美しい森に変わって、そしてその森に沢山不思議で知らなかった生き物がいっぱいいました(例えばGrenwals)。  その場所を歩きながら、いい背景歌に囲まれることに魅了されました。  しかもその後もいつもそうであった。  特に一つの曲、「Crystal Castle」(和:クリスタル城)はずっと私の記憶に残しました。  どうせあの時、私はこの曲を特別な人に見せたので、忘れようがないことになりましたね。

Underground Passの向かい側に現れる森を示している画像。
Underground Passを歩き果たすと現れる森 (クリックで広がります)。

そのクエストを完了して、続きのクエストも連続でしながらエルフについてもっと知ることになりました。  その時、ゲームはエルフについて詳しく教えませんでした、まだ全て開発されていないコンテントでしたから。  それを明らかにするもので、マップにPrifddinasという都市があったけど、エルフの警備員がプレイヤーを止めます、そして都市へ行かせません。  とはいえ、当時入手可能の情報が小さくても、ストーリーを悟る方法を完全に変えるのに十分でした: エルフ達は本当に素晴らしい、そしてこの種族の伝記が魅力的です。  エルフは平安で非常に賢いです、それに加えて武器や建物を造ることにクリスタルを使う名人であることで知られています。  エルフの起源について、もう少し話させてもらいましょうか。

エルフの都市というPrifddinasの一部。
エルフの都市であるPrifddinas (クリックで広がります)。

Guthixは普通の生き物でしたが、古代アーティファクトを獲得した上で神性に昇格しました。  彼は宇宙を歩き回る間、プレイヤーの惑星であるGielinorに偶然に着きました、そしてすごく綺麗だと思ってそこに住むようにしました。  その前に、Tarddiadという惑星にも行きました、それはエルフとエルフ達の女神であるSerenが住んでいる惑星です。  エルフのような平安な生き物がそんなに美しい惑星であるGielinorを訪問しなければもったいないとGuthixは思いました。  それでそれをSerenに伝えて、Gielinorにエルフを連れて来てって勧めました。  それ以後、エルフは私が前に述べた美しい森の周りに、だんだんGielinorへ移住しました。  しかし、年が経つにつれてGielinorを見つけた他の神達がそれらの信者と共にGielinorに住んで来ました。  残念ながら、その中に戦争と混乱を発生するがちの方を含みました。  そんな状況で、結局Gielinorは「The God Wars」と呼ばれる巨大な戦争に陥りました。

エルフに崇拝された女神であるSeren。
エルフに崇拝された女神であるSeren (クリックで広がります)。
エルフの一人であるBaxtorian。
エルフの一人であるBaxtorian (クリックで広がります)。

エルフが住んでいたGielinorの森というTirannwnを、何の他の種族も侵略しようとしませんでしたので、最初は安全でした。  その状況が結局変わってしまいました、戦争はエルフの森にも届きました。  エルフの軍族は森を守ってあらゆる侵略の試みを破っているながら、建設族は市民を守るためにTirannwnにある町のPrifddinasの壁を強化しました。  戦争が続いて、何かの眠りに陥っていたGuthixを覚ますほど巨大なものになりました。  でもGuthixはGielinorを見てそれはもう廃墟の状態であった、それからSerenを含めてGielinorにいる神々の存在を全力で追放しました。  問題は、昔からエルフはSerenの近くに住んでいたせいか、Serenのエネルギーに何の依存症を築きましたから、Serenにはエルフから離れられないという状況だったと言えます。  遠くに行ったらエルフは病気になるのですから。  で、エルフがGielinorに住み続けるために、彼女は自分を多数のクリスタル破片に砕けて、Tirannwnの色んなところに散りました。  結果として、その後からエルフが様々な他の生き物との健全な関係を築くことができました。

Gielinorから神々を追放しているGuthix。
Gielinorから神々を追放しているGuthix (クリックで広がります)。

まあ、ここまでの話よりもストーリーがまだすごく長く続けますが、もっと知りたい方にはこのリンクで続きを読めます。  物語を読むがいいですが、ゲームの美しい背景曲に囲まれながらそのストーリーをじかに再生するのが一番でしょう。  私の言いたいこととして、Serenの態度は、戦争や権力や地域など他の平凡なことをどうでもいいと思って、それより彼女の信奉者であるエルフを守ること、私はこのストーリーに深く感激しました。  その上で、エルフは本当にRunescapeの世界で特別な生き物だと思います: 賢くて、知識をとても大切にして、その結果かのように彼ら自身でしか使えない技術、すなわちクリスタルの使用方法やエルヴェン呪文、エルフに成立されました。  エルフは望んだら、戦闘で他の種族を倒してどんな土地や権力でも手に入ることが出来るでしょう。  しかし、それよりエルフは、SerenとGuthixが説教していたように、大自然と平和に暮らすことを選びました。

この美しく意味のある背景物語を持つ名前、私の研究とプロジェクトを発展するのは、その名前のもとにしたいです。  だから、Elf Projects (和:エルフプロジェクト).

Elf Projectsのロゴ。
Elf Projectsのロゴ。

プログラミングの始まり
cradle

Runescape」というゲームにすごく興味になったころから全てが始まったと言えます。  うまくできた背景歌が重なった美しいストーリーによって、ゲームが興味深いです。  しかし、その物語を深く掘り下げるたった一つの方法は、クエストと呼ばれるものを無数に完成させなければいけません。  そのためには、ゲーム内のキャラクターがレベルスキルに関する特定の要件を満たす必要があります。  レベルを上げるのは簡単ではなく、退屈な作業も、マウスを多用することも、反復的なアクティビティを無限にすることも必要とします。  そのせいで、ストーリーをもっと知りたい私はその欲求を満たすために、より簡単にレベルを上げる方法を探すことにしました。

Runescapeで「Varrock」という都市の画像。
Runescapeのなかで主要都市である「Varrock」(クリックで広がります)。
Runescapeで「Prifddinas」という都市の画像。
また他の主要都市である「Prifddinas」(クリックで広がります)

結局、ゲームの多くのタスクに既製の自動化ソフトウェアを備え付けられたプラットフォームを知ってきました。  ゲームのコミュニティ内では、そのようなソフトウェアを使用するプレイヤーは一般的にボットと呼ばれ、アクティビティ自体はボッティングと呼ばれます。  気に入ってボッティング世界に引き寄せられて、そして私もゲームの活動を自動化し始めました。  一番目の使ったボッティングプラットフォームである「Powerbot」は、Javaに基づいた非常に強力なもので、多量なユーザーベースと利用可能なソフトウェアを持っていました。  ただし、3つの問題がありました:

  1. その時の私にはJavaがすごく読みづらい言語でした、そしてどれだけ読んでみてもコードを理解できませんでした(それはどうしてか今知っています);
  2. ボッティングはゲーム規則に違反ですので、管理者が猛烈的にボットを見つけてバンしようとしていました;
  3. このプラットフォームが大いに普及していましたため、前述の管理者から格別な警戒を集めるのは当然でした。

それで他のボッティングプラットフォームを探してみました。

何月か経って「Villavu」を見つけました。  それは前のプラットフォームに比べて別な理由で非常に優れていました。  まずはPascal言語に基づいて、私はなんとなくそれをどうやって使ってプログラムを作るか理解できるようになりました。  また、このプラットフォームには利用可能なボットはあんまりありませんでしたが、コミュニティはみんなが自分自身のボットを作る手助けをすることに積極的に取り組んでいました、それで私もプログラミングをし始めました。

それでその時から始まりました。  Pascalが初めてのプログラミング言語でした、そしてたくさんボットを作ることになりました。  その時を思いつくと、あんなに少ない言語の機能を知っていたのに複雑なボットを作れたってことがおかしいと思わせられます。  ポインターとかヒープメモリーとかぜんぜん使いませんでした。  タイプ構造の創造方法? それも知りませんでした。  それは今もたまに微笑むようにされます。

昔に書いたPascalプログラムの一部の画像。
昔に書いたPascalプログラムの一部です。 いい見覚えのために全てを保存しています。

それから、プログラミングで私は最も経験値が持っている2000のトッププレーヤーのところへ着きました、そしてゲームのすべての主要な活動を完了したことを示す「Completionist肩マント」を達成しました。  そのマントの飾り付けたバージョンもありますが、それを得られる前に大学が邪魔になってゲームを辞めさせられました。  それでも素晴らしい経験で私はたくさん楽しめました。  どんなに規則に違反していたって言っても、「すごく楽しかったです、絶対に後悔しません」ということ以外は思わせません。

興味 (他のもの)
graph

私は暇な時に、自分の大学に学ぶものと無関係の他のコンピュータの事勉強するのが好きです。  それに加えて日本語学習とか、音楽、アニメとか、Youtubeで動画(特にゲームプレイ)を見るのも好きです。  オペレーティングシステムの詳細な動作や、ドライバーの作成、現在一般的なフレームワーク(汎用、ユーザインタフェース、Web開発とか)、色々のプログラミング言語とパラダイムなど、それらを含めて大学が教える以外の話題は沢山あって、時折それも勉強します。

日本語を勉強し始める理由は私の行っていた精神科医の勧めでした。  医者に「◯をしたらどう?」という大きなリストを与えられましたが、私どのアイテムでも従いませんでした。  彼自身が言語が好きで色々のを知っていたので、その状況で「新しい言語を学んだらどうですか?」と私に推薦しました。  その時もうアニメが好きで日本語は面白そうな国語と思いました。  それで私は医者の推薦を試してみる気がしました、しかも精神科医が言語学習方法についてヒントを与えたことも励みになりました。  日本語を勉強し始めて、結局それを楽しんだことになりました。  今、主な目的は日本人のように日本語を話せるようになることです。

好きな音楽はアニメのサウンドトラック(背景曲オープニングとエンディング)、J-Pop、そしてクラシック音楽です。  しかし、普通に最初の二つを聴きます。  クラシックはいいけど、たまにはだけ聴いたほうが愉快だと思います。  一番好きなクラシック曲はDvořákの第9シンフォニー「新世界より」,でも数ヶ月に一回だけ聴きます。  その他に述べたいものはLisztの「La Campanella」「Hungarian Rhapsody No. 2」, そしてVivaldiの「四季」スイート

Youtubeで,弟者おついちのゲームプレイを見ます。  このようでゲームプレイを見ながら口語日本語を勉強できます: 一石二鳥ですね!  たまにはMMD動画も見ます。