Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions netlify.toml

This file was deleted.

Binary file added public/images/projects/dv_dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/projects/dv_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/projects/prismo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/content.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ const projectsCollection = defineCollection({
description: z.string().optional(),
date: z.date().optional(),
image: z.string().optional(),
dark_image: z.string().optional(),
show_image: z.boolean().default(true),
categories: z.array(z.string()).default(["others"]),
tags: z.array(z.string()).default(["others"]),
Expand Down
12 changes: 6 additions & 6 deletions src/content/awards/2015-central-california-science-fair.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ draft: false

Alongside Project Maverick, I received several awards from the 2015 Central California Science and Engineering Fair!

* Sweepstakes Champion – Best in Show
* 1st Place in the category of Robotics
* Fresno State University Engineering Scholarship
* Downing Planetarium Award
* Fresno-Madera Dental Association Best in Show Award
- Sweepstakes Champion – Best in Show
- 1st Place in the category of Robotics
- Fresno State University Engineering Scholarship
- Downing Planetarium Award
- Fresno-Madera Dental Association Best in Show Award

<ImageGallery
images={[
Expand All @@ -30,6 +30,6 @@ Alongside Project Maverick, I received several awards from the 2015 Central Cali
src: "/images/awards/HSScienceFair/2015-CCSF-2.jpg",
alt: "Building the prototype for the Science Fair",
caption: "Building the prototype for the Science Fair",
}
},
]}
/>
2 changes: 1 addition & 1 deletion src/content/awards/2015-intel-isef.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,6 @@ Alongside Project Maverick, I won the IEEE President’s Scholarship Award at th
src: "/images/awards/HSScienceFair/2015_IEEE_Award.jpg",
alt: "IEEE Award Plaque",
caption: "IEEE Award Plaque",
}
},
]}
/>
8 changes: 4 additions & 4 deletions src/content/awards/2016-central-california-science-fair.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ draft: false

Alongside Project Maverick, I received several awards from the 2016 Central California Science and Engineering Fair!

* Sweepstakes Champion – Best in show
* 1st Place in the category of Engineering
* 2016 Excellence in Science Award
* Downing Planetarium Award
- Sweepstakes Champion – Best in show
- 1st Place in the category of Engineering
- 2016 Excellence in Science Award
- Downing Planetarium Award

<ImageGallery
images={[
Expand Down
8 changes: 4 additions & 4 deletions src/content/awards/asteroid-tacescu.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ import AsteroidViewer from "@/shortcodes/AsteroidViewer.tsx";
<AsteroidViewer client:only="react" />

In recognition of my performance at the 2016 Intel International Science
and Engineering Fair, MIT Lincoln Laboratory named a newly discovered
asteroid in my honor. Welcome to existence, Minor Planet 33662 Tacescu!
Read more about it here:
https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html#/?sstr=33662
and Engineering Fair, MIT Lincoln Laboratory named a newly discovered
asteroid in my honor. Welcome to existence, Minor Planet 33662 Tacescu!
Read more about it here:
https://ssd.jpl.nasa.gov/tools/sbdb_lookup.html#/?sstr=33662

![Minor Planet Diploma](/images/awards/2017-Minor-Planet-Award.jpg)
24 changes: 24 additions & 0 deletions src/content/projects/dimensional-variable.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
title: "Dimensional Variable"
meta_title: "Dimensional Variable - Alex Tacescu"
description: "A multi-language units library that makes dimensional analysis, conversions, and unit-safe math behave correctly in code"
date: 2025-09-18
image: "/images/projects/dv_light.png"
dark_image: "/images/projects/dv_dark.png"
categories: ["Software", "Personal Projects"]
tags: ["Dimensional Variable", "Developer Tools", "Rust", "Python"]
featured: true
draft: false
---

Dimensional Variable, or DV, is a software library for working with physical units in code without the usual ambiguity and conversion mistakes. It is designed to make units first-class, so calculations stay dimensionally correct while still being straightforward to write and integrate into real projects. It supports multiple programming languages, with a focus on Rust, C++, and Python, and provides features like unit-safe math, automatic conversions, and dimensional analysis.

Learn more on the project's website: https://dv.alextac.com.

## Links

- [Project site](https://dv.alextac.com)
- [Documentation](https://dv.alextac.com/docs/intro)
- [GitHub](https://github.com/alextac98/dv)
- [crates.io package](https://crates.io/crates/dv)
- [PyPI package](https://pypi.org/project/dv-py/)
21 changes: 21 additions & 0 deletions src/content/projects/prismo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: "Prismo"
meta_title: "Prismo - Alex Tacescu"
description: "A terminal-first telemetry viewer for debugging robots, spacecraft, and other systems with live data in a fast plugin-extensible TUI"
date: 2026-04-15
image: "/images/projects/prismo.png"
categories: ["Software", "Personal Projects"]
tags: ["Prismo", "Telemetry", "Developer Tools", "TUI"]
featured: true
draft: false
---

Prismo is a terminal-first telemetry viewer built for fast debugging. It lets users inspect live data streams directly in the shell, which keeps the feedback loop tight when working on robots, spacecraft, and other systems that produce a lot of runtime telemetry. It can be used for anything from CAN bus data on a robot to live sensor readings from a satellite, and its plugin architecture makes it adaptable to different protocols and platforms.

Learn more at the project website: https://prismo.alextac.com.

## Links

- [Project site](https://prismo.alextac.com)
- [Documentation](https://prismo.alextac.com/docs/)
- [GitHub](https://github.com/alextac98/prismo)
2 changes: 1 addition & 1 deletion src/content/projects/ri3d-2018.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ image: "/images/projects/ri3d-2018.png"
show_image: false
categories: ["Robotics"]
tags: ["RobotIn3Days", "WPI", "FIRST FRC"]
featured: true
featured: false
draft: false
---

Expand Down
2 changes: 1 addition & 1 deletion src/content/projects/smallkat-mqp.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ image: "/images/projects/SmallKat/SmallKat.jpg"
show_image: false
categories: ["Robotics", "Personal Projects"]
tags: ["SmallKat MQP", "Major Project", "WPI"]
featured: true
featured: false
draft: false
---

Expand Down
11 changes: 10 additions & 1 deletion src/layouts/PostSingle.astro
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,16 @@ const { post } = Astro.props;
const posts = await getSinglePage(COLLECTION_FOLDER);
const similarPosts = similarItems(post, posts);
const { Content } = await render(post);
const { title, description, author, categories, image, date, tags, show_image } = post.data;
const {
title,
description,
author,
categories,
image,
date,
tags,
show_image,
} = post.data;
---

<section class="section pt-7">
Expand Down
99 changes: 57 additions & 42 deletions src/layouts/components/BlogCard.astro
Original file line number Diff line number Diff line change
Expand Up @@ -11,48 +11,63 @@ const {
}: { summary_length: number; blog_folder: string } = config.settings;
const { data } = Astro.props;
const { title, image, date, author, categories } = data.data;
const href = `/${blog_folder}/${data.id}`;
---

<div class="bg-body dark:bg-darkmode-body">
{
image && (
<ImageMod
class="mb-6 w-full rounded"
src={image}
alt={title}
width={445}
height={230}
format="webp"
/>
)
}
<h4 class="mb-3">
<a href={`/${blog_folder}/${data.id}`}>
{title}
</a>
</h4>
<ul class="mb-4">
<li class="mr-4 inline-block">
<a href="/about-me">
<FaRegUserCircle className={"mr-2 -mt-1 inline-block"} />
{humanize(author)}
<article
class="group relative h-full rounded-lg bg-body p-3 transition duration-200 hover:ring-2 hover:ring-primary/40 hover:ring-offset-4 hover:ring-offset-body focus-within:ring-2 focus-within:ring-primary/40 focus-within:ring-offset-4 focus-within:ring-offset-body dark:bg-darkmode-body dark:hover:ring-darkmode-primary/40 dark:hover:ring-offset-darkmode-body dark:focus-within:ring-darkmode-primary/40 dark:focus-within:ring-offset-darkmode-body"
>
<a class="absolute inset-0 z-10 rounded-lg" href={href} aria-label={title}
></a>
<div class="relative z-20 pointer-events-none">
{
image && (
<div class="mb-6 aspect-square overflow-hidden rounded">
<ImageMod
class="h-full w-full object-cover"
src={image}
alt={title}
width={445}
height={445}
format="webp"
/>
</div>
)
}
<h4 class="mb-3">
<a class="relative z-30 pointer-events-auto" href={href}>
{title}
</a>
</li>
<li class="mr-4 inline-block">
<FaRegFolder className={"mr-2 -mt-1 inline-block"} />
{
categories.map((category: string, index: number) => (
<a href={`/categories/${slugify(category)}`}>
{humanize(category)}
{index !== categories.length - 1 && ","}
</a>
))
}
</li>
{date && <li class="inline-block">{dateFormat(date)}</li>}
</ul>
<p class="mb-6">{plainify(data.body?.slice(0, Number(summary_length)))}</p>
<a class="btn btn-outline-primary btn-sm" href={`/${blog_folder}/${data.id}`}>
read more
</a>
</div>
</h4>
<ul class="mb-4">
<li class="mr-4 inline-block">
<a class="relative z-30 pointer-events-auto" href="/about-me">
<FaRegUserCircle className={"mr-2 -mt-1 inline-block"} />
{humanize(author)}
</a>
</li>
<li class="mr-4 inline-block">
<FaRegFolder className={"mr-2 -mt-1 inline-block"} />
{
categories.map((category: string, index: number) => (
<a
class="relative z-30 pointer-events-auto"
href={`/categories/${slugify(category)}`}
>
{humanize(category)}
{index !== categories.length - 1 && ","}
</a>
))
}
</li>
{date && <li class="inline-block">{dateFormat(date)}</li>}
</ul>
<p class="mb-6">{plainify(data.body?.slice(0, Number(summary_length)))}</p>
<a
class="btn btn-outline-primary btn-sm relative z-30 pointer-events-auto"
href={href}
>
read more
</a>
</div>
</article>
Loading
Loading