Compare commits

...

14 Commits

Author SHA1 Message Date
ecfffc1fb5 🤖 Hello human, updating CVs 2025-11-18 23:55:26 +00:00
c4e5e63ca0 Update publications 2025-11-19 08:51:02 +09:00
eea819ee9c Update picture 2025-11-05 10:39:42 +09:00
c9d19d42c7 🤖 Hello human, updating CVs 2025-09-11 01:37:39 +00:00
47871f0a6f Add PubMed extractive summarization paper 2025-09-11 10:35:41 +09:00
03a38797c6 🤖 Hello human, updating CVs 2025-07-22 05:34:09 +00:00
8afc8b740b Add NII internship 2025-07-15 21:42:48 +09:00
fa864d7a9c Changed timeline style 2025-07-15 21:42:40 +09:00
5bc4f16f6e 🤖 Hello human, updating CVs 2025-07-15 12:36:53 +00:00
3d92665897 Add data-nosnippet 2025-05-04 10:53:03 +02:00
43bd36cad6 Add publications 2025-05-03 10:35:40 +02:00
ce1793f8ad Update timeline 2025-05-03 10:35:30 +02:00
a0cd29fc93 Update bio 2025-05-03 10:35:10 +02:00
e626fef333 🤖 Hello human, updating CVs 2025-05-03 08:29:51 +00:00
19 changed files with 176 additions and 37 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

View File

@ -1,6 +1,6 @@
<template>
<ClientOnly>
<div v-if="show_banner" class="w-full h-full">
<div v-if="show_banner" class="w-full h-full" data-nosnippet>
<div ref="container_cookie" class="absolute top-0 left-0 h-full w-full pointer-events-none z-40">
<canvas ref="canvas_cookie" :width="canvas_width" :height="canvas_height"></canvas>

View File

@ -1,29 +1,30 @@
<template>
<div class="relative">
<div class="flex items-center h-60 w-60">
<img v-show="picture === 'dark'" src="~/assets/images/profile/picture-dark.png" alt="" class="max-h-full max-w-full">
<div class="flex items-center h-80 w-80">
<!-- <img v-show="picture === 'dark'" src="~/assets/images/profile/picture-dark.png" alt="" class="max-h-full max-w-full">
<img v-show="picture === 'light'" src="~/assets/images/profile/picture-light.png" alt="" class="max-h-full max-w-full">
<img v-show="picture === 'bright'" src="~/assets/images/profile/picture-bright.png" alt="" class="max-h-full max-w-full">
<img v-show="picture === 'no light'" src="~/assets/images/profile/picture-nolight.png" alt="" class="max-h-full max-w-full">
<img v-show="picture === 'no light'" src="~/assets/images/profile/picture-nolight.png" alt="" class="max-h-full max-w-full"> -->
<img src="~/assets/images/profile/me.jpg" alt="Me with an Eevee hat holding an umbrella" class="max-h-full max-w-full rounded-md">
</div>
<div v-if="message" class="absolute bottom-0 left-0 w-full">
<!-- <div v-if="message" class="absolute bottom-0 left-0 w-full">
<p class="w-fit mx-auto px-2 pt-1 mb-1 bg-gray-200 dark:bg-gray-700">{{ message }}</p>
</div>
</div> -->
</div>
</template>
<script setup lang="ts">
<!-- <script setup lang="ts">
const { t } = useI18n();
const picture = ref(getTheme());
const message = ref("");
// Finite-state automata to handle theme changes
Finite-state automata to handle theme changes
interface State {
image: string; // Image to display
message: string; // Message to display (string to parse with i18n)
@ -72,8 +73,8 @@
}
});
// Observes for theme changes
Observes for theme changes
observer.observe((document.querySelector("html") as Node), { attributes: true, attributeFilter: ['class'] });
});
</script>
</script> -->

View File

@ -5,9 +5,9 @@
<div class="w-full h-full" ref="container_timeline">
<div class="flex justify-center w-full h-full" v-if="month_offset > 0 && min_date && max_date">
<!-- Left side -->
<ol class="relative border-r text-right w-1/2 border-zinc-300 dark:border-zinc-700">
<ol class="relative text-right w-1/2">
<li class="mr-4 absolute right-0" v-for="event in left_events" :key="props.left[event.index].title" :style="`top: ${event.offset*month_offset}px`">
<div class="relative">
<!-- Start point -->
@ -29,11 +29,13 @@
</div>
</li>
</ol>
<div class="w-4"></div>
<div class="w-2"></div>
<div class="w-1 border-l border-zinc-300 dark:border-zinc-700 ml-1"></div>
<div class="w-2"></div>
<!-- Right side -->
<ol class="relative w-1/2 border-l border-zinc-300 dark:border-zinc-700">
<ol class="relative w-1/2">
<li class="ml-4 absolute left-0" v-for="event in right_events" :key="props.right[event.index].title" :style="`top: ${event.offset*month_offset}px`">
<div class="relative">
<!-- Start point -->
@ -69,11 +71,11 @@
const props = defineProps({
right: {
type: Object as PropType<Event[]>,
type: Array<Event>,
default: []
},
left: {
type: Object as PropType<Event[]>,
type: Array<Event>,
default: []
},
});

View File

@ -43,6 +43,11 @@
title: 'CISCO: IT Essentials', time_label: '2018',
description: 'CISCO Networking Academy',
start: new Date(2018, september, 1), end: new Date(2018, september, 1)
},
{
title: $t('research intern'), time_label: `${$t('m_7')} 2025 - ${$t('m_1')} 2026`,
description: `National Institute of Informatics, Tokyo, ${$t('japan')}`,
start: new Date(2025, july, 14), end: new Date(2026, january, 9)
}
]" />
</div>

View File

@ -0,0 +1,23 @@
<template>
<div class="md:ml-2 mt-4">
<span v-for="(author, i) in props.authors">
<span :class="`${props.highlight_author == author ? 'font-bold' : ''}`">{{ author }}</span><span v-if="i < props.authors.length-1">; </span>
</span>.
({{ props.year }}). "{{ props.title }}".
<span>{{ conference }}</span>.
<ReferenceLink :doi="doi" :openreview="openreview" />
</div>
</template>
<script setup lang="ts">
const props = defineProps({
title: String,
authors: { type: Array<String>, default: [] },
highlight_author: String,
year: String,
conference: String,
doi: { type: String, default: '' },
openreview: { type: String, default: '' }
});
</script>

View File

@ -0,0 +1,23 @@
<template>
<div class="md:ml-2 mt-4">
<span v-for="(author, i) in props.authors">
<span :class="`${props.highlight_author == author ? 'font-bold' : ''}`">{{ author }}</span><span v-if="i < props.authors.length-1">; </span>
</span>.
({{ props.year }}). "{{ props.title }}".
<span class="italic">{{ journal }}</span>.
<ReferenceLink :doi="doi" :openreview="openreview" />
</div>
</template>
<script setup lang="ts">
const props = defineProps({
title: String,
authors: { type: Array<String>, default: [] },
highlight_author: String,
year: String,
journal: String,
doi: { type: String, default: '' },
openreview: { type: String, default: '' }
});
</script>

View File

@ -0,0 +1,13 @@
<template>
<span v-if="doi === '' && openreview === ''">{{ $t("under_review") }}</span>
<span v-if="doi !== ''"><span class="font-mono">DOI</span>: <a :href="`https://doi.org/${props.doi}`" class="font-mono hover:underline">{{ props.doi }}</a>.</span>
<span v-if="openreview !== ''"><span class="font-mono">OpenReview</span>: <a :href="`https://openreview.net/forum?id=${props.openreview}`" class="font-mono hover:underline">{{ props.openreview }}</a>.</span>
</template>
<script setup lang="ts">
const props = defineProps({
doi: { type: String, default: '' },
openreview: { type: String, default: '' }
});
</script>

View File

@ -0,0 +1,46 @@
<template>
<div>
<h2 class="text-4xl font-bold tracking-wide">{{ $t("publications") }}</h2>
<ConferenceReference
title = "UnitMath: Unit-Aware Numerical Reasoning and Dimensional Consistency for Scientific Table Claims"
:authors = "['AI Scientist', 'Ho, Xanh', 'Xia, Tian Cheng', 'Duong, Khoa', 'Wu, Yun-Ang', 'Nguyen, Ha-Thanh', 'Aizawa, Akiko' ]"
:highlight_author = "highlight_author"
year = "2025"
conference = "Open Conference of AI Agents for Science 2025"
openreview = "cK8YYMc65B" />
<ConferenceReference
title = "Decontextualization, Everywhere: A Systematic Audit on PeerQA"
:authors = "['AI Scientist', 'Ho, Xanh', 'Xia, Tian Cheng', 'Duong, Khoa', 'Wu, Yun-Ang', 'Nguyen, Ha-Thanh', 'Aizawa, Akiko' ]"
:highlight_author = "highlight_author"
year = "2025"
conference = "Open Conference of AI Agents for Science 2025"
openreview = "OG8sFxeNHv" />
<JournalReference
title = "Large Language Models Evaluation for PubMed Extractive Summarisation"
:authors = "['Xia, Tian Cheng', 'Bertini, Flavio', 'Montesi, Danilo']"
:highlight_author = "highlight_author"
year = "2025"
journal = "ACM Transactions on Computing for Healthcare"
doi = "10.1145/3766905" />
<JournalReference
title = "The Design and Realization of a Self-Hosted and Open-Source Agile Internal Development Platform"
:authors = "['Ciancarini, Paolo', 'Giancarlo, Raffaele', 'Grimaudo, Gennaro', 'Missiroli, Marcello', 'Xia, Tian Cheng']"
:highlight_author = "highlight_author"
year = "2025"
journal = "IEEE Access"
doi = "10.1109/ACCESS.2025.3564141" />
</div>
</template>
<script setup lang="ts">
const highlight_author = "Xia, Tian Cheng";
</script>

View File

@ -2,8 +2,18 @@
<div>
<h2 class="text-4xl font-bold tracking-wide">{{ $t("working experience") }}</h2>
<ActivityParagraph :title="$t('pcto toyota')" subtitle="Toyota Material Handling Manufacturing Italy"
:right_text="`${$t('december')} 2019 | ${$t('july')} 2019 | ${$t('february')} 2019`">
<ActivityParagraph
:title="$t('research intern')"
:subtitle="`National Institute of Informatics, Tokyo, ${$t('japan')}`"
:right_text="`${$t('july')} 2025 - ${$t('january')} 2026`"
>
</ActivityParagraph>
<ActivityParagraph
:title="$t('pcto toyota')"
:subtitle="`Toyota Material Handling Manufacturing, Bologna, ${$t('italy')}`"
:right_text="`${$t('december')} 2019 | ${$t('july')} 2019 | ${$t('february')} 2019`"
>
{{ $t("pcto toyota description") }}
<ul class="list-inside list-disc">
<li>{{ $t("pcto toyota description list1") }}</li>

View File

@ -4,8 +4,9 @@ export default {
"certificates": "Certificates",
"skills": "Skills",
"other": "Other activities",
"publications": "Publications",
"link to certificate": "Link to certificate",
"future": "What will happen?",
"future": "What will happen next?",
"like timelines": "I like timelines",
"cv_link": "/cv/cv_xia_en1.pdf",
@ -18,6 +19,9 @@ export default {
"m_7": "July", "m_8": "Aug", "m_9": "Sept", "m_10": "Oct", "m_11": "Nov", "m_12": "Dec",
"present": "present",
"italy": "Italy",
"japan": "Japan",
"final grade": "Final grade",
"graduation grade": "Graduation grade",
"with honors": "cum laude",
@ -33,7 +37,7 @@ export default {
"web development": "Web development",
"devops": "DevOps",
"data analysis": "Data analysis",
"data analysis": "Data analysis and machine learning",
"other programming languages": "Other programming languages",
@ -43,7 +47,7 @@ export default {
"cs50 ai description": "Problem solving using algorithms based on graphs, statistics, optimization and machine learning.",
"pcto toyota": "IT/IS Office, Internship",
"pcto toyota": "IT/IS Office Intern",
"pcto toyota description": "Internship organized during high school.",
"pcto toyota description list1": "IT support.",
"pcto toyota description list2": "Maintenance and setup of network devices.",
@ -59,5 +63,10 @@ export default {
"the Zerynth Studio development environment.",
"epfl": "EPFL, Switzerland",
"lauzhack description": "24-hour hackathon where my team tackled and was awarded first prize for the challenge proposed by Bristol Myers Squibb on probabilistic time series forecasting."
"lauzhack description": "24-hour hackathon where my team tackled and was awarded first prize for the challenge proposed by Bristol Myers Squibb on probabilistic time series forecasting.",
"under_review": "Under review",
"research intern": "Research Intern",
"nii internship": "Research Intern"
}

View File

@ -4,6 +4,7 @@ export default {
"certificates": "Certificati",
"skills": "Competenze",
"other": "Altre attività",
"publications": "Pubblicazioni",
"link to certificate": "Link al certificato",
"future": "Chissà cosa succederà",
"like timelines": "Mi piacciono le linee del tempo",
@ -18,6 +19,9 @@ export default {
"m_7": "Lug", "m_8": "Ago", "m_9": "Set", "m_10": "Ott", "m_11": "Nov", "m_12": "Dic",
"present": "in corso",
"italy": "Italia",
"japan": "Giappone",
"final grade": "Valutazione finale",
"graduation grade": "Valutazione finale",
"with honors": "con lode",
@ -33,7 +37,7 @@ export default {
"web development": "Sviluppo web",
"devops": "DevOps",
"data analysis": "Data analysis",
"data analysis": "Data analysis e machine learning",
"other programming languages": "Altri linguaggi di programmazione",
@ -58,5 +62,9 @@ export default {
"l'ambiente di sviluppo Zerynth Studio.",
"epfl": "EPFL, Svizzera",
"lauzhack description": "Hackathon di 24 ore in cui la mia squadra ha risolto e vinto il primo posto della challenge proposta da Bristol Myers Squibb su predizioni probabilistiche di time series."
"lauzhack description": "Hackathon di 24 ore in cui la mia squadra ha risolto e vinto il primo posto della challenge proposta da Bristol Myers Squibb su predizioni probabilistiche di time series.",
"under_review": "In revisione",
"research intern": "Ricercatore tirocinante",
}

View File

@ -20,13 +20,12 @@
<p>
Oltre a premere tasti sulla tastiera,
mi piace leggere,
sperimentare in cucina <span class="text-xs">(preferibilmente con un estintore nei paraggi)</span>
e giocare a giochi strategici.
sperimentare in cucina <span class="text-xs">(preferibilmente con un estintore nei paraggi)</span>,
giocare a giochi strategici
e spendere decisamente troppo tempo sul mio home server.
</p>
<p>
Secondo <a class="hover:underline italic" href="https://www.16personalities.com">16Personalities</a> sono un
<a class="font-mono hover:underline" href="https://www.16personalities.com/profiles/6b57f54bf1242">Architetto (INTJ)</a>.
Devo dire che la descrizione è decisamente accurata.
Dovrei probabilmente scrivere qualcos'altro, ma sono terribile a scrivere biografie, quindi tieni una ciambella 🍩.
</p>
</div>
@ -42,13 +41,12 @@
<p>
Aside from pressing keys on a keyboard,
I like reading,
cooking <span class="text-xs">(preferably with a fire extinguisher nearby)</span>
and playing strategic games.
cooking <span class="text-xs">(preferably with a fire extinguisher nearby)</span>,
playing strategic games
and spending way too much time on my home server.
</p>
<p>
According to <a class="hover:underline italic" href="https://www.16personalities.com">16Personalities</a>, I'm an
<a class="font-mono hover:underline" href="https://www.16personalities.com/profiles/6b57f54bf1242">Architect (INTJ)</a>.
I must admit that the description is quite accurate.
I should probably write some more about me, but I'm terrible at writing biographies, so here's a donut 🍩.
</p>
</div>

View File

@ -21,10 +21,11 @@
<div class="flex flex-col md:flex-row">
<div class="w-full md:w-2/3 order-1 md:order-2 md:pl-4 [&>*]:mt-8 first:[&>*]:mt-0">
<Education />
<Certificates />
<Work />
<Certificates />
<Skills />
<Other />
<Publications />
</div>
<div class="w-full md:w-1/3 mt-20 md:mt-0 order-2 md:order-1">

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,4 +1,4 @@
const EASTER_EGGS = ["cookie", "future", "change-something", "picture-bright", "picture-nolights"];
const EASTER_EGGS = ["cookie", "future", "change-something"];
export function addFoundEasterEgg(name:string):void {
if (!EASTER_EGGS.includes(name)) { return; }