Akihiko Odaki (小田喜 陽彦)
My current identities
- email@example.com (personal email address)
- firstname.lastname@example.org (email address at Shioya laboratory)
- email@example.com (email address at Daynix)
- firstname.lastname@example.org (Mastodon)
- @aodaki:matrix.org (Matrix)
- aodaki#7967 (Discord)
- @aodaki (Twitter)
- @akihiko.odaki (GitLab)
- @akihiko.odaki (freedesktop.org GitLab)
- @akihiko.odaki (GNOME GitLab)
- AEDC03C9AF734F2EC26A7BFFA4BAEAA73536753C at hkps://keyserver.ubuntu.com (PGP key for email@example.com)
- firstname.lastname@example.org (when I was a student of Hosei University)
- email@example.com (the first email address I got at pixiv Inc.)
- firstname.lastname@example.org (the second email address I got at pixiv Inc.)
- email@example.com (Mastodon)
Telling Something to Me
If you thank me or something, just please give a star on GitHub. If you have a question on this document, comment on GitHub.
If you want to tell me anything else or if you don't want to use GitHub, use one of the current identities shown the above.
I'm kind of talkative so feel free.
I'm a human so I have human characteristics (e.g. I operate best in 20-30 celsius degree). Other characteristics are:
- I have never left Japan and am optimized for its environment. I'm a native Japanese speaker.
- I have English language ability sufficient to write this.
- I prefer FLOSS.
- I'm kind of a low-level programmer and familiar with C language. I occasionally wrote MIPS, ARM, and C++. I read x86-64 for debugging but my understanding is kind of fragile.
- I have some knowledge of UI programming paradigms since I learned them to build Mux, a UI programming thing for Unity, and coded some Web applications.
- I use GNU/Linux with GNOME.
- I prefer to work in a team because humans are interesting by nature and a team also helps me determine my role. However, it is also fine for me to work alone.
- I do any kind of programming if I'm sufficiently motivated.
- I'm from Ibaraki.
- I love chocolate.
Before July, 2017
I was a occasional FLOSS contributor.
- Capstone, mainly ARM support bugs https://github.com/aquynh/capstone/pulls?q=is%3Apr+author%3Aakihikodaki+is%3Aclosed
- Radare2 ARM support bugs https://github.com/radareorg/radare2/pulls?q=is%3Apr+author%3Aakihikodaki+is%3Aclosed
- GNU binutils' ARM linker bug https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=5025eb7c0d87b01507116353b5d63b163d7add3d
- elfutils improvements https://sourceware.org/git/?p=elfutils.git&a=search&h=35e49cac53a97ae6c51190c8e2d35a215e188bba&st=author&s=Akihiko+Odaki
- cv2pdb rainers/cv2pdb#38
- ARM and EGL support for QtWebEngine https://code.qt.io/cgit/qt/qtwebengine.git/log/?qt=author&q=Akihiko+Odaki
- buildroot https://git.buildroot.net/buildroot/log/?qt=grep&q=Akihiko+Odaki
- Xamarin.Forms bug xamarin/Xamarin.Forms#303
- Xamarin.Android Linux host bugs https://github.com/xamarin/xamarin-android/pulls?q=is%3Apr+author%3Aakihikodaki+is%3Aclosed
- Ruby bug https://bugs.ruby-lang.org/issues/13648
- Mattermost https://github.com/mattermost/mattermost-server/pulls?q=is%3Apr+author%3Aakihikodaki+is%3Aclosed
- Paperclip thoughtbot/paperclip#2545
- Sapper https://github.com/sveltejs/sapper/pulls?q=is%3Apr+author%3Aakihikodaki+is%3Aclosed sveltejs/sapper-template#70
- parcel-plugin-svelte DeMoorJasper/parcel-plugin-svelte#11
- react-virtualized bvaughn/react-virtualized#663
- YARD lsegal/yard#1099
- extract-text-webpack-plugin webpack-contrib/extract-text-webpack-plugin#601
July, 2017 - June, 2018
I was employed as a part-time worker for developing Pawoo, a variant of Mastodon, a federated microblogging software.
Mastodon is Web application and built with Ruby on Rails. It has RESTful APIs and ActivityPub, a federation protocol. The UI is built with React and its state is managed with Redux. It stores data to PostgreSQL and Redis. I developed for all of its subsystems.
Speaking of Pawoo-specific feature development, I assisted the full-time workers of the team and developed a feature relatively independent of the other aspects of the software.
- Contributed to Mastodon.
- Contributed to rspec-sidekiq.
- Developed Pawoo Music, a discontinued variant of Mastodon. I was responsible for a feature to generate a music video suitable for video-sharing websites like YouTube and Twitter. The feature had the interactive preview and the actual video was generated on the server.
- Contributed to PixiJS
- Contributed to headless-gl
- I developed the application and determined the server configurations for accelerated graphics.
- Suggested and conducted an experiment to integrate Mastodon and Matrix, although it was suspended before yielding any results and canceled later. Contributed to Matrix (https://github.com/matrix-org/matrix-react-sdk/pulls?q=is%3Apr+author%3Aakihikodaki+is%3Aclosed) in the process.
July, 2018 - March, 2019
I was relocated for developing VRoid Studio, a software to build humanoid 3D models without special expertise. For details of the application, see a presentation given at SA '21: SIGGRAPH Asia 2021 Real-Time Live!
My involvement began just before its first release. My focus was to improve the productivity of the team because the relocation was regarded as "temporal" in the first place.
- Constructed and maintained a CI infrastructure with Unity, Linux, and GitLab CI. GitLab CI was managed by a colleague so I wrote application-specific code and communicated with him for the integration.
- Designed and implemented Mux, a tool to build the UI with XAML (eXtensible Application Markup Language) and data binding, and re-implemented the UI of VRoid Studio with Mux.
- Minor FLOSS contributions
- Fixed many bugs of Xamarin.Forms' XAML processor used in Mux. https://github.com/xamarin/Xamarin.Forms/pulls?q=author%3Aakihikodaki+
- Contributed to XR.Baboon https://github.com/inorton/XR.Baboon/pulls?q=is%3Apr+author%3Aakihikodaki+is%3Aclosed
- Contributed to docfx https://github.com/dotnet/docfx/pulls?q=is%3Apr+author%3Aakihikodaki+is%3Aclosed
- Contributed to UniVRM vrm-c/UniVRM#21
- Contributed to UniGLTF ousttrue/UniGLTF#15
May, 2019 - August, 2019
I was employed as a full-time worker, and had some training in April. Later, I joined the development of VRoid Mobile, designed for more casual humanoid model creation and including AR feature. I left the team just after its release.
- Designed the architecture of the application as whole. (It was modeled as MVVM and integrated subsystems designed and implemented independently.)
- Clicked the "New Project" button of Unity and wrote the integration of different subsystems and many of its UI components (of course in Mux).
- Ported the CI infrastructure developed for VRoid Studio.
- Instructed other developers to enforce the application architecture and Mux best practices and to provide some generic programming advices. My intention was to maintain the steady development until the release and after I left.
- Minor FLOSS contributions
- Contributed to bitrise/steps-cache-push bitrise-steplib/steps-cache-push#32
- Contributed to better-apk-expansion auxility/better-apk-expansion#16
September, 2019 - October, 2019
Technically I had never had the "On-the-Job Training", so I completed it by temporarily working for ImageFlux team.
WebRTC bindings for .NET, mainly targeting for Unity are its results. The library avoids common pitfalls of such bindings like multi-platform support and garbage-collector awareness.
I also contributed to mono/sdb. mono/sdb#58
November, 2019 - February, 2020
I was relocated for pixiv Sketch team. pixiv Sketch is a social network where users can casually post drawings (i.e. it is totally fine to post incomplete works). It has drawing tools and a live broadcast feature.
I had no particular job to do, so I just did any technical things the others don't do.
pixiv Sketch had a backend server application providing RESTful APIs representing its resources and frontends providing the UI. Such a combination is called Backend-for-Frontend, or BFF. The backend was a Ruby on Rails application, and the frontends were Web, Android, and iOS applications.
I modified the WebRTC library for additional features on iOS like screen-casting with audio and an extra audio configuration. https://github.com/pixiv/webrtc
March, 2020 - February, 2021
The backend and the Web frontend of pixiv Sketch was assigned to me. I focused on reliability.
The backend interacted with MySQL and Redis. The Web frontend provided the UI with React with its state managed with Fluxible.
- Contributed to ClusterWS/cWS ClusterWS/cWS#35
- Debugged and patched Mozilla Firefox to fix CSRF. https://bugzilla.mozilla.org/show_bug.cgi?id=1605305
I become an unemployed FLOSS contributor again.
- QEMU https://gitlab.com/search?utf8=✓&search=Akihiko+Odaki&group_id=3038080&project_id=11167699&scope=commits&search_code=false&snippets=false&repository_ref=master&nav_source=navbar
- virglrenderer https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests?scope=all&utf8=✓&state=all&author_username=akihiko.odaki
- UTM utmapp/UTM#2361
- Mutter https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1737
Actually I'm working on QEMU on macOS. Especially I'm focusing on Virgil 3D, a bridge to expose host OpenGL to guest, and Apple Silicon/M1. https://gist.github.com/akihikodaki/87df4149e7ca87f18dc56807ec5a1bc5
April, 2022 - Shioya Laboratory, Department of Creative Informatics, Graduate School of Information Science and Technology, The University of Tokyo
August, 2022 - Daynix Computing Ltd.
Akihiko is my given name. Aki (陽) means "sun". Hiko (彦) means, well, I don't know.
Odaki is my family name. The literal meaning probably just doesn't make sense, but:
- O (小) means "small".
- Da (田) means "rice field".
- Ki (喜) means "happy".
So it may mean "I'm happy with a small rice field" or I don't know. Indeed, I prefer to get things done with smaller code base.