Skip to content

Commit

Permalink
integrated projects page in index, writing
Browse files Browse the repository at this point in the history
  • Loading branch information
robalb committed Mar 29, 2024
1 parent 82d01ea commit 220f27e
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 48 deletions.
13 changes: 5 additions & 8 deletions astro-website/src/components/ProjectPreview.astro
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
---
export interface Props {
post: any;
slug: any;
text: any;
}
const { post } = Astro.props;
const { slug, text } = Astro.props;
let href = "/";
if(post.frontmatter.source)
href = post.frontmatter.source
else if(post.frontmatter.demo)
href = post.frontmatter.demo + "/"
let href = "/projects/#" + slug;
---

<a href={href} class="post" >
<h3>{post.frontmatter.title}</h3>
<h3>{text}</h3>
<div>
github
</div>
Expand Down
24 changes: 13 additions & 11 deletions astro-website/src/pages/about.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,19 @@ permalink: https://halb.it/about/
activePage: about
---

Hi, I'm Alberto Ventafridda.<br/>
I'm a software developer based in Milan, Italy.
I aspire to be a "jack of all trades, master of at least one",
however impossible this may sound.<br/>
 So far, my journey has covered web development in all of its forms,
cloud infrastructure, and cybersecurity.

On this website I write about the challenges I encounter along the road,
and whatever I feel interesting to share.
I like the idea that the content I publish will help someone in the future,
however, right now it’s mostly written for myself.
I'm a developer and Computer Science student at UniMib, living in Milan, Italy.

In a distant future I aspire to be a jack of all trades, master of one.<br/>
In my search for the one trade to master
I've experimented with web development in all of its forms - from frontend to backend, from design
to devops pipelines.<br/>
In 2023, I spent a year working as an infrastructure and backend developer in a consulting firm,
where I developed Cloud Infrastructure for large-scale web and AI projects.

Right now I'm focusing on completing my studies,
practicing the art of binary exploitation and
playing CTF competitions in my free time.


## About this blog

Expand Down
10 changes: 6 additions & 4 deletions astro-website/src/pages/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ let permalink = 'https://halb.it';
// Data Fetching: List all Markdown posts in the repo.
let MAX_POSTS = 10
let MAX_PROJECTS = 6
let sortedPosts = await Astro.glob('./posts/*.{md,mdx}')
sortedPosts = sortedPosts
.sort((a, b) => new Date(b.frontmatter.publishDate).valueOf() - new Date(a.frontmatter.publishDate).valueOf())
Expand All @@ -25,9 +26,10 @@ let posts = sortedPosts.map(p => ({
shortDate: new Date(p.frontmatter.publishDate).getFullYear() != currentYear
}))
//TODO: fetch only the last 10 projects
let allProjects = await Astro.glob('./projects/*.md');
allProjects = allProjects.sort((a, b) => new Date(a.frontmatter.order).valueOf() - new Date(b.frontmatter.order).valueOf());
let projectsPage = await Astro.glob('./projects.mdx')
let allProjects = projectsPage[0].getHeadings()
let projects = allProjects.slice(0, MAX_PROJECTS)
---
<SharedLayout {description} {permalink} >
<article>
Expand Down Expand Up @@ -64,7 +66,7 @@ allProjects = allProjects.sort((a, b) => new Date(a.frontmatter.order).valueOf()
<span>Latest projects</span>
<a href="/projects/">View All <span class="visually-hidden">projects</span></a>
</h2>
{allProjects.map((p) => <ProjectPreview post={p} />)}
{projects.map((p) => <ProjectPreview slug={p.slug} text={p.text} />)}
</section>
</article>
<footer>
Expand Down
39 changes: 14 additions & 25 deletions astro-website/src/pages/projects.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,13 @@ activePage: projects
import Picture from '../components/Picture.astro'
import PictureThemed from '../components/PictureThemed.astro'

- [custom vm emulator and debugger](#custom-vm-emulator-and-debugger)
- [Morse code web radio](#morse-code-web-radio)
- [Infrastructure](#infrastructure)
- [Students management system](#students-management-system)
- [Parsers in exotic languages](#parsers-in-exotic-languages)
- [Sailing regattas Android app](#sailing-regattas-android-app)
- [Older projects](#older-projects)

### Custom VM emulator and debugger

Expand All @@ -33,26 +40,6 @@ At the moment i'm still following the course, and practicing binary exploitation
All my experiences on this subject are documented [in these articles](/articles/#pwn)


### This website

I created this website in 2022, after years of procrastination. I wanted a place to host CTF writeups, plus I wanted an excuse
to practice technical writing in english.

The website is built with Astro, a technology that at the time was still in beta.
Coming from a React background, I was seriously accustomed to the jsx syntax, and I was looking for a framework
that allowed me to write everything in markdown+jsx, and compiled to static html+css files.

Astro does exactly that, and additionally allows you to add interactive components in your articles,
written in wathever web framework you prefer.
If you've ever read an [article by Ciechanowski](https://ciechanow.ski/color-spaces/), You may have an
idea of the potential of this feature.

So far, I've experimented with interactive elements written in Svelte in an article about
[visualizing data](/posts/moving-data-x64/) in x86-64 assembly.<br/>
I'm documenting everything related to this website [in these articles](/articles/this-website), and the code
is open source on [github](https://github.com/robalb/my-website)


### Morse code web radio

This is an old project I started in 2018, during my first years of highschool.<br/>
Expand All @@ -77,7 +64,7 @@ and I wanted maximum complexity as the main requirement just for an extra challe
### Infrastructure

Between 2021 and 2022 I realized I was lacking knowledge in infrastructure and devops processes,
so i took the decision to containerize all my projects, adding CI/CD pipelines based on github actions.
so I took the decision to containerize all my projects, adding CI/CD pipelines based on github actions.

I also took the cursed decision to move everything on a self-managed, single-node k3s cluster, running on
an OVH vps provisioned via ansible scripts.
Expand Down Expand Up @@ -198,11 +185,13 @@ Both the app code and the API server are available on the [open-roboe github org

### Older projects

Many projects did not survive the test of times.

Around 2016, I learned programming by developing [minecraft pocket edition mods](https://web.archive.org/web/20190301083244/mcpedl.com/?s=robalb)
In a cursed javascript+java scripting language.
Around 2015, I learned programming by developing [minecraft pocket edition mods](https://web.archive.org/web/20190301083244/mcpedl.com/?s=robalb)
using a cursed javascript+java scripting language.

Since then, I've created several web projects that got lost in time,
along with miscellaneous stuff that is not worth its own section such
as a website for [my old high school](https://github.com/liceobanfi/banfi-in-diretta) or
[my dotfiles](https://github.com/robalb/dotfiles)



Expand Down

0 comments on commit 220f27e

Please sign in to comment.